#ifndef _CLAVIER_H
#define _CLAVIER_H
#include <Socket.h>
#include <string.h>
#include <afficheur.h>
class Clavier
{
Socket &barriere;
int derniereTouche;
bool valide;
public:
Clavier(Socket &service) : barriere(service) {}
int readClavier();
int toucheEnfoncee();
bool codeBon(int codeSecret);
int getDerniereTouche();
bool isValide();
};
inline
int Clavier::readClavier()
{
barriere.envoyer("Clavier:readClavier");
return atoi(barriere.recevoir());
}
inline
int Clavier::toucheEnfoncee()
{
int touche;
while ((touche = readClavier()) == -1);
return derniereTouche = touche;
}
inline
bool Clavier::codeBon(int codeSecret)
{
Afficheur afficheur(barriere);
int code = 0;
for (int i=0; i<4; i++) {
code *= 10;
code += toucheEnfoncee();
afficheur.afficheCaractere('#');
}
return valide = code == codeSecret;
}
inline
int Clavier::getDerniereTouche()
{
return derniereTouche;
}
bool Clavier::isValide()
{
return valide;
}
#endif