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