diff options
author | Philip Langdale <philipl@overt.org> | 2013-03-10 12:22:51 -0700 |
---|---|---|
committer | Linus Walleij <triad@df.lth.se> | 2013-03-11 13:15:23 +0100 |
commit | 50dd3478d53bbdaadce8b9eea125d0e427c7d79d (patch) | |
tree | 5d5e04817ab04acb97ab8c26e340f6b235b60228 | |
parent | cb2794ebf651dc2ce2be074b70432b6e9c839727 (diff) | |
download | libmtp-50dd3478d53bbdaadce8b9eea125d0e427c7d79d.tar.gz |
Propagate StoreRemoved, ObjectAdded and ObjectRemoved events.
These events, along with the previously exposed StoreAdded event,
are the most frequently implemented events on MTP devices. In the
case of Google's Android MTP stack, they are the only events
exposed.
In the case of StoreRemoved, the param value is the storage ID
and in the case of ObjectAdded/Removed, it is the entity ID.
Signed-off-by: Philip Langdale <philipl@overt.org>
Signed-off-by: Linus Walleij <triad@df.lth.se>
-rw-r--r-- | src/libmtp.c | 6 | ||||
-rw-r--r-- | src/libmtp.h.in | 3 |
2 files changed, 9 insertions, 0 deletions
diff --git a/src/libmtp.c b/src/libmtp.c index 9bfb20f..b08c5c5 100644 --- a/src/libmtp.c +++ b/src/libmtp.c @@ -2171,9 +2171,13 @@ int LIBMTP_Read_Event(LIBMTP_mtpdevice_t *device, LIBMTP_event_t *event, uint32_ break; case PTP_EC_ObjectAdded: LIBMTP_INFO("Received event PTP_EC_ObjectAdded in session %u\n", session_id); + *event = LIBMTP_EVENT_OBJECT_ADDED; + *out1 = param1; break; case PTP_EC_ObjectRemoved: LIBMTP_INFO("Received event PTP_EC_ObjectRemoved in session %u\n", session_id); + *event = LIBMTP_EVENT_OBJECT_REMOVED; + *out1 = param1; break; case PTP_EC_StoreAdded: LIBMTP_INFO("Received event PTP_EC_StoreAdded in session %u\n", session_id); @@ -2184,6 +2188,8 @@ int LIBMTP_Read_Event(LIBMTP_mtpdevice_t *device, LIBMTP_event_t *event, uint32_ case PTP_EC_StoreRemoved: LIBMTP_INFO("Received event PTP_EC_StoreRemoved in session %u\n", session_id); /* TODO: rescan storages */ + *event = LIBMTP_EVENT_STORE_REMOVED; + *out1 = param1; break; case PTP_EC_DevicePropChanged: LIBMTP_INFO("Received event PTP_EC_DevicePropChanged in session %u\n", session_id); diff --git a/src/libmtp.h.in b/src/libmtp.h.in index de5680a..9c1c73f 100644 --- a/src/libmtp.h.in +++ b/src/libmtp.h.in @@ -771,6 +771,9 @@ struct LIBMTP_devicestorage_struct { enum LIBMTP_event_enum { LIBMTP_EVENT_NONE, LIBMTP_EVENT_STORE_ADDED, + LIBMTP_EVENT_STORE_REMOVED, + LIBMTP_EVENT_OBJECT_ADDED, + LIBMTP_EVENT_OBJECT_REMOVED, }; typedef enum LIBMTP_event_enum LIBMTP_event_t; |