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