[maemo-commits] [maemo-commits] r8514 - projects/haf/branches/hildon-fm/1.x/hildon-fm
From: www-data at stage.maemo.org www-data at stage.maemo.orgDate: Thu Nov 30 18:29:01 EET 2006
- Previous message: [maemo-commits] r8513 - projects/haf/branches/hildon-fm/1.x/hildon-fm
- Next message: [maemo-commits] r8515 - projects/haf/branches/hildon-fm/1.x/hildon-fm
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Author: marivoll Date: 2006-11-30 18:29:00 +0200 (Thu, 30 Nov 2006) New Revision: 8514 Modified: projects/haf/branches/hildon-fm/1.x/hildon-fm/hildon-file-system-settings.c Log: * hildon-fm/hildon-file-system-settings.c (hildon_file_system_settings_get_property, hildon_file_system_settings_class_init): Added "bonding-changed" property. (hildon_file_system_settings_setup_dbus): Catch bonding signals from Bluez. (hildon_file_system_settings_handle_dbus_signal): Handle them. Modified: projects/haf/branches/hildon-fm/1.x/hildon-fm/hildon-file-system-settings.c =================================================================== --- projects/haf/branches/hildon-fm/1.x/hildon-fm/hildon-file-system-settings.c 2006-11-30 16:22:03 UTC (rev 8513) +++ projects/haf/branches/hildon-fm/1.x/hildon-fm/hildon-file-system-settings.c 2006-11-30 16:29:00 UTC (rev 8514) @@ -62,7 +62,8 @@ PROP_MMC_USED, PROP_MMC_CORRUPTED, PROP_INTERNAL_MMC_CORRUPTED, - PROP_IAP_CONNECTED + PROP_IAP_CONNECTED, + PROP_BONDING_CHANGED }; #define PRIVATE(obj) HILDON_FILE_SYSTEM_SETTINGS(obj)->priv @@ -83,6 +84,14 @@ #define ICD_MATCH_RULE "type='signal',interface='" ICD_DBUS_INTERFACE \ "',member='" ICD_STATUS_CHANGED_SIG "'" +#define BT_BONDING_CREATED_RULE "type='signal'," \ + "interface='org.bluez.Adapter'," \ + "member='BondingCreated'" + +#define BT_BONDING_REMOVED_RULE "type='signal'," \ + "interface='org.bluez.Adapter'," \ + "member='BondingRemoved'" + /* For getting and tracking the Bluetooth name */ #define BTNAME_SERVICE "org.bluez" @@ -163,6 +172,9 @@ case PROP_IAP_CONNECTED: g_value_set_boolean(value, priv->iap_connected); break; + case PROP_BONDING_CHANGED: + g_value_set_boolean(value, TRUE); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -370,18 +382,25 @@ g_assert(HILDON_IS_FILE_SYSTEM_SETTINGS(data)); if (dbus_message_is_signal(msg, MCE_SIGNAL_IF, MCE_DEVICE_MODE_SIG)) - { - set_flight_mode_from_message(HILDON_FILE_SYSTEM_SETTINGS(data), msg); - } + { + set_flight_mode_from_message(HILDON_FILE_SYSTEM_SETTINGS(data), msg); + } else if (dbus_message_is_signal(msg, BTNAME_SIGNAL_IF, BTNAME_SIG_CHANGED)) - { - set_bt_name_from_message(HILDON_FILE_SYSTEM_SETTINGS(data), msg); - } + { + set_bt_name_from_message(HILDON_FILE_SYSTEM_SETTINGS(data), msg); + } + else if (dbus_message_is_signal(msg, "org.bluez.Adapter", "BondingCreated") + || dbus_message_is_signal(msg, "org.bluez.Adapter", + "BondingRemoved")) + { + fprintf (stderr, "BONDING CHANGED\n"); + g_object_notify (data, "bonding-changed"); + } else if (dbus_message_is_signal (msg, ICD_DBUS_INTERFACE, ICD_STATUS_CHANGED_SIG)) - { - set_icd_status_from_message (HILDON_FILE_SYSTEM_SETTINGS (data), msg); - } + { + set_icd_status_from_message (HILDON_FILE_SYSTEM_SETTINGS (data), msg); + } return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; } @@ -529,6 +548,22 @@ dbus_error_free (&error); } + dbus_error_init (&error); + dbus_bus_add_match (conn, BT_BONDING_CREATED_RULE, &error); + if (dbus_error_is_set(&error)) + { + ULOG_ERR_F("dbus_bus_add_match failed: %s\n", error.message); + dbus_error_free (&error); + } + + dbus_error_init (&error); + dbus_bus_add_match (conn, BT_BONDING_REMOVED_RULE, &error); + if (dbus_error_is_set(&error)) + { + ULOG_ERR_F("dbus_bus_add_match failed: %s\n", error.message); + dbus_error_free (&error); + } + if (!dbus_connection_add_filter(conn, hildon_file_system_settings_handle_dbus_signal, self, NULL)) { @@ -658,6 +693,10 @@ g_param_spec_boolean("iap-connected", "IAP Connected", "Whether or not we have a internet connection", FALSE, G_PARAM_READABLE)); + g_object_class_install_property(object_class, PROP_BONDING_CHANGED, + g_param_spec_boolean("bonding-changed", "Bluetooth bondings changed", + "Hack: only used for notify signals...", + FALSE, G_PARAM_READABLE)); } static gboolean delayed_init(gpointer data)
- Previous message: [maemo-commits] r8513 - projects/haf/branches/hildon-fm/1.x/hildon-fm
- Next message: [maemo-commits] r8515 - projects/haf/branches/hildon-fm/1.x/hildon-fm
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]