diff options
Diffstat (limited to 'libdleyna/server/task.c')
-rw-r--r-- | libdleyna/server/task.c | 26 |
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) |