From a59bb9f997a5c3a66b0065f072a3175924bd0343 Mon Sep 17 00:00:00 2001 From: englebass Date: Wed, 5 Nov 2008 20:33:04 +0000 Subject: [PATCH] Right parameters for state changed callback. 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 | 2 +- src/lib/nm/e_nm_device.c | 14 +++++++++----- src/lib/nm/e_nm_private.h | 4 ++-- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/lib/nm/E_Nm.h b/src/lib/nm/E_Nm.h index b683704..d909f02 100644 --- a/src/lib/nm/E_Nm.h +++ b/src/lib/nm/E_Nm.h @@ -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 */ diff --git a/src/lib/nm/e_nm_device.c b/src/lib/nm/e_nm_device.c index b966483..f242c2a 100644 --- a/src/lib/nm/e_nm_device.c +++ b/src/lib/nm/e_nm_device.c @@ -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; diff --git a/src/lib/nm/e_nm_private.h b/src/lib/nm/e_nm_private.h index b4cf1da..3f0e6fd 100644 --- a/src/lib/nm/e_nm_private.h +++ b/src/lib/nm/e_nm_private.h @@ -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; -- 2.7.4