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