[Adapt HFP HAL] Refactor HFP connection events 90/88090/1
authorAnupam Roy <anupam.r@samsung.com>
Tue, 13 Sep 2016 08:43:01 +0000 (14:13 +0530)
committerAnupam Roy <anupam.r@samsung.com>
Tue, 13 Sep 2016 08:43:01 +0000 (14:13 +0530)
Change-Id: I0a34ac8071c2e438aabee180f750472ad22c5b86
Signed-off-by: Anupam Roy <anupam.r@samsung.com>
bt-oal/bluez_hal/src/bt-hal-event-receiver.c
bt-oal/bluez_hal/src/bt-hal-hf-dbus-handler.c

index 3388a41..99039e7 100644 (file)
@@ -85,7 +85,6 @@ static void __bt_hal_send_device_trust_state_event(gboolean is_trusted, const ch
 static int __bt_hal_register_audio_subscribe_signal(GDBusConnection *conn, int subscribe);
 static void __bt_hal_handle_headset_events(GVariant *msg, const char *member,const char *path);
 static void __bt_hal_send_hf_audio_connection_state_event(gboolean connected, const char *address);
-static void __bt_hal_send_hf_connection_state_event(gboolean connected, const char *address);
 
 static gboolean __bt_hal_discovery_finished_cb(gpointer user_data)
 {
@@ -1501,10 +1500,8 @@ static void __bt_hal_handle_device_specific_events(GVariant *msg, const char *me
                                DBG("HFP Profile state changed: BT_PROFILE_STATE_CONNECTING");
                        else if (state == BT_HAL_PROFILE_STATE_CONNECTED) {
                                DBG("HFP Profile state changed: BT_PROFILE_STATE_CONNECTED");
-                               __bt_hal_send_hf_connection_state_event(TRUE, address);
                        } else if (state == BT_HAL_PROFILE_STATE_DISCONNECTED) {
                                DBG("HFP Profile state changed: BT_PROFILE_STATE_DISCONNECTED");
-                               __bt_hal_send_hf_connection_state_event(FALSE, address);
                        } else if (state == BT_HAL_PROFILE_STATE_DISCONNECTING) {
                                DBG("HFP Profile state changed: BT_PROFILE_STATE_DISCONNECTING");
                        } else {
@@ -1575,28 +1572,6 @@ static void __bt_hal_send_av_connection_state_event(gboolean connected, const ch
                av_event_cb(HAL_EV_A2DP_CONN_STATE, &ev, sizeof(ev));
 }
 
-static void __bt_hal_send_hf_connection_state_event(gboolean connected, const char *address)
-{
-       DBG("+");
-       struct hal_ev_handsfree_conn_state ev;
-
-       if (connected == TRUE)
-               INFO("AG Profile Connected for address [%s]", address);
-       else
-               INFO("AG Profile DisConnected for address [%s]", address);
-
-       ev.state = (connected == TRUE) ?
-               HAL_EV_HANDSFREE_CONN_STATE_CONNECTED :
-               HAL_EV_HANDSFREE_CONN_STATE_DISCONNECTED;
-
-       _bt_convert_addr_string_to_type(ev.bdaddr, address);
-
-       if (!hf_event_cb)
-               ERR("HF event handler not registered");
-       else
-               hf_event_cb(HAL_EV_HANDSFREE_CONN_STATE, &ev, sizeof(ev));
-}
-
 static void __bt_hal_send_hf_audio_connection_state_event(gboolean connected,
                                                const char *address)
 {
index 2d62b83..8320db5 100644 (file)
@@ -77,27 +77,33 @@ static void __bt_hf_connect_cb(GDBusProxy *proxy, GAsyncResult *res,
         * If result is success, HF connected event will be triggered
         * automatically from stack, so return from here.
         */
-       if (result == BT_STATUS_SUCCESS)
-               goto done;
-
-
-       /* Prepare to send HF connection state event */
-       memset(&ev, 0, sizeof(ev));
-       _bt_convert_addr_string_to_type(ev.bdaddr, address);
-       ev.state = HAL_EV_HANDSFREE_CONN_STATE_DISCONNECTED;
-       if (!event_cb)
-               ERR("HF DBUS handler callback not registered");
-       else
-               event_cb(HAL_EV_HANDSFREE_CONN_STATE, (void *)&ev, sizeof(ev));
-
-done:
+       if (result == BT_STATUS_SUCCESS) {
+               /* Prepare to send HF connecting event */
+               memset(&ev, 0, sizeof(ev));
+               _bt_convert_addr_string_to_type(ev.bdaddr, address);
+               ev.state = HAL_EV_HANDSFREE_CONN_STATE_CONNECTING;
+               if (!event_cb)
+                       ERR("HF dbus handler callback not registered");
+               else
+                       event_cb(HAL_EV_HANDSFREE_CONN_STATE, (void *)&ev, sizeof(ev));
+
+       } else {
+               /* Prepare to send HF connection state event */
+               ERR("HF Connection has failed!!");
+               memset(&ev, 0, sizeof(ev));
+               _bt_convert_addr_string_to_type(ev.bdaddr, address);
+               ev.state = HAL_EV_HANDSFREE_CONN_STATE_DISCONNECTED;
+               if (!event_cb)
+                       ERR("HF DBUS handler callback not registered");
+               else
+                       event_cb(HAL_EV_HANDSFREE_CONN_STATE, (void *)&ev, sizeof(ev));
+       }
        g_free(address);
 }
 
 bt_status_t _bt_hal_dbus_handler_hf_connect(bt_bdaddr_t *bd_addr)
 {
        char *address;
-       struct hal_ev_handsfree_conn_state ev;
        GDBusConnection *conn;
        int ret;
 
@@ -127,15 +133,6 @@ bt_status_t _bt_hal_dbus_handler_hf_connect(bt_bdaddr_t *bd_addr)
                return BT_STATUS_FAIL;
        }
 
-       /* Prepare to send HID connecting event */
-       memset(&ev, 0, sizeof(ev));
-       ev.state = HAL_EV_HANDSFREE_CONN_STATE_CONNECTING;
-       memcpy(ev.bdaddr, bd_addr, sizeof(bt_bdaddr_t));
-       if (!event_cb)
-               ERR("HF dbus handler callback not registered");
-       else
-               event_cb(HAL_EV_HANDSFREE_CONN_STATE, (void *)&ev, sizeof(ev));
-
        return BT_STATUS_SUCCESS;
 }
 
@@ -167,15 +164,31 @@ static void __bt_hf_disconnect_cb(GDBusProxy *proxy, GAsyncResult *res,
        else
                DBG("HF Disconnect un-successful for Device: %s", address);
 
-       /* Prepare to send HF disconnection state event */
-       memset(&ev, 0, sizeof(ev));
-       _bt_convert_addr_string_to_type(ev.bdaddr, address);
-       ev.state = HAL_EV_HANDSFREE_CONN_STATE_DISCONNECTED;
-       if (!event_cb)
-               ERR("HF DBUS handler callback not registered");
-       else
-               event_cb(HAL_EV_HANDSFREE_CONN_STATE, (void *)&ev, sizeof(ev));
-
+       /*
+        * If result is success, HF connected event will be triggered
+        * automatically from stack, so return from here.
+        */
+       if (result == BT_STATUS_SUCCESS) {
+               /* Prepare to send HID connecting event */
+               memset(&ev, 0, sizeof(ev));
+               _bt_convert_addr_string_to_type(ev.bdaddr, address);
+               ev.state = HAL_EV_HANDSFREE_CONN_STATE_DISCONNECTING;
+               if (!event_cb)
+                       ERR("HF dbus handler callback not registered");
+               else
+                       event_cb(HAL_EV_HANDSFREE_CONN_STATE, (void *)&ev, sizeof(ev));
+
+       } else {
+               /* Prepare to send HF connection state event */
+               ERR("HF Connection has failed!!");
+               memset(&ev, 0, sizeof(ev));
+               _bt_convert_addr_string_to_type(ev.bdaddr, address);
+               ev.state = HAL_EV_HANDSFREE_CONN_STATE_DISCONNECTED;
+               if (!event_cb)
+                       ERR("HF DBUS handler callback not registered");
+               else
+                       event_cb(HAL_EV_HANDSFREE_CONN_STATE, (void *)&ev, sizeof(ev));
+       }
        g_free(address);
        DBG("-");
 }
@@ -183,7 +196,6 @@ static void __bt_hf_disconnect_cb(GDBusProxy *proxy, GAsyncResult *res,
 bt_status_t _bt_hal_dbus_handler_hf_disconnect(bt_bdaddr_t *bd_addr)
 {
        char *address;
-       struct hal_ev_handsfree_conn_state ev;
        GDBusConnection *conn;
        int ret;
 
@@ -213,14 +225,5 @@ bt_status_t _bt_hal_dbus_handler_hf_disconnect(bt_bdaddr_t *bd_addr)
                return BT_STATUS_FAIL;
        }
 
-       /* Prepare to send HID connecting event */
-       memset(&ev, 0, sizeof(ev));
-       ev.state = HAL_EV_HANDSFREE_CONN_STATE_DISCONNECTING;
-       memcpy(ev.bdaddr, bd_addr, sizeof(bt_bdaddr_t));
-       if (!event_cb)
-               ERR("HID dbus handler callback not registered");
-       else
-               event_cb(HAL_EV_HANDSFREE_CONN_STATE, (void *)&ev, sizeof(ev));
-
        return BT_STATUS_SUCCESS;
 }