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