static GMainLoop *gmain_loop = NULL;
static GDBusProxy *service_gproxy;
-static int owner_sig_id = -1;
-static int name_owner_sig_id = -1;
+static guint interface_added_sig_id = 0;
+static guint interface_removed_sig_id = 0;
+static guint name_owner_sig_id = 0;
GDBusConnection *ag_dbus_conn = NULL;
gchar *remote_dev_path = NULL;
gboolean wbs_en;
static guint hs_bluez_id;
static guint app_id;
#ifdef TIZEN_FEATURE_BT_MEDIA_ENHANCE
-static int media_sig_id = -1;
-static int media_state_sig_id = -1;
+static guint media_sig_id = 0;
+static guint media_state_sig_id = 0;
static bt_ag_media_transport_state_t transport_state;
#endif
if (ag_dbus_conn) {
__bt_ag_unregister_profile_methods();
- if (owner_sig_id != -1)
+ if (interface_added_sig_id)
g_dbus_connection_signal_unsubscribe(ag_dbus_conn,
- owner_sig_id);
+ interface_added_sig_id);
- if (name_owner_sig_id != -1)
+ if (interface_removed_sig_id)
+ g_dbus_connection_signal_unsubscribe(ag_dbus_conn,
+ interface_removed_sig_id);
+
+ if (name_owner_sig_id)
g_dbus_connection_signal_unsubscribe(ag_dbus_conn,
name_owner_sig_id);
#ifdef TIZEN_FEATURE_BT_MEDIA_ENHANCE
- if (media_sig_id != -1)
+ if (media_sig_id)
g_dbus_connection_signal_unsubscribe(ag_dbus_conn,
media_sig_id);
+ media_sig_id = 0;
- if (media_state_sig_id != -1)
+ if (media_state_sig_id)
g_dbus_connection_signal_unsubscribe(ag_dbus_conn,
media_state_sig_id);
+ media_state_sig_id = 0;
#endif
- name_owner_sig_id = -1;
+
+ interface_added_sig_id = 0;
+ interface_removed_sig_id = 0;
+ name_owner_sig_id = 0;
g_free(sco_owner);
sco_owner = NULL;
HSP_AG_UUID, "Headset Audio Gateway");
}
- owner_sig_id = g_dbus_connection_signal_subscribe(ag_dbus_conn,
- NULL, BT_MANAGER_INTERFACE, NULL, NULL, NULL, 0,
+ interface_added_sig_id = g_dbus_connection_signal_subscribe(ag_dbus_conn,
+ NULL, BT_MANAGER_INTERFACE,
+ BT_INTERFACES_ADDED, NULL, NULL, 0,
__bt_ag_agent_filter_cb, NULL, NULL);
+
+ interface_removed_sig_id = g_dbus_connection_signal_subscribe(ag_dbus_conn,
+ NULL, BT_MANAGER_INTERFACE,
+ BT_INTERFACES_REMOVED, NULL, NULL, 0,
+ __bt_ag_agent_filter_cb, NULL, NULL);
+
#ifdef TIZEN_FEATURE_BT_MEDIA_ENHANCE
media_sig_id = g_dbus_connection_signal_subscribe(ag_dbus_conn,
NULL, BT_PROPERTIES_INTERFACE, NULL, NULL,
#define TELEPHONY_APP_INTERFACE "org.tizen.csd.Call.Instance"
#define BT_HEADSET_INTERFACE "org.bluez.Headset"
#define BT_ADAPTER_INTERFACE "org.bluez.Adapter1"
+#define BT_INTERFACES_ADDED "InterfacesAdded"
+#define BT_INTERFACES_REMOVED "InterfacesRemoved"
#ifdef TIZEN_FEATURE_BT_MEDIA_ENHANCE
#define BT_PROPERTIES_INTERFACE "org.freedesktop.DBus.Properties"
#define BLUEZ_MEDIA_TRANSPORT_INTERFACE "org.bluez.MediaTransport1"
static GDBusConnection *gdbus_conn;
static GDBusProxy *service_gproxy;
-static int owner_sig_id = -1;
+static guint interface_added_sig_id;
+static guint interface_removed_sig_id;
int g_id = 0;
uint16_t hf_ver;
return;
}
- owner_sig_id = g_dbus_connection_signal_subscribe(conn,
- NULL, BT_MANAGER_INTERFACE, NULL, NULL, NULL, 0,
+ interface_added_sig_id = g_dbus_connection_signal_subscribe(conn,
+ NULL, BT_MANAGER_INTERFACE, BT_INTERFACES_ADDED, NULL, NULL, 0,
__bt_hf_agent_filter_cb, NULL, NULL);
+
+ interface_removed_sig_id = g_dbus_connection_signal_subscribe(conn,
+ NULL, BT_MANAGER_INTERFACE, BT_INTERFACES_REMOVED, NULL, NULL, 0,
+ __bt_hf_agent_filter_cb, NULL, NULL);
+
DBG("-");
return;
}
}
if (gdbus_conn) {
- if (owner_sig_id != -1)
+ if (interface_added_sig_id > 0)
g_dbus_connection_signal_unsubscribe(gdbus_conn,
- owner_sig_id);
+ interface_added_sig_id);
+
+ if (interface_removed_sig_id > 0)
+ g_dbus_connection_signal_unsubscribe(gdbus_conn,
+ interface_removed_sig_id);
+
+ interface_added_sig_id = 0;
+ interface_removed_sig_id = 0;
g_object_unref(gdbus_conn);
gdbus_conn = NULL;
#define BT_MANAGER_INTERFACE "org.freedesktop.DBus.ObjectManager"
#define BT_ADAPTER_INTERFACE "org.bluez.Adapter1"
+#define BT_INTERFACES_ADDED "InterfacesAdded"
+#define BT_INTERFACES_REMOVED "InterfacesRemoved"
+
#define retv_if(expr, val) \
do { \
if (expr) { \
static GDBusConnection *gdbus_conn;
static GDBusProxy *profile_gproxy;
-static guint owner_sig_id;
+static guint interface_added_sig_id;
+static guint interface_removed_sig_id;
static guint bluez_device_sig_id;
static guint name_owner_sig_id;
__bt_hid_agent_register();
}
- owner_sig_id = g_dbus_connection_signal_subscribe(conn,
- NULL, BT_MANAGER_INTERFACE, NULL, NULL, NULL, 0,
+ interface_added_sig_id = g_dbus_connection_signal_subscribe(conn,
+ NULL, BT_MANAGER_INTERFACE, BT_INTERFACES_ADDED, NULL, NULL, 0,
+ __bt_hid_agent_filter_cb, NULL, NULL);
+
+ interface_removed_sig_id = g_dbus_connection_signal_subscribe(conn,
+ NULL, BT_MANAGER_INTERFACE, BT_INTERFACES_REMOVED, NULL, NULL, 0,
__bt_hid_agent_filter_cb, NULL, NULL);
bluez_device_sig_id = g_dbus_connection_signal_subscribe(conn,
}
if (gdbus_conn) {
- if (owner_sig_id > 0)
+ if (interface_added_sig_id > 0)
+ g_dbus_connection_signal_unsubscribe(gdbus_conn,
+ interface_added_sig_id);
+
+ if (interface_removed_sig_id > 0)
g_dbus_connection_signal_unsubscribe(gdbus_conn,
- owner_sig_id);
+ interface_removed_sig_id);
if (bluez_device_sig_id > 0)
g_dbus_connection_signal_unsubscribe(gdbus_conn,
g_dbus_connection_signal_unsubscribe(gdbus_conn,
name_owner_sig_id);
- owner_sig_id = 0;
+ interface_added_sig_id = 0;
+ interface_removed_sig_id = 0;
bluez_device_sig_id = 0;
name_owner_sig_id = 0;
#define BT_ADAPTER_INTERFACE "org.bluez.Adapter1"
#define BT_PROPERTIES_INTERFACE "org.freedesktop.DBus.Properties"
+#define BT_INTERFACES_ADDED "InterfacesAdded"
+#define BT_INTERFACES_REMOVED "InterfacesRemoved"
+#define BT_PROPERTY_CHANGED "PropertiesChanged"
+
#define BLUEZ_MEDIA_TRANSPORT_INTERFACE "org.bluez.MediaTransport1"
#define BLUEZ_MEDIA_ENDPOINT_INTERFACE "org.bluez.MediaEndpoint1"
#define BLUEZ_DEVICE_INTERFACE "org.bluez.Device1"