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