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_STARTED 0x1a
81 #define HAL_PROP_ADAPTER_LE_DISCOVERY_STOPPED 0x1b
82 #define HAL_PROP_ADAPTER_A2DP_ROLE 0x1c
84 struct hal_prop_device_info {
87 uint16_t manufacturer;
88 } __attribute__((packed));
90 #define HAL_PROP_DEVICE_TIMESTAMP 0xFF
92 #define HAL_EV_ADAPTER_STATE_CHANGED 0x00
93 struct hal_ev_adapter_state_changed {
95 } __attribute__((packed));
102 } __attribute__((packed));
104 #define HAL_EV_ADAPTER_PROPS_CHANGED 0x01
105 struct hal_ev_adapter_props_changed {
108 struct hal_property props[0];
109 } __attribute__((packed));
112 #define HAL_DISCOVERY_STATE_STOPPED 0x00
113 #define HAL_DISCOVERY_STATE_STARTED 0x01
115 #define HAL_EV_DISCOVERY_STATE_CHANGED 0x85
116 struct hal_ev_discovery_state_changed {
118 } __attribute__((packed));
120 #define HAL_EV_REMOTE_DEVICE_PROPS 0x83
121 struct hal_ev_remote_device_props {
125 struct hal_property props[0];
126 } __attribute__((packed));
128 #define HAL_EV_DEVICE_FOUND 0x84
129 struct hal_ev_device_found {
131 struct hal_property props[0];
132 } __attribute__((packed));
135 /* Device callbacks */
136 #define HAL_EV_PIN_REQUEST 0x86
137 struct hal_ev_pin_request {
140 uint32_t class_of_dev;
141 } __attribute__((packed));
143 #define HAL_EV_SSP_REQUEST 0x87
144 struct hal_ev_ssp_request {
147 uint32_t class_of_dev;
148 uint8_t pairing_variant;
150 } __attribute__((packed));
152 #define HAL_BOND_STATE_NONE 0
153 #define HAL_BOND_STATE_BONDING 1
154 #define HAL_BOND_STATE_BONDED 2
156 #define HAL_EV_BOND_STATE_CHANGED 0x88
157 struct hal_ev_bond_state_changed {
161 } __attribute__((packed));
163 #define HAL_EV_AUTHORIZE_REQUEST 0x89
164 struct hal_ev_authorize_request {
167 } __attribute__((packed));
170 #define HAL_EV_SOCK_AUTHORIZE_REQUEST 0x90
171 struct hal_ev_sock_conn_auth {
177 } __attribute__((packed));
178 #endif //TIZEN_BT_HAL
180 #define HAL_ACL_STATE_CONNECTED 0x00
181 #define HAL_ACL_STATE_DISCONNECTED 0x01
183 #define HAL_EV_ACL_STATE_CHANGED 0x8A
184 struct hal_ev_acl_state_changed {
185 uint8_t status; /* Error code */
187 uint8_t state; /* Link state */
188 } __attribute__((packed));
190 #define HAL_DEVICE_TRUSTED 0x00
191 #define HAL_DEVICE_UNTRUSTED 0x01
193 #define HAL_EV_DEVICE_TRUST_CHANGED 0x8B
194 struct hal_ev_device_trust_state_changed {
197 } __attribute__((packed));
199 #define BT_TRANSPORT_UNKNOWN 0x00
200 #define BT_TRANSPORT_BR_EDR 0x01
201 #define BT_TRANSPORT_LE 0x02
203 /* HID host events */
204 #define HAL_HIDHOST_STATE_CONNECTED 0x00
205 #define HAL_HIDHOST_STATE_CONNECTING 0x01
206 #define HAL_HIDHOST_STATE_DISCONNECTED 0x02
207 #define HAL_HIDHOST_STATE_DISCONNECTING 0x03
208 #define HAL_HIDHOST_STATE_NO_HID 0x07
209 #define HAL_HIDHOST_STATE_FAILED 0x08
210 #define HAL_HIDHOST_STATE_UNKNOWN 0x09
212 /* HID device events */
213 #define HAL_HIDDEVICE_STATE_CONNECTED 0x00
214 #define HAL_HIDDEVICE_STATE_DISCONNECTED 0x01
216 #define HAL_EV_HIDHOST_CONN_STATE 0x81
217 struct hal_ev_hidhost_conn_state {
220 } __attribute__((packed));
222 #define HAL_EV_HIDHOST_INFO 0x82
223 struct hal_ev_hidhost_info {
234 } __attribute__((packed));
236 #define HAL_EV_HIDHOST_PROTO_MODE 0x83
237 struct hal_ev_hidhost_proto_mode {
241 } __attribute__((packed));
243 #define HAL_EV_HIDHOST_IDLE_TIME 0x84
244 struct hal_ev_hidhost_idle_time {
248 } __attribute__((packed));
250 #define HAL_EV_HIDHOST_GET_REPORT 0x85
251 struct hal_ev_hidhost_get_report {
256 } __attribute__((packed));
258 #define HAL_EV_HIDHOST_VIRTUAL_UNPLUG 0x86
259 struct hal_ev_hidhost_virtual_unplug {
262 } __attribute__((packed));
264 #define HAL_EV_HIDHOST_HANDSHAKE 0x87
265 struct hal_ev_hidhost_handshake {
268 } __attribute__((packed));
270 #define HAL_EV_HIDDEVICE_CONN_STATE 0x88
271 struct hal_ev_hiddevice_conn_state {
274 } __attribute__((packed));
276 /* Bluetooth Socket HAL events */
277 struct hal_ev_sock_connect {
282 } __attribute__((packed));
284 /* A2DP (AV) Headers */
285 #define HAL_EV_A2DP_STATE_DISCONNECTED 0x00
286 #define HAL_EV_A2DP_STATE_CONNECTING 0x01
287 #define HAL_EV_A2DP_STATE_CONNECTED 0x02
288 #define HAL_EV_A2DP_STATE_DISCONNECTING 0x03
290 #define HAL_EV_A2DP_CONN_STATE 0x8C
291 struct hal_ev_a2dp_conn_state {
294 } __attribute__((packed));
296 #define HAL_AUDIO_SUSPEND 0x00
297 #define HAL_AUDIO_STOPPED 0x01
298 #define HAL_AUDIO_STARTED 0x02
300 #define HAL_EV_A2DP_AUDIO_STATE 0x8D
301 struct hal_ev_a2dp_audio_state {
304 } __attribute__((packed));
306 #define HAL_EV_A2DP_AUDIO_CONFIG 0x8E
307 struct hal_ev_a2dp_audio_config {
309 uint32_t sample_rate;
310 uint8_t channel_count;
311 } __attribute__((packed));
313 /* A2DP Sink Role connection*/
314 #define HAL_EV_A2DP_SOURCE_CONN_STATE 0x8F
316 /* HandsFree Headers */
317 #define HAL_EV_HANDSFREE_CONN_STATE_DISCONNECTED 0x00
318 #define HAL_EV_HANDSFREE_CONN_STATE_CONNECTING 0x01
319 #define HAL_EV_HANDSFREE_CONN_STATE_CONNECTED 0x02
320 #define HAL_EV_HANDSFREE_CONN_STATE_SLC_CONNECTED 0x03
321 #define HAL_EV_HANDSFREE_CONN_STATE_DISCONNECTING 0x04
323 #define HAL_EV_HANDSFREE_CONN_STATE 0x91
324 struct hal_ev_handsfree_conn_state {
327 } __attribute__((packed));
329 #define HAL_EV_HANDSFREE_AUDIO_STATE_DISCONNECTED 0x00
330 #define HAL_EV_HANDSFREE_AUDIO_STATE_CONNECTING 0x01
331 #define HAL_EV_HANDSFREE_AUDIO_STATE_CONNECTED 0x02
332 #define HAL_EV_HANDSFREE_AUDIO_STATE_DISCONNECTING 0x04
334 #define HAL_EV_HANDSFREE_AUDIO_STATE 0x92
335 struct hal_ev_handsfree_audio_state {
338 } __attribute__((packed));
341 #define HAL_EV_HDP_APP_REG_STATE 0x93
342 struct hal_ev_hdp_app_reg_state {
345 } __attribute__((packed));
347 #define HAL_EV_HDP_CONN_STATE 0x94
348 struct hal_ev_hdp_conn_state {
353 uint8_t channel_state;
355 } __attribute__((packed));
357 /* AVRCP Controller Role HAL Events */
358 #define HAL_EV_AVRCP_CTRL_CONN_STATE 0x95
359 #define HAL_AVRCP_CTRL_STATE_DISCONNECTED 0x00
360 #define HAL_AVRCP_CTRL_STATE_CONNECTED 0x01
361 struct hal_ev_avrcp_ctrl_conn_state {
364 } __attribute__((packed));
366 #define HAL_EV_AVRCP_CTRL_PASS_THROUGH_RSP 0x96
367 struct hal_ev_pass_cmd_rsp {
371 } __attribute__((packed));
373 #define HAL_EV_AVRCP_CTRL_SET_PLAYER_APP_SETTING_RSP 0x97
374 #define HAL_AVRCP_PLAYER_APP_SETTING_REJECTED 0x00
375 #define HAL_AVRCP_PLAYER_APP_SETTING_ACCEPTED 0x01
376 struct hal_ev_set_player_app_setting_rsp {
379 } __attribute__((packed));
381 #define HAL_EV_AVRCP_CTRL_PLAYER_APP_SETTING_CHANGED 0x98
382 #define HAL_MAX_APP_SETTINGS 8
383 #define HAL_PLAYER_ATTR_EQUALIZER 0x01
384 #define HAL_PLAYER_ATTR_REPEAT 0x02
385 #define HAL_PLAYER_ATTR_SHUFFLE 0x03
386 #define HAL_PLAYER_ATTR_SCAN 0x04
387 struct hal_ev_player_setting {
390 uint8_t attr_ids[HAL_MAX_APP_SETTINGS];
391 uint8_t attr_values[HAL_MAX_APP_SETTINGS];
392 } __attribute__((packed));
394 #define HAL_EV_AVRCP_CTRL_TRACK_CHANGED 0x99
395 #define HAL_MAX_ATTR_STR_LEN 100
396 #define HAL_MAX_ATTR_NUM 10
397 #define HAL_MEDIA_ATTR_ID_INVALID -1
398 #define HAL_MEDIA_ATTR_ID_TITLE 0x00000001
399 #define HAL_MEDIA_ATTR_ID_ARTIST 0x00000002
400 #define HAL_MEDIA_ATTR_ID_ALBUM 0x00000003
401 #define HAL_MEDIA_ATTR_ID_TRACK_NUM 0x00000004
402 #define HAL_MEDIA_ATTR_ID_NUM_TRACKS 0x00000005
403 #define HAL_MEDIA_ATTR_ID_GENRE 0x00000006
404 #define HAL_MEDIA_ATTR_ID_PLAYING_TIME 0x00000007
405 struct hal_attr_val {
407 uint8_t text[HAL_MAX_ATTR_STR_LEN];
408 } __attribute__((packed));
410 struct hal_ev_track_changed {
413 struct hal_attr_val attr[HAL_MAX_ATTR_NUM];
414 } __attribute__((packed));
416 #define HAL_EV_AVRCP_CTRL_PLAY_POSITION_CHANGED 0xA0
417 struct hal_ev_play_position {
421 } __attribute__((packed));
423 #define HAL_EV_AVRCP_CTRL_PLAY_STATUS_CHANGED 0xA1
424 #define HAL_PLAYSTATE_STOPPED 0x00 /* Stopped */
425 #define HAL_PLAYSTATE_PLAYING 0x01 /* Playing */
426 #define HAL_PLAYSTATE_PAUSED 0x02 /* Paused */
427 #define HAL_PLAYSTATE_FWD_SEEK 0x03 /* Fwd Seek*/
428 #define HAL_PLAYSTATE_REV_SEEK 0x04 /* Rev Seek*/
429 #define HAL_PLAYSTATE_ERROR 0xFF /* Error */
430 struct hal_ev_play_status_changed {
433 } __attribute__((packed));
435 /* AVRCP TG events */
437 #define HAL_EV_AVRCP_TG_CONN_STATE 0xA2
438 #define HAL_EV_AVRCP_TG_DELAY_CHANGE 0xF1
439 #define HAL_EV_AVRCP_TG_VOLUME_CHANGE 0xF2
441 #define HAL_AVRCP_TG_STATE_DISCONNECTED 0x00
442 #define HAL_AVRCP_TG_STATE_CONNECTED 0x01
443 struct hal_ev_avrcp_tg_conn_state{
446 } __attribute__((packed));
448 struct hal_ev_avrcp_tg_delay_changed{
451 } __attribute__((packed));
453 struct hal_ev_avrcp_tg_volume_changed{
456 } __attribute__((packed));
458 #endif /* TIZEN_BT_HAL */
460 #define HAL_EV_AVRCP_TG_SET_PLAYER_PROPERTY 0xA3
462 #define HAL_AVRCP_TG_PLAYER_PROP_EQUALIZER 0x00
463 #define HAL_AVRCP_TG_PLAYER_PROP_REPEAT 0x01
464 #define HAL_AVRCP_TG_PLAYER_PROP_SHUFFLE 0x02
465 #define HAL_AVRCP_TG_PLAYER_PROP_SCAN 0x03
466 struct hal_ev_avrcp_tg_player_property {
469 } __attribute__((packed));
472 #define HAL_EV_SERVER_INSTANCE_INITIALIZED 0xA4
473 struct hal_ev_server_instance_registered {
475 uint32_t server_instance;
476 uint8_t app_uuid[16];
477 } __attribute__((packed));
479 #define HAL_EV_MULTI_ADV_DATA_SET 0xA5
480 struct hal_ev_multi_adv_data_set {
482 uint8_t server_instance;
483 } __attribute__((packed));
485 #define HAL_EV_MULTI_ADV_ENABLE 0xA6
486 struct hal_ev_multi_adv_enable {
488 uint32_t server_instance;
489 } __attribute__((packed));
491 #define HAL_EV_MULTI_ADV_DISABLE 0xA7
492 struct hal_ev_multi_adv_disable {
494 uint32_t server_instance;
495 } __attribute__((packed));
497 #define HAL_EV_MULTI_ADV_UPDATE 0xA8
498 struct hal_ev_multi_adv_update {
500 uint32_t server_instance;
501 } __attribute__((packed));
503 #define HAL_EV_LEGACY_ADV_ENABLE 0xA9
504 struct hal_ev_legacy_adv_status {
506 uint32_t server_instance;
507 } __attribute__((packed));
509 #define HAL_EV_GATT_CLIENT_REGISTERED 0xAA
510 struct hal_ev_gatt_client_registered {
513 uint8_t app_uuid[16];
514 } __attribute__((packed));
516 #define HAL_EV_GATT_CLIENT_SCAN_RESULT 0xAC
517 struct hal_ev_gatt_client_scan_result {
524 } __attribute__((packed));
526 #define HAL_EV_GATT_SERVICE_ADDED 0xAD
527 struct hal_ev_gatt_service_added {
529 uint32_t server_instance;
531 uint8_t svc_uuid[16];
532 uint32_t service_handle;
533 } __attribute__((packed));
535 #define HAL_EV_GATT_CHAR_ADDED 0xAE
536 struct hal_ev_gatt_char_added {
538 uint32_t server_instance;
539 uint32_t service_handle;
540 uint32_t char_handle;
541 uint8_t char_uuid[16];
542 } __attribute__((packed));
544 #define HAL_EV_GATT_DESC_ADDED 0xAF
545 struct hal_ev_gatt_desc_added {
547 uint32_t server_instance;
548 uint32_t service_handle;
549 uint32_t desc_handle;
550 uint8_t desc_uuid[16];
551 } __attribute__((packed));
553 #define HAL_EV_GATT_SERVICE_STARTED 0xB0
554 struct hal_ev_gatt_service_started {
556 uint32_t server_instance;
557 uint32_t service_handle;
558 } __attribute__((packed));
560 #define HAL_EV_GATT_SERVICE_DELETED 0xB1
561 struct hal_ev_gatt_service_deleted {
563 uint32_t server_instance;
564 uint32_t service_handle;
565 } __attribute__((packed));
567 #define HAL_EV_GATT_SERVER_CONNECTED 0xB2
568 struct hal_ev_gatt_server_connected {
570 uint32_t server_instance;
573 } __attribute__((packed));
575 #define HAL_EV_GATT_READ_REQUESTED 0xB3
576 struct hal_ev_gatt_server_read_req {
583 } __attribute__((packed));
585 #define HAL_EV_GATT_WRITE_REQUESTED 0xB4
586 struct hal_ev_gatt_server_write_req {
596 } __attribute__((packed));
598 #define HAL_EV_GATT_INDICATE_CFM 0xB5
599 struct hal_ev_gatt_server_indicate_cfm {
604 } __attribute__((packed));
607 #define HAL_EV_GATT_NOTIFICATION_CHANGE 0xB6
608 struct hal_ev_gatt_server_notifcation_change {
614 } __attribute__((packed));
616 #define HAL_EV_LE_STATE_CHANGED 0xB7
617 struct hal_ev_le_state_changed {
619 } __attribute__((packed));
620 #endif /* TIZEN_BT_HAL */
622 #define HAL_LE_STATE_CONNECTED 0x00
623 #define HAL_LE_STATE_DISCONNECTED 0x01
625 #define HAL_EV_LE_CONN_STATE_CHANGED 0xB8
626 struct hal_ev_le_conn_state_changed {
630 } __attribute__((packed));
632 #define HAL_EV_DEVICE_TRUSTED_PROFILES_CHANGED 0xB9
633 struct hal_ev_device_trusted_profiles_changed {
636 } __attribute__((packed));
638 #define HAL_RSSI_MONITORING_ENABLED 0x00
639 #define HAL_RSSI_MONITORING_DISABLED 0x01
641 #define HAL_EV_RSSI_MONITOR_STATE_CHANGED 0xBA
642 struct hal_ev_rssi_monitor_state_changed {
646 } __attribute__((packed));
648 #define HAL_EV_RSSI_ALERT_RECIEVED 0xBB
649 struct hal_ev_rssi_alert_recieved {
654 } __attribute__((packed));
656 #define HAL_EV_RAW_RSSI_RECIEVED 0xBC
657 struct hal_ev_raw_rssi_recieved {
661 } __attribute__((packed));
663 #define HAL_EV_GATT_CLIENT_CONNECTED 0xBD
664 #define HAL_EV_GATT_CLIENT_DISCONNECTED 0xBE
665 struct hal_ev_gatt_client_connected {
670 } __attribute__((packed));
672 #define HAL_EV_GATT_CLIENT_SEARCH_RESULT 0xBF
673 struct hal_ev_gatt_client_search_result {
678 } __attribute__((packed));
680 #define HAL_EV_GATT_CLIENT_SEARCH_COMPLETE 0xC0
681 struct hal_ev_gatt_client_search_complete {
684 } __attribute__((packed));
686 #define HAL_EV_GATT_CLIENT_CHARAC_SEARCH_RESULT 0xC1
687 struct hal_ev_gatt_client_char_search_result {
692 uint8_t svc_uuid[16];
693 uint8_t char_uuid[16];
695 } __attribute__((packed));
697 #define HAL_EV_GATT_CLIENT_DESC_SEARCH_RESULT 0XC2
698 struct hal_ev_gatt_client_desc_search_result {
703 uint8_t svc_uuid[16];
704 uint8_t char_uuid[16];
705 uint8_t desc_uuid[16];
706 } __attribute__((packed));
708 #define HAL_EV_GATT_CLIENT_READ_CHARAC 0XC3
709 #define HAL_EV_GATT_CLIENT_READ_DESC 0XC4
710 struct hal_ev_gatt_client_read_data {
715 uint8_t svc_uuid[16];
716 uint8_t char_uuid[16];
717 uint8_t desc_uuid[16];
720 } __attribute__((packed));
722 #define HAL_EV_GATT_CLIENT_WRITE_CHARAC 0XC5
723 #define HAL_EV_GATT_CLIENT_WRITE_DESC 0XC6
724 struct hal_ev_gatt_client_write_result {
729 uint8_t svc_uuid[16];
730 uint8_t char_uuid[16];
731 uint8_t desc_uuid[16];
732 } __attribute__((packed));
734 #define HAL_EV_GATT_CLIENT_WATCH_NOTIFICATION 0XC7
735 struct hal_ev_gatt_client_watch_notification {
741 uint8_t svc_uuid[16];
742 uint8_t char_uuid[16];
743 } __attribute__((packed));
745 #define HAL_EV_GATT_ACQUIRE_WRITE 0XC8
746 struct hal_ev_gatt_acquire_write {
750 uint8_t svc_uuid[16];
751 uint8_t char_uuid[16];
752 } __attribute__((packed));
754 #define HAL_EV_GATT_SERVER_ACQUIRE_WRITE_RES 0XC9
755 struct hal_ev_gatt_server_acquire_write_res {
761 } __attribute__((packed));
763 #define HAL_EV_GATT_SERVER_ACQUIRE_NOTIFY_RES 0XCA
764 struct hal_ev_gatt_server_acquire_notify {
770 } __attribute__((packed));
772 #define HAL_EV_GATT_CLIENT_NOTIFY_CHANGED_VALUE 0XCB
773 struct hal_ev_gatt_client_notify_changed_value {
780 uint8_t svc_uuid[16];
781 uint8_t char_uuid[16];
783 } __attribute__((packed));
785 #define HAL_EV_GATT_SERVER_MTU_CHANGED 0XCC
786 struct hal_ev_gatt_server_mtu_changed {
789 } __attribute__((packed));
791 /* HF Client Headers */
792 #define HAL_EV_HF_CLIENT_CONN_STATE_DISCONNECTED 0x00
793 #define HAL_EV_HF_CLIENT_CONN_STATE_CONNECTING 0x01
794 #define HAL_EV_HF_CLIENT_CONN_STATE_CONNECTED 0x02
795 #define HAL_EV_HF_CLIENT_CONN_STATE_SLC_CONNECTED 0x03
796 #define HAL_EV_HF_CLIENT_CONN_STATE_DISCONNECTING 0x04
798 #define HAL_EV_HF_CLIENT_CONN_STATE 0xCD
799 struct hal_ev_hf_client_conn_state {
802 } __attribute__((packed));
804 #define HAL_EV_DBFW_PLUS_INFO_RECIEVED 0xCE
805 struct hal_ev_dbfw_plus_info_recieved {
809 } __attribute__((packed));
811 #define HAL_EV_GATT_CLIENT_SERVICE_CHANGED 0xCF
812 struct hal_ev_gatt_client_service_changed {
818 } __attribute__((packed));
820 #define HAL_EV_GATT_CLIENT_MTU_EXCHANGE_COMPLETED 0xD0
821 struct hal_ev_gatt_client_mtu_exchange_completed {
825 } __attribute__((packed));
827 #define HAL_CONTROLLER_ERROR_HW_ERROR 0x00
828 #define HAL_CONTROLLER_ERROR_TX_TIMEOUT 0x01
830 #define HAL_EV_CONTROLLER_ERROR_RECIEVED 0xD1
831 struct hal_ev_controller_error_recieved {
833 } __attribute__((packed));
834 #endif //_BT_HAL_MSG_H_