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 12222BH 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 */ 1635 #define BNEP_EVENT_CHANNEL_OPENED 0xC1u 1636 1637 /** 1638 * @format 222B 1639 * @param bnep_cid 1640 * @param source_uuid 1641 * @param destination_uuid 1642 * @param remote_address 1643 */ 1644 #define BNEP_EVENT_CHANNEL_CLOSED 0xC2u 1645 1646 /** 1647 * @format 222B1 1648 * @param bnep_cid 1649 * @param source_uuid 1650 * @param destination_uuid 1651 * @param remote_address 1652 * @param channel_state 1653 */ 1654 #define BNEP_EVENT_CHANNEL_TIMEOUT 0xC3u 1655 1656 /** 1657 * @format 222B 1658 * @param bnep_cid 1659 * @param source_uuid 1660 * @param destination_uuid 1661 * @param remote_address 1662 */ 1663 #define BNEP_EVENT_CAN_SEND_NOW 0xC4u 1664 1665 /** 1666 * @format H1B1 1667 * @param handle 1668 * @param addr_type 1669 * @param address 1670 * @param secure_connection - set to 1 if LE Secure Connection pairing will be used 1671 */ 1672 #define SM_EVENT_JUST_WORKS_REQUEST 0xC8u 1673 1674 /** 1675 * @format H1B14 1676 * @param handle 1677 * @param addr_type 1678 * @param address 1679 * @param secure_connection - set to 1 if LE Secure Connection pairing will be used 1680 * @param passkey 1681 */ 1682 #define SM_EVENT_PASSKEY_DISPLAY_NUMBER 0xC9u 1683 1684 /** 1685 * @format H1B 1686 * @param handle 1687 * @param addr_type 1688 * @param address 1689 */ 1690 #define SM_EVENT_PASSKEY_DISPLAY_CANCEL 0xCAu 1691 1692 /** 1693 * @format H1B1 1694 * @param handle 1695 * @param addr_type 1696 * @param address 1697 * @param secure_connection - set to 1 if LE Secure Connection pairing will be used 1698 */ 1699 #define SM_EVENT_PASSKEY_INPUT_NUMBER 0xCBu 1700 1701 /** 1702 * @format H1B14 1703 * @param handle 1704 * @param addr_type 1705 * @param address 1706 * @param secure_connection - set to 1 if LE Secure Connection pairing will be used 1707 * @param passkey 1708 */ 1709 #define SM_EVENT_NUMERIC_COMPARISON_REQUEST 0xCCu 1710 1711 /** 1712 * @format H1B 1713 * @param handle 1714 * @param addr_type 1715 * @param address 1716 */ 1717 #define SM_EVENT_IDENTITY_RESOLVING_STARTED 0xCDu 1718 1719 /** 1720 * @format H1B 1721 * @param handle 1722 * @param addr_type 1723 * @param address 1724 */ 1725 #define SM_EVENT_IDENTITY_RESOLVING_FAILED 0xCEu 1726 1727 /** 1728 * @brief Identify resolving succeeded 1729 * 1730 * @format H1B1B2 1731 * @param handle 1732 * @param addr_type 1733 * @param address 1734 * @param identity_addr_type 1735 * @param identity_address 1736 * @param index 1737 * 1738 */ 1739 #define SM_EVENT_IDENTITY_RESOLVING_SUCCEEDED 0xCFu 1740 1741 /** 1742 * @format H1B 1743 * @param handle 1744 * @param addr_type 1745 * @param address 1746 */ 1747 #define SM_EVENT_AUTHORIZATION_REQUEST 0xD0u 1748 1749 /** 1750 * @format H1B1 1751 * @param handle 1752 * @param addr_type 1753 * @param address 1754 * @param authorization_result 1755 */ 1756 #define SM_EVENT_AUTHORIZATION_RESULT 0xD1u 1757 1758 /** 1759 * @format H1 1760 * @param handle 1761 * @param action see SM_KEYPRESS_* 1762 */ 1763 #define SM_EVENT_KEYPRESS_NOTIFICATION 0xD2u 1764 1765 /** 1766 * @brief Emitted during pairing to inform app about address used as identity 1767 * 1768 * @format H1B1B2 1769 * @param handle 1770 * @param addr_type 1771 * @param address 1772 * @param identity_addr_type 1773 * @param identity_address 1774 * @param index 1775 */ 1776 #define SM_EVENT_IDENTITY_CREATED 0xD3u 1777 1778 /** 1779 * @brief Emitted to inform app that pairing has started. 1780 * @format H1B 1781 * @param handle 1782 * @param addr_type 1783 * @param address 1784 */ 1785 #define SM_EVENT_PAIRING_STARTED 0xD4u 1786 1787 /** 1788 * @brief Emitted to inform app that pairing is complete. Possible status values: 1789 * ERROR_CODE_SUCCESS -> pairing success 1790 * ERROR_CODE_CONNECTION_TIMEOUT -> timeout 1791 * ERROR_CODE_REMOTE_USER_TERMINATED_CONNECTION -> disconnect 1792 * ERROR_CODE_AUTHENTICATION_FAILURE -> SM protocol error, see reason field with SM_REASON_* from bluetooth.h 1793 * 1794 * @format H1B11 1795 * @param handle 1796 * @param addr_type 1797 * @param address 1798 * @param status 1799 * @param reason if status == ERROR_CODE_AUTHENTICATION_FAILURE 1800 */ 1801 #define SM_EVENT_PAIRING_COMPLETE 0xD5u 1802 1803 1804 /** 1805 * @brief Proactive Authentication for bonded devices started. 1806 * @format H1B 1807 * @param handle 1808 * @param addr_type 1809 * @param address 1810 */ 1811 #define SM_EVENT_REENCRYPTION_STARTED 0xD6u 1812 1813 /** 1814 * @brief Proactive Authentication for bonded devices complete. Possible status values: 1815 * ERROR_CODE_SUCCESS -> connection secure 1816 * ERROR_CODE_CONNECTION_TIMEOUT -> timeout 1817 * ERROR_CODE_PIN_OR_KEY_MISSING -> remote did not provide (as Peripheral) or use LTK (as Central) 1818 * @format H1B1 1819 * @param handle 1820 * @param addr_type 1821 * @param address 1822 * @param status 1823 */ 1824 #define SM_EVENT_REENCRYPTION_COMPLETE 0xD7u 1825 1826 // GAP 1827 1828 /** 1829 * @format H1 1830 * @param handle 1831 * @param security_level 1832 */ 1833 #define GAP_EVENT_SECURITY_LEVEL 0xD8u 1834 1835 /** 1836 * @format 1B 1837 * @param status 1838 * @param address 1839 */ 1840 #define GAP_EVENT_DEDICATED_BONDING_COMPLETED 0xD9u 1841 1842 /** 1843 * @format 11B1JV 1844 * @param advertising_event_type 1845 * @param address_type 1846 * @param address 1847 * @param rssi 1848 * @param data_length 1849 * @param data 1850 */ 1851 #define GAP_EVENT_ADVERTISING_REPORT 0xDAu 1852 1853 /** 1854 * @format 21B1111121BJV 1855 * @param advertising_event_type 1856 * @param address_type 1857 * @param address 1858 * @param primary_phy 1859 * @param secondary_phy 1860 * @param advertising_sid 1861 * @param tx_power 1862 * @param rssi 1863 * @param periodic_advertising_interval 1864 * @param direct_address_type 1865 * @param direct_address 1866 * @param data_length 1867 * @param data 1868 */ 1869 #define GAP_EVENT_EXTENDED_ADVERTISING_REPORT 0xDBu 1870 1871 /** 1872 * @format B13211122221JV 1873 * @param bd_addr 1874 * @param page_scan_repetition_mode 1875 * @param class_of_device 1876 * @param clock_offset 1877 * @param rssi_available 1878 * @param rssi 1879 * @param device_id_available 1880 * @param device_id_vendor_id_source 1881 * @param device_id_vendor_id 1882 * @param device_id_product_id 1883 * @param device_id_version 1884 * @param name_available 1885 * @param name_len 1886 * @param name 1887 */ 1888 #define GAP_EVENT_INQUIRY_RESULT 0xDCu 1889 1890 /** 1891 * @format 1 1892 * @param status 1893 */ 1894 #define GAP_EVENT_INQUIRY_COMPLETE 0xDDu 1895 1896 /** 1897 * @format H1 1898 * @param con_handle 1899 * @param rssi (signed integer -127..127) 1900 * @note Classic: rssi is in dB relative to Golden Receive Power Range 1901 * @note LE: rssi is absolute dBm 1902 */ 1903 #define GAP_EVENT_RSSI_MEASUREMENT 0xDEu 1904 1905 /** 1906 * @format 1KKKK 1907 * @param oob_data_present 0 = none, 1 = p_192, 2 = p_256, 3 = both 1908 * @param c_192 Simple Pairing Hash C derived from P-192 public key 1909 * @param r_192 Simple Pairing Randomizer derived from P-192 public key 1910 * @param c_256 Simple Pairing Hash C derived from P-256 public key 1911 * @param r_256 Simple Pairing Randomizer derived from P-256 public key 1912 */ 1913 #define GAP_EVENT_LOCAL_OOB_DATA 0xDFu 1914 1915 1916 /** 1917 * @format HB11 1918 * @param con_handle 1919 * @param bd_addr 1920 * @param ssp 1921 * @param initiator 1922 */ 1923 #define GAP_EVENT_PAIRING_STARTED 0xE0u 1924 1925 /** 1926 * @format HB1 1927 * @param con_handle 1928 * @param bd_addr 1929 * @param status 1930 */ 1931 #define GAP_EVENT_PAIRING_COMPLETE 0xE1u 1932 1933 // Meta Events, see below for sub events 1934 #define HCI_EVENT_META_GAP 0xE7u 1935 #define HCI_EVENT_HSP_META 0xE8u 1936 #define HCI_EVENT_HFP_META 0xE9u 1937 #define HCI_EVENT_ANCS_META 0xEAu 1938 #define HCI_EVENT_AVDTP_META 0xEBu 1939 #define HCI_EVENT_AVRCP_META 0xECu 1940 #define HCI_EVENT_GOEP_META 0xEDu 1941 #define HCI_EVENT_PBAP_META 0xEEu 1942 #define HCI_EVENT_HID_META 0xEFu 1943 #define HCI_EVENT_A2DP_META 0xF0u 1944 #define HCI_EVENT_HIDS_META 0xF1u 1945 #define HCI_EVENT_GATTSERVICE_META 0xF2u 1946 #define HCI_EVENT_BIP_META 0xF3u 1947 #define HCI_EVENT_MAP_META 0xF4u 1948 #define HCI_EVENT_MESH_META 0xF5u 1949 #define HCI_EVENT_LEAUDIO_META 0xF6u 1950 1951 // Potential other meta groups 1952 // #define HCI_EVENT_BNEP_META 0xxx 1953 // #define HCI_EVENT_GAP_META 0xxx 1954 // #define HCI_EVENT_GATT_META 0xxx 1955 // #define HCI_EVENT_PAN_META 0xxx 1956 // #define HCI_EVENT_SDP_META 0xxx 1957 // #define HCI_EVENT_SM_META 0xxx 1958 1959 /** GAP Subevent */ 1960 1961 1962 /** 1963 * @format 1111 1964 * @param subevent_code 1965 * @param advertisement_handle 1966 * @param status 1967 * @param selected_tx_power 1968 */ 1969 #define GAP_SUBEVENT_ADVERTISING_SET_INSTALLED 0x00u 1970 1971 /** 1972 * @format 11 1973 * @param subevent_code 1974 * @param advertisement_handle 1975 */ 1976 #define GAP_SUBEVENT_ADVERTISING_SET_REMOVED 0x01u 1977 1978 /** 1979 * @format 1111C 1980 * @param subevent_code 1981 * @param status 1982 * @param big_handle 1983 * @param num_bis 1984 * @param bis_con_handles 1985 */ 1986 #define GAP_SUBEVENT_BIG_CREATED 0x02u 1987 1988 /** 1989 * @format 11 1990 * @param subevent_code 1991 * @param big_handle 1992 */ 1993 #define GAP_SUBEVENT_BIG_TERMINATED 0x03u 1994 1995 /** 1996 * @format 1111C 1997 * @param subevent_code 1998 * @param status 1999 * @param big_handle 2000 * @param num_bis 2001 * @param bis_con_handles 2002 */ 2003 #define GAP_SUBEVENT_BIG_SYNC_CREATED 0x04u 2004 2005 /** 2006 * @format 11 2007 * @param subevent_code 2008 * @param big_handle 2009 */ 2010 #define GAP_SUBEVENT_BIG_SYNC_STOPPED 0x05u 2011 2012 /** 2013 * @format 1111C 2014 * @param subevent_code 2015 * @param status 2016 * @param cig_id 2017 * @param num_cis 2018 * @param cis_con_handles 2019 */ 2020 #define GAP_SUBEVENT_CIG_CREATED 0x06u 2021 2022 /** 2023 * @format 1111HH211111 2024 * @param subevent_code 2025 * @param status 2026 * @param cig_id 2027 * @param cis_id 2028 * @param cis_con_handle 2029 * @param acl_con_handle 2030 * @param iso_interval_1250us 2031 * @param number_of_subevents 2032 * @param burst_number_c_to_p 2033 * @param burst_number_p_to_c 2034 * @param flush_timeout_c_to_p 2035 * @param flush_timeout_p_to_c 2036 */ 2037 2038 #define GAP_SUBEVENT_CIS_CREATED 0x07u 2039 2040 /** 2041 * Generic version of 2042 * - HCI_SUBEVENT_LE_CONNECTION_COMPLETE 2043 * - HCI_SUBEVENT_LE_ENHANCED_CONNECTION_COMPLETE_V1 2044 * - HCI_SUBEVENT_LE_ENHANCED_CONNECTION_COMPLETE_V2 2045 * @format 11H11BBB22211H 2046 * @param subevent_code 2047 * @param status 2048 * @param connection_handle 2049 * @param role 2050 * @param peer_address_type 2051 * @param peer_address 2052 * @param local_resolvable_private_address - 00..00 if not valid 2053 * @param peer_resolvable_private_address - 00..00 if not valid 2054 * @param conn_interval 2055 * @param conn_latency 2056 * @param supervision_timeout 2057 * @param master_clock_accuracy 2058 * @param advertising_handle - 0xff if not set 2059 * @param sync_handle - 0xffff if not set 2060 */ 2061 #define GAP_SUBEVENT_LE_CONNECTION_COMPLETE 0x08u 2062 2063 /** HSP Subevent */ 2064 2065 /** 2066 * @format 1H1B 2067 * @param subevent_code 2068 * @param acl_handle 2069 * @param status 0 == OK 2070 * @param bd_addr 2071 */ 2072 #define HSP_SUBEVENT_RFCOMM_CONNECTION_COMPLETE 0x01u 2073 2074 /** 2075 * @format 1H 2076 * @param subevent_code 2077 * @param acl_handle 2078 */ 2079 #define HSP_SUBEVENT_RFCOMM_DISCONNECTION_COMPLETE 0x02u 2080 2081 /** 2082 * @format 1H1H 2083 * @param subevent_code 2084 * @param acl_handle 2085 * @param status 0 == OK 2086 * @param sco_handle 2087 */ 2088 #define HSP_SUBEVENT_AUDIO_CONNECTION_COMPLETE 0x03u 2089 2090 /** 2091 * @format 1HH 2092 * @param subevent_code 2093 * @param acl_handle 2094 * @param sco_handle 2095 */ 2096 #define HSP_SUBEVENT_AUDIO_DISCONNECTION_COMPLETE 0x04u 2097 2098 /** 2099 * @format 1H 2100 * @param subevent_code 2101 * @param acl_handle 2102 */ 2103 #define HSP_SUBEVENT_RING 0x05u 2104 2105 /** 2106 * @format 1H1 2107 * @param subevent_code 2108 * @param acl_handle 2109 * @param gain Valid range: [0,15] 2110 */ 2111 #define HSP_SUBEVENT_MICROPHONE_GAIN_CHANGED 0x06u 2112 2113 /** 2114 * @format 1H1 2115 * @param subevent_code 2116 * @param acl_handle 2117 * @param gain Valid range: [0,15] 2118 */ 2119 #define HSP_SUBEVENT_SPEAKER_GAIN_CHANGED 0x07u 2120 2121 /** 2122 * @format 1HJV 2123 * @param subevent_code 2124 * @param acl_handle 2125 * @param value_length 2126 * @param value 2127 */ 2128 #define HSP_SUBEVENT_HS_COMMAND 0x08u 2129 2130 /** 2131 * @format 1HJV 2132 * @param subevent_code 2133 * @param acl_handle 2134 * @param value_length 2135 * @param value 2136 */ 2137 #define HSP_SUBEVENT_AG_INDICATION 0x09u 2138 2139 /** 2140 * @format 1H 2141 * @param subevent_code 2142 * @param acl_handle 2143 */ 2144 #define HSP_SUBEVENT_BUTTON_PRESSED 0x0au 2145 2146 /** HFP Subevent */ 2147 2148 /** 2149 * @format 1H1B 2150 * @param subevent_code 2151 * @param acl_handle 2152 * @param status 0 == OK 2153 * @param bd_addr 2154 */ 2155 #define HFP_SUBEVENT_SERVICE_LEVEL_CONNECTION_ESTABLISHED 0x01u 2156 2157 /** 2158 * @format 1H 2159 * @param subevent_code 2160 * @param acl_handle 2161 */ 2162 #define HFP_SUBEVENT_SERVICE_LEVEL_CONNECTION_RELEASED 0x02u 2163 2164 /** 2165 * @format 1H1HB1222 2166 * @param subevent_code 2167 * @param acl_handle 2168 * @param status 0 == OK 2169 * @param sco_handle 2170 * @param bd_addr 2171 * @param negotiated_codec 2172 * @param sco_packet_types see SCO_PACKET_TYPES_* in btstack_defines.h 2173 * @param rx_packet_length 2174 * @param tx_packet_length 2175 */ 2176 #define HFP_SUBEVENT_AUDIO_CONNECTION_ESTABLISHED 0x03u 2177 2178 /** 2179 * @format 1HH 2180 * @param subevent_code 2181 * @param acl_handle 2182 * @param sco_handle 2183 */ 2184 #define HFP_SUBEVENT_AUDIO_CONNECTION_RELEASED 0x04u 2185 2186 /** 2187 * @format 1H1 2188 * @param subevent_code 2189 * @param acl_handle 2190 * @param status 0 == OK 2191 */ 2192 #define HFP_SUBEVENT_COMPLETE 0x05u 2193 2194 /** 2195 * @format 1H111T 2196 * @param subevent_code 2197 * @param acl_handle 2198 * @param indicator_index 2199 * @param indicator_min_range 2200 * @param indicator_max_range 2201 * @param indicator_name 2202 */ 2203 #define HFP_SUBEVENT_AG_INDICATOR_MAPPING 0x06u 2204 2205 /** 2206 * @format 1H1111111T 2207 * @param subevent_code 2208 * @param acl_handle 2209 * @param indicator_index 2210 * @param indicator_status 2211 * @param indicator_min_range 2212 * @param indicator_max_range 2213 * @param indicator_mandatory 2214 * @param indicator_enabled 2215 * @param indicator_status_changed 2216 * @param indicator_name 2217 */ 2218 #define HFP_SUBEVENT_AG_INDICATOR_STATUS_CHANGED 0x07u 2219 2220 /** 2221 * @format 1H11T 2222 * @param subevent_code 2223 * @param acl_handle 2224 * @param network_operator_mode 2225 * @param network_operator_format 2226 * @param network_operator_name 2227 */ 2228 #define HFP_SUBEVENT_NETWORK_OPERATOR_CHANGED 0x08u 2229 2230 /** 2231 * @format 1H1 2232 * @param subevent_code 2233 * @param acl_handle 2234 * @param error 2235 */ 2236 #define HFP_SUBEVENT_EXTENDED_AUDIO_GATEWAY_ERROR 0x09u 2237 2238 /** 2239 * @format 1H 2240 * @param subevent_code 2241 * @param acl_handle 2242 */ 2243 #define HFP_SUBEVENT_START_RINGING 0x0Au 2244 2245 /** 2246 * @format 1H 2247 * @param subevent_code 2248 * @param acl_handle 2249 */ 2250 #define HFP_SUBEVENT_RING 0x0Bu 2251 2252 /** 2253 * @format 1H 2254 * @param subevent_code 2255 * @param acl_handle 2256 */ 2257 #define HFP_SUBEVENT_STOP_RINGING 0x0Cu 2258 2259 /** 2260 * @format 1HT 2261 * @param subevent_code 2262 * @param acl_handle 2263 * @param number 2264 */ 2265 #define HFP_SUBEVENT_PLACE_CALL_WITH_NUMBER 0x0Du 2266 2267 /** 2268 * @format 1H 2269 * @param subevent_code 2270 * @param acl_handle 2271 */ 2272 #define HFP_SUBEVENT_ATTACH_NUMBER_TO_VOICE_TAG 0x0Eu 2273 2274 /** 2275 * @format 1HT 2276 * @param subevent_code 2277 * @param acl_handle 2278 * @param number 2279 */ 2280 #define HFP_SUBEVENT_NUMBER_FOR_VOICE_TAG 0x0Fu 2281 2282 /** 2283 * @format 1HT 2284 * @param subevent_code 2285 * @param acl_handle 2286 * @param dtmf code 2287 */ 2288 #define HFP_SUBEVENT_TRANSMIT_DTMF_CODES 0x10u 2289 2290 /** 2291 * @format 1H 2292 * @param subevent_code 2293 * @param acl_handle 2294 */ 2295 #define HFP_SUBEVENT_CALL_ANSWERED 0x11u 2296 2297 /** 2298 * @format 1H 2299 * @param subevent_code 2300 * @param acl_handle 2301 */ 2302 #define HFP_SUBEVENT_CALL_TERMINATED 0x12u 2303 2304 /** 2305 * @format 1H 2306 * @param subevent_code 2307 * @param acl_handle 2308 */ 2309 #define HFP_SUBEVENT_CONFERENCE_CALL 0x13u 2310 2311 2312 /** 2313 * @format 1H1 2314 * @param subevent_code 2315 * @param acl_handle 2316 * @param gain 2317 */ 2318 #define HFP_SUBEVENT_SPEAKER_VOLUME 0x14u 2319 2320 /** 2321 * @format 1H1 2322 * @param subevent_code 2323 * @param acl_handle 2324 * @param gain 2325 */ 2326 #define HFP_SUBEVENT_MICROPHONE_VOLUME 0x15u 2327 2328 /** 2329 * @format 1H1JVJV 2330 * @param subevent_code 2331 * @param acl_handle 2332 * @param type 2333 * @param number_length 2334 * @param number 2335 * @param alpha_length 2336 * @param alpha 2337 */ 2338 #define HFP_SUBEVENT_CALL_WAITING_NOTIFICATION 0x16u 2339 2340 /** 2341 * @format 1H1JVJV 2342 * @param subevent_code 2343 * @param acl_handle 2344 * @param type 2345 * @param number_length 2346 * @param number 2347 * @param alpha_length 2348 * @param alpha 2349 */ 2350 #define HFP_SUBEVENT_CALLING_LINE_IDENTIFICATION_NOTIFICATION 0x17u 2351 2352 /** 2353 * @format 1H111111T 2354 * @param subevent_code 2355 * @param acl_handle 2356 * @param clcc_idx 2357 * @param clcc_dir 2358 * @param clcc_status 2359 * @param clcc_mode 2360 * @param clcc_mpty 2361 * @param bnip_type 2362 * @param bnip_number 2363 */ 2364 #define HFP_SUBEVENT_ENHANCED_CALL_STATUS 0x18u 2365 2366 /** 2367 * @format 1H11T 2368 * @param subevent_code 2369 * @param acl_handle 2370 * @param status 2371 * @param bnip_type 2372 * @param bnip_number 2373 */ 2374 #define HFP_SUBEVENT_SUBSCRIBER_NUMBER_INFORMATION 0x19u 2375 2376 /** 2377 * @format 1HT 2378 * @param subevent_code 2379 * @param acl_handle 2380 * @param value 2381 */ 2382 #define HFP_SUBEVENT_RESPONSE_AND_HOLD_STATUS 0x1Au 2383 2384 /** 2385 * @format 1HT 2386 * @param subevent_code 2387 * @param acl_handle 2388 * @param command 2389 */ 2390 #define HFP_SUBEVENT_AT_MESSAGE_SENT 0x1Bu 2391 2392 /** 2393 * @format 1HT 2394 * @param subevent_code 2395 * @param acl_handle 2396 * @param command 2397 */ 2398 #define HFP_SUBEVENT_AT_MESSAGE_RECEIVED 0x1Cu 2399 2400 /** 2401 * @format 1H1 2402 * @param subevent_code 2403 * @param acl_handle 2404 * @param status 2405 */ 2406 #define HFP_SUBEVENT_IN_BAND_RING_TONE 0x1Du 2407 2408 /** 2409 * @format 1H11 2410 * @param subevent_code 2411 * @param acl_handle 2412 * @param status 0-success 2413 * @param enhanced 0-legacy, 1-enhanced 2414 */ 2415 #define HFP_SUBEVENT_VOICE_RECOGNITION_ACTIVATED 0x1Eu 2416 2417 /** 2418 * @format 1H1 2419 * @param subevent_code 2420 * @param acl_handle 2421 * @param status 0-success 2422 */ 2423 #define HFP_SUBEVENT_VOICE_RECOGNITION_DEACTIVATED 0x1Fu 2424 2425 /** 2426 * @format 1H1 2427 * @param subevent_code 2428 * @param acl_handle 2429 * @param status 2430 */ 2431 #define HFP_SUBEVENT_ENHANCED_VOICE_RECOGNITION_HF_READY_FOR_AUDIO 0x20u 2432 2433 2434 /** 2435 * @format 1H1 2436 * @param subevent_code 2437 * @param acl_handle 2438 * @param status 2439 */ 2440 #define HFP_SUBEVENT_ENHANCED_VOICE_RECOGNITION_AG_READY_TO_ACCEPT_AUDIO_INPUT 0x21u 2441 2442 /** 2443 * @format 1H1 2444 * @param subevent_code 2445 * @param acl_handle 2446 * @param status 2447 */ 2448 #define HFP_SUBEVENT_ENHANCED_VOICE_RECOGNITION_AG_IS_STARTING_SOUND 0x22u 2449 2450 /** 2451 * @format 1H1 2452 * @param subevent_code 2453 * @param acl_handle 2454 * @param status 2455 */ 2456 #define HFP_SUBEVENT_ENHANCED_VOICE_RECOGNITION_AG_IS_PROCESSING_AUDIO_INPUT 0x23u 2457 2458 /** 2459 * @format 1H1 2460 * @param subevent_code 2461 * @param acl_handle 2462 * @param status 2463 */ 2464 #define HFP_SUBEVENT_ENHANCED_VOICE_RECOGNITION_AG_MESSAGE_SENT 0x24u 2465 2466 2467 /** 2468 * @format 1H211LV 2469 * @param subevent_code 2470 * @param acl_handle 2471 * @param text_id 2472 * @param text_type 2473 * @param text_operation 2474 * @param text_length 2475 * @param text 2476 */ 2477 #define HFP_SUBEVENT_ENHANCED_VOICE_RECOGNITION_AG_MESSAGE 0x25u 2478 2479 /** 2480 * @format 1H1 2481 * @param subevent_code 2482 * @param acl_handle 2483 * @param status 2484 */ 2485 #define HFP_SUBEVENT_ECHO_CANCELING_AND_NOISE_REDUCTION_DEACTIVATE 0x26u 2486 2487 /** 2488 * @format 1H21 2489 * @param subevent_code 2490 * @param acl_handle 2491 * @param uuid 2492 * @param value 2493 */ 2494 #define HFP_SUBEVENT_HF_INDICATOR 0x27u 2495 2496 /** 2497 * @format 1H2T 2498 * @param subevent_code 2499 * @param acl_handle 2500 * @param command_id 2501 * @param command_string 2502 */ 2503 #define HFP_SUBEVENT_CUSTOM_AT_COMMAND 0x28u 2504 2505 /** 2506 * @format 1H1 2507 * @param subevent_code 2508 * @param acl_handle 2509 * @param status 0 == OK 2510 */ 2511 #define HFP_SUBEVENT_CUSTOM_AT_MESSAGE_SENT 0x29u 2512 2513 /** 2514 * @format 1H1 2515 * @param subevent_code 2516 * @param acl_handle 2517 * @param supported 2518 */ 2519 #define HFP_SUBEVENT_APPLE_EXTENSION_SUPPORTED 0x2Au 2520 2521 /** 2522 * @format 1H221JV 2523 * @param subevent_code 2524 * @param acl_handle 2525 * @param vendor_id 2526 * @param product_id 2527 * @param features 2528 * @param version_len 2529 * @param version 2530 */ 2531 #define HFP_SUBEVENT_APPLE_ACCESSORY_INFORMATION 0x2Bu 2532 2533 /** 2534 * @format 1H1 2535 * @param subevent_code 2536 * @param acl_handle 2537 * @param battery_level range:0..9 2538 */ 2539 #define HFP_SUBEVENT_APPLE_BATTERY_LEVEL 0x2Cu 2540 2541 /** 2542 * @format 1H1 2543 * @param subevent_code 2544 * @param acl_handle 2545 * @param docket 0 = undocked, 1 = docked 2546 */ 2547 #define HFP_SUBEVENT_APPLE_DOCKED_STATE 0x2Du 2548 2549 2550 // ANCS Client 2551 2552 /** 2553 * @format 1H 2554 * @param subevent_code 2555 * @param handle 2556 */ 2557 #define ANCS_SUBEVENT_CLIENT_CONNECTED 0xF0u 2558 2559 /** 2560 * @format 1H2T 2561 * @param subevent_code 2562 * @param handle 2563 * @param attribute_id 2564 * @param text 2565 */ 2566 #define ANCS_SUBEVENT_CLIENT_NOTIFICATION 0xF1u 2567 2568 /** 2569 * @format 1H 2570 * @param subevent_code 2571 * @param handle 2572 */ 2573 #define ANCS_SUBEVENT_CLIENT_DISCONNECTED 0xF2u 2574 2575 2576 /** AVDTP Subevent */ 2577 2578 /** 2579 * @format 12111 2580 * @param subevent_code 2581 * @param avdtp_cid 2582 * @param local_seid 2583 * @param is_initiator 2584 * @param signal_identifier 2585 */ 2586 #define AVDTP_SUBEVENT_SIGNALING_ACCEPT 0x01u 2587 2588 /** 2589 * @format 12111 2590 * @param subevent_code 2591 * @param avdtp_cid 2592 * @param local_seid 2593 * @param is_initiator 2594 * @param signal_identifier 2595 */ 2596 #define AVDTP_SUBEVENT_SIGNALING_REJECT 0x02u 2597 2598 /** 2599 * @format 12111 2600 * @param subevent_code 2601 * @param avdtp_cid 2602 * @param local_seid 2603 * @param is_initiator 2604 * @param signal_identifier 2605 */ 2606 #define AVDTP_SUBEVENT_SIGNALING_GENERAL_REJECT 0x03u 2607 2608 /** 2609 * @format 12B21 2610 * @param subevent_code 2611 * @param avdtp_cid 2612 * @param bd_addr 2613 * @param con_handle 2614 * @param status 0 == OK 2615 */ 2616 #define AVDTP_SUBEVENT_SIGNALING_CONNECTION_ESTABLISHED 0x04u 2617 2618 /** 2619 * @format 12 2620 * @param subevent_code 2621 * @param avdtp_cid 2622 */ 2623 #define AVDTP_SUBEVENT_SIGNALING_CONNECTION_RELEASED 0x05u 2624 2625 /** 2626 * @format 121111 2627 * @param subevent_code 2628 * @param avdtp_cid 2629 * @param remote_seid 0x01u – 0x3Eu 2630 * @param in_use 0-not in use, 1-in use 2631 * @param media_type 0-audio, 1-video, 2-multimedia 2632 * @param sep_type 0-source, 1-sink 2633 */ 2634 #define AVDTP_SUBEVENT_SIGNALING_SEP_FOUND 0x06u 2635 2636 /** 2637 * @format 12111111111 2638 * @param subevent_code 2639 * @param avdtp_cid 2640 * @param remote_seid 2641 * @param media_type 2642 * @param sampling_frequency_bitmap 2643 * @param channel_mode_bitmap 2644 * @param block_length_bitmap 2645 * @param subbands_bitmap 2646 * @param allocation_method_bitmap 2647 * @param min_bitpool_value 2648 * @param max_bitpool_value 2649 */ 2650 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CAPABILITY 0x07u 2651 2652 /** 2653 * @format 12111111112 2654 * @param subevent_code 2655 * @param avdtp_cid 2656 * @param remote_seid 2657 * @param media_type 2658 * @param layer_bitmap 2659 * @param crc 2660 * @param channel_mode_bitmap 2661 * @param media_payload_format 2662 * @param sampling_frequency_bitmap 2663 * @param vbr 2664 * @param bit_rate_index_bitmap 2665 */ 2666 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AUDIO_CAPABILITY 0x08u 2667 2668 /** 2669 * @format 121112131 2670 * @param subevent_code 2671 * @param avdtp_cid 2672 * @param remote_seid 2673 * @param media_type 2674 * @param object_type_bitmap 2675 * @param sampling_frequency_bitmap 2676 * @param channels_bitmap 2677 * @param bit_rate 2678 * @param vbr 2679 */ 2680 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AAC_CAPABILITY 0x09u 2681 2682 /** 2683 * @format 1211111132 2684 * @param subevent_code 2685 * @param avdtp_cid 2686 * @param remote_seid 2687 * @param media_type 2688 * @param version 2689 * @param channel_mode_bitmap 2690 * @param sampling_frequency_bitmap 2691 * @param vbr 2692 * @param bit_rate_index_bitmap 2693 * @param maximum_sul 2694 */ 2695 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_ATRAC_CAPABILITY 0x0Au 2696 2697 /** 2698 * @format 12112LV 2699 * @param subevent_code 2700 * @param avdtp_cid 2701 * @param remote_seid 2702 * @param media_type 2703 * @param media_codec_type 2704 * @param media_codec_information_len 2705 * @param media_codec_information 2706 */ 2707 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CAPABILITY 0x0Bu 2708 2709 2710 /** 2711 * @format 121 2712 * @param subevent_code 2713 * @param avdtp_cid 2714 * @param remote_seid 2715 */ 2716 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_TRANSPORT_CAPABILITY 0x0Cu 2717 2718 2719 /** 2720 * @format 121 2721 * @param subevent_code 2722 * @param avdtp_cid 2723 * @param remote_seid 2724 */ 2725 #define AVDTP_SUBEVENT_SIGNALING_REPORTING_CAPABILITY 0x0Du 2726 2727 2728 /** 2729 * @format 121111 2730 * @param subevent_code 2731 * @param avdtp_cid 2732 * @param remote_seid 2733 * @param recovery_type 2734 * @param maximum_recovery_window_size 2735 * @param maximum_number_media_packets 2736 */ 2737 #define AVDTP_SUBEVENT_SIGNALING_RECOVERY_CAPABILITY 0x0Eu 2738 2739 2740 /** 2741 * @format 1212LV 2742 * @param subevent_code 2743 * @param avdtp_cid 2744 * @param remote_seid 2745 * @param cp_type 2746 * @param cp_type_value_len 2747 * @param cp_type_value 2748 */ 2749 #define AVDTP_SUBEVENT_SIGNALING_CONTENT_PROTECTION_CAPABILITY 0x0Fu 2750 2751 2752 /** 2753 * @format 12111111111 2754 * @param subevent_code 2755 * @param avdtp_cid 2756 * @param remote_seid 2757 * @param fragmentation 2758 * @param transport_identifiers_num 2759 * @param transport_session_identifier_1 2760 * @param transport_session_identifier_2 2761 * @param transport_session_identifier_3 2762 * @param tcid_1 2763 * @param tcid_2 2764 * @param tcid_3 2765 */ 2766 #define AVDTP_SUBEVENT_SIGNALING_MULTIPLEXING_CAPABILITY 0x10u 2767 2768 2769 /** 2770 * @format 121 2771 * @param subevent_code 2772 * @param avdtp_cid 2773 * @param remote_seid 2774 */ 2775 #define AVDTP_SUBEVENT_SIGNALING_DELAY_REPORTING_CAPABILITY 0x11u 2776 2777 2778 /** 2779 * @format 121111 2780 * @param subevent_code 2781 * @param avdtp_cid 2782 * @param remote_seid 2783 * @param back_ch 2784 * @param media 2785 * @param recovery 2786 */ 2787 #define AVDTP_SUBEVENT_SIGNALING_HEADER_COMPRESSION_CAPABILITY 0x12u 2788 2789 /** 2790 * @format 121 2791 * @param subevent_code 2792 * @param avdtp_cid 2793 * @param remote_seid 2794 */ 2795 #define AVDTP_SUBEVENT_SIGNALING_CAPABILITIES_DONE 0x13u 2796 2797 2798 /** 2799 * @format 12111121111111 2800 * @param subevent_code 2801 * @param avdtp_cid 2802 * @param local_seid 2803 * @param remote_seid 2804 * @param reconfigure 2805 * @param media_type 2806 * @param sampling_frequency 2807 * @param channel_mode 2808 * @param num_channels 2809 * @param block_length 2810 * @param subbands 2811 * @param allocation_method 2812 * @param min_bitpool_value 2813 * @param max_bitpool_value 2814 */ 2815 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION 0x14u 2816 2817 /** 2818 * @format 12111111111211 2819 * @param subevent_code 2820 * @param avdtp_cid 2821 * @param local_seid 2822 * @param remote_seid 2823 * @param reconfigure 2824 * @param media_type 2825 * @param layer 2826 * @param crc 2827 * @param channel_mode 2828 * @param num_channels 2829 * @param media_payload_format 2830 * @param sampling_frequency 2831 * @param vbr 2832 * @param bit_rate_index 2833 */ 2834 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AUDIO_CONFIGURATION 0x15u 2835 2836 /** 2837 * @format 12111113131 2838 * @param subevent_code 2839 * @param avdtp_cid 2840 * @param local_seid 2841 * @param remote_seid 2842 * @param reconfigure 2843 * @param media_type 2844 * @param object_type 2845 * @param sampling_frequency 2846 * @param num_channels 2847 * @param bit_rate 2848 * @param vbr 2849 */ 2850 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AAC_CONFIGURATION 0x16u 2851 2852 /** 2853 * @format 1211111112112 2854 * @param subevent_code 2855 * @param avdtp_cid 2856 * @param local_seid 2857 * @param remote_seid 2858 * @param reconfigure 2859 * @param media_type 2860 * @param version 2861 * @param channel_mode 2862 * @param num_channels 2863 * @param sampling_frequency 2864 * @param vbr 2865 * @param bit_rate_index 2866 * @param maximum_sul 2867 */ 2868 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_ATRAC_CONFIGURATION 0x17u 2869 2870 /** 2871 * @format 1211112LV 2872 * @param subevent_code 2873 * @param avdtp_cid 2874 * @param local_seid 2875 * @param remote_seid 2876 * @param reconfigure 2877 * @param media_type 2878 * @param media_codec_type 2879 * @param media_codec_information_len 2880 * @param media_codec_information 2881 */ 2882 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION 0x18u 2883 2884 /** 2885 * @format 12B111 2886 * @param subevent_code 2887 * @param avdtp_cid 2888 * @param bd_addr 2889 * @param local_seid 2890 * @param remote_seid 2891 * @param status 0 == OK 2892 */ 2893 #define AVDTP_SUBEVENT_STREAMING_CONNECTION_ESTABLISHED 0x19u 2894 2895 /** 2896 * @format 121 2897 * @param subevent_code 2898 * @param avdtp_cid 2899 * @param local_seid 2900 */ 2901 #define AVDTP_SUBEVENT_STREAMING_CONNECTION_RELEASED 0x1Au 2902 2903 /** 2904 * @format 1212 2905 * @param subevent_code 2906 * @param avdtp_cid 2907 * @param local_seid 2908 * @param sequence_number 2909 */ 2910 #define AVDTP_SUBEVENT_STREAMING_CAN_SEND_MEDIA_PACKET_NOW 0x1Bu 2911 2912 2913 /** 2914 * @format 12 2915 * @param subevent_code 2916 * @param avdtp_cid 2917 */ 2918 #define AVDTP_SUBEVENT_SIGNALING_SEP_DICOVERY_DONE 0x1Cu 2919 2920 /** 2921 * @format 1212 2922 * @param subevent_code 2923 * @param avdtp_cid 2924 * @param local_seid 2925 * @param delay_100us 2926 */ 2927 #define AVDTP_SUBEVENT_SIGNALING_DELAY_REPORT 0x1Du 2928 2929 2930 /** A2DP Subevent */ 2931 /* Stream goes through following states: 2932 * - OPEN - indicated with A2DP_SUBEVENT_STREAM_ESTABLISHED event 2933 * - START - indicated with A2DP_SUBEVENT_STREAM_STARTED event 2934 * - SUSPEND - indicated with A2DP_SUBEVENT_STREAM_SUSPENDED event 2935 * - ABORT/STOP - indicated with A2DP_SUBEVENT_STREAM_RELEASED event 2936 2937 OPEN state will be followed by ABORT/STOP. Stream is ready but media transfer is not started. 2938 START can come only after the stream is OPENED, and indicates that media transfer is started. 2939 SUSPEND is optional, it pauses the stream. 2940 */ 2941 2942 /** 2943 * @format 121 Sent only by A2DP source. 2944 * @param subevent_code 2945 * @param a2dp_cid 2946 * @param local_seid 2947 */ 2948 #define A2DP_SUBEVENT_STREAMING_CAN_SEND_MEDIA_PACKET_NOW 0x01u 2949 2950 /** 2951 * @format 12111121111111 2952 * @param subevent_code 2953 * @param a2dp_cid 2954 * @param local_seid 2955 * @param remote_seid 2956 * @param reconfigure 2957 * @param media_type 2958 * @param sampling_frequency 2959 * @param channel_mode 2960 * @param num_channels 2961 * @param block_length 2962 * @param subbands 2963 * @param allocation_method 2964 * @param min_bitpool_value 2965 * @param max_bitpool_value 2966 */ 2967 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION 0x02u 2968 2969 /** 2970 * @format 12111111111211 2971 * @param subevent_code 2972 * @param a2dp_cid 2973 * @param local_seid 2974 * @param remote_seid 2975 * @param reconfigure 2976 * @param media_type 2977 * @param layer 2978 * @param crc 2979 * @param channel_mode 2980 * @param num_channels 2981 * @param media_payload_format 2982 * @param sampling_frequency 2983 * @param vbr 2984 * @param bit_rate_index 2985 */ 2986 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AUDIO_CONFIGURATION 0x03u 2987 2988 /** 2989 * @format 12111113131 2990 * @param subevent_code 2991 * @param a2dp_cid 2992 * @param local_seid 2993 * @param remote_seid 2994 * @param reconfigure 2995 * @param media_type 2996 * @param object_type 2997 * @param sampling_frequency 2998 * @param num_channels 2999 * @param bit_rate 3000 * @param vbr 3001 */ 3002 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AAC_CONFIGURATION 0x04u 3003 3004 /** 3005 * @format 1211111112112 3006 * @param subevent_code 3007 * @param a2dp_cid 3008 * @param local_seid 3009 * @param remote_seid 3010 * @param reconfigure 3011 * @param media_type 3012 * @param version 3013 * @param channel_mode 3014 * @param num_channels 3015 * @param sampling_frequency 3016 * @param vbr 3017 * @param bit_rate_index 3018 * @param maximum_sul 3019 */ 3020 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_ATRAC_CONFIGURATION 0x05u 3021 3022 /** 3023 * @format 1211112LV 3024 * @param subevent_code 3025 * @param a2dp_cid 3026 * @param local_seid 3027 * @param remote_seid 3028 * @param reconfigure 3029 * @param media_type 3030 * @param media_codec_type 3031 * @param media_codec_information_len 3032 * @param media_codec_information 3033 */ 3034 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION 0x06u 3035 3036 /** 3037 * @format 12B111 Stream is opened but not started. 3038 * @param subevent_code 3039 * @param a2dp_cid 3040 * @param bd_addr 3041 * @param local_seid 3042 * @param remote_seid 3043 * @param status 3044 */ 3045 #define A2DP_SUBEVENT_STREAM_ESTABLISHED 0x07u 3046 3047 /** 3048 * @format 121 If ENABLE_AVDTP_ACCEPTOR_EXPLICIT_START_STREAM_CONFIRMATION, user must explicitly accept stream start. 3049 * @param subevent_code 3050 * @param a2dp_cid 3051 * @param local_seid 3052 */ 3053 #define A2DP_SUBEVENT_START_STREAM_REQUESTED 0x08u 3054 3055 /** 3056 * @format 121 Indicates that media transfer is started. 3057 * @param subevent_code 3058 * @param a2dp_cid 3059 * @param local_seid 3060 */ 3061 #define A2DP_SUBEVENT_STREAM_STARTED 0x09u 3062 3063 /** 3064 * @format 121 Stream is paused. 3065 * @param subevent_code 3066 * @param a2dp_cid 3067 * @param local_seid 3068 */ 3069 #define A2DP_SUBEVENT_STREAM_SUSPENDED 0x0Au 3070 3071 /** 3072 * @format 121 Stream is stopped or aborted. 3073 * @param subevent_code 3074 * @param a2dp_cid 3075 * @param local_seid 3076 */ 3077 #define A2DP_SUBEVENT_STREAM_STOPPED 0x0Bu 3078 3079 /** 3080 * @format 121 Stream is released. 3081 * @param subevent_code 3082 * @param a2dp_cid 3083 * @param local_seid 3084 */ 3085 #define A2DP_SUBEVENT_STREAM_RELEASED 0x0Cu 3086 3087 /** 3088 * @format 1211 3089 * @param subevent_code 3090 * @param a2dp_cid 3091 * @param local_seid 3092 * @param signal_identifier 3093 */ 3094 #define A2DP_SUBEVENT_COMMAND_ACCEPTED 0x0Du 3095 3096 /** 3097 * @format 12111 3098 * @param subevent_code 3099 * @param a2dp_cid 3100 * @param local_seid 3101 * @param is_initiator 3102 * @param signal_identifier 3103 */ 3104 #define A2DP_SUBEVENT_COMMAND_REJECTED 0x0Eu 3105 3106 /** 3107 * @format 12B21 3108 * @param subevent_code 3109 * @param a2dp_cid 3110 * @param bd_addr 3111 * @param con_handle 3112 * @param status 0 == OK 3113 */ 3114 #define A2DP_SUBEVENT_SIGNALING_CONNECTION_ESTABLISHED 0x0Fu 3115 3116 /** 3117 * @format 12 Signaling channel is released. 3118 * @param subevent_code 3119 * @param a2dp_cid 3120 */ 3121 #define A2DP_SUBEVENT_SIGNALING_CONNECTION_RELEASED 0x10u 3122 3123 /** 3124 * @format 1211 Stream was reconfigured 3125 * @param subevent_code 3126 * @param a2dp_cid 3127 * @param local_seid 3128 * @param status 3129 */ 3130 #define A2DP_SUBEVENT_STREAM_RECONFIGURED 0x12u 3131 3132 /** 3133 * @format 12111111111 3134 * @param subevent_code 3135 * @param a2dp_cid 3136 * @param remote_seid 3137 * @param media_type 3138 * @param sampling_frequency_bitmap 3139 * @param channel_mode_bitmap 3140 * @param block_length_bitmap 3141 * @param subbands_bitmap 3142 * @param allocation_method_bitmap 3143 * @param min_bitpool_value 3144 * @param max_bitpool_value 3145 */ 3146 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CAPABILITY 0x13u 3147 3148 /** 3149 * @format 12111111112 3150 * @param subevent_code 3151 * @param a2dp_cid 3152 * @param remote_seid 3153 * @param media_type 3154 * @param layer_bitmap 3155 * @param crc 3156 * @param channel_mode_bitmap 3157 * @param media_payload_format 3158 * @param sampling_frequency_bitmap 3159 * @param vbr 3160 * @param bit_rate_index_bitmap 3161 */ 3162 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AUDIO_CAPABILITY 0x14u 3163 3164 /** 3165 * @format 121112131 3166 * @param subevent_code 3167 * @param a2dp_cid 3168 * @param remote_seid 3169 * @param media_type 3170 * @param object_type_bitmap 3171 * @param sampling_frequency_bitmap 3172 * @param channels_bitmap 3173 * @param bit_rate 3174 * @param vbr 3175 */ 3176 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AAC_CAPABILITY 0x15u 3177 3178 /** 3179 * @format 1211111132 3180 * @param subevent_code 3181 * @param a2dp_cid 3182 * @param remote_seid 3183 * @param media_type 3184 * @param version 3185 * @param channel_mode_bitmap 3186 * @param sampling_frequency_bitmap 3187 * @param vbr 3188 * @param bit_rate_index_bitmap 3189 * @param maximum_sul 3190 */ 3191 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_ATRAC_CAPABILITY 0x16u 3192 3193 /** 3194 * @format 12112LV 3195 * @param subevent_code 3196 * @param a2dp_cid 3197 * @param remote_seid 3198 * @param media_type 3199 * @param media_codec_type 3200 * @param media_codec_information_len 3201 * @param media_codec_information 3202 */ 3203 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CAPABILITY 0x17u 3204 3205 /** 3206 * @format 121 3207 * @param subevent_code 3208 * @param a2dp_cid 3209 * @param remote_seid 3210 */ 3211 #define A2DP_SUBEVENT_SIGNALING_DELAY_REPORTING_CAPABILITY 0x18u 3212 3213 3214 /** 3215 * @format 1212 3216 * @param subevent_code 3217 * @param a2dp_cid 3218 * @param local_seid 3219 * @param delay_100us 3220 */ 3221 #define A2DP_SUBEVENT_SIGNALING_DELAY_REPORT 0x19u 3222 3223 /** 3224 * @format 121 3225 * @param subevent_code 3226 * @param a2dp_cid 3227 * @param remote_seid 3228 */ 3229 #define A2DP_SUBEVENT_SIGNALING_CAPABILITIES_DONE 0x1Au 3230 3231 /** 3232 * @format 12 3233 * @param subevent_code 3234 * @param a2dp_cid 3235 */ 3236 #define A2DP_SUBEVENT_SIGNALING_CAPABILITIES_COMPLETE 0x1Bu 3237 3238 3239 /** AVRCP Subevent */ 3240 3241 /** 3242 * @format 1211 3243 * @param subevent_code 3244 * @param avrcp_cid 3245 * @param command_type 3246 * @param play_status 3247 */ 3248 #define AVRCP_SUBEVENT_NOTIFICATION_PLAYBACK_STATUS_CHANGED 0x01u 3249 3250 /** 3251 * @format 121 3252 * @param subevent_code 3253 * @param avrcp_cid 3254 * @param command_type 3255 */ 3256 #define AVRCP_SUBEVENT_NOTIFICATION_TRACK_CHANGED 0x02u 3257 3258 /** 3259 * @format 121 3260 * @param subevent_code 3261 * @param avrcp_cid 3262 * @param command_type 3263 */ 3264 #define AVRCP_SUBEVENT_NOTIFICATION_EVENT_TRACK_REACHED_END 0x03u 3265 3266 /** 3267 * @format 121 3268 * @param subevent_code 3269 * @param avrcp_cid 3270 * @param command_type 3271 */ 3272 #define AVRCP_SUBEVENT_NOTIFICATION_EVENT_TRACK_REACHED_START 0x04u 3273 3274 /** 3275 * @format 1214 3276 * @param subevent_code 3277 * @param avrcp_cid 3278 * @param command_type 3279 * @param playback_position If no track currently selected, then return 0xFFuFFFFFF in the INTERIM response. 3280 */ 3281 #define AVRCP_SUBEVENT_NOTIFICATION_EVENT_PLAYBACK_POS_CHANGED 0x05u 3282 3283 /** 3284 * @format 1211 3285 * @param subevent_code 3286 * @param avrcp_cid 3287 * @param command_type 3288 * @param battery_status see avrcp_battery_status_t 3289 */ 3290 #define AVRCP_SUBEVENT_NOTIFICATION_EVENT_BATT_STATUS_CHANGED 0x06u 3291 3292 /** 3293 * @format 1211 3294 * @param subevent_code 3295 * @param avrcp_cid 3296 * @param command_type 3297 * @param system_status see avrcp_system_status_t 3298 */ 3299 #define AVRCP_SUBEVENT_NOTIFICATION_EVENT_SYSTEM_STATUS_CHANGED 0x07u 3300 3301 3302 // 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 3303 #define AVRCP_SUBEVENT_NOTIFICATION_EVENT_PLAYER_APPLICATION_SETTING_CHANGED 0x08u 3304 3305 /** 3306 * @format 121 3307 * @param subevent_code 3308 * @param avrcp_cid 3309 * @param command_type 3310 */ 3311 #define AVRCP_SUBEVENT_NOTIFICATION_NOW_PLAYING_CONTENT_CHANGED 0x09u 3312 3313 /** 3314 * @format 121 3315 * @param subevent_code 3316 * @param avrcp_cid 3317 * @param command_type 3318 */ 3319 #define AVRCP_SUBEVENT_NOTIFICATION_AVAILABLE_PLAYERS_CHANGED 0x0Au 3320 3321 // AVRCP_SUBEVENT_NOTIFICATION_EVENT_ADDRESSED_PLAYER_CHANGED = 0x0bu, -- The Addressed Player has been changed, see 6.9.2. 3322 3323 /** 3324 * @format 1212 3325 * @param subevent_code 3326 * @param avrcp_cid 3327 * @param command_type 3328 * @param uid_counter of the currently browsed player 3329 */ 3330 #define AVRCP_SUBEVENT_NOTIFICATION_EVENT_UIDS_CHANGED 0x0Cu 3331 3332 /** 3333 * @format 1211 3334 * @param subevent_code 3335 * @param avrcp_cid 3336 * @param command_type 3337 * @param absolute_volume 3338 */ 3339 #define AVRCP_SUBEVENT_NOTIFICATION_VOLUME_CHANGED 0x0Du 3340 3341 3342 /** 3343 * @format 1211 3344 * @param subevent_code 3345 * @param avrcp_cid 3346 * @param command_type 3347 * @param absolute_volume 3348 */ 3349 #define AVRCP_SUBEVENT_SET_ABSOLUTE_VOLUME_RESPONSE 0x10u 3350 3351 /** 3352 * @format 12111 3353 * @param subevent_code 3354 * @param avrcp_cid 3355 * @param status 3356 * @param enabled 1 enabled, 0 disabled 3357 * @param event_id 3358 */ 3359 #define AVRCP_SUBEVENT_NOTIFICATION_STATE 0x11u 3360 3361 /** 3362 * @format 112B2 3363 * @param subevent_code 3364 * @param status 0 == OK 3365 * @param avrcp_cid 3366 * @param bd_addr 3367 * @param con_handle 3368 */ 3369 #define AVRCP_SUBEVENT_CONNECTION_ESTABLISHED 0x12u 3370 3371 /** 3372 * @format 12 3373 * @param subevent_code 3374 * @param avrcp_cid 3375 */ 3376 #define AVRCP_SUBEVENT_CONNECTION_RELEASED 0x13u 3377 3378 /** 3379 * @format 12111 3380 * @param subevent_code 3381 * @param avrcp_cid 3382 * @param command_type 3383 * @param repeat_mode 3384 * @param shuffle_mode 3385 */ 3386 #define AVRCP_SUBEVENT_SHUFFLE_AND_REPEAT_MODE 0x14u 3387 3388 /** 3389 * @format 121441 3390 * @param subevent_code 3391 * @param avrcp_cid 3392 * @param command_type 3393 * @param song_length 3394 * @param song_position 3395 * @param play_status 3396 */ 3397 #define AVRCP_SUBEVENT_PLAY_STATUS 0x15u 3398 3399 /** 3400 * @format 1211 3401 * @param subevent_code 3402 * @param avrcp_cid 3403 * @param command_type 3404 * @param operation_id 3405 */ 3406 #define AVRCP_SUBEVENT_OPERATION_START 0x16u 3407 3408 /** 3409 * @format 1211 3410 * @param subevent_code 3411 * @param avrcp_cid 3412 * @param command_type 3413 * @param operation_id 3414 */ 3415 #define AVRCP_SUBEVENT_OPERATION_COMPLETE 0x17u 3416 3417 /** 3418 * @format 121 3419 * @param subevent_code 3420 * @param avrcp_cid 3421 * @param command_type 3422 */ 3423 #define AVRCP_SUBEVENT_PLAYER_APPLICATION_VALUE_RESPONSE 0x18u 3424 3425 /** 3426 * @format 12 3427 * @param subevent_code 3428 * @param avrcp_cid 3429 */ 3430 #define AVRCP_SUBEVENT_PLAY_STATUS_QUERY 0x19u 3431 3432 /** 3433 * @format 121111 3434 * @param subevent_code 3435 * @param avrcp_cid 3436 * @param operation_id 3437 * @param button_pressed 3438 * @param operands_length 3439 * @param operand 3440 */ 3441 #define AVRCP_SUBEVENT_OPERATION 0x1Au 3442 3443 /** 3444 * @format 1211 3445 * @param subevent_code 3446 * @param avrcp_cid 3447 * @param command_type 3448 * @param track 3449 */ 3450 #define AVRCP_SUBEVENT_NOW_PLAYING_TRACK_INFO 0x1Bu 3451 3452 /** 3453 * @format 1211 3454 * @param subevent_code 3455 * @param avrcp_cid 3456 * @param command_type 3457 * @param total_tracks 3458 */ 3459 #define AVRCP_SUBEVENT_NOW_PLAYING_TOTAL_TRACKS_INFO 0x1Cu 3460 3461 /** 3462 * @format 1214 3463 * @param subevent_code 3464 * @param avrcp_cid 3465 * @param command_type 3466 * @param song_length in ms 3467 */ 3468 #define AVRCP_SUBEVENT_NOW_PLAYING_SONG_LENGTH_MS_INFO 0x1Du 3469 3470 /** 3471 * @format 121JV 3472 * @param subevent_code 3473 * @param avrcp_cid 3474 * @param command_type 3475 * @param value_len 3476 * @param value 3477 */ 3478 #define AVRCP_SUBEVENT_NOW_PLAYING_TITLE_INFO 0x1Eu 3479 3480 /* 3481 * @format 121JV 3482 * @param subevent_code 3483 * @param avrcp_cid 3484 * @param command_type 3485 * @param value_len 3486 * @param value 3487 */ 3488 #define AVRCP_SUBEVENT_NOW_PLAYING_ARTIST_INFO 0x1Fu 3489 3490 /* 3491 * @format 121JV 3492 * @param subevent_code 3493 * @param avrcp_cid 3494 * @param command_type 3495 * @param value_len 3496 * @param value 3497 */ 3498 #define AVRCP_SUBEVENT_NOW_PLAYING_ALBUM_INFO 0x20u 3499 3500 /* 3501 * @format 121JV 3502 * @param subevent_code 3503 * @param avrcp_cid 3504 * @param command_type 3505 * @param value_len 3506 * @param value 3507 */ 3508 #define AVRCP_SUBEVENT_NOW_PLAYING_GENRE_INFO 0x21u 3509 3510 /* 3511 * @format 121JV 3512 * @param subevent_code 3513 * @param avrcp_cid 3514 * @param command_type 3515 * @param value_len 3516 * @param value 3517 */ 3518 #define AVRCP_SUBEVENT_NOW_PLAYING_COVER_ART_INFO 0x22u 3519 3520 /* 3521 * @format 1211 3522 * @param subevent_code 3523 * @param avrcp_cid 3524 * @param command_type 3525 * @param status 3526 */ 3527 #define AVRCP_SUBEVENT_NOW_PLAYING_INFO_DONE 0x23u 3528 3529 /** 3530 * @format 1214 3531 * @param subevent_code 3532 * @param avrcp_cid 3533 * @param command_type 3534 * @param playback_position_ms 3535 */ 3536 #define AVRCP_SUBEVENT_NOTIFICATION_PLAYBACK_POS_CHANGED 0x24u 3537 3538 /* 3539 * @format 12111 3540 * @param subevent_code 3541 * @param avrcp_cid 3542 * @param command_type 3543 * @param status 3544 * @param event_id 3545 */ 3546 #define AVRCP_SUBEVENT_GET_CAPABILITY_EVENT_ID 0x25u 3547 /* 3548 * @format 1211 3549 * @param subevent_code 3550 * @param avrcp_cid 3551 * @param command_type 3552 * @param status 3553 */ 3554 #define AVRCP_SUBEVENT_GET_CAPABILITY_EVENT_ID_DONE 0x26u 3555 3556 /* 3557 * @format 12113 3558 * @param subevent_code 3559 * @param avrcp_cid 3560 * @param command_type 3561 * @param status 3562 * @param company_id 3563 */ 3564 #define AVRCP_SUBEVENT_GET_CAPABILITY_COMPANY_ID 0x27u 3565 /* 3566 * @format 1211 3567 * @param subevent_code 3568 * @param avrcp_cid 3569 * @param command_type 3570 * @param status 3571 */ 3572 #define AVRCP_SUBEVENT_GET_CAPABILITY_COMPANY_ID_DONE 0x28u 3573 3574 /** 3575 * @format 1211LV 3576 * @param subevent_code 3577 * @param avrcp_cid 3578 * @param command_type 3579 * @param pdu_id 3580 * @param params_len 3581 * @param params 3582 */ 3583 #define AVRCP_SUBEVENT_CUSTOM_COMMAND_RESPONSE 0x29u 3584 3585 3586 /** 3587 * @format 1B2 3588 * @param subevent_code 3589 * @param bd_addr 3590 * @param browsing_cid 3591 */ 3592 #define AVRCP_SUBEVENT_INCOMING_BROWSING_CONNECTION 0x30u 3593 3594 /** 3595 * @format 11B2 3596 * @param subevent_code 3597 * @param status 0 == OK 3598 * @param bd_addr 3599 * @param browsing_cid 3600 */ 3601 #define AVRCP_SUBEVENT_BROWSING_CONNECTION_ESTABLISHED 0x31u 3602 3603 /** 3604 * @format 12 3605 * @param subevent_code 3606 * @param browsing_cid 3607 */ 3608 #define AVRCP_SUBEVENT_BROWSING_CONNECTION_RELEASED 0x32u 3609 3610 /** 3611 * @format 12211 3612 * @param subevent_code 3613 * @param browsing_cid 3614 * @param uid_counter 3615 * @param browsing_status 3616 * @param bluetooth_status 3617 */ 3618 #define AVRCP_SUBEVENT_BROWSING_DONE 0x33u 3619 3620 /** 3621 * @format 121444 3622 * @param subevent_code 3623 * @param browsing_cid 3624 * @param scope 3625 * @param start_item 3626 * @param end_item 3627 * @param attr_bitmap 3628 */ 3629 #define AVRCP_SUBEVENT_BROWSING_GET_FOLDER_ITEMS 0x34u 3630 3631 /** 3632 * @format 121 3633 * @param subevent_code 3634 * @param browsing_cid 3635 * @param scope 3636 */ 3637 #define AVRCP_SUBEVENT_BROWSING_GET_TOTAL_NUM_ITEMS 0x35u 3638 3639 /** 3640 * @format 122 3641 * @param subevent_code 3642 * @param browsing_cid 3643 * @param player_id 3644 */ 3645 #define AVRCP_SUBEVENT_BROWSING_SET_BROWSED_PLAYER 0x36u 3646 3647 /** 3648 * @format 11B22 3649 * @param subevent_code 3650 * @param status 0 == OK 3651 * @param bd_addr 3652 * @param avrcp_cid 3653 * @param cover_art_cid 3654 */ 3655 #define AVRCP_SUBEVENT_COVER_ART_CONNECTION_ESTABLISHED 0x37u 3656 3657 /** 3658 * @format 121 3659 * @param subevent_code 3660 * @param cover_art_cid 3661 * @param status 3662 */ 3663 #define AVRCP_SUBEVENT_COVER_ART_OPERATION_COMPLETE 0x38u 3664 3665 /** 3666 * @format 12 3667 * @param subevent_code 3668 * @param cover_art_cid 3669 */ 3670 #define AVRCP_SUBEVENT_COVER_ART_CONNECTION_RELEASED 0x39u 3671 3672 /** 3673 * @format 1221D 3674 * @param subevent_code 3675 * @param browsing_cid 3676 * @param uid_counter 3677 * @param direction 3678 * @param folder_id 3679 */ 3680 #define AVRCP_SUBEVENT_BROWSING_CHANGE_PATH 0x40u 3681 3682 /** 3683 * @format 1221DJV 3684 * @param subevent_code 3685 * @param browsing_cid 3686 * @param uid_counter 3687 * @param scope 3688 * @param item_id 3689 * @param attributes_len 3690 * @param attributes 3691 */ 3692 #define AVRCP_SUBEVENT_BROWSING_GET_ITEM_ATTRIBUTES 0x41u 3693 3694 /** 3695 * @format 1221D 3696 * @param subevent_code 3697 * @param avrcp_cid 3698 * @param uid_counter 3699 * @param scope 3700 * @param item_id 3701 */ 3702 #define AVRCP_SUBEVENT_PLAY_ITEM 0x42u 3703 3704 /** 3705 * @format 12BH 3706 * @param subevent_code 3707 * @param goep_cid 3708 * @param address 3709 * @param handle 3710 */ 3711 #define GOEP_SUBEVENT_INCOMING_CONNECTION 0x01u 3712 3713 /** 3714 * @format 121BH1 3715 * @param subevent_code 3716 * @param goep_cid 3717 * @param status 3718 * @param bd_addr 3719 * @param con_handle 3720 * @param incoming 3721 */ 3722 #define GOEP_SUBEVENT_CONNECTION_OPENED 0x02u 3723 3724 /** 3725 * @format 12 3726 * @param subevent_code 3727 * @param goep_cid 3728 */ 3729 #define GOEP_SUBEVENT_CONNECTION_CLOSED 0x03u 3730 3731 /** 3732 * @format 12 3733 * @param subevent_code 3734 * @param goep_cid 3735 */ 3736 #define GOEP_SUBEVENT_CAN_SEND_NOW 0x04u 3737 3738 /** 3739 * @format 121BH1 3740 * @param subevent_code 3741 * @param pbap_cid 3742 * @param status 3743 * @param bd_addr 3744 * @param con_handle 3745 * @param incoming 3746 */ 3747 #define PBAP_SUBEVENT_CONNECTION_OPENED 0x01u 3748 3749 /** 3750 * @format 12 3751 * @param subevent_code 3752 * @param goep_cid 3753 */ 3754 #define PBAP_SUBEVENT_CONNECTION_CLOSED 0x02u 3755 3756 /** 3757 * @format 121 3758 * @param subevent_code 3759 * @param goep_cid 3760 * @param status 3761 */ 3762 #define PBAP_SUBEVENT_OPERATION_COMPLETED 0x03u 3763 3764 /** 3765 * @format 1212 3766 * @param subevent_code 3767 * @param goep_cid 3768 * @param status 3769 * @param phonebook_size 3770 */ 3771 #define PBAP_SUBEVENT_PHONEBOOK_SIZE 0x04u 3772 3773 /** 3774 * @format 1211 3775 * @param subevent_code 3776 * @param goep_cid 3777 * @param user_id_required 3778 * @param full_access 3779 */ 3780 #define PBAP_SUBEVENT_AUTHENTICATION_REQUEST 0x05u 3781 3782 /** 3783 * @format 12JVJV 3784 * @param subevent_code 3785 * @param goep_cid 3786 * @param name_len 3787 * @param name 3788 * @param handle_len 3789 * @param handle 3790 */ 3791 #define PBAP_SUBEVENT_CARD_RESULT 0x06u 3792 3793 /** 3794 * @format 121 3795 * @param subevent_code 3796 * @param goep_cid 3797 * @param phonebook 3798 */ 3799 #define PBAP_SUBEVENT_RESET_MISSED_CALLS 0x0Au 3800 3801 /** 3802 * @format 12411 3803 * @param subevent_code 3804 * @param goep_cid 3805 * @param vcard_selector 3806 * @param vcard_selector_operator 3807 * @param phonebook 3808 */ 3809 #define PBAP_SUBEVENT_QUERY_PHONEBOOK_SIZE 0x0Bu 3810 3811 /** 3812 * @format 1244122411 3813 * @param subevent_code 3814 * @param goep_cid 3815 * @param continuation - value provided by caller of pbap_server_send_pull_response 3816 * @param property_selector 3817 * @param format 3818 * @param max_list_count 0xffff for unlimited 3819 * @param list_start_offset 3820 * @param vcard_selector 3821 * @param vcard_selector_operator 3822 * @param phonebook 3823 */ 3824 #define PBAP_SUBEVENT_PULL_PHONEBOOK 0x0Cu 3825 3826 /** 3827 * @format 124122411JV1 3828 * @param subevent_code 3829 * @param goep_cid 3830 * @param continuation - value provided by caller of pbap_server_send_pull_response 3831 * @param order 3832 * @param max_list_count 0xffff for unlimited 3833 * @param list_start_offset 3834 * @param vcard_selector 3835 * @param vcard_selector_operator 3836 * @param search_property 3837 * @param search_value_len 3838 * @param search_value 3839 * @param phonebook 3840 */ 3841 #define PBAP_SUBEVENT_PULL_VCARD_LISTING 0x0Du 3842 3843 /** 3844 * @format 124411T 3845 * @param subevent_code 3846 * @param goep_cid 3847 * @param continuation - value provided by caller of pbap_server_send_pull_response 3848 * @param property_selector 3849 * @param format 3850 * @param phonebook 3851 * @param name 3852 */ 3853 #define PBAP_SUBEVENT_PULL_VCARD_ENTRY 0x0Eu 3854 3855 3856 // HID Meta Event Group 3857 3858 /** 3859 * @format 12BH 3860 * @param subevent_code 3861 * @param hid_cid 3862 * @param address 3863 * @param handle 3864 */ 3865 #define HID_SUBEVENT_INCOMING_CONNECTION 0x01u 3866 3867 /** 3868 * @format 121BH1 3869 * @param subevent_code 3870 * @param hid_cid 3871 * @param status 3872 * @param bd_addr 3873 * @param con_handle 3874 * @param incoming 3875 */ 3876 #define HID_SUBEVENT_CONNECTION_OPENED 0x02u 3877 3878 /** 3879 * @format 12 3880 * @param subevent_code 3881 * @param hid_cid 3882 */ 3883 #define HID_SUBEVENT_CONNECTION_CLOSED 0x03u 3884 3885 /** 3886 * @format 12 3887 * @param subevent_code 3888 * @param hid_cid 3889 */ 3890 #define HID_SUBEVENT_CAN_SEND_NOW 0x04u 3891 3892 /** 3893 * @format 12 3894 * @param subevent_code 3895 * @param hid_cid 3896 */ 3897 #define HID_SUBEVENT_SUSPEND 0x05u 3898 3899 /** 3900 * @format 12 3901 * @param subevent_code 3902 * @param hid_cid 3903 */ 3904 #define HID_SUBEVENT_EXIT_SUSPEND 0x06u 3905 3906 /** 3907 * @format 12 3908 * @param subevent_code 3909 * @param hid_cid 3910 */ 3911 #define HID_SUBEVENT_VIRTUAL_CABLE_UNPLUG 0x07u 3912 3913 /** 3914 * @format 121LV 3915 * @param subevent_code 3916 * @param hid_cid 3917 * @param handshake_status 3918 * @param report_len 3919 * @param report 3920 */ 3921 #define HID_SUBEVENT_GET_REPORT_RESPONSE 0x08u 3922 3923 /** 3924 * @format 121 3925 * @param subevent_code 3926 * @param hid_cid 3927 * @param handshake_status 3928 */ 3929 #define HID_SUBEVENT_SET_REPORT_RESPONSE 0x09u 3930 3931 /** 3932 * @format 1211 3933 * @param subevent_code 3934 * @param hid_cid 3935 * @param handshake_status 3936 * @param protocol_mode 3937 */ 3938 #define HID_SUBEVENT_GET_PROTOCOL_RESPONSE 0x0Au 3939 3940 /** 3941 * @format 1211 3942 * @param subevent_code 3943 * @param hid_cid 3944 * @param handshake_status 3945 * @param protocol_mode 3946 */ 3947 #define HID_SUBEVENT_SET_PROTOCOL_RESPONSE 0x0Bu 3948 3949 /** 3950 * @format 12LV 3951 * @param subevent_code 3952 * @param hid_cid 3953 * @param report_len 3954 * @param report 3955 */ 3956 #define HID_SUBEVENT_REPORT 0x0Cu 3957 3958 /** 3959 * @format 121 3960 * @param subevent_code 3961 * @param hid_cid 3962 * @param status 3963 */ 3964 #define HID_SUBEVENT_DESCRIPTOR_AVAILABLE 0x0Du 3965 3966 /** 3967 * @format 1222 3968 * @param subevent_code 3969 * @param hid_cid 3970 * @param host_max_latency 3971 * @param host_min_timeout 3972 */ 3973 #define HID_SUBEVENT_SNIFF_SUBRATING_PARAMS 0x0Eu 3974 3975 // HIDS Meta Event Group 3976 3977 /** 3978 * @format 12 3979 * @param subevent_code 3980 * @param con_handle 3981 */ 3982 #define HIDS_SUBEVENT_CAN_SEND_NOW 0x01u 3983 3984 /** 3985 * @format 121 3986 * @param subevent_code 3987 * @param con_handle 3988 * @param protocol_mode 3989 */ 3990 #define HIDS_SUBEVENT_PROTOCOL_MODE 0x02u 3991 3992 /** 3993 * @format 121 3994 * @param subevent_code 3995 * @param con_handle 3996 * @param enable 3997 */ 3998 #define HIDS_SUBEVENT_BOOT_MOUSE_INPUT_REPORT_ENABLE 0x03u 3999 4000 /** 4001 * @format 121 4002 * @param subevent_code 4003 * @param con_handle 4004 * @param enable 4005 */ 4006 #define HIDS_SUBEVENT_BOOT_KEYBOARD_INPUT_REPORT_ENABLE 0x04u 4007 4008 /** 4009 * @format 1211 4010 * @param subevent_code 4011 * @param con_handle 4012 * @param report_id 4013 * @param enable 4014 */ 4015 #define HIDS_SUBEVENT_INPUT_REPORT_ENABLE 0x05u 4016 4017 /** 4018 * @format 1211 4019 * @param subevent_code 4020 * @param con_handle 4021 * @param report_id 4022 * @param enable 4023 */ 4024 #define HIDS_SUBEVENT_OUTPUT_REPORT_ENABLE 0x06u 4025 4026 /** 4027 * @format 1211 4028 * @param subevent_code 4029 * @param con_handle 4030 * @param report_id 4031 * @param enable 4032 */ 4033 #define HIDS_SUBEVENT_FEATURE_REPORT_ENABLE 0x07u 4034 4035 /** 4036 * @format 12 4037 * @param subevent_code 4038 * @param con_handle 4039 */ 4040 #define HIDS_SUBEVENT_SUSPEND 0x08u 4041 4042 /** 4043 * @format 12 4044 * @param subevent_code 4045 * @param con_handle 4046 */ 4047 #define HIDS_SUBEVENT_EXIT_SUSPEND 0x09u 4048 4049 /** 4050 * @format 1211JV 4051 * @param subevent_code 4052 * @param con_handle 4053 * @param report_id 4054 * @param report_type 4055 * @param report_length 4056 * @param report_data 4057 */ 4058 #define HIDS_SUBEVENT_SET_REPORT 0x0au 4059 4060 /** 4061 * @format 1211 4062 * @param subevent_code 4063 * @param con_handle 4064 * @param measurement_type 0 - force magnitude, 1 - torque magnitude, see cycling_power_sensor_measurement_context_t 4065 * @param is_enhanced 4066 */ 4067 #define GATTSERVICE_SUBEVENT_CYCLING_POWER_START_CALIBRATION 0x01u 4068 4069 /** 4070 * @format 12 4071 * @param subevent_code 4072 * @param con_handle 4073 */ 4074 #define GATTSERVICE_SUBEVENT_CYCLING_POWER_BROADCAST_START 0x02u 4075 4076 /** 4077 * @format 12 4078 * @param subevent_code 4079 * @param con_handle 4080 */ 4081 #define GATTSERVICE_SUBEVENT_CYCLING_POWER_BROADCAST_STOP 0x03u 4082 4083 /** 4084 * @format 12111 4085 * @param subevent_code 4086 * @param hids_cid 4087 * @param status 4088 * @param num_instances 4089 * @param poll_bitmap 4090 */ 4091 #define GATTSERVICE_SUBEVENT_BATTERY_SERVICE_CONNECTED 0x04u 4092 4093 /** 4094 * @format 12111 4095 * @param subevent_code 4096 * @param hids_cid 4097 * @param service_index 4098 * @param att_status see ATT errors in bluetooth.h 4099 * @param level 4100 */ 4101 #define GATTSERVICE_SUBEVENT_BATTERY_SERVICE_LEVEL 0x05u 4102 4103 /** 4104 * @format 12 4105 * @param subevent_code 4106 * @param service_id 4107 */ 4108 #define GATTSERVICE_SUBEVENT_BATTERY_SERVICE_LEVEL_BROADCAST_START 0x06u 4109 4110 /** 4111 * @format 12 4112 * @param subevent_code 4113 * @param service_id 4114 */ 4115 #define GATTSERVICE_SUBEVENT_BATTERY_SERVICE_LEVEL_BROADCAST_STOP 0x07u 4116 4117 /** 4118 * @format 1H1 4119 * @param subevent_code 4120 * @param con_handle 4121 * @param att_status 4122 */ 4123 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_DONE 0x08u 4124 4125 /** 4126 * @format 1H1T 4127 * @param subevent_code 4128 * @param con_handle 4129 * @param att_status 4130 * @param value 4131 */ 4132 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_MANUFACTURER_NAME 0x09u 4133 4134 /** 4135 * @format 1H1T 4136 * @param subevent_code 4137 * @param con_handle 4138 * @param att_status 4139 * @param value 4140 */ 4141 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_MODEL_NUMBER 0x0Au 4142 4143 /** 4144 * @format 1H1T 4145 * @param subevent_code 4146 * @param con_handle 4147 * @param att_status 4148 * @param value 4149 */ 4150 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_SERIAL_NUMBER 0x0Bu 4151 4152 /** 4153 * @format 1H1T 4154 * @param subevent_code 4155 * @param con_handle 4156 * @param att_status 4157 * @param value 4158 */ 4159 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_HARDWARE_REVISION 0x0Cu 4160 4161 /** 4162 * @format 1H1T 4163 * @param subevent_code 4164 * @param con_handle 4165 * @param att_status 4166 * @param value 4167 */ 4168 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_FIRMWARE_REVISION 0x0Du 4169 4170 /** 4171 * @format 1H1T 4172 * @param subevent_code 4173 * @param con_handle 4174 * @param att_status 4175 * @param value 4176 */ 4177 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_SOFTWARE_REVISION 0x0Eu 4178 4179 /** 4180 * @format 1H1413 4181 * @param subevent_code 4182 * @param con_handle 4183 * @param att_status 4184 * @param manufacturer_id_low 4185 * @param manufacturer_id_high 4186 * @param organizationally_unique_id 4187 */ 4188 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_SYSTEM_ID 0x0Fu 4189 4190 /** 4191 * @format 1H122 4192 * @param subevent_code 4193 * @param con_handle 4194 * @param att_status 4195 * @param value_a 4196 * @param value_b 4197 */ 4198 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_IEEE_REGULATORY_CERTIFICATION 0x10u 4199 4200 /** 4201 * @format 1H11222 4202 * @param subevent_code 4203 * @param con_handle 4204 * @param att_status 4205 * @param vendor_source_id 4206 * @param vendor_id 4207 * @param product_id 4208 * @param product_version 4209 */ 4210 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_PNP_ID 0x11u 4211 4212 /** 4213 * @format 1H1TTTT 4214 * @param subevent_code 4215 * @param con_handle 4216 * @param att_status 4217 * @param label 4218 * @param device_id 4219 * @param issuer 4220 * @param authority 4221 */ 4222 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_UDI_FOR_MEDICAL_DEVICES 0x12u 4223 4224 /** 4225 * @format 1H1 4226 * @param subevent_code 4227 * @param con_handle 4228 * @param status 4229 */ 4230 #define GATTSERVICE_SUBEVENT_SCAN_PARAMETERS_SERVICE_CONNECTED 0x13u 4231 4232 /** 4233 * @format 1H 4234 * @param subevent_code 4235 * @param con_handle 4236 */ 4237 #define GATTSERVICE_SUBEVENT_SCAN_PARAMETERS_SERVICE_DISCONNECTED 0x14u 4238 4239 /** 4240 * @format 1H 4241 * @param subevent_code 4242 * @param con_handle 4243 */ 4244 #define GATTSERVICE_SUBEVENT_SPP_SERVICE_CONNECTED 0x15u 4245 4246 /** 4247 * @format 1H 4248 * @param subevent_code 4249 * @param con_handle 4250 */ 4251 #define GATTSERVICE_SUBEVENT_SPP_SERVICE_DISCONNECTED 0x16u 4252 4253 /** 4254 * @format 12111 4255 * @param subevent_code 4256 * @param hids_cid 4257 * @param status 4258 * @param protocol_mode 4259 * @param num_instances 4260 */ 4261 #define GATTSERVICE_SUBEVENT_HID_SERVICE_CONNECTED 0x17u 4262 4263 /** 4264 * @format 12 4265 * @param subevent_code 4266 * @param hids_cid 4267 */ 4268 #define GATTSERVICE_SUBEVENT_HID_SERVICE_DISCONNECTED 0x18u 4269 4270 /** 4271 * @format 1211LV 4272 * @param subevent_code 4273 * @param hids_cid 4274 * @param service_index 4275 * @param report_id 4276 * @param report_len 4277 * @param report 4278 */ 4279 #define GATTSERVICE_SUBEVENT_HID_REPORT 0x19u 4280 4281 /** 4282 * @format 1212111 4283 * @param subevent_code 4284 * @param hids_cid 4285 * @param service_index 4286 * @param base_usb_hid_version Version number of base USB HID Specification implemented by HID Device 4287 * @param country_code Country HID Device hardware is localized for (not localized: 0x00) 4288 * @param remote_wake Indicates whether HID Device is capable of sending a wake-signal to a HID Host 4289 * @param normally_connectable Indicates whether HID Device will be advertising when bonded but not connected. 4290 */ 4291 #define GATTSERVICE_SUBEVENT_HID_INFORMATION 0x1Au 4292 4293 /** 4294 * @format 1211 4295 * @param subevent_code 4296 * @param hids_cid 4297 * @param service_index 4298 * @param protocol_mode see hid_protocol_mode_t in btstack_hid.h 4299 */ 4300 #define GATTSERVICE_SUBEVENT_HID_PROTOCOL_MODE 0x1Bu 4301 4302 /** 4303 * @format 121 4304 * @param subevent_code 4305 * @param hids_cid 4306 * @param configuration 4307 */ 4308 #define GATTSERVICE_SUBEVENT_HID_SERVICE_REPORTS_NOTIFICATION 0x1Cu 4309 4310 /** 4311 * @format 1211 4312 * @param subevent_code 4313 * @param hids_cid 4314 * @param service_index 4315 * @param report_id 4316 */ 4317 #define GATTSERVICE_SUBEVENT_HID_REPORT_WRITTEN 0x1Du 4318 4319 /** 4320 * @format 1H22 4321 * @param subevent_code 4322 * @param con_handle 4323 * @param max_scan_interval 4324 * @param min_scan_window 4325 */ 4326 #define GATTSERVICE_SUBEVENT_SCAN_PARAMETERS_SERVICE_SCAN_INTERVAL_UPDATE 0x1Eu 4327 4328 /** 4329 * @format 1H22 4330 * @param subevent_code 4331 * @param con_handle 4332 * @param attribute_handle_start 4333 * @param attribute_handle_end 4334 */ 4335 #define GATTSERVICE_SUBEVENT_GATT_SERVICE_CHANGED 0x1Fu 4336 4337 /** 4338 * @format 1HK 4339 * @param subevent_code 4340 * @param con_handle 4341 * @param database_hash 4342 */ 4343 #define GATTSERVICE_SUBEVENT_GATT_DATABASE_HASH 0x20u 4344 4345 /** 4346 * @format 1H211 4347 * @param subevent_code 4348 * @param con_handle 4349 * @param cid 4350 * @param num_included_services 4351 * @param status 4352 */ 4353 #define GATTSERVICE_SUBEVENT_CLIENT_CONNECTED 0x21u 4354 4355 /** 4356 * @format 1H2 4357 * @param subevent_code 4358 * @param con_handle 4359 * @param cid 4360 */ 4361 #define GATTSERVICE_SUBEVENT_CLIENT_DISCONNECTED 0x22u 4362 4363 /** 4364 * @format 1H21 4365 * @param subevent_code 4366 * @param con_handle 4367 * @param lls_cid 4368 * @param status 4369 */ 4370 #define GATTSERVICE_SUBEVENT_LLS_CLIENT_CONNECTED 0x23u 4371 4372 /** 4373 * @format 12 4374 * @param subevent_code 4375 * @param lls_cid 4376 */ 4377 #define GATTSERVICE_SUBEVENT_LLS_CLIENT_DISCONNECTED 0x24u 4378 4379 /** 4380 * @format 1221 4381 * @param subevent_code 4382 * @param lls_cid 4383 * @param characteristic_uuid 4384 * @param att_status 4385 */ 4386 #define GATTSERVICE_SUBEVENT_LLS_CLIENT_WRITE_DONE 0x25u 4387 4388 /** 4389 * @format 12 4390 * @param subevent_code 4391 * @param lls_cid 4392 */ 4393 #define GATTSERVICE_SUBEVENT_LLS_CLIENT_START_ALERTING 0x26u 4394 4395 /** 4396 * @format 121 4397 * @param subevent_code 4398 * @param lls_cid 4399 * @param timeout 4400 */ 4401 #define GATTSERVICE_SUBEVENT_LLS_CLIENT_STOP_ALERTING 0x27u 4402 4403 /** 4404 * @format 121 4405 * @param subevent_code 4406 * @param lls_cid 4407 * @param value 4408 */ 4409 #define GATTSERVICE_SUBEVENT_LLS_CLIENT_ALERT_LEVEL 0x28u 4410 4411 /** 4412 * @format 1H21 4413 * @param subevent_code 4414 * @param con_handle 4415 * @param ias_cid 4416 * @param status 4417 */ 4418 #define GATTSERVICE_SUBEVENT_IAS_CLIENT_CONNECTED 0x29u 4419 4420 /** 4421 * @format 12 4422 * @param subevent_code 4423 * @param ias_cid 4424 */ 4425 #define GATTSERVICE_SUBEVENT_IAS_CLIENT_DISCONNECTED 0x2Au 4426 4427 /** 4428 * @format 12 4429 * @param subevent_code 4430 * @param ias_cid 4431 */ 4432 #define GATTSERVICE_SUBEVENT_IAS_CLIENT_START_ALERTING 0x2Bu 4433 4434 /** 4435 * @format 121 4436 * @param subevent_code 4437 * @param ias_cid 4438 * @param timeout 4439 */ 4440 #define GATTSERVICE_SUBEVENT_IAS_CLIENT_STOP_ALERTING 0x2Cu 4441 4442 /** 4443 * @format 1H21 4444 * @param subevent_code 4445 * @param con_handle 4446 * @param tpxs_cid 4447 * @param status 4448 */ 4449 #define GATTSERVICE_SUBEVENT_TXPS_CLIENT_CONNECTED 0x2Du 4450 4451 /** 4452 * @format 12 4453 * @param subevent_code 4454 * @param tpxs_cid 4455 */ 4456 #define GATTSERVICE_SUBEVENT_TXPS_CLIENT_DISCONNECTED 0x2Eu 4457 4458 /** 4459 * @format 121 4460 * @param subevent_code 4461 * @param tpxs_cid 4462 * @param value 4463 */ 4464 #define GATTSERVICE_SUBEVENT_TXPS_CLIENT_TX_POWER_LEVEL 0x2Fu 4465 4466 /** 4467 * @format 11 4468 * @param subevent_code 4469 * @param alert_level 4470 */ 4471 #define GATTSERVICE_SUBEVENT_LLS_SERVER_START_ALERTING 0x30u 4472 4473 /** 4474 * @format 111 4475 * @param subevent_code 4476 * @param alert_level 4477 * @param timeout 4478 */ 4479 #define GATTSERVICE_SUBEVENT_LLS_SERVER_STOP_ALERTING 0x31u 4480 4481 /** 4482 * @format 11 4483 * @param subevent_code 4484 * @param alert_level 4485 */ 4486 #define GATTSERVICE_SUBEVENT_IAS_SERVER_START_ALERTING 0x32u 4487 4488 /** 4489 * @format 111 4490 * @param subevent_code 4491 * @param alert_level 4492 * @param timeout 4493 */ 4494 #define GATTSERVICE_SUBEVENT_IAS_SERVER_STOP_ALERTING 0x33u 4495 4496 4497 4498 // LE Audio 4499 4500 /** 4501 * @format 1H1 4502 * @param subevent_code 4503 * @param con_handle 4504 * @param status 4505 */ 4506 #define LEAUDIO_SUBEVENT_BASS_SERVER_CONNECTED 0x01u 4507 4508 /** 4509 * @format 1H 4510 * @param subevent_code 4511 * @param con_handle 4512 */ 4513 #define LEAUDIO_SUBEVENT_BASS_SERVER_DISCONNECTED 0x02u 4514 4515 /** 4516 * @format 1H 4517 * @param subevent_code 4518 * @param con_handle 4519 */ 4520 #define LEAUDIO_SUBEVENT_BASS_SERVER_SCAN_STOPPED 0x03u 4521 4522 /** 4523 * @format 1H 4524 * @param subevent_code 4525 * @param con_handle 4526 */ 4527 #define LEAUDIO_SUBEVENT_BASS_SERVER_SCAN_STARTED 0x04u 4528 4529 /** 4530 * @format 1H1K 4531 * @param subevent_code 4532 * @param con_handle 4533 * @param source_id 4534 * @param broadcast_code 4535 */ 4536 #define LEAUDIO_SUBEVENT_BASS_SERVER_BROADCAST_CODE 0x05u 4537 4538 /** 4539 * @format 1H11 4540 * @param subevent_code 4541 * @param con_handle 4542 * @param source_id 4543 * @param pa_sync 4544 */ 4545 #define LEAUDIO_SUBEVENT_BASS_SERVER_SOURCE_ADDED 0x06u 4546 4547 /** 4548 * @format 1H11 4549 * @param subevent_code 4550 * @param con_handle 4551 * @param source_id 4552 * @param pa_sync 4553 */ 4554 #define LEAUDIO_SUBEVENT_BASS_SERVER_SOURCE_MODIFIED 0x07u 4555 4556 /** 4557 * @format 1H11 4558 * @param subevent_code 4559 * @param con_handle 4560 * @param source_id 4561 * @param pa_sync 4562 */ 4563 #define LEAUDIO_SUBEVENT_BASS_SERVER_SOURCE_DELETED 0x08u 4564 4565 /** 4566 * @format 1H21 4567 * @param subevent_code 4568 * @param con_handle 4569 * @param bass_cid 4570 * @param status 4571 */ 4572 #define LEAUDIO_SUBEVENT_BASS_CLIENT_CONNECTED 0x09u 4573 4574 /** 4575 * @format 12 4576 * @param subevent_code 4577 * @param bass_cid 4578 */ 4579 #define LEAUDIO_SUBEVENT_BASS_CLIENT_DISCONNECTED 0x0Au 4580 4581 /** 4582 * @format 1211 4583 * @param subevent_code 4584 * @param bass_cid 4585 * @param status 4586 * @param opcode 4587 */ 4588 #define LEAUDIO_SUBEVENT_BASS_CLIENT_SCAN_OPERATION_COMPLETE 0x0Bu 4589 4590 /** 4591 * @format 1211B1311P1 4592 * @param subevent_code 4593 * @param bass_cid 4594 * @param source_id 4595 * @param source_address_type 4596 * @param source_address 4597 * @param source_adv_sid 4598 * @param broadcast_id 4599 * @param pa_sync_state 4600 * @param big_encryption 4601 * @param bad_code 4602 * @param subgroups_num 4603 */ 4604 #define LEAUDIO_SUBEVENT_BASS_CLIENT_NOTIFY_RECEIVE_STATE_BASE 0x0Cu 4605 4606 /** 4607 * @format 1214122JV3JV1JV2JV2JV 4608 * @param subevent_code 4609 * @param bass_cid 4610 * @param source_id 4611 * @param bis_sync_state 4612 * @param metadata_mask 4613 * @param preferred_audio_contexts_mask 4614 * @param streaming_audio_contexts_mask 4615 * @param program_info_length 4616 * @param program_info 4617 * @param language_code 4618 * @param ccids_num 4619 * @param ccids 4620 * @param parental_rating 4621 * @param program_info_uri_length 4622 * @param program_info_uri 4623 * @param extended_metadata_type 4624 * @param extended_metadata_value_length 4625 * @param extended_metadata_value 4626 * @param vendor_specific_metadata_type 4627 * @param vendor_specific_metadata_value_length 4628 * @param vendor_specific_metadata_value 4629 */ 4630 #define LEAUDIO_SUBEVENT_BASS_CLIENT_NOTIFY_RECEIVE_STATE_SUBGROUP 0x0Du 4631 4632 /** 4633 * @format 121 4634 * @param subevent_code 4635 * @param bass_cid 4636 * @param source_id 4637 */ 4638 #define LEAUDIO_SUBEVENT_BASS_CLIENT_NOTIFICATION_COMPLETE 0x0Eu 4639 4640 /** 4641 * @format 12111 4642 * @param subevent_code 4643 * @param bass_cid 4644 * @param status 4645 * @param opcode 4646 * @param source_id 4647 */ 4648 #define LEAUDIO_SUBEVENT_BASS_CLIENT_SOURCE_OPERATION_COMPLETE 0x0Fu 4649 4650 4651 // MESH Meta Event Group 4652 4653 /** 4654 * @format 1 4655 * @param subevent_code 4656 */ 4657 #define MESH_SUBEVENT_CAN_SEND_NOW 0x01u 4658 4659 /** 4660 * @format 11 4661 * @param subevent_code 4662 * @param status 4663 */ 4664 #define MESH_SUBEVENT_PB_TRANSPORT_PDU_SENT 0x02u 4665 4666 /** 4667 * @format 1121 4668 * @param subevent_code 4669 * @param status 4670 * @param pb_transport_cid 4671 * @param pb_type 4672 */ 4673 #define MESH_SUBEVENT_PB_TRANSPORT_LINK_OPEN 0x03u 4674 4675 /** 4676 * @format 112 4677 * @param subevent_code 4678 * @param pb_transport_cid 4679 * @param reason 4680 */ 4681 #define MESH_SUBEVENT_PB_TRANSPORT_LINK_CLOSED 0x04u 4682 4683 /** 4684 * @format 121 4685 * @param subevent_code 4686 * @param pb_transport_cid 4687 * @param attention_time in seconds 4688 */ 4689 #define MESH_SUBEVENT_PB_PROV_ATTENTION_TIMER 0x10u 4690 4691 /** 4692 * Device Role 4693 * @format 12 4694 * @param subevent_code 4695 * @param pb_transport_cid 4696 */ 4697 #define MESH_SUBEVENT_PB_PROV_START_EMIT_PUBLIC_KEY_OOB 0x11u 4698 4699 /** 4700 * Device Role 4701 * @format 12 4702 * @param subevent_code 4703 * @param pb_transport_cid 4704 */ 4705 #define MESH_SUBEVENT_PB_PROV_STOP_EMIT_PUBLIC_KEY_OOB 0x12u 4706 4707 /** 4708 * Device Role 4709 * @format 12 4710 * @param subevent_code 4711 * @param pb_transport_cid 4712 */ 4713 #define MESH_SUBEVENT_PB_PROV_INPUT_OOB_REQUEST 0x13u 4714 4715 /** 4716 * Device Role 4717 * @format 124 4718 * @param subevent_code 4719 * @param pb_transport_cid 4720 * @param output_oob number 4721 */ 4722 #define MESH_SUBEVENT_PB_PROV_START_EMIT_OUTPUT_OOB 0x15u 4723 4724 /** 4725 * Device Role 4726 * @format 12 4727 * @param subevent_code 4728 * @param pb_transport_cid 4729 */ 4730 #define MESH_SUBEVENT_PB_PROV_STOP_EMIT_OUTPUT_OOB 0x16u 4731 4732 /** 4733 * Provisioner Role 4734 * @format 12 4735 * @param subevent_code 4736 * @param pb_transport_cid 4737 */ 4738 #define MESH_SUBEVENT_PB_PROV_START_RECEIVE_PUBLIC_KEY_OOB 0x17u 4739 4740 /** 4741 * Provisioner Role 4742 * @format 12 4743 * @param subevent_code 4744 * @param pb_transport_cid 4745 */ 4746 #define MESH_SUBEVENT_PB_PROV_STOP_RECEIVE_PUBLIC_KEY_OOB 0x18u 4747 4748 /** 4749 * Provisioner Role 4750 * @format 12 4751 * @param subevent_code 4752 * @param pb_transport_cid 4753 */ 4754 #define MESH_SUBEVENT_PB_PROV_OUTPUT_OOB_REQUEST 0x19u 4755 4756 /** 4757 * Provisioner Role 4758 * @format 124 4759 * @param subevent_code 4760 * @param pb_transport_cid 4761 * @param output_oob number 4762 */ 4763 #define MESH_SUBEVENT_PB_PROV_START_EMIT_INPUT_OOB 0x1au 4764 4765 /** 4766 * Provisioner Role 4767 * @format 12 4768 * @param subevent_code 4769 * @param pb_transport_cid 4770 */ 4771 #define MESH_SUBEVENT_PB_PROV_STOP_EMIT_INPUT_OOB 0x1bu 4772 4773 /** 4774 * Provisioner Role 4775 * @format 1212111212 4776 * @param subevent_code 4777 * @param pb_transport_cid 4778 * @param num_elements 4779 * @param algorithms 4780 * @param public_key 4781 * @param static_oob_type 4782 * @param output_oob_size 4783 * @param output_oob_action 4784 * @param input_oob_size 4785 * @param input_oob_action 4786 */ 4787 #define MESH_SUBEVENT_PB_PROV_CAPABILITIES 0x1cu 4788 4789 /** 4790 * @format 12 4791 * @param subevent_code 4792 * @param pb_transport_cid 4793 */ 4794 #define MESH_SUBEVENT_PB_PROV_COMPLETE 0x1du 4795 4796 /** 4797 * @format 11 4798 * @param subevent_code 4799 * @param attention_time in seconds 4800 */ 4801 #define MESH_SUBEVENT_ATTENTION_TIMER 0x1eu 4802 4803 /** 4804 * @format 1H 4805 * @param subevent_code 4806 * @param con_handle 4807 */ 4808 #define MESH_SUBEVENT_PROXY_CONNECTED 0x20u 4809 4810 /** 4811 * @format 1H 4812 * @param subevent_code 4813 * @param con_handle 4814 */ 4815 #define MESH_SUBEVENT_PROXY_PDU_SENT 0x21u 4816 4817 /** 4818 * @format 1H 4819 * @param subevent_code 4820 * @param con_handle 4821 */ 4822 #define MESH_SUBEVENT_PROXY_DISCONNECTED 0x22u 4823 4824 /** 4825 * @format 1H 4826 * @param subevent_code 4827 * @param con_handle 4828 */ 4829 #define MESH_SUBEVENT_MESSAGE_SENT 0x23u 4830 4831 /** 4832 * @format 114411 4833 * @param subevent_code 4834 * @param element_index 4835 * @param model_identifier 4836 * @param state_identifier 4837 * @param reason 4838 * @param value 4839 */ 4840 #define MESH_SUBEVENT_STATE_UPDATE_BOOL 0x24u 4841 4842 /** 4843 * @format 114412 4844 * @param subevent_code 4845 * @param element_index 4846 * @param model_identifier 4847 * @param state_identifier 4848 * @param reason 4849 * @param value 4850 */ 4851 #define MESH_SUBEVENT_STATE_UPDATE_INT16 0x25u 4852 4853 // Mesh Client Events 4854 /** 4855 * @format 11442 4856 * @param subevent_code 4857 * @param element_index 4858 * @param model_identifier 4859 * @param opcode 4860 * @param dest 4861 */ 4862 #define MESH_SUBEVENT_MESSAGE_NOT_ACKNOWLEDGED 0x30u 4863 4864 /** 4865 * @format 121114 4866 * @param subevent_code 4867 * @param dest 4868 * @param status 4869 * @param present_value 4870 * @param target_value optional, if value > 0, than remaining_time_ms must be read 4871 * @param remaining_time_ms 4872 */ 4873 #define MESH_SUBEVENT_GENERIC_ON_OFF 0x31u 4874 4875 /** 4876 * @format 121224 4877 * @param subevent_code 4878 * @param dest 4879 * @param status 4880 * @param present_value 4881 * @param target_value optional, if value > 0, than remaining_time_ms must be read 4882 * @param remaining_time_ms 4883 */ 4884 #define MESH_SUBEVENT_GENERIC_LEVEL 0x32u 4885 4886 /** 4887 * @format 1222211 4888 * @param subevent_code 4889 * @param dest 4890 * @param netkey_index 4891 * @param appkey_index 4892 * @param company_id 4893 * @param test_id 4894 * @param acknowledged 4895 */ 4896 #define MESH_SUBEVENT_HEALTH_PERFORM_TEST 0x33u 4897 4898 /** 4899 * @format 11 4900 * @param subevent_code 4901 * @param element_index 4902 */ 4903 #define MESH_SUBEVENT_HEALTH_ATTENTION_TIMER_CHANGED 0x34u 4904 4905 /** 4906 * @format 1211 4907 * @param subevent_code 4908 * @param dest 4909 * @param status 4910 * @param transition_time_gdtt 4911 */ 4912 #define MESH_SUBEVENT_GENERIC_DEFAULT_TRANSITION_TIME 0x35u 4913 4914 /** 4915 * @format 1211 4916 * @param subevent_code 4917 * @param dest 4918 * @param foundation_status 4919 * @param secure_network_beacon_state 4920 */ 4921 #define MESH_SUBEVENT_CONFIGURATION_BEACON 0x36u 4922 4923 // Composition Data has variable of element descriptions, with two lists of model lists 4924 // Use .. getters to access data 4925 #define MESH_SUBEVENT_CONFIGURATION_COMPOSITION_DATA 0x37u 4926 4927 /** 4928 * @format 1211 4929 * @param subevent_code 4930 * @param dest 4931 * @param foundation_status 4932 * @param default_ttl 4933 */ 4934 #define MESH_SUBEVENT_CONFIGURATION_DEFAULT_TTL 0x38u 4935 4936 /** 4937 * @format 1211 4938 * @param subevent_code 4939 * @param dest 4940 * @param foundation_status 4941 * @param gatt_proxy_state 4942 */ 4943 #define MESH_SUBEVENT_CONFIGURATION_GATT_PROXY 0x39u 4944 4945 /** 4946 * @format 121111 4947 * @param subevent_code 4948 * @param dest 4949 * @param foundation_status 4950 * @param relay 4951 * @param retransmit_count the number of times that packet is transmitted for each packet that is relayed. 4952 * @param retransmit_interval_ms retransmission interval in ms 4953 */ 4954 #define MESH_SUBEVENT_CONFIGURATION_RELAY 0x40u 4955 4956 4957 /** 4958 * @format 12122111114 4959 * @param subevent_code 4960 * @param dest element_address 4961 * @param foundation_status 4962 * @param publish_address 4963 * @param appkey_index 4964 * @param credential_flag 4965 * @param publish_ttl 4966 * @param publish_period 4967 * @param publish_retransmit_count 4968 * @param publish_retransmit_interval_steps 4969 * @param model_identifier 4970 */ 4971 #define MESH_SUBEVENT_CONFIGURATION_MODEL_PUBLICATION 0x41u 4972 4973 /** 4974 * @format 12124 4975 * @param subevent_code 4976 * @param dest 4977 * @param foundation_status 4978 * @param address 4979 * @param model_identifier 4980 */ 4981 #define MESH_SUBEVENT_CONFIGURATION_MODEL_SUBSCRIPTION 0x42u 4982 4983 /** 4984 * @format 1214112 4985 * @param subevent_code 4986 * @param dest 4987 * @param foundation_status 4988 * @param model_identifier 4989 * @param num_subscription_addresses 4990 * @param subscription_address_pos 4991 * @param subscription_address_item 4992 */ 4993 #define MESH_SUBEVENT_CONFIGURATION_MODEL_SUBSCRIPTION_LIST_ITEM 0x43u 4994 4995 4996 /** 4997 * @format 121 4998 * @param subevent_code 4999 * @param dest 5000 * @param foundation_status 5001 */ 5002 #define MESH_SUBEVENT_CONFIGURATION_NETKEY_INDEX 0x44u 5003 5004 /** 5005 * @format 121112 5006 * @param subevent_code 5007 * @param dest 5008 * @param foundation_status 5009 * @param num_netkey_indexes 5010 * @param netkey_index_pos 5011 * @param netkey_index_item 5012 */ 5013 #define MESH_SUBEVENT_CONFIGURATION_NETKEY_INDEX_LIST_ITEM 0x45u 5014 5015 /** 5016 * @format 12122 5017 * @param subevent_code 5018 * @param dest 5019 * @param foundation_status 5020 * @param netkey_index_item 5021 * @param appkey_index_item 5022 */ 5023 #define MESH_SUBEVENT_CONFIGURATION_APPKEY_INDEX 0x46u 5024 5025 /** 5026 * @format 12121122 5027 * @param subevent_code 5028 * @param dest 5029 * @param foundation_status 5030 * @param netkey_index 5031 * @param num_appkey_indexes 5032 * @param appkey_index_pos 5033 * @param netkey_index_item 5034 * @param appkey_index_item 5035 */ 5036 #define MESH_SUBEVENT_CONFIGURATION_APPKEY_INDEX_LIST_ITEM 0x47u 5037 5038 /** 5039 * @format 12121 5040 * @param subevent_code 5041 * @param dest 5042 * @param foundation_status 5043 * @param netkey_index_item 5044 * @param identity_status 5045 */ 5046 #define MESH_SUBEVENT_CONFIGURATION_NODE_IDENTITY 0x48u 5047 5048 /** 5049 * @format 12124 5050 * @param subevent_code 5051 * @param dest 5052 * @param foundation_status 5053 * @param appkey_index 5054 * @param model_identifier 5055 */ 5056 #define MESH_SUBEVENT_CONFIGURATION_MODEL_APP 0x49u 5057 5058 /** 5059 * @format 1214112 5060 * @param subevent_code 5061 * @param dest 5062 * @param foundation_status 5063 * @param model_id 5064 * @param num_appkey_indexes 5065 * @param appkey_index_pos 5066 * @param appkey_index_item 5067 */ 5068 #define MESH_SUBEVENT_CONFIGURATION_MODEL_APP_LIST_ITEM 0x50u 5069 5070 /** 5071 * @format 121 5072 * @param subevent_code 5073 * @param dest 5074 * @param foundation_status 5075 */ 5076 #define MESH_SUBEVENT_CONFIGURATION_NODE_RESET 0x51u 5077 5078 /** 5079 * @format 1211 5080 * @param subevent_code 5081 * @param dest 5082 * @param foundation_status 5083 * @param friend_state 5084 */ 5085 #define MESH_SUBEVENT_CONFIGURATION_FRIEND 0x52u 5086 5087 /** 5088 * @format 12121 5089 * @param subevent_code 5090 * @param dest 5091 * @param foundation_status 5092 * @param netkey_index 5093 * @param phase 5094 */ 5095 #define MESH_SUBEVENT_CONFIGURATION_KEY_REFRESH_PHASE 0x53u 5096 5097 /** 5098 * @format 121222122 5099 * @param subevent_code 5100 * @param dest 5101 * @param foundation_status 5102 * @param heartbeat_destination 5103 * @param count_S 5104 * @param period_S 5105 * @param ttl 5106 * @param features 5107 * @param netkey_index 5108 */ 5109 #define MESH_SUBEVENT_CONFIGURATION_HEARTBEAT_PUBLICATION 0x54u 5110 5111 /** 5112 * @format 121222211 5113 * @param subevent_code 5114 * @param dest 5115 * @param foundation_status 5116 * @param heartbeat_destination 5117 * @param heartbeat_source 5118 * @param count_S 5119 * @param period_S 5120 * @param min_hops 5121 * @param max_hops 5122 */ 5123 #define MESH_SUBEVENT_CONFIGURATION_HEARTBEAT_SUBSCRIPTION 0x55u 5124 5125 /** 5126 * @format 12123 5127 * @param subevent_code 5128 * @param dest 5129 * @param foundation_status 5130 * @param lpn_address 5131 * @param poll_timeout 5132 */ 5133 #define MESH_SUBEVENT_CONFIGURATION_LOW_POWER_NODE_POLL_TIMEOUT 0x56u 5134 5135 /** 5136 * @format 12112 5137 * @param subevent_code 5138 * @param dest 5139 * @param foundation_status 5140 * @param transmit_count 5141 * @param transmit_interval_steps_ms 5142 */ 5143 #define MESH_SUBEVENT_CONFIGURATION_NETWORK_TRANSMIT 0x57u 5144 5145 5146 #endif 5147