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