summaryrefslogtreecommitdiff
path: root/libdleyna/server/task.c
diff options
context:
space:
mode:
Diffstat (limited to 'libdleyna/server/task.c')
-rw-r--r--libdleyna/server/task.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/libdleyna/server/task.c b/libdleyna/server/task.c
index 9943319..a5b03da 100644
--- a/libdleyna/server/task.c
+++ b/libdleyna/server/task.c
@@ -52,6 +52,12 @@ static void prv_delete(dls_task_t *task)
g_variant_unref(task->ut.search.filter);
g_free(task->ut.search.sort_by);
break;
+ case DLS_TASK_BROWSE_OBJECTS:
+ if (task->ut.browse_objects.objects)
+ g_variant_unref(task->ut.browse_objects.objects);
+ if (task->ut.browse_objects.filter)
+ g_variant_unref(task->ut.browse_objects.filter);
+ break;
case DLS_TASK_GET_RESOURCE:
if (task->ut.resource.filter)
g_variant_unref(task->ut.resource.filter);
@@ -412,6 +418,26 @@ finished:
return task;
}
+dls_task_t *dls_task_browse_objects_new(dleyna_connector_msg_id_t invocation,
+ const gchar *path, GVariant *parameters,
+ GError **error)
+{
+ dls_task_t *task;
+
+ task = prv_m2spec_task_new(DLS_TASK_BROWSE_OBJECTS, invocation, path,
+ "(@aa{sv})", error, FALSE);
+ if (!task)
+ goto finished;
+
+ g_variant_get(parameters, "(@ao@as)",
+ &task->ut.browse_objects.objects,
+ &task->ut.browse_objects.filter);
+
+finished:
+
+ return task;
+}
+
dls_task_t *dls_task_get_resource_new(dleyna_connector_msg_id_t invocation,
const gchar *path, GVariant *parameters,
GError **error)