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