summaryrefslogtreecommitdiff
path: root/vreader.c
diff options
context:
space:
mode:
Diffstat (limited to 'vreader.c')
-rw-r--r--vreader.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/vreader.c b/vreader.c
index 85f96a8..5e46019 100644
--- a/vreader.c
+++ b/vreader.c
@@ -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;
}