Update media-service-upnp to version 0.3.0 ( ca17a69 )
[profile/ivi/media-service-upnp.git] / src / device.h
index c7b68e2..2a7f8cd 100644 (file)
@@ -26,6 +26,8 @@
 #include <libgupnp/gupnp-control-point.h>
 
 #include "async.h"
+#include "chain-task.h"
+#include "client.h"
 #include "props.h"
 
 typedef struct msu_device_context_t_ msu_device_context_t;
@@ -45,46 +47,76 @@ struct msu_device_t_ {
        GPtrArray *contexts;
        guint timeout_id;
        GHashTable *uploads;
+       GHashTable *upload_jobs;
        guint upload_id;
+       guint system_update_id;
+       GVariant *search_caps;
+       GVariant *sort_caps;
+       GVariant *sort_ext_caps;
+       GVariant *feature_list;
+       gboolean shutting_down;
 };
 
 void msu_device_append_new_context(msu_device_t *device,
                                   const gchar *ip_address,
                                   GUPnPDeviceProxy *proxy);
 void msu_device_delete(void *device);
-gboolean msu_device_new(GDBusConnection *connection,
-                       GUPnPDeviceProxy *proxy,
-                       const gchar *ip_address,
-                       const GDBusSubtreeVTable *vtable,
-                       void *user_data,
-                       guint counter,
-                       msu_device_t **device);
+msu_device_t *msu_device_new(GDBusConnection *connection,
+                            GUPnPDeviceProxy *proxy,
+                            const gchar *ip_address,
+                            const GDBusSubtreeVTable *vtable,
+                            void *user_data,
+                            GHashTable *filter_map,
+                            guint counter,
+                            msu_chain_task_t *chain);
+
 msu_device_t *msu_device_from_path(const gchar *path, GHashTable *device_list);
-msu_device_context_t *msu_device_get_context(msu_device_t *device);
-void msu_device_get_children(msu_device_t *device,  msu_task_t *task,
-                            msu_async_cb_data_t *cb_data,
+msu_device_context_t *msu_device_get_context(msu_device_t *device,
+                                            msu_client_t *client);
+void msu_device_get_children(msu_device_t *device, msu_client_t *client,
+                            msu_task_t *task, msu_async_cb_data_t *cb_data,
                             const gchar *upnp_filter, const gchar *sort_by,
                             GCancellable *cancellable);
-void msu_device_get_all_props(msu_device_t *device,  msu_task_t *task,
+void msu_device_get_all_props(msu_device_t *device, msu_client_t *client,
+                             msu_task_t *task,
                              msu_async_cb_data_t *cb_data,
                              gboolean root_object,
                              GCancellable *cancellable);
-void msu_device_get_prop(msu_device_t *device,  msu_task_t *task,
-                        msu_async_cb_data_t *cb_data,
+void msu_device_get_prop(msu_device_t *device, msu_client_t *client,
+                        msu_task_t *task, msu_async_cb_data_t *cb_data,
                         msu_prop_map_t *prop_map, gboolean root_object,
                         GCancellable *cancellable);
-void msu_device_search(msu_device_t *device,  msu_task_t *task,
-                      msu_async_cb_data_t *cb_data, const gchar *upnp_filter,
-                      const gchar *upnp_query, const gchar *sort_by,
-                      GCancellable *cancellable);
-void msu_device_get_resource(msu_device_t *device,  msu_task_t *task,
+void msu_device_search(msu_device_t *device, msu_client_t *client,
+                      msu_task_t *task, msu_async_cb_data_t *cb_data,
+                      const gchar *upnp_filter, const gchar *upnp_query,
+                      const gchar *sort_by, GCancellable *cancellable);
+void msu_device_get_resource(msu_device_t *device, msu_client_t *client,
+                            msu_task_t *task,
                             msu_async_cb_data_t *cb_data,
                             const gchar *upnp_filter,
                             GCancellable *cancellable);
 void msu_device_subscribe_to_contents_change(msu_device_t *device);
-void msu_device_upload(msu_device_t *device,  msu_task_t *task,
-                      const gchar *parent_id, msu_async_cb_data_t *cb_data,
-                      GCancellable *cancellable);
-
+void msu_device_upload(msu_device_t *device, msu_client_t *client,
+                      msu_task_t *task, const gchar *parent_id,
+                      msu_async_cb_data_t *cb_data, GCancellable *cancellable);
+gboolean msu_device_get_upload_status(msu_device_t *device,
+                                     msu_task_t *task, GError **error);
+gboolean msu_device_cancel_upload(msu_device_t *device, msu_task_t *task,
+                                 GError **error);
+void msu_device_get_upload_ids(msu_device_t *device, msu_task_t *task);
+void msu_device_delete_object(msu_device_t *device, msu_client_t *client,
+                             msu_task_t *task,
+                             msu_async_cb_data_t *cb_data,
+                             GCancellable *cancellable);
+void msu_device_create_container(msu_device_t *device, msu_client_t *client,
+                                msu_task_t *task,
+                                const gchar *parent_id,
+                                msu_async_cb_data_t *cb_data,
+                                GCancellable *cancellable);
+void msu_device_update_object(msu_device_t *device, msu_client_t *client,
+                             msu_task_t *task,
+                             msu_async_cb_data_t *cb_data,
+                             const gchar *upnp_filter,
+                             GCancellable *cancellable);
 
 #endif