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 MATTHIAS 24 * RINGWALD 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 0xffff 82 83 84 #define DAEMON_EVENT_PACKET 0x05 85 86 // L2CAP data 87 #define L2CAP_DATA_PACKET 0x06 88 89 // RFCOMM data 90 #define RFCOMM_DATA_PACKET 0x07 91 92 // Attribute protocol data 93 #define ATT_DATA_PACKET 0x08 94 95 // Security Manager protocol data 96 #define SM_DATA_PACKET 0x09 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 0x0a 101 102 // BNEP data 103 #define BNEP_DATA_PACKET 0x0b 104 105 // Unicast Connectionless Data 106 #define UCD_DATA_PACKET 0x0c 107 108 // GOEP data 109 #define GOEP_DATA_PACKET 0x0d 110 111 // PBAP data 112 #define PBAP_DATA_PACKET 0x0e 113 114 // AVRCP browsing data 115 #define AVRCP_BROWSING_DATA_PACKET 0x0f 116 117 // MAP data 118 #define MAP_DATA_PACKET 0x10 119 120 // Mesh Provisioning PDU 121 #define PROVISIONING_DATA_PACKET 0x11 122 123 // Mesh Proxy PDU 124 #define MESH_PROXY_DATA_PACKET 0x11 125 126 // Mesh Network PDU 127 #define MESH_NETWORK_PACKET 0x12 128 129 // Mesh Network PDU 130 #define MESH_BEACON_PACKET 0x13 131 132 // debug log messages 133 #define LOG_MESSAGE_PACKET 0xfc 134 135 136 // DAEMON COMMANDS 137 138 #define OGF_BTSTACK 0x3d 139 140 // cmds for BTstack 141 // get state: @returns HCI_STATE 142 #define BTSTACK_GET_STATE 0x01 143 144 // set power mode: param HCI_POWER_MODE 145 #define BTSTACK_SET_POWER_MODE 0x02 146 147 // set capture mode: param on 148 #define BTSTACK_SET_ACL_CAPTURE_MODE 0x03 149 150 // get BTstack version 151 #define BTSTACK_GET_VERSION 0x04 152 153 // get system Bluetooth state 154 #define BTSTACK_GET_SYSTEM_BLUETOOTH_ENABLED 0x05 155 156 // set system Bluetooth state 157 #define BTSTACK_SET_SYSTEM_BLUETOOTH_ENABLED 0x06 158 159 // enable inquiry scan for this client 160 #define BTSTACK_SET_DISCOVERABLE 0x07 161 162 // set global Bluetooth state 163 #define BTSTACK_SET_BLUETOOTH_ENABLED 0x08 164 165 // create l2cap channel: param bd_addr(48), psm (16) 166 #define L2CAP_CREATE_CHANNEL 0x20 167 168 // disconnect l2cap disconnect, param channel(16), reason(8) 169 #define L2CAP_DISCONNECT 0x21 170 171 // register l2cap service: param psm(16), mtu (16) 172 #define L2CAP_REGISTER_SERVICE 0x22 173 174 // unregister l2cap disconnect, param psm(16) 175 #define L2CAP_UNREGISTER_SERVICE 0x23 176 177 // accept connection param bd_addr(48), dest cid (16) 178 #define L2CAP_ACCEPT_CONNECTION 0x24 179 180 // decline l2cap disconnect,param bd_addr(48), dest cid (16), reason(8) 181 #define L2CAP_DECLINE_CONNECTION 0x25 182 183 // create l2cap channel: param bd_addr(48), psm (16), mtu (16) 184 #define L2CAP_CREATE_CHANNEL_MTU 0x26 185 186 // register SDP Service Record: service record (size) 187 #define SDP_REGISTER_SERVICE_RECORD 0x30 188 189 // unregister SDP Service Record 190 #define SDP_UNREGISTER_SERVICE_RECORD 0x31 191 192 // Get remote RFCOMM services 193 #define SDP_CLIENT_QUERY_RFCOMM_SERVICES 0x32 194 195 // Get remote SDP services 196 #define SDP_CLIENT_QUERY_SERVICES 0x33 197 198 // RFCOMM "HCI" Commands 199 #define RFCOMM_CREATE_CHANNEL 0x40 200 #define RFCOMM_DISCONNECT 0x41 201 #define RFCOMM_REGISTER_SERVICE 0x42 202 #define RFCOMM_UNREGISTER_SERVICE 0x43 203 #define RFCOMM_ACCEPT_CONNECTION 0x44 204 #define RFCOMM_DECLINE_CONNECTION 0x45 205 #define RFCOMM_PERSISTENT_CHANNEL 0x46 206 #define RFCOMM_CREATE_CHANNEL_WITH_CREDITS 0x47 207 #define RFCOMM_REGISTER_SERVICE_WITH_CREDITS 0x48 208 #define RFCOMM_GRANT_CREDITS 0x49 209 210 // GAP Classic 0x50 211 #define GAP_DISCONNECT 0x50 212 #define GAP_INQUIRY_START 0x51 213 #define GAP_INQUIRY_STOP 0x52 214 #define GAP_REMOTE_NAME_REQUEST 0x53 215 #define GAP_DROP_LINK_KEY_FOR_BD_ADDR 0x54 216 #define GAP_DELETE_ALL_LINK_KEYS 0x55 217 #define GAP_PIN_CODE_RESPONSE 0x56 218 #define GAP_PIN_CODE_NEGATIVE 0x57 219 220 // GAP LE 0x60 221 #define GAP_LE_SCAN_START 0x60 222 #define GAP_LE_SCAN_STOP 0x61 223 #define GAP_LE_CONNECT 0x62 224 #define GAP_LE_CONNECT_CANCEL 0x63 225 #define GAP_LE_SET_SCAN_PARAMETERS 0x64 226 227 // GATT (Client) 0x70 228 #define GATT_DISCOVER_ALL_PRIMARY_SERVICES 0x70 229 #define GATT_DISCOVER_PRIMARY_SERVICES_BY_UUID16 0x71 230 #define GATT_DISCOVER_PRIMARY_SERVICES_BY_UUID128 0x72 231 #define GATT_FIND_INCLUDED_SERVICES_FOR_SERVICE 0x73 232 #define GATT_DISCOVER_CHARACTERISTICS_FOR_SERVICE 0x74 233 #define GATT_DISCOVER_CHARACTERISTICS_FOR_SERVICE_BY_UUID128 0x75 234 #define GATT_DISCOVER_CHARACTERISTIC_DESCRIPTORS 0x76 235 #define GATT_READ_VALUE_OF_CHARACTERISTIC 0x77 236 #define GATT_READ_LONG_VALUE_OF_CHARACTERISTIC 0x78 237 #define GATT_WRITE_VALUE_OF_CHARACTERISTIC_WITHOUT_RESPONSE 0x79 238 #define GATT_WRITE_VALUE_OF_CHARACTERISTIC 0x7A 239 #define GATT_WRITE_LONG_VALUE_OF_CHARACTERISTIC 0x7B 240 #define GATT_RELIABLE_WRITE_LONG_VALUE_OF_CHARACTERISTIC 0x7C 241 #define GATT_READ_CHARACTERISTIC_DESCRIPTOR 0X7D 242 #define GATT_READ_LONG_CHARACTERISTIC_DESCRIPTOR 0X7E 243 #define GATT_WRITE_CHARACTERISTIC_DESCRIPTOR 0X7F 244 #define GATT_WRITE_LONG_CHARACTERISTIC_DESCRIPTOR 0X80 245 #define GATT_WRITE_CLIENT_CHARACTERISTIC_CONFIGURATION 0X81 246 #define GATT_GET_MTU 0x82 247 248 // SM 0x90 249 #define SM_SET_AUTHENTICATION_REQUIREMENTS 0x90 250 #define SM_SET_IO_CAPABILITIES 0x92 251 #define SM_BONDING_DECLINE 0x93 252 #define SM_JUST_WORKS_CONFIRM 0x94 253 #define SM_NUMERIC_COMPARISON_CONFIRM 0x95 254 #define SM_PASSKEY_INPUT 0x96 255 256 // ATT 257 258 // .. 259 // Internal properties reuse some GATT Characteristic Properties fields 260 #define ATT_DB_VERSION 0x01 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 0x01 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 0x02 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 0x03 293 /** 294 * @format B31 295 * @param bd_addr 296 * @param class_of_device 297 * @param link_type 298 */ 299 #define HCI_EVENT_CONNECTION_REQUEST 0x04 300 /** 301 * @format 121 302 * @param status 303 * @param connection_handle 304 * @param reason 305 */ 306 #define HCI_EVENT_DISCONNECTION_COMPLETE 0x05 307 /** 308 * @format 12 309 * @param status 310 * @param connection_handle 311 */ 312 #define HCI_EVENT_AUTHENTICATION_COMPLETE 0x06 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 0x07 324 /** 325 * @format 121 326 * @param status 327 * @param connection_handle 328 * @param encryption_enabled 329 */ 330 #define HCI_EVENT_ENCRYPTION_CHANGE 0x08 331 /** 332 * @format 12 333 * @param status 334 * @param connection_handle 335 */ 336 #define HCI_EVENT_CHANGE_CONNECTION_LINK_KEY_COMPLETE 0x09 337 /** 338 * @format 121 339 * @param status 340 * @param connection_handle 341 * @param key_flag 342 */ 343 #define HCI_EVENT_MASTER_LINK_KEY_COMPLETE 0x0A 344 345 #define HCI_EVENT_READ_REMOTE_SUPPORTED_FEATURES_COMPLETE 0x0B 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 0x0C 356 357 #define HCI_EVENT_QOS_SETUP_COMPLETE 0x0D 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 0x0E 366 /** 367 * @format 112 368 * @param status 369 * @param num_hci_command_packets 370 * @param command_opcode 371 */ 372 #define HCI_EVENT_COMMAND_STATUS 0x0F 373 374 /** 375 * @format 1 376 * @param hardware_code 377 */ 378 #define HCI_EVENT_HARDWARE_ERROR 0x10 379 380 #define HCI_EVENT_FLUSH_OCCURRED 0x11 381 382 /** 383 * @format 1B1 384 * @param status 385 * @param bd_addr 386 * @param role 387 */ 388 #define HCI_EVENT_ROLE_CHANGE 0x12 389 390 // TODO: number_of_handles 1, connection_handle[H*i], hc_num_of_completed_packets[2*i] 391 #define HCI_EVENT_NUMBER_OF_COMPLETED_PACKETS 0x13 392 393 /** 394 * @format 1H12 395 * @param status 396 * @param handle 397 * @param mode 398 * @param interval 399 */ 400 #define HCI_EVENT_MODE_CHANGE 0x14 401 402 // TODO: num_keys, bd_addr[B*i], link_key[16 octets * i] 403 #define HCI_EVENT_RETURN_LINK_KEYS 0x15 404 405 /** 406 * @format B 407 * @param bd_addr 408 */ 409 #define HCI_EVENT_PIN_CODE_REQUEST 0x16 410 411 /** 412 * @format B 413 * @param bd_addr 414 */ 415 #define HCI_EVENT_LINK_KEY_REQUEST 0x17 416 417 // TODO: bd_addr B, link_key 16octets, key_type 1 418 #define HCI_EVENT_LINK_KEY_NOTIFICATION 0x18 419 420 /** 421 * @format 1 422 * @param link_type 423 */ 424 #define HCI_EVENT_DATA_BUFFER_OVERFLOW 0x1A 425 426 /** 427 * @format H1 428 * @param handle 429 * @param lmp_max_slots 430 */ 431 #define HCI_EVENT_MAX_SLOTS_CHANGED 0x1B 432 433 /** 434 * @format 1H2 435 * @param status 436 * @param handle 437 * @param clock_offset 438 */ 439 #define HCI_EVENT_READ_CLOCK_OFFSET_COMPLETE 0x1C 440 441 /** 442 * @format 1H2 443 * @param status 444 * @param handle 445 * @param packet_types 446 * @pnote packet_type is in plural to avoid clash with Java binding Packet.getPacketType() 447 */ 448 #define HCI_EVENT_CONNECTION_PACKET_TYPE_CHANGED 0x1D 449 450 /** 451 * @format 1B11321 452 * @param num_responses 453 * @param bd_addr 454 * @param page_scan_repetition_mode 455 * @param reserved 456 * @param class_of_device 457 * @param clock_offset 458 * @param rssi 459 */ 460 #define HCI_EVENT_INQUIRY_RESULT_WITH_RSSI 0x22 461 462 #define HCI_EVENT_READ_REMOTE_EXTENDED_FEATURES_COMPLETE 0x23 463 464 /** 465 * @format 1HB111221 466 * @param status 467 * @param handle 468 * @param bd_addr 469 * @param link_type 470 * @param transmission_interval 471 * @param retransmission_interval 472 * @param rx_packet_length 473 * @param tx_packet_length 474 * @param air_mode 475 */ 476 #define HCI_EVENT_SYNCHRONOUS_CONNECTION_COMPLETE 0x2C 477 478 // TODO: serialize extended_inquiry_response and provide parser 479 /** 480 * @format 1B11321 481 * @param num_responses 482 * @param bd_addr 483 * @param page_scan_repetition_mode 484 * @param reserved 485 * @param class_of_device 486 * @param clock_offset 487 * @param rssi 488 */ 489 #define HCI_EVENT_EXTENDED_INQUIRY_RESPONSE 0x2F 490 491 /** 492 * @format 1H 493 * @param status 494 * @param handle 495 */ 496 #define HCI_EVENT_ENCRYPTION_KEY_REFRESH_COMPLETE 0x30 497 498 /** 499 * @format B 500 * @param bd_addr 501 */ 502 #define HCI_EVENT_IO_CAPABILITY_REQUEST 0x31 503 504 /** 505 * @format B111 506 * @param bd_addr 507 * @param io_capability 508 * @param oob_data_present 509 * @param authentication_requirements 510 */ 511 #define HCI_EVENT_IO_CAPABILITY_RESPONSE 0x32 512 513 /** 514 * @format B4 515 * @param bd_addr 516 * @param numeric_value 517 */ 518 #define HCI_EVENT_USER_CONFIRMATION_REQUEST 0x33 519 520 /** 521 * @format B 522 * @param bd_addr 523 */ 524 #define HCI_EVENT_USER_PASSKEY_REQUEST 0x34 525 526 /** 527 * @format B 528 * @param bd_addr 529 */ 530 #define HCI_EVENT_REMOTE_OOB_DATA_REQUEST 0x35 531 532 /** 533 * @format 1B 534 * @param status 535 * @param bd_addr 536 */ 537 #define HCI_EVENT_SIMPLE_PAIRING_COMPLETE 0x36 538 539 /** 540 * @format B4 541 * @param bd_addr 542 * @param numeric_value 543 */ 544 #define HCI_EVENT_USER_PASSKEY_NOTIFICATION 0x3B 545 546 /** 547 * @format B1 548 * @param bd_addr 549 * @param notification_type 550 */ 551 #define HCI_EVENT_KEYPRESS_NOTIFICATION 0x3C 552 553 #define HCI_EVENT_LE_META 0x3E 554 555 // last used HCI_EVENT in 2.1 is 0x3d 556 // last used HCI_EVENT in 4.1 is 0x57 557 // last used HCI_EVENT in 5.2 is 0x58 558 559 #define HCI_EVENT_VENDOR_SPECIFIC 0xFF 560 561 /** 562 * @format 11H11B2221 563 * @param subevent_code 564 * @param status 565 * @param connection_handle 566 * @param role 567 * @param peer_address_type 568 * @param peer_address 569 * @param conn_interval 570 * @param conn_latency 571 * @param supervision_timeout 572 * @param master_clock_accuracy 573 */ 574 #define HCI_SUBEVENT_LE_CONNECTION_COMPLETE 0x01 575 576 // array of advertisements, not handled by event accessor generator 577 #define HCI_SUBEVENT_LE_ADVERTISING_REPORT 0x02 578 579 /** 580 * @format 11H222 581 * @param subevent_code 582 * @param status 583 * @param connection_handle 584 * @param conn_interval 585 * @param conn_latency 586 * @param supervision_timeout 587 */ 588 #define HCI_SUBEVENT_LE_CONNECTION_UPDATE_COMPLETE 0x03 589 590 /** 591 * @format 1HD 592 * @param subevent_code 593 * @param connection_handle 594 * @param le_features 595 */ 596 #define HCI_SUBEVENT_LE_READ_REMOTE_FEATURES_COMPLETE 0x04 597 598 /** 599 * @format 1HD2 600 * @param subevent_code 601 * @param connection_handle 602 * @param random_number 603 * @param encryption_diversifier 604 */ 605 #define HCI_SUBEVENT_LE_LONG_TERM_KEY_REQUEST 0x05 606 607 /** 608 * @format 1H2222 609 * @param subevent_code 610 * @param connection_handle 611 * @param interval_min 612 * @param interval_max 613 * @param latency 614 * @param timeout 615 */ 616 #define HCI_SUBEVENT_LE_REMOTE_CONNECTION_PARAMETER_REQUEST 0x06 617 618 /** 619 * @format 1H2222 620 * @param subevent_code 621 * @param connection_handle 622 * @param max_tx_octets 623 * @param max_tx_time 624 * @param max_rx_octets 625 * @param max_rx_time 626 */ 627 #define HCI_SUBEVENT_LE_DATA_LENGTH_CHANGE 0x07 628 629 /** 630 * @format 11QQ 631 * @param subevent_code 632 * @param status 633 * @param dhkey_x x coordinate of P256 public key 634 * @param dhkey_y y coordinate of P256 public key 635 */ 636 #define HCI_SUBEVENT_LE_READ_LOCAL_P256_PUBLIC_KEY_COMPLETE 0x08 637 /** 638 * @format 11Q 639 * @param subevent_code 640 * @param status 641 * @param dhkey Diffie-Hellman key 642 */ 643 #define HCI_SUBEVENT_LE_GENERATE_DHKEY_COMPLETE 0x09 644 645 /** 646 * @format 11H11BBB2221 647 * @param subevent_code 648 * @param status 649 * @param connection_handle 650 * @param role 651 * @param peer_address_type 652 * @param perr_addresss 653 * @param local_resolvable_private_addres 654 * @param peer_resolvable_private_addres 655 * @param conn_interval 656 * @param conn_latency 657 * @param supervision_timeout 658 * @param master_clock_accuracy 659 */ 660 #define HCI_SUBEVENT_LE_ENHANCED_CONNECTION_COMPLETE 0x0A 661 662 // array of advertisements, not handled by event accessor generator 663 #define HCI_SUBEVENT_LE_DIRECT_ADVERTISING_REPORT 0x0B 664 665 666 /** 667 * @format 1 668 * @param state 669 */ 670 #define BTSTACK_EVENT_STATE 0x60 671 672 /** 673 * @format 1 674 * @param number_connections 675 */ 676 #define BTSTACK_EVENT_NR_CONNECTIONS_CHANGED 0x61 677 678 /** 679 * @format 680 */ 681 #define BTSTACK_EVENT_POWERON_FAILED 0x62 682 683 /** 684 * @format 1 685 * @param discoverable 686 */ 687 #define BTSTACK_EVENT_DISCOVERABLE_ENABLED 0x66 688 689 // Daemon Events 690 691 /** 692 * @format 112 693 * @param major 694 * @param minor 695 @ @param revision 696 */ 697 #define DAEMON_EVENT_VERSION 0x63 698 699 // data: system bluetooth on/off (bool) 700 /** 701 * @format 1 702 * param system_bluetooth_enabled 703 */ 704 #define DAEMON_EVENT_SYSTEM_BLUETOOTH_ENABLED 0x64 705 706 // data: event (8), len(8), status (8) == 0, address (48), name (1984 bits = 248 bytes) 707 708 /* 709 * @format 1BT 710 * @param status == 0 to match read_remote_name_request 711 * @param address 712 * @param name 713 */ 714 #define DAEMON_EVENT_REMOTE_NAME_CACHED 0x65 715 716 // internal - data: event(8) 717 #define DAEMON_EVENT_CONNECTION_OPENED 0x67 718 719 // internal - data: event(8) 720 #define DAEMON_EVENT_CONNECTION_CLOSED 0x68 721 722 // data: event(8), len(8), local_cid(16), credits(8) 723 #define DAEMON_EVENT_L2CAP_CREDITS 0x74 724 725 /** 726 * @format 12 727 * @param status 728 * @param psm 729 */ 730 #define DAEMON_EVENT_L2CAP_SERVICE_REGISTERED 0x75 731 732 /** 733 * @format 21 734 * @param rfcomm_cid 735 * @param credits 736 */ 737 #define DAEMON_EVENT_RFCOMM_CREDITS 0x84 738 739 /** 740 * @format 11 741 * @param status 742 * @param channel_id 743 */ 744 #define DAEMON_EVENT_RFCOMM_SERVICE_REGISTERED 0x85 745 746 /** 747 * @format 11 748 * @param status 749 * @param server_channel_id 750 */ 751 #define DAEMON_EVENT_RFCOMM_PERSISTENT_CHANNEL 0x86 752 753 /** 754 * @format 14 755 * @param status 756 * @param service_record_handle 757 */ 758 #define DAEMON_EVENT_SDP_SERVICE_REGISTERED 0x90 759 760 761 762 // additional HCI events 763 764 /** 765 * @brief Indicates HCI transport enters/exits Sleep mode 766 * @format 1 767 * @param active 768 */ 769 #define HCI_EVENT_TRANSPORT_SLEEP_MODE 0x69 770 771 /** 772 * @brief Transport ready 773 */ 774 #define HCI_EVENT_TRANSPORT_READY 0x6D 775 776 /** 777 * @brief Outgoing packet 778 */ 779 #define HCI_EVENT_TRANSPORT_PACKET_SENT 0x6E 780 781 /** 782 * @format B 783 * @param handle 784 */ 785 #define HCI_EVENT_SCO_CAN_SEND_NOW 0x6F 786 787 788 // L2CAP EVENTS 789 790 /** 791 * @format 1BH222222111 792 * @param status 793 * @param address 794 * @param handle 795 * @param psm 796 * @param local_cid 797 * @param remote_cid 798 * @param local_mtu 799 * @param remote_mtu 800 * @param flush_timeout 801 * @param incoming 802 * @param mode 803 * @param fcs 804 */ 805 #define L2CAP_EVENT_CHANNEL_OPENED 0x70 806 807 /* 808 * @format 2 809 * @param local_cid 810 */ 811 #define L2CAP_EVENT_CHANNEL_CLOSED 0x71 812 813 /** 814 * @format BH222 815 * @param address 816 * @param handle 817 * @param psm 818 * @param local_cid 819 * @param remote_cid 820 */ 821 #define L2CAP_EVENT_INCOMING_CONNECTION 0x72 822 823 // ?? 824 // data: event(8), len(8), handle(16) 825 #define L2CAP_EVENT_TIMEOUT_CHECK 0x73 826 827 /** 828 * @format H2222 829 * @param handle 830 * @param interval_min 831 * @param interval_max 832 * @param latencey 833 * @param timeout_multiplier 834 */ 835 #define L2CAP_EVENT_CONNECTION_PARAMETER_UPDATE_REQUEST 0x76 836 837 // data: event(8), len(8), handle(16), result (16) (0 == ok, 1 == fail) 838 /** 839 * @format H2 840 * @param handle 841 * @param result 842 */ 843 #define L2CAP_EVENT_CONNECTION_PARAMETER_UPDATE_RESPONSE 0x77 844 845 /** 846 * @format 2 847 * @param local_cid 848 */ 849 #define L2CAP_EVENT_CAN_SEND_NOW 0x78 850 851 // LE Data Channels 852 853 /** 854 * @format 1BH2222 855 * @param address_type 856 * @param address 857 * @param handle 858 * @param psm 859 * @param local_cid 860 * @param remote_cid 861 * @param remote_mtu 862 */ 863 #define L2CAP_EVENT_LE_INCOMING_CONNECTION 0x79 864 865 /** 866 * @format 11BH122222 867 * @param status 868 * @param address_type 869 * @param address 870 * @param handle 871 * @param incoming 872 * @param psm 873 * @param local_cid 874 * @param remote_cid 875 * @param local_mtu 876 * @param remote_mtu 877 */ 878 #define L2CAP_EVENT_LE_CHANNEL_OPENED 0x7a 879 880 /* 881 * @format 2 882 * @param local_cid 883 */ 884 #define L2CAP_EVENT_LE_CHANNEL_CLOSED 0x7b 885 886 /* 887 * @format 2 888 * @param local_cid 889 */ 890 #define L2CAP_EVENT_LE_CAN_SEND_NOW 0x7c 891 892 /* 893 * @format 2 894 * @param local_cid 895 */ 896 #define L2CAP_EVENT_LE_PACKET_SENT 0x7d 897 898 /* 899 * @format 2 900 * @param local_cid 901 */ 902 #define L2CAP_EVENT_ERTM_BUFFER_RELEASED 0x7e 903 904 /* 905 * @format 906 */ 907 #define L2CAP_EVENT_TRIGGER_RUN 0x7f 908 909 910 // RFCOMM EVENTS 911 912 /** 913 * @format 1B21221 914 * @param status 915 * @param bd_addr 916 * @param con_handle 917 * @param server_channel 918 * @param rfcomm_cid 919 * @param max_frame_size 920 * @param incoming 921 */ 922 #define RFCOMM_EVENT_CHANNEL_OPENED 0x80 923 924 /** 925 * @format 2 926 * @param rfcomm_cid 927 */ 928 #define RFCOMM_EVENT_CHANNEL_CLOSED 0x81 929 930 /** 931 * @format B12H 932 * @param bd_addr 933 * @param server_channel 934 * @param rfcomm_cid 935 * @param con_handle 936 937 */ 938 #define RFCOMM_EVENT_INCOMING_CONNECTION 0x82 939 940 /** 941 * @format 21 942 * @param rfcomm_cid 943 * @param line_status 944 */ 945 #define RFCOMM_EVENT_REMOTE_LINE_STATUS 0x83 946 947 /** 948 * @format 21 949 * @param rfcomm_cid 950 * @param modem_status 951 */ 952 #define RFCOMM_EVENT_REMOTE_MODEM_STATUS 0x87 953 954 /** 955 * note: port configuration not parsed by stack, getters provided by rfcomm.h 956 * param rfcomm_cid 957 * param remote - 0 for local port, 1 for remote port 958 * param baud_rate 959 * param data_bits 960 * param stop_bits 961 * param parity 962 * param flow_control 963 * param xon 964 * param xoff 965 */ 966 #define RFCOMM_EVENT_PORT_CONFIGURATION 0x88 967 968 /** 969 * @format 2 970 * @param rfcomm_cid 971 */ 972 #define RFCOMM_EVENT_CAN_SEND_NOW 0x89 973 974 975 /** 976 * @format 1 977 * @param status 978 */ 979 #define SDP_EVENT_QUERY_COMPLETE 0x91 980 981 /** 982 * @format 1T 983 * @param rfcomm_channel 984 * @param name 985 */ 986 #define SDP_EVENT_QUERY_RFCOMM_SERVICE 0x92 987 988 /** 989 * @format 22221 990 * @param record_id 991 * @param attribute_id 992 * @param attribute_length 993 * @param data_offset 994 * @param data 995 */ 996 #define SDP_EVENT_QUERY_ATTRIBUTE_BYTE 0x93 997 998 /** 999 * @format 22LV 1000 * @param record_id 1001 * @param attribute_id 1002 * @param attribute_length 1003 * @param attribute_value 1004 */ 1005 #define SDP_EVENT_QUERY_ATTRIBUTE_VALUE 0x94 1006 1007 /** 1008 * @format 224 1009 * @param total_count 1010 * @param record_index 1011 * @param record_handle 1012 * @note Not provided by daemon, only used for internal testing 1013 */ 1014 #define SDP_EVENT_QUERY_SERVICE_RECORD_HANDLE 0x95 1015 1016 /** 1017 * @format H1 1018 * @param handle 1019 * @param att_status see ATT errors in bluetooth.h 1020 */ 1021 #define GATT_EVENT_QUERY_COMPLETE 0xA0 1022 1023 /** 1024 * @format HX 1025 * @param handle 1026 * @param service 1027 */ 1028 #define GATT_EVENT_SERVICE_QUERY_RESULT 0xA1 1029 1030 /** 1031 * @format HY 1032 * @param handle 1033 * @param characteristic 1034 */ 1035 #define GATT_EVENT_CHARACTERISTIC_QUERY_RESULT 0xA2 1036 1037 /** 1038 * @format H2X 1039 * @param handle 1040 * @param include_handle 1041 * @param service 1042 */ 1043 #define GATT_EVENT_INCLUDED_SERVICE_QUERY_RESULT 0xA3 1044 1045 /** 1046 * @format HZ 1047 * @param handle 1048 * @param characteristic_descriptor 1049 */ 1050 #define GATT_EVENT_ALL_CHARACTERISTIC_DESCRIPTORS_QUERY_RESULT 0xA4 1051 1052 /** 1053 * @format H2LV 1054 * @param handle 1055 * @param value_handle 1056 * @param value_length 1057 * @param value 1058 */ 1059 #define GATT_EVENT_CHARACTERISTIC_VALUE_QUERY_RESULT 0xA5 1060 1061 /** 1062 * @format H22LV 1063 * @param handle 1064 * @param value_handle 1065 * @param value_offset 1066 * @param value_length 1067 * @param value 1068 */ 1069 #define GATT_EVENT_LONG_CHARACTERISTIC_VALUE_QUERY_RESULT 0xA6 1070 1071 /** 1072 * @format H2LV 1073 * @param handle 1074 * @param value_handle 1075 * @param value_length 1076 * @param value 1077 */ 1078 #define GATT_EVENT_NOTIFICATION 0xA7 1079 1080 /** 1081 * @format H2LV 1082 * @param handle 1083 * @param value_handle 1084 * @param value_length 1085 * @param value 1086 */ 1087 #define GATT_EVENT_INDICATION 0xA8 1088 1089 /** 1090 * @format H2LV 1091 * @param handle 1092 * @param descriptor_handle 1093 * @param descriptor_length 1094 * @param descriptor 1095 */ 1096 #define GATT_EVENT_CHARACTERISTIC_DESCRIPTOR_QUERY_RESULT 0xA9 1097 1098 /** 1099 * @format H2LV 1100 * @param handle 1101 * @param descriptor_offset 1102 * @param descriptor_length 1103 * @param descriptor 1104 */ 1105 #define GATT_EVENT_LONG_CHARACTERISTIC_DESCRIPTOR_QUERY_RESULT 0xAA 1106 1107 /** 1108 * @format H2 1109 * @param handle 1110 * @param MTU 1111 */ 1112 #define GATT_EVENT_MTU 0xAB 1113 1114 /** 1115 * @format H 1116 * @param handle 1117 */ 1118 #define GATT_EVENT_CAN_WRITE_WITHOUT_RESPONSE 0xAC 1119 1120 1121 /** 1122 * @format 1BH 1123 * @param address_type 1124 * @param address 1125 * @param handle 1126 */ 1127 #define ATT_EVENT_CONNECTED 0xB3 1128 1129 /** 1130 * @format H 1131 * @param handle 1132 */ 1133 #define ATT_EVENT_DISCONNECTED 0xB4 1134 1135 /** 1136 * @format H2 1137 * @param handle 1138 * @param MTU 1139 */ 1140 #define ATT_EVENT_MTU_EXCHANGE_COMPLETE 0xB5 1141 1142 /** 1143 * @format 1H2 1144 * @param status 1145 * @param conn_handle 1146 * @param attribute_handle 1147 */ 1148 #define ATT_EVENT_HANDLE_VALUE_INDICATION_COMPLETE 0xB6 1149 1150 /** 1151 * @format 1152 */ 1153 #define ATT_EVENT_CAN_SEND_NOW 0xB7 1154 1155 // TODO: daemon only event 1156 1157 /** 1158 * @format 12 1159 * @param status 1160 * @param service_uuid 1161 */ 1162 #define BNEP_EVENT_SERVICE_REGISTERED 0xC0 1163 1164 /** 1165 * @format 12222BH 1166 * @param status 1167 * @param bnep_cid 1168 * @param source_uuid 1169 * @param destination_uuid 1170 * @param mtu 1171 * @param remote_address 1172 * @param con_handle 1173 */ 1174 #define BNEP_EVENT_CHANNEL_OPENED 0xC1 1175 1176 /** 1177 * @format 222B 1178 * @param bnep_cid 1179 * @param source_uuid 1180 * @param destination_uuid 1181 * @param remote_address 1182 */ 1183 #define BNEP_EVENT_CHANNEL_CLOSED 0xC2 1184 1185 /** 1186 * @format 222B1 1187 * @param bnep_cid 1188 * @param source_uuid 1189 * @param destination_uuid 1190 * @param remote_address 1191 * @param channel_state 1192 */ 1193 #define BNEP_EVENT_CHANNEL_TIMEOUT 0xC3 1194 1195 /** 1196 * @format 222B 1197 * @param bnep_cid 1198 * @param source_uuid 1199 * @param destination_uuid 1200 * @param remote_address 1201 */ 1202 #define BNEP_EVENT_CAN_SEND_NOW 0xC4 1203 1204 /** 1205 * @format H1B 1206 * @param handle 1207 * @param addr_type 1208 * @param address 1209 */ 1210 #define SM_EVENT_JUST_WORKS_REQUEST 0xC8 1211 1212 /** 1213 * @format H1B4 1214 * @param handle 1215 * @param addr_type 1216 * @param address 1217 * @param passkey 1218 */ 1219 #define SM_EVENT_PASSKEY_DISPLAY_NUMBER 0xC9 1220 1221 /** 1222 * @format H1B 1223 * @param handle 1224 * @param addr_type 1225 * @param address 1226 */ 1227 #define SM_EVENT_PASSKEY_DISPLAY_CANCEL 0xCA 1228 1229 /** 1230 * @format H1B 1231 * @param handle 1232 * @param addr_type 1233 * @param address 1234 */ 1235 #define SM_EVENT_PASSKEY_INPUT_NUMBER 0xCB 1236 1237 /** 1238 * @format H1B4 1239 * @param handle 1240 * @param addr_type 1241 * @param address 1242 * @param passkey 1243 */ 1244 #define SM_EVENT_NUMERIC_COMPARISON_REQUEST 0xCC 1245 1246 /** 1247 * @format H1B 1248 * @param handle 1249 * @param addr_type 1250 * @param address 1251 */ 1252 #define SM_EVENT_IDENTITY_RESOLVING_STARTED 0xCD 1253 1254 /** 1255 * @format H1B 1256 * @param handle 1257 * @param addr_type 1258 * @param address 1259 */ 1260 #define SM_EVENT_IDENTITY_RESOLVING_FAILED 0xCE 1261 1262 /** 1263 * @brief Identify resolving succeeded 1264 * 1265 * @format H1B1B2 1266 * @param handle 1267 * @param addr_type 1268 * @param address 1269 * @param identity_addr_type 1270 * @param identity_address 1271 * @param index 1272 * 1273 */ 1274 #define SM_EVENT_IDENTITY_RESOLVING_SUCCEEDED 0xCF 1275 1276 /** 1277 * @format H1B 1278 * @param handle 1279 * @param addr_type 1280 * @param address 1281 */ 1282 #define SM_EVENT_AUTHORIZATION_REQUEST 0xD0 1283 1284 /** 1285 * @format H1B1 1286 * @param handle 1287 * @param addr_type 1288 * @param address 1289 * @param authorization_result 1290 */ 1291 #define SM_EVENT_AUTHORIZATION_RESULT 0xD1 1292 1293 /** 1294 * @format H1 1295 * @param handle 1296 * @param action see SM_KEYPRESS_* 1297 */ 1298 #define SM_EVENT_KEYPRESS_NOTIFICATION 0xD2 1299 1300 /** 1301 * @brief Emitted during pairing to inform app about address used as identity 1302 * 1303 * @format H1B1B2 1304 * @param handle 1305 * @param addr_type 1306 * @param address 1307 * @param identity_addr_type 1308 * @param identity_address 1309 * @param index 1310 */ 1311 #define SM_EVENT_IDENTITY_CREATED 0xD3 1312 1313 /** 1314 * @brief Emitted to inform app that pairing has started. 1315 * @format H1B 1316 * @param handle 1317 * @param addr_type 1318 * @param address 1319 */ 1320 #define SM_EVENT_PAIRING_STARTED 0xD4 1321 1322 /** 1323 * @brief Emitted to inform app that pairing is complete. Possible status values: 1324 * ERROR_CODE_SUCCESS -> pairing success 1325 * ERROR_CODE_CONNECTION_TIMEOUT -> timeout 1326 * ERROR_CODE_REMOTE_USER_TERMINATED_CONNECTION -> disconnect 1327 * ERROR_CODE_AUTHENTICATION_FAILURE -> SM protocol error, see reason field with SM_REASON_* from bluetooth.h 1328 * 1329 * @format H1B11 1330 * @param handle 1331 * @param addr_type 1332 * @param address 1333 * @param status 1334 * @param reason if status == ERROR_CODE_AUTHENTICATION_FAILURE 1335 */ 1336 #define SM_EVENT_PAIRING_COMPLETE 0xD5 1337 1338 1339 /** 1340 * @brief Proactive Authentication for bonded devices started. 1341 * @format H1B 1342 * @param handle 1343 * @param addr_type 1344 * @param address 1345 */ 1346 #define SM_EVENT_REENCRYPTION_STARTED 0xD6 1347 1348 /** 1349 * @brief Proactive Authentication for bonded devices complete. Possible status values: 1350 * ERROR_CODE_SUCCESS -> connection secure 1351 * ERROR_CODE_CONNECTION_TIMEOUT -> timeout 1352 * ERROR_CODE_PIN_OR_KEY_MISSING -> remote did not provide (as Peripheral) or use LTK (as Central) 1353 * @format H1B1 1354 * @param handle 1355 * @param addr_type 1356 * @param address 1357 * @param status 1358 */ 1359 #define SM_EVENT_REENCRYPTION_COMPLETE 0xD7 1360 1361 // GAP 1362 1363 /** 1364 * @format H1 1365 * @param handle 1366 * @param security_level 1367 */ 1368 #define GAP_EVENT_SECURITY_LEVEL 0xD8 1369 1370 /** 1371 * @format 1B 1372 * @param status 1373 * @param address 1374 */ 1375 #define GAP_EVENT_DEDICATED_BONDING_COMPLETED 0xD9 1376 1377 /** 1378 * @format 11B1JV 1379 * @param advertising_event_type 1380 * @param address_type 1381 * @param address 1382 * @param rssi 1383 * @param data_length 1384 * @param data 1385 */ 1386 #define GAP_EVENT_ADVERTISING_REPORT 0xDA 1387 1388 /** 1389 * @format B13211122221JV 1390 * @param bd_addr 1391 * @param page_scan_repetition_mode 1392 * @param class_of_device 1393 * @param clock_offset 1394 * @param rssi_available 1395 * @param rssi 1396 * @param device_id_available 1397 * @param device_id_vendor_id_source 1398 * @param device_id_vendor_id 1399 * @param device_id_product_id 1400 * @param device_id_version 1401 * @param name_available 1402 * @param name_len 1403 * @param name 1404 */ 1405 #define GAP_EVENT_INQUIRY_RESULT 0xDB 1406 1407 /** 1408 * @format 1 1409 * @param status 1410 */ 1411 #define GAP_EVENT_INQUIRY_COMPLETE 0xDC 1412 1413 /** 1414 * @format H1 1415 * @param con_handle 1416 * @param rssi (signed integer -127..127) 1417 * @note Classic: rssi is in dB relative to Golden Receive Power Range 1418 * @note LE: rssi is absolute dBm 1419 */ 1420 #define GAP_EVENT_RSSI_MEASUREMENT 0xDD 1421 1422 /** 1423 * @format 1KKKK 1424 * @param oob_data_present 0 = none, 1 = p_192, 2 = p_256, 3 = both 1425 * @param c_192 Simple Pairing Hash C derived from P-192 public key 1426 * @param r_192 Simple Pairing Randomizer derived from P-192 public key 1427 * @param c_256 Simple Pairing Hash C derived from P-256 public key 1428 * @param r_256 Simple Pairing Randomizer derived from P-256 public key 1429 */ 1430 #define GAP_EVENT_LOCAL_OOB_DATA 0xDE 1431 1432 1433 /** 1434 * @format HB11 1435 * @param con_handle 1436 * @param bd_addr 1437 * @param ssp 1438 * @param initiator 1439 */ 1440 #define GAP_EVENT_PAIRING_STARTED 0xDF 1441 1442 /** 1443 * @format HB1 1444 * @param con_handle 1445 * @param bd_addr 1446 * @param status 1447 */ 1448 #define GAP_EVENT_PAIRING_COMPLETE 0xE0 1449 1450 // Meta Events, see below for sub events 1451 #define HCI_EVENT_HSP_META 0xE8 1452 #define HCI_EVENT_HFP_META 0xE9 1453 #define HCI_EVENT_ANCS_META 0xEA 1454 #define HCI_EVENT_AVDTP_META 0xEB 1455 #define HCI_EVENT_AVRCP_META 0xEC 1456 #define HCI_EVENT_GOEP_META 0xED 1457 #define HCI_EVENT_PBAP_META 0xEE 1458 #define HCI_EVENT_HID_META 0xEF 1459 #define HCI_EVENT_A2DP_META 0xF0 1460 #define HCI_EVENT_HIDS_META 0xF1 1461 #define HCI_EVENT_GATTSERVICE_META 0xF2 1462 #define HCI_EVENT_BIP_META 0xF3 1463 #define HCI_EVENT_MAP_META 0xF4 1464 #define HCI_EVENT_MESH_META 0xF5 1465 1466 // Potential other meta groups 1467 // #define HCI_EVENT_BNEP_META 0xxx 1468 // #define HCI_EVENT_GAP_META 0xxx 1469 // #define HCI_EVENT_GATT_META 0xxx 1470 // #define HCI_EVENT_PAN_META 0xxx 1471 // #define HCI_EVENT_SDP_META 0xxx 1472 // #define HCI_EVENT_SM_META 0xxx 1473 1474 1475 /** HSP Subevent */ 1476 1477 /** 1478 * @format 11 1479 * @param subevent_code 1480 * @param status 0 == OK 1481 */ 1482 #define HSP_SUBEVENT_RFCOMM_CONNECTION_COMPLETE 0x01 1483 1484 /** 1485 * @format 11 1486 * @param subevent_code 1487 * @param status 0 == OK 1488 */ 1489 #define HSP_SUBEVENT_RFCOMM_DISCONNECTION_COMPLETE 0x02 1490 1491 1492 /** 1493 * @format 11H 1494 * @param subevent_code 1495 * @param status 0 == OK 1496 * @param handle 1497 */ 1498 #define HSP_SUBEVENT_AUDIO_CONNECTION_COMPLETE 0x03 1499 1500 /** 1501 * @format 11 1502 * @param subevent_code 1503 * @param status 0 == OK 1504 */ 1505 #define HSP_SUBEVENT_AUDIO_DISCONNECTION_COMPLETE 0x04 1506 1507 /** 1508 * @format 1 1509 * @param subevent_code 1510 */ 1511 #define HSP_SUBEVENT_RING 0x05 1512 1513 /** 1514 * @format 11 1515 * @param subevent_code 1516 * @param gain Valid range: [0,15] 1517 */ 1518 #define HSP_SUBEVENT_MICROPHONE_GAIN_CHANGED 0x06 1519 1520 /** 1521 * @format 11 1522 * @param subevent_code 1523 * @param gain Valid range: [0,15] 1524 */ 1525 #define HSP_SUBEVENT_SPEAKER_GAIN_CHANGED 0x07 1526 1527 /** 1528 * @format 1JV 1529 * @param subevent_code 1530 * @param value_length 1531 * @param value 1532 */ 1533 #define HSP_SUBEVENT_HS_COMMAND 0x08 1534 1535 /** 1536 * @format 1JV 1537 * @param subevent_code 1538 * @param value_length 1539 * @param value 1540 */ 1541 #define HSP_SUBEVENT_AG_INDICATION 0x09 1542 1543 /** 1544 * @format 1 1545 * @param subevent_code 1546 */ 1547 #define HSP_SUBEVENT_BUTTON_PRESSED 0x0a 1548 1549 /** HFP Subevent */ 1550 1551 /** 1552 * @format 1H1B 1553 * @param subevent_code 1554 * @param acl_handle 1555 * @param status 0 == OK 1556 * @param bd_addr 1557 */ 1558 #define HFP_SUBEVENT_SERVICE_LEVEL_CONNECTION_ESTABLISHED 0x01 1559 1560 /** 1561 * @format 1H 1562 * @param subevent_code 1563 * @param acl_handle 1564 */ 1565 #define HFP_SUBEVENT_SERVICE_LEVEL_CONNECTION_RELEASED 0x02 1566 1567 /** 1568 * @format 1H1HB1 1569 * @param subevent_code 1570 * @param acl_handle 1571 * @param status 0 == OK 1572 * @param sco_handle 1573 * @param bd_addr 1574 * @param negotiated_codec 1575 */ 1576 #define HFP_SUBEVENT_AUDIO_CONNECTION_ESTABLISHED 0x03 1577 1578 /** 1579 * @format 1HH 1580 * @param subevent_code 1581 * @param acl_handle 1582 * @param sco_handle 1583 */ 1584 #define HFP_SUBEVENT_AUDIO_CONNECTION_RELEASED 0x04 1585 1586 /** 1587 * @format 1H1 1588 * @param subevent_code 1589 * @param acl_handle 1590 * @param status 0 == OK 1591 */ 1592 #define HFP_SUBEVENT_COMPLETE 0x05 1593 1594 /** 1595 * @format 1H111T 1596 * @param subevent_code 1597 * @param acl_handle 1598 * @param indicator_index 1599 * @param indicator_min_range 1600 * @param indicator_max_range 1601 * @param indicator_name 1602 */ 1603 #define HFP_SUBEVENT_AG_INDICATOR_MAPPING 0x06 1604 1605 /** 1606 * @format 1H1111111T 1607 * @param subevent_code 1608 * @param acl_handle 1609 * @param indicator_index 1610 * @param indicator_status 1611 * @param indicator_min_range 1612 * @param indicator_max_range 1613 * @param indicator_mandatory 1614 * @param indicator_enabled 1615 * @param indicator_status_changed 1616 * @param indicator_name 1617 */ 1618 #define HFP_SUBEVENT_AG_INDICATOR_STATUS_CHANGED 0x07 1619 1620 /** 1621 * @format 1H11T 1622 * @param subevent_code 1623 * @param acl_handle 1624 * @param network_operator_mode 1625 * @param network_operator_format 1626 * @param network_operator_name 1627 */ 1628 #define HFP_SUBEVENT_NETWORK_OPERATOR_CHANGED 0x08 1629 1630 /** 1631 * @format 1H1 1632 * @param subevent_code 1633 * @param acl_handle 1634 * @param error 1635 */ 1636 #define HFP_SUBEVENT_EXTENDED_AUDIO_GATEWAY_ERROR 0x09 1637 1638 /** 1639 * @format 1H 1640 * @param subevent_code 1641 * @param acl_handle 1642 */ 1643 #define HFP_SUBEVENT_START_RINGING 0x0A 1644 1645 /** 1646 * @format 1H 1647 * @param subevent_code 1648 * @param acl_handle 1649 */ 1650 #define HFP_SUBEVENT_RING 0x0B 1651 1652 /** 1653 * @format 1H 1654 * @param subevent_code 1655 * @param acl_handle 1656 */ 1657 #define HFP_SUBEVENT_STOP_RINGING 0x0C 1658 1659 /** 1660 * @format 1HT 1661 * @param subevent_code 1662 * @param acl_handle 1663 * @param number 1664 */ 1665 #define HFP_SUBEVENT_PLACE_CALL_WITH_NUMBER 0x0D 1666 1667 /** 1668 * @format 1H 1669 * @param subevent_code 1670 * @param acl_handle 1671 */ 1672 #define HFP_SUBEVENT_ATTACH_NUMBER_TO_VOICE_TAG 0x0E 1673 1674 /** 1675 * @format 1HT 1676 * @param subevent_code 1677 * @param acl_handle 1678 * @param number 1679 */ 1680 #define HFP_SUBEVENT_NUMBER_FOR_VOICE_TAG 0x0F 1681 1682 /** 1683 * @format 1HT 1684 * @param subevent_code 1685 * @param acl_handle 1686 * @param dtmf code 1687 */ 1688 #define HFP_SUBEVENT_TRANSMIT_DTMF_CODES 0x10 1689 1690 /** 1691 * @format 1H 1692 * @param subevent_code 1693 * @param acl_handle 1694 */ 1695 #define HFP_SUBEVENT_CALL_ANSWERED 0x11 1696 1697 /** 1698 * @format 1H 1699 * @param subevent_code 1700 * @param acl_handle 1701 */ 1702 #define HFP_SUBEVENT_CALL_TERMINATED 0x12 1703 1704 /** 1705 * @format 1H 1706 * @param subevent_code 1707 * @param acl_handle 1708 */ 1709 #define HFP_SUBEVENT_CONFERENCE_CALL 0x13 1710 1711 1712 /** 1713 * @format 1H1 1714 * @param subevent_code 1715 * @param acl_handle 1716 * @param gain 1717 */ 1718 #define HFP_SUBEVENT_SPEAKER_VOLUME 0x14 1719 1720 /** 1721 * @format 1H1 1722 * @param subevent_code 1723 * @param acl_handle 1724 * @param gain 1725 */ 1726 #define HFP_SUBEVENT_MICROPHONE_VOLUME 0x15 1727 1728 /** 1729 * @format 1H1T 1730 * @param subevent_code 1731 * @param acl_handle 1732 * @param type 1733 * @param number 1734 */ 1735 #define HFP_SUBEVENT_CALL_WAITING_NOTIFICATION 0x16 1736 1737 /** 1738 * @format 1H1T 1739 * @param subevent_code 1740 * @param acl_handle 1741 * @param type 1742 * @param number 1743 */ 1744 #define HFP_SUBEVENT_CALLING_LINE_IDENTIFICATION_NOTIFICATION 0x17 1745 1746 /** 1747 * @format 1H111111T 1748 * @param subevent_code 1749 * @param acl_handle 1750 * @param clcc_idx 1751 * @param clcc_dir 1752 * @param clcc_status 1753 * @param clcc_mode 1754 * @param clcc_mpty 1755 * @param bnip_type 1756 * @param bnip_number 1757 */ 1758 #define HFP_SUBEVENT_ENHANCED_CALL_STATUS 0x18 1759 1760 /** 1761 * @format 1H11T 1762 * @param subevent_code 1763 * @param acl_handle 1764 * @param status 1765 * @param bnip_type 1766 * @param bnip_number 1767 */ 1768 #define HFP_SUBEVENT_SUBSCRIBER_NUMBER_INFORMATION 0x19 1769 1770 /** 1771 * @format 1HT 1772 * @param subevent_code 1773 * @param acl_handle 1774 * @param value 1775 */ 1776 #define HFP_SUBEVENT_RESPONSE_AND_HOLD_STATUS 0x1A 1777 1778 /** 1779 * @format 1HT 1780 * @param subevent_code 1781 * @param acl_handle 1782 * @param command 1783 */ 1784 #define HFP_SUBEVENT_AT_MESSAGE_SENT 0x1B 1785 1786 /** 1787 * @format 1HT 1788 * @param subevent_code 1789 * @param acl_handle 1790 * @param command 1791 */ 1792 #define HFP_SUBEVENT_AT_MESSAGE_RECEIVED 0x1C 1793 1794 /** 1795 * @format 1H1 1796 * @param subevent_code 1797 * @param acl_handle 1798 * @param status 1799 */ 1800 #define HFP_SUBEVENT_IN_BAND_RING_TONE 0x1D 1801 1802 /** 1803 * @format 1H11 1804 * @param subevent_code 1805 * @param acl_handle 1806 * @param status // 0-success 1807 * @param enhanced // 0-legacy, 1-enhanced 1808 */ 1809 #define HFP_SUBEVENT_VOICE_RECOGNITION_ACTIVATED 0x1E 1810 1811 /** 1812 * @format 1H1 1813 * @param subevent_code 1814 * @param acl_handle 1815 * @param status // 0-success 1816 */ 1817 #define HFP_SUBEVENT_VOICE_RECOGNITION_DEACTIVATED 0x1F 1818 1819 /** 1820 * @format 1H1 1821 * @param subevent_code 1822 * @param acl_handle 1823 * @param status 1824 */ 1825 #define HFP_SUBEVENT_ENHANCED_VOICE_RECOGNITION_HF_READY_FOR_AUDIO 0x20 1826 1827 1828 /** 1829 * @format 1H1 1830 * @param subevent_code 1831 * @param acl_handle 1832 * @param status 1833 */ 1834 #define HFP_SUBEVENT_ENHANCED_VOICE_RECOGNITION_AG_READY_TO_ACCEPT_AUDIO_INPUT 0x21 1835 1836 /** 1837 * @format 1H1 1838 * @param subevent_code 1839 * @param acl_handle 1840 * @param status 1841 */ 1842 #define HFP_SUBEVENT_ENHANCED_VOICE_RECOGNITION_AG_IS_STARTING_SOUND 0x22 1843 1844 /** 1845 * @format 1H1 1846 * @param subevent_code 1847 * @param acl_handle 1848 * @param status 1849 */ 1850 #define HFP_SUBEVENT_ENHANCED_VOICE_RECOGNITION_AG_IS_PROCESSING_AUDIO_INPUT 0x23 1851 1852 /** 1853 * @format 1H1 1854 * @param subevent_code 1855 * @param acl_handle 1856 * @param status 1857 */ 1858 #define HFP_SUBEVENT_ENHANCED_VOICE_RECOGNITION_AG_MESSAGE_SENT 0x24 1859 1860 1861 /** 1862 * @format 1H211LV 1863 * @param subevent_code 1864 * @param acl_handle 1865 * @param text_id 1866 * @param text_type 1867 * @param text_operation 1868 * @param text_length 1869 * @param text 1870 */ 1871 #define HFP_SUBEVENT_ENHANCED_VOICE_RECOGNITION_AG_MESSAGE 0x25 1872 1873 /** 1874 * @format 1H1 1875 * @param subevent_code 1876 * @param acl_handle 1877 * @param status 1878 */ 1879 #define HFP_SUBEVENT_ECHO_CANCELING_AND_NOISE_REDUCTION_DEACTIVATE 0x26 1880 1881 /** 1882 * @format 1H21 1883 * @param subevent_code 1884 * @param acl_handle 1885 * @param uuid 1886 * @param value 1887 */ 1888 #define HFP_SUBEVENT_HF_INDICATOR 0x27 1889 1890 1891 // ANCS Client 1892 1893 /** 1894 * @format 1H 1895 * @param subevent_code 1896 * @param handle 1897 */ 1898 #define ANCS_SUBEVENT_CLIENT_CONNECTED 0xF0 1899 1900 /** 1901 * @format 1H2T 1902 * @param subevent_code 1903 * @param handle 1904 * @param attribute_id 1905 * @param text 1906 */ 1907 #define ANCS_SUBEVENT_CLIENT_NOTIFICATION 0xF1 1908 1909 /** 1910 * @format 1H 1911 * @param subevent_code 1912 * @param handle 1913 */ 1914 #define ANCS_SUBEVENT_CLIENT_DISCONNECTED 0xF2 1915 1916 1917 /** AVDTP Subevent */ 1918 1919 /** 1920 * @format 12111 1921 * @param subevent_code 1922 * @param avdtp_cid 1923 * @param local_seid 1924 * @param is_initiator 1925 * @param signal_identifier 1926 */ 1927 #define AVDTP_SUBEVENT_SIGNALING_ACCEPT 0x01 1928 1929 /** 1930 * @format 12111 1931 * @param subevent_code 1932 * @param avdtp_cid 1933 * @param local_seid 1934 * @param is_initiator 1935 * @param signal_identifier 1936 */ 1937 #define AVDTP_SUBEVENT_SIGNALING_REJECT 0x02 1938 1939 /** 1940 * @format 12111 1941 * @param subevent_code 1942 * @param avdtp_cid 1943 * @param local_seid 1944 * @param is_initiator 1945 * @param signal_identifier 1946 */ 1947 #define AVDTP_SUBEVENT_SIGNALING_GENERAL_REJECT 0x03 1948 1949 /** 1950 * @format 12B21 1951 * @param subevent_code 1952 * @param avdtp_cid 1953 * @param bd_addr 1954 * @param con_handle 1955 * @param status 0 == OK 1956 */ 1957 #define AVDTP_SUBEVENT_SIGNALING_CONNECTION_ESTABLISHED 0x04 1958 1959 /** 1960 * @format 12 1961 * @param subevent_code 1962 * @param avdtp_cid 1963 */ 1964 #define AVDTP_SUBEVENT_SIGNALING_CONNECTION_RELEASED 0x05 1965 1966 /** 1967 * @format 121111 1968 * @param subevent_code 1969 * @param avdtp_cid 1970 * @param remote_seid 0x01 – 0x3E 1971 * @param in_use 0-not in use, 1-in use 1972 * @param media_type 0-audio, 1-video, 2-multimedia 1973 * @param sep_type 0-source, 1-sink 1974 */ 1975 #define AVDTP_SUBEVENT_SIGNALING_SEP_FOUND 0x06 1976 1977 /** 1978 * @format 12111111111 1979 * @param subevent_code 1980 * @param avdtp_cid 1981 * @param remote_seid 1982 * @param media_type 1983 * @param sampling_frequency_bitmap 1984 * @param channel_mode_bitmap 1985 * @param block_length_bitmap 1986 * @param subbands_bitmap 1987 * @param allocation_method_bitmap 1988 * @param min_bitpool_value 1989 * @param max_bitpool_value 1990 */ 1991 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CAPABILITY 0x07 1992 1993 /** 1994 * @format 12111111112 1995 * @param subevent_code 1996 * @param avdtp_cid 1997 * @param remote_seid 1998 * @param media_type 1999 * @param layer_bitmap 2000 * @param crc 2001 * @param channel_mode_bitmap 2002 * @param media_payload_format 2003 * @param sampling_frequency_bitmap 2004 * @param vbr 2005 * @param bit_rate_index_bitmap 2006 */ 2007 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AUDIO_CAPABILITY 0x08 2008 2009 /** 2010 * @format 121112131 2011 * @param subevent_code 2012 * @param avdtp_cid 2013 * @param remote_seid 2014 * @param media_type 2015 * @param object_type_bitmap 2016 * @param sampling_frequency_bitmap 2017 * @param channels_bitmap 2018 * @param bit_rate 2019 * @param vbr 2020 */ 2021 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AAC_CAPABILITY 0x09 2022 2023 /** 2024 * @format 1211111132 2025 * @param subevent_code 2026 * @param avdtp_cid 2027 * @param remote_seid 2028 * @param media_type 2029 * @param version 2030 * @param channel_mode_bitmap 2031 * @param sampling_frequency_bitmap 2032 * @param vbr 2033 * @param bit_rate_index_bitmap 2034 * @param maximum_sul 2035 */ 2036 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_ATRAC_CAPABILITY 0x0A 2037 2038 /** 2039 * @format 12112LV 2040 * @param subevent_code 2041 * @param avdtp_cid 2042 * @param remote_seid 2043 * @param media_type 2044 * @param media_codec_type 2045 * @param media_codec_information_len 2046 * @param media_codec_information 2047 */ 2048 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CAPABILITY 0x0B 2049 2050 2051 /** 2052 * @format 121 2053 * @param subevent_code 2054 * @param avdtp_cid 2055 * @param remote_seid 2056 */ 2057 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_TRANSPORT_CAPABILITY 0x0C 2058 2059 2060 /** 2061 * @format 121 2062 * @param subevent_code 2063 * @param avdtp_cid 2064 * @param remote_seid 2065 */ 2066 #define AVDTP_SUBEVENT_SIGNALING_REPORTING_CAPABILITY 0x0D 2067 2068 2069 /** 2070 * @format 121111 2071 * @param subevent_code 2072 * @param avdtp_cid 2073 * @param remote_seid 2074 * @param recovery_type 2075 * @param maximum_recovery_window_size 2076 * @param maximum_number_media_packets 2077 */ 2078 #define AVDTP_SUBEVENT_SIGNALING_RECOVERY_CAPABILITY 0x0E 2079 2080 2081 /** 2082 * @format 1212LV 2083 * @param subevent_code 2084 * @param avdtp_cid 2085 * @param remote_seid 2086 * @param cp_type 2087 * @param cp_type_value_len 2088 * @param cp_type_value 2089 */ 2090 #define AVDTP_SUBEVENT_SIGNALING_CONTENT_PROTECTION_CAPABILITY 0x0F 2091 2092 2093 /** 2094 * @format 12111111111 2095 * @param subevent_code 2096 * @param avdtp_cid 2097 * @param remote_seid 2098 * @param fragmentation 2099 * @param transport_identifiers_num 2100 * @param transport_session_identifier_1 2101 * @param transport_session_identifier_2 2102 * @param transport_session_identifier_3 2103 * @param tcid_1 2104 * @param tcid_2 2105 * @param tcid_3 2106 */ 2107 #define AVDTP_SUBEVENT_SIGNALING_MULTIPLEXING_CAPABILITY 0x10 2108 2109 2110 /** 2111 * @format 121 2112 * @param subevent_code 2113 * @param avdtp_cid 2114 * @param remote_seid 2115 */ 2116 #define AVDTP_SUBEVENT_SIGNALING_DELAY_REPORTING_CAPABILITY 0x11 2117 2118 2119 /** 2120 * @format 121111 2121 * @param subevent_code 2122 * @param avdtp_cid 2123 * @param remote_seid 2124 * @param back_ch 2125 * @param media 2126 * @param recovery 2127 */ 2128 #define AVDTP_SUBEVENT_SIGNALING_HEADER_COMPRESSION_CAPABILITY 0x12 2129 2130 /** 2131 * @format 121 2132 * @param subevent_code 2133 * @param avdtp_cid 2134 * @param remote_seid 2135 */ 2136 #define AVDTP_SUBEVENT_SIGNALING_CAPABILITIES_DONE 0x13 2137 2138 2139 /** 2140 * @format 12111121111111 2141 * @param subevent_code 2142 * @param avdtp_cid 2143 * @param local_seid 2144 * @param remote_seid 2145 * @param reconfigure 2146 * @param media_type 2147 * @param sampling_frequency 2148 * @param channel_mode 2149 * @param num_channels 2150 * @param block_length 2151 * @param subbands 2152 * @param allocation_method 2153 * @param min_bitpool_value 2154 * @param max_bitpool_value 2155 */ 2156 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION 0x14 2157 2158 /** 2159 * @format 12111111111211 2160 * @param subevent_code 2161 * @param avdtp_cid 2162 * @param local_seid 2163 * @param remote_seid 2164 * @param reconfigure 2165 * @param media_type 2166 * @param layer 2167 * @param crc 2168 * @param channel_mode 2169 * @param num_channels 2170 * @param media_payload_format 2171 * @param sampling_frequency 2172 * @param vbr 2173 * @param bit_rate_index 2174 */ 2175 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AUDIO_CONFIGURATION 0x15 2176 2177 /** 2178 * @format 12111113131 2179 * @param subevent_code 2180 * @param avdtp_cid 2181 * @param local_seid 2182 * @param remote_seid 2183 * @param reconfigure 2184 * @param media_type 2185 * @param object_type 2186 * @param sampling_frequency 2187 * @param num_channels 2188 * @param bit_rate 2189 * @param vbr 2190 */ 2191 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AAC_CONFIGURATION 0x16 2192 2193 /** 2194 * @format 1211111112112 2195 * @param subevent_code 2196 * @param avdtp_cid 2197 * @param local_seid 2198 * @param remote_seid 2199 * @param reconfigure 2200 * @param media_type 2201 * @param version 2202 * @param channel_mode 2203 * @param num_channels 2204 * @param sampling_frequency 2205 * @param vbr 2206 * @param bit_rate_index 2207 * @param maximum_sul 2208 */ 2209 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_ATRAC_CONFIGURATION 0x17 2210 2211 /** 2212 * @format 1211112LV 2213 * @param subevent_code 2214 * @param avdtp_cid 2215 * @param local_seid 2216 * @param remote_seid 2217 * @param reconfigure 2218 * @param media_type 2219 * @param media_codec_type 2220 * @param media_codec_information_len 2221 * @param media_codec_information 2222 */ 2223 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION 0x18 2224 2225 /** 2226 * @format 12B111 2227 * @param subevent_code 2228 * @param avdtp_cid 2229 * @param bd_addr 2230 * @param local_seid 2231 * @param remote_seid 2232 * @param status 0 == OK 2233 */ 2234 #define AVDTP_SUBEVENT_STREAMING_CONNECTION_ESTABLISHED 0x19 2235 2236 /** 2237 * @format 121 2238 * @param subevent_code 2239 * @param avdtp_cid 2240 * @param local_seid 2241 */ 2242 #define AVDTP_SUBEVENT_STREAMING_CONNECTION_RELEASED 0x1A 2243 2244 /** 2245 * @format 1212 2246 * @param subevent_code 2247 * @param avdtp_cid 2248 * @param local_seid 2249 * @param sequence_number 2250 */ 2251 #define AVDTP_SUBEVENT_STREAMING_CAN_SEND_MEDIA_PACKET_NOW 0x1B 2252 2253 2254 /** 2255 * @format 12 2256 * @param subevent_code 2257 * @param avdtp_cid 2258 */ 2259 #define AVDTP_SUBEVENT_SIGNALING_SEP_DICOVERY_DONE 0x1C 2260 2261 /** 2262 * @format 1212 2263 * @param subevent_code 2264 * @param avdtp_cid 2265 * @param local_seid 2266 * @param delay_100us 2267 */ 2268 #define AVDTP_SUBEVENT_SIGNALING_DELAY_REPORT 0x1D 2269 2270 2271 /** A2DP Subevent */ 2272 /* Stream goes through following states: 2273 * - OPEN - indicated with A2DP_SUBEVENT_STREAM_ESTABLISHED event 2274 * - START - indicated with A2DP_SUBEVENT_STREAM_STARTED event 2275 * - SUSPEND - indicated with A2DP_SUBEVENT_STREAM_SUSPENDED event 2276 * - ABORT/STOP - indicated with A2DP_SUBEVENT_STREAM_RELEASED event 2277 2278 OPEN state will be followed by ABORT/STOP. Stream is ready but media transfer is not started. 2279 START can come only after the stream is OPENED, and indicates that media transfer is started. 2280 SUSPEND is optional, it pauses the stream. 2281 */ 2282 2283 /** 2284 * @format 121 Sent only by A2DP source. 2285 * @param subevent_code 2286 * @param a2dp_cid 2287 * @param local_seid 2288 */ 2289 #define A2DP_SUBEVENT_STREAMING_CAN_SEND_MEDIA_PACKET_NOW 0x01 2290 2291 /** 2292 * @format 12111121111111 2293 * @param subevent_code 2294 * @param a2dp_cid 2295 * @param local_seid 2296 * @param remote_seid 2297 * @param reconfigure 2298 * @param media_type 2299 * @param sampling_frequency 2300 * @param channel_mode 2301 * @param num_channels 2302 * @param block_length 2303 * @param subbands 2304 * @param allocation_method 2305 * @param min_bitpool_value 2306 * @param max_bitpool_value 2307 */ 2308 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION 0x02 2309 2310 /** 2311 * @format 12111111111211 2312 * @param subevent_code 2313 * @param a2dp_cid 2314 * @param local_seid 2315 * @param remote_seid 2316 * @param reconfigure 2317 * @param media_type 2318 * @param layer 2319 * @param crc 2320 * @param channel_mode 2321 * @param num_channels 2322 * @param media_payload_format 2323 * @param sampling_frequency 2324 * @param vbr 2325 * @param bit_rate_index 2326 */ 2327 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AUDIO_CONFIGURATION 0x03 2328 2329 /** 2330 * @format 12111113131 2331 * @param subevent_code 2332 * @param a2dp_cid 2333 * @param local_seid 2334 * @param remote_seid 2335 * @param reconfigure 2336 * @param media_type 2337 * @param object_type 2338 * @param sampling_frequency 2339 * @param num_channels 2340 * @param bit_rate 2341 * @param vbr 2342 */ 2343 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AAC_CONFIGURATION 0x04 2344 2345 /** 2346 * @format 1211111112112 2347 * @param subevent_code 2348 * @param a2dp_cid 2349 * @param local_seid 2350 * @param remote_seid 2351 * @param reconfigure 2352 * @param media_type 2353 * @param version 2354 * @param channel_mode 2355 * @param num_channels 2356 * @param sampling_frequency 2357 * @param vbr 2358 * @param bit_rate_index 2359 * @param maximum_sul 2360 */ 2361 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_ATRAC_CONFIGURATION 0x05 2362 2363 /** 2364 * @format 1211112LV 2365 * @param subevent_code 2366 * @param a2dp_cid 2367 * @param local_seid 2368 * @param remote_seid 2369 * @param reconfigure 2370 * @param media_type 2371 * @param media_codec_type 2372 * @param media_codec_information_len 2373 * @param media_codec_information 2374 */ 2375 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION 0x06 2376 2377 /** 2378 * @format 12B111 Stream is opened but not started. 2379 * @param subevent_code 2380 * @param a2dp_cid 2381 * @param bd_addr 2382 * @param local_seid 2383 * @param remote_seid 2384 * @param status 2385 */ 2386 #define A2DP_SUBEVENT_STREAM_ESTABLISHED 0x07 2387 2388 /** 2389 * @format 121 If ENABLE_AVDTP_ACCEPTOR_EXPLICIT_START_STREAM_CONFIRMATION, user must explicitly accept stream start. 2390 * @param subevent_code 2391 * @param a2dp_cid 2392 * @param local_seid 2393 */ 2394 #define A2DP_SUBEVENT_START_STREAM_REQUESTED 0x08 2395 2396 /** 2397 * @format 121 Indicates that media transfer is started. 2398 * @param subevent_code 2399 * @param a2dp_cid 2400 * @param local_seid 2401 */ 2402 #define A2DP_SUBEVENT_STREAM_STARTED 0x09 2403 2404 /** 2405 * @format 121 Stream is paused. 2406 * @param subevent_code 2407 * @param a2dp_cid 2408 * @param local_seid 2409 */ 2410 #define A2DP_SUBEVENT_STREAM_SUSPENDED 0x0A 2411 2412 /** 2413 * @format 121 Stream is stopped or aborted. 2414 * @param subevent_code 2415 * @param a2dp_cid 2416 * @param local_seid 2417 */ 2418 #define A2DP_SUBEVENT_STREAM_STOPPED 0x0B 2419 2420 /** 2421 * @format 121 Stream is released. 2422 * @param subevent_code 2423 * @param a2dp_cid 2424 * @param local_seid 2425 */ 2426 #define A2DP_SUBEVENT_STREAM_RELEASED 0x0C 2427 2428 /** 2429 * @format 1211 2430 * @param subevent_code 2431 * @param a2dp_cid 2432 * @param local_seid 2433 * @param signal_identifier 2434 */ 2435 #define A2DP_SUBEVENT_COMMAND_ACCEPTED 0x0D 2436 2437 /** 2438 * @format 12111 2439 * @param subevent_code 2440 * @param a2dp_cid 2441 * @param local_seid 2442 * @param is_initiator 2443 * @param signal_identifier 2444 */ 2445 #define A2DP_SUBEVENT_COMMAND_REJECTED 0x0E 2446 2447 /** 2448 * @format 12B21 2449 * @param subevent_code 2450 * @param a2dp_cid 2451 * @param bd_addr 2452 * @param con_handle 2453 * @param status 0 == OK 2454 */ 2455 #define A2DP_SUBEVENT_SIGNALING_CONNECTION_ESTABLISHED 0x0F 2456 2457 /** 2458 * @format 12 Signaling channel is released. 2459 * @param subevent_code 2460 * @param a2dp_cid 2461 */ 2462 #define A2DP_SUBEVENT_SIGNALING_CONNECTION_RELEASED 0x10 2463 2464 /** 2465 * @format 1211 Stream was reconfigured 2466 * @param subevent_code 2467 * @param a2dp_cid 2468 * @param local_seid 2469 * @param status 2470 */ 2471 #define A2DP_SUBEVENT_STREAM_RECONFIGURED 0x12 2472 2473 /** 2474 * @format 12111111111 2475 * @param subevent_code 2476 * @param a2dp_cid 2477 * @param remote_seid 2478 * @param media_type 2479 * @param sampling_frequency_bitmap 2480 * @param channel_mode_bitmap 2481 * @param block_length_bitmap 2482 * @param subbands_bitmap 2483 * @param allocation_method_bitmap 2484 * @param min_bitpool_value 2485 * @param max_bitpool_value 2486 */ 2487 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CAPABILITY 0x13 2488 2489 /** 2490 * @format 12111111112 2491 * @param subevent_code 2492 * @param a2dp_cid 2493 * @param remote_seid 2494 * @param media_type 2495 * @param layer_bitmap 2496 * @param crc 2497 * @param channel_mode_bitmap 2498 * @param media_payload_format 2499 * @param sampling_frequency_bitmap 2500 * @param vbr 2501 * @param bit_rate_index_bitmap 2502 */ 2503 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AUDIO_CAPABILITY 0x14 2504 2505 /** 2506 * @format 121112131 2507 * @param subevent_code 2508 * @param a2dp_cid 2509 * @param remote_seid 2510 * @param media_type 2511 * @param object_type_bitmap 2512 * @param sampling_frequency_bitmap 2513 * @param channels_bitmap 2514 * @param bit_rate 2515 * @param vbr 2516 */ 2517 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AAC_CAPABILITY 0x15 2518 2519 /** 2520 * @format 1211111132 2521 * @param subevent_code 2522 * @param a2dp_cid 2523 * @param remote_seid 2524 * @param media_type 2525 * @param version 2526 * @param channel_mode_bitmap 2527 * @param sampling_frequency_bitmap 2528 * @param vbr 2529 * @param bit_rate_index_bitmap 2530 * @param maximum_sul 2531 */ 2532 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_ATRAC_CAPABILITY 0x16 2533 2534 /** 2535 * @format 12112LV 2536 * @param subevent_code 2537 * @param a2dp_cid 2538 * @param remote_seid 2539 * @param media_type 2540 * @param media_codec_type 2541 * @param media_codec_information_len 2542 * @param media_codec_information 2543 */ 2544 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CAPABILITY 0x17 2545 2546 /** 2547 * @format 121 2548 * @param subevent_code 2549 * @param a2dp_cid 2550 * @param remote_seid 2551 */ 2552 #define A2DP_SUBEVENT_SIGNALING_DELAY_REPORTING_CAPABILITY 0x18 2553 2554 2555 /** 2556 * @format 1212 2557 * @param subevent_code 2558 * @param a2dp_cid 2559 * @param local_seid 2560 * @param delay_100us 2561 */ 2562 #define A2DP_SUBEVENT_SIGNALING_DELAY_REPORT 0x19 2563 2564 /** 2565 * @format 121 2566 * @param subevent_code 2567 * @param a2dp_cid 2568 * @param remote_seid 2569 */ 2570 #define A2DP_SUBEVENT_SIGNALING_CAPABILITIES_DONE 0x1A 2571 2572 /** 2573 * @format 12 2574 * @param subevent_code 2575 * @param a2dp_cid 2576 */ 2577 #define A2DP_SUBEVENT_SIGNALING_CAPABILITIES_COMPLETE 0x1B 2578 2579 2580 /** AVRCP Subevent */ 2581 2582 /** 2583 * @format 1211 2584 * @param subevent_code 2585 * @param avrcp_cid 2586 * @param command_type 2587 * @param play_status 2588 */ 2589 #define AVRCP_SUBEVENT_NOTIFICATION_PLAYBACK_STATUS_CHANGED 0x01 2590 2591 /** 2592 * @format 121 2593 * @param subevent_code 2594 * @param avrcp_cid 2595 * @param command_type 2596 */ 2597 #define AVRCP_SUBEVENT_NOTIFICATION_TRACK_CHANGED 0x02 2598 2599 /** 2600 * @format 121 2601 * @param subevent_code 2602 * @param avrcp_cid 2603 * @param command_type 2604 */ 2605 #define AVRCP_SUBEVENT_NOTIFICATION_EVENT_TRACK_REACHED_END 0x03 2606 2607 /** 2608 * @format 121 2609 * @param subevent_code 2610 * @param avrcp_cid 2611 * @param command_type 2612 */ 2613 #define AVRCP_SUBEVENT_NOTIFICATION_EVENT_TRACK_REACHED_START 0x04 2614 2615 /** 2616 * @format 1214 2617 * @param subevent_code 2618 * @param avrcp_cid 2619 * @param command_type 2620 * @param playback_position If no track currently selected, then return 0xFFFFFFFF in the INTERIM response. 2621 */ 2622 #define AVRCP_SUBEVENT_NOTIFICATION_EVENT_PLAYBACK_POS_CHANGED 0x05 2623 2624 /** 2625 * @format 1211 2626 * @param subevent_code 2627 * @param avrcp_cid 2628 * @param command_type 2629 * @param battery_status see avrcp_battery_status_t 2630 */ 2631 #define AVRCP_SUBEVENT_NOTIFICATION_EVENT_BATT_STATUS_CHANGED 0x06 2632 2633 /** 2634 * @format 1211 2635 * @param subevent_code 2636 * @param avrcp_cid 2637 * @param command_type 2638 * @param system_status see avrcp_system_status_t 2639 */ 2640 #define AVRCP_SUBEVENT_NOTIFICATION_EVENT_SYSTEM_STATUS_CHANGED 0x07 2641 2642 2643 // 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 2644 #define AVRCP_SUBEVENT_NOTIFICATION_EVENT_PLAYER_APPLICATION_SETTING_CHANGED 0x08 2645 2646 /** 2647 * @format 121 2648 * @param subevent_code 2649 * @param avrcp_cid 2650 * @param command_type 2651 */ 2652 #define AVRCP_SUBEVENT_NOTIFICATION_NOW_PLAYING_CONTENT_CHANGED 0x09 2653 2654 /** 2655 * @format 121 2656 * @param subevent_code 2657 * @param avrcp_cid 2658 * @param command_type 2659 */ 2660 #define AVRCP_SUBEVENT_NOTIFICATION_AVAILABLE_PLAYERS_CHANGED 0x0A 2661 2662 // AVRCP_SUBEVENT_NOTIFICATION_EVENT_ADDRESSED_PLAYER_CHANGED = 0x0b, -- The Addressed Player has been changed, see 6.9.2. 2663 2664 /** 2665 * @format 1212 2666 * @param subevent_code 2667 * @param avrcp_cid 2668 * @param command_type 2669 * @param uid_counter of the currently browsed player 2670 */ 2671 #define AVRCP_SUBEVENT_NOTIFICATION_EVENT_UIDS_CHANGED 0x0C 2672 2673 /** 2674 * @format 1211 2675 * @param subevent_code 2676 * @param avrcp_cid 2677 * @param command_type 2678 * @param absolute_volume 2679 */ 2680 #define AVRCP_SUBEVENT_NOTIFICATION_VOLUME_CHANGED 0x0D 2681 2682 2683 /** 2684 * @format 1211 2685 * @param subevent_code 2686 * @param avrcp_cid 2687 * @param command_type 2688 * @param absolute_volume 2689 */ 2690 #define AVRCP_SUBEVENT_SET_ABSOLUTE_VOLUME_RESPONSE 0x10 2691 2692 /** 2693 * @format 1211 2694 * @param subevent_code 2695 * @param avrcp_cid 2696 * @param command_type 2697 * @param notification_id 2698 */ 2699 #define AVRCP_SUBEVENT_ENABLE_NOTIFICATION_COMPLETE 0x11 2700 2701 /** 2702 * @format 112B2 2703 * @param subevent_code 2704 * @param status 0 == OK 2705 * @param avrcp_cid 2706 * @param bd_addr 2707 * @param con_handle 2708 */ 2709 #define AVRCP_SUBEVENT_CONNECTION_ESTABLISHED 0x12 2710 2711 /** 2712 * @format 12 2713 * @param subevent_code 2714 * @param avrcp_cid 2715 */ 2716 #define AVRCP_SUBEVENT_CONNECTION_RELEASED 0x13 2717 2718 /** 2719 * @format 12111 2720 * @param subevent_code 2721 * @param avrcp_cid 2722 * @param command_type 2723 * @param repeat_mode 2724 * @param shuffle_mode 2725 */ 2726 #define AVRCP_SUBEVENT_SHUFFLE_AND_REPEAT_MODE 0x14 2727 2728 /** 2729 * @format 121441 2730 * @param subevent_code 2731 * @param avrcp_cid 2732 * @param command_type 2733 * @param song_length 2734 * @param song_position 2735 * @param play_status 2736 */ 2737 #define AVRCP_SUBEVENT_PLAY_STATUS 0x15 2738 2739 /** 2740 * @format 1211 2741 * @param subevent_code 2742 * @param avrcp_cid 2743 * @param command_type 2744 * @param operation_id 2745 */ 2746 #define AVRCP_SUBEVENT_OPERATION_START 0x16 2747 2748 /** 2749 * @format 1211 2750 * @param subevent_code 2751 * @param avrcp_cid 2752 * @param command_type 2753 * @param operation_id 2754 */ 2755 #define AVRCP_SUBEVENT_OPERATION_COMPLETE 0x17 2756 2757 /** 2758 * @format 121 2759 * @param subevent_code 2760 * @param avrcp_cid 2761 * @param command_type 2762 */ 2763 #define AVRCP_SUBEVENT_PLAYER_APPLICATION_VALUE_RESPONSE 0x18 2764 2765 /** 2766 * @format 12 2767 * @param subevent_code 2768 * @param avrcp_cid 2769 */ 2770 #define AVRCP_SUBEVENT_COMPANY_IDS_QUERY 0x19 2771 2772 /** 2773 * @format 12 2774 * @param subevent_code 2775 * @param avrcp_cid 2776 */ 2777 #define AVRCP_SUBEVENT_EVENT_IDS_QUERY 0x1A 2778 2779 /** 2780 * @format 12 2781 * @param subevent_code 2782 * @param avrcp_cid 2783 */ 2784 #define AVRCP_SUBEVENT_PLAY_STATUS_QUERY 0x1B 2785 2786 /** 2787 * @format 121111 2788 * @param subevent_code 2789 * @param avrcp_cid 2790 * @param operation_id 2791 * @param button_pressed 2792 * @param operands_length 2793 * @param operand 2794 */ 2795 #define AVRCP_SUBEVENT_OPERATION 0x1C 2796 2797 /** 2798 * @format 1211 2799 * @param subevent_code 2800 * @param avrcp_cid 2801 * @param command_type 2802 * @param track 2803 */ 2804 #define AVRCP_SUBEVENT_NOW_PLAYING_TRACK_INFO 0x1D 2805 2806 /** 2807 * @format 1211 2808 * @param subevent_code 2809 * @param avrcp_cid 2810 * @param command_type 2811 * @param total_tracks 2812 */ 2813 #define AVRCP_SUBEVENT_NOW_PLAYING_TOTAL_TRACKS_INFO 0x1E 2814 2815 /** 2816 * @format 1214 2817 * @param subevent_code 2818 * @param avrcp_cid 2819 * @param command_type 2820 * @param song_length in ms 2821 */ 2822 #define AVRCP_SUBEVENT_NOW_PLAYING_SONG_LENGTH_MS_INFO 0x1F 2823 2824 /** 2825 * @format 121JV 2826 * @param subevent_code 2827 * @param avrcp_cid 2828 * @param command_type 2829 * @param value_len 2830 * @param value 2831 */ 2832 #define AVRCP_SUBEVENT_NOW_PLAYING_TITLE_INFO 0x20 2833 2834 /* 2835 * @format 121JV 2836 * @param subevent_code 2837 * @param avrcp_cid 2838 * @param command_type 2839 * @param value_len 2840 * @param value 2841 */ 2842 #define AVRCP_SUBEVENT_NOW_PLAYING_ARTIST_INFO 0x21 2843 2844 /* 2845 * @format 121JV 2846 * @param subevent_code 2847 * @param avrcp_cid 2848 * @param command_type 2849 * @param value_len 2850 * @param value 2851 */ 2852 #define AVRCP_SUBEVENT_NOW_PLAYING_ALBUM_INFO 0x22 2853 2854 /* 2855 * @format 121JV 2856 * @param subevent_code 2857 * @param avrcp_cid 2858 * @param command_type 2859 * @param value_len 2860 * @param value 2861 */ 2862 #define AVRCP_SUBEVENT_NOW_PLAYING_GENRE_INFO 0x23 2863 2864 /* 2865 * @format 1211 2866 * @param subevent_code 2867 * @param avrcp_cid 2868 * @param command_type 2869 * @param status 2870 */ 2871 #define AVRCP_SUBEVENT_NOW_PLAYING_INFO_DONE 0x24 2872 2873 /** 2874 * @format 1214 2875 * @param subevent_code 2876 * @param avrcp_cid 2877 * @param command_type 2878 * @param playback_position_ms 2879 */ 2880 #define AVRCP_SUBEVENT_NOTIFICATION_PLAYBACK_POS_CHANGED 0x25 2881 2882 /* 2883 * @format 12111 2884 * @param subevent_code 2885 * @param avrcp_cid 2886 * @param command_type 2887 * @param status 2888 * @param event_id 2889 */ 2890 #define AVRCP_SUBEVENT_GET_CAPABILITY_EVENT_ID 0x26 2891 /* 2892 * @format 1211 2893 * @param subevent_code 2894 * @param avrcp_cid 2895 * @param command_type 2896 * @param status 2897 */ 2898 #define AVRCP_SUBEVENT_GET_CAPABILITY_EVENT_ID_DONE 0x27 2899 2900 /* 2901 * @format 12113 2902 * @param subevent_code 2903 * @param avrcp_cid 2904 * @param command_type 2905 * @param status 2906 * @param company_id 2907 */ 2908 #define AVRCP_SUBEVENT_GET_CAPABILITY_COMPANY_ID 0x28 2909 /* 2910 * @format 1211 2911 * @param subevent_code 2912 * @param avrcp_cid 2913 * @param command_type 2914 * @param status 2915 */ 2916 #define AVRCP_SUBEVENT_GET_CAPABILITY_COMPANY_ID_DONE 0x29 2917 2918 2919 2920 /** 2921 * @format 1B2 2922 * @param subevent_code 2923 * @param bd_addr 2924 * @param browsing_cid 2925 */ 2926 #define AVRCP_SUBEVENT_INCOMING_BROWSING_CONNECTION 0x30 2927 2928 /** 2929 * @format 11B2 2930 * @param subevent_code 2931 * @param status 0 == OK 2932 * @param bd_addr 2933 * @param browsing_cid 2934 */ 2935 #define AVRCP_SUBEVENT_BROWSING_CONNECTION_ESTABLISHED 0x31 2936 2937 /** 2938 * @format 12 2939 * @param subevent_code 2940 * @param browsing_cid 2941 */ 2942 #define AVRCP_SUBEVENT_BROWSING_CONNECTION_RELEASED 0x32 2943 2944 /** 2945 * @format 12211 2946 * @param subevent_code 2947 * @param browsing_cid 2948 * @param uid_counter 2949 * @param browsing_status 2950 * @param bluetooth_status 2951 */ 2952 #define AVRCP_SUBEVENT_BROWSING_DONE 0x33 2953 2954 /** 2955 * @format 1214 2956 * @param subevent_code 2957 * @param browsing_cid 2958 * @param scope 2959 * @param attr_bitmap 2960 */ 2961 #define AVRCP_SUBEVENT_BROWSING_GET_FOLDER_ITEMS 0x34 2962 2963 /** 2964 * @format 121 2965 * @param subevent_code 2966 * @param browsing_cid 2967 * @param scope 2968 */ 2969 #define AVRCP_SUBEVENT_BROWSING_GET_TOTAL_NUM_ITEMS 0x35 2970 2971 /** 2972 * @format 122 2973 * @param subevent_code 2974 * @param browsing_cid 2975 * @param player_id 2976 */ 2977 #define AVRCP_SUBEVENT_BROWSING_SET_BROWSED_PLAYER 0x36 2978 2979 2980 2981 /** 2982 * @format 121BH1 2983 * @param subevent_code 2984 * @param goep_cid 2985 * @param status 2986 * @param bd_addr 2987 * @param con_handle 2988 * @param incoming 2989 */ 2990 #define GOEP_SUBEVENT_CONNECTION_OPENED 0x01 2991 2992 /** 2993 * @format 12 2994 * @param subevent_code 2995 * @param goep_cid 2996 */ 2997 #define GOEP_SUBEVENT_CONNECTION_CLOSED 0x02 2998 2999 /** 3000 * @format 12 3001 * @param subevent_code 3002 * @param goep_cid 3003 */ 3004 #define GOEP_SUBEVENT_CAN_SEND_NOW 0x03 3005 3006 /** 3007 * @format 121BH1 3008 * @param subevent_code 3009 * @param pbap_cid 3010 * @param status 3011 * @param bd_addr 3012 * @param con_handle 3013 * @param incoming 3014 */ 3015 #define PBAP_SUBEVENT_CONNECTION_OPENED 0x01 3016 3017 /** 3018 * @format 12 3019 * @param subevent_code 3020 * @param goep_cid 3021 */ 3022 #define PBAP_SUBEVENT_CONNECTION_CLOSED 0x02 3023 3024 /** 3025 * @format 121 3026 * @param subevent_code 3027 * @param goep_cid 3028 * @param status 3029 */ 3030 #define PBAP_SUBEVENT_OPERATION_COMPLETED 0x03 3031 3032 /** 3033 * @format 1212 3034 * @param subevent_code 3035 * @param goep_cid 3036 * @param status 3037 * @param phonebook_size 3038 */ 3039 #define PBAP_SUBEVENT_PHONEBOOK_SIZE 0x04 3040 3041 /** 3042 * @format 1211 3043 * @param subevent_code 3044 * @param goep_cid 3045 * @param user_id_required 3046 * @param full_access 3047 */ 3048 #define PBAP_SUBEVENT_AUTHENTICATION_REQUEST 0x05 3049 3050 /** 3051 * @format 12JVJV 3052 * @param subevent_code 3053 * @param goep_cid 3054 * @param name_len 3055 * @param name 3056 * @param handle_len 3057 * @param handle 3058 */ 3059 #define PBAP_SUBEVENT_CARD_RESULT 0x06 3060 3061 3062 // HID Meta Event Group 3063 3064 /** 3065 * @format 12BH 3066 * @param subevent_code 3067 * @param hid_cid 3068 * @param address 3069 * @param handle 3070 */ 3071 #define HID_SUBEVENT_INCOMING_CONNECTION 0x01 3072 3073 /** 3074 * @format 121BH1 3075 * @param subevent_code 3076 * @param hid_cid 3077 * @param status 3078 * @param bd_addr 3079 * @param con_handle 3080 * @param incoming 3081 */ 3082 #define HID_SUBEVENT_CONNECTION_OPENED 0x02 3083 3084 /** 3085 * @format 12 3086 * @param subevent_code 3087 * @param hid_cid 3088 */ 3089 #define HID_SUBEVENT_CONNECTION_CLOSED 0x03 3090 3091 /** 3092 * @format 12 3093 * @param subevent_code 3094 * @param hid_cid 3095 */ 3096 #define HID_SUBEVENT_CAN_SEND_NOW 0x04 3097 3098 /** 3099 * @format 12 3100 * @param subevent_code 3101 * @param hid_cid 3102 */ 3103 #define HID_SUBEVENT_SUSPEND 0x05 3104 3105 /** 3106 * @format 12 3107 * @param subevent_code 3108 * @param hid_cid 3109 */ 3110 #define HID_SUBEVENT_EXIT_SUSPEND 0x06 3111 3112 /** 3113 * @format 12 3114 * @param subevent_code 3115 * @param hid_cid 3116 */ 3117 #define HID_SUBEVENT_VIRTUAL_CABLE_UNPLUG 0x07 3118 3119 /** 3120 * @format 121LV 3121 * @param subevent_code 3122 * @param hid_cid 3123 * @param handshake_status 3124 * @param report_len 3125 * @param report 3126 */ 3127 #define HID_SUBEVENT_GET_REPORT_RESPONSE 0x08 3128 3129 /** 3130 * @format 121 3131 * @param subevent_code 3132 * @param hid_cid 3133 * @param handshake_status 3134 */ 3135 #define HID_SUBEVENT_SET_REPORT_RESPONSE 0x09 3136 3137 /** 3138 * @format 1211 3139 * @param subevent_code 3140 * @param hid_cid 3141 * @param handshake_status 3142 * @param protocol_mode 3143 */ 3144 #define HID_SUBEVENT_GET_PROTOCOL_RESPONSE 0x0A 3145 3146 /** 3147 * @format 1211 3148 * @param subevent_code 3149 * @param hid_cid 3150 * @param handshake_status 3151 * @param protocol_mode 3152 */ 3153 #define HID_SUBEVENT_SET_PROTOCOL_RESPONSE 0x0B 3154 3155 /** 3156 * @format 12LV 3157 * @param subevent_code 3158 * @param hid_cid 3159 * @param report_len 3160 * @param report 3161 */ 3162 #define HID_SUBEVENT_REPORT 0x0C 3163 3164 /** 3165 * @format 121 3166 * @param subevent_code 3167 * @param hid_cid 3168 * @param status 3169 */ 3170 #define HID_SUBEVENT_DESCRIPTOR_AVAILABLE 0x0D 3171 3172 /** 3173 * @format 1222 3174 * @param subevent_code 3175 * @param hid_cid 3176 * @param host_max_latency 3177 * @param host_min_timeout 3178 */ 3179 #define HID_SUBEVENT_SNIFF_SUBRATING_PARAMS 0x0E 3180 3181 // HIDS Meta Event Group 3182 3183 /** 3184 * @format 12 3185 * @param subevent_code 3186 * @param con_handle 3187 */ 3188 #define HIDS_SUBEVENT_CAN_SEND_NOW 0x01 3189 3190 /** 3191 * @format 121 3192 * @param subevent_code 3193 * @param con_handle 3194 * @param protocol_mode 3195 */ 3196 #define HIDS_SUBEVENT_PROTOCOL_MODE 0x02 3197 3198 /** 3199 * @format 121 3200 * @param subevent_code 3201 * @param con_handle 3202 * @param enable 3203 */ 3204 #define HIDS_SUBEVENT_BOOT_MOUSE_INPUT_REPORT_ENABLE 0x03 3205 3206 /** 3207 * @format 121 3208 * @param subevent_code 3209 * @param con_handle 3210 * @param enable 3211 */ 3212 #define HIDS_SUBEVENT_BOOT_KEYBOARD_INPUT_REPORT_ENABLE 0x04 3213 3214 /** 3215 * @format 121 3216 * @param subevent_code 3217 * @param con_handle 3218 * @param enable 3219 */ 3220 #define HIDS_SUBEVENT_INPUT_REPORT_ENABLE 0x05 3221 3222 /** 3223 * @format 121 3224 * @param subevent_code 3225 * @param con_handle 3226 * @param enable 3227 */ 3228 #define HIDS_SUBEVENT_OUTPUT_REPORT_ENABLE 0x06 3229 3230 /** 3231 * @format 121 3232 * @param subevent_code 3233 * @param con_handle 3234 * @param enable 3235 */ 3236 #define HIDS_SUBEVENT_FEATURE_REPORT_ENABLE 0x07 3237 3238 /** 3239 * @format 12 3240 * @param subevent_code 3241 * @param con_handle 3242 */ 3243 #define HIDS_SUBEVENT_SUSPEND 0x08 3244 3245 /** 3246 * @format 12 3247 * @param subevent_code 3248 * @param con_handle 3249 */ 3250 #define HIDS_SUBEVENT_EXIT_SUSPEND 0x09 3251 3252 /** 3253 * @format 1211 3254 * @param subevent_code 3255 * @param con_handle 3256 * @param measurement_type 0 - force magnitude, 1 - torque magnitude, see cycling_power_sensor_measurement_context_t 3257 * @param is_enhanced 3258 */ 3259 #define GATTSERVICE_SUBEVENT_CYCLING_POWER_START_CALIBRATION 0x01 3260 3261 /** 3262 * @format 12 3263 * @param subevent_code 3264 * @param con_handle 3265 */ 3266 #define GATTSERVICE_SUBEVENT_CYCLING_POWER_BROADCAST_START 0x02 3267 3268 /** 3269 * @format 12 3270 * @param subevent_code 3271 * @param con_handle 3272 */ 3273 #define GATTSERVICE_SUBEVENT_CYCLING_POWER_BROADCAST_STOP 0x03 3274 3275 /** 3276 * @format 12111 3277 * @param subevent_code 3278 * @param hids_cid 3279 * @param status 3280 * @param num_instances 3281 * @param poll_bitmap 3282 */ 3283 #define GATTSERVICE_SUBEVENT_BATTERY_SERVICE_CONNECTED 0x04 3284 3285 /** 3286 * @format 12111 3287 * @param subevent_code 3288 * @param hids_cid 3289 * @param sevice_index 3290 * @param att_status see ATT errors in bluetooth.h 3291 * @param level 3292 */ 3293 #define GATTSERVICE_SUBEVENT_BATTERY_SERVICE_LEVEL 0x05 3294 3295 /** 3296 * @format 1H1 3297 * @param subevent_code 3298 * @param con_handle 3299 * @param att_status 3300 */ 3301 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_DONE 0x06 3302 3303 /** 3304 * @format 1H1T 3305 * @param subevent_code 3306 * @param con_handle 3307 * @param att_status 3308 * @param value 3309 */ 3310 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_MANUFACTURER_NAME 0x07 3311 3312 /** 3313 * @format 1H1T 3314 * @param subevent_code 3315 * @param con_handle 3316 * @param att_status 3317 * @param value 3318 */ 3319 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_MODEL_NUMBER 0x08 3320 3321 /** 3322 * @format 1H1T 3323 * @param subevent_code 3324 * @param con_handle 3325 * @param att_status 3326 * @param value 3327 */ 3328 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_SERIAL_NUMBER 0x09 3329 3330 /** 3331 * @format 1H1T 3332 * @param subevent_code 3333 * @param con_handle 3334 * @param att_status 3335 * @param value 3336 */ 3337 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_HARDWARE_REVISION 0x0A 3338 3339 /** 3340 * @format 1H1T 3341 * @param subevent_code 3342 * @param con_handle 3343 * @param att_status 3344 * @param value 3345 */ 3346 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_FIRMWARE_REVISION 0x0B 3347 3348 /** 3349 * @format 1H1T 3350 * @param subevent_code 3351 * @param con_handle 3352 * @param att_status 3353 * @param value 3354 */ 3355 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_SOFTWARE_REVISION 0x0C 3356 3357 /** 3358 * @format 1H1413 3359 * @param subevent_code 3360 * @param con_handle 3361 * @param att_status 3362 * @param manufacturer_id_low 3363 * @param manufacturer_id_high 3364 * @param organizationally_unique_id 3365 */ 3366 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_SYSTEM_ID 0x0D 3367 3368 /** 3369 * @format 1H122 3370 * @param subevent_code 3371 * @param con_handle 3372 * @param att_status 3373 * @param value_a 3374 * @param value_b 3375 */ 3376 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_IEEE_REGULATORY_CERTIFICATION 0x0E 3377 3378 /** 3379 * @format 1H11222 3380 * @param subevent_code 3381 * @param con_handle 3382 * @param att_status 3383 * @param vendor_source_id 3384 * @param vendor_id 3385 * @param product_id 3386 * @param product_version 3387 */ 3388 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_PNP_ID 0x0F 3389 3390 /** 3391 * @format 1H1 3392 * @param subevent_code 3393 * @param con_handle 3394 * @param att_status 3395 */ 3396 #define GATTSERVICE_SUBEVENT_SCAN_PARAMETERS_SERVICE_CONNECTED 0x10 3397 3398 /** 3399 * @format 1H 3400 * @param subevent_code 3401 * @param con_handle 3402 */ 3403 #define GATTSERVICE_SUBEVENT_SPP_SERVICE_CONNECTED 0x11 3404 3405 /** 3406 * @format 1H 3407 * @param subevent_code 3408 * @param con_handle 3409 */ 3410 #define GATTSERVICE_SUBEVENT_SPP_SERVICE_DISCONNECTED 0x12 3411 3412 /** 3413 * @format 12111 3414 * @param subevent_code 3415 * @param hids_cid 3416 * @param status 3417 * @param protocol_mode 3418 * @param num_instances 3419 */ 3420 #define GATTSERVICE_SUBEVENT_HID_SERVICE_CONNECTED 0x13 3421 3422 /** 3423 * @format 1211LV 3424 * @param subevent_code 3425 * @param hids_cid 3426 * @param service_index 3427 * @param report_id 3428 * @param report_len 3429 * @param report 3430 */ 3431 #define GATTSERVICE_SUBEVENT_HID_REPORT 0x14 3432 3433 /** 3434 * @format 1212111 3435 * @param subevent_code 3436 * @param hids_cid 3437 * @param service_index 3438 * @param base_usb_hid_version Version number of base USB HID Specification implemented by HID Device 3439 * @param country_code Country HID Device hardware is localized for (not localized: 0x00) 3440 * @param remote_wake Indicates whether HID Device is capable of sending a wake-signal to a HID Host 3441 * @param normally_connectable Indicates whether HID Device will be advertising when bonded but not connected. 3442 */ 3443 #define GATTSERVICE_SUBEVENT_HID_INFORMATION 0x15 3444 3445 /** 3446 * @format 1211 3447 * @param subevent_code 3448 * @param hids_cid 3449 * @param service_index 3450 * @param protocol_mode see hid_protocol_mode_t in btstack_hid.h 3451 */ 3452 #define GATTSERVICE_SUBEVENT_HID_PROTOCOL_MODE 0x16 3453 3454 /** 3455 * @format 121 3456 * @param subevent_code 3457 * @param hids_cid 3458 * @param configuration 3459 */ 3460 #define GATTSERVICE_SUBEVENT_HID_SERVICE_REPORTS_NOTIFICATION 0x17 3461 3462 /** 3463 * @format 1H22 3464 * @param subevent_code 3465 * @param con_handle 3466 * @param max_scan_interval 3467 * @param min_scan_window 3468 */ 3469 #define GATTSERVICE_SUBEVENT_SCAN_PARAMETERS_SERVICE_SCAN_INTERVAL_UPDATE 0x18 3470 3471 // LE Audio 3472 3473 /** 3474 * @format 121 3475 * @param subevent_code 3476 * @param hids_cid 3477 * @param status 3478 */ 3479 #define GATTSERVICE_SUBEVENT_MICROPHONE_CONTROL_SERVICE_CONNECTED 0x19 3480 3481 /** 3482 * @format 1211 3483 * @param subevent_code 3484 * @param mics_cid 3485 * @param status 3486 * @param mute_value 3487 */ 3488 #define GATTSERVICE_SUBEVENT_MICROPHONE_CONTROL_SERVICE_MUTE 0x1A 3489 3490 // MAP Meta Event Group 3491 3492 /** 3493 * @format 121BH1 3494 * @param subevent_code 3495 * @param map_cid 3496 * @param status 3497 * @param bd_addr 3498 * @param con_handle 3499 * @param incoming 3500 */ 3501 #define MAP_SUBEVENT_CONNECTION_OPENED 0x01 3502 3503 /** 3504 * @format 12 3505 * @param subevent_code 3506 * @param map_cid 3507 */ 3508 #define MAP_SUBEVENT_CONNECTION_CLOSED 0x02 3509 3510 /** 3511 * @format 121 3512 * @param subevent_code 3513 * @param map_cid 3514 * @param status 3515 */ 3516 #define MAP_SUBEVENT_OPERATION_COMPLETED 0x03 3517 3518 3519 /** 3520 * @format 12LV 3521 * @param subevent_code 3522 * @param map_cid 3523 * @param name_len 3524 * @param name 3525 */ 3526 #define MAP_SUBEVENT_FOLDER_LISTING_ITEM 0x04 3527 3528 /** 3529 * @format 12D 3530 * @param subevent_code 3531 * @param map_cid 3532 * @param handle 3533 3534 */ 3535 #define MAP_SUBEVENT_MESSAGE_LISTING_ITEM 0x05 3536 3537 /** 3538 * @format 12 3539 * @param subevent_code 3540 * @param map_cid 3541 */ 3542 #define MAP_SUBEVENT_PARSING_DONE 0x06 3543 3544 3545 // MESH Meta Event Group 3546 3547 /** 3548 * @format 1 3549 * @param subevent_code 3550 */ 3551 #define MESH_SUBEVENT_CAN_SEND_NOW 0x01 3552 3553 /** 3554 * @format 11 3555 * @param subevent_code 3556 * @param status 3557 */ 3558 #define MESH_SUBEVENT_PB_TRANSPORT_PDU_SENT 0x02 3559 3560 /** 3561 * @format 1121 3562 * @param subevent_code 3563 * @param status 3564 * @param pb_transport_cid 3565 * @param pb_type 3566 */ 3567 #define MESH_SUBEVENT_PB_TRANSPORT_LINK_OPEN 0x03 3568 3569 /** 3570 * @format 112 3571 * @param subevent_code 3572 * @param pb_transport_cid 3573 * @param reason 3574 */ 3575 #define MESH_SUBEVENT_PB_TRANSPORT_LINK_CLOSED 0x04 3576 3577 /** 3578 * @format 121 3579 * @param subevent_code 3580 * @param pb_transport_cid 3581 * @param attention_time in seconds 3582 */ 3583 #define MESH_SUBEVENT_PB_PROV_ATTENTION_TIMER 0x10 3584 3585 /** 3586 * Device Role 3587 * @format 12 3588 * @param subevent_code 3589 * @param pb_transport_cid 3590 */ 3591 #define MESH_SUBEVENT_PB_PROV_START_EMIT_PUBLIC_KEY_OOB 0x11 3592 3593 /** 3594 * Device Role 3595 * @format 12 3596 * @param subevent_code 3597 * @param pb_transport_cid 3598 */ 3599 #define MESH_SUBEVENT_PB_PROV_STOP_EMIT_PUBLIC_KEY_OOB 0x12 3600 3601 /** 3602 * Device Role 3603 * @format 12 3604 * @param subevent_code 3605 * @param pb_transport_cid 3606 */ 3607 #define MESH_SUBEVENT_PB_PROV_INPUT_OOB_REQUEST 0x13 3608 3609 /** 3610 * Device Role 3611 * @format 124 3612 * @param subevent_code 3613 * @param pb_transport_cid 3614 * @param output_oob number 3615 */ 3616 #define MESH_SUBEVENT_PB_PROV_START_EMIT_OUTPUT_OOB 0x15 3617 3618 /** 3619 * Device Role 3620 * @format 12 3621 * @param subevent_code 3622 * @param pb_transport_cid 3623 */ 3624 #define MESH_SUBEVENT_PB_PROV_STOP_EMIT_OUTPUT_OOB 0x16 3625 3626 /** 3627 * Provisioner Role 3628 * @format 12 3629 * @param subevent_code 3630 * @param pb_transport_cid 3631 */ 3632 #define MESH_SUBEVENT_PB_PROV_START_RECEIVE_PUBLIC_KEY_OOB 0x17 3633 3634 /** 3635 * Provisioner Role 3636 * @format 12 3637 * @param subevent_code 3638 * @param pb_transport_cid 3639 */ 3640 #define MESH_SUBEVENT_PB_PROV_STOP_RECEIVE_PUBLIC_KEY_OOB 0x18 3641 3642 /** 3643 * Provisioner Role 3644 * @format 12 3645 * @param subevent_code 3646 * @param pb_transport_cid 3647 */ 3648 #define MESH_SUBEVENT_PB_PROV_OUTPUT_OOB_REQUEST 0x19 3649 3650 /** 3651 * Provisioner Role 3652 * @format 124 3653 * @param subevent_code 3654 * @param pb_transport_cid 3655 * @param output_oob number 3656 */ 3657 #define MESH_SUBEVENT_PB_PROV_START_EMIT_INPUT_OOB 0x1a 3658 3659 /** 3660 * Provisioner Role 3661 * @format 12 3662 * @param subevent_code 3663 * @param pb_transport_cid 3664 */ 3665 #define MESH_SUBEVENT_PB_PROV_STOP_EMIT_INPUT_OOB 0x1b 3666 3667 /** 3668 * Provisioner Role 3669 * @format 1212111212 3670 * @param subevent_code 3671 * @param pb_transport_cid 3672 * @param num_elements 3673 * @param algorithms 3674 * @param public_key 3675 * @param static_oob_type 3676 * @param output_oob_size 3677 * @param output_oob_action 3678 * @param input_oob_size 3679 * @param input_oob_action 3680 */ 3681 #define MESH_SUBEVENT_PB_PROV_CAPABILITIES 0x1c 3682 3683 /** 3684 * @format 12 3685 * @param subevent_code 3686 * @param pb_transport_cid 3687 */ 3688 #define MESH_SUBEVENT_PB_PROV_COMPLETE 0x1d 3689 3690 /** 3691 * @format 11 3692 * @param subevent_code 3693 * @param attention_time in seconds 3694 */ 3695 #define MESH_SUBEVENT_ATTENTION_TIMER 0x1e 3696 3697 /** 3698 * @format 1H 3699 * @param subevent_code 3700 * @param con_handle 3701 */ 3702 #define MESH_SUBEVENT_PROXY_CONNECTED 0x20 3703 3704 /** 3705 * @format 1H 3706 * @param subevent_code 3707 * @param con_handle 3708 */ 3709 #define MESH_SUBEVENT_PROXY_PDU_SENT 0x21 3710 3711 /** 3712 * @format 1H 3713 * @param subevent_code 3714 * @param con_handle 3715 */ 3716 #define MESH_SUBEVENT_PROXY_DISCONNECTED 0x22 3717 3718 /** 3719 * @format 1H 3720 * @param subevent_code 3721 * @param con_handle 3722 */ 3723 #define MESH_SUBEVENT_MESSAGE_SENT 0x23 3724 3725 /** 3726 * @format 114411 3727 * @param subevent_code 3728 * @param element_index 3729 * @param model_identifier 3730 * @param state_identifier 3731 * @param reason 3732 * @param value 3733 */ 3734 #define MESH_SUBEVENT_STATE_UPDATE_BOOL 0x24 3735 3736 /** 3737 * @format 114412 3738 * @param subevent_code 3739 * @param element_index 3740 * @param model_identifier 3741 * @param state_identifier 3742 * @param reason 3743 * @param value 3744 */ 3745 #define MESH_SUBEVENT_STATE_UPDATE_INT16 0x25 3746 3747 // Mesh Client Events 3748 /** 3749 * @format 11442 3750 * @param subevent_code 3751 * @param element_index 3752 * @param model_identifier 3753 * @param opcode 3754 * @param dest 3755 */ 3756 #define MESH_SUBEVENT_MESSAGE_NOT_ACKNOWLEDGED 0x30 3757 3758 /** 3759 * @format 121114 3760 * @param subevent_code 3761 * @param dest 3762 * @param status 3763 * @param present_value 3764 * @param target_value optional, if value > 0, than remaining_time_ms must be read 3765 * @param remaining_time_ms 3766 */ 3767 #define MESH_SUBEVENT_GENERIC_ON_OFF 0x31 3768 3769 /** 3770 * @format 121224 3771 * @param subevent_code 3772 * @param dest 3773 * @param status 3774 * @param present_value 3775 * @param target_value optional, if value > 0, than remaining_time_ms must be read 3776 * @param remaining_time_ms 3777 */ 3778 #define MESH_SUBEVENT_GENERIC_LEVEL 0x32 3779 3780 /** 3781 * @format 1222211 3782 * @param subevent_code 3783 * @param dest 3784 * @param netkey_index 3785 * @param appkey_index 3786 * @param company_id 3787 * @param test_id 3788 * @param acknowledged 3789 */ 3790 #define MESH_SUBEVENT_HEALTH_PERFORM_TEST 0x33 3791 3792 /** 3793 * @format 11 3794 * @param subevent_code 3795 * @param element_index 3796 */ 3797 #define MESH_SUBEVENT_HEALTH_ATTENTION_TIMER_CHANGED 0x34 3798 3799 /** 3800 * @format 1211 3801 * @param subevent_code 3802 * @param dest 3803 * @param status 3804 * @param transition_time_gdtt 3805 */ 3806 #define MESH_SUBEVENT_GENERIC_DEFAULT_TRANSITION_TIME 0x35 3807 3808 /** 3809 * @format 1211 3810 * @param subevent_code 3811 * @param dest 3812 * @param foundation_status 3813 * @param secure_network_beacon_state 3814 */ 3815 #define MESH_SUBEVENT_CONFIGURATION_BEACON 0x36 3816 3817 // Composition Data has variable of element descriptions, with two lists of model lists 3818 // Use .. getters to access data 3819 #define MESH_SUBEVENT_CONFIGURATION_COMPOSITION_DATA 0x37 3820 3821 /** 3822 * @format 1211 3823 * @param subevent_code 3824 * @param dest 3825 * @param foundation_status 3826 * @param default_ttl 3827 */ 3828 #define MESH_SUBEVENT_CONFIGURATION_DEFAULT_TTL 0x38 3829 3830 /** 3831 * @format 1211 3832 * @param subevent_code 3833 * @param dest 3834 * @param foundation_status 3835 * @param gatt_proxy_state 3836 */ 3837 #define MESH_SUBEVENT_CONFIGURATION_GATT_PROXY 0x39 3838 3839 /** 3840 * @format 121111 3841 * @param subevent_code 3842 * @param dest 3843 * @param foundation_status 3844 * @param relay 3845 * @param retransmit_count the number of times that packet is transmitted for each packet that is relayed. 3846 * @param retransmit_interval_ms retransmission interval in ms 3847 */ 3848 #define MESH_SUBEVENT_CONFIGURATION_RELAY 0x40 3849 3850 3851 /** 3852 * @format 12122111114 3853 * @param subevent_code 3854 * @param dest element_address 3855 * @param foundation_status 3856 * @param publish_address 3857 * @param appkey_index 3858 * @param credential_flag 3859 * @param publish_ttl 3860 * @param publish_period 3861 * @param publish_retransmit_count 3862 * @param publish_retransmit_interval_steps 3863 * @param model_identifier 3864 */ 3865 #define MESH_SUBEVENT_CONFIGURATION_MODEL_PUBLICATION 0x41 3866 3867 /** 3868 * @format 12124 3869 * @param subevent_code 3870 * @param dest 3871 * @param foundation_status 3872 * @param address 3873 * @param model_identifier 3874 */ 3875 #define MESH_SUBEVENT_CONFIGURATION_MODEL_SUBSCRIPTION 0x42 3876 3877 /** 3878 * @format 1214112 3879 * @param subevent_code 3880 * @param dest 3881 * @param foundation_status 3882 * @param model_identifier 3883 * @param num_subscription_addresses 3884 * @param subscription_address_pos 3885 * @param subscription_address_item 3886 */ 3887 #define MESH_SUBEVENT_CONFIGURATION_MODEL_SUBSCRIPTION_LIST_ITEM 0x43 3888 3889 3890 /** 3891 * @format 121 3892 * @param subevent_code 3893 * @param dest 3894 * @param foundation_status 3895 */ 3896 #define MESH_SUBEVENT_CONFIGURATION_NETKEY_INDEX 0x44 3897 3898 /** 3899 * @format 121112 3900 * @param subevent_code 3901 * @param dest 3902 * @param foundation_status 3903 * @param num_netkey_indexes 3904 * @param netkey_index_pos 3905 * @param netkey_index_item 3906 */ 3907 #define MESH_SUBEVENT_CONFIGURATION_NETKEY_INDEX_LIST_ITEM 0x45 3908 3909 /** 3910 * @format 12122 3911 * @param subevent_code 3912 * @param dest 3913 * @param foundation_status 3914 * @param netkey_index_item 3915 * @param appkey_index_item 3916 */ 3917 #define MESH_SUBEVENT_CONFIGURATION_APPKEY_INDEX 0x46 3918 3919 /** 3920 * @format 12121122 3921 * @param subevent_code 3922 * @param dest 3923 * @param foundation_status 3924 * @param netkey_index 3925 * @param num_appkey_indexes 3926 * @param appkey_index_pos 3927 * @param netkey_index_item 3928 * @param appkey_index_item 3929 */ 3930 #define MESH_SUBEVENT_CONFIGURATION_APPKEY_INDEX_LIST_ITEM 0x47 3931 3932 /** 3933 * @format 12121 3934 * @param subevent_code 3935 * @param dest 3936 * @param foundation_status 3937 * @param netkey_index_item 3938 * @param identity_status 3939 */ 3940 #define MESH_SUBEVENT_CONFIGURATION_NODE_IDENTITY 0x48 3941 3942 /** 3943 * @format 12124 3944 * @param subevent_code 3945 * @param dest 3946 * @param foundation_status 3947 * @param appkey_index 3948 * @param model_identifier 3949 */ 3950 #define MESH_SUBEVENT_CONFIGURATION_MODEL_APP 0x49 3951 3952 /** 3953 * @format 1214112 3954 * @param subevent_code 3955 * @param dest 3956 * @param foundation_status 3957 * @param model_id 3958 * @param num_appkey_indexes 3959 * @param appkey_index_pos 3960 * @param appkey_index_item 3961 */ 3962 #define MESH_SUBEVENT_CONFIGURATION_MODEL_APP_LIST_ITEM 0x50 3963 3964 /** 3965 * @format 121 3966 * @param subevent_code 3967 * @param dest 3968 * @param foundation_status 3969 */ 3970 #define MESH_SUBEVENT_CONFIGURATION_NODE_RESET 0x51 3971 3972 /** 3973 * @format 1211 3974 * @param subevent_code 3975 * @param dest 3976 * @param foundation_status 3977 * @param friend_state 3978 */ 3979 #define MESH_SUBEVENT_CONFIGURATION_FRIEND 0x52 3980 3981 /** 3982 * @format 12121 3983 * @param subevent_code 3984 * @param dest 3985 * @param foundation_status 3986 * @param netkey_index 3987 * @param phase 3988 */ 3989 #define MESH_SUBEVENT_CONFIGURATION_KEY_REFRESH_PHASE 0x53 3990 3991 /** 3992 * @format 121222122 3993 * @param subevent_code 3994 * @param dest 3995 * @param foundation_status 3996 * @param heartbeat_destination 3997 * @param count_S 3998 * @param period_S 3999 * @param ttl 4000 * @param features 4001 * @param netkey_index 4002 */ 4003 #define MESH_SUBEVENT_CONFIGURATION_HEARTBEAT_PUBLICATION 0x54 4004 4005 /** 4006 * @format 121222211 4007 * @param subevent_code 4008 * @param dest 4009 * @param foundation_status 4010 * @param heartbeat_destination 4011 * @param heartbeat_source 4012 * @param count_S 4013 * @param period_S 4014 * @param min_hops 4015 * @param max_hops 4016 */ 4017 #define MESH_SUBEVENT_CONFIGURATION_HEARTBEAT_SUBSCRIPTION 0x55 4018 4019 /** 4020 * @format 12123 4021 * @param subevent_code 4022 * @param dest 4023 * @param foundation_status 4024 * @param lpn_address 4025 * @param poll_timeout 4026 */ 4027 #define MESH_SUBEVENT_CONFIGURATION_LOW_POWER_NODE_POLL_TIMEOUT 0x56 4028 4029 /** 4030 * @format 12112 4031 * @param subevent_code 4032 * @param dest 4033 * @param foundation_status 4034 * @param transmit_count 4035 * @param transmit_interval_steps_ms 4036 */ 4037 #define MESH_SUBEVENT_CONFIGURATION_NETWORK_TRANSMIT 0x57 4038 4039 4040 #endif 4041