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)
{
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 {
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)
{
* 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;
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;
}
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("-");
}
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;
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;
}