1 /* 2 * Copyright (C) 2015 BlueKitchen GmbH 3 * 4 * Redistribution and use in source and binary forms, with or without 5 * modification, are permitted provided that the following conditions 6 * are met: 7 * 8 * 1. Redistributions of source code must retain the above copyright 9 * notice, this list of conditions and the following disclaimer. 10 * 2. Redistributions in binary form must reproduce the above copyright 11 * notice, this list of conditions and the following disclaimer in the 12 * documentation and/or other materials provided with the distribution. 13 * 3. Neither the name of the copyright holders nor the names of 14 * contributors may be used to endorse or promote products derived 15 * from this software without specific prior written permission. 16 * 4. Any redistribution, use, or modification is done solely for 17 * personal benefit and not for any commercial purpose or for 18 * monetary gain. 19 * 20 * THIS SOFTWARE IS PROVIDED BY BLUEKITCHEN GMBH AND CONTRIBUTORS 21 * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 22 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 23 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BLUEKITCHEN 24 * GMBH OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 25 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 26 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS 27 * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 28 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 29 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF 30 * THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 31 * SUCH DAMAGE. 32 * 33 * Please inquire about commercial licensing options at 34 * [email protected] 35 * 36 */ 37 38 /** 39 * 40 * BTstack definitions, events, and error codes 41 * 42 */ 43 44 #ifndef BTSTACK_DEFINES_H 45 #define BTSTACK_DEFINES_H 46 #include <stdint.h> 47 48 #include "btstack_linked_list.h" 49 50 // UNUSED macro 51 #ifndef UNUSED 52 #define UNUSED(x) (void)(sizeof(x)) 53 #endif 54 55 // TYPES 56 57 // packet handler 58 typedef void (*btstack_packet_handler_t) (uint8_t packet_type, uint16_t channel, uint8_t *packet, uint16_t size); 59 60 // packet callback supporting multiple registrations 61 typedef struct { 62 btstack_linked_item_t item; 63 btstack_packet_handler_t callback; 64 } btstack_packet_callback_registration_t; 65 66 // context callback supporting multiple registrations 67 typedef struct { 68 btstack_linked_item_t * item; 69 void (*callback)(void * context); 70 void * context; 71 } btstack_context_callback_registration_t; 72 73 /** 74 * @brief 128 bit key used with AES128 in Security Manager 75 */ 76 typedef uint8_t sm_key_t[16]; 77 78 // DEFINES 79 80 // hci con handles (12 bit): 0x0000..0x0fff 81 #define HCI_CON_HANDLE_INVALID 0xffffu 82 83 84 #define DAEMON_EVENT_PACKET 0x05u 85 86 // L2CAP data 87 #define L2CAP_DATA_PACKET 0x06u 88 89 // RFCOMM data 90 #define RFCOMM_DATA_PACKET 0x07u 91 92 // Attribute protocol data 93 #define ATT_DATA_PACKET 0x08u 94 95 // Security Manager protocol data 96 #define SM_DATA_PACKET 0x09u 97 98 // SDP query result - only used by daemon 99 // format: type (8), record_id (16), attribute_id (16), attribute_length (16), attribute_value (max 1k) 100 #define SDP_CLIENT_PACKET 0x0au 101 102 // BNEP data 103 #define BNEP_DATA_PACKET 0x0bu 104 105 // Unicast Connectionless Data 106 #define UCD_DATA_PACKET 0x0cu 107 108 // GOEP data 109 #define GOEP_DATA_PACKET 0x0du 110 111 // PBAP data 112 #define PBAP_DATA_PACKET 0x0eu 113 114 // AVRCP browsing data 115 #define AVRCP_BROWSING_DATA_PACKET 0x0fu 116 117 // MAP data 118 #define MAP_DATA_PACKET 0x10u 119 120 // Mesh Provisioning PDU 121 #define PROVISIONING_DATA_PACKET 0x11u 122 123 // Mesh Proxy PDU 124 #define MESH_PROXY_DATA_PACKET 0x11u 125 126 // Mesh Network PDU 127 #define MESH_NETWORK_PACKET 0x12u 128 129 // Mesh Network PDU 130 #define MESH_BEACON_PACKET 0x13u 131 132 // debug log messages 133 #define LOG_MESSAGE_PACKET 0xfcu 134 135 136 // DAEMON COMMANDS 137 138 #define OGF_BTSTACK 0x3du 139 140 // cmds for BTstack 141 // get state: @return HCI_STATE 142 #define BTSTACK_GET_STATE 0x01u 143 144 // set power mode: param HCI_POWER_MODE 145 #define BTSTACK_SET_POWER_MODE 0x02u 146 147 // set capture mode: param on 148 #define BTSTACK_SET_ACL_CAPTURE_MODE 0x03u 149 150 // get BTstack version 151 #define BTSTACK_GET_VERSION 0x04u 152 153 // get system Bluetooth state 154 #define BTSTACK_GET_SYSTEM_BLUETOOTH_ENABLED 0x05u 155 156 // set system Bluetooth state 157 #define BTSTACK_SET_SYSTEM_BLUETOOTH_ENABLED 0x06u 158 159 // enable inquiry scan for this client 160 #define BTSTACK_SET_DISCOVERABLE 0x07u 161 162 // set global Bluetooth state 163 #define BTSTACK_SET_BLUETOOTH_ENABLED 0x08u 164 165 // create l2cap channel: param bd_addr(48), psm (16) 166 #define L2CAP_CREATE_CHANNEL 0x20u 167 168 // disconnect l2cap disconnect, param channel(16), reason(8) 169 #define L2CAP_DISCONNECT 0x21u 170 171 // register l2cap service: param psm(16), mtu (16) 172 #define L2CAP_REGISTER_SERVICE 0x22u 173 174 // unregister l2cap disconnect, param psm(16) 175 #define L2CAP_UNREGISTER_SERVICE 0x23u 176 177 // accept connection param bd_addr(48), dest cid (16) 178 #define L2CAP_ACCEPT_CONNECTION 0x24u 179 180 // decline l2cap disconnect,param bd_addr(48), dest cid (16), reason(8) 181 #define L2CAP_DECLINE_CONNECTION 0x25u 182 183 // create l2cap channel: param bd_addr(48), psm (16), mtu (16) 184 #define L2CAP_CREATE_CHANNEL_MTU 0x26u 185 186 // request can send now event: l2cap_cid 187 #define L2CAP_REQUEST_CAN_SEND_NOW 0x27u 188 189 // register SDP Service Record: service record (size) 190 #define SDP_REGISTER_SERVICE_RECORD 0x30u 191 192 // unregister SDP Service Record 193 #define SDP_UNREGISTER_SERVICE_RECORD 0x31u 194 195 // Get remote RFCOMM services 196 #define SDP_CLIENT_QUERY_RFCOMM_SERVICES 0x32u 197 198 // Get remote SDP services 199 #define SDP_CLIENT_QUERY_SERVICES 0x33u 200 201 // RFCOMM "HCI" Commands 202 #define RFCOMM_CREATE_CHANNEL 0x40u 203 #define RFCOMM_DISCONNECT 0x41u 204 #define RFCOMM_REGISTER_SERVICE 0x42u 205 #define RFCOMM_UNREGISTER_SERVICE 0x43u 206 #define RFCOMM_ACCEPT_CONNECTION 0x44u 207 #define RFCOMM_DECLINE_CONNECTION 0x45u 208 #define RFCOMM_CREATE_CHANNEL_WITH_CREDITS 0x47u 209 #define RFCOMM_PERSISTENT_CHANNEL 0x46u 210 #define RFCOMM_REGISTER_SERVICE_WITH_CREDITS 0x48u 211 #define RFCOMM_GRANT_CREDITS 0x49u 212 // request can send now event: rfcomm_cid 213 #define RFCOMM_REQUEST_CAN_SEND_NOW 0x4Au 214 215 // GAP Classic 0x50u 216 #define GAP_DISCONNECT 0x50u 217 #define GAP_INQUIRY_START 0x51u 218 #define GAP_INQUIRY_STOP 0x52u 219 #define GAP_REMOTE_NAME_REQUEST 0x53u 220 #define GAP_DROP_LINK_KEY_FOR_BD_ADDR 0x54u 221 #define GAP_DELETE_ALL_LINK_KEYS 0x55u 222 #define GAP_PIN_CODE_RESPONSE 0x56u 223 #define GAP_PIN_CODE_NEGATIVE 0x57u 224 225 // GAP LE 0x60u 226 #define GAP_LE_SCAN_START 0x60u 227 #define GAP_LE_SCAN_STOP 0x61u 228 #define GAP_LE_CONNECT 0x62u 229 #define GAP_LE_CONNECT_CANCEL 0x63u 230 #define GAP_LE_SET_SCAN_PARAMETERS 0x64u 231 232 // GATT (Client) 0x70u 233 #define GATT_DISCOVER_ALL_PRIMARY_SERVICES 0x70u 234 #define GATT_DISCOVER_PRIMARY_SERVICES_BY_UUID16 0x71u 235 #define GATT_DISCOVER_PRIMARY_SERVICES_BY_UUID128 0x72u 236 #define GATT_FIND_INCLUDED_SERVICES_FOR_SERVICE 0x73u 237 #define GATT_DISCOVER_CHARACTERISTICS_FOR_SERVICE 0x74u 238 #define GATT_DISCOVER_CHARACTERISTICS_FOR_SERVICE_BY_UUID128 0x75u 239 #define GATT_DISCOVER_CHARACTERISTIC_DESCRIPTORS 0x76u 240 #define GATT_READ_VALUE_OF_CHARACTERISTIC 0x77u 241 #define GATT_READ_LONG_VALUE_OF_CHARACTERISTIC 0x78u 242 #define GATT_WRITE_VALUE_OF_CHARACTERISTIC_WITHOUT_RESPONSE 0x79u 243 #define GATT_WRITE_VALUE_OF_CHARACTERISTIC 0x7Au 244 #define GATT_WRITE_LONG_VALUE_OF_CHARACTERISTIC 0x7Bu 245 #define GATT_RELIABLE_WRITE_LONG_VALUE_OF_CHARACTERISTIC 0x7Cu 246 #define GATT_READ_CHARACTERISTIC_DESCRIPTOR 0X7Du 247 #define GATT_READ_LONG_CHARACTERISTIC_DESCRIPTOR 0X7Eu 248 #define GATT_WRITE_CHARACTERISTIC_DESCRIPTOR 0X7Fu 249 #define GATT_WRITE_LONG_CHARACTERISTIC_DESCRIPTOR 0X80u 250 #define GATT_WRITE_CLIENT_CHARACTERISTIC_CONFIGURATION 0X81u 251 #define GATT_GET_MTU 0x82u 252 253 // SM 0x90u 254 #define SM_SET_AUTHENTICATION_REQUIREMENTS 0x90u 255 #define SM_SET_IO_CAPABILITIES 0x92u 256 #define SM_BONDING_DECLINE 0x93u 257 #define SM_JUST_WORKS_CONFIRM 0x94u 258 #define SM_NUMERIC_COMPARISON_CONFIRM 0x95u 259 #define SM_PASSKEY_INPUT 0x96u 260 261 // ATT 262 263 // .. 264 // Internal properties reuse some GATT Characteristic Properties fields 265 #define ATT_DB_VERSION 0x01u 266 267 // EVENTS 268 269 // Events from host controller to host 270 271 /** 272 * @brief Custom NOP Event - used for internal testing 273 */ 274 #define HCI_EVENT_NOP 0x00u 275 276 /** 277 * @format 1 278 * @param status 279 */ 280 #define HCI_EVENT_INQUIRY_COMPLETE 0x01u 281 282 /** 283 * @format 1B11132 284 * @param num_responses 285 * @param bd_addr 286 * @param page_scan_repetition_mode 287 * @param reserved1 288 * @param reserved2 289 * @param class_of_device 290 * @param clock_offset 291 */ 292 #define HCI_EVENT_INQUIRY_RESULT 0x02u 293 294 /** 295 * @format 12B11 296 * @param status 297 * @param connection_handle 298 * @param bd_addr 299 * @param link_type 300 * @param encryption_enabled 301 */ 302 #define HCI_EVENT_CONNECTION_COMPLETE 0x03u 303 /** 304 * @format B31 305 * @param bd_addr 306 * @param class_of_device 307 * @param link_type 308 */ 309 #define HCI_EVENT_CONNECTION_REQUEST 0x04u 310 /** 311 * @format 121 312 * @param status 313 * @param connection_handle 314 * @param reason 315 */ 316 #define HCI_EVENT_DISCONNECTION_COMPLETE 0x05u 317 /** 318 * @format 12 319 * @param status 320 * @param connection_handle 321 */ 322 #define HCI_EVENT_AUTHENTICATION_COMPLETE 0x06u 323 324 // HCI_EVENT_AUTHENTICATION_COMPLETE_EVENT is deprecated, use HCI_EVENT_AUTHENTICATION_COMPLETE instead 325 #define HCI_EVENT_AUTHENTICATION_COMPLETE_EVENT HCI_EVENT_AUTHENTICATION_COMPLETE 326 327 /** 328 * @format 1BN 329 * @param status 330 * @param bd_addr 331 * @param remote_name 332 */ 333 #define HCI_EVENT_REMOTE_NAME_REQUEST_COMPLETE 0x07u 334 335 /** 336 * @format 121 337 * @param status 338 * @param connection_handle 339 * @param encryption_enabled 340 */ 341 #define HCI_EVENT_ENCRYPTION_CHANGE 0x08u 342 343 /** 344 * @format 12 345 * @param status 346 * @param connection_handle 347 */ 348 #define HCI_EVENT_CHANGE_CONNECTION_LINK_KEY_COMPLETE 0x09u 349 350 /** 351 * @format 121 352 * @param status 353 * @param connection_handle 354 * @param key_flag 355 */ 356 #define HCI_EVENT_MASTER_LINK_KEY_COMPLETE 0x0Au 357 358 #define HCI_EVENT_READ_REMOTE_SUPPORTED_FEATURES_COMPLETE 0x0Bu 359 360 /** 361 * @format 12122 362 * @param status 363 * @param connection_handle 364 * @param version 365 * @param manufacturer_name 366 * @param subversion 367 */ 368 #define HCI_EVENT_READ_REMOTE_VERSION_INFORMATION_COMPLETE 0x0Cu 369 370 #define HCI_EVENT_QOS_SETUP_COMPLETE 0x0Du 371 372 /** 373 * @format 12R 374 * @param num_hci_command_packets 375 * @param command_opcode 376 * @param return_parameters 377 */ 378 #define HCI_EVENT_COMMAND_COMPLETE 0x0Eu 379 /** 380 * @format 112 381 * @param status 382 * @param num_hci_command_packets 383 * @param command_opcode 384 */ 385 #define HCI_EVENT_COMMAND_STATUS 0x0Fu 386 387 /** 388 * @format 1 389 * @param hardware_code 390 */ 391 #define HCI_EVENT_HARDWARE_ERROR 0x10u 392 393 /** 394 * @format H 395 * @param handle 396 */ 397 #define HCI_EVENT_FLUSH_OCCURRED 0x11u 398 399 /** 400 * @format 1B1 401 * @param status 402 * @param bd_addr 403 * @param role 404 */ 405 #define HCI_EVENT_ROLE_CHANGE 0x12u 406 407 // TODO: number_of_handles 1, connection_handle[H*i], hc_num_of_completed_packets[2*i] 408 #define HCI_EVENT_NUMBER_OF_COMPLETED_PACKETS 0x13u 409 410 /** 411 * @format 1H12 412 * @param status 413 * @param handle 414 * @param mode 415 * @param interval 416 */ 417 #define HCI_EVENT_MODE_CHANGE 0x14u 418 419 // TODO: num_keys, bd_addr[B*i], link_key[16 octets * i] 420 #define HCI_EVENT_RETURN_LINK_KEYS 0x15u 421 422 /** 423 * @format B 424 * @param bd_addr 425 */ 426 #define HCI_EVENT_PIN_CODE_REQUEST 0x16u 427 428 /** 429 * @format B 430 * @param bd_addr 431 */ 432 #define HCI_EVENT_LINK_KEY_REQUEST 0x17u 433 434 // TODO: bd_addr B, link_key 16octets, key_type 1 435 #define HCI_EVENT_LINK_KEY_NOTIFICATION 0x18u 436 437 // event params contains HCI ccommand 438 #define HCI_EVENT_LOOPBACK_COMMAND 0x19u 439 440 /** 441 * @format 1 442 * @param link_type 443 */ 444 #define HCI_EVENT_DATA_BUFFER_OVERFLOW 0x1Au 445 446 /** 447 * @format H1 448 * @param handle 449 * @param lmp_max_slots 450 */ 451 #define HCI_EVENT_MAX_SLOTS_CHANGED 0x1Bu 452 453 /** 454 * @format 1H2 455 * @param status 456 * @param handle 457 * @param clock_offset 458 */ 459 #define HCI_EVENT_READ_CLOCK_OFFSET_COMPLETE 0x1Cu 460 461 /** 462 * @format 1H2 463 * @param status 464 * @param handle 465 * @param packet_types 466 * @pnote packet_type is in plural to avoid clash with Java binding Packet.getPacketType() 467 */ 468 #define HCI_EVENT_CONNECTION_PACKET_TYPE_CHANGED 0x1Du 469 470 /** 471 * @format H 472 * @param handle 473 */ 474 #define HCI_EVENT_QOS_VIOLATION 0x1Eu 475 476 // 0x1f not defined 477 478 /** 479 * @format H1 480 * @param handle 481 * @param page_scan_repetition_mode 482 */ 483 #define HCI_EVENT_PAGE_SCAN_REPETITION_MODE_CHANGE 0x20u 484 485 /** 486 * @format 1H1114444 487 * @param status 488 * @param handle 489 * @param unused 490 * @param flow_direction 491 * @param service_type 492 * @param token_rate 493 * @param token_bucket_size 494 * @param peak_bandwidth 495 * @param access_latency 496 * 497 */ 498 #define HCI_EVENT_FLOW_SPECIFICATION_COMPLETE 0x21u 499 500 /** 501 * @format 1B11321 502 * @param num_responses 503 * @param bd_addr 504 * @param page_scan_repetition_mode 505 * @param reserved 506 * @param class_of_device 507 * @param clock_offset 508 * @param rssi 509 */ 510 #define HCI_EVENT_INQUIRY_RESULT_WITH_RSSI 0x22u 511 512 #define HCI_EVENT_READ_REMOTE_EXTENDED_FEATURES_COMPLETE 0x23u 513 514 // 0x24..0x2b not defined 515 516 /** 517 * @format 1HB111221 518 * @param status 519 * @param handle 520 * @param bd_addr 521 * @param link_type 522 * @param transmission_interval 523 * @param retransmission_interval 524 * @param rx_packet_length 525 * @param tx_packet_length 526 * @param air_mode 527 */ 528 #define HCI_EVENT_SYNCHRONOUS_CONNECTION_COMPLETE 0x2Cu 529 530 /** 531 * @format 1H1122 532 * @param status 533 * @param handle 534 * @param transmission_interval 535 * @param retransmission_interval 536 * @param rx_packet_length 537 * @param tx_packet_length 538 */ 539 #define HCI_EVENT_SYNCHRONOUS_CONNECTION_CHANGED 0x2Du 540 541 /** 542 * @format 1H2222 543 * @param status 544 * @param handle 545 * @param max_tx_latency 546 * @param max_rx_latency 547 * @param min_remote_timeout 548 * @param min_local_timeout 549 */ 550 #define HCI_EVENT_SNIFF_SUBRATING 0x2Eu 551 552 // TODO: serialize extended_inquiry_response and provide parser 553 554 /** 555 * @format 1B11321 556 * @param num_responses 557 * @param bd_addr 558 * @param page_scan_repetition_mode 559 * @param reserved 560 * @param class_of_device 561 * @param clock_offset 562 * @param rssi 563 */ 564 #define HCI_EVENT_EXTENDED_INQUIRY_RESPONSE 0x2Fu 565 566 /** 567 * @format 1H 568 * @param status 569 * @param handle 570 */ 571 #define HCI_EVENT_ENCRYPTION_KEY_REFRESH_COMPLETE 0x30u 572 573 /** 574 * @format B 575 * @param bd_addr 576 */ 577 #define HCI_EVENT_IO_CAPABILITY_REQUEST 0x31u 578 579 /** 580 * @format B111 581 * @param bd_addr 582 * @param io_capability 583 * @param oob_data_present 584 * @param authentication_requirements 585 */ 586 #define HCI_EVENT_IO_CAPABILITY_RESPONSE 0x32u 587 588 /** 589 * @format B4 590 * @param bd_addr 591 * @param numeric_value 592 */ 593 #define HCI_EVENT_USER_CONFIRMATION_REQUEST 0x33u 594 595 /** 596 * @format B 597 * @param bd_addr 598 */ 599 #define HCI_EVENT_USER_PASSKEY_REQUEST 0x34u 600 601 /** 602 * @format B 603 * @param bd_addr 604 */ 605 #define HCI_EVENT_REMOTE_OOB_DATA_REQUEST 0x35u 606 607 /** 608 * @format 1B 609 * @param status 610 * @param bd_addr 611 */ 612 #define HCI_EVENT_SIMPLE_PAIRING_COMPLETE 0x36u 613 614 /** 615 * @format H2 616 * @param handle 617 * @param link_supervision_timeout 618 */ 619 #define HCI_EVENT_LINK_SUPERVISION_TIMEOUT_CHANGED 0x38u 620 621 /** 622 * @format H 623 * @param handle 624 */ 625 #define HCI_EVENT_ENHANCED_FLUSH_COMPLETE 0x39u 626 627 // 0x03a not defined 628 629 /** 630 * @format B4 631 * @param bd_addr 632 * @param numeric_value 633 */ 634 #define HCI_EVENT_USER_PASSKEY_NOTIFICATION 0x3Bu 635 636 /** 637 * @format B1 638 * @param bd_addr 639 * @param notification_type 640 */ 641 #define HCI_EVENT_KEYPRESS_NOTIFICATION 0x3Cu 642 643 #define HCI_EVENT_REMOTE_HOST_SUPPORTED_FEATURES 0x3Du 644 645 #define HCI_EVENT_LE_META 0x3Eu 646 647 // 0x3f..0x47 not defined 648 649 #define HCI_EVENT_NUMBER_OF_COMPLETED_DATA_BLOCKS 0x48u 650 651 // 0x49..0x58 not defined 652 653 /** 654 * @format 1211 655 * @param status 656 * @param connection_handle 657 * @param encryption_enabled 658 * @param encryption_key_size 659 */ 660 #define HCI_EVENT_ENCRYPTION_CHANGE_V2 0x59u 661 662 // last used HCI_EVENT in 5.3 is 0x59u 663 664 #define HCI_EVENT_VENDOR_SPECIFIC 0xFFu 665 666 /** 667 * @format 11H11B2221 668 * @param subevent_code 669 * @param status 670 * @param connection_handle 671 * @param role 672 * @param peer_address_type 673 * @param peer_address 674 * @param conn_interval 675 * @param conn_latency 676 * @param supervision_timeout 677 * @param master_clock_accuracy 678 */ 679 #define HCI_SUBEVENT_LE_CONNECTION_COMPLETE 0x01u 680 681 // array of advertisements, not handled by event accessor generator 682 #define HCI_SUBEVENT_LE_ADVERTISING_REPORT 0x02u 683 684 /** 685 * @format 11H222 686 * @param subevent_code 687 * @param status 688 * @param connection_handle 689 * @param conn_interval 690 * @param conn_latency 691 * @param supervision_timeout 692 */ 693 #define HCI_SUBEVENT_LE_CONNECTION_UPDATE_COMPLETE 0x03u 694 695 /** 696 * @format 1HD 697 * @param subevent_code 698 * @param connection_handle 699 * @param le_features 700 */ 701 #define HCI_SUBEVENT_LE_READ_REMOTE_FEATURES_COMPLETE 0x04u 702 703 /** 704 * @format 1HD2 705 * @param subevent_code 706 * @param connection_handle 707 * @param random_number 708 * @param encryption_diversifier 709 */ 710 #define HCI_SUBEVENT_LE_LONG_TERM_KEY_REQUEST 0x05u 711 712 /** 713 * @format 1H2222 714 * @param subevent_code 715 * @param connection_handle 716 * @param interval_min 717 * @param interval_max 718 * @param latency 719 * @param timeout 720 */ 721 #define HCI_SUBEVENT_LE_REMOTE_CONNECTION_PARAMETER_REQUEST 0x06u 722 723 /** 724 * @format 1H2222 725 * @param subevent_code 726 * @param connection_handle 727 * @param max_tx_octets 728 * @param max_tx_time 729 * @param max_rx_octets 730 * @param max_rx_time 731 */ 732 #define HCI_SUBEVENT_LE_DATA_LENGTH_CHANGE 0x07u 733 734 /** 735 * @format 11QQ 736 * @param subevent_code 737 * @param status 738 * @param dhkey_x x coordinate of P256 public key 739 * @param dhkey_y y coordinate of P256 public key 740 */ 741 #define HCI_SUBEVENT_LE_READ_LOCAL_P256_PUBLIC_KEY_COMPLETE 0x08u 742 743 /** 744 * @format 11Q 745 * @param subevent_code 746 * @param status 747 * @param dhkey Diffie-Hellman key 748 */ 749 #define HCI_SUBEVENT_LE_GENERATE_DHKEY_COMPLETE 0x09u 750 751 /** 752 * @format 11H11BBB2221 753 * @param subevent_code 754 * @param status 755 * @param connection_handle 756 * @param role 757 * @param peer_address_type 758 * @param peer_addresss 759 * @param local_resolvable_private_addres 760 * @param peer_resolvable_private_addres 761 * @param conn_interval 762 * @param conn_latency 763 * @param supervision_timeout 764 * @param master_clock_accuracy 765 */ 766 #define HCI_SUBEVENT_LE_ENHANCED_CONNECTION_COMPLETE 0x0Au 767 768 // array of advertisements, not handled by event accessor generator 769 #define HCI_SUBEVENT_LE_DIRECT_ADVERTISING_REPORT 0x0Bu 770 771 /** 772 * @format 11H1 773 * @param subevent_code 774 * @param status 775 * @param connection_handle 776 * @param tx_phy 777 */ 778 #define HCI_SUBEVENT_LE_PHY_UPDATE_COMPLETE 0x0Cu 779 780 // array of advertisements, not handled by event accessor generator 781 #define HCI_SUBEVENT_LE_EXTENDED_ADVERTISING_REPORT 0x0Du 782 783 /** 784 * @format 11H11B121 785 * @param subevent_code 786 * @param status 787 * @param sync_handle 788 * @param advertising_sid 789 * @param advertiser_address_type 790 * @param advertiser_address 791 * @param advertiser_phy 792 * @param periodic_advertising_interval 793 * @param advertiser_clock_accuracy 794 */ 795 #define HCI_SUBEVENT_LE_PERIODIC_ADVERTISING_SYNC_ESTABLISHMENT 0x0Eu 796 797 /** 798 * @format 1H1111JV 799 * @param subevent_code 800 * @param sync_handle 801 * @param tx_power 802 * @param rssi 803 * @param cte_type 804 * @param data_status 805 * @param data_length 806 * @param data 807 */ 808 #define HCI_SUBEVENT_LE_PERIODIC_ADVERTISING_REPORT 0x0Fu 809 810 /** 811 * @format 1H 812 * @param subevent_code 813 * @param sync_handle 814 */ 815 #define HCI_SUBEVENT_LE_PERIODIC_ADVERTISING_SYNC_LOST 0x10u 816 817 /** 818 * @format 1 819 * @param subevent_code 820 */ 821 #define HCI_SUBEVENT_LE_SCAN_TIMEOUT 0x11u 822 823 /** 824 * @format 111H1 825 * @param subevent_code 826 * @param status 827 * @param advertising_handle 828 * @param connection_handle 829 * @param num_completed_exteneded_advertising_events 830 */ 831 #define HCI_SUBEVENT_LE_ADVERTISING_SET_TERMINATED 0x12u 832 833 /** 834 * @format 111B 835 * @param subevent_code 836 * @param advertising_handle 837 * @param scanner_address_type 838 * @param scanner_address 839 */ 840 #define HCI_SUBEVENT_LE_SCAN_REQUEST_RECEIVED 0x13u 841 842 /** 843 * @format 1H1 844 * @param subevent_code 845 * @param connection_handle 846 * @param channel_selection_algorithm 847 */ 848 #define HCI_SUBEVENT_LE_CHANNEL_SELECTION_ALGORITHM 0x14u 849 850 // array of advertisements, not handled by event accessor generator 851 #define HCI_SUBEVENT_LE_CONNECTIONLESS_IQ_REPORT 0x15u 852 853 // array of advertisements, not handled by event accessor generator 854 #define HCI_SUBEVENT_LE_CONNECTION_IQ_REPORT 0x16u 855 856 /** 857 * @format 11H 858 * @param subevent_code 859 * @param status 860 * @param connection_handle 861 */ 862 #define HCI_SUBEVENT_LE_LE_CTE_REQUEST_FAILED 0x17u 863 864 /** 865 * @format 11H2H11B121 866 * @param subevent_code 867 * @param status 868 * @param connection_handle 869 * @param service_data 870 * @param sync_handle 871 * @param advertising_sid 872 * @param advertiser_address_type 873 * @param advertiser_address 874 * @param advertiser_phy 875 * @param periodic_advertising_interval 876 * @param advertiser_clock_accuracy 877 */ 878 #define HCI_SUBEVENT_LE_PERIODIC_ADVERTISING_SYNC_TRANSFER_RECEIVED 0x18u 879 880 /** 881 * @format 11H33331111111222 882 * @param subevent_code 883 * @param status 884 * @param connection_handle 885 * @param cig_sync_delay 886 * @param cis_sync_delay 887 * @param transport_latency_c_to_p 888 * @param transport_latency_p_to_c 889 * @param phy_c_to_p 890 * @param phy_p_to_c 891 * @param nse 892 * @param bn_c_to_p 893 * @param bn_p_to_c 894 * @param ft_c_to_p 895 * @param ft_p_to_c 896 * @param max_pdu_c_to_p 897 * @param max_pdu_p_to_c 898 * @param iso_interval 899 */ 900 #define HCI_SUBEVENT_LE_CIS_ESTABLISHED 0x19u 901 902 /** 903 * @format 1HH11 904 * @param subevent_code 905 * @param acl_connection_handle 906 * @param cis_connection_handle 907 * @param cig_id 908 * @param cis_id 909 */ 910 #define HCI_SUBEVENT_LE_CIS_REQUEST 0x1au 911 912 // array of advertisements, not handled by event accessor generator 913 #define HCI_SUBEVENT_LE_CREATE_BIG_COMPLETE 0x1Bu 914 915 /** 916 * @format 111 917 * @param subevent_code 918 * @param big_handle 919 * @param reason 920 */ 921 #define HCI_SUBEVENT_LE_TERMINATE_BIG_COMPLETE 0x1Cu 922 923 // array of advertisements, not handled by event accessor generator 924 #define HCI_SUBEVENT_LE_BIG_SYNC_ESTABLISHED 0x1Du 925 926 /** 927 * @format 111 928 * @param subevent_code 929 * @param big_handle 930 * @param reason 931 */ 932 #define HCI_SUBEVENT_LE_BIG_SYNC_LOST 0x1Eu 933 934 /** 935 * @format 11H1 936 * @param subevent_code 937 * @param status 938 * @param connection_handle 939 * @param peer_clock_accuracy 940 */ 941 #define HCI_SUBEVENT_LE_REQUEST_PEER_SCA_COMPLETE 0x1Fu 942 943 /** 944 * @format 11H11111 945 * @param subevent_code 946 * @param status 947 * @param connection_handle 948 * @param reason 949 * @param phy 950 * @param tx_power_level 951 * @param tx_power_level_flag 952 * @param delta 953 */ 954 #define HCI_SUBEVENT_LE_TRANSMIT_POWER_REPORTING 0x21u 955 956 /** 957 * @format 1H112111232111 958 * @param subevent_code 959 * @param sync_handle 960 * @param num_bis 961 * @param nse 962 * @param iso_interval 963 * @param bn 964 * @param pto 965 * @param irc 966 * @param max_pdu 967 * @param sdu_interval 968 * @param max_sdu 969 * @param phy 970 * @param framing 971 * @param encryption 972 */ 973 #define HCI_SUBEVENT_LE_BIGINFO_ADVERTISING_REPORT 0x22u 974 975 /** 976 * @format 11H2222 977 * @param subevent_code 978 * @param status 979 * @param connection_handle 980 * @param subrate_factor 981 * @param peripheral_latency 982 * @param continuation_number 983 * @param supervision_timeout 984 */ 985 #define HCI_SUBEVENT_LE_SUBRATE_CHANGE 0x23u 986 987 /** 988 * @format 1 989 * @param state 990 */ 991 #define BTSTACK_EVENT_STATE 0x60u 992 993 /** 994 * @format 1 995 * @param number_connections 996 */ 997 #define BTSTACK_EVENT_NR_CONNECTIONS_CHANGED 0x61u 998 999 /** 1000 * @format 1001 */ 1002 #define BTSTACK_EVENT_POWERON_FAILED 0x62u 1003 1004 /** 1005 * @format 1 1006 * @param discoverable 1007 */ 1008 #define BTSTACK_EVENT_DISCOVERABLE_ENABLED 0x66u 1009 1010 // Daemon Events 1011 1012 /** 1013 * @format 112 1014 * @param major 1015 * @param minor 1016 @ @param revision 1017 */ 1018 #define DAEMON_EVENT_VERSION 0x63u 1019 1020 // data: system bluetooth on/off (bool) 1021 /** 1022 * @format 1 1023 * param system_bluetooth_enabled 1024 */ 1025 #define DAEMON_EVENT_SYSTEM_BLUETOOTH_ENABLED 0x64u 1026 1027 // data: event (8), len(8), status (8) == 0, address (48), name (1984 bits = 248 bytes) 1028 1029 /* 1030 * @format 1BT 1031 * @param status == 0 to match read_remote_name_request 1032 * @param address 1033 * @param name 1034 */ 1035 #define DAEMON_EVENT_REMOTE_NAME_CACHED 0x65u 1036 1037 // internal - data: event(8) 1038 #define DAEMON_EVENT_CONNECTION_OPENED 0x67u 1039 1040 // internal - data: event(8) 1041 #define DAEMON_EVENT_CONNECTION_CLOSED 0x68u 1042 1043 // data: event(8), len(8), local_cid(16), credits(8) 1044 #define DAEMON_EVENT_L2CAP_CREDITS 0x74u 1045 1046 /** 1047 * @format 12 1048 * @param status 1049 * @param psm 1050 */ 1051 #define DAEMON_EVENT_L2CAP_SERVICE_REGISTERED 0x75u 1052 1053 /** 1054 * @format 11 1055 * @param status 1056 * @param channel_id 1057 */ 1058 #define DAEMON_EVENT_RFCOMM_SERVICE_REGISTERED 0x85u 1059 1060 /** 1061 * @format 11 1062 * @param status 1063 * @param server_channel_id 1064 */ 1065 #define DAEMON_EVENT_RFCOMM_PERSISTENT_CHANNEL 0x86u 1066 1067 /** 1068 * @format 14 1069 * @param status 1070 * @param service_record_handle 1071 */ 1072 #define DAEMON_EVENT_SDP_SERVICE_REGISTERED 0x90u 1073 1074 1075 1076 // additional HCI events 1077 1078 /** 1079 * @brief Indicates HCI transport enters/exits Sleep mode 1080 * @format 1 1081 * @param active 1082 */ 1083 #define HCI_EVENT_TRANSPORT_SLEEP_MODE 0x69u 1084 1085 /** 1086 * @brief Transport USB Bluetooth Controller info 1087 * @format 22JV 1088 * @param vendor_id 1089 * @param product_id 1090 * @param path_len 1091 * @param path 1092 */ 1093 #define HCI_EVENT_TRANSPORT_USB_INFO 0x6Au 1094 1095 /** 1096 * @brief Transport ready 1097 */ 1098 #define HCI_EVENT_TRANSPORT_READY 0x6Du 1099 1100 /** 1101 * @brief Outgoing packet 1102 */ 1103 #define HCI_EVENT_TRANSPORT_PACKET_SENT 0x6Eu 1104 1105 /** 1106 * @format B 1107 * @param handle 1108 */ 1109 #define HCI_EVENT_SCO_CAN_SEND_NOW 0x6Fu 1110 1111 1112 // L2CAP EVENTS 1113 1114 /** 1115 * @format 1BH222222111 1116 * @param status 1117 * @param address 1118 * @param handle 1119 * @param psm 1120 * @param local_cid 1121 * @param remote_cid 1122 * @param local_mtu 1123 * @param remote_mtu 1124 * @param flush_timeout 1125 * @param incoming 1126 * @param mode 1127 * @param fcs 1128 */ 1129 #define L2CAP_EVENT_CHANNEL_OPENED 0x70u 1130 1131 /* 1132 * @format 2 1133 * @param local_cid 1134 */ 1135 #define L2CAP_EVENT_CHANNEL_CLOSED 0x71u 1136 1137 /** 1138 * @format BH222 1139 * @param address 1140 * @param handle 1141 * @param psm 1142 * @param local_cid 1143 * @param remote_cid 1144 */ 1145 #define L2CAP_EVENT_INCOMING_CONNECTION 0x72u 1146 1147 // ?? 1148 // data: event(8), len(8), handle(16) 1149 #define L2CAP_EVENT_TIMEOUT_CHECK 0x73u 1150 1151 /** 1152 * @format H2222 1153 * @param handle 1154 * @param interval_min 1155 * @param interval_max 1156 * @param latencey 1157 * @param timeout_multiplier 1158 */ 1159 #define L2CAP_EVENT_CONNECTION_PARAMETER_UPDATE_REQUEST 0x76u 1160 1161 // data: event(8), len(8), handle(16), result (16) (0 == ok, 1 == fail) 1162 /** 1163 * @format H2 1164 * @param handle 1165 * @param result 1166 */ 1167 #define L2CAP_EVENT_CONNECTION_PARAMETER_UPDATE_RESPONSE 0x77u 1168 1169 /* 1170 * @format H22 1171 * @param con_handle 1172 * @param extended_feature_mask 1173 * @param fixed_channels_supported 1174 */ 1175 #define L2CAP_EVENT_INFORMATION_RESPONSE 0x78u 1176 1177 /** 1178 * @format 2 1179 * @param local_cid 1180 */ 1181 #define L2CAP_EVENT_CAN_SEND_NOW 0x79u 1182 1183 /* 1184 * @format 2 1185 * @param local_cid 1186 */ 1187 #define L2CAP_EVENT_PACKET_SENT 0x7au 1188 1189 /* 1190 * @format 2 1191 * @param local_cid 1192 */ 1193 #define L2CAP_EVENT_ERTM_BUFFER_RELEASED 0x7bu 1194 1195 // L2CAP Channel in LE Credit-based Flow-Control Mode (CBM) 1196 1197 /** 1198 * @format 1BH2222 1199 * @param address_type 1200 * @param address 1201 * @param handle 1202 * @param psm 1203 * @param local_cid 1204 * @param remote_cid 1205 * @param remote_mtu 1206 */ 1207 #define L2CAP_EVENT_CBM_INCOMING_CONNECTION 0x7cu 1208 1209 /** 1210 * @format 11BH122222 1211 * @param status 1212 * @param address_type 1213 * @param address 1214 * @param handle 1215 * @param incoming 1216 * @param psm 1217 * @param local_cid 1218 * @param remote_cid 1219 * @param local_mtu 1220 * @param remote_mtu 1221 */ 1222 #define L2CAP_EVENT_CBM_CHANNEL_OPENED 0x7du 1223 1224 /* 1225 * @format 1226 */ 1227 #define L2CAP_EVENT_TRIGGER_RUN 0x7eu 1228 1229 /** 1230 * @format 1BH212 1231 * @param address_type 1232 * @param address 1233 * @param handle 1234 * @param psm 1235 * @param num_channels 1236 * @param local_cid first new cid 1237 */ 1238 #define L2CAP_EVENT_ECBM_INCOMING_CONNECTION 0x7fu 1239 1240 /** 1241 * @format 11BH122222 1242 * @param status 1243 * @param address_type 1244 * @param address 1245 * @param handle 1246 * @param incoming 1247 * @param psm 1248 * @param local_cid 1249 * @param remote_cid 1250 * @param local_mtu 1251 * @param remote_mtu 1252 */ 1253 #define L2CAP_EVENT_ECBM_CHANNEL_OPENED 0x8au 1254 1255 /* 1256 * @format 222 1257 * @param remote_cid 1258 * @param mtu 1259 * @param mps 1260 */ 1261 #define L2CAP_EVENT_ECBM_RECONFIGURED 0x8bu 1262 1263 /* 1264 * @format 22 1265 * @param local_cid 1266 * @param reconfigure_result 1267 */ 1268 #define L2CAP_EVENT_ECBM_RECONFIGURATION_COMPLETE 0x8cu 1269 1270 1271 // RFCOMM EVENTS 1272 1273 /** 1274 * @format 1B21221 1275 * @param status 1276 * @param bd_addr 1277 * @param con_handle 1278 * @param server_channel 1279 * @param rfcomm_cid 1280 * @param max_frame_size 1281 * @param incoming 1282 */ 1283 #define RFCOMM_EVENT_CHANNEL_OPENED 0x80u 1284 1285 /** 1286 * @format 2 1287 * @param rfcomm_cid 1288 */ 1289 #define RFCOMM_EVENT_CHANNEL_CLOSED 0x81u 1290 1291 /** 1292 * @format B12H 1293 * @param bd_addr 1294 * @param server_channel 1295 * @param rfcomm_cid 1296 * @param con_handle 1297 1298 */ 1299 #define RFCOMM_EVENT_INCOMING_CONNECTION 0x82u 1300 1301 /** 1302 * @format 21 1303 * @param rfcomm_cid 1304 * @param line_status 1305 */ 1306 #define RFCOMM_EVENT_REMOTE_LINE_STATUS 0x83u 1307 1308 /** 1309 * @format 21 1310 * @param rfcomm_cid 1311 * @param modem_status 1312 */ 1313 #define RFCOMM_EVENT_REMOTE_MODEM_STATUS 0x87u 1314 1315 /** 1316 * note: port configuration not parsed by stack, getters provided by rfcomm.h 1317 * param rfcomm_cid 1318 * param remote - 0 for local port, 1 for remote port 1319 * param baud_rate 1320 * param data_bits 1321 * param stop_bits 1322 * param parity 1323 * param flow_control 1324 * param xon 1325 * param xoff 1326 */ 1327 #define RFCOMM_EVENT_PORT_CONFIGURATION 0x88u 1328 1329 /** 1330 * @format 2 1331 * @param rfcomm_cid 1332 */ 1333 #define RFCOMM_EVENT_CAN_SEND_NOW 0x89u 1334 1335 1336 /** 1337 * @format 1 1338 * @param status 1339 */ 1340 #define SDP_EVENT_QUERY_COMPLETE 0x91u 1341 1342 /** 1343 * @format 1T 1344 * @param rfcomm_channel 1345 * @param name 1346 */ 1347 #define SDP_EVENT_QUERY_RFCOMM_SERVICE 0x92u 1348 1349 /** 1350 * @format 22221 1351 * @param record_id 1352 * @param attribute_id 1353 * @param attribute_length 1354 * @param data_offset 1355 * @param data 1356 */ 1357 #define SDP_EVENT_QUERY_ATTRIBUTE_BYTE 0x93u 1358 1359 /** 1360 * @format 22LV 1361 * @param record_id 1362 * @param attribute_id 1363 * @param attribute_length 1364 * @param attribute_value 1365 */ 1366 #define SDP_EVENT_QUERY_ATTRIBUTE_VALUE 0x94u 1367 1368 /** 1369 * @format 224 1370 * @param total_count 1371 * @param record_index 1372 * @param record_handle 1373 * @note Not provided by daemon, only used for internal testing 1374 */ 1375 #define SDP_EVENT_QUERY_SERVICE_RECORD_HANDLE 0x95u 1376 1377 /** 1378 * @format H1 1379 * @param handle 1380 * @param att_status see ATT errors in bluetooth.h 1381 */ 1382 #define GATT_EVENT_QUERY_COMPLETE 0xA0u 1383 1384 /** 1385 * @format HX 1386 * @param handle 1387 * @param service 1388 */ 1389 #define GATT_EVENT_SERVICE_QUERY_RESULT 0xA1u 1390 1391 /** 1392 * @format HY 1393 * @param handle 1394 * @param characteristic 1395 */ 1396 #define GATT_EVENT_CHARACTERISTIC_QUERY_RESULT 0xA2u 1397 1398 /** 1399 * @format H2X 1400 * @param handle 1401 * @param include_handle 1402 * @param service 1403 */ 1404 #define GATT_EVENT_INCLUDED_SERVICE_QUERY_RESULT 0xA3u 1405 1406 /** 1407 * @format HZ 1408 * @param handle 1409 * @param characteristic_descriptor 1410 */ 1411 #define GATT_EVENT_ALL_CHARACTERISTIC_DESCRIPTORS_QUERY_RESULT 0xA4u 1412 1413 /** 1414 * @format H2LV 1415 * @param handle 1416 * @param value_handle 1417 * @param value_length 1418 * @param value 1419 */ 1420 #define GATT_EVENT_CHARACTERISTIC_VALUE_QUERY_RESULT 0xA5u 1421 1422 /** 1423 * @format H22LV 1424 * @param handle 1425 * @param value_handle 1426 * @param value_offset 1427 * @param value_length 1428 * @param value 1429 */ 1430 #define GATT_EVENT_LONG_CHARACTERISTIC_VALUE_QUERY_RESULT 0xA6u 1431 1432 /** 1433 * @format H2LV 1434 * @param handle 1435 * @param value_handle 1436 * @param value_length 1437 * @param value 1438 */ 1439 #define GATT_EVENT_NOTIFICATION 0xA7u 1440 1441 /** 1442 * @format H2LV 1443 * @param handle 1444 * @param value_handle 1445 * @param value_length 1446 * @param value 1447 */ 1448 #define GATT_EVENT_INDICATION 0xA8u 1449 1450 /** 1451 * @format H2LV 1452 * @param handle 1453 * @param descriptor_handle 1454 * @param descriptor_length 1455 * @param descriptor 1456 */ 1457 #define GATT_EVENT_CHARACTERISTIC_DESCRIPTOR_QUERY_RESULT 0xA9u 1458 1459 /** 1460 * @format H2LV 1461 * @param handle 1462 * @param descriptor_offset 1463 * @param descriptor_length 1464 * @param descriptor 1465 */ 1466 #define GATT_EVENT_LONG_CHARACTERISTIC_DESCRIPTOR_QUERY_RESULT 0xAAu 1467 1468 /** 1469 * @format H2 1470 * @param handle 1471 * @param MTU 1472 */ 1473 #define GATT_EVENT_MTU 0xABu 1474 1475 /** 1476 * @format H 1477 * @param handle 1478 */ 1479 #define GATT_EVENT_CAN_WRITE_WITHOUT_RESPONSE 0xACu 1480 1481 1482 /** 1483 * @format 1BH 1484 * @param address_type 1485 * @param address 1486 * @param handle 1487 */ 1488 #define ATT_EVENT_CONNECTED 0xB3u 1489 1490 /** 1491 * @format H 1492 * @param handle 1493 */ 1494 #define ATT_EVENT_DISCONNECTED 0xB4u 1495 1496 /** 1497 * @format H2 1498 * @param handle 1499 * @param MTU 1500 */ 1501 #define ATT_EVENT_MTU_EXCHANGE_COMPLETE 0xB5u 1502 1503 /** 1504 * @format 1H2 1505 * @param status 1506 * @param conn_handle 1507 * @param attribute_handle 1508 */ 1509 #define ATT_EVENT_HANDLE_VALUE_INDICATION_COMPLETE 0xB6u 1510 1511 /** 1512 * @format 1513 */ 1514 #define ATT_EVENT_CAN_SEND_NOW 0xB7u 1515 1516 // TODO: daemon only event 1517 1518 /** 1519 * @format 12 1520 * @param status 1521 * @param service_uuid 1522 */ 1523 #define BNEP_EVENT_SERVICE_REGISTERED 0xC0u 1524 1525 /** 1526 * @format 12222BH 1527 * @param status 1528 * @param bnep_cid 1529 * @param source_uuid 1530 * @param destination_uuid 1531 * @param mtu 1532 * @param remote_address 1533 * @param con_handle 1534 */ 1535 #define BNEP_EVENT_CHANNEL_OPENED 0xC1u 1536 1537 /** 1538 * @format 222B 1539 * @param bnep_cid 1540 * @param source_uuid 1541 * @param destination_uuid 1542 * @param remote_address 1543 */ 1544 #define BNEP_EVENT_CHANNEL_CLOSED 0xC2u 1545 1546 /** 1547 * @format 222B1 1548 * @param bnep_cid 1549 * @param source_uuid 1550 * @param destination_uuid 1551 * @param remote_address 1552 * @param channel_state 1553 */ 1554 #define BNEP_EVENT_CHANNEL_TIMEOUT 0xC3u 1555 1556 /** 1557 * @format 222B 1558 * @param bnep_cid 1559 * @param source_uuid 1560 * @param destination_uuid 1561 * @param remote_address 1562 */ 1563 #define BNEP_EVENT_CAN_SEND_NOW 0xC4u 1564 1565 /** 1566 * @format H1B1 1567 * @param handle 1568 * @param addr_type 1569 * @param address 1570 * @param secure_connection - set to 1 if LE Secure Connection pairing will be used 1571 */ 1572 #define SM_EVENT_JUST_WORKS_REQUEST 0xC8u 1573 1574 /** 1575 * @format H1B14 1576 * @param handle 1577 * @param addr_type 1578 * @param address 1579 * @param secure_connection - set to 1 if LE Secure Connection pairing will be used 1580 * @param passkey 1581 */ 1582 #define SM_EVENT_PASSKEY_DISPLAY_NUMBER 0xC9u 1583 1584 /** 1585 * @format H1B 1586 * @param handle 1587 * @param addr_type 1588 * @param address 1589 */ 1590 #define SM_EVENT_PASSKEY_DISPLAY_CANCEL 0xCAu 1591 1592 /** 1593 * @format H1B1 1594 * @param handle 1595 * @param addr_type 1596 * @param address 1597 * @param secure_connection - set to 1 if LE Secure Connection pairing will be used 1598 */ 1599 #define SM_EVENT_PASSKEY_INPUT_NUMBER 0xCBu 1600 1601 /** 1602 * @format H1B14 1603 * @param handle 1604 * @param addr_type 1605 * @param address 1606 * @param secure_connection - set to 1 if LE Secure Connection pairing will be used 1607 * @param passkey 1608 */ 1609 #define SM_EVENT_NUMERIC_COMPARISON_REQUEST 0xCCu 1610 1611 /** 1612 * @format H1B 1613 * @param handle 1614 * @param addr_type 1615 * @param address 1616 */ 1617 #define SM_EVENT_IDENTITY_RESOLVING_STARTED 0xCDu 1618 1619 /** 1620 * @format H1B 1621 * @param handle 1622 * @param addr_type 1623 * @param address 1624 */ 1625 #define SM_EVENT_IDENTITY_RESOLVING_FAILED 0xCEu 1626 1627 /** 1628 * @brief Identify resolving succeeded 1629 * 1630 * @format H1B1B2 1631 * @param handle 1632 * @param addr_type 1633 * @param address 1634 * @param identity_addr_type 1635 * @param identity_address 1636 * @param index 1637 * 1638 */ 1639 #define SM_EVENT_IDENTITY_RESOLVING_SUCCEEDED 0xCFu 1640 1641 /** 1642 * @format H1B 1643 * @param handle 1644 * @param addr_type 1645 * @param address 1646 */ 1647 #define SM_EVENT_AUTHORIZATION_REQUEST 0xD0u 1648 1649 /** 1650 * @format H1B1 1651 * @param handle 1652 * @param addr_type 1653 * @param address 1654 * @param authorization_result 1655 */ 1656 #define SM_EVENT_AUTHORIZATION_RESULT 0xD1u 1657 1658 /** 1659 * @format H1 1660 * @param handle 1661 * @param action see SM_KEYPRESS_* 1662 */ 1663 #define SM_EVENT_KEYPRESS_NOTIFICATION 0xD2u 1664 1665 /** 1666 * @brief Emitted during pairing to inform app about address used as identity 1667 * 1668 * @format H1B1B2 1669 * @param handle 1670 * @param addr_type 1671 * @param address 1672 * @param identity_addr_type 1673 * @param identity_address 1674 * @param index 1675 */ 1676 #define SM_EVENT_IDENTITY_CREATED 0xD3u 1677 1678 /** 1679 * @brief Emitted to inform app that pairing has started. 1680 * @format H1B 1681 * @param handle 1682 * @param addr_type 1683 * @param address 1684 */ 1685 #define SM_EVENT_PAIRING_STARTED 0xD4u 1686 1687 /** 1688 * @brief Emitted to inform app that pairing is complete. Possible status values: 1689 * ERROR_CODE_SUCCESS -> pairing success 1690 * ERROR_CODE_CONNECTION_TIMEOUT -> timeout 1691 * ERROR_CODE_REMOTE_USER_TERMINATED_CONNECTION -> disconnect 1692 * ERROR_CODE_AUTHENTICATION_FAILURE -> SM protocol error, see reason field with SM_REASON_* from bluetooth.h 1693 * 1694 * @format H1B11 1695 * @param handle 1696 * @param addr_type 1697 * @param address 1698 * @param status 1699 * @param reason if status == ERROR_CODE_AUTHENTICATION_FAILURE 1700 */ 1701 #define SM_EVENT_PAIRING_COMPLETE 0xD5u 1702 1703 1704 /** 1705 * @brief Proactive Authentication for bonded devices started. 1706 * @format H1B 1707 * @param handle 1708 * @param addr_type 1709 * @param address 1710 */ 1711 #define SM_EVENT_REENCRYPTION_STARTED 0xD6u 1712 1713 /** 1714 * @brief Proactive Authentication for bonded devices complete. Possible status values: 1715 * ERROR_CODE_SUCCESS -> connection secure 1716 * ERROR_CODE_CONNECTION_TIMEOUT -> timeout 1717 * ERROR_CODE_PIN_OR_KEY_MISSING -> remote did not provide (as Peripheral) or use LTK (as Central) 1718 * @format H1B1 1719 * @param handle 1720 * @param addr_type 1721 * @param address 1722 * @param status 1723 */ 1724 #define SM_EVENT_REENCRYPTION_COMPLETE 0xD7u 1725 1726 // GAP 1727 1728 /** 1729 * @format H1 1730 * @param handle 1731 * @param security_level 1732 */ 1733 #define GAP_EVENT_SECURITY_LEVEL 0xD8u 1734 1735 /** 1736 * @format 1B 1737 * @param status 1738 * @param address 1739 */ 1740 #define GAP_EVENT_DEDICATED_BONDING_COMPLETED 0xD9u 1741 1742 /** 1743 * @format 11B1JV 1744 * @param advertising_event_type 1745 * @param address_type 1746 * @param address 1747 * @param rssi 1748 * @param data_length 1749 * @param data 1750 */ 1751 #define GAP_EVENT_ADVERTISING_REPORT 0xDAu 1752 1753 /** 1754 * @format 21B1111121BJV 1755 * @param advertising_event_type 1756 * @param address_type 1757 * @param address 1758 * @param primary_phy 1759 * @param secondary_phy 1760 * @param advertising_sid 1761 * @param tx_power 1762 * @param rssi 1763 * @param periodic_advertising_interval 1764 * @param direct_address_type 1765 * @param direct_address 1766 * @param data_length 1767 * @param data 1768 */ 1769 #define GAP_EVENT_EXTENDED_ADVERTISING_REPORT 0xDBu 1770 1771 /** 1772 * @format B13211122221JV 1773 * @param bd_addr 1774 * @param page_scan_repetition_mode 1775 * @param class_of_device 1776 * @param clock_offset 1777 * @param rssi_available 1778 * @param rssi 1779 * @param device_id_available 1780 * @param device_id_vendor_id_source 1781 * @param device_id_vendor_id 1782 * @param device_id_product_id 1783 * @param device_id_version 1784 * @param name_available 1785 * @param name_len 1786 * @param name 1787 */ 1788 #define GAP_EVENT_INQUIRY_RESULT 0xDCu 1789 1790 /** 1791 * @format 1 1792 * @param status 1793 */ 1794 #define GAP_EVENT_INQUIRY_COMPLETE 0xDDu 1795 1796 /** 1797 * @format H1 1798 * @param con_handle 1799 * @param rssi (signed integer -127..127) 1800 * @note Classic: rssi is in dB relative to Golden Receive Power Range 1801 * @note LE: rssi is absolute dBm 1802 */ 1803 #define GAP_EVENT_RSSI_MEASUREMENT 0xDEu 1804 1805 /** 1806 * @format 1KKKK 1807 * @param oob_data_present 0 = none, 1 = p_192, 2 = p_256, 3 = both 1808 * @param c_192 Simple Pairing Hash C derived from P-192 public key 1809 * @param r_192 Simple Pairing Randomizer derived from P-192 public key 1810 * @param c_256 Simple Pairing Hash C derived from P-256 public key 1811 * @param r_256 Simple Pairing Randomizer derived from P-256 public key 1812 */ 1813 #define GAP_EVENT_LOCAL_OOB_DATA 0xDFu 1814 1815 1816 /** 1817 * @format HB11 1818 * @param con_handle 1819 * @param bd_addr 1820 * @param ssp 1821 * @param initiator 1822 */ 1823 #define GAP_EVENT_PAIRING_STARTED 0xE0u 1824 1825 /** 1826 * @format HB1 1827 * @param con_handle 1828 * @param bd_addr 1829 * @param status 1830 */ 1831 #define GAP_EVENT_PAIRING_COMPLETE 0xE1u 1832 1833 // Meta Events, see below for sub events 1834 #define HCI_EVENT_META_GAP 0xE7u 1835 #define HCI_EVENT_HSP_META 0xE8u 1836 #define HCI_EVENT_HFP_META 0xE9u 1837 #define HCI_EVENT_ANCS_META 0xEAu 1838 #define HCI_EVENT_AVDTP_META 0xEBu 1839 #define HCI_EVENT_AVRCP_META 0xECu 1840 #define HCI_EVENT_GOEP_META 0xEDu 1841 #define HCI_EVENT_PBAP_META 0xEEu 1842 #define HCI_EVENT_HID_META 0xEFu 1843 #define HCI_EVENT_A2DP_META 0xF0u 1844 #define HCI_EVENT_HIDS_META 0xF1u 1845 #define HCI_EVENT_GATTSERVICE_META 0xF2u 1846 #define HCI_EVENT_BIP_META 0xF3u 1847 #define HCI_EVENT_MAP_META 0xF4u 1848 #define HCI_EVENT_MESH_META 0xF5u 1849 1850 // Potential other meta groups 1851 // #define HCI_EVENT_BNEP_META 0xxx 1852 // #define HCI_EVENT_GAP_META 0xxx 1853 // #define HCI_EVENT_GATT_META 0xxx 1854 // #define HCI_EVENT_PAN_META 0xxx 1855 // #define HCI_EVENT_SDP_META 0xxx 1856 // #define HCI_EVENT_SM_META 0xxx 1857 1858 /** GAP Subevent */ 1859 1860 1861 /** 1862 * @format 1111 1863 * @param subevent_code 1864 * @param advertisement_handle 1865 * @param status 1866 * @param selected_tx_power 1867 */ 1868 #define GAP_SUBEVENT_ADVERTISING_SET_INSTALLED 0x00u 1869 1870 /** 1871 * @format 11 1872 * @param subevent_code 1873 * @param advertisement_handle 1874 */ 1875 #define GAP_SUBEVENT_ADVERTISING_SET_REMOVED 0x01u 1876 1877 1878 /** HSP Subevent */ 1879 1880 /** 1881 * @format 1H1B 1882 * @param subevent_code 1883 * @param acl_handle 1884 * @param status 0 == OK 1885 * @param bd_addr 1886 */ 1887 #define HSP_SUBEVENT_RFCOMM_CONNECTION_COMPLETE 0x01u 1888 1889 /** 1890 * @format 1H 1891 * @param subevent_code 1892 * @param acl_handle 1893 */ 1894 #define HSP_SUBEVENT_RFCOMM_DISCONNECTION_COMPLETE 0x02u 1895 1896 /** 1897 * @format 1H1H 1898 * @param subevent_code 1899 * @param acl_handle 1900 * @param status 0 == OK 1901 * @param sco_handle 1902 */ 1903 #define HSP_SUBEVENT_AUDIO_CONNECTION_COMPLETE 0x03u 1904 1905 /** 1906 * @format 1HH 1907 * @param subevent_code 1908 * @param acl_handle 1909 * @param sco_handle 1910 */ 1911 #define HSP_SUBEVENT_AUDIO_DISCONNECTION_COMPLETE 0x04u 1912 1913 /** 1914 * @format 1H 1915 * @param subevent_code 1916 * @param acl_handle 1917 */ 1918 #define HSP_SUBEVENT_RING 0x05u 1919 1920 /** 1921 * @format 1H1 1922 * @param subevent_code 1923 * @param acl_handle 1924 * @param gain Valid range: [0,15] 1925 */ 1926 #define HSP_SUBEVENT_MICROPHONE_GAIN_CHANGED 0x06u 1927 1928 /** 1929 * @format 1H1 1930 * @param subevent_code 1931 * @param acl_handle 1932 * @param gain Valid range: [0,15] 1933 */ 1934 #define HSP_SUBEVENT_SPEAKER_GAIN_CHANGED 0x07u 1935 1936 /** 1937 * @format 1HJV 1938 * @param subevent_code 1939 * @param acl_handle 1940 * @param value_length 1941 * @param value 1942 */ 1943 #define HSP_SUBEVENT_HS_COMMAND 0x08u 1944 1945 /** 1946 * @format 1HJV 1947 * @param subevent_code 1948 * @param acl_handle 1949 * @param value_length 1950 * @param value 1951 */ 1952 #define HSP_SUBEVENT_AG_INDICATION 0x09u 1953 1954 /** 1955 * @format 1H 1956 * @param subevent_code 1957 * @param acl_handle 1958 */ 1959 #define HSP_SUBEVENT_BUTTON_PRESSED 0x0au 1960 1961 /** HFP Subevent */ 1962 1963 /** 1964 * @format 1H1B 1965 * @param subevent_code 1966 * @param acl_handle 1967 * @param status 0 == OK 1968 * @param bd_addr 1969 */ 1970 #define HFP_SUBEVENT_SERVICE_LEVEL_CONNECTION_ESTABLISHED 0x01u 1971 1972 /** 1973 * @format 1H 1974 * @param subevent_code 1975 * @param acl_handle 1976 */ 1977 #define HFP_SUBEVENT_SERVICE_LEVEL_CONNECTION_RELEASED 0x02u 1978 1979 /** 1980 * @format 1H1HB1 1981 * @param subevent_code 1982 * @param acl_handle 1983 * @param status 0 == OK 1984 * @param sco_handle 1985 * @param bd_addr 1986 * @param negotiated_codec 1987 */ 1988 #define HFP_SUBEVENT_AUDIO_CONNECTION_ESTABLISHED 0x03u 1989 1990 /** 1991 * @format 1HH 1992 * @param subevent_code 1993 * @param acl_handle 1994 * @param sco_handle 1995 */ 1996 #define HFP_SUBEVENT_AUDIO_CONNECTION_RELEASED 0x04u 1997 1998 /** 1999 * @format 1H1 2000 * @param subevent_code 2001 * @param acl_handle 2002 * @param status 0 == OK 2003 */ 2004 #define HFP_SUBEVENT_COMPLETE 0x05u 2005 2006 /** 2007 * @format 1H111T 2008 * @param subevent_code 2009 * @param acl_handle 2010 * @param indicator_index 2011 * @param indicator_min_range 2012 * @param indicator_max_range 2013 * @param indicator_name 2014 */ 2015 #define HFP_SUBEVENT_AG_INDICATOR_MAPPING 0x06u 2016 2017 /** 2018 * @format 1H1111111T 2019 * @param subevent_code 2020 * @param acl_handle 2021 * @param indicator_index 2022 * @param indicator_status 2023 * @param indicator_min_range 2024 * @param indicator_max_range 2025 * @param indicator_mandatory 2026 * @param indicator_enabled 2027 * @param indicator_status_changed 2028 * @param indicator_name 2029 */ 2030 #define HFP_SUBEVENT_AG_INDICATOR_STATUS_CHANGED 0x07u 2031 2032 /** 2033 * @format 1H11T 2034 * @param subevent_code 2035 * @param acl_handle 2036 * @param network_operator_mode 2037 * @param network_operator_format 2038 * @param network_operator_name 2039 */ 2040 #define HFP_SUBEVENT_NETWORK_OPERATOR_CHANGED 0x08u 2041 2042 /** 2043 * @format 1H1 2044 * @param subevent_code 2045 * @param acl_handle 2046 * @param error 2047 */ 2048 #define HFP_SUBEVENT_EXTENDED_AUDIO_GATEWAY_ERROR 0x09u 2049 2050 /** 2051 * @format 1H 2052 * @param subevent_code 2053 * @param acl_handle 2054 */ 2055 #define HFP_SUBEVENT_START_RINGING 0x0Au 2056 2057 /** 2058 * @format 1H 2059 * @param subevent_code 2060 * @param acl_handle 2061 */ 2062 #define HFP_SUBEVENT_RING 0x0Bu 2063 2064 /** 2065 * @format 1H 2066 * @param subevent_code 2067 * @param acl_handle 2068 */ 2069 #define HFP_SUBEVENT_STOP_RINGING 0x0Cu 2070 2071 /** 2072 * @format 1HT 2073 * @param subevent_code 2074 * @param acl_handle 2075 * @param number 2076 */ 2077 #define HFP_SUBEVENT_PLACE_CALL_WITH_NUMBER 0x0Du 2078 2079 /** 2080 * @format 1H 2081 * @param subevent_code 2082 * @param acl_handle 2083 */ 2084 #define HFP_SUBEVENT_ATTACH_NUMBER_TO_VOICE_TAG 0x0Eu 2085 2086 /** 2087 * @format 1HT 2088 * @param subevent_code 2089 * @param acl_handle 2090 * @param number 2091 */ 2092 #define HFP_SUBEVENT_NUMBER_FOR_VOICE_TAG 0x0Fu 2093 2094 /** 2095 * @format 1HT 2096 * @param subevent_code 2097 * @param acl_handle 2098 * @param dtmf code 2099 */ 2100 #define HFP_SUBEVENT_TRANSMIT_DTMF_CODES 0x10u 2101 2102 /** 2103 * @format 1H 2104 * @param subevent_code 2105 * @param acl_handle 2106 */ 2107 #define HFP_SUBEVENT_CALL_ANSWERED 0x11u 2108 2109 /** 2110 * @format 1H 2111 * @param subevent_code 2112 * @param acl_handle 2113 */ 2114 #define HFP_SUBEVENT_CALL_TERMINATED 0x12u 2115 2116 /** 2117 * @format 1H 2118 * @param subevent_code 2119 * @param acl_handle 2120 */ 2121 #define HFP_SUBEVENT_CONFERENCE_CALL 0x13u 2122 2123 2124 /** 2125 * @format 1H1 2126 * @param subevent_code 2127 * @param acl_handle 2128 * @param gain 2129 */ 2130 #define HFP_SUBEVENT_SPEAKER_VOLUME 0x14u 2131 2132 /** 2133 * @format 1H1 2134 * @param subevent_code 2135 * @param acl_handle 2136 * @param gain 2137 */ 2138 #define HFP_SUBEVENT_MICROPHONE_VOLUME 0x15u 2139 2140 /** 2141 * @format 1H1JVJV 2142 * @param subevent_code 2143 * @param acl_handle 2144 * @param type 2145 * @param number_length 2146 * @param number 2147 * @param alpha_length 2148 * @param alpha 2149 */ 2150 #define HFP_SUBEVENT_CALL_WAITING_NOTIFICATION 0x16u 2151 2152 /** 2153 * @format 1H1JVJV 2154 * @param subevent_code 2155 * @param acl_handle 2156 * @param type 2157 * @param number_length 2158 * @param number 2159 * @param alpha_length 2160 * @param alpha 2161 */ 2162 #define HFP_SUBEVENT_CALLING_LINE_IDENTIFICATION_NOTIFICATION 0x17u 2163 2164 /** 2165 * @format 1H111111T 2166 * @param subevent_code 2167 * @param acl_handle 2168 * @param clcc_idx 2169 * @param clcc_dir 2170 * @param clcc_status 2171 * @param clcc_mode 2172 * @param clcc_mpty 2173 * @param bnip_type 2174 * @param bnip_number 2175 */ 2176 #define HFP_SUBEVENT_ENHANCED_CALL_STATUS 0x18u 2177 2178 /** 2179 * @format 1H11T 2180 * @param subevent_code 2181 * @param acl_handle 2182 * @param status 2183 * @param bnip_type 2184 * @param bnip_number 2185 */ 2186 #define HFP_SUBEVENT_SUBSCRIBER_NUMBER_INFORMATION 0x19u 2187 2188 /** 2189 * @format 1HT 2190 * @param subevent_code 2191 * @param acl_handle 2192 * @param value 2193 */ 2194 #define HFP_SUBEVENT_RESPONSE_AND_HOLD_STATUS 0x1Au 2195 2196 /** 2197 * @format 1HT 2198 * @param subevent_code 2199 * @param acl_handle 2200 * @param command 2201 */ 2202 #define HFP_SUBEVENT_AT_MESSAGE_SENT 0x1Bu 2203 2204 /** 2205 * @format 1HT 2206 * @param subevent_code 2207 * @param acl_handle 2208 * @param command 2209 */ 2210 #define HFP_SUBEVENT_AT_MESSAGE_RECEIVED 0x1Cu 2211 2212 /** 2213 * @format 1H1 2214 * @param subevent_code 2215 * @param acl_handle 2216 * @param status 2217 */ 2218 #define HFP_SUBEVENT_IN_BAND_RING_TONE 0x1Du 2219 2220 /** 2221 * @format 1H11 2222 * @param subevent_code 2223 * @param acl_handle 2224 * @param status // 0-success 2225 * @param enhanced // 0-legacy, 1-enhanced 2226 */ 2227 #define HFP_SUBEVENT_VOICE_RECOGNITION_ACTIVATED 0x1Eu 2228 2229 /** 2230 * @format 1H1 2231 * @param subevent_code 2232 * @param acl_handle 2233 * @param status // 0-success 2234 */ 2235 #define HFP_SUBEVENT_VOICE_RECOGNITION_DEACTIVATED 0x1Fu 2236 2237 /** 2238 * @format 1H1 2239 * @param subevent_code 2240 * @param acl_handle 2241 * @param status 2242 */ 2243 #define HFP_SUBEVENT_ENHANCED_VOICE_RECOGNITION_HF_READY_FOR_AUDIO 0x20u 2244 2245 2246 /** 2247 * @format 1H1 2248 * @param subevent_code 2249 * @param acl_handle 2250 * @param status 2251 */ 2252 #define HFP_SUBEVENT_ENHANCED_VOICE_RECOGNITION_AG_READY_TO_ACCEPT_AUDIO_INPUT 0x21u 2253 2254 /** 2255 * @format 1H1 2256 * @param subevent_code 2257 * @param acl_handle 2258 * @param status 2259 */ 2260 #define HFP_SUBEVENT_ENHANCED_VOICE_RECOGNITION_AG_IS_STARTING_SOUND 0x22u 2261 2262 /** 2263 * @format 1H1 2264 * @param subevent_code 2265 * @param acl_handle 2266 * @param status 2267 */ 2268 #define HFP_SUBEVENT_ENHANCED_VOICE_RECOGNITION_AG_IS_PROCESSING_AUDIO_INPUT 0x23u 2269 2270 /** 2271 * @format 1H1 2272 * @param subevent_code 2273 * @param acl_handle 2274 * @param status 2275 */ 2276 #define HFP_SUBEVENT_ENHANCED_VOICE_RECOGNITION_AG_MESSAGE_SENT 0x24u 2277 2278 2279 /** 2280 * @format 1H211LV 2281 * @param subevent_code 2282 * @param acl_handle 2283 * @param text_id 2284 * @param text_type 2285 * @param text_operation 2286 * @param text_length 2287 * @param text 2288 */ 2289 #define HFP_SUBEVENT_ENHANCED_VOICE_RECOGNITION_AG_MESSAGE 0x25u 2290 2291 /** 2292 * @format 1H1 2293 * @param subevent_code 2294 * @param acl_handle 2295 * @param status 2296 */ 2297 #define HFP_SUBEVENT_ECHO_CANCELING_AND_NOISE_REDUCTION_DEACTIVATE 0x26u 2298 2299 /** 2300 * @format 1H21 2301 * @param subevent_code 2302 * @param acl_handle 2303 * @param uuid 2304 * @param value 2305 */ 2306 #define HFP_SUBEVENT_HF_INDICATOR 0x27u 2307 2308 2309 // ANCS Client 2310 2311 /** 2312 * @format 1H 2313 * @param subevent_code 2314 * @param handle 2315 */ 2316 #define ANCS_SUBEVENT_CLIENT_CONNECTED 0xF0u 2317 2318 /** 2319 * @format 1H2T 2320 * @param subevent_code 2321 * @param handle 2322 * @param attribute_id 2323 * @param text 2324 */ 2325 #define ANCS_SUBEVENT_CLIENT_NOTIFICATION 0xF1u 2326 2327 /** 2328 * @format 1H 2329 * @param subevent_code 2330 * @param handle 2331 */ 2332 #define ANCS_SUBEVENT_CLIENT_DISCONNECTED 0xF2u 2333 2334 2335 /** AVDTP Subevent */ 2336 2337 /** 2338 * @format 12111 2339 * @param subevent_code 2340 * @param avdtp_cid 2341 * @param local_seid 2342 * @param is_initiator 2343 * @param signal_identifier 2344 */ 2345 #define AVDTP_SUBEVENT_SIGNALING_ACCEPT 0x01u 2346 2347 /** 2348 * @format 12111 2349 * @param subevent_code 2350 * @param avdtp_cid 2351 * @param local_seid 2352 * @param is_initiator 2353 * @param signal_identifier 2354 */ 2355 #define AVDTP_SUBEVENT_SIGNALING_REJECT 0x02u 2356 2357 /** 2358 * @format 12111 2359 * @param subevent_code 2360 * @param avdtp_cid 2361 * @param local_seid 2362 * @param is_initiator 2363 * @param signal_identifier 2364 */ 2365 #define AVDTP_SUBEVENT_SIGNALING_GENERAL_REJECT 0x03u 2366 2367 /** 2368 * @format 12B21 2369 * @param subevent_code 2370 * @param avdtp_cid 2371 * @param bd_addr 2372 * @param con_handle 2373 * @param status 0 == OK 2374 */ 2375 #define AVDTP_SUBEVENT_SIGNALING_CONNECTION_ESTABLISHED 0x04u 2376 2377 /** 2378 * @format 12 2379 * @param subevent_code 2380 * @param avdtp_cid 2381 */ 2382 #define AVDTP_SUBEVENT_SIGNALING_CONNECTION_RELEASED 0x05u 2383 2384 /** 2385 * @format 121111 2386 * @param subevent_code 2387 * @param avdtp_cid 2388 * @param remote_seid 0x01u – 0x3Eu 2389 * @param in_use 0-not in use, 1-in use 2390 * @param media_type 0-audio, 1-video, 2-multimedia 2391 * @param sep_type 0-source, 1-sink 2392 */ 2393 #define AVDTP_SUBEVENT_SIGNALING_SEP_FOUND 0x06u 2394 2395 /** 2396 * @format 12111111111 2397 * @param subevent_code 2398 * @param avdtp_cid 2399 * @param remote_seid 2400 * @param media_type 2401 * @param sampling_frequency_bitmap 2402 * @param channel_mode_bitmap 2403 * @param block_length_bitmap 2404 * @param subbands_bitmap 2405 * @param allocation_method_bitmap 2406 * @param min_bitpool_value 2407 * @param max_bitpool_value 2408 */ 2409 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CAPABILITY 0x07u 2410 2411 /** 2412 * @format 12111111112 2413 * @param subevent_code 2414 * @param avdtp_cid 2415 * @param remote_seid 2416 * @param media_type 2417 * @param layer_bitmap 2418 * @param crc 2419 * @param channel_mode_bitmap 2420 * @param media_payload_format 2421 * @param sampling_frequency_bitmap 2422 * @param vbr 2423 * @param bit_rate_index_bitmap 2424 */ 2425 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AUDIO_CAPABILITY 0x08u 2426 2427 /** 2428 * @format 121112131 2429 * @param subevent_code 2430 * @param avdtp_cid 2431 * @param remote_seid 2432 * @param media_type 2433 * @param object_type_bitmap 2434 * @param sampling_frequency_bitmap 2435 * @param channels_bitmap 2436 * @param bit_rate 2437 * @param vbr 2438 */ 2439 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AAC_CAPABILITY 0x09u 2440 2441 /** 2442 * @format 1211111132 2443 * @param subevent_code 2444 * @param avdtp_cid 2445 * @param remote_seid 2446 * @param media_type 2447 * @param version 2448 * @param channel_mode_bitmap 2449 * @param sampling_frequency_bitmap 2450 * @param vbr 2451 * @param bit_rate_index_bitmap 2452 * @param maximum_sul 2453 */ 2454 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_ATRAC_CAPABILITY 0x0Au 2455 2456 /** 2457 * @format 12112LV 2458 * @param subevent_code 2459 * @param avdtp_cid 2460 * @param remote_seid 2461 * @param media_type 2462 * @param media_codec_type 2463 * @param media_codec_information_len 2464 * @param media_codec_information 2465 */ 2466 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CAPABILITY 0x0Bu 2467 2468 2469 /** 2470 * @format 121 2471 * @param subevent_code 2472 * @param avdtp_cid 2473 * @param remote_seid 2474 */ 2475 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_TRANSPORT_CAPABILITY 0x0Cu 2476 2477 2478 /** 2479 * @format 121 2480 * @param subevent_code 2481 * @param avdtp_cid 2482 * @param remote_seid 2483 */ 2484 #define AVDTP_SUBEVENT_SIGNALING_REPORTING_CAPABILITY 0x0Du 2485 2486 2487 /** 2488 * @format 121111 2489 * @param subevent_code 2490 * @param avdtp_cid 2491 * @param remote_seid 2492 * @param recovery_type 2493 * @param maximum_recovery_window_size 2494 * @param maximum_number_media_packets 2495 */ 2496 #define AVDTP_SUBEVENT_SIGNALING_RECOVERY_CAPABILITY 0x0Eu 2497 2498 2499 /** 2500 * @format 1212LV 2501 * @param subevent_code 2502 * @param avdtp_cid 2503 * @param remote_seid 2504 * @param cp_type 2505 * @param cp_type_value_len 2506 * @param cp_type_value 2507 */ 2508 #define AVDTP_SUBEVENT_SIGNALING_CONTENT_PROTECTION_CAPABILITY 0x0Fu 2509 2510 2511 /** 2512 * @format 12111111111 2513 * @param subevent_code 2514 * @param avdtp_cid 2515 * @param remote_seid 2516 * @param fragmentation 2517 * @param transport_identifiers_num 2518 * @param transport_session_identifier_1 2519 * @param transport_session_identifier_2 2520 * @param transport_session_identifier_3 2521 * @param tcid_1 2522 * @param tcid_2 2523 * @param tcid_3 2524 */ 2525 #define AVDTP_SUBEVENT_SIGNALING_MULTIPLEXING_CAPABILITY 0x10u 2526 2527 2528 /** 2529 * @format 121 2530 * @param subevent_code 2531 * @param avdtp_cid 2532 * @param remote_seid 2533 */ 2534 #define AVDTP_SUBEVENT_SIGNALING_DELAY_REPORTING_CAPABILITY 0x11u 2535 2536 2537 /** 2538 * @format 121111 2539 * @param subevent_code 2540 * @param avdtp_cid 2541 * @param remote_seid 2542 * @param back_ch 2543 * @param media 2544 * @param recovery 2545 */ 2546 #define AVDTP_SUBEVENT_SIGNALING_HEADER_COMPRESSION_CAPABILITY 0x12u 2547 2548 /** 2549 * @format 121 2550 * @param subevent_code 2551 * @param avdtp_cid 2552 * @param remote_seid 2553 */ 2554 #define AVDTP_SUBEVENT_SIGNALING_CAPABILITIES_DONE 0x13u 2555 2556 2557 /** 2558 * @format 12111121111111 2559 * @param subevent_code 2560 * @param avdtp_cid 2561 * @param local_seid 2562 * @param remote_seid 2563 * @param reconfigure 2564 * @param media_type 2565 * @param sampling_frequency 2566 * @param channel_mode 2567 * @param num_channels 2568 * @param block_length 2569 * @param subbands 2570 * @param allocation_method 2571 * @param min_bitpool_value 2572 * @param max_bitpool_value 2573 */ 2574 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION 0x14u 2575 2576 /** 2577 * @format 12111111111211 2578 * @param subevent_code 2579 * @param avdtp_cid 2580 * @param local_seid 2581 * @param remote_seid 2582 * @param reconfigure 2583 * @param media_type 2584 * @param layer 2585 * @param crc 2586 * @param channel_mode 2587 * @param num_channels 2588 * @param media_payload_format 2589 * @param sampling_frequency 2590 * @param vbr 2591 * @param bit_rate_index 2592 */ 2593 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AUDIO_CONFIGURATION 0x15u 2594 2595 /** 2596 * @format 12111113131 2597 * @param subevent_code 2598 * @param avdtp_cid 2599 * @param local_seid 2600 * @param remote_seid 2601 * @param reconfigure 2602 * @param media_type 2603 * @param object_type 2604 * @param sampling_frequency 2605 * @param num_channels 2606 * @param bit_rate 2607 * @param vbr 2608 */ 2609 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AAC_CONFIGURATION 0x16u 2610 2611 /** 2612 * @format 1211111112112 2613 * @param subevent_code 2614 * @param avdtp_cid 2615 * @param local_seid 2616 * @param remote_seid 2617 * @param reconfigure 2618 * @param media_type 2619 * @param version 2620 * @param channel_mode 2621 * @param num_channels 2622 * @param sampling_frequency 2623 * @param vbr 2624 * @param bit_rate_index 2625 * @param maximum_sul 2626 */ 2627 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_ATRAC_CONFIGURATION 0x17u 2628 2629 /** 2630 * @format 1211112LV 2631 * @param subevent_code 2632 * @param avdtp_cid 2633 * @param local_seid 2634 * @param remote_seid 2635 * @param reconfigure 2636 * @param media_type 2637 * @param media_codec_type 2638 * @param media_codec_information_len 2639 * @param media_codec_information 2640 */ 2641 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION 0x18u 2642 2643 /** 2644 * @format 12B111 2645 * @param subevent_code 2646 * @param avdtp_cid 2647 * @param bd_addr 2648 * @param local_seid 2649 * @param remote_seid 2650 * @param status 0 == OK 2651 */ 2652 #define AVDTP_SUBEVENT_STREAMING_CONNECTION_ESTABLISHED 0x19u 2653 2654 /** 2655 * @format 121 2656 * @param subevent_code 2657 * @param avdtp_cid 2658 * @param local_seid 2659 */ 2660 #define AVDTP_SUBEVENT_STREAMING_CONNECTION_RELEASED 0x1Au 2661 2662 /** 2663 * @format 1212 2664 * @param subevent_code 2665 * @param avdtp_cid 2666 * @param local_seid 2667 * @param sequence_number 2668 */ 2669 #define AVDTP_SUBEVENT_STREAMING_CAN_SEND_MEDIA_PACKET_NOW 0x1Bu 2670 2671 2672 /** 2673 * @format 12 2674 * @param subevent_code 2675 * @param avdtp_cid 2676 */ 2677 #define AVDTP_SUBEVENT_SIGNALING_SEP_DICOVERY_DONE 0x1Cu 2678 2679 /** 2680 * @format 1212 2681 * @param subevent_code 2682 * @param avdtp_cid 2683 * @param local_seid 2684 * @param delay_100us 2685 */ 2686 #define AVDTP_SUBEVENT_SIGNALING_DELAY_REPORT 0x1Du 2687 2688 2689 /** A2DP Subevent */ 2690 /* Stream goes through following states: 2691 * - OPEN - indicated with A2DP_SUBEVENT_STREAM_ESTABLISHED event 2692 * - START - indicated with A2DP_SUBEVENT_STREAM_STARTED event 2693 * - SUSPEND - indicated with A2DP_SUBEVENT_STREAM_SUSPENDED event 2694 * - ABORT/STOP - indicated with A2DP_SUBEVENT_STREAM_RELEASED event 2695 2696 OPEN state will be followed by ABORT/STOP. Stream is ready but media transfer is not started. 2697 START can come only after the stream is OPENED, and indicates that media transfer is started. 2698 SUSPEND is optional, it pauses the stream. 2699 */ 2700 2701 /** 2702 * @format 121 Sent only by A2DP source. 2703 * @param subevent_code 2704 * @param a2dp_cid 2705 * @param local_seid 2706 */ 2707 #define A2DP_SUBEVENT_STREAMING_CAN_SEND_MEDIA_PACKET_NOW 0x01u 2708 2709 /** 2710 * @format 12111121111111 2711 * @param subevent_code 2712 * @param a2dp_cid 2713 * @param local_seid 2714 * @param remote_seid 2715 * @param reconfigure 2716 * @param media_type 2717 * @param sampling_frequency 2718 * @param channel_mode 2719 * @param num_channels 2720 * @param block_length 2721 * @param subbands 2722 * @param allocation_method 2723 * @param min_bitpool_value 2724 * @param max_bitpool_value 2725 */ 2726 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION 0x02u 2727 2728 /** 2729 * @format 12111111111211 2730 * @param subevent_code 2731 * @param a2dp_cid 2732 * @param local_seid 2733 * @param remote_seid 2734 * @param reconfigure 2735 * @param media_type 2736 * @param layer 2737 * @param crc 2738 * @param channel_mode 2739 * @param num_channels 2740 * @param media_payload_format 2741 * @param sampling_frequency 2742 * @param vbr 2743 * @param bit_rate_index 2744 */ 2745 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AUDIO_CONFIGURATION 0x03u 2746 2747 /** 2748 * @format 12111113131 2749 * @param subevent_code 2750 * @param a2dp_cid 2751 * @param local_seid 2752 * @param remote_seid 2753 * @param reconfigure 2754 * @param media_type 2755 * @param object_type 2756 * @param sampling_frequency 2757 * @param num_channels 2758 * @param bit_rate 2759 * @param vbr 2760 */ 2761 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AAC_CONFIGURATION 0x04u 2762 2763 /** 2764 * @format 1211111112112 2765 * @param subevent_code 2766 * @param a2dp_cid 2767 * @param local_seid 2768 * @param remote_seid 2769 * @param reconfigure 2770 * @param media_type 2771 * @param version 2772 * @param channel_mode 2773 * @param num_channels 2774 * @param sampling_frequency 2775 * @param vbr 2776 * @param bit_rate_index 2777 * @param maximum_sul 2778 */ 2779 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_ATRAC_CONFIGURATION 0x05u 2780 2781 /** 2782 * @format 1211112LV 2783 * @param subevent_code 2784 * @param a2dp_cid 2785 * @param local_seid 2786 * @param remote_seid 2787 * @param reconfigure 2788 * @param media_type 2789 * @param media_codec_type 2790 * @param media_codec_information_len 2791 * @param media_codec_information 2792 */ 2793 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION 0x06u 2794 2795 /** 2796 * @format 12B111 Stream is opened but not started. 2797 * @param subevent_code 2798 * @param a2dp_cid 2799 * @param bd_addr 2800 * @param local_seid 2801 * @param remote_seid 2802 * @param status 2803 */ 2804 #define A2DP_SUBEVENT_STREAM_ESTABLISHED 0x07u 2805 2806 /** 2807 * @format 121 If ENABLE_AVDTP_ACCEPTOR_EXPLICIT_START_STREAM_CONFIRMATION, user must explicitly accept stream start. 2808 * @param subevent_code 2809 * @param a2dp_cid 2810 * @param local_seid 2811 */ 2812 #define A2DP_SUBEVENT_START_STREAM_REQUESTED 0x08u 2813 2814 /** 2815 * @format 121 Indicates that media transfer is started. 2816 * @param subevent_code 2817 * @param a2dp_cid 2818 * @param local_seid 2819 */ 2820 #define A2DP_SUBEVENT_STREAM_STARTED 0x09u 2821 2822 /** 2823 * @format 121 Stream is paused. 2824 * @param subevent_code 2825 * @param a2dp_cid 2826 * @param local_seid 2827 */ 2828 #define A2DP_SUBEVENT_STREAM_SUSPENDED 0x0Au 2829 2830 /** 2831 * @format 121 Stream is stopped or aborted. 2832 * @param subevent_code 2833 * @param a2dp_cid 2834 * @param local_seid 2835 */ 2836 #define A2DP_SUBEVENT_STREAM_STOPPED 0x0Bu 2837 2838 /** 2839 * @format 121 Stream is released. 2840 * @param subevent_code 2841 * @param a2dp_cid 2842 * @param local_seid 2843 */ 2844 #define A2DP_SUBEVENT_STREAM_RELEASED 0x0Cu 2845 2846 /** 2847 * @format 1211 2848 * @param subevent_code 2849 * @param a2dp_cid 2850 * @param local_seid 2851 * @param signal_identifier 2852 */ 2853 #define A2DP_SUBEVENT_COMMAND_ACCEPTED 0x0Du 2854 2855 /** 2856 * @format 12111 2857 * @param subevent_code 2858 * @param a2dp_cid 2859 * @param local_seid 2860 * @param is_initiator 2861 * @param signal_identifier 2862 */ 2863 #define A2DP_SUBEVENT_COMMAND_REJECTED 0x0Eu 2864 2865 /** 2866 * @format 12B21 2867 * @param subevent_code 2868 * @param a2dp_cid 2869 * @param bd_addr 2870 * @param con_handle 2871 * @param status 0 == OK 2872 */ 2873 #define A2DP_SUBEVENT_SIGNALING_CONNECTION_ESTABLISHED 0x0Fu 2874 2875 /** 2876 * @format 12 Signaling channel is released. 2877 * @param subevent_code 2878 * @param a2dp_cid 2879 */ 2880 #define A2DP_SUBEVENT_SIGNALING_CONNECTION_RELEASED 0x10u 2881 2882 /** 2883 * @format 1211 Stream was reconfigured 2884 * @param subevent_code 2885 * @param a2dp_cid 2886 * @param local_seid 2887 * @param status 2888 */ 2889 #define A2DP_SUBEVENT_STREAM_RECONFIGURED 0x12u 2890 2891 /** 2892 * @format 12111111111 2893 * @param subevent_code 2894 * @param a2dp_cid 2895 * @param remote_seid 2896 * @param media_type 2897 * @param sampling_frequency_bitmap 2898 * @param channel_mode_bitmap 2899 * @param block_length_bitmap 2900 * @param subbands_bitmap 2901 * @param allocation_method_bitmap 2902 * @param min_bitpool_value 2903 * @param max_bitpool_value 2904 */ 2905 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CAPABILITY 0x13u 2906 2907 /** 2908 * @format 12111111112 2909 * @param subevent_code 2910 * @param a2dp_cid 2911 * @param remote_seid 2912 * @param media_type 2913 * @param layer_bitmap 2914 * @param crc 2915 * @param channel_mode_bitmap 2916 * @param media_payload_format 2917 * @param sampling_frequency_bitmap 2918 * @param vbr 2919 * @param bit_rate_index_bitmap 2920 */ 2921 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AUDIO_CAPABILITY 0x14u 2922 2923 /** 2924 * @format 121112131 2925 * @param subevent_code 2926 * @param a2dp_cid 2927 * @param remote_seid 2928 * @param media_type 2929 * @param object_type_bitmap 2930 * @param sampling_frequency_bitmap 2931 * @param channels_bitmap 2932 * @param bit_rate 2933 * @param vbr 2934 */ 2935 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AAC_CAPABILITY 0x15u 2936 2937 /** 2938 * @format 1211111132 2939 * @param subevent_code 2940 * @param a2dp_cid 2941 * @param remote_seid 2942 * @param media_type 2943 * @param version 2944 * @param channel_mode_bitmap 2945 * @param sampling_frequency_bitmap 2946 * @param vbr 2947 * @param bit_rate_index_bitmap 2948 * @param maximum_sul 2949 */ 2950 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_ATRAC_CAPABILITY 0x16u 2951 2952 /** 2953 * @format 12112LV 2954 * @param subevent_code 2955 * @param a2dp_cid 2956 * @param remote_seid 2957 * @param media_type 2958 * @param media_codec_type 2959 * @param media_codec_information_len 2960 * @param media_codec_information 2961 */ 2962 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CAPABILITY 0x17u 2963 2964 /** 2965 * @format 121 2966 * @param subevent_code 2967 * @param a2dp_cid 2968 * @param remote_seid 2969 */ 2970 #define A2DP_SUBEVENT_SIGNALING_DELAY_REPORTING_CAPABILITY 0x18u 2971 2972 2973 /** 2974 * @format 1212 2975 * @param subevent_code 2976 * @param a2dp_cid 2977 * @param local_seid 2978 * @param delay_100us 2979 */ 2980 #define A2DP_SUBEVENT_SIGNALING_DELAY_REPORT 0x19u 2981 2982 /** 2983 * @format 121 2984 * @param subevent_code 2985 * @param a2dp_cid 2986 * @param remote_seid 2987 */ 2988 #define A2DP_SUBEVENT_SIGNALING_CAPABILITIES_DONE 0x1Au 2989 2990 /** 2991 * @format 12 2992 * @param subevent_code 2993 * @param a2dp_cid 2994 */ 2995 #define A2DP_SUBEVENT_SIGNALING_CAPABILITIES_COMPLETE 0x1Bu 2996 2997 2998 /** AVRCP Subevent */ 2999 3000 /** 3001 * @format 1211 3002 * @param subevent_code 3003 * @param avrcp_cid 3004 * @param command_type 3005 * @param play_status 3006 */ 3007 #define AVRCP_SUBEVENT_NOTIFICATION_PLAYBACK_STATUS_CHANGED 0x01u 3008 3009 /** 3010 * @format 121 3011 * @param subevent_code 3012 * @param avrcp_cid 3013 * @param command_type 3014 */ 3015 #define AVRCP_SUBEVENT_NOTIFICATION_TRACK_CHANGED 0x02u 3016 3017 /** 3018 * @format 121 3019 * @param subevent_code 3020 * @param avrcp_cid 3021 * @param command_type 3022 */ 3023 #define AVRCP_SUBEVENT_NOTIFICATION_EVENT_TRACK_REACHED_END 0x03u 3024 3025 /** 3026 * @format 121 3027 * @param subevent_code 3028 * @param avrcp_cid 3029 * @param command_type 3030 */ 3031 #define AVRCP_SUBEVENT_NOTIFICATION_EVENT_TRACK_REACHED_START 0x04u 3032 3033 /** 3034 * @format 1214 3035 * @param subevent_code 3036 * @param avrcp_cid 3037 * @param command_type 3038 * @param playback_position If no track currently selected, then return 0xFFuFFFFFF in the INTERIM response. 3039 */ 3040 #define AVRCP_SUBEVENT_NOTIFICATION_EVENT_PLAYBACK_POS_CHANGED 0x05u 3041 3042 /** 3043 * @format 1211 3044 * @param subevent_code 3045 * @param avrcp_cid 3046 * @param command_type 3047 * @param battery_status see avrcp_battery_status_t 3048 */ 3049 #define AVRCP_SUBEVENT_NOTIFICATION_EVENT_BATT_STATUS_CHANGED 0x06u 3050 3051 /** 3052 * @format 1211 3053 * @param subevent_code 3054 * @param avrcp_cid 3055 * @param command_type 3056 * @param system_status see avrcp_system_status_t 3057 */ 3058 #define AVRCP_SUBEVENT_NOTIFICATION_EVENT_SYSTEM_STATUS_CHANGED 0x07u 3059 3060 3061 // Recquires 1 byte for num_attributes, followed by num_attributes tuples [attribute_id(1), value_id(1)], see avrcp_player_application_setting_attribute_id_t 3062 #define AVRCP_SUBEVENT_NOTIFICATION_EVENT_PLAYER_APPLICATION_SETTING_CHANGED 0x08u 3063 3064 /** 3065 * @format 121 3066 * @param subevent_code 3067 * @param avrcp_cid 3068 * @param command_type 3069 */ 3070 #define AVRCP_SUBEVENT_NOTIFICATION_NOW_PLAYING_CONTENT_CHANGED 0x09u 3071 3072 /** 3073 * @format 121 3074 * @param subevent_code 3075 * @param avrcp_cid 3076 * @param command_type 3077 */ 3078 #define AVRCP_SUBEVENT_NOTIFICATION_AVAILABLE_PLAYERS_CHANGED 0x0Au 3079 3080 // AVRCP_SUBEVENT_NOTIFICATION_EVENT_ADDRESSED_PLAYER_CHANGED = 0x0bu, -- The Addressed Player has been changed, see 6.9.2. 3081 3082 /** 3083 * @format 1212 3084 * @param subevent_code 3085 * @param avrcp_cid 3086 * @param command_type 3087 * @param uid_counter of the currently browsed player 3088 */ 3089 #define AVRCP_SUBEVENT_NOTIFICATION_EVENT_UIDS_CHANGED 0x0Cu 3090 3091 /** 3092 * @format 1211 3093 * @param subevent_code 3094 * @param avrcp_cid 3095 * @param command_type 3096 * @param absolute_volume 3097 */ 3098 #define AVRCP_SUBEVENT_NOTIFICATION_VOLUME_CHANGED 0x0Du 3099 3100 3101 /** 3102 * @format 1211 3103 * @param subevent_code 3104 * @param avrcp_cid 3105 * @param command_type 3106 * @param absolute_volume 3107 */ 3108 #define AVRCP_SUBEVENT_SET_ABSOLUTE_VOLUME_RESPONSE 0x10u 3109 3110 /** 3111 * @format 12111 3112 * @param subevent_code 3113 * @param avrcp_cid 3114 * @param status 3115 * @param enabled // 1 enabled, 0 disabled 3116 * @param event_id 3117 */ 3118 #define AVRCP_SUBEVENT_NOTIFICATION_STATE 0x11u 3119 3120 /** 3121 * @format 112B2 3122 * @param subevent_code 3123 * @param status 0 == OK 3124 * @param avrcp_cid 3125 * @param bd_addr 3126 * @param con_handle 3127 */ 3128 #define AVRCP_SUBEVENT_CONNECTION_ESTABLISHED 0x12u 3129 3130 /** 3131 * @format 12 3132 * @param subevent_code 3133 * @param avrcp_cid 3134 */ 3135 #define AVRCP_SUBEVENT_CONNECTION_RELEASED 0x13u 3136 3137 /** 3138 * @format 12111 3139 * @param subevent_code 3140 * @param avrcp_cid 3141 * @param command_type 3142 * @param repeat_mode 3143 * @param shuffle_mode 3144 */ 3145 #define AVRCP_SUBEVENT_SHUFFLE_AND_REPEAT_MODE 0x14u 3146 3147 /** 3148 * @format 121441 3149 * @param subevent_code 3150 * @param avrcp_cid 3151 * @param command_type 3152 * @param song_length 3153 * @param song_position 3154 * @param play_status 3155 */ 3156 #define AVRCP_SUBEVENT_PLAY_STATUS 0x15u 3157 3158 /** 3159 * @format 1211 3160 * @param subevent_code 3161 * @param avrcp_cid 3162 * @param command_type 3163 * @param operation_id 3164 */ 3165 #define AVRCP_SUBEVENT_OPERATION_START 0x16u 3166 3167 /** 3168 * @format 1211 3169 * @param subevent_code 3170 * @param avrcp_cid 3171 * @param command_type 3172 * @param operation_id 3173 */ 3174 #define AVRCP_SUBEVENT_OPERATION_COMPLETE 0x17u 3175 3176 /** 3177 * @format 121 3178 * @param subevent_code 3179 * @param avrcp_cid 3180 * @param command_type 3181 */ 3182 #define AVRCP_SUBEVENT_PLAYER_APPLICATION_VALUE_RESPONSE 0x18u 3183 3184 /** 3185 * @format 12 3186 * @param subevent_code 3187 * @param avrcp_cid 3188 */ 3189 #define AVRCP_SUBEVENT_PLAY_STATUS_QUERY 0x19u 3190 3191 /** 3192 * @format 121111 3193 * @param subevent_code 3194 * @param avrcp_cid 3195 * @param operation_id 3196 * @param button_pressed 3197 * @param operands_length 3198 * @param operand 3199 */ 3200 #define AVRCP_SUBEVENT_OPERATION 0x1Au 3201 3202 /** 3203 * @format 1211 3204 * @param subevent_code 3205 * @param avrcp_cid 3206 * @param command_type 3207 * @param track 3208 */ 3209 #define AVRCP_SUBEVENT_NOW_PLAYING_TRACK_INFO 0x1Bu 3210 3211 /** 3212 * @format 1211 3213 * @param subevent_code 3214 * @param avrcp_cid 3215 * @param command_type 3216 * @param total_tracks 3217 */ 3218 #define AVRCP_SUBEVENT_NOW_PLAYING_TOTAL_TRACKS_INFO 0x1Cu 3219 3220 /** 3221 * @format 1214 3222 * @param subevent_code 3223 * @param avrcp_cid 3224 * @param command_type 3225 * @param song_length in ms 3226 */ 3227 #define AVRCP_SUBEVENT_NOW_PLAYING_SONG_LENGTH_MS_INFO 0x1Du 3228 3229 /** 3230 * @format 121JV 3231 * @param subevent_code 3232 * @param avrcp_cid 3233 * @param command_type 3234 * @param value_len 3235 * @param value 3236 */ 3237 #define AVRCP_SUBEVENT_NOW_PLAYING_TITLE_INFO 0x1Eu 3238 3239 /* 3240 * @format 121JV 3241 * @param subevent_code 3242 * @param avrcp_cid 3243 * @param command_type 3244 * @param value_len 3245 * @param value 3246 */ 3247 #define AVRCP_SUBEVENT_NOW_PLAYING_ARTIST_INFO 0x1Fu 3248 3249 /* 3250 * @format 121JV 3251 * @param subevent_code 3252 * @param avrcp_cid 3253 * @param command_type 3254 * @param value_len 3255 * @param value 3256 */ 3257 #define AVRCP_SUBEVENT_NOW_PLAYING_ALBUM_INFO 0x20u 3258 3259 /* 3260 * @format 121JV 3261 * @param subevent_code 3262 * @param avrcp_cid 3263 * @param command_type 3264 * @param value_len 3265 * @param value 3266 */ 3267 #define AVRCP_SUBEVENT_NOW_PLAYING_GENRE_INFO 0x21u 3268 3269 /* 3270 * @format 1211 3271 * @param subevent_code 3272 * @param avrcp_cid 3273 * @param command_type 3274 * @param status 3275 */ 3276 #define AVRCP_SUBEVENT_NOW_PLAYING_INFO_DONE 0x22u 3277 3278 /** 3279 * @format 1214 3280 * @param subevent_code 3281 * @param avrcp_cid 3282 * @param command_type 3283 * @param playback_position_ms 3284 */ 3285 #define AVRCP_SUBEVENT_NOTIFICATION_PLAYBACK_POS_CHANGED 0x23u 3286 3287 /* 3288 * @format 12111 3289 * @param subevent_code 3290 * @param avrcp_cid 3291 * @param command_type 3292 * @param status 3293 * @param event_id 3294 */ 3295 #define AVRCP_SUBEVENT_GET_CAPABILITY_EVENT_ID 0x24u 3296 /* 3297 * @format 1211 3298 * @param subevent_code 3299 * @param avrcp_cid 3300 * @param command_type 3301 * @param status 3302 */ 3303 #define AVRCP_SUBEVENT_GET_CAPABILITY_EVENT_ID_DONE 0x25u 3304 3305 /* 3306 * @format 12113 3307 * @param subevent_code 3308 * @param avrcp_cid 3309 * @param command_type 3310 * @param status 3311 * @param company_id 3312 */ 3313 #define AVRCP_SUBEVENT_GET_CAPABILITY_COMPANY_ID 0x26u 3314 /* 3315 * @format 1211 3316 * @param subevent_code 3317 * @param avrcp_cid 3318 * @param command_type 3319 * @param status 3320 */ 3321 #define AVRCP_SUBEVENT_GET_CAPABILITY_COMPANY_ID_DONE 0x27u 3322 3323 /** 3324 * @format 1211LV 3325 * @param subevent_code 3326 * @param avrcp_cid 3327 * @param command_type 3328 * @param pdu_id 3329 * @param params_len 3330 * @param params 3331 */ 3332 #define AVRCP_SUBEVENT_CUSTOM_COMMAND_RESPONSE 0x28u 3333 3334 3335 /** 3336 * @format 1B2 3337 * @param subevent_code 3338 * @param bd_addr 3339 * @param browsing_cid 3340 */ 3341 #define AVRCP_SUBEVENT_INCOMING_BROWSING_CONNECTION 0x30u 3342 3343 /** 3344 * @format 11B2 3345 * @param subevent_code 3346 * @param status 0 == OK 3347 * @param bd_addr 3348 * @param browsing_cid 3349 */ 3350 #define AVRCP_SUBEVENT_BROWSING_CONNECTION_ESTABLISHED 0x31u 3351 3352 /** 3353 * @format 12 3354 * @param subevent_code 3355 * @param browsing_cid 3356 */ 3357 #define AVRCP_SUBEVENT_BROWSING_CONNECTION_RELEASED 0x32u 3358 3359 /** 3360 * @format 12211 3361 * @param subevent_code 3362 * @param browsing_cid 3363 * @param uid_counter 3364 * @param browsing_status 3365 * @param bluetooth_status 3366 */ 3367 #define AVRCP_SUBEVENT_BROWSING_DONE 0x33u 3368 3369 /** 3370 * @format 1214 3371 * @param subevent_code 3372 * @param browsing_cid 3373 * @param scope 3374 * @param attr_bitmap 3375 */ 3376 #define AVRCP_SUBEVENT_BROWSING_GET_FOLDER_ITEMS 0x34u 3377 3378 /** 3379 * @format 121 3380 * @param subevent_code 3381 * @param browsing_cid 3382 * @param scope 3383 */ 3384 #define AVRCP_SUBEVENT_BROWSING_GET_TOTAL_NUM_ITEMS 0x35u 3385 3386 /** 3387 * @format 122 3388 * @param subevent_code 3389 * @param browsing_cid 3390 * @param player_id 3391 */ 3392 #define AVRCP_SUBEVENT_BROWSING_SET_BROWSED_PLAYER 0x36u 3393 3394 3395 /** 3396 * @format 12BH 3397 * @param subevent_code 3398 * @param goep_cid 3399 * @param address 3400 * @param handle 3401 */ 3402 #define GOEP_SUBEVENT_INCOMING_CONNECTION 0x01u 3403 3404 /** 3405 * @format 121BH1 3406 * @param subevent_code 3407 * @param goep_cid 3408 * @param status 3409 * @param bd_addr 3410 * @param con_handle 3411 * @param incoming 3412 */ 3413 #define GOEP_SUBEVENT_CONNECTION_OPENED 0x02u 3414 3415 /** 3416 * @format 12 3417 * @param subevent_code 3418 * @param goep_cid 3419 */ 3420 #define GOEP_SUBEVENT_CONNECTION_CLOSED 0x03u 3421 3422 /** 3423 * @format 12 3424 * @param subevent_code 3425 * @param goep_cid 3426 */ 3427 #define GOEP_SUBEVENT_CAN_SEND_NOW 0x04u 3428 3429 /** 3430 * @format 121BH1 3431 * @param subevent_code 3432 * @param pbap_cid 3433 * @param status 3434 * @param bd_addr 3435 * @param con_handle 3436 * @param incoming 3437 */ 3438 #define PBAP_SUBEVENT_CONNECTION_OPENED 0x01u 3439 3440 /** 3441 * @format 12 3442 * @param subevent_code 3443 * @param goep_cid 3444 */ 3445 #define PBAP_SUBEVENT_CONNECTION_CLOSED 0x02u 3446 3447 /** 3448 * @format 121 3449 * @param subevent_code 3450 * @param goep_cid 3451 * @param status 3452 */ 3453 #define PBAP_SUBEVENT_OPERATION_COMPLETED 0x03u 3454 3455 /** 3456 * @format 1212 3457 * @param subevent_code 3458 * @param goep_cid 3459 * @param status 3460 * @param phonebook_size 3461 */ 3462 #define PBAP_SUBEVENT_PHONEBOOK_SIZE 0x04u 3463 3464 /** 3465 * @format 1211 3466 * @param subevent_code 3467 * @param goep_cid 3468 * @param user_id_required 3469 * @param full_access 3470 */ 3471 #define PBAP_SUBEVENT_AUTHENTICATION_REQUEST 0x05u 3472 3473 /** 3474 * @format 12JVJV 3475 * @param subevent_code 3476 * @param goep_cid 3477 * @param name_len 3478 * @param name 3479 * @param handle_len 3480 * @param handle 3481 */ 3482 #define PBAP_SUBEVENT_CARD_RESULT 0x06u 3483 3484 /** 3485 * @format 12 3486 * @param subevent_code 3487 * @param goep_cid 3488 */ 3489 #define PBAP_SUBEVENT_SET_PHONEBOOK_ROOT 0x07u 3490 3491 /** 3492 * @format 12 3493 * @param subevent_code 3494 * @param goep_cid 3495 */ 3496 #define PBAP_SUBEVENT_SET_PHONEBOOK_UP 0x08u 3497 3498 /** 3499 * @format 12T 3500 * @param subevent_code 3501 * @param goep_cid 3502 * @param name 3503 */ 3504 #define PBAP_SUBEVENT_SET_PHONEBOOK_DOWN 0x09u 3505 3506 /** 3507 * @format 12T 3508 * @param subevent_code 3509 * @param goep_cid 3510 * @param name is mch or cch 3511 */ 3512 #define PBAP_SUBEVENT_RESET_MISSED_CALLS 0x0Au 3513 3514 /** 3515 * @format 1241T 3516 * @param subevent_code 3517 * @param goep_cid 3518 * @param vcard_selector 3519 * @param vcard_selector_operator 3520 * @param name 3521 */ 3522 #define PBAP_SUBEVENT_QUERY_PHONEBOOK_SIZE 0x0Bu 3523 3524 /** 3525 * @format 124412241T 3526 * @param subevent_code 3527 * @param goep_cid 3528 * @param continuation - value provided by caller of pbap_sever_phonebook_send 3529 * @param property_selector 3530 * @param format 3531 * @param max_list_count 0xffff for unlimited 3532 * @param list_start_offset 3533 * @param vcard_selector 3534 * @param vcard_selector_operator 3535 * @param name 3536 */ 3537 #define PBAP_SUBEVENT_PULL_PHONEBOOK 0x0Cu 3538 3539 /** 3540 * @format 124122414JVT 3541 * @param subevent_code 3542 * @param goep_cid 3543 * @param continuation - value provided by caller of pbap_sever_vcard_listing_send 3544 * @param order 3545 * @param max_list_count 0xffff for unlimited 3546 * @param list_start_offset 3547 * @param vcard_selector 3548 * @param vcard_selector_operator 3549 * @param search_property 3550 * @param search_value_len 3551 * @param search_value 3552 * @param name 3553 */ 3554 #define PBAP_SUBEVENT_PULL_VCARD_LISTING 0x0Du 3555 3556 /** 3557 * @format 1241T 3558 * @param subevent_code 3559 * @param goep_cid 3560 * @param property_selector 3561 * @param format 3562 * @param name 3563 */ 3564 #define PBAP_SUBEVENT_PULL_VCARD_ENTRY 0x0Eu 3565 3566 3567 // HID Meta Event Group 3568 3569 /** 3570 * @format 12BH 3571 * @param subevent_code 3572 * @param hid_cid 3573 * @param address 3574 * @param handle 3575 */ 3576 #define HID_SUBEVENT_INCOMING_CONNECTION 0x01u 3577 3578 /** 3579 * @format 121BH1 3580 * @param subevent_code 3581 * @param hid_cid 3582 * @param status 3583 * @param bd_addr 3584 * @param con_handle 3585 * @param incoming 3586 */ 3587 #define HID_SUBEVENT_CONNECTION_OPENED 0x02u 3588 3589 /** 3590 * @format 12 3591 * @param subevent_code 3592 * @param hid_cid 3593 */ 3594 #define HID_SUBEVENT_CONNECTION_CLOSED 0x03u 3595 3596 /** 3597 * @format 12 3598 * @param subevent_code 3599 * @param hid_cid 3600 */ 3601 #define HID_SUBEVENT_CAN_SEND_NOW 0x04u 3602 3603 /** 3604 * @format 12 3605 * @param subevent_code 3606 * @param hid_cid 3607 */ 3608 #define HID_SUBEVENT_SUSPEND 0x05u 3609 3610 /** 3611 * @format 12 3612 * @param subevent_code 3613 * @param hid_cid 3614 */ 3615 #define HID_SUBEVENT_EXIT_SUSPEND 0x06u 3616 3617 /** 3618 * @format 12 3619 * @param subevent_code 3620 * @param hid_cid 3621 */ 3622 #define HID_SUBEVENT_VIRTUAL_CABLE_UNPLUG 0x07u 3623 3624 /** 3625 * @format 121LV 3626 * @param subevent_code 3627 * @param hid_cid 3628 * @param handshake_status 3629 * @param report_len 3630 * @param report 3631 */ 3632 #define HID_SUBEVENT_GET_REPORT_RESPONSE 0x08u 3633 3634 /** 3635 * @format 121 3636 * @param subevent_code 3637 * @param hid_cid 3638 * @param handshake_status 3639 */ 3640 #define HID_SUBEVENT_SET_REPORT_RESPONSE 0x09u 3641 3642 /** 3643 * @format 1211 3644 * @param subevent_code 3645 * @param hid_cid 3646 * @param handshake_status 3647 * @param protocol_mode 3648 */ 3649 #define HID_SUBEVENT_GET_PROTOCOL_RESPONSE 0x0Au 3650 3651 /** 3652 * @format 1211 3653 * @param subevent_code 3654 * @param hid_cid 3655 * @param handshake_status 3656 * @param protocol_mode 3657 */ 3658 #define HID_SUBEVENT_SET_PROTOCOL_RESPONSE 0x0Bu 3659 3660 /** 3661 * @format 12LV 3662 * @param subevent_code 3663 * @param hid_cid 3664 * @param report_len 3665 * @param report 3666 */ 3667 #define HID_SUBEVENT_REPORT 0x0Cu 3668 3669 /** 3670 * @format 121 3671 * @param subevent_code 3672 * @param hid_cid 3673 * @param status 3674 */ 3675 #define HID_SUBEVENT_DESCRIPTOR_AVAILABLE 0x0Du 3676 3677 /** 3678 * @format 1222 3679 * @param subevent_code 3680 * @param hid_cid 3681 * @param host_max_latency 3682 * @param host_min_timeout 3683 */ 3684 #define HID_SUBEVENT_SNIFF_SUBRATING_PARAMS 0x0Eu 3685 3686 // HIDS Meta Event Group 3687 3688 /** 3689 * @format 12 3690 * @param subevent_code 3691 * @param con_handle 3692 */ 3693 #define HIDS_SUBEVENT_CAN_SEND_NOW 0x01u 3694 3695 /** 3696 * @format 121 3697 * @param subevent_code 3698 * @param con_handle 3699 * @param protocol_mode 3700 */ 3701 #define HIDS_SUBEVENT_PROTOCOL_MODE 0x02u 3702 3703 /** 3704 * @format 121 3705 * @param subevent_code 3706 * @param con_handle 3707 * @param enable 3708 */ 3709 #define HIDS_SUBEVENT_BOOT_MOUSE_INPUT_REPORT_ENABLE 0x03u 3710 3711 /** 3712 * @format 121 3713 * @param subevent_code 3714 * @param con_handle 3715 * @param enable 3716 */ 3717 #define HIDS_SUBEVENT_BOOT_KEYBOARD_INPUT_REPORT_ENABLE 0x04u 3718 3719 /** 3720 * @format 121 3721 * @param subevent_code 3722 * @param con_handle 3723 * @param enable 3724 */ 3725 #define HIDS_SUBEVENT_INPUT_REPORT_ENABLE 0x05u 3726 3727 /** 3728 * @format 121 3729 * @param subevent_code 3730 * @param con_handle 3731 * @param enable 3732 */ 3733 #define HIDS_SUBEVENT_OUTPUT_REPORT_ENABLE 0x06u 3734 3735 /** 3736 * @format 121 3737 * @param subevent_code 3738 * @param con_handle 3739 * @param enable 3740 */ 3741 #define HIDS_SUBEVENT_FEATURE_REPORT_ENABLE 0x07u 3742 3743 /** 3744 * @format 12 3745 * @param subevent_code 3746 * @param con_handle 3747 */ 3748 #define HIDS_SUBEVENT_SUSPEND 0x08u 3749 3750 /** 3751 * @format 12 3752 * @param subevent_code 3753 * @param con_handle 3754 */ 3755 #define HIDS_SUBEVENT_EXIT_SUSPEND 0x09u 3756 3757 /** 3758 * @format 1211 3759 * @param subevent_code 3760 * @param con_handle 3761 * @param measurement_type 0 - force magnitude, 1 - torque magnitude, see cycling_power_sensor_measurement_context_t 3762 * @param is_enhanced 3763 */ 3764 #define GATTSERVICE_SUBEVENT_CYCLING_POWER_START_CALIBRATION 0x01u 3765 3766 /** 3767 * @format 12 3768 * @param subevent_code 3769 * @param con_handle 3770 */ 3771 #define GATTSERVICE_SUBEVENT_CYCLING_POWER_BROADCAST_START 0x02u 3772 3773 /** 3774 * @format 12 3775 * @param subevent_code 3776 * @param con_handle 3777 */ 3778 #define GATTSERVICE_SUBEVENT_CYCLING_POWER_BROADCAST_STOP 0x03u 3779 3780 /** 3781 * @format 12111 3782 * @param subevent_code 3783 * @param hids_cid 3784 * @param status 3785 * @param num_instances 3786 * @param poll_bitmap 3787 */ 3788 #define GATTSERVICE_SUBEVENT_BATTERY_SERVICE_CONNECTED 0x04u 3789 3790 /** 3791 * @format 12111 3792 * @param subevent_code 3793 * @param hids_cid 3794 * @param sevice_index 3795 * @param att_status see ATT errors in bluetooth.h 3796 * @param level 3797 */ 3798 #define GATTSERVICE_SUBEVENT_BATTERY_SERVICE_LEVEL 0x05u 3799 3800 /** 3801 * @format 1H1 3802 * @param subevent_code 3803 * @param con_handle 3804 * @param att_status 3805 */ 3806 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_DONE 0x06u 3807 3808 /** 3809 * @format 1H1T 3810 * @param subevent_code 3811 * @param con_handle 3812 * @param att_status 3813 * @param value 3814 */ 3815 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_MANUFACTURER_NAME 0x07u 3816 3817 /** 3818 * @format 1H1T 3819 * @param subevent_code 3820 * @param con_handle 3821 * @param att_status 3822 * @param value 3823 */ 3824 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_MODEL_NUMBER 0x08u 3825 3826 /** 3827 * @format 1H1T 3828 * @param subevent_code 3829 * @param con_handle 3830 * @param att_status 3831 * @param value 3832 */ 3833 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_SERIAL_NUMBER 0x09u 3834 3835 /** 3836 * @format 1H1T 3837 * @param subevent_code 3838 * @param con_handle 3839 * @param att_status 3840 * @param value 3841 */ 3842 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_HARDWARE_REVISION 0x0Au 3843 3844 /** 3845 * @format 1H1T 3846 * @param subevent_code 3847 * @param con_handle 3848 * @param att_status 3849 * @param value 3850 */ 3851 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_FIRMWARE_REVISION 0x0Bu 3852 3853 /** 3854 * @format 1H1T 3855 * @param subevent_code 3856 * @param con_handle 3857 * @param att_status 3858 * @param value 3859 */ 3860 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_SOFTWARE_REVISION 0x0Cu 3861 3862 /** 3863 * @format 1H1413 3864 * @param subevent_code 3865 * @param con_handle 3866 * @param att_status 3867 * @param manufacturer_id_low 3868 * @param manufacturer_id_high 3869 * @param organizationally_unique_id 3870 */ 3871 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_SYSTEM_ID 0x0Du 3872 3873 /** 3874 * @format 1H122 3875 * @param subevent_code 3876 * @param con_handle 3877 * @param att_status 3878 * @param value_a 3879 * @param value_b 3880 */ 3881 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_IEEE_REGULATORY_CERTIFICATION 0x0Eu 3882 3883 /** 3884 * @format 1H11222 3885 * @param subevent_code 3886 * @param con_handle 3887 * @param att_status 3888 * @param vendor_source_id 3889 * @param vendor_id 3890 * @param product_id 3891 * @param product_version 3892 */ 3893 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_PNP_ID 0x0Fu 3894 3895 /** 3896 * @format 1H1 3897 * @param subevent_code 3898 * @param con_handle 3899 * @param att_status 3900 */ 3901 #define GATTSERVICE_SUBEVENT_SCAN_PARAMETERS_SERVICE_CONNECTED 0x10u 3902 3903 /** 3904 * @format 1H 3905 * @param subevent_code 3906 * @param con_handle 3907 */ 3908 #define GATTSERVICE_SUBEVENT_SPP_SERVICE_CONNECTED 0x11u 3909 3910 /** 3911 * @format 1H 3912 * @param subevent_code 3913 * @param con_handle 3914 */ 3915 #define GATTSERVICE_SUBEVENT_SPP_SERVICE_DISCONNECTED 0x12u 3916 3917 /** 3918 * @format 12111 3919 * @param subevent_code 3920 * @param hids_cid 3921 * @param status 3922 * @param protocol_mode 3923 * @param num_instances 3924 */ 3925 #define GATTSERVICE_SUBEVENT_HID_SERVICE_CONNECTED 0x13u 3926 3927 /** 3928 * @format 1211LV 3929 * @param subevent_code 3930 * @param hids_cid 3931 * @param service_index 3932 * @param report_id 3933 * @param report_len 3934 * @param report 3935 */ 3936 #define GATTSERVICE_SUBEVENT_HID_REPORT 0x14u 3937 3938 /** 3939 * @format 1212111 3940 * @param subevent_code 3941 * @param hids_cid 3942 * @param service_index 3943 * @param base_usb_hid_version Version number of base USB HID Specification implemented by HID Device 3944 * @param country_code Country HID Device hardware is localized for (not localized: 0x00) 3945 * @param remote_wake Indicates whether HID Device is capable of sending a wake-signal to a HID Host 3946 * @param normally_connectable Indicates whether HID Device will be advertising when bonded but not connected. 3947 */ 3948 #define GATTSERVICE_SUBEVENT_HID_INFORMATION 0x15u 3949 3950 /** 3951 * @format 1211 3952 * @param subevent_code 3953 * @param hids_cid 3954 * @param service_index 3955 * @param protocol_mode see hid_protocol_mode_t in btstack_hid.h 3956 */ 3957 #define GATTSERVICE_SUBEVENT_HID_PROTOCOL_MODE 0x16u 3958 3959 /** 3960 * @format 121 3961 * @param subevent_code 3962 * @param hids_cid 3963 * @param configuration 3964 */ 3965 #define GATTSERVICE_SUBEVENT_HID_SERVICE_REPORTS_NOTIFICATION 0x17u 3966 3967 /** 3968 * @format 1H22 3969 * @param subevent_code 3970 * @param con_handle 3971 * @param max_scan_interval 3972 * @param min_scan_window 3973 */ 3974 #define GATTSERVICE_SUBEVENT_SCAN_PARAMETERS_SERVICE_SCAN_INTERVAL_UPDATE 0x18u 3975 3976 // LE Audio 3977 3978 /** 3979 * @format 121 3980 * @param subevent_code 3981 * @param hids_cid 3982 * @param status 3983 */ 3984 #define GATTSERVICE_SUBEVENT_MICS_CONNECTED 0x19u 3985 3986 /** 3987 * @format 1211 3988 * @param subevent_code 3989 * @param cid 3990 * @param status 3991 * @param state 3992 */ 3993 #define GATTSERVICE_SUBEVENT_REMOTE_MICS_MUTE 0x1Au 3994 3995 /** 3996 * @format 121 3997 * @param subevent_code 3998 * @param con_handle 3999 * @param state 4000 */ 4001 #define GATTSERVICE_SUBEVENT_LOCAL_MICS_MUTE 0x1Bu 4002 4003 /** 4004 * @format 1211 4005 * @param subevent_code 4006 * @param con_handle 4007 * @param index 4008 * @param state 4009 */ 4010 #define GATTSERVICE_SUBEVENT_AICS_MUTE_MODE 0x1Cu 4011 4012 /** 4013 * @format 1211 4014 * @param subevent_code 4015 * @param con_handle 4016 * @param index 4017 * @param state 4018 */ 4019 #define GATTSERVICE_SUBEVENT_AICS_GAIN_MODE 0x1Du 4020 4021 /** 4022 * @format 1211 4023 * @param subevent_code 4024 * @param con_handle 4025 * @param index 4026 * @param gain_db 4027 */ 4028 #define GATTSERVICE_SUBEVENT_AICS_GAIN_CHANGED 0x1Eu 4029 4030 /** 4031 * @format 121JV 4032 * @param subevent_code 4033 * @param con_handle 4034 * @param index 4035 * @param description_len 4036 * @param description 4037 */ 4038 #define GATTSERVICE_SUBEVENT_AICS_AUDIO_INPUT_DESC_CHANGED 0x20u 4039 4040 /** 4041 * @format 1212 4042 * @param subevent_code 4043 * @param con_handle 4044 * @param index 4045 * @param volume_offset 4046 */ 4047 #define GATTSERVICE_SUBEVENT_VOCS_VOLUME_OFFSET 0x21u 4048 4049 /** 4050 * @format 1214 4051 * @param subevent_code 4052 * @param con_handle 4053 * @param index 4054 * @param audio_location 4055 */ 4056 #define GATTSERVICE_SUBEVENT_VOCS_AUDIO_LOCATION 0x22u 4057 4058 /** 4059 * @format 121JV 4060 * @param subevent_code 4061 * @param con_handle 4062 * @param index 4063 * @param description_len 4064 * @param description 4065 */ 4066 #define GATTSERVICE_SUBEVENT_VOCS_AUDIO_OUTPUT_DESC_CHANGED 0x23u 4067 4068 /** 4069 * @format 12111 4070 * @param subevent_code 4071 * @param con_handle 4072 * @param volume_setting 4073 * @param volume_change_step 4074 * @param mute 4075 */ 4076 #define GATTSERVICE_SUBEVENT_VCS_VOLUME_STATE 0x24u 4077 4078 /** 4079 * @format 121 4080 * @param subevent_code 4081 * @param con_handle 4082 * @param flags 4083 */ 4084 #define GATTSERVICE_SUBEVENT_VCS_VOLUME_FLAGS 0x25u 4085 4086 4087 // MAP Meta Event Group 4088 4089 /** 4090 * @format 121BH1 4091 * @param subevent_code 4092 * @param map_cid 4093 * @param status 4094 * @param bd_addr 4095 * @param con_handle 4096 * @param incoming 4097 */ 4098 #define MAP_SUBEVENT_CONNECTION_OPENED 0x01u 4099 4100 /** 4101 * @format 12 4102 * @param subevent_code 4103 * @param map_cid 4104 */ 4105 #define MAP_SUBEVENT_CONNECTION_CLOSED 0x02u 4106 4107 /** 4108 * @format 121 4109 * @param subevent_code 4110 * @param map_cid 4111 * @param status 4112 */ 4113 #define MAP_SUBEVENT_OPERATION_COMPLETED 0x03u 4114 4115 4116 /** 4117 * @format 12LV 4118 * @param subevent_code 4119 * @param map_cid 4120 * @param name_len 4121 * @param name 4122 */ 4123 #define MAP_SUBEVENT_FOLDER_LISTING_ITEM 0x04u 4124 4125 /** 4126 * @format 12D 4127 * @param subevent_code 4128 * @param map_cid 4129 * @param handle 4130 4131 */ 4132 #define MAP_SUBEVENT_MESSAGE_LISTING_ITEM 0x05u 4133 4134 /** 4135 * @format 12 4136 * @param subevent_code 4137 * @param map_cid 4138 */ 4139 #define MAP_SUBEVENT_PARSING_DONE 0x06u 4140 4141 4142 // MESH Meta Event Group 4143 4144 /** 4145 * @format 1 4146 * @param subevent_code 4147 */ 4148 #define MESH_SUBEVENT_CAN_SEND_NOW 0x01u 4149 4150 /** 4151 * @format 11 4152 * @param subevent_code 4153 * @param status 4154 */ 4155 #define MESH_SUBEVENT_PB_TRANSPORT_PDU_SENT 0x02u 4156 4157 /** 4158 * @format 1121 4159 * @param subevent_code 4160 * @param status 4161 * @param pb_transport_cid 4162 * @param pb_type 4163 */ 4164 #define MESH_SUBEVENT_PB_TRANSPORT_LINK_OPEN 0x03u 4165 4166 /** 4167 * @format 112 4168 * @param subevent_code 4169 * @param pb_transport_cid 4170 * @param reason 4171 */ 4172 #define MESH_SUBEVENT_PB_TRANSPORT_LINK_CLOSED 0x04u 4173 4174 /** 4175 * @format 121 4176 * @param subevent_code 4177 * @param pb_transport_cid 4178 * @param attention_time in seconds 4179 */ 4180 #define MESH_SUBEVENT_PB_PROV_ATTENTION_TIMER 0x10u 4181 4182 /** 4183 * Device Role 4184 * @format 12 4185 * @param subevent_code 4186 * @param pb_transport_cid 4187 */ 4188 #define MESH_SUBEVENT_PB_PROV_START_EMIT_PUBLIC_KEY_OOB 0x11u 4189 4190 /** 4191 * Device Role 4192 * @format 12 4193 * @param subevent_code 4194 * @param pb_transport_cid 4195 */ 4196 #define MESH_SUBEVENT_PB_PROV_STOP_EMIT_PUBLIC_KEY_OOB 0x12u 4197 4198 /** 4199 * Device Role 4200 * @format 12 4201 * @param subevent_code 4202 * @param pb_transport_cid 4203 */ 4204 #define MESH_SUBEVENT_PB_PROV_INPUT_OOB_REQUEST 0x13u 4205 4206 /** 4207 * Device Role 4208 * @format 124 4209 * @param subevent_code 4210 * @param pb_transport_cid 4211 * @param output_oob number 4212 */ 4213 #define MESH_SUBEVENT_PB_PROV_START_EMIT_OUTPUT_OOB 0x15u 4214 4215 /** 4216 * Device Role 4217 * @format 12 4218 * @param subevent_code 4219 * @param pb_transport_cid 4220 */ 4221 #define MESH_SUBEVENT_PB_PROV_STOP_EMIT_OUTPUT_OOB 0x16u 4222 4223 /** 4224 * Provisioner Role 4225 * @format 12 4226 * @param subevent_code 4227 * @param pb_transport_cid 4228 */ 4229 #define MESH_SUBEVENT_PB_PROV_START_RECEIVE_PUBLIC_KEY_OOB 0x17u 4230 4231 /** 4232 * Provisioner Role 4233 * @format 12 4234 * @param subevent_code 4235 * @param pb_transport_cid 4236 */ 4237 #define MESH_SUBEVENT_PB_PROV_STOP_RECEIVE_PUBLIC_KEY_OOB 0x18u 4238 4239 /** 4240 * Provisioner Role 4241 * @format 12 4242 * @param subevent_code 4243 * @param pb_transport_cid 4244 */ 4245 #define MESH_SUBEVENT_PB_PROV_OUTPUT_OOB_REQUEST 0x19u 4246 4247 /** 4248 * Provisioner Role 4249 * @format 124 4250 * @param subevent_code 4251 * @param pb_transport_cid 4252 * @param output_oob number 4253 */ 4254 #define MESH_SUBEVENT_PB_PROV_START_EMIT_INPUT_OOB 0x1au 4255 4256 /** 4257 * Provisioner Role 4258 * @format 12 4259 * @param subevent_code 4260 * @param pb_transport_cid 4261 */ 4262 #define MESH_SUBEVENT_PB_PROV_STOP_EMIT_INPUT_OOB 0x1bu 4263 4264 /** 4265 * Provisioner Role 4266 * @format 1212111212 4267 * @param subevent_code 4268 * @param pb_transport_cid 4269 * @param num_elements 4270 * @param algorithms 4271 * @param public_key 4272 * @param static_oob_type 4273 * @param output_oob_size 4274 * @param output_oob_action 4275 * @param input_oob_size 4276 * @param input_oob_action 4277 */ 4278 #define MESH_SUBEVENT_PB_PROV_CAPABILITIES 0x1cu 4279 4280 /** 4281 * @format 12 4282 * @param subevent_code 4283 * @param pb_transport_cid 4284 */ 4285 #define MESH_SUBEVENT_PB_PROV_COMPLETE 0x1du 4286 4287 /** 4288 * @format 11 4289 * @param subevent_code 4290 * @param attention_time in seconds 4291 */ 4292 #define MESH_SUBEVENT_ATTENTION_TIMER 0x1eu 4293 4294 /** 4295 * @format 1H 4296 * @param subevent_code 4297 * @param con_handle 4298 */ 4299 #define MESH_SUBEVENT_PROXY_CONNECTED 0x20u 4300 4301 /** 4302 * @format 1H 4303 * @param subevent_code 4304 * @param con_handle 4305 */ 4306 #define MESH_SUBEVENT_PROXY_PDU_SENT 0x21u 4307 4308 /** 4309 * @format 1H 4310 * @param subevent_code 4311 * @param con_handle 4312 */ 4313 #define MESH_SUBEVENT_PROXY_DISCONNECTED 0x22u 4314 4315 /** 4316 * @format 1H 4317 * @param subevent_code 4318 * @param con_handle 4319 */ 4320 #define MESH_SUBEVENT_MESSAGE_SENT 0x23u 4321 4322 /** 4323 * @format 114411 4324 * @param subevent_code 4325 * @param element_index 4326 * @param model_identifier 4327 * @param state_identifier 4328 * @param reason 4329 * @param value 4330 */ 4331 #define MESH_SUBEVENT_STATE_UPDATE_BOOL 0x24u 4332 4333 /** 4334 * @format 114412 4335 * @param subevent_code 4336 * @param element_index 4337 * @param model_identifier 4338 * @param state_identifier 4339 * @param reason 4340 * @param value 4341 */ 4342 #define MESH_SUBEVENT_STATE_UPDATE_INT16 0x25u 4343 4344 // Mesh Client Events 4345 /** 4346 * @format 11442 4347 * @param subevent_code 4348 * @param element_index 4349 * @param model_identifier 4350 * @param opcode 4351 * @param dest 4352 */ 4353 #define MESH_SUBEVENT_MESSAGE_NOT_ACKNOWLEDGED 0x30u 4354 4355 /** 4356 * @format 121114 4357 * @param subevent_code 4358 * @param dest 4359 * @param status 4360 * @param present_value 4361 * @param target_value optional, if value > 0, than remaining_time_ms must be read 4362 * @param remaining_time_ms 4363 */ 4364 #define MESH_SUBEVENT_GENERIC_ON_OFF 0x31u 4365 4366 /** 4367 * @format 121224 4368 * @param subevent_code 4369 * @param dest 4370 * @param status 4371 * @param present_value 4372 * @param target_value optional, if value > 0, than remaining_time_ms must be read 4373 * @param remaining_time_ms 4374 */ 4375 #define MESH_SUBEVENT_GENERIC_LEVEL 0x32u 4376 4377 /** 4378 * @format 1222211 4379 * @param subevent_code 4380 * @param dest 4381 * @param netkey_index 4382 * @param appkey_index 4383 * @param company_id 4384 * @param test_id 4385 * @param acknowledged 4386 */ 4387 #define MESH_SUBEVENT_HEALTH_PERFORM_TEST 0x33u 4388 4389 /** 4390 * @format 11 4391 * @param subevent_code 4392 * @param element_index 4393 */ 4394 #define MESH_SUBEVENT_HEALTH_ATTENTION_TIMER_CHANGED 0x34u 4395 4396 /** 4397 * @format 1211 4398 * @param subevent_code 4399 * @param dest 4400 * @param status 4401 * @param transition_time_gdtt 4402 */ 4403 #define MESH_SUBEVENT_GENERIC_DEFAULT_TRANSITION_TIME 0x35u 4404 4405 /** 4406 * @format 1211 4407 * @param subevent_code 4408 * @param dest 4409 * @param foundation_status 4410 * @param secure_network_beacon_state 4411 */ 4412 #define MESH_SUBEVENT_CONFIGURATION_BEACON 0x36u 4413 4414 // Composition Data has variable of element descriptions, with two lists of model lists 4415 // Use .. getters to access data 4416 #define MESH_SUBEVENT_CONFIGURATION_COMPOSITION_DATA 0x37u 4417 4418 /** 4419 * @format 1211 4420 * @param subevent_code 4421 * @param dest 4422 * @param foundation_status 4423 * @param default_ttl 4424 */ 4425 #define MESH_SUBEVENT_CONFIGURATION_DEFAULT_TTL 0x38u 4426 4427 /** 4428 * @format 1211 4429 * @param subevent_code 4430 * @param dest 4431 * @param foundation_status 4432 * @param gatt_proxy_state 4433 */ 4434 #define MESH_SUBEVENT_CONFIGURATION_GATT_PROXY 0x39u 4435 4436 /** 4437 * @format 121111 4438 * @param subevent_code 4439 * @param dest 4440 * @param foundation_status 4441 * @param relay 4442 * @param retransmit_count the number of times that packet is transmitted for each packet that is relayed. 4443 * @param retransmit_interval_ms retransmission interval in ms 4444 */ 4445 #define MESH_SUBEVENT_CONFIGURATION_RELAY 0x40u 4446 4447 4448 /** 4449 * @format 12122111114 4450 * @param subevent_code 4451 * @param dest element_address 4452 * @param foundation_status 4453 * @param publish_address 4454 * @param appkey_index 4455 * @param credential_flag 4456 * @param publish_ttl 4457 * @param publish_period 4458 * @param publish_retransmit_count 4459 * @param publish_retransmit_interval_steps 4460 * @param model_identifier 4461 */ 4462 #define MESH_SUBEVENT_CONFIGURATION_MODEL_PUBLICATION 0x41u 4463 4464 /** 4465 * @format 12124 4466 * @param subevent_code 4467 * @param dest 4468 * @param foundation_status 4469 * @param address 4470 * @param model_identifier 4471 */ 4472 #define MESH_SUBEVENT_CONFIGURATION_MODEL_SUBSCRIPTION 0x42u 4473 4474 /** 4475 * @format 1214112 4476 * @param subevent_code 4477 * @param dest 4478 * @param foundation_status 4479 * @param model_identifier 4480 * @param num_subscription_addresses 4481 * @param subscription_address_pos 4482 * @param subscription_address_item 4483 */ 4484 #define MESH_SUBEVENT_CONFIGURATION_MODEL_SUBSCRIPTION_LIST_ITEM 0x43u 4485 4486 4487 /** 4488 * @format 121 4489 * @param subevent_code 4490 * @param dest 4491 * @param foundation_status 4492 */ 4493 #define MESH_SUBEVENT_CONFIGURATION_NETKEY_INDEX 0x44u 4494 4495 /** 4496 * @format 121112 4497 * @param subevent_code 4498 * @param dest 4499 * @param foundation_status 4500 * @param num_netkey_indexes 4501 * @param netkey_index_pos 4502 * @param netkey_index_item 4503 */ 4504 #define MESH_SUBEVENT_CONFIGURATION_NETKEY_INDEX_LIST_ITEM 0x45u 4505 4506 /** 4507 * @format 12122 4508 * @param subevent_code 4509 * @param dest 4510 * @param foundation_status 4511 * @param netkey_index_item 4512 * @param appkey_index_item 4513 */ 4514 #define MESH_SUBEVENT_CONFIGURATION_APPKEY_INDEX 0x46u 4515 4516 /** 4517 * @format 12121122 4518 * @param subevent_code 4519 * @param dest 4520 * @param foundation_status 4521 * @param netkey_index 4522 * @param num_appkey_indexes 4523 * @param appkey_index_pos 4524 * @param netkey_index_item 4525 * @param appkey_index_item 4526 */ 4527 #define MESH_SUBEVENT_CONFIGURATION_APPKEY_INDEX_LIST_ITEM 0x47u 4528 4529 /** 4530 * @format 12121 4531 * @param subevent_code 4532 * @param dest 4533 * @param foundation_status 4534 * @param netkey_index_item 4535 * @param identity_status 4536 */ 4537 #define MESH_SUBEVENT_CONFIGURATION_NODE_IDENTITY 0x48u 4538 4539 /** 4540 * @format 12124 4541 * @param subevent_code 4542 * @param dest 4543 * @param foundation_status 4544 * @param appkey_index 4545 * @param model_identifier 4546 */ 4547 #define MESH_SUBEVENT_CONFIGURATION_MODEL_APP 0x49u 4548 4549 /** 4550 * @format 1214112 4551 * @param subevent_code 4552 * @param dest 4553 * @param foundation_status 4554 * @param model_id 4555 * @param num_appkey_indexes 4556 * @param appkey_index_pos 4557 * @param appkey_index_item 4558 */ 4559 #define MESH_SUBEVENT_CONFIGURATION_MODEL_APP_LIST_ITEM 0x50u 4560 4561 /** 4562 * @format 121 4563 * @param subevent_code 4564 * @param dest 4565 * @param foundation_status 4566 */ 4567 #define MESH_SUBEVENT_CONFIGURATION_NODE_RESET 0x51u 4568 4569 /** 4570 * @format 1211 4571 * @param subevent_code 4572 * @param dest 4573 * @param foundation_status 4574 * @param friend_state 4575 */ 4576 #define MESH_SUBEVENT_CONFIGURATION_FRIEND 0x52u 4577 4578 /** 4579 * @format 12121 4580 * @param subevent_code 4581 * @param dest 4582 * @param foundation_status 4583 * @param netkey_index 4584 * @param phase 4585 */ 4586 #define MESH_SUBEVENT_CONFIGURATION_KEY_REFRESH_PHASE 0x53u 4587 4588 /** 4589 * @format 121222122 4590 * @param subevent_code 4591 * @param dest 4592 * @param foundation_status 4593 * @param heartbeat_destination 4594 * @param count_S 4595 * @param period_S 4596 * @param ttl 4597 * @param features 4598 * @param netkey_index 4599 */ 4600 #define MESH_SUBEVENT_CONFIGURATION_HEARTBEAT_PUBLICATION 0x54u 4601 4602 /** 4603 * @format 121222211 4604 * @param subevent_code 4605 * @param dest 4606 * @param foundation_status 4607 * @param heartbeat_destination 4608 * @param heartbeat_source 4609 * @param count_S 4610 * @param period_S 4611 * @param min_hops 4612 * @param max_hops 4613 */ 4614 #define MESH_SUBEVENT_CONFIGURATION_HEARTBEAT_SUBSCRIPTION 0x55u 4615 4616 /** 4617 * @format 12123 4618 * @param subevent_code 4619 * @param dest 4620 * @param foundation_status 4621 * @param lpn_address 4622 * @param poll_timeout 4623 */ 4624 #define MESH_SUBEVENT_CONFIGURATION_LOW_POWER_NODE_POLL_TIMEOUT 0x56u 4625 4626 /** 4627 * @format 12112 4628 * @param subevent_code 4629 * @param dest 4630 * @param foundation_status 4631 * @param transmit_count 4632 * @param transmit_interval_steps_ms 4633 */ 4634 #define MESH_SUBEVENT_CONFIGURATION_NETWORK_TRANSMIT 0x57u 4635 4636 4637 #endif 4638