[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 ]
