Right parameters for state changed callback.
authorenglebass <englebass@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Wed, 5 Nov 2008 20:33:04 +0000 (20:33 +0000)
committerenglebass <englebass@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Wed, 5 Nov 2008 20:33:04 +0000 (20:33 +0000)
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/e_dbus@37503 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

src/lib/nm/E_Nm.h
src/lib/nm/e_nm_device.c
src/lib/nm/e_nm_private.h

index b683704..d909f02 100644 (file)
@@ -295,7 +295,7 @@ extern "C" {
 
    EAPI void  e_nm_device_data_set(E_NM_Device *device, void *data);
    EAPI void *e_nm_device_data_get(E_NM_Device *device);
-   EAPI void  e_nm_device_callback_state_changed_set(E_NM_Device *device, int (*cb_func)(E_NM_Device *device, E_NM_State state));
+   EAPI void  e_nm_device_callback_state_changed_set(E_NM_Device *device, int (*cb_func)(E_NM_Device *device, E_NM_State new_state, E_NM_State old_state, E_NM_Device_State_Reason reason));
    EAPI void  e_nm_device_callback_properties_changed_set(E_NM_Device *device, int (*cb_func)(E_NM_Device *device));
    /* TODO: e_nm_device_wireless_callback_access_point_added_set */
    /* TODO: e_nm_device_wireless_callback_access_point_removed_set */
index b966483..f242c2a 100644 (file)
@@ -112,22 +112,26 @@ static void
 cb_state_changed(void *data, DBusMessage *msg)
 {
   E_NM_Device_Internal *dev;
-  dbus_uint32_t state;
+  dbus_uint32_t new_state, old_state, reason;
   DBusError err;
   if (!msg || !data) return;
 
   dev = data;
   dbus_error_init(&err);
-  dbus_message_get_args(msg, &err, DBUS_TYPE_UINT32, &state, DBUS_TYPE_INVALID);
+  dbus_message_get_args(msg, &err,
+                        DBUS_TYPE_UINT32, &new_state,
+                        DBUS_TYPE_UINT32, &old_state,
+                        DBUS_TYPE_UINT32, &reason,
+                        DBUS_TYPE_INVALID);
   if (dbus_error_is_set(&err))
   {
     printf("Error: %s - %s\n", err.name, err.message);
     return;
   }
 
-  dev->dev.state = state;
+  dev->dev.state = new_state;
   if (dev->state_changed)
-    dev->state_changed(&(dev->dev), state);
+    dev->state_changed(&(dev->dev), new_state, old_state, reason);
 }
 
 static void
@@ -336,7 +340,7 @@ e_nm_device_data_get(E_NM_Device *device)
 }
 
 EAPI void
-e_nm_device_callback_state_changed_set(E_NM_Device *device, int (*cb_func)(E_NM_Device *device, E_NM_State state))
+e_nm_device_callback_state_changed_set(E_NM_Device *device, int (*cb_func)(E_NM_Device *device, E_NM_State new_state, E_NM_State old_state, E_NM_Device_State_Reason reason))
 {
   E_NM_Device_Internal *dev;
 
index b4cf1da..3f0e6fd 100644 (file)
@@ -38,7 +38,7 @@ struct E_NM_Internal
 
   E_DBus_Connection *conn;
 
-  int  (*state_changed)(E_NM *nm, unsigned int state);
+  int  (*state_changed)(E_NM *nm, E_NM_State state);
   int  (*properties_changed)(E_NM *nm);
   int  (*device_added)(E_NM *nm, const char *device);
   int  (*device_removed)(E_NM *nm, const char *device);
@@ -57,7 +57,7 @@ struct E_NM_Device_Internal
 
   E_NM_Internal *nmi;
 
-  int  (*state_changed)(E_NM_Device *device, unsigned int state);
+  int  (*state_changed)(E_NM_Device *device, E_NM_State new_state, E_NM_State old_state, E_NM_Device_State_Reason reason);
   int  (*properties_changed)(E_NM_Device *device);
   Ecore_List *handlers;