2 * Copyright (c) 2015 -2016 Samsung Electronics Co., Ltd All Rights Reserved.
4 * Contact: Anupam Roy <anupam.r@samsung.com>
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
10 * http://www.apache.org/licenses/LICENSE-2.0
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
21 #ifndef _BT_HAL_MSG_H_
22 #define _BT_HAL_MSG_H_
24 #define HAL_MINIMUM_EVENT 0x81
25 /*TODO: More events to be added in subsequent patches */
27 /* HAL Global Macros */
28 #define HAL_POWER_OFF 0x00
29 #define HAL_POWER_ON 0x01
31 #define HAL_PROP_ADAPTER_NAME 0x01
32 #define HAL_PROP_ADAPTER_ADDR 0x02
33 #define HAL_PROP_ADAPTER_UUIDS 0x03
34 #define HAL_PROP_ADAPTER_CLASS 0x04
35 #define HAL_PROP_ADAPTER_TYPE 0x05
36 #define HAL_PROP_ADAPTER_SERVICE_REC 0x06
37 #define HAL_PROP_ADAPTER_SCAN_MODE 0x07
38 #define HAL_PROP_ADAPTER_BONDED_DEVICES 0x08
39 #define HAL_PROP_ADAPTER_DISC_TIMEOUT 0x09
42 #define HAL_PROP_DEVICE_NAME 0x01
43 #define HAL_PROP_DEVICE_ADDR 0x02
44 #define HAL_PROP_DEVICE_UUIDS 0x03
45 #define HAL_PROP_DEVICE_CLASS 0x04
46 #define HAL_PROP_DEVICE_TYPE 0x05
47 #define HAL_PROP_DEVICE_SERVICE_REC 0x06
49 /* Tizen specific HAL Adapter and Device property types.
50 These properties have to added to HAL bt_property_type_t enums */
52 struct hal_prop_device_service_rec {
57 } __attribute__((packed));
59 #define HAL_PROP_DEVICE_FRIENDLY_NAME 0x0a
60 #define HAL_PROP_DEVICE_RSSI 0x0b
61 #define HAL_PROP_DEVICE_VERSION_INFO 0x0c
63 * Tizen specific HAL Adapter and Device property types.
64 * These properties have to added to HAL bt_property_type_t enums
66 #define HAL_PROP_DEVICE_PAIRED 0x0d
67 #define HAL_PROP_DEVICE_CONNECTED 0x0e
68 #define HAL_PROP_DEVICE_TRUSTED 0x0f
69 #define HAL_PROP_ADAPTER_PAIRABLE 0x10
70 #define HAL_PROP_ADAPTER_PAIRABLE_TIMEOUT 0x11
71 #define HAL_PROP_ADAPTER_VERSION 0x12
72 #define HAL_PROP_ADAPTER_IPSP_INITIALIZED 0x13
73 #define HAL_PROP_ADAPTER_MODALIAS 0x14
75 #define HAL_PROP_DEVICE_MANUFACTURER_DATA_LEN 0x15
76 #define HAL_PROP_DEVICE_MANUFACTURER_DATA 0x16
77 #define HAL_PROP_DEVICE_BLE_ADV_DATA 0x17
78 #define HAL_PROP_ADAPTER_LOCAL_LE_FEAT 0x18
79 #define HAL_PROP_DEVICE_IS_ALIAS_SET 0x19
80 #define HAL_PROP_ADAPTER_LE_DISCOVERY_FINISHED 0x1a
82 struct hal_prop_device_info {
85 uint16_t manufacturer;
86 } __attribute__((packed));
88 #define HAL_PROP_DEVICE_TIMESTAMP 0xFF
90 #define HAL_EV_ADAPTER_STATE_CHANGED 0x00
91 struct hal_ev_adapter_state_changed {
93 } __attribute__((packed));
100 } __attribute__((packed));
102 #define HAL_EV_ADAPTER_PROPS_CHANGED 0x01
103 struct hal_ev_adapter_props_changed {
106 struct hal_property props[0];
107 } __attribute__((packed));
110 #define HAL_DISCOVERY_STATE_STOPPED 0x00
111 #define HAL_DISCOVERY_STATE_STARTED 0x01
113 #define HAL_EV_DISCOVERY_STATE_CHANGED 0x85
114 struct hal_ev_discovery_state_changed {
116 } __attribute__((packed));
118 #define HAL_EV_REMOTE_DEVICE_PROPS 0x83
119 struct hal_ev_remote_device_props {
123 struct hal_property props[0];
124 } __attribute__((packed));
126 #define HAL_EV_DEVICE_FOUND 0x84
127 struct hal_ev_device_found {
129 struct hal_property props[0];
130 } __attribute__((packed));
133 /* Device callbacks */
134 #define HAL_EV_PIN_REQUEST 0x86
135 struct hal_ev_pin_request {
138 uint32_t class_of_dev;
139 } __attribute__((packed));
141 #define HAL_EV_SSP_REQUEST 0x87
142 struct hal_ev_ssp_request {
145 uint32_t class_of_dev;
146 uint8_t pairing_variant;
148 } __attribute__((packed));
150 #define HAL_BOND_STATE_NONE 0
151 #define HAL_BOND_STATE_BONDING 1
152 #define HAL_BOND_STATE_BONDED 2
154 #define HAL_EV_BOND_STATE_CHANGED 0x88
155 struct hal_ev_bond_state_changed {
159 } __attribute__((packed));
161 #define HAL_EV_AUTHORIZE_REQUEST 0x89
162 struct hal_ev_authorize_request {
165 } __attribute__((packed));
168 #define HAL_EV_SOCK_AUTHORIZE_REQUEST 0x90
169 struct hal_ev_sock_conn_auth {
172 } __attribute__((packed));
173 #endif //TIZEN_BT_HAL
175 #define HAL_ACL_STATE_CONNECTED 0x00
176 #define HAL_ACL_STATE_DISCONNECTED 0x01
178 #define HAL_EV_ACL_STATE_CHANGED 0x8A
179 struct hal_ev_acl_state_changed {
183 } __attribute__((packed));
185 #define HAL_DEVICE_TRUSTED 0x00
186 #define HAL_DEVICE_UNTRUSTED 0x01
188 #define HAL_EV_DEVICE_TRUST_CHANGED 0x8B
189 struct hal_ev_device_trust_state_changed {
192 } __attribute__((packed));
194 #define BT_TRANSPORT_UNKNOWN 0x00
195 #define BT_TRANSPORT_BR_EDR 0x01
196 #define BT_TRANSPORT_LE 0x02
198 /* HID host events */
199 #define HAL_HIDHOST_STATE_CONNECTED 0x00
200 #define HAL_HIDHOST_STATE_CONNECTING 0x01
201 #define HAL_HIDHOST_STATE_DISCONNECTED 0x02
202 #define HAL_HIDHOST_STATE_DISCONNECTING 0x03
203 #define HAL_HIDHOST_STATE_NO_HID 0x07
204 #define HAL_HIDHOST_STATE_FAILED 0x08
205 #define HAL_HIDHOST_STATE_UNKNOWN 0x09
207 #define HAL_EV_HIDHOST_CONN_STATE 0x81
208 struct hal_ev_hidhost_conn_state {
211 } __attribute__((packed));
213 #define HAL_EV_HIDHOST_INFO 0x82
214 struct hal_ev_hidhost_info {
225 } __attribute__((packed));
227 #define HAL_EV_HIDHOST_PROTO_MODE 0x83
228 struct hal_ev_hidhost_proto_mode {
232 } __attribute__((packed));
234 #define HAL_EV_HIDHOST_IDLE_TIME 0x84
235 struct hal_ev_hidhost_idle_time {
239 } __attribute__((packed));
241 #define HAL_EV_HIDHOST_GET_REPORT 0x85
242 struct hal_ev_hidhost_get_report {
247 } __attribute__((packed));
249 #define HAL_EV_HIDHOST_VIRTUAL_UNPLUG 0x86
250 struct hal_ev_hidhost_virtual_unplug {
253 } __attribute__((packed));
255 #define HAL_EV_HIDHOST_HANDSHAKE 0x87
256 struct hal_ev_hidhost_handshake {
259 } __attribute__((packed));
261 /* Bluetooth Socket HAL events */
262 struct hal_ev_sock_connect {
267 } __attribute__((packed));
269 /* A2DP (AV) Headers */
270 #define HAL_EV_A2DP_STATE_DISCONNECTED 0x00
271 #define HAL_EV_A2DP_STATE_CONNECTING 0x01
272 #define HAL_EV_A2DP_STATE_CONNECTED 0x02
273 #define HAL_EV_A2DP_STATE_DISCONNECTING 0x03
275 #define HAL_EV_A2DP_CONN_STATE 0x8C
276 struct hal_ev_a2dp_conn_state {
279 } __attribute__((packed));
281 #define HAL_AUDIO_SUSPEND 0x00
282 #define HAL_AUDIO_STOPPED 0x01
283 #define HAL_AUDIO_STARTED 0x02
285 #define HAL_EV_A2DP_AUDIO_STATE 0x8D
286 struct hal_ev_a2dp_audio_state {
289 } __attribute__((packed));
291 #define HAL_EV_A2DP_AUDIO_CONFIG 0x8E
292 struct hal_ev_a2dp_audio_config {
294 uint32_t sample_rate;
295 uint8_t channel_count;
296 } __attribute__((packed));
298 /* A2DP Sink Role connection*/
299 #define HAL_EV_A2DP_SOURCE_CONN_STATE 0x8F
301 /* HandsFree Headers */
302 #define HAL_EV_HANDSFREE_CONN_STATE_DISCONNECTED 0x00
303 #define HAL_EV_HANDSFREE_CONN_STATE_CONNECTING 0x01
304 #define HAL_EV_HANDSFREE_CONN_STATE_CONNECTED 0x02
305 #define HAL_EV_HANDSFREE_CONN_STATE_SLC_CONNECTED 0x03
306 #define HAL_EV_HANDSFREE_CONN_STATE_DISCONNECTING 0x04
308 #define HAL_EV_HANDSFREE_CONN_STATE 0x91
309 struct hal_ev_handsfree_conn_state {
312 } __attribute__((packed));
314 #define HAL_EV_HANDSFREE_AUDIO_STATE_DISCONNECTED 0x00
315 #define HAL_EV_HANDSFREE_AUDIO_STATE_CONNECTING 0x01
316 #define HAL_EV_HANDSFREE_AUDIO_STATE_CONNECTED 0x02
317 #define HAL_EV_HANDSFREE_AUDIO_STATE_DISCONNECTING 0x04
319 #define HAL_EV_HANDSFREE_AUDIO_STATE 0x92
320 struct hal_ev_handsfree_audio_state {
323 } __attribute__((packed));
326 #define HAL_EV_HDP_APP_REG_STATE 0x93
327 struct hal_ev_hdp_app_reg_state {
330 } __attribute__((packed));
332 #define HAL_EV_HDP_CONN_STATE 0x94
333 struct hal_ev_hdp_conn_state {
338 uint8_t channel_state;
340 } __attribute__((packed));
342 /* AVRCP Controller Role HAL Events */
343 #define HAL_EV_AVRCP_CTRL_CONN_STATE 0x95
344 #define HAL_AVRCP_CTRL_STATE_DISCONNECTED 0x00
345 #define HAL_AVRCP_CTRL_STATE_CONNECTED 0x01
346 struct hal_ev_avrcp_ctrl_conn_state {
349 } __attribute__((packed));
351 #define HAL_EV_AVRCP_CTRL_PASS_THROUGH_RSP 0x96
352 struct hal_ev_pass_cmd_rsp {
356 } __attribute__((packed));
358 #define HAL_EV_AVRCP_CTRL_SET_PLAYER_APP_SETTING_RSP 0x97
359 #define HAL_AVRCP_PLAYER_APP_SETTING_REJECTED 0x00
360 #define HAL_AVRCP_PLAYER_APP_SETTING_ACCEPTED 0x01
361 struct hal_ev_set_player_app_setting_rsp {
364 } __attribute__((packed));
366 #define HAL_EV_AVRCP_CTRL_PLAYER_APP_SETTING_CHANGED 0x98
367 #define HAL_MAX_APP_SETTINGS 8
368 #define HAL_PLAYER_ATTR_EQUALIZER 0x01
369 #define HAL_PLAYER_ATTR_REPEAT 0x02
370 #define HAL_PLAYER_ATTR_SHUFFLE 0x03
371 #define HAL_PLAYER_ATTR_SCAN 0x04
372 struct hal_ev_player_setting {
375 uint8_t attr_ids[HAL_MAX_APP_SETTINGS];
376 uint8_t attr_values[HAL_MAX_APP_SETTINGS];
377 } __attribute__((packed));
379 #define HAL_EV_AVRCP_CTRL_TRACK_CHANGED 0x99
380 #define HAL_MAX_ATTR_STR_LEN 100
381 #define HAL_MAX_ATTR_NUM 10
382 #define HAL_MEDIA_ATTR_ID_INVALID -1
383 #define HAL_MEDIA_ATTR_ID_TITLE 0x00000001
384 #define HAL_MEDIA_ATTR_ID_ARTIST 0x00000002
385 #define HAL_MEDIA_ATTR_ID_ALBUM 0x00000003
386 #define HAL_MEDIA_ATTR_ID_TRACK_NUM 0x00000004
387 #define HAL_MEDIA_ATTR_ID_NUM_TRACKS 0x00000005
388 #define HAL_MEDIA_ATTR_ID_GENRE 0x00000006
389 #define HAL_MEDIA_ATTR_ID_PLAYING_TIME 0x00000007
390 struct hal_attr_val {
392 uint8_t text[HAL_MAX_ATTR_STR_LEN];
393 } __attribute__((packed));
395 struct hal_ev_track_changed {
398 struct hal_attr_val attr[HAL_MAX_ATTR_NUM];
399 } __attribute__((packed));
401 #define HAL_EV_AVRCP_CTRL_PLAY_POSITION_CHANGED 0xA0
402 struct hal_ev_play_position {
406 } __attribute__((packed));
408 #define HAL_EV_AVRCP_CTRL_PLAY_STATUS_CHANGED 0xA1
409 #define HAL_PLAYSTATE_STOPPED 0x00 /* Stopped */
410 #define HAL_PLAYSTATE_PLAYING 0x01 /* Playing */
411 #define HAL_PLAYSTATE_PAUSED 0x02 /* Paused */
412 #define HAL_PLAYSTATE_FWD_SEEK 0x03 /* Fwd Seek*/
413 #define HAL_PLAYSTATE_REV_SEEK 0x04 /* Rev Seek*/
414 #define HAL_PLAYSTATE_ERROR 0xFF /* Error */
415 struct hal_ev_play_status_changed {
418 } __attribute__((packed));
420 /* AVRCP TG events */
422 #define HAL_EV_AVRCP_TG_CONN_STATE 0xA2
423 #define HAL_EV_AVRCP_TG_DELAY_CHANGE 0xF1
425 #define HAL_AVRCP_TG_STATE_DISCONNECTED 0x00
426 #define HAL_AVRCP_TG_STATE_CONNECTED 0x01
427 struct hal_ev_avrcp_tg_conn_state{
430 } __attribute__((packed));
432 struct hal_ev_avrcp_tg_delay_changed{
435 } __attribute__((packed));
437 #endif /* TIZEN_BT_HAL */
439 #define HAL_EV_AVRCP_TG_SET_PLAYER_PROPERTY 0xA3
441 #define HAL_AVRCP_TG_PLAYER_PROP_EQUALIZER 0x00
442 #define HAL_AVRCP_TG_PLAYER_PROP_REPEAT 0x01
443 #define HAL_AVRCP_TG_PLAYER_PROP_SHUFFLE 0x02
444 #define HAL_AVRCP_TG_PLAYER_PROP_SCAN 0x03
445 struct hal_ev_avrcp_tg_player_property {
448 } __attribute__((packed));
451 #define HAL_EV_SERVER_INSTANCE_INITIALIZED 0xA4
452 struct hal_ev_server_instance_registered {
454 uint32_t server_instance;
455 uint8_t app_uuid[16];
456 } __attribute__((packed));
458 #define HAL_EV_MULTI_ADV_DATA_SET 0xA5
459 struct hal_ev_multi_adv_data_set {
461 uint8_t server_instance;
462 } __attribute__((packed));
464 #define HAL_EV_MULTI_ADV_ENABLE 0xA6
465 struct hal_ev_multi_adv_enable {
467 uint32_t server_instance;
468 } __attribute__((packed));
470 #define HAL_EV_MULTI_ADV_DISABLE 0xA7
471 struct hal_ev_multi_adv_disable {
473 uint32_t server_instance;
474 } __attribute__((packed));
476 #define HAL_EV_MULTI_ADV_UPDATE 0xA8
477 struct hal_ev_multi_adv_update {
479 uint32_t server_instance;
480 } __attribute__((packed));
482 #define HAL_EV_LEGACY_ADV_ENABLE 0xA9
483 struct hal_ev_legacy_adv_status {
485 uint32_t server_instance;
486 } __attribute__((packed));
488 #define HAL_EV_GATT_CLIENT_REGISTERED 0xAA
489 struct hal_ev_gatt_client_registered {
492 uint8_t app_uuid[16];
493 } __attribute__((packed));
495 #define HAL_EV_GATT_CLIENT_SCAN_RESULT 0xAC
496 struct hal_ev_gatt_client_scan_result {
503 } __attribute__((packed));
505 #define HAL_EV_GATT_SERVICE_ADDED 0xAD
506 struct hal_ev_gatt_service_added {
508 uint32_t server_instance;
510 uint8_t svc_uuid[16];
511 uint32_t service_handle;
512 } __attribute__((packed));
514 #define HAL_EV_GATT_CHAR_ADDED 0xAE
515 struct hal_ev_gatt_char_added {
517 uint32_t server_instance;
518 uint32_t service_handle;
519 uint32_t char_handle;
520 uint8_t char_uuid[16];
521 } __attribute__((packed));
523 #define HAL_EV_GATT_DESC_ADDED 0xAF
524 struct hal_ev_gatt_desc_added {
526 uint32_t server_instance;
527 uint32_t service_handle;
528 uint32_t desc_handle;
529 uint8_t desc_uuid[16];
530 } __attribute__((packed));
532 #define HAL_EV_GATT_SERVICE_STARTED 0xB0
533 struct hal_ev_gatt_service_started {
535 uint32_t server_instance;
536 uint32_t service_handle;
537 } __attribute__((packed));
539 #define HAL_EV_GATT_SERVICE_DELETED 0xB1
540 struct hal_ev_gatt_service_deleted {
542 uint32_t server_instance;
543 uint32_t service_handle;
544 } __attribute__((packed));
546 #define HAL_EV_GATT_SERVER_CONNECTED 0xB2
547 struct hal_ev_gatt_server_connected {
549 uint32_t server_instance;
552 } __attribute__((packed));
554 #define HAL_EV_GATT_READ_REQUESTED 0xB3
555 struct hal_ev_gatt_server_read_req {
562 } __attribute__((packed));
564 #define HAL_EV_GATT_WRITE_REQUESTED 0xB4
565 struct hal_ev_gatt_server_write_req {
575 } __attribute__((packed));
577 #define HAL_EV_GATT_INDICATE_CFM 0xB5
578 struct hal_ev_gatt_server_indicate_cfm {
583 } __attribute__((packed));
586 #define HAL_EV_GATT_NOTIFICATION_CHANGE 0xB6
587 struct hal_ev_gatt_server_notifcation_change {
593 } __attribute__((packed));
595 #define HAL_EV_LE_STATE_CHANGED 0xB7
596 struct hal_ev_le_state_changed {
598 } __attribute__((packed));
599 #endif /* TIZEN_BT_HAL */
601 #define HAL_LE_STATE_CONNECTED 0x00
602 #define HAL_LE_STATE_DISCONNECTED 0x01
604 #define HAL_EV_LE_CONN_STATE_CHANGED 0xB8
605 struct hal_ev_le_conn_state_changed {
609 } __attribute__((packed));
611 #define HAL_EV_DEVICE_TRUSTED_PROFILES_CHANGED 0xB9
612 struct hal_ev_device_trusted_profiles_changed {
615 } __attribute__((packed));
617 #define HAL_RSSI_MONITORING_ENABLED 0x00
618 #define HAL_RSSI_MONITORING_DISABLED 0x01
620 #define HAL_EV_RSSI_MONITOR_STATE_CHANGED 0xBA
621 struct hal_ev_rssi_monitor_state_changed {
625 } __attribute__((packed));
627 #define HAL_EV_RSSI_ALERT_RECIEVED 0xBB
628 struct hal_ev_rssi_alert_recieved {
633 } __attribute__((packed));
635 #define HAL_EV_RAW_RSSI_RECIEVED 0xBC
636 struct hal_ev_raw_rssi_recieved {
640 } __attribute__((packed));
642 #define HAL_EV_GATT_CLIENT_CONNECTED 0xBD
643 #define HAL_EV_GATT_CLIENT_DISCONNECTED 0xBE
644 struct hal_ev_gatt_client_connected {
649 } __attribute__((packed));
651 #define HAL_EV_GATT_CLIENT_SEARCH_RESULT 0xBF
652 struct hal_ev_gatt_client_search_result {
657 } __attribute__((packed));
659 #define HAL_EV_GATT_CLIENT_SEARCH_COMPLETE 0xC0
660 struct hal_ev_gatt_client_search_complete {
663 } __attribute__((packed));
665 #define HAL_EV_GATT_CLIENT_CHARAC_SEARCH_RESULT 0xC1
666 struct hal_ev_gatt_client_char_search_result {
671 uint8_t svc_uuid[16];
672 uint8_t char_uuid[16];
674 } __attribute__((packed));
676 #define HAL_EV_GATT_CLIENT_DESC_SEARCH_RESULT 0XC2
677 struct hal_ev_gatt_client_desc_search_result {
682 uint8_t svc_uuid[16];
683 uint8_t char_uuid[16];
684 uint8_t desc_uuid[16];
685 } __attribute__((packed));
687 #define HAL_EV_GATT_CLIENT_READ_CHARAC 0XC3
688 #define HAL_EV_GATT_CLIENT_READ_DESC 0XC4
689 struct hal_ev_gatt_client_read_data {
694 uint8_t svc_uuid[16];
695 uint8_t char_uuid[16];
696 uint8_t desc_uuid[16];
699 } __attribute__((packed));
701 #define HAL_EV_GATT_CLIENT_WRITE_CHARAC 0XC5
702 #define HAL_EV_GATT_CLIENT_WRITE_DESC 0XC6
703 struct hal_ev_gatt_client_write_result {
708 uint8_t svc_uuid[16];
709 uint8_t char_uuid[16];
710 uint8_t desc_uuid[16];
711 } __attribute__((packed));
713 #define HAL_EV_GATT_CLIENT_WATCH_NOTIFICATION 0XC7
714 struct hal_ev_gatt_client_watch_notification {
720 uint8_t svc_uuid[16];
721 uint8_t char_uuid[16];
722 } __attribute__((packed));
724 #define HAL_EV_GATT_ACQUIRE_WRITE 0XC8
725 struct hal_ev_gatt_acquire_write {
729 uint8_t svc_uuid[16];
730 uint8_t char_uuid[16];
731 } __attribute__((packed));
733 #define HAL_EV_GATT_SERVER_ACQUIRE_WRITE_RES 0XC9
734 struct hal_ev_gatt_server_acquire_write_res {
740 } __attribute__((packed));
742 #define HAL_EV_GATT_SERVER_ACQUIRE_NOTIFY_RES 0XCA
743 struct hal_ev_gatt_server_acquire_notify {
749 } __attribute__((packed));
751 #define HAL_EV_GATT_CLIENT_NOTIFY_CHANGED_VALUE 0XCB
752 struct hal_ev_gatt_client_notify_changed_value {
759 uint8_t svc_uuid[16];
760 uint8_t char_uuid[16];
762 } __attribute__((packed));
764 #define HAL_EV_GATT_SERVER_MTU_CHANGED 0XCC
765 struct hal_ev_gatt_server_mtu_changed {
768 } __attribute__((packed));
770 /* HF Client Headers */
771 #define HAL_EV_HF_CLIENT_CONN_STATE_DISCONNECTED 0x00
772 #define HAL_EV_HF_CLIENT_CONN_STATE_CONNECTING 0x01
773 #define HAL_EV_HF_CLIENT_CONN_STATE_CONNECTED 0x02
774 #define HAL_EV_HF_CLIENT_CONN_STATE_SLC_CONNECTED 0x03
775 #define HAL_EV_HF_CLIENT_CONN_STATE_DISCONNECTING 0x04
777 #define HAL_EV_HF_CLIENT_CONN_STATE 0xCD
778 struct hal_ev_hf_client_conn_state {
781 } __attribute__((packed));
782 #endif //_BT_HAL_MSG_H_