|  | /* | 
|  | * This work is licensed under the terms of the GNU LGPL, version 2.1 or later. | 
|  | * See the COPYING.LIB file in the top-level directory. | 
|  | */ | 
|  |  | 
|  | #ifndef VREADER_H | 
|  | #define VREADER_H 1 | 
|  |  | 
|  | #include "eventt.h" | 
|  | #include "vreadert.h" | 
|  | #include "vcardt.h" | 
|  |  | 
|  | /* | 
|  | * calls for reader front end | 
|  | */ | 
|  | VReaderStatus vreader_power_on(VReader *reader, unsigned char *atr, int *len); | 
|  | VReaderStatus vreader_power_off(VReader *reader); | 
|  | VReaderStatus vreader_xfr_bytes(VReader *reader, unsigned char *send_buf, | 
|  | int send_buf_len, unsigned char *receive_buf, | 
|  | int *receive_buf_len); | 
|  |  | 
|  | /* constructor */ | 
|  | VReader *vreader_new(const char *readerName, VReaderEmul *emul_private, | 
|  | VReaderEmulFree private_free); | 
|  | /* get a new reference to a reader */ | 
|  | VReader *vreader_reference(VReader *reader); | 
|  | /* "destructor" (readers are reference counted) */ | 
|  | void vreader_free(VReader *reader); | 
|  |  | 
|  | /* accessors */ | 
|  | VReaderEmul *vreader_get_private(VReader *); | 
|  | VReaderStatus vreader_card_is_present(VReader *reader); | 
|  | void vreader_queue_card_event(VReader *reader); | 
|  | const char *vreader_get_name(VReader *reader); | 
|  | vreader_id_t vreader_get_id(VReader *reader); | 
|  | VReaderStatus vreader_set_id(VReader *reader, vreader_id_t id); | 
|  |  | 
|  | /* list operations */ | 
|  | VReaderList *vreader_get_reader_list(void); | 
|  | void vreader_list_delete(VReaderList *list); | 
|  | VReader *vreader_list_get_reader(VReaderListEntry *entry); | 
|  | VReaderListEntry *vreader_list_get_first(VReaderList *list); | 
|  | VReaderListEntry *vreader_list_get_next(VReaderListEntry *list); | 
|  | VReader *vreader_get_reader_by_id(vreader_id_t id); | 
|  | VReader *vreader_get_reader_by_name(const char *name); | 
|  |  | 
|  | /* | 
|  | * list tools for vcard_emul | 
|  | */ | 
|  | void vreader_init(void); | 
|  | VReaderStatus vreader_add_reader(VReader *reader); | 
|  | VReaderStatus vreader_remove_reader(VReader *reader); | 
|  | VReaderStatus vreader_insert_card(VReader *reader, VCard *card); | 
|  |  | 
|  | #endif |