summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlon Levy <alevy@redhat.com>2011-01-08 10:28:15 +0200
committerAlon Levy <alevy@redhat.com>2011-01-08 14:44:23 +0200
commit5244989a06583a7d4f8729835a2171ed80fee6e8 (patch)
tree92c828a760d248bd1f2875c9035717825096c4d9
parent3bd0f9f397f05e41d688921139b0879b36ab9ca0 (diff)
vreader: add vreader_queue_card_event
-rw-r--r--vreader.c15
-rw-r--r--vreader.h1
2 files changed, 14 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;
}
diff --git a/vreader.h b/vreader.h
index f3f9434..c7054da 100644
--- a/vreader.h
+++ b/vreader.h
@@ -29,6 +29,7 @@ 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);