Add a function to unmount volumes. And a doxy fix.
authordavemds <davemds@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Mon, 20 Oct 2008 18:29:25 +0000 (18:29 +0000)
committerdavemds <davemds@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Mon, 20 Oct 2008 18:29:25 +0000 (18:29 +0000)
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/e_dbus@36866 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

src/lib/hal/E_Hal.h
src/lib/hal/e_hal_device.c

index 62d5e3b..00dea4e 100644 (file)
@@ -127,6 +127,7 @@ extern "C" {
 /* (un)mount */
    EAPI int e_hal_device_volume_mount(E_DBus_Connection *conn, const char *udi, const char *mount_point, const char *fstype, Ecore_List *options, E_DBus_Callback_Func cb_func, void *data);
    EAPI int e_hal_device_volume_unmount(E_DBus_Connection *conn, const char *udi, Ecore_List *options, E_DBus_Callback_Func cb_func, void *data);
+   EAPI int e_hal_device_volume_eject(E_DBus_Connection *conn, const char *udi, Ecore_List *options, E_DBus_Callback_Func cb_func, void *data);
 
 #ifdef __cplusplus
 }
index 54cf4d9..480132b 100644 (file)
@@ -239,6 +239,8 @@ e_hal_device_query_capability(E_DBus_Connection *conn, const char *udi, const ch
  * @param mount_point the path to mount to, or null for default
  * @param fstype the fstype of the device (e.g. volume.fstype property)
  * @param options a list of additional options (not sure... fstype dependant?)
+ * @param cb_func an optional callback to call when the mount is done
+ * @param data custom data pointer for the callback function
  */
 EAPI int
 e_hal_device_volume_mount(E_DBus_Connection *conn, const char *udi, const char *mount_point, const char *fstype, Ecore_List *options, E_DBus_Callback_Func cb_func, void *data)
@@ -273,11 +275,13 @@ e_hal_device_volume_mount(E_DBus_Connection *conn, const char *udi, const char *
 /* void Unmount(array{string} options) */
 
 /**
- * @brief Mount a Volume
+ * @brief Unmount a Volume
  *
  * @param conn the E_DBus_Connection
  * @param udi the udi of the device object
  * @param options a list of additional options (not sure... fstype dependant?)
+ * @param cb_func an optional callback to call when the unmount is done
+ * @param data cuatom data pointer for the callback function
  */
 EAPI int
 e_hal_device_volume_unmount(E_DBus_Connection *conn, const char *udi, Ecore_List *options, E_DBus_Callback_Func cb_func, void *data)
@@ -305,3 +309,39 @@ e_hal_device_volume_unmount(E_DBus_Connection *conn, const char *udi, Ecore_List
   dbus_message_unref(msg);
   return ret;
 }
+
+/**
+ * @brief Eject a Volume
+ *
+ * @param conn the E_DBus_Connection
+ * @param udi the udi of the device object
+ * @param options a list of additional options (not sure... fstype dependant?)
+ * @param cb_func an optional callback to call when the eject is done
+ * @param data cuatom data pointer for the callback function
+ */
+EAPI int
+e_hal_device_volume_eject(E_DBus_Connection *conn, const char *udi, Ecore_List *options, E_DBus_Callback_Func cb_func, void *data)
+{
+  DBusMessage *msg;
+  DBusMessageIter iter, subiter;
+  int ret;
+
+  msg = e_hal_device_volume_call_new(udi, "Eject");
+
+  dbus_message_iter_init_append(msg, &iter);
+  dbus_message_iter_open_container(&iter, DBUS_TYPE_ARRAY, "s", &subiter);
+  if (options)
+  {
+    const char *opt;
+    ecore_list_first_goto(options);
+    while ((opt = ecore_list_next(options)))
+    {
+      dbus_message_iter_append_basic(&subiter, DBUS_TYPE_STRING, &opt);
+    }
+  }
+  dbus_message_iter_close_container(&iter, &subiter) ;
+
+  ret = e_dbus_method_call_send(conn, msg, NULL, cb_func, NULL, -1, data) ? 1 : 0;
+  dbus_message_unref(msg);
+  return ret;
+}