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