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