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