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