bt_hal_a2dp_sink_cbacks = callbacks;
DBG("Register A2DP Sink events callback function");
_bt_hal_register_a2dp_sink_dbus_handler_cb(__bt_hal_handle_a2dp_sink_events);
- _bt_hal_register_a2dp_sink_event_handler_cb(__bt_hal_handle_a2dp_sink_events);
+ _bt_hal_register_event_handler_cb(HAL_A2DP_SNK, __bt_hal_handle_a2dp_sink_events);
return BT_STATUS_SUCCESS;
}
return;
bt_hal_a2dp_sink_cbacks = NULL;
- _bt_hal_unregister_a2dp_sink_event_handler_cb();
+ _bt_hal_unregister_event_handler_cb(HAL_A2DP_SNK);
}
static btav_interface_t a2dp_sink_if = {
bt_hal_av_cbacks = callbacks;
DBG("Register A2DP Src events callback function");
_bt_hal_register_av_dbus_handler_cb(__bt_hal_handle_av_events);
- _bt_hal_register_av_event_handler_cb(__bt_hal_handle_av_events);
+ _bt_hal_register_event_handler_cb(HAL_A2DP_SRC, __bt_hal_handle_av_events);
return BT_STATUS_SUCCESS;
}
if (!interface_ready())
return;
+ _bt_hal_unregister_event_handler_cb(HAL_A2DP_SRC);
bt_hal_av_cbacks = NULL;
}
bt_hal_avrcp_ctrl_cbacks = callbacks;
DBG("Register AVRCP Ctroller events callback function");
_bt_hal_register_avrcp_ctrl_dbus_handler_cb(__bt_hal_handle_avrcp_ctrl_event);
- _bt_hal_register_avrcp_ctrl_event_handler_cb(__bt_hal_handle_avrcp_ctrl_event);
+ _bt_hal_register_event_handler_cb(HAL_AVRCP_CTRL, __bt_hal_handle_avrcp_ctrl_event);
return BT_STATUS_SUCCESS;
}
if (!interface_ready())
return;
+ _bt_hal_unregister_event_handler_cb(HAL_AVRCP_CTRL);
bt_hal_avrcp_ctrl_cbacks = NULL;
}
/* Register AVRCP event callback */
_bt_hal_register_avrcp_tg_dbus_handler_cb(
__bt_hal_handle_avrcp_tg_events);
- _bt_hal_register_avrcp_tg_event_handler_cb(
+ _bt_hal_register_event_handler_cb(HAL_AVRCP_TG,
__bt_hal_handle_avrcp_tg_events);
bt_hal_avrcp_tg_cbacks = callbacks;
/* Un-register AVRCP event callback */
_bt_hal_unregister_avrcp_tg_dbus_handler_cb();
- _bt_hal_unregister_avrcp_tg_event_handler_cb();
+ _bt_hal_unregister_event_handler_cb(HAL_AVRCP_TG);
bt_hal_avrcp_tg_cbacks = NULL;
}
static handle_stack_msg hf_event_cb = NULL;
static handle_stack_msg avrcp_ctrl_event_cb = NULL;
static handle_stack_msg avrcp_tg_event_cb = NULL;
+static handle_stack_msg gatt_event_cb = NULL;
static guint event_id;
-
typedef struct {
gchar* sender_name;
gchar* object_path;
}
/* AVRCP Controller Role(Remote:AVRCP Target) Events */
-void _bt_hal_register_avrcp_ctrl_event_handler_cb(handle_stack_msg cb)
-{
- avrcp_ctrl_event_cb = cb;
-}
-
-void _bt_hal_unregister_avrcp_ctrl_event_handler_cb()
-{
- avrcp_ctrl_event_cb = NULL;
-}
-
static void __bt_hal_send_avrcp_ctrl_connection_state_event(gboolean connected, const char *address)
{
DBG("+");
g_variant_unref(value);
}
-void _bt_hal_register_hid_event_handler_cb(handle_stack_msg cb)
-{
- hid_event_cb = cb;
-}
-
-void _bt_hal_unregister_hid_event_handler_cb()
-{
- hid_event_cb = NULL;
-}
-
/* A2DP Src Role(Remote:Sink) Events */
-void _bt_hal_register_av_event_handler_cb(handle_stack_msg cb)
-{
- av_event_cb = cb;
-}
-
-void _bt_hal_unregister_av_event_handler_cb()
-{
- av_event_cb = NULL;
-}
-
static void __bt_hal_send_av_connection_state_event(gboolean connected, const char *address)
{
DBG("+");
}
/* A2DP Sink Role(Remote:Source) Events */
-void _bt_hal_register_a2dp_sink_event_handler_cb(handle_stack_msg cb)
-{
- a2dp_sink_event_cb = cb;
-}
-
-void _bt_hal_unregister_a2dp_sink_event_handler_cb(void)
-{
- a2dp_sink_event_cb = NULL;
-}
-
static void __bt_hal_send_a2dp_sink_connection_state_event(gboolean connected, const char *address)
{
DBG("+");
}
/* HF(AG Role) Events */
-void _bt_hal_register_hf_event_handler_cb(handle_stack_msg cb)
-{
- hf_event_cb = cb;
-}
-
-void _bt_hal_unregister_hf_event_handler_cb()
-{
- hf_event_cb = NULL;
-}
-
static void __bt_hal_send_hf_audio_connection_state_event(gboolean connected,
const char *address)
{
hf_event_cb(HAL_EV_HANDSFREE_AUDIO_STATE, &ev, sizeof(ev));
}
-/* AVRCP target Role(Remote:AVRCP Controller) Events */
-void _bt_hal_register_avrcp_tg_event_handler_cb(handle_stack_msg cb)
+void _bt_hal_register_event_handler_cb(bt_hal_module_e module, handle_stack_msg cb)
{
- avrcp_tg_event_cb = cb;
+ switch (module) {
+ case HAL_HIDHOST:
+ hid_event_cb = cb;
+ break;
+ case HAL_A2DP_SRC:
+ av_event_cb = cb;
+ break;
+ case HAL_A2DP_SNK:
+ a2dp_sink_event_cb = cb;
+ break;
+ case HAL_HF_AG:
+ hf_event_cb = cb;
+ break;
+ case HAL_AVRCP_TG:
+ avrcp_tg_event_cb = cb;
+ break;
+ case HAL_AVRCP_CTRL:
+ avrcp_ctrl_event_cb = cb;
+ break;
+ case HAL_GATT:
+ gatt_event_cb = cb;
+ break;
+ default:
+ ERR("Unknown module: %d", module);
+ }
}
-void _bt_hal_unregister_avrcp_tg_event_handler_cb()
+void _bt_hal_unregister_event_handler_cb(bt_hal_module_e module)
{
- avrcp_tg_event_cb = NULL;
+ switch (module) {
+ case HAL_HIDHOST:
+ hid_event_cb = NULL;
+ break;
+ case HAL_A2DP_SRC:
+ av_event_cb = NULL;
+ break;
+ case HAL_A2DP_SNK:
+ a2dp_sink_event_cb = NULL;
+ break;
+ case HAL_HF_AG:
+ hf_event_cb = NULL;
+ break;
+ case HAL_AVRCP_TG:
+ avrcp_tg_event_cb = NULL;
+ break;
+ case HAL_AVRCP_CTRL:
+ avrcp_ctrl_event_cb = NULL;
+ break;
+ case HAL_GATT:
+ gatt_event_cb = NULL;
+ break;
+ default:
+ ERR("Unknown module: %d", module);
+ }
}
int _bt_hal_initialize_event_receiver(handle_stack_msg cb);
-void _bt_hal_register_hid_event_handler_cb(handle_stack_msg cb);
+typedef enum {
+ HAL_HIDHOST,
+ HAL_A2DP_SRC,
+ HAL_A2DP_SNK,
+ HAL_HF_AG,
+ HAL_AVRCP_TG,
+ HAL_AVRCP_CTRL,
+ HAL_GATT,
+} bt_hal_module_e;
-void _bt_hal_unregister_hid_event_handler_cb();
+void _bt_hal_register_event_handler_cb(bt_hal_module_e module, handle_stack_msg cb);
-/* A2DP(SRC Role) Events*/
-void _bt_hal_register_av_event_handler_cb(handle_stack_msg cb);
-
-void _bt_hal_unregister_av_event_handler_cb();
-
-/* A2DP(SINK Role) Events */
-void _bt_hal_register_a2dp_sink_event_handler_cb(handle_stack_msg cb);
-
-void _bt_hal_unregister_a2dp_sink_event_handler_cb(void);
-
-/* HF(AG Role) Events*/
-void _bt_hal_register_hf_event_handler_cb(handle_stack_msg cb);
-
-void _bt_hal_unregister_hf_event_handler_cb();
-
-/* AVRCP Controller Role Events*/
-void _bt_hal_register_avrcp_ctrl_event_handler_cb(handle_stack_msg cb);
-
-void _bt_hal_unregister_avrcp_ctrl_event_handler_cb();
+void _bt_hal_unregister_event_handler_cb(bt_hal_module_e module);
handle_stack_msg _bt_hal_get_stack_message_handler(void);
int __bt_insert_hal_properties(void *buf, uint8_t type, uint16_t len, const void *val);
-/* AVRCP Target Role Events */
-void _bt_hal_register_avrcp_tg_event_handler_cb(handle_stack_msg cb);
-void _bt_hal_unregister_avrcp_tg_event_handler_cb(void);
-
#ifdef __cplusplus
}
#endif /* __cplusplus */
bt_hal_hf_cbacks = callbacks;
DBG("Register HF AG Role callback function");
_bt_hal_register_hf_dbus_handler_cb(__bt_hal_handle_hf_events);
- _bt_hal_register_hf_event_handler_cb(__bt_hal_handle_hf_events);
+ _bt_hal_register_event_handler_cb(HAL_HF_AG, __bt_hal_handle_hf_events);
return BT_STATUS_SUCCESS;
}
if (!interface_ready())
return;
+ _bt_hal_unregister_event_handler_cb(HAL_HF_AG);
bt_hal_hf_cbacks = NULL;
}
bt_hal_hid_cbacks = callbacks;
DBG("Register HID events callback function");
_bt_hal_register_hid_dbus_handler_cb(__bt_hal_handle_hid_events);
- _bt_hal_register_hid_event_handler_cb(__bt_hal_handle_hid_events);
+ _bt_hal_register_event_handler_cb(HAL_HIDHOST, __bt_hal_handle_hid_events);
return BT_STATUS_SUCCESS;
}
return;
_bt_hal_unregister_hid_dbus_handler_cb();
- _bt_hal_unregister_hid_event_handler_cb();
+ _bt_hal_unregister_event_handler_cb(HAL_HIDHOST);
bt_hal_hid_cbacks = NULL;
}