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 1211112131 2671 * @param subevent_code 2672 * @param avdtp_cid 2673 * @param remote_seid 2674 * @param media_type 2675 * @param object_type_bitmap 2676 * @param drc 2677 * @param sampling_frequency_bitmap 2678 * @param channels_bitmap 2679 * @param bit_rate 2680 * @param vbr 2681 */ 2682 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AAC_CAPABILITY 0x09u 2683 2684 /** 2685 * @format 1211111132 2686 * @param subevent_code 2687 * @param avdtp_cid 2688 * @param remote_seid 2689 * @param media_type 2690 * @param version 2691 * @param channel_mode_bitmap 2692 * @param sampling_frequency_bitmap 2693 * @param vbr 2694 * @param bit_rate_index_bitmap 2695 * @param maximum_sul 2696 */ 2697 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_ATRAC_CAPABILITY 0x0Au 2698 2699 /** 2700 * @format 12112LV 2701 * @param subevent_code 2702 * @param avdtp_cid 2703 * @param remote_seid 2704 * @param media_type 2705 * @param media_codec_type 2706 * @param media_codec_information_len 2707 * @param media_codec_information 2708 */ 2709 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CAPABILITY 0x0Bu 2710 2711 2712 /** 2713 * @format 121 2714 * @param subevent_code 2715 * @param avdtp_cid 2716 * @param remote_seid 2717 */ 2718 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_TRANSPORT_CAPABILITY 0x0Cu 2719 2720 2721 /** 2722 * @format 121 2723 * @param subevent_code 2724 * @param avdtp_cid 2725 * @param remote_seid 2726 */ 2727 #define AVDTP_SUBEVENT_SIGNALING_REPORTING_CAPABILITY 0x0Du 2728 2729 2730 /** 2731 * @format 121111 2732 * @param subevent_code 2733 * @param avdtp_cid 2734 * @param remote_seid 2735 * @param recovery_type 2736 * @param maximum_recovery_window_size 2737 * @param maximum_number_media_packets 2738 */ 2739 #define AVDTP_SUBEVENT_SIGNALING_RECOVERY_CAPABILITY 0x0Eu 2740 2741 2742 /** 2743 * @format 1212LV 2744 * @param subevent_code 2745 * @param avdtp_cid 2746 * @param remote_seid 2747 * @param cp_type 2748 * @param cp_type_value_len 2749 * @param cp_type_value 2750 */ 2751 #define AVDTP_SUBEVENT_SIGNALING_CONTENT_PROTECTION_CAPABILITY 0x0Fu 2752 2753 2754 /** 2755 * @format 12111111111 2756 * @param subevent_code 2757 * @param avdtp_cid 2758 * @param remote_seid 2759 * @param fragmentation 2760 * @param transport_identifiers_num 2761 * @param transport_session_identifier_1 2762 * @param transport_session_identifier_2 2763 * @param transport_session_identifier_3 2764 * @param tcid_1 2765 * @param tcid_2 2766 * @param tcid_3 2767 */ 2768 #define AVDTP_SUBEVENT_SIGNALING_MULTIPLEXING_CAPABILITY 0x10u 2769 2770 2771 /** 2772 * @format 121 2773 * @param subevent_code 2774 * @param avdtp_cid 2775 * @param remote_seid 2776 */ 2777 #define AVDTP_SUBEVENT_SIGNALING_DELAY_REPORTING_CAPABILITY 0x11u 2778 2779 2780 /** 2781 * @format 121111 2782 * @param subevent_code 2783 * @param avdtp_cid 2784 * @param remote_seid 2785 * @param back_ch 2786 * @param media 2787 * @param recovery 2788 */ 2789 #define AVDTP_SUBEVENT_SIGNALING_HEADER_COMPRESSION_CAPABILITY 0x12u 2790 2791 /** 2792 * @format 121 2793 * @param subevent_code 2794 * @param avdtp_cid 2795 * @param remote_seid 2796 */ 2797 #define AVDTP_SUBEVENT_SIGNALING_CAPABILITIES_DONE 0x13u 2798 2799 2800 /** 2801 * @format 12111121111111 2802 * @param subevent_code 2803 * @param avdtp_cid 2804 * @param local_seid 2805 * @param remote_seid 2806 * @param reconfigure 2807 * @param media_type 2808 * @param sampling_frequency 2809 * @param channel_mode 2810 * @param num_channels 2811 * @param block_length 2812 * @param subbands 2813 * @param allocation_method 2814 * @param min_bitpool_value 2815 * @param max_bitpool_value 2816 */ 2817 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION 0x14u 2818 2819 /** 2820 * @format 12111111111211 2821 * @param subevent_code 2822 * @param avdtp_cid 2823 * @param local_seid 2824 * @param remote_seid 2825 * @param reconfigure 2826 * @param media_type 2827 * @param layer 2828 * @param crc 2829 * @param channel_mode 2830 * @param num_channels 2831 * @param media_payload_format 2832 * @param sampling_frequency 2833 * @param vbr 2834 * @param bit_rate_index 2835 */ 2836 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AUDIO_CONFIGURATION 0x15u 2837 2838 /** 2839 * @format 121111113131 2840 * @param subevent_code 2841 * @param avdtp_cid 2842 * @param local_seid 2843 * @param remote_seid 2844 * @param reconfigure 2845 * @param media_type 2846 * @param object_type 2847 * @param drc 2848 * @param sampling_frequency 2849 * @param num_channels 2850 * @param bit_rate 2851 * @param vbr 2852 */ 2853 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AAC_CONFIGURATION 0x16u 2854 2855 /** 2856 * @format 1211111112112 2857 * @param subevent_code 2858 * @param avdtp_cid 2859 * @param local_seid 2860 * @param remote_seid 2861 * @param reconfigure 2862 * @param media_type 2863 * @param version 2864 * @param channel_mode 2865 * @param num_channels 2866 * @param sampling_frequency 2867 * @param vbr 2868 * @param bit_rate_index 2869 * @param maximum_sul 2870 */ 2871 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_ATRAC_CONFIGURATION 0x17u 2872 2873 /** 2874 * @format 1211112LV 2875 * @param subevent_code 2876 * @param avdtp_cid 2877 * @param local_seid 2878 * @param remote_seid 2879 * @param reconfigure 2880 * @param media_type 2881 * @param media_codec_type 2882 * @param media_codec_information_len 2883 * @param media_codec_information 2884 */ 2885 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION 0x18u 2886 2887 /** 2888 * @format 12B111 2889 * @param subevent_code 2890 * @param avdtp_cid 2891 * @param bd_addr 2892 * @param local_seid 2893 * @param remote_seid 2894 * @param status 0 == OK 2895 */ 2896 #define AVDTP_SUBEVENT_STREAMING_CONNECTION_ESTABLISHED 0x19u 2897 2898 /** 2899 * @format 121 2900 * @param subevent_code 2901 * @param avdtp_cid 2902 * @param local_seid 2903 */ 2904 #define AVDTP_SUBEVENT_STREAMING_CONNECTION_RELEASED 0x1Au 2905 2906 /** 2907 * @format 1212 2908 * @param subevent_code 2909 * @param avdtp_cid 2910 * @param local_seid 2911 * @param sequence_number 2912 */ 2913 #define AVDTP_SUBEVENT_STREAMING_CAN_SEND_MEDIA_PACKET_NOW 0x1Bu 2914 2915 2916 /** 2917 * @format 12 2918 * @param subevent_code 2919 * @param avdtp_cid 2920 */ 2921 #define AVDTP_SUBEVENT_SIGNALING_SEP_DICOVERY_DONE 0x1Cu 2922 2923 /** 2924 * @format 1212 2925 * @param subevent_code 2926 * @param avdtp_cid 2927 * @param local_seid 2928 * @param delay_100us 2929 */ 2930 #define AVDTP_SUBEVENT_SIGNALING_DELAY_REPORT 0x1Du 2931 2932 /** 2933 * @format 121114113 2934 * @param subevent_code 2935 * @param avdtp_cid 2936 * @param remote_seid 2937 * @param media_type 2938 * @param object_type 2939 * @param sampling_frequency_bitmap 2940 * @param channels_bitmap 2941 * @param vbr 2942 * @param bit_rate_index_bitmap 2943 */ 2944 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_D_USAC_CAPABILITY 0x1Eu 2945 2946 /** 2947 * @format 12111113113 2948 * @param subevent_code 2949 * @param avdtp_cid 2950 * @param local_seid 2951 * @param remote_seid 2952 * @param reconfigure 2953 * @param media_type 2954 * @param object_type 2955 * @param sampling_frequency 2956 * @param num_channels 2957 * @param vbr 2958 * @param bit_rate 2959 */ 2960 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_D_USAC_CONFIGURATION 0x1Fu 2961 2962 /** A2DP Subevent */ 2963 /* Stream goes through following states: 2964 * - OPEN - indicated with A2DP_SUBEVENT_STREAM_ESTABLISHED event 2965 * - START - indicated with A2DP_SUBEVENT_STREAM_STARTED event 2966 * - SUSPEND - indicated with A2DP_SUBEVENT_STREAM_SUSPENDED event 2967 * - ABORT/STOP - indicated with A2DP_SUBEVENT_STREAM_RELEASED event 2968 2969 OPEN state will be followed by ABORT/STOP. Stream is ready but media transfer is not started. 2970 START can come only after the stream is OPENED, and indicates that media transfer is started. 2971 SUSPEND is optional, it pauses the stream. 2972 */ 2973 2974 /** 2975 * @format 121 Sent only by A2DP source. 2976 * @param subevent_code 2977 * @param a2dp_cid 2978 * @param local_seid 2979 */ 2980 #define A2DP_SUBEVENT_STREAMING_CAN_SEND_MEDIA_PACKET_NOW 0x01u 2981 2982 /** 2983 * @format 12111121111111 2984 * @param subevent_code 2985 * @param a2dp_cid 2986 * @param local_seid 2987 * @param remote_seid 2988 * @param reconfigure 2989 * @param media_type 2990 * @param sampling_frequency 2991 * @param channel_mode 2992 * @param num_channels 2993 * @param block_length 2994 * @param subbands 2995 * @param allocation_method 2996 * @param min_bitpool_value 2997 * @param max_bitpool_value 2998 */ 2999 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION 0x02u 3000 3001 /** 3002 * @format 12111111111211 3003 * @param subevent_code 3004 * @param a2dp_cid 3005 * @param local_seid 3006 * @param remote_seid 3007 * @param reconfigure 3008 * @param media_type 3009 * @param layer 3010 * @param crc 3011 * @param channel_mode 3012 * @param num_channels 3013 * @param media_payload_format 3014 * @param sampling_frequency 3015 * @param vbr 3016 * @param bit_rate_index 3017 */ 3018 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AUDIO_CONFIGURATION 0x03u 3019 3020 /** 3021 * @format 12111113131 3022 * @param subevent_code 3023 * @param a2dp_cid 3024 * @param local_seid 3025 * @param remote_seid 3026 * @param reconfigure 3027 * @param media_type 3028 * @param object_type 3029 * @param sampling_frequency 3030 * @param num_channels 3031 * @param bit_rate 3032 * @param vbr 3033 */ 3034 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AAC_CONFIGURATION 0x04u 3035 3036 /** 3037 * @format 1211111112112 3038 * @param subevent_code 3039 * @param a2dp_cid 3040 * @param local_seid 3041 * @param remote_seid 3042 * @param reconfigure 3043 * @param media_type 3044 * @param version 3045 * @param channel_mode 3046 * @param num_channels 3047 * @param sampling_frequency 3048 * @param vbr 3049 * @param bit_rate_index 3050 * @param maximum_sul 3051 */ 3052 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_ATRAC_CONFIGURATION 0x05u 3053 3054 /** 3055 * @format 1211112LV 3056 * @param subevent_code 3057 * @param a2dp_cid 3058 * @param local_seid 3059 * @param remote_seid 3060 * @param reconfigure 3061 * @param media_type 3062 * @param media_codec_type 3063 * @param media_codec_information_len 3064 * @param media_codec_information 3065 */ 3066 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION 0x06u 3067 3068 /** 3069 * @format 12B111 Stream is opened but not started. 3070 * @param subevent_code 3071 * @param a2dp_cid 3072 * @param bd_addr 3073 * @param local_seid 3074 * @param remote_seid 3075 * @param status 3076 */ 3077 #define A2DP_SUBEVENT_STREAM_ESTABLISHED 0x07u 3078 3079 /** 3080 * @format 121 If ENABLE_AVDTP_ACCEPTOR_EXPLICIT_START_STREAM_CONFIRMATION, user must explicitly accept stream start. 3081 * @param subevent_code 3082 * @param a2dp_cid 3083 * @param local_seid 3084 */ 3085 #define A2DP_SUBEVENT_START_STREAM_REQUESTED 0x08u 3086 3087 /** 3088 * @format 121 Indicates that media transfer is started. 3089 * @param subevent_code 3090 * @param a2dp_cid 3091 * @param local_seid 3092 */ 3093 #define A2DP_SUBEVENT_STREAM_STARTED 0x09u 3094 3095 /** 3096 * @format 121 Stream is paused. 3097 * @param subevent_code 3098 * @param a2dp_cid 3099 * @param local_seid 3100 */ 3101 #define A2DP_SUBEVENT_STREAM_SUSPENDED 0x0Au 3102 3103 /** 3104 * @format 121 Stream is stopped or aborted. 3105 * @param subevent_code 3106 * @param a2dp_cid 3107 * @param local_seid 3108 */ 3109 #define A2DP_SUBEVENT_STREAM_STOPPED 0x0Bu 3110 3111 /** 3112 * @format 121 Stream is released. 3113 * @param subevent_code 3114 * @param a2dp_cid 3115 * @param local_seid 3116 */ 3117 #define A2DP_SUBEVENT_STREAM_RELEASED 0x0Cu 3118 3119 /** 3120 * @format 1211 3121 * @param subevent_code 3122 * @param a2dp_cid 3123 * @param local_seid 3124 * @param signal_identifier 3125 */ 3126 #define A2DP_SUBEVENT_COMMAND_ACCEPTED 0x0Du 3127 3128 /** 3129 * @format 12111 3130 * @param subevent_code 3131 * @param a2dp_cid 3132 * @param local_seid 3133 * @param is_initiator 3134 * @param signal_identifier 3135 */ 3136 #define A2DP_SUBEVENT_COMMAND_REJECTED 0x0Eu 3137 3138 /** 3139 * @format 12B21 3140 * @param subevent_code 3141 * @param a2dp_cid 3142 * @param bd_addr 3143 * @param con_handle 3144 * @param status 0 == OK 3145 */ 3146 #define A2DP_SUBEVENT_SIGNALING_CONNECTION_ESTABLISHED 0x0Fu 3147 3148 /** 3149 * @format 12 Signaling channel is released. 3150 * @param subevent_code 3151 * @param a2dp_cid 3152 */ 3153 #define A2DP_SUBEVENT_SIGNALING_CONNECTION_RELEASED 0x10u 3154 3155 /** 3156 * @format 1211 Stream was reconfigured 3157 * @param subevent_code 3158 * @param a2dp_cid 3159 * @param local_seid 3160 * @param status 3161 */ 3162 #define A2DP_SUBEVENT_STREAM_RECONFIGURED 0x12u 3163 3164 /** 3165 * @format 12111111111 3166 * @param subevent_code 3167 * @param a2dp_cid 3168 * @param remote_seid 3169 * @param media_type 3170 * @param sampling_frequency_bitmap 3171 * @param channel_mode_bitmap 3172 * @param block_length_bitmap 3173 * @param subbands_bitmap 3174 * @param allocation_method_bitmap 3175 * @param min_bitpool_value 3176 * @param max_bitpool_value 3177 */ 3178 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CAPABILITY 0x13u 3179 3180 /** 3181 * @format 12111111112 3182 * @param subevent_code 3183 * @param a2dp_cid 3184 * @param remote_seid 3185 * @param media_type 3186 * @param layer_bitmap 3187 * @param crc 3188 * @param channel_mode_bitmap 3189 * @param media_payload_format 3190 * @param sampling_frequency_bitmap 3191 * @param vbr 3192 * @param bit_rate_index_bitmap 3193 */ 3194 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AUDIO_CAPABILITY 0x14u 3195 3196 /** 3197 * @format 121112131 3198 * @param subevent_code 3199 * @param a2dp_cid 3200 * @param remote_seid 3201 * @param media_type 3202 * @param object_type_bitmap 3203 * @param sampling_frequency_bitmap 3204 * @param channels_bitmap 3205 * @param bit_rate 3206 * @param vbr 3207 */ 3208 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AAC_CAPABILITY 0x15u 3209 3210 /** 3211 * @format 1211111132 3212 * @param subevent_code 3213 * @param a2dp_cid 3214 * @param remote_seid 3215 * @param media_type 3216 * @param version 3217 * @param channel_mode_bitmap 3218 * @param sampling_frequency_bitmap 3219 * @param vbr 3220 * @param bit_rate_index_bitmap 3221 * @param maximum_sul 3222 */ 3223 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_ATRAC_CAPABILITY 0x16u 3224 3225 /** 3226 * @format 12112LV 3227 * @param subevent_code 3228 * @param a2dp_cid 3229 * @param remote_seid 3230 * @param media_type 3231 * @param media_codec_type 3232 * @param media_codec_information_len 3233 * @param media_codec_information 3234 */ 3235 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CAPABILITY 0x17u 3236 3237 /** 3238 * @format 121 3239 * @param subevent_code 3240 * @param a2dp_cid 3241 * @param remote_seid 3242 */ 3243 #define A2DP_SUBEVENT_SIGNALING_DELAY_REPORTING_CAPABILITY 0x18u 3244 3245 3246 /** 3247 * @format 1212 3248 * @param subevent_code 3249 * @param a2dp_cid 3250 * @param local_seid 3251 * @param delay_100us 3252 */ 3253 #define A2DP_SUBEVENT_SIGNALING_DELAY_REPORT 0x19u 3254 3255 /** 3256 * @format 121 3257 * @param subevent_code 3258 * @param a2dp_cid 3259 * @param remote_seid 3260 */ 3261 #define A2DP_SUBEVENT_SIGNALING_CAPABILITIES_DONE 0x1Au 3262 3263 /** 3264 * @format 12 3265 * @param subevent_code 3266 * @param a2dp_cid 3267 */ 3268 #define A2DP_SUBEVENT_SIGNALING_CAPABILITIES_COMPLETE 0x1Bu 3269 3270 3271 /** AVRCP Subevent */ 3272 3273 /** 3274 * @format 1211 3275 * @param subevent_code 3276 * @param avrcp_cid 3277 * @param command_type 3278 * @param play_status 3279 */ 3280 #define AVRCP_SUBEVENT_NOTIFICATION_PLAYBACK_STATUS_CHANGED 0x01u 3281 3282 /** 3283 * @format 121 3284 * @param subevent_code 3285 * @param avrcp_cid 3286 * @param command_type 3287 */ 3288 #define AVRCP_SUBEVENT_NOTIFICATION_TRACK_CHANGED 0x02u 3289 3290 /** 3291 * @format 121 3292 * @param subevent_code 3293 * @param avrcp_cid 3294 * @param command_type 3295 */ 3296 #define AVRCP_SUBEVENT_NOTIFICATION_EVENT_TRACK_REACHED_END 0x03u 3297 3298 /** 3299 * @format 121 3300 * @param subevent_code 3301 * @param avrcp_cid 3302 * @param command_type 3303 */ 3304 #define AVRCP_SUBEVENT_NOTIFICATION_EVENT_TRACK_REACHED_START 0x04u 3305 3306 /** 3307 * @format 1214 3308 * @param subevent_code 3309 * @param avrcp_cid 3310 * @param command_type 3311 * @param playback_position If no track currently selected, then return 0xFFuFFFFFF in the INTERIM response. 3312 */ 3313 #define AVRCP_SUBEVENT_NOTIFICATION_EVENT_PLAYBACK_POS_CHANGED 0x05u 3314 3315 /** 3316 * @format 1211 3317 * @param subevent_code 3318 * @param avrcp_cid 3319 * @param command_type 3320 * @param battery_status see avrcp_battery_status_t 3321 */ 3322 #define AVRCP_SUBEVENT_NOTIFICATION_EVENT_BATT_STATUS_CHANGED 0x06u 3323 3324 /** 3325 * @format 1211 3326 * @param subevent_code 3327 * @param avrcp_cid 3328 * @param command_type 3329 * @param system_status see avrcp_system_status_t 3330 */ 3331 #define AVRCP_SUBEVENT_NOTIFICATION_EVENT_SYSTEM_STATUS_CHANGED 0x07u 3332 3333 3334 // 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 3335 #define AVRCP_SUBEVENT_NOTIFICATION_EVENT_PLAYER_APPLICATION_SETTING_CHANGED 0x08u 3336 3337 /** 3338 * @format 121 3339 * @param subevent_code 3340 * @param avrcp_cid 3341 * @param command_type 3342 */ 3343 #define AVRCP_SUBEVENT_NOTIFICATION_NOW_PLAYING_CONTENT_CHANGED 0x09u 3344 3345 /** 3346 * @format 121 3347 * @param subevent_code 3348 * @param avrcp_cid 3349 * @param command_type 3350 */ 3351 #define AVRCP_SUBEVENT_NOTIFICATION_AVAILABLE_PLAYERS_CHANGED 0x0Au 3352 3353 // AVRCP_SUBEVENT_NOTIFICATION_EVENT_ADDRESSED_PLAYER_CHANGED = 0x0bu, -- The Addressed Player has been changed, see 6.9.2. 3354 3355 /** 3356 * @format 1212 3357 * @param subevent_code 3358 * @param avrcp_cid 3359 * @param command_type 3360 * @param uid_counter of the currently browsed player 3361 */ 3362 #define AVRCP_SUBEVENT_NOTIFICATION_EVENT_UIDS_CHANGED 0x0Cu 3363 3364 /** 3365 * @format 1211 3366 * @param subevent_code 3367 * @param avrcp_cid 3368 * @param command_type 3369 * @param absolute_volume 3370 */ 3371 #define AVRCP_SUBEVENT_NOTIFICATION_VOLUME_CHANGED 0x0Du 3372 3373 3374 /** 3375 * @format 1211 3376 * @param subevent_code 3377 * @param avrcp_cid 3378 * @param command_type 3379 * @param absolute_volume 3380 */ 3381 #define AVRCP_SUBEVENT_SET_ABSOLUTE_VOLUME_RESPONSE 0x10u 3382 3383 /** 3384 * @format 12111 3385 * @param subevent_code 3386 * @param avrcp_cid 3387 * @param status 3388 * @param enabled 1 enabled, 0 disabled 3389 * @param event_id 3390 */ 3391 #define AVRCP_SUBEVENT_NOTIFICATION_STATE 0x11u 3392 3393 /** 3394 * @format 112B2 3395 * @param subevent_code 3396 * @param status 0 == OK 3397 * @param avrcp_cid 3398 * @param bd_addr 3399 * @param con_handle 3400 */ 3401 #define AVRCP_SUBEVENT_CONNECTION_ESTABLISHED 0x12u 3402 3403 /** 3404 * @format 12 3405 * @param subevent_code 3406 * @param avrcp_cid 3407 */ 3408 #define AVRCP_SUBEVENT_CONNECTION_RELEASED 0x13u 3409 3410 /** 3411 * @format 12111 3412 * @param subevent_code 3413 * @param avrcp_cid 3414 * @param command_type 3415 * @param repeat_mode 3416 * @param shuffle_mode 3417 */ 3418 #define AVRCP_SUBEVENT_SHUFFLE_AND_REPEAT_MODE 0x14u 3419 3420 /** 3421 * @format 121441 3422 * @param subevent_code 3423 * @param avrcp_cid 3424 * @param command_type 3425 * @param song_length 3426 * @param song_position 3427 * @param play_status 3428 */ 3429 #define AVRCP_SUBEVENT_PLAY_STATUS 0x15u 3430 3431 /** 3432 * @format 1211 3433 * @param subevent_code 3434 * @param avrcp_cid 3435 * @param command_type 3436 * @param operation_id 3437 */ 3438 #define AVRCP_SUBEVENT_OPERATION_START 0x16u 3439 3440 /** 3441 * @format 1211 3442 * @param subevent_code 3443 * @param avrcp_cid 3444 * @param command_type 3445 * @param operation_id 3446 */ 3447 #define AVRCP_SUBEVENT_OPERATION_COMPLETE 0x17u 3448 3449 /** 3450 * @format 121 3451 * @param subevent_code 3452 * @param avrcp_cid 3453 * @param command_type 3454 */ 3455 #define AVRCP_SUBEVENT_PLAYER_APPLICATION_VALUE_RESPONSE 0x18u 3456 3457 /** 3458 * @format 12 3459 * @param subevent_code 3460 * @param avrcp_cid 3461 */ 3462 #define AVRCP_SUBEVENT_PLAY_STATUS_QUERY 0x19u 3463 3464 /** 3465 * @format 121111 3466 * @param subevent_code 3467 * @param avrcp_cid 3468 * @param operation_id 3469 * @param button_pressed 3470 * @param operands_length 3471 * @param operand 3472 */ 3473 #define AVRCP_SUBEVENT_OPERATION 0x1Au 3474 3475 /** 3476 * @format 1211 3477 * @param subevent_code 3478 * @param avrcp_cid 3479 * @param command_type 3480 * @param track 3481 */ 3482 #define AVRCP_SUBEVENT_NOW_PLAYING_TRACK_INFO 0x1Bu 3483 3484 /** 3485 * @format 1211 3486 * @param subevent_code 3487 * @param avrcp_cid 3488 * @param command_type 3489 * @param total_tracks 3490 */ 3491 #define AVRCP_SUBEVENT_NOW_PLAYING_TOTAL_TRACKS_INFO 0x1Cu 3492 3493 /** 3494 * @format 1214 3495 * @param subevent_code 3496 * @param avrcp_cid 3497 * @param command_type 3498 * @param song_length in ms 3499 */ 3500 #define AVRCP_SUBEVENT_NOW_PLAYING_SONG_LENGTH_MS_INFO 0x1Du 3501 3502 /** 3503 * @format 121JV 3504 * @param subevent_code 3505 * @param avrcp_cid 3506 * @param command_type 3507 * @param value_len 3508 * @param value 3509 */ 3510 #define AVRCP_SUBEVENT_NOW_PLAYING_TITLE_INFO 0x1Eu 3511 3512 /* 3513 * @format 121JV 3514 * @param subevent_code 3515 * @param avrcp_cid 3516 * @param command_type 3517 * @param value_len 3518 * @param value 3519 */ 3520 #define AVRCP_SUBEVENT_NOW_PLAYING_ARTIST_INFO 0x1Fu 3521 3522 /* 3523 * @format 121JV 3524 * @param subevent_code 3525 * @param avrcp_cid 3526 * @param command_type 3527 * @param value_len 3528 * @param value 3529 */ 3530 #define AVRCP_SUBEVENT_NOW_PLAYING_ALBUM_INFO 0x20u 3531 3532 /* 3533 * @format 121JV 3534 * @param subevent_code 3535 * @param avrcp_cid 3536 * @param command_type 3537 * @param value_len 3538 * @param value 3539 */ 3540 #define AVRCP_SUBEVENT_NOW_PLAYING_GENRE_INFO 0x21u 3541 3542 /* 3543 * @format 121JV 3544 * @param subevent_code 3545 * @param avrcp_cid 3546 * @param command_type 3547 * @param value_len 3548 * @param value 3549 */ 3550 #define AVRCP_SUBEVENT_NOW_PLAYING_COVER_ART_INFO 0x22u 3551 3552 /* 3553 * @format 1211 3554 * @param subevent_code 3555 * @param avrcp_cid 3556 * @param command_type 3557 * @param status 3558 */ 3559 #define AVRCP_SUBEVENT_NOW_PLAYING_INFO_DONE 0x23u 3560 3561 /** 3562 * @format 1214 3563 * @param subevent_code 3564 * @param avrcp_cid 3565 * @param command_type 3566 * @param playback_position_ms 3567 */ 3568 #define AVRCP_SUBEVENT_NOTIFICATION_PLAYBACK_POS_CHANGED 0x24u 3569 3570 /* 3571 * @format 12111 3572 * @param subevent_code 3573 * @param avrcp_cid 3574 * @param command_type 3575 * @param status 3576 * @param event_id 3577 */ 3578 #define AVRCP_SUBEVENT_GET_CAPABILITY_EVENT_ID 0x25u 3579 /* 3580 * @format 1211 3581 * @param subevent_code 3582 * @param avrcp_cid 3583 * @param command_type 3584 * @param status 3585 */ 3586 #define AVRCP_SUBEVENT_GET_CAPABILITY_EVENT_ID_DONE 0x26u 3587 3588 /* 3589 * @format 12113 3590 * @param subevent_code 3591 * @param avrcp_cid 3592 * @param command_type 3593 * @param status 3594 * @param company_id 3595 */ 3596 #define AVRCP_SUBEVENT_GET_CAPABILITY_COMPANY_ID 0x27u 3597 /* 3598 * @format 1211 3599 * @param subevent_code 3600 * @param avrcp_cid 3601 * @param command_type 3602 * @param status 3603 */ 3604 #define AVRCP_SUBEVENT_GET_CAPABILITY_COMPANY_ID_DONE 0x28u 3605 3606 /** 3607 * @format 1211LV 3608 * @param subevent_code 3609 * @param avrcp_cid 3610 * @param command_type 3611 * @param pdu_id 3612 * @param params_len 3613 * @param params 3614 */ 3615 #define AVRCP_SUBEVENT_CUSTOM_COMMAND_RESPONSE 0x29u 3616 3617 3618 /** 3619 * @format 1B2 3620 * @param subevent_code 3621 * @param bd_addr 3622 * @param browsing_cid 3623 */ 3624 #define AVRCP_SUBEVENT_INCOMING_BROWSING_CONNECTION 0x30u 3625 3626 /** 3627 * @format 11B2 3628 * @param subevent_code 3629 * @param status 0 == OK 3630 * @param bd_addr 3631 * @param browsing_cid 3632 */ 3633 #define AVRCP_SUBEVENT_BROWSING_CONNECTION_ESTABLISHED 0x31u 3634 3635 /** 3636 * @format 12 3637 * @param subevent_code 3638 * @param browsing_cid 3639 */ 3640 #define AVRCP_SUBEVENT_BROWSING_CONNECTION_RELEASED 0x32u 3641 3642 /** 3643 * @format 12211 3644 * @param subevent_code 3645 * @param browsing_cid 3646 * @param uid_counter 3647 * @param browsing_status 3648 * @param bluetooth_status 3649 */ 3650 #define AVRCP_SUBEVENT_BROWSING_DONE 0x33u 3651 3652 /** 3653 * @format 121444 3654 * @param subevent_code 3655 * @param browsing_cid 3656 * @param scope 3657 * @param start_item 3658 * @param end_item 3659 * @param attr_bitmap 3660 */ 3661 #define AVRCP_SUBEVENT_BROWSING_GET_FOLDER_ITEMS 0x34u 3662 3663 /** 3664 * @format 121 3665 * @param subevent_code 3666 * @param browsing_cid 3667 * @param scope 3668 */ 3669 #define AVRCP_SUBEVENT_BROWSING_GET_TOTAL_NUM_ITEMS 0x35u 3670 3671 /** 3672 * @format 122 3673 * @param subevent_code 3674 * @param browsing_cid 3675 * @param player_id 3676 */ 3677 #define AVRCP_SUBEVENT_BROWSING_SET_BROWSED_PLAYER 0x36u 3678 3679 /** 3680 * @format 11B22 3681 * @param subevent_code 3682 * @param status 0 == OK 3683 * @param bd_addr 3684 * @param avrcp_cid 3685 * @param cover_art_cid 3686 */ 3687 #define AVRCP_SUBEVENT_COVER_ART_CONNECTION_ESTABLISHED 0x37u 3688 3689 /** 3690 * @format 121 3691 * @param subevent_code 3692 * @param cover_art_cid 3693 * @param status 3694 */ 3695 #define AVRCP_SUBEVENT_COVER_ART_OPERATION_COMPLETE 0x38u 3696 3697 /** 3698 * @format 12 3699 * @param subevent_code 3700 * @param cover_art_cid 3701 */ 3702 #define AVRCP_SUBEVENT_COVER_ART_CONNECTION_RELEASED 0x39u 3703 3704 /** 3705 * @format 1221D 3706 * @param subevent_code 3707 * @param browsing_cid 3708 * @param uid_counter 3709 * @param direction 3710 * @param folder_id 3711 */ 3712 #define AVRCP_SUBEVENT_BROWSING_CHANGE_PATH 0x40u 3713 3714 /** 3715 * @format 1221DJV 3716 * @param subevent_code 3717 * @param browsing_cid 3718 * @param uid_counter 3719 * @param scope 3720 * @param item_id 3721 * @param attributes_len 3722 * @param attributes 3723 */ 3724 #define AVRCP_SUBEVENT_BROWSING_GET_ITEM_ATTRIBUTES 0x41u 3725 3726 /** 3727 * @format 122JV 3728 * @param subevent_code 3729 * @param browsing_cid 3730 * @param characterset 3731 * @param value_length 3732 * @param value 3733 */ 3734 3735 #define AVRCP_SUBEVENT_BROWSING_SEARCH 0x42u 3736 3737 /** 3738 * @format 1221D 3739 * @param subevent_code 3740 * @param avrcp_cid 3741 * @param uid_counter 3742 * @param scope 3743 * @param item_id 3744 */ 3745 #define AVRCP_SUBEVENT_PLAY_ITEM 0x42u 3746 3747 /** 3748 * @format 1221D 3749 * @param subevent_code 3750 * @param avrcp_cid 3751 * @param uid_counter 3752 * @param scope 3753 * @param item_id 3754 */ 3755 #define AVRCP_SUBEVENT_ADD_TO_NOW_PLAYING 0x43u 3756 3757 /** 3758 * @format 12BH 3759 * @param subevent_code 3760 * @param goep_cid 3761 * @param address 3762 * @param handle 3763 */ 3764 #define GOEP_SUBEVENT_INCOMING_CONNECTION 0x01u 3765 3766 /** 3767 * @format 121BH1 3768 * @param subevent_code 3769 * @param goep_cid 3770 * @param status 3771 * @param bd_addr 3772 * @param con_handle 3773 * @param incoming 3774 */ 3775 #define GOEP_SUBEVENT_CONNECTION_OPENED 0x02u 3776 3777 /** 3778 * @format 12 3779 * @param subevent_code 3780 * @param goep_cid 3781 */ 3782 #define GOEP_SUBEVENT_CONNECTION_CLOSED 0x03u 3783 3784 /** 3785 * @format 12 3786 * @param subevent_code 3787 * @param goep_cid 3788 */ 3789 #define GOEP_SUBEVENT_CAN_SEND_NOW 0x04u 3790 3791 /** 3792 * @format 121BH1 3793 * @param subevent_code 3794 * @param pbap_cid 3795 * @param status 3796 * @param bd_addr 3797 * @param con_handle 3798 * @param incoming 3799 */ 3800 #define PBAP_SUBEVENT_CONNECTION_OPENED 0x01u 3801 3802 /** 3803 * @format 12 3804 * @param subevent_code 3805 * @param goep_cid 3806 */ 3807 #define PBAP_SUBEVENT_CONNECTION_CLOSED 0x02u 3808 3809 /** 3810 * @format 121 3811 * @param subevent_code 3812 * @param goep_cid 3813 * @param status 3814 */ 3815 #define PBAP_SUBEVENT_OPERATION_COMPLETED 0x03u 3816 3817 /** 3818 * @format 1212 3819 * @param subevent_code 3820 * @param goep_cid 3821 * @param status 3822 * @param phonebook_size 3823 */ 3824 #define PBAP_SUBEVENT_PHONEBOOK_SIZE 0x04u 3825 3826 /** 3827 * @format 1211 3828 * @param subevent_code 3829 * @param goep_cid 3830 * @param user_id_required 3831 * @param full_access 3832 */ 3833 #define PBAP_SUBEVENT_AUTHENTICATION_REQUEST 0x05u 3834 3835 /** 3836 * @format 12JVJV 3837 * @param subevent_code 3838 * @param goep_cid 3839 * @param name_len 3840 * @param name 3841 * @param handle_len 3842 * @param handle 3843 */ 3844 #define PBAP_SUBEVENT_CARD_RESULT 0x06u 3845 3846 /** 3847 * @format 121 3848 * @param subevent_code 3849 * @param goep_cid 3850 * @param phonebook 3851 */ 3852 #define PBAP_SUBEVENT_RESET_MISSED_CALLS 0x0Au 3853 3854 /** 3855 * @format 12411 3856 * @param subevent_code 3857 * @param goep_cid 3858 * @param vcard_selector 3859 * @param vcard_selector_operator 3860 * @param phonebook 3861 */ 3862 #define PBAP_SUBEVENT_QUERY_PHONEBOOK_SIZE 0x0Bu 3863 3864 /** 3865 * @format 1244122411 3866 * @param subevent_code 3867 * @param goep_cid 3868 * @param continuation - value provided by caller of pbap_server_send_pull_response 3869 * @param property_selector 3870 * @param format 3871 * @param max_list_count 0xffff for unlimited 3872 * @param list_start_offset 3873 * @param vcard_selector 3874 * @param vcard_selector_operator 3875 * @param phonebook 3876 */ 3877 #define PBAP_SUBEVENT_PULL_PHONEBOOK 0x0Cu 3878 3879 /** 3880 * @format 124122411JV1 3881 * @param subevent_code 3882 * @param goep_cid 3883 * @param continuation - value provided by caller of pbap_server_send_pull_response 3884 * @param order 3885 * @param max_list_count 0xffff for unlimited 3886 * @param list_start_offset 3887 * @param vcard_selector 3888 * @param vcard_selector_operator 3889 * @param search_property 3890 * @param search_value_len 3891 * @param search_value 3892 * @param phonebook 3893 */ 3894 #define PBAP_SUBEVENT_PULL_VCARD_LISTING 0x0Du 3895 3896 /** 3897 * @format 124411T 3898 * @param subevent_code 3899 * @param goep_cid 3900 * @param continuation - value provided by caller of pbap_server_send_pull_response 3901 * @param property_selector 3902 * @param format 3903 * @param phonebook 3904 * @param name 3905 */ 3906 #define PBAP_SUBEVENT_PULL_VCARD_ENTRY 0x0Eu 3907 3908 3909 // HID Meta Event Group 3910 3911 /** 3912 * @format 12BH 3913 * @param subevent_code 3914 * @param hid_cid 3915 * @param address 3916 * @param handle 3917 */ 3918 #define HID_SUBEVENT_INCOMING_CONNECTION 0x01u 3919 3920 /** 3921 * @format 121BH1 3922 * @param subevent_code 3923 * @param hid_cid 3924 * @param status 3925 * @param bd_addr 3926 * @param con_handle 3927 * @param incoming 3928 */ 3929 #define HID_SUBEVENT_CONNECTION_OPENED 0x02u 3930 3931 /** 3932 * @format 12 3933 * @param subevent_code 3934 * @param hid_cid 3935 */ 3936 #define HID_SUBEVENT_CONNECTION_CLOSED 0x03u 3937 3938 /** 3939 * @format 12 3940 * @param subevent_code 3941 * @param hid_cid 3942 */ 3943 #define HID_SUBEVENT_CAN_SEND_NOW 0x04u 3944 3945 /** 3946 * @format 12 3947 * @param subevent_code 3948 * @param hid_cid 3949 */ 3950 #define HID_SUBEVENT_SUSPEND 0x05u 3951 3952 /** 3953 * @format 12 3954 * @param subevent_code 3955 * @param hid_cid 3956 */ 3957 #define HID_SUBEVENT_EXIT_SUSPEND 0x06u 3958 3959 /** 3960 * @format 12 3961 * @param subevent_code 3962 * @param hid_cid 3963 */ 3964 #define HID_SUBEVENT_VIRTUAL_CABLE_UNPLUG 0x07u 3965 3966 /** 3967 * @format 121LV 3968 * @param subevent_code 3969 * @param hid_cid 3970 * @param handshake_status 3971 * @param report_len 3972 * @param report 3973 */ 3974 #define HID_SUBEVENT_GET_REPORT_RESPONSE 0x08u 3975 3976 /** 3977 * @format 121 3978 * @param subevent_code 3979 * @param hid_cid 3980 * @param handshake_status 3981 */ 3982 #define HID_SUBEVENT_SET_REPORT_RESPONSE 0x09u 3983 3984 /** 3985 * @format 1211 3986 * @param subevent_code 3987 * @param hid_cid 3988 * @param handshake_status 3989 * @param protocol_mode 3990 */ 3991 #define HID_SUBEVENT_GET_PROTOCOL_RESPONSE 0x0Au 3992 3993 /** 3994 * @format 1211 3995 * @param subevent_code 3996 * @param hid_cid 3997 * @param handshake_status 3998 * @param protocol_mode 3999 */ 4000 #define HID_SUBEVENT_SET_PROTOCOL_RESPONSE 0x0Bu 4001 4002 /** 4003 * @format 12LV 4004 * @param subevent_code 4005 * @param hid_cid 4006 * @param report_len 4007 * @param report 4008 */ 4009 #define HID_SUBEVENT_REPORT 0x0Cu 4010 4011 /** 4012 * @format 121 4013 * @param subevent_code 4014 * @param hid_cid 4015 * @param status 4016 */ 4017 #define HID_SUBEVENT_DESCRIPTOR_AVAILABLE 0x0Du 4018 4019 /** 4020 * @format 1222 4021 * @param subevent_code 4022 * @param hid_cid 4023 * @param host_max_latency 4024 * @param host_min_timeout 4025 */ 4026 #define HID_SUBEVENT_SNIFF_SUBRATING_PARAMS 0x0Eu 4027 4028 // HIDS Meta Event Group 4029 4030 /** 4031 * @format 12 4032 * @param subevent_code 4033 * @param con_handle 4034 */ 4035 #define HIDS_SUBEVENT_CAN_SEND_NOW 0x01u 4036 4037 /** 4038 * @format 121 4039 * @param subevent_code 4040 * @param con_handle 4041 * @param protocol_mode 4042 */ 4043 #define HIDS_SUBEVENT_PROTOCOL_MODE 0x02u 4044 4045 /** 4046 * @format 121 4047 * @param subevent_code 4048 * @param con_handle 4049 * @param enable 4050 */ 4051 #define HIDS_SUBEVENT_BOOT_MOUSE_INPUT_REPORT_ENABLE 0x03u 4052 4053 /** 4054 * @format 121 4055 * @param subevent_code 4056 * @param con_handle 4057 * @param enable 4058 */ 4059 #define HIDS_SUBEVENT_BOOT_KEYBOARD_INPUT_REPORT_ENABLE 0x04u 4060 4061 /** 4062 * @format 1211 4063 * @param subevent_code 4064 * @param con_handle 4065 * @param report_id 4066 * @param enable 4067 */ 4068 #define HIDS_SUBEVENT_INPUT_REPORT_ENABLE 0x05u 4069 4070 /** 4071 * @format 1211 4072 * @param subevent_code 4073 * @param con_handle 4074 * @param report_id 4075 * @param enable 4076 */ 4077 #define HIDS_SUBEVENT_OUTPUT_REPORT_ENABLE 0x06u 4078 4079 /** 4080 * @format 1211 4081 * @param subevent_code 4082 * @param con_handle 4083 * @param report_id 4084 * @param enable 4085 */ 4086 #define HIDS_SUBEVENT_FEATURE_REPORT_ENABLE 0x07u 4087 4088 /** 4089 * @format 12 4090 * @param subevent_code 4091 * @param con_handle 4092 */ 4093 #define HIDS_SUBEVENT_SUSPEND 0x08u 4094 4095 /** 4096 * @format 12 4097 * @param subevent_code 4098 * @param con_handle 4099 */ 4100 #define HIDS_SUBEVENT_EXIT_SUSPEND 0x09u 4101 4102 /** 4103 * @format 1211JV 4104 * @param subevent_code 4105 * @param con_handle 4106 * @param report_id 4107 * @param report_type 4108 * @param report_length 4109 * @param report_data 4110 */ 4111 #define HIDS_SUBEVENT_SET_REPORT 0x0au 4112 4113 /** 4114 * @format 1211 4115 * @param subevent_code 4116 * @param con_handle 4117 * @param measurement_type 0 - force magnitude, 1 - torque magnitude, see cycling_power_sensor_measurement_context_t 4118 * @param is_enhanced 4119 */ 4120 #define GATTSERVICE_SUBEVENT_CYCLING_POWER_START_CALIBRATION 0x01u 4121 4122 /** 4123 * @format 12 4124 * @param subevent_code 4125 * @param con_handle 4126 */ 4127 #define GATTSERVICE_SUBEVENT_CYCLING_POWER_BROADCAST_START 0x02u 4128 4129 /** 4130 * @format 12 4131 * @param subevent_code 4132 * @param con_handle 4133 */ 4134 #define GATTSERVICE_SUBEVENT_CYCLING_POWER_BROADCAST_STOP 0x03u 4135 4136 /** 4137 * @format 12111 4138 * @param subevent_code 4139 * @param hids_cid 4140 * @param status 4141 * @param num_instances 4142 * @param poll_bitmap 4143 */ 4144 #define GATTSERVICE_SUBEVENT_BATTERY_SERVICE_CONNECTED 0x04u 4145 4146 /** 4147 * @format 12111 4148 * @param subevent_code 4149 * @param hids_cid 4150 * @param service_index 4151 * @param att_status see ATT errors in bluetooth.h 4152 * @param level 4153 */ 4154 #define GATTSERVICE_SUBEVENT_BATTERY_SERVICE_LEVEL 0x05u 4155 4156 /** 4157 * @format 12 4158 * @param subevent_code 4159 * @param service_id 4160 */ 4161 #define GATTSERVICE_SUBEVENT_BATTERY_SERVICE_LEVEL_BROADCAST_START 0x06u 4162 4163 /** 4164 * @format 12 4165 * @param subevent_code 4166 * @param service_id 4167 */ 4168 #define GATTSERVICE_SUBEVENT_BATTERY_SERVICE_LEVEL_BROADCAST_STOP 0x07u 4169 4170 /** 4171 * @format 1H1 4172 * @param subevent_code 4173 * @param con_handle 4174 * @param att_status 4175 */ 4176 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_DONE 0x08u 4177 4178 /** 4179 * @format 1H1T 4180 * @param subevent_code 4181 * @param con_handle 4182 * @param att_status 4183 * @param value 4184 */ 4185 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_MANUFACTURER_NAME 0x09u 4186 4187 /** 4188 * @format 1H1T 4189 * @param subevent_code 4190 * @param con_handle 4191 * @param att_status 4192 * @param value 4193 */ 4194 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_MODEL_NUMBER 0x0Au 4195 4196 /** 4197 * @format 1H1T 4198 * @param subevent_code 4199 * @param con_handle 4200 * @param att_status 4201 * @param value 4202 */ 4203 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_SERIAL_NUMBER 0x0Bu 4204 4205 /** 4206 * @format 1H1T 4207 * @param subevent_code 4208 * @param con_handle 4209 * @param att_status 4210 * @param value 4211 */ 4212 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_HARDWARE_REVISION 0x0Cu 4213 4214 /** 4215 * @format 1H1T 4216 * @param subevent_code 4217 * @param con_handle 4218 * @param att_status 4219 * @param value 4220 */ 4221 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_FIRMWARE_REVISION 0x0Du 4222 4223 /** 4224 * @format 1H1T 4225 * @param subevent_code 4226 * @param con_handle 4227 * @param att_status 4228 * @param value 4229 */ 4230 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_SOFTWARE_REVISION 0x0Eu 4231 4232 /** 4233 * @format 1H1413 4234 * @param subevent_code 4235 * @param con_handle 4236 * @param att_status 4237 * @param manufacturer_id_low 4238 * @param manufacturer_id_high 4239 * @param organizationally_unique_id 4240 */ 4241 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_SYSTEM_ID 0x0Fu 4242 4243 /** 4244 * @format 1H122 4245 * @param subevent_code 4246 * @param con_handle 4247 * @param att_status 4248 * @param value_a 4249 * @param value_b 4250 */ 4251 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_IEEE_REGULATORY_CERTIFICATION 0x10u 4252 4253 /** 4254 * @format 1H11222 4255 * @param subevent_code 4256 * @param con_handle 4257 * @param att_status 4258 * @param vendor_source_id 4259 * @param vendor_id 4260 * @param product_id 4261 * @param product_version 4262 */ 4263 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_PNP_ID 0x11u 4264 4265 /** 4266 * @format 1H1TTTT 4267 * @param subevent_code 4268 * @param con_handle 4269 * @param att_status 4270 * @param label 4271 * @param device_id 4272 * @param issuer 4273 * @param authority 4274 */ 4275 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_UDI_FOR_MEDICAL_DEVICES 0x12u 4276 4277 /** 4278 * @format 1H1 4279 * @param subevent_code 4280 * @param con_handle 4281 * @param status 4282 */ 4283 #define GATTSERVICE_SUBEVENT_SCAN_PARAMETERS_SERVICE_CONNECTED 0x13u 4284 4285 /** 4286 * @format 1H 4287 * @param subevent_code 4288 * @param con_handle 4289 */ 4290 #define GATTSERVICE_SUBEVENT_SCAN_PARAMETERS_SERVICE_DISCONNECTED 0x14u 4291 4292 /** 4293 * @format 1H 4294 * @param subevent_code 4295 * @param con_handle 4296 */ 4297 #define GATTSERVICE_SUBEVENT_SPP_SERVICE_CONNECTED 0x15u 4298 4299 /** 4300 * @format 1H 4301 * @param subevent_code 4302 * @param con_handle 4303 */ 4304 #define GATTSERVICE_SUBEVENT_SPP_SERVICE_DISCONNECTED 0x16u 4305 4306 /** 4307 * @format 12111 4308 * @param subevent_code 4309 * @param hids_cid 4310 * @param status 4311 * @param protocol_mode 4312 * @param num_instances 4313 */ 4314 #define GATTSERVICE_SUBEVENT_HID_SERVICE_CONNECTED 0x17u 4315 4316 /** 4317 * @format 12 4318 * @param subevent_code 4319 * @param hids_cid 4320 */ 4321 #define GATTSERVICE_SUBEVENT_HID_SERVICE_DISCONNECTED 0x18u 4322 4323 /** 4324 * @format 1211LV 4325 * @param subevent_code 4326 * @param hids_cid 4327 * @param service_index 4328 * @param report_id 4329 * @param report_len 4330 * @param report 4331 */ 4332 #define GATTSERVICE_SUBEVENT_HID_REPORT 0x19u 4333 4334 /** 4335 * @format 1212111 4336 * @param subevent_code 4337 * @param hids_cid 4338 * @param service_index 4339 * @param base_usb_hid_version Version number of base USB HID Specification implemented by HID Device 4340 * @param country_code Country HID Device hardware is localized for (not localized: 0x00) 4341 * @param remote_wake Indicates whether HID Device is capable of sending a wake-signal to a HID Host 4342 * @param normally_connectable Indicates whether HID Device will be advertising when bonded but not connected. 4343 */ 4344 #define GATTSERVICE_SUBEVENT_HID_INFORMATION 0x1Au 4345 4346 /** 4347 * @format 1211 4348 * @param subevent_code 4349 * @param hids_cid 4350 * @param service_index 4351 * @param protocol_mode see hid_protocol_mode_t in btstack_hid.h 4352 */ 4353 #define GATTSERVICE_SUBEVENT_HID_PROTOCOL_MODE 0x1Bu 4354 4355 /** 4356 * @format 121 4357 * @param subevent_code 4358 * @param hids_cid 4359 * @param configuration 4360 */ 4361 #define GATTSERVICE_SUBEVENT_HID_SERVICE_REPORTS_NOTIFICATION 0x1Cu 4362 4363 /** 4364 * @format 1211 4365 * @param subevent_code 4366 * @param hids_cid 4367 * @param service_index 4368 * @param report_id 4369 */ 4370 #define GATTSERVICE_SUBEVENT_HID_REPORT_WRITTEN 0x1Du 4371 4372 /** 4373 * @format 1H22 4374 * @param subevent_code 4375 * @param con_handle 4376 * @param max_scan_interval 4377 * @param min_scan_window 4378 */ 4379 #define GATTSERVICE_SUBEVENT_SCAN_PARAMETERS_SERVICE_SCAN_INTERVAL_UPDATE 0x1Eu 4380 4381 /** 4382 * @format 1H22 4383 * @param subevent_code 4384 * @param con_handle 4385 * @param attribute_handle_start 4386 * @param attribute_handle_end 4387 */ 4388 #define GATTSERVICE_SUBEVENT_GATT_SERVICE_CHANGED 0x1Fu 4389 4390 /** 4391 * @format 1HK 4392 * @param subevent_code 4393 * @param con_handle 4394 * @param database_hash 4395 */ 4396 #define GATTSERVICE_SUBEVENT_GATT_DATABASE_HASH 0x20u 4397 4398 /** 4399 * @format 1H211 4400 * @param subevent_code 4401 * @param con_handle 4402 * @param cid 4403 * @param num_included_services 4404 * @param status 4405 */ 4406 #define GATTSERVICE_SUBEVENT_CLIENT_CONNECTED 0x21u 4407 4408 /** 4409 * @format 1H2 4410 * @param subevent_code 4411 * @param con_handle 4412 * @param cid 4413 */ 4414 #define GATTSERVICE_SUBEVENT_CLIENT_DISCONNECTED 0x22u 4415 4416 /** 4417 * @format 1H21 4418 * @param subevent_code 4419 * @param con_handle 4420 * @param lls_cid 4421 * @param status 4422 */ 4423 #define GATTSERVICE_SUBEVENT_LLS_CLIENT_CONNECTED 0x23u 4424 4425 /** 4426 * @format 12 4427 * @param subevent_code 4428 * @param lls_cid 4429 */ 4430 #define GATTSERVICE_SUBEVENT_LLS_CLIENT_DISCONNECTED 0x24u 4431 4432 /** 4433 * @format 1221 4434 * @param subevent_code 4435 * @param lls_cid 4436 * @param characteristic_uuid 4437 * @param att_status 4438 */ 4439 #define GATTSERVICE_SUBEVENT_LLS_CLIENT_WRITE_DONE 0x25u 4440 4441 /** 4442 * @format 12 4443 * @param subevent_code 4444 * @param lls_cid 4445 */ 4446 #define GATTSERVICE_SUBEVENT_LLS_CLIENT_START_ALERTING 0x26u 4447 4448 /** 4449 * @format 121 4450 * @param subevent_code 4451 * @param lls_cid 4452 * @param timeout 4453 */ 4454 #define GATTSERVICE_SUBEVENT_LLS_CLIENT_STOP_ALERTING 0x27u 4455 4456 /** 4457 * @format 121 4458 * @param subevent_code 4459 * @param lls_cid 4460 * @param value 4461 */ 4462 #define GATTSERVICE_SUBEVENT_LLS_CLIENT_ALERT_LEVEL 0x28u 4463 4464 /** 4465 * @format 1H21 4466 * @param subevent_code 4467 * @param con_handle 4468 * @param ias_cid 4469 * @param status 4470 */ 4471 #define GATTSERVICE_SUBEVENT_IAS_CLIENT_CONNECTED 0x29u 4472 4473 /** 4474 * @format 12 4475 * @param subevent_code 4476 * @param ias_cid 4477 */ 4478 #define GATTSERVICE_SUBEVENT_IAS_CLIENT_DISCONNECTED 0x2Au 4479 4480 /** 4481 * @format 12 4482 * @param subevent_code 4483 * @param ias_cid 4484 */ 4485 #define GATTSERVICE_SUBEVENT_IAS_CLIENT_START_ALERTING 0x2Bu 4486 4487 /** 4488 * @format 121 4489 * @param subevent_code 4490 * @param ias_cid 4491 * @param timeout 4492 */ 4493 #define GATTSERVICE_SUBEVENT_IAS_CLIENT_STOP_ALERTING 0x2Cu 4494 4495 /** 4496 * @format 1H21 4497 * @param subevent_code 4498 * @param con_handle 4499 * @param tpxs_cid 4500 * @param status 4501 */ 4502 #define GATTSERVICE_SUBEVENT_TXPS_CLIENT_CONNECTED 0x2Du 4503 4504 /** 4505 * @format 12 4506 * @param subevent_code 4507 * @param tpxs_cid 4508 */ 4509 #define GATTSERVICE_SUBEVENT_TXPS_CLIENT_DISCONNECTED 0x2Eu 4510 4511 /** 4512 * @format 121 4513 * @param subevent_code 4514 * @param tpxs_cid 4515 * @param value 4516 */ 4517 #define GATTSERVICE_SUBEVENT_TXPS_CLIENT_TX_POWER_LEVEL 0x2Fu 4518 4519 /** 4520 * @format 11 4521 * @param subevent_code 4522 * @param alert_level 4523 */ 4524 #define GATTSERVICE_SUBEVENT_LLS_SERVER_START_ALERTING 0x30u 4525 4526 /** 4527 * @format 111 4528 * @param subevent_code 4529 * @param alert_level 4530 * @param timeout 4531 */ 4532 #define GATTSERVICE_SUBEVENT_LLS_SERVER_STOP_ALERTING 0x31u 4533 4534 /** 4535 * @format 11 4536 * @param subevent_code 4537 * @param alert_level 4538 */ 4539 #define GATTSERVICE_SUBEVENT_IAS_SERVER_START_ALERTING 0x32u 4540 4541 /** 4542 * @format 111 4543 * @param subevent_code 4544 * @param alert_level 4545 * @param timeout 4546 */ 4547 #define GATTSERVICE_SUBEVENT_IAS_SERVER_STOP_ALERTING 0x33u 4548 4549 4550 4551 // LE Audio 4552 4553 /** 4554 * @format 1H1 4555 * @param subevent_code 4556 * @param con_handle 4557 * @param status 4558 */ 4559 #define LEAUDIO_SUBEVENT_BASS_SERVER_CONNECTED 0x01u 4560 4561 /** 4562 * @format 1H 4563 * @param subevent_code 4564 * @param con_handle 4565 */ 4566 #define LEAUDIO_SUBEVENT_BASS_SERVER_DISCONNECTED 0x02u 4567 4568 /** 4569 * @format 1H 4570 * @param subevent_code 4571 * @param con_handle 4572 */ 4573 #define LEAUDIO_SUBEVENT_BASS_SERVER_SCAN_STOPPED 0x03u 4574 4575 /** 4576 * @format 1H 4577 * @param subevent_code 4578 * @param con_handle 4579 */ 4580 #define LEAUDIO_SUBEVENT_BASS_SERVER_SCAN_STARTED 0x04u 4581 4582 /** 4583 * @format 1H1K 4584 * @param subevent_code 4585 * @param con_handle 4586 * @param source_id 4587 * @param broadcast_code 4588 */ 4589 #define LEAUDIO_SUBEVENT_BASS_SERVER_BROADCAST_CODE 0x05u 4590 4591 /** 4592 * @format 1H11 4593 * @param subevent_code 4594 * @param con_handle 4595 * @param source_id 4596 * @param pa_sync 4597 */ 4598 #define LEAUDIO_SUBEVENT_BASS_SERVER_SOURCE_ADDED 0x06u 4599 4600 /** 4601 * @format 1H11 4602 * @param subevent_code 4603 * @param con_handle 4604 * @param source_id 4605 * @param pa_sync 4606 */ 4607 #define LEAUDIO_SUBEVENT_BASS_SERVER_SOURCE_MODIFIED 0x07u 4608 4609 /** 4610 * @format 1H11 4611 * @param subevent_code 4612 * @param con_handle 4613 * @param source_id 4614 * @param pa_sync 4615 */ 4616 #define LEAUDIO_SUBEVENT_BASS_SERVER_SOURCE_DELETED 0x08u 4617 4618 /** 4619 * @format 1H21 4620 * @param subevent_code 4621 * @param con_handle 4622 * @param bass_cid 4623 * @param status 4624 */ 4625 #define LEAUDIO_SUBEVENT_BASS_CLIENT_CONNECTED 0x09u 4626 4627 /** 4628 * @format 12 4629 * @param subevent_code 4630 * @param bass_cid 4631 */ 4632 #define LEAUDIO_SUBEVENT_BASS_CLIENT_DISCONNECTED 0x0Au 4633 4634 /** 4635 * @format 1211 4636 * @param subevent_code 4637 * @param bass_cid 4638 * @param status 4639 * @param opcode 4640 */ 4641 #define LEAUDIO_SUBEVENT_BASS_CLIENT_SCAN_OPERATION_COMPLETE 0x0Bu 4642 4643 /** 4644 * @format 1211B1311P1 4645 * @param subevent_code 4646 * @param bass_cid 4647 * @param source_id 4648 * @param source_address_type 4649 * @param source_address 4650 * @param source_adv_sid 4651 * @param broadcast_id 4652 * @param pa_sync_state 4653 * @param big_encryption 4654 * @param bad_code 4655 * @param subgroups_num 4656 */ 4657 #define LEAUDIO_SUBEVENT_BASS_CLIENT_NOTIFY_RECEIVE_STATE_BASE 0x0Cu 4658 4659 /** 4660 * @format 1214122JV3JV1JV2JV2JV 4661 * @param subevent_code 4662 * @param bass_cid 4663 * @param source_id 4664 * @param bis_sync_state 4665 * @param metadata_mask 4666 * @param preferred_audio_contexts_mask 4667 * @param streaming_audio_contexts_mask 4668 * @param program_info_length 4669 * @param program_info 4670 * @param language_code 4671 * @param ccids_num 4672 * @param ccids 4673 * @param parental_rating 4674 * @param program_info_uri_length 4675 * @param program_info_uri 4676 * @param extended_metadata_type 4677 * @param extended_metadata_value_length 4678 * @param extended_metadata_value 4679 * @param vendor_specific_metadata_type 4680 * @param vendor_specific_metadata_value_length 4681 * @param vendor_specific_metadata_value 4682 */ 4683 #define LEAUDIO_SUBEVENT_BASS_CLIENT_NOTIFY_RECEIVE_STATE_SUBGROUP 0x0Du 4684 4685 /** 4686 * @format 121 4687 * @param subevent_code 4688 * @param bass_cid 4689 * @param source_id 4690 */ 4691 #define LEAUDIO_SUBEVENT_BASS_CLIENT_NOTIFICATION_COMPLETE 0x0Eu 4692 4693 /** 4694 * @format 12111 4695 * @param subevent_code 4696 * @param bass_cid 4697 * @param status 4698 * @param opcode 4699 * @param source_id 4700 */ 4701 #define LEAUDIO_SUBEVENT_BASS_CLIENT_SOURCE_OPERATION_COMPLETE 0x0Fu 4702 4703 4704 // MESH Meta Event Group 4705 4706 /** 4707 * @format 1 4708 * @param subevent_code 4709 */ 4710 #define MESH_SUBEVENT_CAN_SEND_NOW 0x01u 4711 4712 /** 4713 * @format 11 4714 * @param subevent_code 4715 * @param status 4716 */ 4717 #define MESH_SUBEVENT_PB_TRANSPORT_PDU_SENT 0x02u 4718 4719 /** 4720 * @format 1121 4721 * @param subevent_code 4722 * @param status 4723 * @param pb_transport_cid 4724 * @param pb_type 4725 */ 4726 #define MESH_SUBEVENT_PB_TRANSPORT_LINK_OPEN 0x03u 4727 4728 /** 4729 * @format 112 4730 * @param subevent_code 4731 * @param pb_transport_cid 4732 * @param reason 4733 */ 4734 #define MESH_SUBEVENT_PB_TRANSPORT_LINK_CLOSED 0x04u 4735 4736 /** 4737 * @format 121 4738 * @param subevent_code 4739 * @param pb_transport_cid 4740 * @param attention_time in seconds 4741 */ 4742 #define MESH_SUBEVENT_PB_PROV_ATTENTION_TIMER 0x10u 4743 4744 /** 4745 * Device Role 4746 * @format 12 4747 * @param subevent_code 4748 * @param pb_transport_cid 4749 */ 4750 #define MESH_SUBEVENT_PB_PROV_START_EMIT_PUBLIC_KEY_OOB 0x11u 4751 4752 /** 4753 * Device Role 4754 * @format 12 4755 * @param subevent_code 4756 * @param pb_transport_cid 4757 */ 4758 #define MESH_SUBEVENT_PB_PROV_STOP_EMIT_PUBLIC_KEY_OOB 0x12u 4759 4760 /** 4761 * Device Role 4762 * @format 12 4763 * @param subevent_code 4764 * @param pb_transport_cid 4765 */ 4766 #define MESH_SUBEVENT_PB_PROV_INPUT_OOB_REQUEST 0x13u 4767 4768 /** 4769 * Device Role 4770 * @format 124 4771 * @param subevent_code 4772 * @param pb_transport_cid 4773 * @param output_oob number 4774 */ 4775 #define MESH_SUBEVENT_PB_PROV_START_EMIT_OUTPUT_OOB 0x15u 4776 4777 /** 4778 * Device Role 4779 * @format 12 4780 * @param subevent_code 4781 * @param pb_transport_cid 4782 */ 4783 #define MESH_SUBEVENT_PB_PROV_STOP_EMIT_OUTPUT_OOB 0x16u 4784 4785 /** 4786 * Provisioner Role 4787 * @format 12 4788 * @param subevent_code 4789 * @param pb_transport_cid 4790 */ 4791 #define MESH_SUBEVENT_PB_PROV_START_RECEIVE_PUBLIC_KEY_OOB 0x17u 4792 4793 /** 4794 * Provisioner Role 4795 * @format 12 4796 * @param subevent_code 4797 * @param pb_transport_cid 4798 */ 4799 #define MESH_SUBEVENT_PB_PROV_STOP_RECEIVE_PUBLIC_KEY_OOB 0x18u 4800 4801 /** 4802 * Provisioner Role 4803 * @format 12 4804 * @param subevent_code 4805 * @param pb_transport_cid 4806 */ 4807 #define MESH_SUBEVENT_PB_PROV_OUTPUT_OOB_REQUEST 0x19u 4808 4809 /** 4810 * Provisioner Role 4811 * @format 124 4812 * @param subevent_code 4813 * @param pb_transport_cid 4814 * @param output_oob number 4815 */ 4816 #define MESH_SUBEVENT_PB_PROV_START_EMIT_INPUT_OOB 0x1au 4817 4818 /** 4819 * Provisioner Role 4820 * @format 12 4821 * @param subevent_code 4822 * @param pb_transport_cid 4823 */ 4824 #define MESH_SUBEVENT_PB_PROV_STOP_EMIT_INPUT_OOB 0x1bu 4825 4826 /** 4827 * Provisioner Role 4828 * @format 1212111212 4829 * @param subevent_code 4830 * @param pb_transport_cid 4831 * @param num_elements 4832 * @param algorithms 4833 * @param public_key 4834 * @param static_oob_type 4835 * @param output_oob_size 4836 * @param output_oob_action 4837 * @param input_oob_size 4838 * @param input_oob_action 4839 */ 4840 #define MESH_SUBEVENT_PB_PROV_CAPABILITIES 0x1cu 4841 4842 /** 4843 * @format 12 4844 * @param subevent_code 4845 * @param pb_transport_cid 4846 */ 4847 #define MESH_SUBEVENT_PB_PROV_COMPLETE 0x1du 4848 4849 /** 4850 * @format 11 4851 * @param subevent_code 4852 * @param attention_time in seconds 4853 */ 4854 #define MESH_SUBEVENT_ATTENTION_TIMER 0x1eu 4855 4856 /** 4857 * @format 1H 4858 * @param subevent_code 4859 * @param con_handle 4860 */ 4861 #define MESH_SUBEVENT_PROXY_CONNECTED 0x20u 4862 4863 /** 4864 * @format 1H 4865 * @param subevent_code 4866 * @param con_handle 4867 */ 4868 #define MESH_SUBEVENT_PROXY_PDU_SENT 0x21u 4869 4870 /** 4871 * @format 1H 4872 * @param subevent_code 4873 * @param con_handle 4874 */ 4875 #define MESH_SUBEVENT_PROXY_DISCONNECTED 0x22u 4876 4877 /** 4878 * @format 1H 4879 * @param subevent_code 4880 * @param con_handle 4881 */ 4882 #define MESH_SUBEVENT_MESSAGE_SENT 0x23u 4883 4884 /** 4885 * @format 114411 4886 * @param subevent_code 4887 * @param element_index 4888 * @param model_identifier 4889 * @param state_identifier 4890 * @param reason 4891 * @param value 4892 */ 4893 #define MESH_SUBEVENT_STATE_UPDATE_BOOL 0x24u 4894 4895 /** 4896 * @format 114412 4897 * @param subevent_code 4898 * @param element_index 4899 * @param model_identifier 4900 * @param state_identifier 4901 * @param reason 4902 * @param value 4903 */ 4904 #define MESH_SUBEVENT_STATE_UPDATE_INT16 0x25u 4905 4906 // Mesh Client Events 4907 /** 4908 * @format 11442 4909 * @param subevent_code 4910 * @param element_index 4911 * @param model_identifier 4912 * @param opcode 4913 * @param dest 4914 */ 4915 #define MESH_SUBEVENT_MESSAGE_NOT_ACKNOWLEDGED 0x30u 4916 4917 /** 4918 * @format 121114 4919 * @param subevent_code 4920 * @param dest 4921 * @param status 4922 * @param present_value 4923 * @param target_value optional, if value > 0, than remaining_time_ms must be read 4924 * @param remaining_time_ms 4925 */ 4926 #define MESH_SUBEVENT_GENERIC_ON_OFF 0x31u 4927 4928 /** 4929 * @format 121224 4930 * @param subevent_code 4931 * @param dest 4932 * @param status 4933 * @param present_value 4934 * @param target_value optional, if value > 0, than remaining_time_ms must be read 4935 * @param remaining_time_ms 4936 */ 4937 #define MESH_SUBEVENT_GENERIC_LEVEL 0x32u 4938 4939 /** 4940 * @format 1222211 4941 * @param subevent_code 4942 * @param dest 4943 * @param netkey_index 4944 * @param appkey_index 4945 * @param company_id 4946 * @param test_id 4947 * @param acknowledged 4948 */ 4949 #define MESH_SUBEVENT_HEALTH_PERFORM_TEST 0x33u 4950 4951 /** 4952 * @format 11 4953 * @param subevent_code 4954 * @param element_index 4955 */ 4956 #define MESH_SUBEVENT_HEALTH_ATTENTION_TIMER_CHANGED 0x34u 4957 4958 /** 4959 * @format 1211 4960 * @param subevent_code 4961 * @param dest 4962 * @param status 4963 * @param transition_time_gdtt 4964 */ 4965 #define MESH_SUBEVENT_GENERIC_DEFAULT_TRANSITION_TIME 0x35u 4966 4967 /** 4968 * @format 1211 4969 * @param subevent_code 4970 * @param dest 4971 * @param foundation_status 4972 * @param secure_network_beacon_state 4973 */ 4974 #define MESH_SUBEVENT_CONFIGURATION_BEACON 0x36u 4975 4976 // Composition Data has variable of element descriptions, with two lists of model lists 4977 // Use .. getters to access data 4978 #define MESH_SUBEVENT_CONFIGURATION_COMPOSITION_DATA 0x37u 4979 4980 /** 4981 * @format 1211 4982 * @param subevent_code 4983 * @param dest 4984 * @param foundation_status 4985 * @param default_ttl 4986 */ 4987 #define MESH_SUBEVENT_CONFIGURATION_DEFAULT_TTL 0x38u 4988 4989 /** 4990 * @format 1211 4991 * @param subevent_code 4992 * @param dest 4993 * @param foundation_status 4994 * @param gatt_proxy_state 4995 */ 4996 #define MESH_SUBEVENT_CONFIGURATION_GATT_PROXY 0x39u 4997 4998 /** 4999 * @format 121111 5000 * @param subevent_code 5001 * @param dest 5002 * @param foundation_status 5003 * @param relay 5004 * @param retransmit_count the number of times that packet is transmitted for each packet that is relayed. 5005 * @param retransmit_interval_ms retransmission interval in ms 5006 */ 5007 #define MESH_SUBEVENT_CONFIGURATION_RELAY 0x40u 5008 5009 5010 /** 5011 * @format 12122111114 5012 * @param subevent_code 5013 * @param dest element_address 5014 * @param foundation_status 5015 * @param publish_address 5016 * @param appkey_index 5017 * @param credential_flag 5018 * @param publish_ttl 5019 * @param publish_period 5020 * @param publish_retransmit_count 5021 * @param publish_retransmit_interval_steps 5022 * @param model_identifier 5023 */ 5024 #define MESH_SUBEVENT_CONFIGURATION_MODEL_PUBLICATION 0x41u 5025 5026 /** 5027 * @format 12124 5028 * @param subevent_code 5029 * @param dest 5030 * @param foundation_status 5031 * @param address 5032 * @param model_identifier 5033 */ 5034 #define MESH_SUBEVENT_CONFIGURATION_MODEL_SUBSCRIPTION 0x42u 5035 5036 /** 5037 * @format 1214112 5038 * @param subevent_code 5039 * @param dest 5040 * @param foundation_status 5041 * @param model_identifier 5042 * @param num_subscription_addresses 5043 * @param subscription_address_pos 5044 * @param subscription_address_item 5045 */ 5046 #define MESH_SUBEVENT_CONFIGURATION_MODEL_SUBSCRIPTION_LIST_ITEM 0x43u 5047 5048 5049 /** 5050 * @format 121 5051 * @param subevent_code 5052 * @param dest 5053 * @param foundation_status 5054 */ 5055 #define MESH_SUBEVENT_CONFIGURATION_NETKEY_INDEX 0x44u 5056 5057 /** 5058 * @format 121112 5059 * @param subevent_code 5060 * @param dest 5061 * @param foundation_status 5062 * @param num_netkey_indexes 5063 * @param netkey_index_pos 5064 * @param netkey_index_item 5065 */ 5066 #define MESH_SUBEVENT_CONFIGURATION_NETKEY_INDEX_LIST_ITEM 0x45u 5067 5068 /** 5069 * @format 12122 5070 * @param subevent_code 5071 * @param dest 5072 * @param foundation_status 5073 * @param netkey_index_item 5074 * @param appkey_index_item 5075 */ 5076 #define MESH_SUBEVENT_CONFIGURATION_APPKEY_INDEX 0x46u 5077 5078 /** 5079 * @format 12121122 5080 * @param subevent_code 5081 * @param dest 5082 * @param foundation_status 5083 * @param netkey_index 5084 * @param num_appkey_indexes 5085 * @param appkey_index_pos 5086 * @param netkey_index_item 5087 * @param appkey_index_item 5088 */ 5089 #define MESH_SUBEVENT_CONFIGURATION_APPKEY_INDEX_LIST_ITEM 0x47u 5090 5091 /** 5092 * @format 12121 5093 * @param subevent_code 5094 * @param dest 5095 * @param foundation_status 5096 * @param netkey_index_item 5097 * @param identity_status 5098 */ 5099 #define MESH_SUBEVENT_CONFIGURATION_NODE_IDENTITY 0x48u 5100 5101 /** 5102 * @format 12124 5103 * @param subevent_code 5104 * @param dest 5105 * @param foundation_status 5106 * @param appkey_index 5107 * @param model_identifier 5108 */ 5109 #define MESH_SUBEVENT_CONFIGURATION_MODEL_APP 0x49u 5110 5111 /** 5112 * @format 1214112 5113 * @param subevent_code 5114 * @param dest 5115 * @param foundation_status 5116 * @param model_id 5117 * @param num_appkey_indexes 5118 * @param appkey_index_pos 5119 * @param appkey_index_item 5120 */ 5121 #define MESH_SUBEVENT_CONFIGURATION_MODEL_APP_LIST_ITEM 0x50u 5122 5123 /** 5124 * @format 121 5125 * @param subevent_code 5126 * @param dest 5127 * @param foundation_status 5128 */ 5129 #define MESH_SUBEVENT_CONFIGURATION_NODE_RESET 0x51u 5130 5131 /** 5132 * @format 1211 5133 * @param subevent_code 5134 * @param dest 5135 * @param foundation_status 5136 * @param friend_state 5137 */ 5138 #define MESH_SUBEVENT_CONFIGURATION_FRIEND 0x52u 5139 5140 /** 5141 * @format 12121 5142 * @param subevent_code 5143 * @param dest 5144 * @param foundation_status 5145 * @param netkey_index 5146 * @param phase 5147 */ 5148 #define MESH_SUBEVENT_CONFIGURATION_KEY_REFRESH_PHASE 0x53u 5149 5150 /** 5151 * @format 121222122 5152 * @param subevent_code 5153 * @param dest 5154 * @param foundation_status 5155 * @param heartbeat_destination 5156 * @param count_S 5157 * @param period_S 5158 * @param ttl 5159 * @param features 5160 * @param netkey_index 5161 */ 5162 #define MESH_SUBEVENT_CONFIGURATION_HEARTBEAT_PUBLICATION 0x54u 5163 5164 /** 5165 * @format 121222211 5166 * @param subevent_code 5167 * @param dest 5168 * @param foundation_status 5169 * @param heartbeat_destination 5170 * @param heartbeat_source 5171 * @param count_S 5172 * @param period_S 5173 * @param min_hops 5174 * @param max_hops 5175 */ 5176 #define MESH_SUBEVENT_CONFIGURATION_HEARTBEAT_SUBSCRIPTION 0x55u 5177 5178 /** 5179 * @format 12123 5180 * @param subevent_code 5181 * @param dest 5182 * @param foundation_status 5183 * @param lpn_address 5184 * @param poll_timeout 5185 */ 5186 #define MESH_SUBEVENT_CONFIGURATION_LOW_POWER_NODE_POLL_TIMEOUT 0x56u 5187 5188 /** 5189 * @format 12112 5190 * @param subevent_code 5191 * @param dest 5192 * @param foundation_status 5193 * @param transmit_count 5194 * @param transmit_interval_steps_ms 5195 */ 5196 #define MESH_SUBEVENT_CONFIGURATION_NETWORK_TRANSMIT 0x57u 5197 5198 5199 #endif 5200