Set signal name to dbus subscription
[platform/core/connectivity/bluetooth-agent.git] / ag-agent / bluetooth-ag-agent.c
index 7cc6265..c1d9595 100644 (file)
@@ -44,8 +44,9 @@
 
 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;
@@ -64,8 +65,8 @@ static guint hf_bluez_id;
 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
 
@@ -4097,23 +4098,32 @@ static void __bt_ag_agent_dbus_deinit(void)
        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;
 
@@ -4324,9 +4334,16 @@ static void __bt_ag_agent_dbus_init(void)
                        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,