summaryrefslogtreecommitdiff
path: root/libdleyna/server/server.c
diff options
context:
space:
mode:
Diffstat (limited to 'libdleyna/server/server.c')
-rw-r--r--libdleyna/server/server.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/libdleyna/server/server.c b/libdleyna/server/server.c
index fff5ca9..10e01c0 100644
--- a/libdleyna/server/server.c
+++ b/libdleyna/server/server.c
@@ -453,6 +453,14 @@ static const gchar g_server_introspection[] =
" <arg type='s' name='"DLS_INTERFACE_MIME_TYPE"'"
" direction='out'/>"
" </method>"
+ " <method name='"DLS_INTERFACE_BROWSE_OBJECTS"'>"
+ " <arg type='ao' name='"DLS_INTERFACE_OBJECTS_PATH"'"
+ " direction='in'/>"
+ " <arg type='as' name='"DLS_INTERFACE_FILTER"'"
+ " direction='in'/>"
+ " <arg type='aa{sv}' name='"DLS_INTERFACE_CHILDREN"'"
+ " direction='out'/>"
+ " </method>"
" <property type='s' name='"DLS_INTERFACE_PROP_LOCATION"'"
" access='read'/>"
" <property type='s' name='"DLS_INTERFACE_PROP_UDN"'"
@@ -666,6 +674,10 @@ static void prv_process_async_task(dls_task_t *task)
dls_upnp_search(g_context.upnp, client, task,
prv_async_task_complete);
break;
+ case DLS_TASK_BROWSE_OBJECTS:
+ dls_upnp_browse_objects(g_context.upnp, client, task,
+ prv_async_task_complete);
+ break;
case DLS_TASK_GET_RESOURCE:
dls_upnp_get_resource(g_context.upnp, client, task,
prv_async_task_complete);
@@ -1189,6 +1201,9 @@ static void prv_device_method_call(dleyna_connector_id_t conn,
} else if (!strcmp(method, DLS_INTERFACE_GET_ICON)) {
task = dls_task_get_icon_new(invocation, object, parameters,
&error);
+ } else if (!strcmp(method, DLS_INTERFACE_BROWSE_OBJECTS)) {
+ task = dls_task_browse_objects_new(invocation, object,
+ parameters, &error);
} else if (!strcmp(method, DLS_INTERFACE_CANCEL)) {
task = NULL;