diff options
Diffstat (limited to 'vreader.c')
-rw-r--r-- | vreader.c | 15 |
1 files changed, 13 insertions, 2 deletions
@@ -484,6 +484,18 @@ vreader_remove_reader(VReader *reader) return VREADER_OK; } +/* + * Generate VEVENT_CARD_INSERT or VEVENT_CARD_REMOVE based on vreader + * state. Separated from vreader_insert_card to allow replaying events + * for a given state. + */ +void +vreader_queue_card_event(VReader *reader) +{ + vevent_queue_vevent(vevent_new( + reader->card ? VEVENT_CARD_INSERT : VEVENT_CARD_REMOVE, reader, + reader->card)); +} /* * insert/remove a new card. for removal, card == NULL @@ -499,8 +511,7 @@ vreader_insert_card(VReader *reader, VCard *card) } reader->card = vcard_reference(card); vreader_unlock(reader); - vevent_queue_vevent(vevent_new( - card ? VEVENT_CARD_INSERT : VEVENT_CARD_REMOVE, reader, card)); + vreader_queue_card_event(reader); return VREADER_OK; } |