#ifndef __LECTEUR_H__
#define __LECTEUR_H__

int Do_command(int Command, uchar *Port);
int Do_Nothing(uchar *Port);
int Fin(uchar *Port);

int Lecteur_Feed(uchar *Port);
int Lecteur_Read(uchar *Port);
int Lecteur_Set_Led(uchar *Port,int Color);
int Lecteur_Write(uchar *Port);
int Lecteur_Eject(uchar *Port);
int Lecteur_Get_Position(uchar *Port);
int Lecteur_Vide(uchar *Port);
int Lecteur_Deblock(uchar *Port);

int Verify_Lrc(char *Buffer, char Lrc_Lu);
int Lecteur_Status(uchar *Port);
int Lecteur_Status_Feed(uchar *Port);
int Lecteur_Status_Write(uchar *Port);
int Lecteur_Status_Position(uchar *Port);
int Lecteur_Status_Eject(uchar *Port);
int Lecteur_Status_Deblock(uchar *Port);

void Valide(void);
int Lecteur_Valide(uchar *Port);

int Determine_Position(void);
int Enregistre(char *Carte, boolean bIndic);
int Lecteur_Enregistre(uchar *Port);

int Lecteur_Valide_Vote(uchar *Port);
int Lecteur_1_Init(s_Parameters* psParm);
int Lecteur_2_Init(s_Parameters* psParm);

void Boucle_Lecteur(s_PcType* psPcType);
void LoopValidator(uchar ucPcType, boolean bRecount);
void LoopUrne(uchar ucPcType);

int Command_Recom(void);
int Test_Retour(char *Command_Rx);
void Secu_Stat(void);
void Display_Votes_Counters(unsigned short *, unsigned short);

void Save_Vote(void);
void Handler_Keyb(char, unsigned short *);
int Check_Election(char *, char *);
void Init_CheckVote(char);
int Remove_Vote(void);

extern int Verifie_E_Vote(void);
extern boolean Demande_Identite(char *, boolean);
extern int Verifie_Urne(char *Clef);
extern void Calcul_Crc(char *Carte, int pos);
extern void Check_Vote_Counters(void);
extern void Check_Valid_Counters(void);
extern void Recupere_stat(char *Carte);
extern void Recupere_stat_Val(char *Carte);
extern void Erreur(char *msg);
extern void Encode_E_Vote(int Position, char *Valeur, int Longueur);
extern void Valide_E_Val(int Position);
extern void Recupere_Nb_Cartes(void);
extern void Boucle_Erreur(void);
extern void Wait_Time(int Sec);
extern int Kbhit(char COLOR,int loop);
extern int Getch(char COLOR);
extern void Recupere_Jeton(char *Carte, char *Jeton);
extern void Encode_Jeton(char *Carte, char *Jeton);
extern void Recupere_Vote(char *Carte);
extern void Initialise_Carte(char *Carte);
extern void Recupere_Crc(char *Carte,int Place);
extern void Encode_Crc(char *Carte);
extern void Ram_Disk_Load(void);
extern void Write_Counter(char *, int);
extern void Disk_Ram_Load(void);
extern int Read_Counter(boolean);
extern int Read_Vote(char *pzVoteContent);
/*<< 9.01c*/
//extern int Check_vote(char *pzVoteContent);
extern int Check_vote(void);
/*>>*/
extern int Cancel_Vote(void);
extern void Encode_Data_Disk(int , char *, int ,char );
extern void Make_Noise (SOUND_TYPE Type);
extern int Disk_Num(void);
extern int Change_Disque(char *pzMessage, boolean bInd);
/*<< 9.01c*/
extern void Encrypt_Decrypt(char *pzInputData, char *pzPassword, unsigned int iSize); 
extern void Generate_Password(char *pzPassword, long Position, boolean bIndic);
/*>>*/
#endif /* __LECTEUR_H__ */
/*******************************************************************/
/*******************************************************************/
