diff options
author | Sébastien Bianti <sebastien.bianti@linux.intel.com> | 2013-04-08 16:08:07 +0200 |
---|---|---|
committer | Mark Ryan <mark.d.ryan@intel.com> | 2013-04-18 15:47:48 +0200 |
commit | 0a0871c6cc24e1d543ae422d5fa8a678ef4fb642 (patch) | |
tree | 163d3ad35d1777672e5785997e562bd7d4d91575 /libdleyna | |
parent | 4f1fb6e61ae3c4586dc51f0572e206923be401c5 (diff) | |
download | dleyna-renderer-0a0871c6cc24e1d543ae422d5fa8a678ef4fb642.tar.gz |
[Bug] Add a Rescan method to Manager interface
- Resolves bug #2
- Make use of new API gupnp_context_manager_rescan_control_points()
- Documentation updated.
Signed-off-by: Sébastien Bianti <sebastien.bianti@linux.intel.com>
Diffstat (limited to 'libdleyna')
-rw-r--r-- | libdleyna/renderer/server.c | 10 | ||||
-rw-r--r-- | libdleyna/renderer/task.c | 11 | ||||
-rw-r--r-- | libdleyna/renderer/task.h | 3 | ||||
-rw-r--r-- | libdleyna/renderer/upnp.c | 7 | ||||
-rw-r--r-- | libdleyna/renderer/upnp.h | 2 |
5 files changed, 33 insertions, 0 deletions
diff --git a/libdleyna/renderer/server.c b/libdleyna/renderer/server.c index c28952e..514b649 100644 --- a/libdleyna/renderer/server.c +++ b/libdleyna/renderer/server.c @@ -51,6 +51,7 @@ #define DLR_INTERFACE_GET_VERSION "GetVersion" #define DLR_INTERFACE_GET_SERVERS "GetServers" +#define DLR_INTERFACE_RESCAN "Rescan" #define DLR_INTERFACE_RELEASE "Release" #define DLR_INTERFACE_FOUND_SERVER "FoundServer" @@ -123,6 +124,8 @@ static const gchar g_root_introspection[] = " <arg type='as' name='"DLR_INTERFACE_SERVERS"'" " direction='out'/>" " </method>" + " <method name='"DLR_INTERFACE_RESCAN"'>" + " </method>" " <signal name='"DLR_INTERFACE_FOUND_SERVER"'>" " <arg type='s' name='"DLR_INTERFACE_PATH"'/>" " </signal>" @@ -392,6 +395,11 @@ static void prv_process_sync_task(dlr_task_t *task) dlr_task_complete(task); dleyna_task_queue_task_completed(task->atom.queue_id); break; + case DLR_TASK_RESCAN: + dlr_upnp_rescan(g_context.upnp); + dlr_task_complete(task); + dleyna_task_queue_task_completed(task->atom.queue_id); + break; case DLR_TASK_RAISE: case DLR_TASK_QUIT: error = g_error_new(DLEYNA_SERVER_ERROR, @@ -612,6 +620,8 @@ static void prv_dlr_method_call(dleyna_connector_id_t conn, task = dlr_task_get_version_new(invocation); else if (!strcmp(method, DLR_INTERFACE_GET_SERVERS)) task = dlr_task_get_servers_new(invocation); + else if (!strcmp(method, DLR_INTERFACE_RESCAN)) + task = dlr_task_rescan_new(invocation); else goto finished; diff --git a/libdleyna/renderer/task.c b/libdleyna/renderer/task.c index a18014a..575261a 100644 --- a/libdleyna/renderer/task.c +++ b/libdleyna/renderer/task.c @@ -26,6 +26,17 @@ #include "async.h" #include "server.h" +dlr_task_t *dlr_task_rescan_new(dleyna_connector_msg_id_t invocation) +{ + dlr_task_t *task = g_new0(dlr_task_t, 1); + + task->type = DLR_TASK_RESCAN; + task->invocation = invocation; + task->synchronous = TRUE; + + return task; +} + dlr_task_t *dlr_task_get_version_new(dleyna_connector_msg_id_t invocation) { dlr_task_t *task = g_new0(dlr_task_t, 1); diff --git a/libdleyna/renderer/task.h b/libdleyna/renderer/task.h index f78f21a..e1eaf1f 100644 --- a/libdleyna/renderer/task.h +++ b/libdleyna/renderer/task.h @@ -32,6 +32,7 @@ enum dlr_task_type_t_ { DLR_TASK_GET_VERSION, DLR_TASK_GET_SERVERS, + DLR_TASK_RESCAN, DLR_TASK_RAISE, DLR_TASK_QUIT, DLR_TASK_SET_PROP, @@ -109,6 +110,8 @@ struct dlr_task_t_ { } ut; }; +dlr_task_t *dlr_task_rescan_new(dleyna_connector_msg_id_t invocation); + dlr_task_t *dlr_task_get_version_new(dleyna_connector_msg_id_t invocation); dlr_task_t *dlr_task_get_servers_new(dleyna_connector_msg_id_t invocation); diff --git a/libdleyna/renderer/upnp.c b/libdleyna/renderer/upnp.c index 5d691b9..f1c4959 100644 --- a/libdleyna/renderer/upnp.c +++ b/libdleyna/renderer/upnp.c @@ -813,3 +813,10 @@ void dlr_upnp_unsubscribe(dlr_upnp_t *upnp) DLEYNA_LOG_DEBUG("Exit"); } + +void dlr_upnp_rescan(dlr_upnp_t *upnp) +{ + DLEYNA_LOG_DEBUG("re-scanning control points"); + + gupnp_context_manager_rescan_control_points(upnp->context_manager); +} diff --git a/libdleyna/renderer/upnp.h b/libdleyna/renderer/upnp.h index 9e19163..4345040 100644 --- a/libdleyna/renderer/upnp.h +++ b/libdleyna/renderer/upnp.h @@ -100,4 +100,6 @@ void dlr_upnp_lost_client(dlr_upnp_t *upnp, const gchar *client_name); void dlr_upnp_unsubscribe(dlr_upnp_t *upnp); +void dlr_upnp_rescan(dlr_upnp_t *upnp); + #endif /* DLR_UPNP_H__ */ |