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