Update media-service-upnp to version 0.3.0 ( ca17a69 )
[profile/ivi/media-service-upnp.git] / src / task.c
index 788f4d2..17e9e9a 100644 (file)
@@ -220,6 +220,20 @@ static msu_task_t *prv_upload_new_generic(msu_task_type_t type,
        return task;
 }
 
+msu_task_t *msu_task_prefer_local_addresses_new(
+                                       GDBusMethodInvocation *invocation,
+                                       GVariant *parameters)
+{
+       msu_task_t *task = g_new0(msu_task_t, 1);
+
+       task->type = MSU_TASK_SET_PREFER_LOCAL_ADDRESSES;
+       task->invocation = invocation;
+       task->synchronous = TRUE;
+       g_variant_get(parameters, "(b)",
+                     &task->ut.prefer_local_addresses.prefer);
+
+       return task;
+}
 
 msu_task_t *msu_task_upload_to_any_new(GDBusMethodInvocation *invocation,
                                       const gchar *path, GVariant *parameters)
@@ -235,6 +249,95 @@ msu_task_t *msu_task_upload_new(GDBusMethodInvocation *invocation,
                                      path, parameters);
 }
 
+msu_task_t *msu_task_get_upload_status_new(GDBusMethodInvocation *invocation,
+                                          const gchar *path,
+                                          GVariant *parameters)
+{
+       msu_task_t *task;
+
+       task = prv_m2spec_task_new(MSU_TASK_GET_UPLOAD_STATUS, invocation, path,
+                                  "(stt)");
+
+       g_variant_get(parameters, "(u)",
+                     &task->ut.upload_action.upload_id);
+       task->synchronous = TRUE;
+       task->multiple_retvals = TRUE;
+
+       return task;
+}
+
+msu_task_t *msu_task_get_upload_ids_new(GDBusMethodInvocation *invocation,
+                                       const gchar *path)
+{
+       msu_task_t *task;
+
+       task = prv_m2spec_task_new(MSU_TASK_GET_UPLOAD_IDS, invocation, path,
+                                  "(@au)");
+
+       task->synchronous = TRUE;
+
+       return task;
+}
+
+msu_task_t *msu_task_cancel_upload_new(GDBusMethodInvocation *invocation,
+                                      const gchar *path,
+                                      GVariant *parameters)
+{
+       msu_task_t *task;
+
+       task = prv_m2spec_task_new(MSU_TASK_CANCEL_UPLOAD, invocation, path,
+                                  NULL);
+
+       g_variant_get(parameters, "(u)",
+                     &task->ut.upload_action.upload_id);
+       task->synchronous = TRUE;
+
+       return task;
+}
+
+msu_task_t *msu_task_delete_new(GDBusMethodInvocation *invocation,
+                               const gchar *path)
+{
+       msu_task_t *task;
+
+       task = prv_m2spec_task_new(MSU_TASK_DELETE_OBJECT, invocation,
+                                  path, NULL);
+       return task;
+}
+
+msu_task_t *msu_task_create_container_new_generic(
+                                       GDBusMethodInvocation *invocation,
+                                       msu_task_type_t type,
+                                       const gchar *path,
+                                       GVariant *parameters)
+{
+       msu_task_t *task;
+
+       task = prv_m2spec_task_new(type, invocation, path, "(@o)");
+
+       g_variant_get(parameters, "(ss@as)",
+                                       &task->ut.create_container.display_name,
+                                       &task->ut.create_container.type,
+                                       &task->ut.create_container.child_types);
+
+       return task;
+}
+
+msu_task_t *msu_task_update_new(GDBusMethodInvocation *invocation,
+                               const gchar *path, GVariant *parameters)
+{
+       msu_task_t *task;
+
+       task = prv_m2spec_task_new(MSU_TASK_UPDATE_OBJECT, invocation, path,
+                                  NULL);
+
+       g_variant_get(parameters, "(@a{sv}@as)",
+                     &task->ut.update.to_add_update,
+                     &task->ut.update.to_delete);
+
+       return task;
+}
+
 static void prv_msu_task_delete(msu_task_t *task)
 {
        switch (task->type) {
@@ -270,6 +373,18 @@ static void prv_msu_task_delete(msu_task_t *task)
                g_free(task->ut.upload.display_name);
                g_free(task->ut.upload.file_path);
                break;
+       case MSU_TASK_CREATE_CONTAINER:
+       case MSU_TASK_CREATE_CONTAINER_IN_ANY:
+               g_free(task->ut.create_container.display_name);
+               g_free(task->ut.create_container.type);
+               g_variant_unref(task->ut.create_container.child_types);
+               break;
+       case MSU_TASK_UPDATE_OBJECT:
+               if (task->ut.update.to_add_update)
+                       g_variant_unref(task->ut.update.to_add_update);
+               if (task->ut.update.to_delete)
+                       g_variant_unref(task->ut.update.to_delete);
+               break;
        default:
                break;
        }