diff options
author | Ludovic Ferrandis <ludovic.ferrandis@intel.com> | 2013-07-18 11:55:46 +0200 |
---|---|---|
committer | Regis Merlino <regis.merlino@intel.com> | 2013-07-18 12:58:07 +0200 |
commit | c8ffb0e53ef364951fb552fddfe7adbfa59e585c (patch) | |
tree | 45d8f702bbf641e7b432a48025eac5a41be4652e /libdleyna | |
parent | 11b34ca222a44f202eb411bd78f8a506e5dcdf1d (diff) | |
download | dleyna-renderer-c8ffb0e53ef364951fb552fddfe7adbfa59e585c.tar.gz |
[API] Issue #94: Add new SetUri API to Player
Fix issue #94: <https://github.com/01org/dleyna-renderer/issues/94>
Do the same as OpenUriEx, except it doesn't excecute the Play
command.
Signed-off-by: Ludovic Ferrandis <ludovic.ferrandis@intel.com>
Diffstat (limited to 'libdleyna')
-rw-r--r-- | libdleyna/renderer/device.c | 3 | ||||
-rw-r--r-- | libdleyna/renderer/server.c | 10 | ||||
-rw-r--r-- | libdleyna/renderer/task.c | 17 | ||||
-rw-r--r-- | libdleyna/renderer/task.h | 4 |
4 files changed, 34 insertions, 0 deletions
diff --git a/libdleyna/renderer/device.c b/libdleyna/renderer/device.c index 675f3f8..63c1060 100644 --- a/libdleyna/renderer/device.c +++ b/libdleyna/renderer/device.c @@ -2518,6 +2518,9 @@ static void prv_open_uri_cb(GUPnPServiceProxy *proxy, prv_reset_transport_speed_props(cb_data->device); + DLEYNA_LOG_DEBUG("Task: %s", (cb_data->task.type == DLR_TASK_OPEN_URI) + ? "OPEN URI" : "SET URI"); + if (cb_data->task.type == DLR_TASK_OPEN_URI) { cb_data->action = gupnp_service_proxy_begin_action( diff --git a/libdleyna/renderer/server.c b/libdleyna/renderer/server.c index d2b407f..fdbe611 100644 --- a/libdleyna/renderer/server.c +++ b/libdleyna/renderer/server.c @@ -91,6 +91,7 @@ #define DLR_INTERFACE_STOP "Stop" #define DLR_INTERFACE_OPEN_URI "OpenUri" #define DLR_INTERFACE_OPEN_URI_EX "OpenUriEx" +#define DLR_INTERFACE_SET_URI "SetUri" #define DLR_INTERFACE_SEEK "Seek" #define DLR_INTERFACE_SET_POSITION "SetPosition" #define DLR_INTERFACE_GOTO_TRACK "GotoTrack" @@ -213,6 +214,12 @@ static const gchar g_server_introspection[] = " <arg type='s' name='"DLR_INTERFACE_METADATA"'" " direction='in'/>" " </method>" + " <method name='"DLR_INTERFACE_SET_URI"'>" + " <arg type='s' name='"DLR_INTERFACE_URI"'" + " direction='in'/>" + " <arg type='s' name='"DLR_INTERFACE_METADATA"'" + " direction='in'/>" + " </method>" " <method name='"DLR_INTERFACE_SEEK"'>" " <arg type='x' name='"DLR_INTERFACE_OFFSET"'" " direction='in'/>" @@ -495,6 +502,7 @@ static void prv_process_async_task(dlr_task_t *task) prv_async_task_complete); break; case DLR_TASK_OPEN_URI: + case DLR_TASK_SET_URI: dlr_upnp_open_uri(g_context.upnp, task, prv_async_task_complete); break; @@ -786,6 +794,8 @@ static void prv_dlr_player_method_call(dleyna_connector_id_t conn, task = dlr_task_open_uri_new(invocation, object, parameters); else if (!strcmp(method, DLR_INTERFACE_OPEN_URI_EX)) task = dlr_task_open_uri_ex_new(invocation, object, parameters); + else if (!strcmp(method, DLR_INTERFACE_SET_URI)) + task = dlr_task_set_uri_new(invocation, object, parameters); else if (!strcmp(method, DLR_INTERFACE_SEEK)) task = dlr_task_seek_new(invocation, object, parameters); else if (!strcmp(method, DLR_INTERFACE_SET_POSITION)) diff --git a/libdleyna/renderer/task.c b/libdleyna/renderer/task.c index 784bae9..6058a41 100644 --- a/libdleyna/renderer/task.c +++ b/libdleyna/renderer/task.c @@ -102,6 +102,7 @@ static void prv_dlr_task_delete(dlr_task_t *task) g_variant_unref(task->ut.set_prop.params); break; case DLR_TASK_OPEN_URI: + case DLR_TASK_SET_URI: g_free(task->ut.open_uri.uri); g_free(task->ut.open_uri.metadata); break; @@ -291,6 +292,22 @@ dlr_task_t *dlr_task_open_uri_ex_new(dleyna_connector_msg_id_t invocation, return task; } +dlr_task_t *dlr_task_set_uri_new(dleyna_connector_msg_id_t invocation, + const gchar *path, GVariant *parameters) +{ + dlr_task_t *task; + + task = prv_device_task_new(DLR_TASK_SET_URI, invocation, path, + NULL); + + g_variant_get(parameters, "(ss)", + &task->ut.open_uri.uri, &task->ut.open_uri.metadata); + g_strstrip(task->ut.open_uri.uri); + g_strstrip(task->ut.open_uri.metadata); + + return task; +} + dlr_task_t *dlr_task_host_uri_new(dleyna_connector_msg_id_t invocation, const gchar *path, const gchar *sender, diff --git a/libdleyna/renderer/task.h b/libdleyna/renderer/task.h index 3aa8c8b..c69e917 100644 --- a/libdleyna/renderer/task.h +++ b/libdleyna/renderer/task.h @@ -45,6 +45,7 @@ enum dlr_task_type_t_ { DLR_TASK_NEXT, DLR_TASK_PREVIOUS, DLR_TASK_OPEN_URI, + DLR_TASK_SET_URI, DLR_TASK_SEEK, DLR_TASK_SET_POSITION, DLR_TASK_GOTO_TRACK, @@ -171,6 +172,9 @@ dlr_task_t *dlr_task_open_uri_new(dleyna_connector_msg_id_t invocation, dlr_task_t *dlr_task_open_uri_ex_new(dleyna_connector_msg_id_t invocation, const gchar *path, GVariant *parameters); +dlr_task_t *dlr_task_set_uri_new(dleyna_connector_msg_id_t invocation, + const gchar *path, GVariant *parameters); + dlr_task_t *dlr_task_host_uri_new(dleyna_connector_msg_id_t invocation, const gchar *path, const gchar *sender, GVariant *parameters); |