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