/* * 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