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 * btstack-defines.h 40 * 41 * BTstack definitions, events, and error codes */ 42 43 #ifndef BTSTACK_DEFINES_H 44 #define BTSTACK_DEFINES_H 45 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 213 // GAP LE 0x60 214 #define GAP_LE_SCAN_START 0x60 215 #define GAP_LE_SCAN_STOP 0x61 216 #define GAP_LE_CONNECT 0x62 217 #define GAP_LE_CONNECT_CANCEL 0x63 218 #define GAP_LE_SET_SCAN_PARAMETERS 0x64 219 220 // GATT (Client) 0x70 221 #define GATT_DISCOVER_ALL_PRIMARY_SERVICES 0x70 222 #define GATT_DISCOVER_PRIMARY_SERVICES_BY_UUID16 0x71 223 #define GATT_DISCOVER_PRIMARY_SERVICES_BY_UUID128 0x72 224 #define GATT_FIND_INCLUDED_SERVICES_FOR_SERVICE 0x73 225 #define GATT_DISCOVER_CHARACTERISTICS_FOR_SERVICE 0x74 226 #define GATT_DISCOVER_CHARACTERISTICS_FOR_SERVICE_BY_UUID128 0x75 227 #define GATT_DISCOVER_CHARACTERISTIC_DESCRIPTORS 0x76 228 #define GATT_READ_VALUE_OF_CHARACTERISTIC 0x77 229 #define GATT_READ_LONG_VALUE_OF_CHARACTERISTIC 0x78 230 #define GATT_WRITE_VALUE_OF_CHARACTERISTIC_WITHOUT_RESPONSE 0x79 231 #define GATT_WRITE_VALUE_OF_CHARACTERISTIC 0x7A 232 #define GATT_WRITE_LONG_VALUE_OF_CHARACTERISTIC 0x7B 233 #define GATT_RELIABLE_WRITE_LONG_VALUE_OF_CHARACTERISTIC 0x7C 234 #define GATT_READ_CHARACTERISTIC_DESCRIPTOR 0X7D 235 #define GATT_READ_LONG_CHARACTERISTIC_DESCRIPTOR 0X7E 236 #define GATT_WRITE_CHARACTERISTIC_DESCRIPTOR 0X7F 237 #define GATT_WRITE_LONG_CHARACTERISTIC_DESCRIPTOR 0X80 238 #define GATT_WRITE_CLIENT_CHARACTERISTIC_CONFIGURATION 0X81 239 #define GATT_GET_MTU 0x82 240 241 // SM 0x90 242 #define SM_SET_AUTHENTICATION_REQUIREMENTS 0x90 243 #define SM_SET_IO_CAPABILITIES 0x92 244 #define SM_BONDING_DECLINE 0x93 245 #define SM_JUST_WORKS_CONFIRM 0x94 246 #define SM_NUMERIC_COMPARISON_CONFIRM 0x95 247 #define SM_PASSKEY_INPUT 0x96 248 249 // ATT 250 251 // .. 252 // Internal properties reuse some GATT Characteristic Properties fields 253 #define ATT_DB_VERSION 0x01 254 255 // EVENTS 256 257 // Events from host controller to host 258 259 /** 260 * @format 1 261 * @param status 262 */ 263 #define HCI_EVENT_INQUIRY_COMPLETE 0x01 264 265 /** 266 * @format 1B11132 267 * @param num_responses 268 * @param bd_addr 269 * @param page_scan_repetition_mode 270 * @param reserved1 271 * @param reserved2 272 * @param class_of_device 273 * @param clock_offset 274 */ 275 #define HCI_EVENT_INQUIRY_RESULT 0x02 276 277 /** 278 * @format 12B11 279 * @param status 280 * @param connection_handle 281 * @param bd_addr 282 * @param link_type 283 * @param encryption_enabled 284 */ 285 #define HCI_EVENT_CONNECTION_COMPLETE 0x03 286 /** 287 * @format B31 288 * @param bd_addr 289 * @param class_of_device 290 * @param link_type 291 */ 292 #define HCI_EVENT_CONNECTION_REQUEST 0x04 293 /** 294 * @format 121 295 * @param status 296 * @param connection_handle 297 * @param reason 298 */ 299 #define HCI_EVENT_DISCONNECTION_COMPLETE 0x05 300 /** 301 * @format 12 302 * @param status 303 * @param connection_handle 304 */ 305 #define HCI_EVENT_AUTHENTICATION_COMPLETE 0x06 306 307 // HCI_EVENT_AUTHENTICATION_COMPLETE_EVENT is deprecated, use HCI_EVENT_AUTHENTICATION_COMPLETE instead 308 #define HCI_EVENT_AUTHENTICATION_COMPLETE_EVENT HCI_EVENT_AUTHENTICATION_COMPLETE 309 310 /** 311 * @format 1BN 312 * @param status 313 * @param bd_addr 314 * @param remote_name 315 */ 316 #define HCI_EVENT_REMOTE_NAME_REQUEST_COMPLETE 0x07 317 /** 318 * @format 121 319 * @param status 320 * @param connection_handle 321 * @param encryption_enabled 322 */ 323 #define HCI_EVENT_ENCRYPTION_CHANGE 0x08 324 /** 325 * @format 12 326 * @param status 327 * @param connection_handle 328 */ 329 #define HCI_EVENT_CHANGE_CONNECTION_LINK_KEY_COMPLETE 0x09 330 /** 331 * @format 121 332 * @param status 333 * @param connection_handle 334 * @param key_flag 335 */ 336 #define HCI_EVENT_MASTER_LINK_KEY_COMPLETE 0x0A 337 338 #define HCI_EVENT_READ_REMOTE_SUPPORTED_FEATURES_COMPLETE 0x0B 339 340 /** 341 * @format 12122 342 * @param status 343 * @param connection_handle 344 * @param version 345 * @param manufacturer_name 346 * @param subversion 347 */ 348 #define HCI_EVENT_READ_REMOTE_VERSION_INFORMATION_COMPLETE 0x0C 349 350 #define HCI_EVENT_QOS_SETUP_COMPLETE 0x0D 351 352 /** 353 * @format 12R 354 * @param num_hci_command_packets 355 * @param command_opcode 356 * @param return_parameters 357 */ 358 #define HCI_EVENT_COMMAND_COMPLETE 0x0E 359 /** 360 * @format 112 361 * @param status 362 * @param num_hci_command_packets 363 * @param command_opcode 364 */ 365 #define HCI_EVENT_COMMAND_STATUS 0x0F 366 367 /** 368 * @format 1 369 * @param hardware_code 370 */ 371 #define HCI_EVENT_HARDWARE_ERROR 0x10 372 373 #define HCI_EVENT_FLUSH_OCCURRED 0x11 374 375 /** 376 * @format 1B1 377 * @param status 378 * @param bd_addr 379 * @param role 380 */ 381 #define HCI_EVENT_ROLE_CHANGE 0x12 382 383 // TODO: number_of_handles 1, connection_handle[H*i], hc_num_of_completed_packets[2*i] 384 #define HCI_EVENT_NUMBER_OF_COMPLETED_PACKETS 0x13 385 386 /** 387 * @format 1H12 388 * @param status 389 * @param handle 390 * @param mode 391 * @param interval 392 */ 393 #define HCI_EVENT_MODE_CHANGE 0x14 394 395 // TODO: num_keys, bd_addr[B*i], link_key[16 octets * i] 396 #define HCI_EVENT_RETURN_LINK_KEYS 0x15 397 398 /** 399 * @format B 400 * @param bd_addr 401 */ 402 #define HCI_EVENT_PIN_CODE_REQUEST 0x16 403 404 /** 405 * @format B 406 * @param bd_addr 407 */ 408 #define HCI_EVENT_LINK_KEY_REQUEST 0x17 409 410 // TODO: bd_addr B, link_key 16octets, key_type 1 411 #define HCI_EVENT_LINK_KEY_NOTIFICATION 0x18 412 413 /** 414 * @format 1 415 * @param link_type 416 */ 417 #define HCI_EVENT_DATA_BUFFER_OVERFLOW 0x1A 418 419 /** 420 * @format H1 421 * @param handle 422 * @param lmp_max_slots 423 */ 424 #define HCI_EVENT_MAX_SLOTS_CHANGED 0x1B 425 426 /** 427 * @format 1H2 428 * @param status 429 * @param handle 430 * @param clock_offset 431 */ 432 #define HCI_EVENT_READ_CLOCK_OFFSET_COMPLETE 0x1C 433 434 /** 435 * @format 1H2 436 * @param status 437 * @param handle 438 * @param packet_types 439 * @pnote packet_type is in plural to avoid clash with Java binding Packet.getPacketType() 440 */ 441 #define HCI_EVENT_CONNECTION_PACKET_TYPE_CHANGED 0x1D 442 443 /** 444 * @format 1B11321 445 * @param num_responses 446 * @param bd_addr 447 * @param page_scan_repetition_mode 448 * @param reserved 449 * @param class_of_device 450 * @param clock_offset 451 * @param rssi 452 */ 453 #define HCI_EVENT_INQUIRY_RESULT_WITH_RSSI 0x22 454 455 /** 456 * @format 1HB111221 457 * @param status 458 * @param handle 459 * @param bd_addr 460 * @param link_type 461 * @param transmission_interval 462 * @param retransmission_interval 463 * @param rx_packet_length 464 * @param tx_packet_length 465 * @param air_mode 466 */ 467 #define HCI_EVENT_SYNCHRONOUS_CONNECTION_COMPLETE 0x2C 468 469 // TODO: serialize extended_inquiry_response and provide parser 470 /** 471 * @format 1B11321 472 * @param num_responses 473 * @param bd_addr 474 * @param page_scan_repetition_mode 475 * @param reserved 476 * @param class_of_device 477 * @param clock_offset 478 * @param rssi 479 */ 480 #define HCI_EVENT_EXTENDED_INQUIRY_RESPONSE 0x2F 481 482 /** 483 * @format 1H 484 * @param status 485 * @param handle 486 */ 487 #define HCI_EVENT_ENCRYPTION_KEY_REFRESH_COMPLETE 0x30 488 489 #define HCI_EVENT_IO_CAPABILITY_REQUEST 0x31 490 #define HCI_EVENT_IO_CAPABILITY_RESPONSE 0x32 491 492 /** 493 * @format B4 494 * @param bd_addr 495 * @param numeric_value 496 */ 497 #define HCI_EVENT_USER_CONFIRMATION_REQUEST 0x33 498 499 /** 500 * @format B 501 * @param bd_addr 502 */ 503 #define HCI_EVENT_USER_PASSKEY_REQUEST 0x34 504 505 /** 506 * @format B 507 * @param bd_addr 508 */ 509 #define HCI_EVENT_REMOTE_OOB_DATA_REQUEST 0x35 510 511 /** 512 * @format 1B 513 * @param status 514 * @param bd_addr 515 */ 516 #define HCI_EVENT_SIMPLE_PAIRING_COMPLETE 0x36 517 518 #define HCI_EVENT_LE_META 0x3E 519 520 // last used HCI_EVENT in 2.1 is 0x3d 521 // last used HCI_EVENT in 4.1 is 0x57 522 523 #define HCI_EVENT_VENDOR_SPECIFIC 0xFF 524 525 /** 526 * @format 11H11B2221 527 * @param subevent_code 528 * @param status 529 * @param connection_handle 530 * @param role 531 * @param peer_address_type 532 * @param peer_address 533 * @param conn_interval 534 * @param conn_latency 535 * @param supervision_timeout 536 * @param master_clock_accuracy 537 */ 538 #define HCI_SUBEVENT_LE_CONNECTION_COMPLETE 0x01 539 540 // array of advertisements, not handled by event accessor generator 541 #define HCI_SUBEVENT_LE_ADVERTISING_REPORT 0x02 542 543 /** 544 * @format 11H222 545 * @param subevent_code 546 * @param status 547 * @param connection_handle 548 * @param conn_interval 549 * @param conn_latency 550 * @param supervision_timeout 551 */ 552 #define HCI_SUBEVENT_LE_CONNECTION_UPDATE_COMPLETE 0x03 553 554 /** 555 * @format 1HD2 556 * @param subevent_code 557 * @param connection_handle 558 * @param random_number 559 * @param encryption_diversifier 560 */ 561 #define HCI_SUBEVENT_LE_READ_REMOTE_USED_FEATURES_COMPLETE 0x04 562 563 /** 564 * @format 1HD2 565 * @param subevent_code 566 * @param connection_handle 567 * @param random_number 568 * @param encryption_diversifier 569 */ 570 #define HCI_SUBEVENT_LE_LONG_TERM_KEY_REQUEST 0x05 571 572 /** 573 * @format 1H2222 574 * @param subevent_code 575 * @param connection_handle 576 * @param interval_min 577 * @param interval_max 578 * @param latency 579 * @param timeout 580 */ 581 #define HCI_SUBEVENT_LE_REMOTE_CONNECTION_PARAMETER_REQUEST 0x06 582 583 /** 584 * @format 1H2222 585 * @param subevent_code 586 * @param connection_handle 587 * @param max_tx_octets 588 * @param max_tx_time 589 * @param max_rx_octets 590 * @param max_rx_time 591 */ 592 #define HCI_SUBEVENT_LE_DATA_LENGTH_CHANGE 0x07 593 594 /** 595 * @format 11QQ 596 * @param subevent_code 597 * @param status 598 * @param dhkey_x x coordinate of P256 public key 599 * @param dhkey_y y coordinate of P256 public key 600 */ 601 #define HCI_SUBEVENT_LE_READ_LOCAL_P256_PUBLIC_KEY_COMPLETE 0x08 602 /** 603 * @format 11Q 604 * @param subevent_code 605 * @param status 606 * @param dhkey Diffie-Hellman key 607 */ 608 #define HCI_SUBEVENT_LE_GENERATE_DHKEY_COMPLETE 0x09 609 610 /** 611 * @format 11H11BBB2221 612 * @param subevent_code 613 * @param status 614 * @param connection_handle 615 * @param role 616 * @param peer_address_type 617 * @param perr_addresss 618 * @param local_resolvable_private_addres 619 * @param peer_resolvable_private_addres 620 * @param conn_interval 621 * @param conn_latency 622 * @param supervision_timeout 623 * @param master_clock_accuracy 624 */ 625 #define HCI_SUBEVENT_LE_ENHANCED_CONNECTION_COMPLETE 0x0A 626 627 // array of advertisements, not handled by event accessor generator 628 #define HCI_SUBEVENT_LE_DIRECT_ADVERTISING_REPORT 0x0B 629 630 631 /** 632 * @format 1 633 * @param state 634 */ 635 #define BTSTACK_EVENT_STATE 0x60 636 637 /** 638 * @format 1 639 * @param number_connections 640 */ 641 #define BTSTACK_EVENT_NR_CONNECTIONS_CHANGED 0x61 642 643 /** 644 * @format 645 */ 646 #define BTSTACK_EVENT_POWERON_FAILED 0x62 647 648 /** 649 * @format 1 650 * @param discoverable 651 */ 652 #define BTSTACK_EVENT_DISCOVERABLE_ENABLED 0x66 653 654 // Daemon Events 655 656 /** 657 * @format 112 658 * @param major 659 * @param minor 660 @ @param revision 661 */ 662 #define DAEMON_EVENT_VERSION 0x63 663 664 // data: system bluetooth on/off (bool) 665 /** 666 * @format 1 667 * param system_bluetooth_enabled 668 */ 669 #define DAEMON_EVENT_SYSTEM_BLUETOOTH_ENABLED 0x64 670 671 // data: event (8), len(8), status (8) == 0, address (48), name (1984 bits = 248 bytes) 672 673 /* 674 * @format 1BT 675 * @param status == 0 to match read_remote_name_request 676 * @param address 677 * @param name 678 */ 679 #define DAEMON_EVENT_REMOTE_NAME_CACHED 0x65 680 681 // internal - data: event(8) 682 #define DAEMON_EVENT_CONNECTION_OPENED 0x67 683 684 // internal - data: event(8) 685 #define DAEMON_EVENT_CONNECTION_CLOSED 0x68 686 687 // data: event(8), len(8), local_cid(16), credits(8) 688 #define DAEMON_EVENT_L2CAP_CREDITS 0x74 689 690 /** 691 * @format 12 692 * @param status 693 * @param psm 694 */ 695 #define DAEMON_EVENT_L2CAP_SERVICE_REGISTERED 0x75 696 697 /** 698 * @format 21 699 * @param rfcomm_cid 700 * @param credits 701 */ 702 #define DAEMON_EVENT_RFCOMM_CREDITS 0x84 703 704 /** 705 * @format 11 706 * @param status 707 * @param channel_id 708 */ 709 #define DAEMON_EVENT_RFCOMM_SERVICE_REGISTERED 0x85 710 711 /** 712 * @format 11 713 * @param status 714 * @param server_channel_id 715 */ 716 #define DAEMON_EVENT_RFCOMM_PERSISTENT_CHANNEL 0x86 717 718 /** 719 * @format 14 720 * @param status 721 * @param service_record_handle 722 */ 723 #define DAEMON_EVENT_SDP_SERVICE_REGISTERED 0x90 724 725 726 727 // additional HCI events 728 729 /** 730 * @brief Indicates HCI transport enters/exits Sleep mode 731 * @format 1 732 * @param active 733 */ 734 #define HCI_EVENT_TRANSPORT_SLEEP_MODE 0x69 735 736 /** 737 * @brief Transport ready 738 */ 739 #define HCI_EVENT_TRANSPORT_READY 0x6D 740 741 /** 742 * @brief Outgoing packet 743 */ 744 #define HCI_EVENT_TRANSPORT_PACKET_SENT 0x6E 745 746 /** 747 * @format B 748 * @param handle 749 */ 750 #define HCI_EVENT_SCO_CAN_SEND_NOW 0x6F 751 752 753 // L2CAP EVENTS 754 755 /** 756 * @format 1BH222222111 757 * @param status 758 * @param address 759 * @param handle 760 * @param psm 761 * @param local_cid 762 * @param remote_cid 763 * @param local_mtu 764 * @param remote_mtu 765 * @param flush_timeout 766 * @param incoming 767 * @param mode 768 * @param fcs 769 */ 770 #define L2CAP_EVENT_CHANNEL_OPENED 0x70 771 772 /* 773 * @format 2 774 * @param local_cid 775 */ 776 #define L2CAP_EVENT_CHANNEL_CLOSED 0x71 777 778 /** 779 * @format BH222 780 * @param address 781 * @param handle 782 * @param psm 783 * @param local_cid 784 * @param remote_cid 785 */ 786 #define L2CAP_EVENT_INCOMING_CONNECTION 0x72 787 788 // ?? 789 // data: event(8), len(8), handle(16) 790 #define L2CAP_EVENT_TIMEOUT_CHECK 0x73 791 792 /** 793 * @format H2222 794 * @param handle 795 * @param interval_min 796 * @param interval_max 797 * @param latencey 798 * @param timeout_multiplier 799 */ 800 #define L2CAP_EVENT_CONNECTION_PARAMETER_UPDATE_REQUEST 0x76 801 802 // data: event(8), len(8), handle(16), result (16) (0 == ok, 1 == fail) 803 /** 804 * @format H2 805 * @param handle 806 * @param result 807 */ 808 #define L2CAP_EVENT_CONNECTION_PARAMETER_UPDATE_RESPONSE 0x77 809 810 /** 811 * @format 2 812 * @param local_cid 813 */ 814 #define L2CAP_EVENT_CAN_SEND_NOW 0x78 815 816 // LE Data Channels 817 818 /** 819 * @format 1BH2222 820 * @param address_type 821 * @param address 822 * @param handle 823 * @param psm 824 * @param local_cid 825 * @param remote_cid 826 * @param remote_mtu 827 */ 828 #define L2CAP_EVENT_LE_INCOMING_CONNECTION 0x79 829 830 /** 831 * @format 11BH122222 832 * @param status 833 * @param address_type 834 * @param address 835 * @param handle 836 * @param incoming 837 * @param psm 838 * @param local_cid 839 * @param remote_cid 840 * @param local_mtu 841 * @param remote_mtu 842 */ 843 #define L2CAP_EVENT_LE_CHANNEL_OPENED 0x7a 844 845 /* 846 * @format 2 847 * @param local_cid 848 */ 849 #define L2CAP_EVENT_LE_CHANNEL_CLOSED 0x7b 850 851 /* 852 * @format 2 853 * @param local_cid 854 */ 855 #define L2CAP_EVENT_LE_CAN_SEND_NOW 0x7c 856 857 /* 858 * @format 2 859 * @param local_cid 860 */ 861 #define L2CAP_EVENT_LE_PACKET_SENT 0x7d 862 863 /* 864 * @format 2 865 * @param local_cid 866 */ 867 #define L2CAP_EVENT_ERTM_BUFFER_RELEASED 0x7e 868 869 /* 870 * @format 871 */ 872 #define L2CAP_EVENT_TRIGGER_RUN 0x7f 873 874 875 // RFCOMM EVENTS 876 877 /** 878 * @format 1B21221 879 * @param status 880 * @param bd_addr 881 * @param con_handle 882 * @param server_channel 883 * @param rfcomm_cid 884 * @param max_frame_size 885 * @param incoming 886 */ 887 #define RFCOMM_EVENT_CHANNEL_OPENED 0x80 888 889 /** 890 * @format 2 891 * @param rfcomm_cid 892 */ 893 #define RFCOMM_EVENT_CHANNEL_CLOSED 0x81 894 895 /** 896 * @format B12 897 * @param bd_addr 898 * @param server_channel 899 * @param rfcomm_cid 900 */ 901 #define RFCOMM_EVENT_INCOMING_CONNECTION 0x82 902 903 /** 904 * @format 21 905 * @param rfcomm_cid 906 * @param line_status 907 */ 908 #define RFCOMM_EVENT_REMOTE_LINE_STATUS 0x83 909 910 /** 911 * @format 21 912 * @param rfcomm_cid 913 * @param modem_status 914 */ 915 #define RFCOMM_EVENT_REMOTE_MODEM_STATUS 0x87 916 917 /** 918 * TODO: format for variable data 2? 919 * param rfcomm_cid 920 * param rpn_data 921 */ 922 #define RFCOMM_EVENT_PORT_CONFIGURATION 0x88 923 924 /** 925 * @format 2 926 * @param rfcomm_cid 927 */ 928 #define RFCOMM_EVENT_CAN_SEND_NOW 0x89 929 930 931 /** 932 * @format 1 933 * @param status 934 */ 935 #define SDP_EVENT_QUERY_COMPLETE 0x91 936 937 /** 938 * @format 1T 939 * @param rfcomm_channel 940 * @param name 941 */ 942 #define SDP_EVENT_QUERY_RFCOMM_SERVICE 0x92 943 944 /** 945 * @format 22221 946 * @param record_id 947 * @param attribute_id 948 * @param attribute_length 949 * @param data_offset 950 * @param data 951 */ 952 #define SDP_EVENT_QUERY_ATTRIBUTE_BYTE 0x93 953 954 /** 955 * @format 22LV 956 * @param record_id 957 * @param attribute_id 958 * @param attribute_length 959 * @param attribute_value 960 */ 961 #define SDP_EVENT_QUERY_ATTRIBUTE_VALUE 0x94 962 963 /** 964 * @format 224 965 * @param total_count 966 * @param record_index 967 * @param record_handle 968 * @note Not provided by daemon, only used for internal testing 969 */ 970 #define SDP_EVENT_QUERY_SERVICE_RECORD_HANDLE 0x95 971 972 /** 973 * @format H1 974 * @param handle 975 * @param att_status see ATT errors in bluetooth.h 976 */ 977 #define GATT_EVENT_QUERY_COMPLETE 0xA0 978 979 /** 980 * @format HX 981 * @param handle 982 * @param service 983 */ 984 #define GATT_EVENT_SERVICE_QUERY_RESULT 0xA1 985 986 /** 987 * @format HY 988 * @param handle 989 * @param characteristic 990 */ 991 #define GATT_EVENT_CHARACTERISTIC_QUERY_RESULT 0xA2 992 993 /** 994 * @format H2X 995 * @param handle 996 * @param include_handle 997 * @param service 998 */ 999 #define GATT_EVENT_INCLUDED_SERVICE_QUERY_RESULT 0xA3 1000 1001 /** 1002 * @format HZ 1003 * @param handle 1004 * @param characteristic_descriptor 1005 */ 1006 #define GATT_EVENT_ALL_CHARACTERISTIC_DESCRIPTORS_QUERY_RESULT 0xA4 1007 1008 /** 1009 * @format H2LV 1010 * @param handle 1011 * @param value_handle 1012 * @param value_length 1013 * @param value 1014 */ 1015 #define GATT_EVENT_CHARACTERISTIC_VALUE_QUERY_RESULT 0xA5 1016 1017 /** 1018 * @format H22LV 1019 * @param handle 1020 * @param value_handle 1021 * @param value_offset 1022 * @param value_length 1023 * @param value 1024 */ 1025 #define GATT_EVENT_LONG_CHARACTERISTIC_VALUE_QUERY_RESULT 0xA6 1026 1027 /** 1028 * @format H2LV 1029 * @param handle 1030 * @param value_handle 1031 * @param value_length 1032 * @param value 1033 */ 1034 #define GATT_EVENT_NOTIFICATION 0xA7 1035 1036 /** 1037 * @format H2LV 1038 * @param handle 1039 * @param value_handle 1040 * @param value_length 1041 * @param value 1042 */ 1043 #define GATT_EVENT_INDICATION 0xA8 1044 1045 /** 1046 * @format H2LV 1047 * @param handle 1048 * @param descriptor_handle 1049 * @param descriptor_length 1050 * @param descriptor 1051 */ 1052 #define GATT_EVENT_CHARACTERISTIC_DESCRIPTOR_QUERY_RESULT 0xA9 1053 1054 /** 1055 * @format H2LV 1056 * @param handle 1057 * @param descriptor_offset 1058 * @param descriptor_length 1059 * @param descriptor 1060 */ 1061 #define GATT_EVENT_LONG_CHARACTERISTIC_DESCRIPTOR_QUERY_RESULT 0xAA 1062 1063 /** 1064 * @format H2 1065 * @param handle 1066 * @param MTU 1067 */ 1068 #define GATT_EVENT_MTU 0xAB 1069 1070 /** 1071 * @format H 1072 * @param handle 1073 */ 1074 #define GATT_EVENT_CAN_WRITE_WITHOUT_RESPONSE 0xAC 1075 1076 /** 1077 * @format 1BH 1078 * @param address_type 1079 * @param address 1080 * @param handle 1081 */ 1082 #define ATT_EVENT_CONNECTED 0xB3 1083 1084 /** 1085 * @format H 1086 * @param handle 1087 */ 1088 #define ATT_EVENT_DISCONNECTED 0xB4 1089 1090 /** 1091 * @format H2 1092 * @param handle 1093 * @param MTU 1094 */ 1095 #define ATT_EVENT_MTU_EXCHANGE_COMPLETE 0xB5 1096 1097 /** 1098 * @format 1H2 1099 * @param status 1100 * @param conn_handle 1101 * @param attribute_handle 1102 */ 1103 #define ATT_EVENT_HANDLE_VALUE_INDICATION_COMPLETE 0xB6 1104 1105 /** 1106 * @format 1107 */ 1108 #define ATT_EVENT_CAN_SEND_NOW 0xB7 1109 1110 // TODO: daemon only event 1111 1112 /** 1113 * @format 12 1114 * @param status 1115 * @param service_uuid 1116 */ 1117 #define BNEP_EVENT_SERVICE_REGISTERED 0xC0 1118 1119 /** 1120 * @format 12222BH 1121 * @param status 1122 * @param bnep_cid 1123 * @param source_uuid 1124 * @param destination_uuid 1125 * @param mtu 1126 * @param remote_address 1127 * @param con_handle 1128 */ 1129 #define BNEP_EVENT_CHANNEL_OPENED 0xC1 1130 1131 /** 1132 * @format 222B 1133 * @param bnep_cid 1134 * @param source_uuid 1135 * @param destination_uuid 1136 * @param remote_address 1137 */ 1138 #define BNEP_EVENT_CHANNEL_CLOSED 0xC2 1139 1140 /** 1141 * @format 222B1 1142 * @param bnep_cid 1143 * @param source_uuid 1144 * @param destination_uuid 1145 * @param remote_address 1146 * @param channel_state 1147 */ 1148 #define BNEP_EVENT_CHANNEL_TIMEOUT 0xC3 1149 1150 /** 1151 * @format 222B 1152 * @param bnep_cid 1153 * @param source_uuid 1154 * @param destination_uuid 1155 * @param remote_address 1156 */ 1157 #define BNEP_EVENT_CAN_SEND_NOW 0xC4 1158 1159 /** 1160 * @format H1B 1161 * @param handle 1162 * @param addr_type 1163 * @param address 1164 */ 1165 #define SM_EVENT_JUST_WORKS_REQUEST 0xD0 1166 1167 /** 1168 * @format H1B 1169 * @param handle 1170 * @param addr_type 1171 * @param address 1172 */ 1173 #define SM_EVENT_JUST_WORKS_CANCEL 0xD1 1174 1175 /** 1176 * @format H1B4 1177 * @param handle 1178 * @param addr_type 1179 * @param address 1180 * @param passkey 1181 */ 1182 #define SM_EVENT_PASSKEY_DISPLAY_NUMBER 0xD2 1183 1184 /** 1185 * @format H1B 1186 * @param handle 1187 * @param addr_type 1188 * @param address 1189 */ 1190 #define SM_EVENT_PASSKEY_DISPLAY_CANCEL 0xD3 1191 1192 /** 1193 * @format H1B 1194 * @param handle 1195 * @param addr_type 1196 * @param address 1197 */ 1198 #define SM_EVENT_PASSKEY_INPUT_NUMBER 0xD4 1199 1200 /** 1201 * @format H1B 1202 * @param handle 1203 * @param addr_type 1204 * @param address 1205 */ 1206 #define SM_EVENT_PASSKEY_INPUT_CANCEL 0xD5 1207 1208 /** 1209 * @format H1B4 1210 * @param handle 1211 * @param addr_type 1212 * @param address 1213 * @param passkey 1214 */ 1215 #define SM_EVENT_NUMERIC_COMPARISON_REQUEST 0xD6 1216 1217 /** 1218 * @format H1B 1219 * @param handle 1220 * @param addr_type 1221 * @param address 1222 */ 1223 #define SM_EVENT_NUMERIC_COMPARISON_CANCEL 0xD7 1224 1225 /** 1226 * @format H1B 1227 * @param handle 1228 * @param addr_type 1229 * @param address 1230 */ 1231 #define SM_EVENT_IDENTITY_RESOLVING_STARTED 0xD8 1232 1233 /** 1234 * @format H1B 1235 * @param handle 1236 * @param addr_type 1237 * @param address 1238 */ 1239 #define SM_EVENT_IDENTITY_RESOLVING_FAILED 0xD9 1240 1241 /** 1242 * @brief Identify resolving succeeded 1243 * 1244 * @format H1B1B2 1245 * @param handle 1246 * @param addr_type 1247 * @param address 1248 * @param identity_addr_type 1249 * @param identity_address 1250 * @param index 1251 * 1252 */ 1253 #define SM_EVENT_IDENTITY_RESOLVING_SUCCEEDED 0xDA 1254 1255 /** 1256 * @format H1B 1257 * @param handle 1258 * @param addr_type 1259 * @param address 1260 */ 1261 #define SM_EVENT_AUTHORIZATION_REQUEST 0xDB 1262 1263 /** 1264 * @format H1B1 1265 * @param handle 1266 * @param addr_type 1267 * @param address 1268 * @param authorization_result 1269 */ 1270 #define SM_EVENT_AUTHORIZATION_RESULT 0xDC 1271 1272 /** 1273 * @format H1 1274 * @param handle 1275 * @param action see SM_KEYPRESS_* 1276 */ 1277 #define SM_EVENT_KEYPRESS_NOTIFICATION 0xDD 1278 1279 /** 1280 * @brief Emitted during pairing to inform app about address used as identity 1281 * 1282 * @format H1B1B2 1283 * @param handle 1284 * @param addr_type 1285 * @param address 1286 * @param identity_addr_type 1287 * @param identity_address 1288 * @param index 1289 */ 1290 #define SM_EVENT_IDENTITY_CREATED 0xDE 1291 1292 /** 1293 * @brief Emitted to inform app that pairing is complete. Possible status values: 1294 * ERROR_CODE_SUCCESS -> pairing success 1295 * ERROR_CODE_CONNECTION_TIMEOUT -> timeout 1296 * ERROR_CODE_REMOTE_USER_TERMINATED_CONNECTION -> disconnect 1297 * ERROR_CODE_AUTHENTICATION_FAILURE -> SM protocol error, see reason field with SM_REASON_* from bluetooth.h 1298 * 1299 * @format H1B11 1300 * @param handle 1301 * @param addr_type 1302 * @param address 1303 * @param status 1304 * @param reason if status == ERROR_CODE_AUTHENTICATION_FAILURE 1305 */ 1306 #define SM_EVENT_PAIRING_COMPLETE 0xDF 1307 1308 1309 // GAP 1310 1311 /** 1312 * @format H1 1313 * @param handle 1314 * @param security_level 1315 */ 1316 #define GAP_EVENT_SECURITY_LEVEL 0xE0 1317 1318 /** 1319 * @format 1B 1320 * @param status 1321 * @param address 1322 */ 1323 #define GAP_EVENT_DEDICATED_BONDING_COMPLETED 0xE1 1324 1325 /** 1326 * @format 11B1JV 1327 * @param advertising_event_type 1328 * @param address_type 1329 * @param address 1330 * @param rssi 1331 * @param data_length 1332 * @param data 1333 */ 1334 #define GAP_EVENT_ADVERTISING_REPORT 0xE2 1335 1336 /** 1337 * @format B132111JV 1338 * @param bd_addr 1339 * @param page_scan_repetition_mode 1340 * @param class_of_device 1341 * @param clock_offset 1342 * @param rssi_available 1343 * @param rssi 1344 * @param name_available 1345 * @param name_len 1346 * @param name 1347 */ 1348 #define GAP_EVENT_INQUIRY_RESULT 0xE3 1349 1350 /** 1351 * @format 1 1352 * @param status 1353 */ 1354 #define GAP_EVENT_INQUIRY_COMPLETE 0xE4 1355 1356 /** 1357 * @format H1 1358 * @param con_handle 1359 * @param rssi (signed integer -127..127) 1360 * @note Classic: rssi is in dB relative to Golden Receive Power Range 1361 * @note LE: rssi is absolute dBm 1362 */ 1363 #define GAP_EVENT_RSSI_MEASUREMENT 0xE5 1364 1365 // Meta Events, see below for sub events 1366 #define HCI_EVENT_HSP_META 0xE8 1367 #define HCI_EVENT_HFP_META 0xE9 1368 #define HCI_EVENT_ANCS_META 0xEA 1369 #define HCI_EVENT_AVDTP_META 0xEB 1370 #define HCI_EVENT_AVRCP_META 0xEC 1371 #define HCI_EVENT_GOEP_META 0xED 1372 #define HCI_EVENT_PBAP_META 0xEE 1373 #define HCI_EVENT_HID_META 0xEF 1374 #define HCI_EVENT_A2DP_META 0xF0 1375 #define HCI_EVENT_HIDS_META 0xF1 1376 #define HCI_EVENT_GATTSERVICE_META 0xF2 1377 #define HCI_EVENT_BIP_META 0xF3 1378 #define HCI_EVENT_MAP_META 0xF4 1379 #define HCI_EVENT_MESH_META 0xF5 1380 1381 // Potential other meta groups 1382 // #define HCI_EVENT_BNEP_META 0xxx 1383 // #define HCI_EVENT_GAP_META 0xxx 1384 // #define HCI_EVENT_GATT_META 0xxx 1385 // #define HCI_EVENT_PAN_META 0xxx 1386 // #define HCI_EVENT_SDP_META 0xxx 1387 // #define HCI_EVENT_SM_META 0xxx 1388 1389 1390 /** HSP Subevent */ 1391 1392 /** 1393 * @format 11 1394 * @param subevent_code 1395 * @param status 0 == OK 1396 */ 1397 #define HSP_SUBEVENT_RFCOMM_CONNECTION_COMPLETE 0x01 1398 1399 /** 1400 * @format 11 1401 * @param subevent_code 1402 * @param status 0 == OK 1403 */ 1404 #define HSP_SUBEVENT_RFCOMM_DISCONNECTION_COMPLETE 0x02 1405 1406 1407 /** 1408 * @format 11H 1409 * @param subevent_code 1410 * @param status 0 == OK 1411 * @param handle 1412 */ 1413 #define HSP_SUBEVENT_AUDIO_CONNECTION_COMPLETE 0x03 1414 1415 /** 1416 * @format 11 1417 * @param subevent_code 1418 * @param status 0 == OK 1419 */ 1420 #define HSP_SUBEVENT_AUDIO_DISCONNECTION_COMPLETE 0x04 1421 1422 /** 1423 * @format 1 1424 * @param subevent_code 1425 */ 1426 #define HSP_SUBEVENT_RING 0x05 1427 1428 /** 1429 * @format 11 1430 * @param subevent_code 1431 * @param gain Valid range: [0,15] 1432 */ 1433 #define HSP_SUBEVENT_MICROPHONE_GAIN_CHANGED 0x06 1434 1435 /** 1436 * @format 11 1437 * @param subevent_code 1438 * @param gain Valid range: [0,15] 1439 */ 1440 #define HSP_SUBEVENT_SPEAKER_GAIN_CHANGED 0x07 1441 1442 /** 1443 * @format 1JV 1444 * @param subevent_code 1445 * @param value_length 1446 * @param value 1447 */ 1448 #define HSP_SUBEVENT_HS_COMMAND 0x08 1449 1450 /** 1451 * @format 1JV 1452 * @param subevent_code 1453 * @param value_length 1454 * @param value 1455 */ 1456 #define HSP_SUBEVENT_AG_INDICATION 0x09 1457 1458 1459 /** HFP Subevent */ 1460 1461 /** 1462 * @format 11HB 1463 * @param subevent_code 1464 * @param status 0 == OK 1465 * @param con_handle 1466 * @param bd_addr 1467 */ 1468 #define HFP_SUBEVENT_SERVICE_LEVEL_CONNECTION_ESTABLISHED 0x01 1469 1470 /** 1471 * @format 1 1472 * @param subevent_code 1473 */ 1474 #define HFP_SUBEVENT_SERVICE_LEVEL_CONNECTION_RELEASED 0x02 1475 1476 /** 1477 * @format 11HB1 1478 * @param subevent_code 1479 * @param status 0 == OK 1480 * @param handle 1481 * @param bd_addr 1482 * @param negotiated_codec 1483 */ 1484 #define HFP_SUBEVENT_AUDIO_CONNECTION_ESTABLISHED 0x03 1485 1486 /** 1487 * @format 1 1488 * @param subevent_code 1489 */ 1490 #define HFP_SUBEVENT_AUDIO_CONNECTION_RELEASED 0x04 1491 1492 /** 1493 * @format 11 1494 * @param subevent_code 1495 * @param status 0 == OK 1496 */ 1497 #define HFP_SUBEVENT_COMPLETE 0x05 1498 1499 /** 1500 * @format 11111111T 1501 * @param subevent_code 1502 * @param indicator_index 1503 * @param indicator_status 1504 * @param indicator_min_range 1505 * @param indicator_max_range 1506 * @param indicator_mandatory 1507 * @param indicator_enabled 1508 * @param indicator_status_changed 1509 * @param indicator_name 1510 */ 1511 #define HFP_SUBEVENT_AG_INDICATOR_STATUS_CHANGED 0x06 1512 1513 /** 1514 * @format 111T 1515 * @param subevent_code 1516 * @param network_operator_mode 1517 * @param network_operator_format 1518 * @param network_operator_name 1519 */ 1520 #define HFP_SUBEVENT_NETWORK_OPERATOR_CHANGED 0x07 1521 1522 /** 1523 * @format 11 1524 * @param subevent_code 1525 * @param error 1526 */ 1527 #define HFP_SUBEVENT_EXTENDED_AUDIO_GATEWAY_ERROR 0x08 1528 1529 /** 1530 * @format 1 1531 * @param subevent_code 1532 */ 1533 #define HFP_SUBEVENT_START_RINGINIG 0x0A 1534 1535 /** 1536 * @format 1 1537 * @param subevent_code 1538 */ 1539 #define HFP_SUBEVENT_STOP_RINGINIG 0x0B 1540 1541 /** 1542 * @format 1 1543 * @param subevent_code 1544 */ 1545 #define HFP_SUBEVENT_CALL_TERMINATED 0x0C 1546 1547 /** 1548 * @format 1T 1549 * @param subevent_code 1550 * @param number 1551 */ 1552 #define HFP_SUBEVENT_PLACE_CALL_WITH_NUMBER 0x0D 1553 1554 /** 1555 * @format 1 1556 * @param subevent_code 1557 */ 1558 #define HFP_SUBEVENT_ATTACH_NUMBER_TO_VOICE_TAG 0x0E 1559 1560 /** 1561 * @format 1T 1562 * @param subevent_code 1563 * @param number 1564 */ 1565 #define HFP_SUBEVENT_NUMBER_FOR_VOICE_TAG 0x0F 1566 1567 /** 1568 * @format 1T 1569 * @param subevent_code 1570 * @param dtmf code 1571 */ 1572 #define HFP_SUBEVENT_TRANSMIT_DTMF_CODES 0x10 1573 1574 /** 1575 * @format 1 1576 * @param subevent_code 1577 */ 1578 #define HFP_SUBEVENT_CALL_ANSWERED 0x11 1579 1580 /** 1581 * @format 1 1582 * @param subevent_code 1583 */ 1584 #define HFP_SUBEVENT_CONFERENCE_CALL 0x12 1585 1586 /** 1587 * @format 1 1588 * @param subevent_code 1589 */ 1590 #define HFP_SUBEVENT_RING 0x13 1591 1592 /** 1593 * @format 11 1594 * @param subevent_code 1595 * @param gain 1596 */ 1597 #define HFP_SUBEVENT_SPEAKER_VOLUME 0x14 1598 1599 /** 1600 * @format 11 1601 * @param subevent_code 1602 * @param gain 1603 */ 1604 #define HFP_SUBEVENT_MICROPHONE_VOLUME 0x15 1605 1606 /** 1607 * @format 11T 1608 * @param subevent_code 1609 * @param type 1610 * @param number 1611 */ 1612 #define HFP_SUBEVENT_CALL_WAITING_NOTIFICATION 0x16 1613 1614 /** 1615 * @format 11T 1616 * @param subevent_code 1617 * @param type 1618 * @param number 1619 */ 1620 #define HFP_SUBEVENT_CALLING_LINE_IDENTIFICATION_NOTIFICATION 0x17 1621 1622 /** 1623 * @format 1111111T 1624 * @param subevent_code 1625 * @param clcc_idx 1626 * @param clcc_dir 1627 * @param clcc_status 1628 * @param clcc_mode 1629 * @param clcc_mpty 1630 * @param bnip_type 1631 * @param bnip_number 1632 */ 1633 #define HFP_SUBEVENT_ENHANCED_CALL_STATUS 0x18 1634 1635 /** 1636 * @format 111T 1637 * @param subevent_code 1638 * @param status 1639 * @param bnip_type 1640 * @param bnip_number 1641 */ 1642 #define HFP_SUBEVENT_SUBSCRIBER_NUMBER_INFORMATION 0x19 1643 1644 /** 1645 * @format 1T 1646 * @param subevent_code 1647 * @param value 1648 */ 1649 #define HFP_SUBEVENT_RESPONSE_AND_HOLD_STATUS 0x1A 1650 1651 // ANCS Client 1652 1653 /** 1654 * @format 1H 1655 * @param subevent_code 1656 * @param handle 1657 */ 1658 #define ANCS_SUBEVENT_CLIENT_CONNECTED 0xF0 1659 1660 /** 1661 * @format 1H2T 1662 * @param subevent_code 1663 * @param handle 1664 * @param attribute_id 1665 * @param text 1666 */ 1667 #define ANCS_SUBEVENT_CLIENT_NOTIFICATION 0xF1 1668 1669 /** 1670 * @format 1H 1671 * @param subevent_code 1672 * @param handle 1673 */ 1674 #define ANCS_SUBEVENT_CLIENT_DISCONNECTED 0xF2 1675 1676 1677 /** AVDTP Subevent */ 1678 1679 /** 1680 * @format 12111 1681 * @param subevent_code 1682 * @param avdtp_cid 1683 * @param local_seid 1684 * @param is_initiator 1685 * @param signal_identifier 1686 */ 1687 #define AVDTP_SUBEVENT_SIGNALING_ACCEPT 0x01 1688 1689 /** 1690 * @format 12111 1691 * @param subevent_code 1692 * @param avdtp_cid 1693 * @param local_seid 1694 * @param is_initiator 1695 * @param signal_identifier 1696 */ 1697 #define AVDTP_SUBEVENT_SIGNALING_REJECT 0x02 1698 1699 /** 1700 * @format 12111 1701 * @param subevent_code 1702 * @param avdtp_cid 1703 * @param local_seid 1704 * @param is_initiator 1705 * @param signal_identifier 1706 */ 1707 #define AVDTP_SUBEVENT_SIGNALING_GENERAL_REJECT 0x03 1708 1709 /** 1710 * @format 12B1 1711 * @param subevent_code 1712 * @param avdtp_cid 1713 * @param bd_addr 1714 * @param status 0 == OK 1715 */ 1716 #define AVDTP_SUBEVENT_SIGNALING_CONNECTION_ESTABLISHED 0x04 1717 1718 /** 1719 * @format 12 1720 * @param subevent_code 1721 * @param avdtp_cid 1722 */ 1723 #define AVDTP_SUBEVENT_SIGNALING_CONNECTION_RELEASED 0x05 1724 1725 /** 1726 * @format 121111 1727 * @param subevent_code 1728 * @param avdtp_cid 1729 * @param remote_seid 0x01 – 0x3E 1730 * @param in_use 0-not in use, 1-in use 1731 * @param media_type 0-audio, 1-video, 2-multimedia 1732 * @param sep_type 0-source, 1-sink 1733 */ 1734 #define AVDTP_SUBEVENT_SIGNALING_SEP_FOUND 0x06 1735 1736 /** 1737 * @format 121111111111 1738 * @param subevent_code 1739 * @param avdtp_cid 1740 * @param local_seid 1741 * @param remote_seid 1742 * @param media_type 1743 * @param sampling_frequency_bitmap 1744 * @param channel_mode_bitmap 1745 * @param block_length_bitmap 1746 * @param subbands_bitmap 1747 * @param allocation_method_bitmap 1748 * @param min_bitpool_value 1749 * @param max_bitpool_value 1750 */ 1751 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CAPABILITY 0x07 1752 1753 /** 1754 * @format 121112LV 1755 * @param subevent_code 1756 * @param avdtp_cid 1757 * @param local_seid 1758 * @param remote_seid 1759 * @param media_type 1760 * @param media_codec_type 1761 * @param media_codec_information_len 1762 * @param media_codec_information 1763 */ 1764 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CAPABILITY 0x08 1765 1766 1767 /** 1768 * @format 1211 1769 * @param subevent_code 1770 * @param avdtp_cid 1771 * @param local_seid 1772 * @param remote_seid 1773 */ 1774 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_TRANSPORT_CAPABILITY 0x09 1775 1776 1777 /** 1778 * @format 1211 1779 * @param subevent_code 1780 * @param avdtp_cid 1781 * @param local_seid 1782 * @param remote_seid 1783 */ 1784 #define AVDTP_SUBEVENT_SIGNALING_REPORTING_CAPABILITY 0x0A 1785 1786 1787 /** 1788 * @format 1211111 1789 * @param subevent_code 1790 * @param avdtp_cid 1791 * @param local_seid 1792 * @param remote_seid 1793 * @param recovery_type 1794 * @param maximum_recovery_window_size 1795 * @param maximum_number_media_packets 1796 */ 1797 #define AVDTP_SUBEVENT_SIGNALING_RECOVERY_CAPABILITY 0x0B 1798 1799 1800 /** 1801 * @format 12112LV 1802 * @param subevent_code 1803 * @param avdtp_cid 1804 * @param local_seid 1805 * @param remote_seid 1806 * @param cp_type 1807 * @param cp_type_value_len 1808 * @param cp_type_value 1809 */ 1810 #define AVDTP_SUBEVENT_SIGNALING_CONTENT_PROTECTION_CAPABILITY 0x0C 1811 1812 1813 /** 1814 * @format 121111111111 1815 * @param subevent_code 1816 * @param avdtp_cid 1817 * @param local_seid 1818 * @param remote_seid 1819 * @param fragmentation 1820 * @param transport_identifiers_num 1821 * @param transport_session_identifier_1 1822 * @param transport_session_identifier_2 1823 * @param transport_session_identifier_3 1824 * @param tcid_1 1825 * @param tcid_2 1826 * @param tcid_3 1827 */ 1828 #define AVDTP_SUBEVENT_SIGNALING_MULTIPLEXING_CAPABILITY 0x0D 1829 1830 1831 /** 1832 * @format 1211 1833 * @param subevent_code 1834 * @param avdtp_cid 1835 * @param local_seid 1836 * @param remote_seid 1837 */ 1838 #define AVDTP_SUBEVENT_SIGNALING_DELAY_REPORTING_CAPABILITY 0x0E 1839 1840 1841 /** 1842 * @format 1211111 1843 * @param subevent_code 1844 * @param avdtp_cid 1845 * @param local_seid 1846 * @param remote_seid 1847 * @param back_ch 1848 * @param media 1849 * @param recovery 1850 */ 1851 #define AVDTP_SUBEVENT_SIGNALING_HEADER_COMPRESSION_CAPABILITY 0x0F 1852 1853 1854 /** 1855 * @format 12111121111111 1856 * @param subevent_code 1857 * @param avdtp_cid 1858 * @param local_seid 1859 * @param remote_seid 1860 * @param reconfigure 1861 * @param media_type 1862 * @param sampling_frequency 1863 * @param channel_mode 1864 * @param num_channels 1865 * @param block_length 1866 * @param subbands 1867 * @param allocation_method 1868 * @param min_bitpool_value 1869 * @param max_bitpool_value 1870 */ 1871 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION 0x10 1872 1873 /** 1874 * @format 1211112LV 1875 * @param subevent_code 1876 * @param avdtp_cid 1877 * @param local_seid 1878 * @param remote_seid 1879 * @param reconfigure 1880 * @param media_type 1881 * @param media_codec_type 1882 * @param media_codec_information_len 1883 * @param media_codec_information 1884 */ 1885 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION 0x11 1886 1887 /** 1888 * @format 12B111 1889 * @param subevent_code 1890 * @param avdtp_cid 1891 * @param bd_addr 1892 * @param local_seid 1893 * @param remote_seid 1894 * @param status 0 == OK 1895 */ 1896 #define AVDTP_SUBEVENT_STREAMING_CONNECTION_ESTABLISHED 0x12 1897 1898 /** 1899 * @format 121 1900 * @param subevent_code 1901 * @param avdtp_cid 1902 * @param local_seid 1903 */ 1904 #define AVDTP_SUBEVENT_STREAMING_CONNECTION_RELEASED 0x13 1905 1906 /** 1907 * @format 1212 1908 * @param subevent_code 1909 * @param avdtp_cid 1910 * @param local_seid 1911 * @param sequence_number 1912 */ 1913 #define AVDTP_SUBEVENT_STREAMING_CAN_SEND_MEDIA_PACKET_NOW 0x14 1914 1915 /** 1916 * @format 1211 1917 * @param subevent_code 1918 * @param avdtp_cid 1919 * @param local_seid 1920 * @param remote_seid 1921 */ 1922 #define AVDTP_SUBEVENT_SIGNALING_CAPABILITIES_DONE 0x15 1923 1924 1925 /** 1926 * @format 12 1927 * @param subevent_code 1928 * @param avdtp_cid 1929 */ 1930 #define AVDTP_SUBEVENT_SIGNALING_SEP_DICOVERY_DONE 0x16 1931 1932 /** 1933 * @format 1212 1934 * @param subevent_code 1935 * @param avdtp_cid 1936 * @param local_seid 1937 * @param delay_100us 1938 */ 1939 #define AVDTP_SUBEVENT_SIGNALING_DELAY_REPORT 0x17 1940 1941 /** A2DP Subevent */ 1942 /* Stream goes through following states: 1943 * - OPEN - indicated with A2DP_SUBEVENT_STREAM_ESTABLISHED event 1944 * - START - indicated with A2DP_SUBEVENT_STREAM_STARTED event 1945 * - SUSPEND - indicated with A2DP_SUBEVENT_STREAM_SUSPENDED event 1946 * - ABORT/STOP - indicated with A2DP_SUBEVENT_STREAM_RELEASED event 1947 1948 OPEN state will be followed by ABORT/STOP. Stream is ready but media transfer is not started. 1949 START can come only after the stream is OPENED, and indicates that media transfer is started. 1950 SUSPEND is optional, it pauses the stream. 1951 */ 1952 1953 /** 1954 * @format 121 Sent only by A2DP source. 1955 * @param subevent_code 1956 * @param a2dp_cid 1957 * @param local_seid 1958 */ 1959 #define A2DP_SUBEVENT_STREAMING_CAN_SEND_MEDIA_PACKET_NOW 0x01 1960 1961 /** 1962 * @format 12111121111111 1963 * @param subevent_code 1964 * @param a2dp_cid 1965 * @param int_seid 1966 * @param acp_seid 1967 * @param reconfigure 1968 * @param media_type 1969 * @param sampling_frequency 1970 * @param channel_mode 1971 * @param num_channels 1972 * @param block_length 1973 * @param subbands 1974 * @param allocation_method 1975 * @param min_bitpool_value 1976 * @param max_bitpool_value 1977 */ 1978 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION 0x02 1979 1980 /** 1981 * @format 1211112LV 1982 * @param subevent_code 1983 * @param a2dp_cid 1984 * @param int_seid 1985 * @param acp_seid 1986 * @param reconfigure 1987 * @param media_type 1988 * @param media_codec_type 1989 * @param media_codec_information_len 1990 * @param media_codec_information 1991 */ 1992 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION 0x03 1993 1994 /** 1995 * @format 12B111 Stream is opened byt not started. 1996 * @param subevent_code 1997 * @param a2dp_cid 1998 * @param bd_addr 1999 * @param local_seid 2000 * @param remote_seid 2001 * @param status 2002 */ 2003 #define A2DP_SUBEVENT_STREAM_ESTABLISHED 0x04 2004 2005 /** 2006 * @format 121 Indicates that media transfer is started. 2007 * @param subevent_code 2008 * @param a2dp_cid 2009 * @param local_seid 2010 */ 2011 #define A2DP_SUBEVENT_STREAM_STARTED 0x05 2012 2013 /** 2014 * @format 121 Stream is paused. 2015 * @param subevent_code 2016 * @param a2dp_cid 2017 * @param local_seid 2018 */ 2019 #define A2DP_SUBEVENT_STREAM_SUSPENDED 0x06 2020 2021 /** 2022 * @format 121 Stream is stoped or aborted. 2023 * @param subevent_code 2024 * @param a2dp_cid 2025 * @param local_seid 2026 */ 2027 #define A2DP_SUBEVENT_STREAM_STOPPED 0x07 2028 2029 /** 2030 * @format 121 Stream is released. 2031 * @param subevent_code 2032 * @param a2dp_cid 2033 * @param local_seid 2034 */ 2035 #define A2DP_SUBEVENT_STREAM_RELEASED 0x08 2036 2037 /** 2038 * @format 1211 2039 * @param subevent_code 2040 * @param a2dp_cid 2041 * @param local_seid 2042 * @param signal_identifier 2043 */ 2044 #define A2DP_SUBEVENT_COMMAND_ACCEPTED 0x09 2045 2046 /** 2047 * @format 1211 2048 * @param subevent_code 2049 * @param a2dp_cid 2050 * @param local_seid 2051 * @param signal_identifier 2052 */ 2053 #define A2DP_SUBEVENT_COMMAND_REJECTED 0x0A 2054 2055 /** 2056 * @format 12B1 2057 * @param subevent_code 2058 * @param a2dp_cid 2059 * @param bd_addr 2060 * @param status 0 == OK 2061 */ 2062 #define A2DP_SUBEVENT_SIGNALING_CONNECTION_ESTABLISHED 0x0B 2063 2064 /** 2065 * @format 12 Signaling channel is released. 2066 * @param subevent_code 2067 * @param a2dp_cid 2068 */ 2069 #define A2DP_SUBEVENT_SIGNALING_CONNECTION_RELEASED 0x0C 2070 2071 /** 2072 * @format 1211 Stream was reconfigured 2073 * @param subevent_code 2074 * @param a2dp_cid 2075 * @param local_seid 2076 * @param status 2077 */ 2078 #define A2DP_SUBEVENT_STREAM_RECONFIGURED 0x0D 2079 2080 /** 2081 * @format 1211 2082 * @param subevent_code 2083 * @param avdtp_cid 2084 * @param local_seid 2085 * @param remote_seid 2086 */ 2087 #define A2DP_SUBEVENT_SIGNALING_DELAY_REPORTING_CAPABILITY 0x0E 2088 2089 2090 /** 2091 * @format 1212 2092 * @param subevent_code 2093 * @param avdtp_cid 2094 * @param local_seid 2095 * @param delay_100us 2096 */ 2097 #define A2DP_SUBEVENT_SIGNALING_DELAY_REPORT 0x0F 2098 2099 /** 2100 * @format 1211 2101 * @param subevent_code 2102 * @param avdtp_cid 2103 * @param local_seid 2104 * @param remote_seid 2105 */ 2106 #define A2DP_SUBEVENT_SIGNALING_CAPABILITIES_DONE 0x10 2107 2108 /** AVRCP Subevent */ 2109 2110 /** 2111 * @format 11B2 2112 * @param subevent_code 2113 * @param status 0 == OK 2114 * @param bd_addr 2115 * @param avrcp_cid 2116 */ 2117 #define AVRCP_SUBEVENT_CONNECTION_ESTABLISHED 0x01 2118 2119 /** 2120 * @format 12 2121 * @param subevent_code 2122 * @param avrcp_cid 2123 */ 2124 #define AVRCP_SUBEVENT_CONNECTION_RELEASED 0x02 2125 2126 /** 2127 * @format 12111 2128 * @param subevent_code 2129 * @param avrcp_cid 2130 * @param command_type 2131 * @param repeat_mode 2132 * @param shuffle_mode 2133 */ 2134 #define AVRCP_SUBEVENT_SHUFFLE_AND_REPEAT_MODE 0x03 2135 2136 /** 2137 * @format 121441 2138 * @param subevent_code 2139 * @param avrcp_cid 2140 * @param command_type 2141 * @param song_length 2142 * @param song_position 2143 * @param play_status 2144 */ 2145 #define AVRCP_SUBEVENT_PLAY_STATUS 0x04 2146 2147 /** 2148 * @format 1211 2149 * @param subevent_code 2150 * @param avrcp_cid 2151 * @param command_type 2152 * @param play_status 2153 */ 2154 #define AVRCP_SUBEVENT_NOTIFICATION_PLAYBACK_STATUS_CHANGED 0x05 2155 2156 /** 2157 * @format 121 2158 * @param subevent_code 2159 * @param avrcp_cid 2160 * @param command_type 2161 */ 2162 #define AVRCP_SUBEVENT_NOTIFICATION_TRACK_CHANGED 0x06 2163 2164 /** 2165 * @format 121 2166 * @param subevent_code 2167 * @param avrcp_cid 2168 * @param command_type 2169 */ 2170 #define AVRCP_SUBEVENT_NOTIFICATION_NOW_PLAYING_CONTENT_CHANGED 0x07 2171 2172 /** 2173 * @format 121 2174 * @param subevent_code 2175 * @param avrcp_cid 2176 * @param command_type 2177 */ 2178 #define AVRCP_SUBEVENT_NOTIFICATION_AVAILABLE_PLAYERS_CHANGED 0x08 2179 2180 /** 2181 * @format 1211 2182 * @param subevent_code 2183 * @param avrcp_cid 2184 * @param command_type 2185 * @param absolute_volume 2186 */ 2187 #define AVRCP_SUBEVENT_NOTIFICATION_VOLUME_CHANGED 0x09 2188 2189 /** 2190 * @format 1211 2191 * @param subevent_code 2192 * @param avrcp_cid 2193 * @param command_type 2194 * @param absolute_volume 2195 */ 2196 #define AVRCP_SUBEVENT_SET_ABSOLUTE_VOLUME_RESPONSE 0x0A 2197 2198 /** 2199 * @format 1211 2200 * @param subevent_code 2201 * @param avrcp_cid 2202 * @param command_type 2203 * @param notification_id 2204 */ 2205 #define AVRCP_SUBEVENT_ENABLE_NOTIFICATION_COMPLETE 0x0B 2206 2207 /** 2208 * @format 1211 2209 * @param subevent_code 2210 * @param avrcp_cid 2211 * @param command_type 2212 * @param operation_id 2213 */ 2214 #define AVRCP_SUBEVENT_OPERATION_START 0x0C 2215 2216 /** 2217 * @format 1211 2218 * @param subevent_code 2219 * @param avrcp_cid 2220 * @param command_type 2221 * @param operation_id 2222 */ 2223 #define AVRCP_SUBEVENT_OPERATION_COMPLETE 0x0D 2224 2225 /** 2226 * @format 121 2227 * @param subevent_code 2228 * @param avrcp_cid 2229 * @param command_type 2230 */ 2231 #define AVRCP_SUBEVENT_PLAYER_APPLICATION_VALUE_RESPONSE 0x0E 2232 2233 /** 2234 * @format 12 2235 * @param subevent_code 2236 * @param avrcp_cid 2237 */ 2238 #define AVRCP_SUBEVENT_COMPANY_IDS_QUERY 0x0F 2239 2240 /** 2241 * @format 12 2242 * @param subevent_code 2243 * @param avrcp_cid 2244 */ 2245 #define AVRCP_SUBEVENT_EVENT_IDS_QUERY 0x10 2246 2247 /** 2248 * @format 12 2249 * @param subevent_code 2250 * @param avrcp_cid 2251 */ 2252 #define AVRCP_SUBEVENT_PLAY_STATUS_QUERY 0x11 2253 2254 /** 2255 * @format 12111 2256 * @param subevent_code 2257 * @param avrcp_cid 2258 * @param operation_id 2259 * @param operands_length 2260 * @param operand 2261 */ 2262 #define AVRCP_SUBEVENT_OPERATION 0x12 2263 2264 /** 2265 * @format 1211 2266 * @param subevent_code 2267 * @param avrcp_cid 2268 * @param command_type 2269 * @param track 2270 */ 2271 #define AVRCP_SUBEVENT_NOW_PLAYING_TRACK_INFO 0x13 2272 2273 /** 2274 * @format 1211 2275 * @param subevent_code 2276 * @param avrcp_cid 2277 * @param command_type 2278 * @param total_tracks 2279 */ 2280 #define AVRCP_SUBEVENT_NOW_PLAYING_TOTAL_TRACKS_INFO 0x14 2281 2282 /** 2283 * @format 1214 2284 * @param subevent_code 2285 * @param avrcp_cid 2286 * @param command_type 2287 * @param song_length in ms 2288 */ 2289 #define AVRCP_SUBEVENT_NOW_PLAYING_SONG_LENGTH_MS_INFO 0x15 2290 2291 /** 2292 * @format 121JV 2293 * @param subevent_code 2294 * @param avrcp_cid 2295 * @param command_type 2296 * @param value_len 2297 * @param value 2298 */ 2299 #define AVRCP_SUBEVENT_NOW_PLAYING_TITLE_INFO 0x16 2300 2301 /* 2302 * @format 121JV 2303 * @param subevent_code 2304 * @param avrcp_cid 2305 * @param command_type 2306 * @param value_len 2307 * @param value 2308 */ 2309 #define AVRCP_SUBEVENT_NOW_PLAYING_ARTIST_INFO 0x17 2310 2311 /* 2312 * @format 121JV 2313 * @param subevent_code 2314 * @param avrcp_cid 2315 * @param command_type 2316 * @param value_len 2317 * @param value 2318 */ 2319 #define AVRCP_SUBEVENT_NOW_PLAYING_ALBUM_INFO 0x18 2320 2321 /* 2322 * @format 121JV 2323 * @param subevent_code 2324 * @param avrcp_cid 2325 * @param command_type 2326 * @param value_len 2327 * @param value 2328 */ 2329 #define AVRCP_SUBEVENT_NOW_PLAYING_GENRE_INFO 0x19 2330 2331 /* 2332 * @format 1211 2333 * @param subevent_code 2334 * @param avrcp_cid 2335 * @param command_type 2336 * @param status 2337 */ 2338 #define AVRCP_SUBEVENT_NOW_PLAYING_INFO_DONE 0x1A 2339 2340 /** 2341 * @format 1B2 2342 * @param subevent_code 2343 * @param bd_addr 2344 * @param browsing_cid 2345 */ 2346 #define AVRCP_SUBEVENT_INCOMING_BROWSING_CONNECTION 0x1B 2347 2348 /** 2349 * @format 11B2 2350 * @param subevent_code 2351 * @param status 0 == OK 2352 * @param bd_addr 2353 * @param browsing_cid 2354 */ 2355 #define AVRCP_SUBEVENT_BROWSING_CONNECTION_ESTABLISHED 0x1C 2356 2357 /** 2358 * @format 12 2359 * @param subevent_code 2360 * @param browsing_cid 2361 */ 2362 #define AVRCP_SUBEVENT_BROWSING_CONNECTION_RELEASED 0x1D 2363 2364 /** 2365 * @format 12211 2366 * @param subevent_code 2367 * @param browsing_cid 2368 * @param uid_counter 2369 * @param browsing_status 2370 * @param bluetooth_status 2371 */ 2372 #define AVRCP_SUBEVENT_BROWSING_DONE 0x1E 2373 2374 /** 2375 * @format 1214 2376 * @param subevent_code 2377 * @param browsing_cid 2378 * @param scope 2379 * @param attr_bitmap 2380 */ 2381 #define AVRCP_SUBEVENT_BROWSING_GET_FOLDER_ITEMS 0x1F 2382 2383 /** 2384 * @format 121 2385 * @param subevent_code 2386 * @param browsing_cid 2387 * @param scope 2388 */ 2389 #define AVRCP_SUBEVENT_BROWSING_GET_TOTAL_NUM_ITEMS 0x20 2390 2391 /** 2392 * @format 1214 2393 * @param subevent_code 2394 * @param avrcp_cid 2395 * @param command_type 2396 * @param playback_position_ms 2397 */ 2398 #define AVRCP_SUBEVENT_NOTIFICATION_PLAYBACK_POS_CHANGED 0x21 2399 2400 2401 /** 2402 * @format 121BH1 2403 * @param subevent_code 2404 * @param goep_cid 2405 * @param status 2406 * @param bd_addr 2407 * @param con_handle 2408 * @param incoming 2409 */ 2410 #define GOEP_SUBEVENT_CONNECTION_OPENED 0x01 2411 2412 /** 2413 * @format 12 2414 * @param subevent_code 2415 * @param goep_cid 2416 */ 2417 #define GOEP_SUBEVENT_CONNECTION_CLOSED 0x02 2418 2419 /** 2420 * @format 12 2421 * @param subevent_code 2422 * @param goep_cid 2423 */ 2424 #define GOEP_SUBEVENT_CAN_SEND_NOW 0x03 2425 2426 /** 2427 * @format 121BH1 2428 * @param subevent_code 2429 * @param pbap_cid 2430 * @param status 2431 * @param bd_addr 2432 * @param con_handle 2433 * @param incoming 2434 */ 2435 #define PBAP_SUBEVENT_CONNECTION_OPENED 0x01 2436 2437 /** 2438 * @format 12 2439 * @param subevent_code 2440 * @param goep_cid 2441 */ 2442 #define PBAP_SUBEVENT_CONNECTION_CLOSED 0x02 2443 2444 /** 2445 * @format 121 2446 * @param subevent_code 2447 * @param goep_cid 2448 * @param status 2449 */ 2450 #define PBAP_SUBEVENT_OPERATION_COMPLETED 0x03 2451 2452 /** 2453 * @format 1212 2454 * @param subevent_code 2455 * @param goep_cid 2456 * @param status 2457 * @param phoneboook_size 2458 */ 2459 #define PBAP_SUBEVENT_PHONEBOOK_SIZE 0x04 2460 2461 /** 2462 * @format 1211 2463 * @param subevent_code 2464 * @param goep_cid 2465 * @param user_id_required 2466 * @param full_access 2467 */ 2468 #define PBAP_SUBEVENT_AUTHENTICATION_REQUEST 0x05 2469 2470 /** 2471 * @format 12JVJV 2472 * @param subevent_code 2473 * @param goep_cid 2474 * @param name_len 2475 * @param name 2476 * @param handle_len 2477 * @param handle 2478 */ 2479 #define PBAP_SUBEVENT_CARD_RESULT 0x06 2480 2481 2482 // HID Meta Event Group 2483 2484 /** 2485 * @format 121BH1 2486 * @param subevent_code 2487 * @param hid_cid 2488 * @param status 2489 * @param bd_addr 2490 * @param con_handle 2491 * @param incoming 2492 */ 2493 #define HID_SUBEVENT_CONNECTION_OPENED 0x01 2494 2495 /** 2496 * @format 12 2497 * @param subevent_code 2498 * @param hid_cid 2499 */ 2500 #define HID_SUBEVENT_CONNECTION_CLOSED 0x02 2501 2502 /** 2503 * @format 12 2504 * @param subevent_code 2505 * @param hid_cid 2506 */ 2507 #define HID_SUBEVENT_CAN_SEND_NOW 0x03 2508 2509 /** 2510 * @format 12 2511 * @param subevent_code 2512 * @param con_handle 2513 */ 2514 #define HID_SUBEVENT_SUSPEND 0x04 2515 2516 /** 2517 * @format 12 2518 * @param subevent_code 2519 * @param con_handle 2520 */ 2521 #define HID_SUBEVENT_EXIT_SUSPEND 0x05 2522 2523 2524 // HIDS Meta Event Group 2525 2526 /** 2527 * @format 12 2528 * @param subevent_code 2529 * @param con_handle 2530 */ 2531 #define HIDS_SUBEVENT_CAN_SEND_NOW 0x01 2532 2533 /** 2534 * @format 121 2535 * @param subevent_code 2536 * @param con_handle 2537 * @param protocol_mode 2538 */ 2539 #define HIDS_SUBEVENT_PROTOCOL_MODE 0x02 2540 2541 /** 2542 * @format 121 2543 * @param subevent_code 2544 * @param con_handle 2545 * @param enable 2546 */ 2547 #define HIDS_SUBEVENT_BOOT_MOUSE_INPUT_REPORT_ENABLE 0x03 2548 2549 /** 2550 * @format 121 2551 * @param subevent_code 2552 * @param con_handle 2553 * @param enable 2554 */ 2555 #define HIDS_SUBEVENT_BOOT_KEYBOARD_INPUT_REPORT_ENABLE 0x04 2556 2557 /** 2558 * @format 121 2559 * @param subevent_code 2560 * @param con_handle 2561 * @param enable 2562 */ 2563 #define HIDS_SUBEVENT_INPUT_REPORT_ENABLE 0x05 2564 2565 /** 2566 * @format 121 2567 * @param subevent_code 2568 * @param con_handle 2569 * @param enable 2570 */ 2571 #define HIDS_SUBEVENT_OUTPUT_REPORT_ENABLE 0x06 2572 2573 /** 2574 * @format 121 2575 * @param subevent_code 2576 * @param con_handle 2577 * @param enable 2578 */ 2579 #define HIDS_SUBEVENT_FEATURE_REPORT_ENABLE 0x07 2580 2581 /** 2582 * @format 12 2583 * @param subevent_code 2584 * @param con_handle 2585 */ 2586 #define HIDS_SUBEVENT_SUSPEND 0x08 2587 2588 /** 2589 * @format 12 2590 * @param subevent_code 2591 * @param con_handle 2592 */ 2593 #define HIDS_SUBEVENT_EXIT_SUSPEND 0x09 2594 2595 /** 2596 * @format 1211 2597 * @param subevent_code 2598 * @param con_handle 2599 * @param measurement_type 0 - force magnitude, 1 - torque magnitude, see cycling_power_sensor_measurement_context_t 2600 * @param is_enhanced 2601 */ 2602 #define GATTSERVICE_SUBEVENT_CYCLING_POWER_START_CALIBRATION 0x01 2603 2604 /** 2605 * @format 12 2606 * @param subevent_code 2607 * @param con_handle 2608 */ 2609 #define GATTSERVICE_SUBEVENT_CYCLING_POWER_BROADCAST_START 0x02 2610 2611 /** 2612 * @format 12 2613 * @param subevent_code 2614 * @param con_handle 2615 */ 2616 #define GATTSERVICE_SUBEVENT_CYCLING_POWER_BROADCAST_STOP 0x03 2617 2618 2619 // MAP Meta Event Group 2620 2621 /** 2622 * @format 121BH1 2623 * @param subevent_code 2624 * @param map_cid 2625 * @param status 2626 * @param bd_addr 2627 * @param con_handle 2628 * @param incoming 2629 */ 2630 #define MAP_SUBEVENT_CONNECTION_OPENED 0x01 2631 2632 /** 2633 * @format 12 2634 * @param subevent_code 2635 * @param map_cid 2636 */ 2637 #define MAP_SUBEVENT_CONNECTION_CLOSED 0x02 2638 2639 /** 2640 * @format 121 2641 * @param subevent_code 2642 * @param map_cid 2643 * @param status 2644 */ 2645 #define MAP_SUBEVENT_OPERATION_COMPLETED 0x03 2646 2647 2648 /** 2649 * @format 12LV 2650 * @param subevent_code 2651 * @param map_cid 2652 * @param name_len 2653 * @param name 2654 */ 2655 #define MAP_SUBEVENT_FOLDER_LISTING_ITEM 0x04 2656 2657 /** 2658 * @format 12D 2659 * @param subevent_code 2660 * @param map_cid 2661 * @param handle 2662 2663 */ 2664 #define MAP_SUBEVENT_MESSAGE_LISTING_ITEM 0x05 2665 2666 /** 2667 * @format 12 2668 * @param subevent_code 2669 * @param map_cid 2670 */ 2671 #define MAP_SUBEVENT_PARSING_DONE 0x06 2672 2673 2674 // MESH Meta Event Group 2675 2676 /** 2677 * @format 1 2678 * @param subevent_code 2679 */ 2680 #define MESH_SUBEVENT_CAN_SEND_NOW 0x01 2681 2682 /** 2683 * @format 11 2684 * @param subevent_code 2685 * @param status 2686 */ 2687 #define MESH_SUBEVENT_PB_TRANSPORT_PDU_SENT 0x02 2688 2689 /** 2690 * @format 1121 2691 * @param subevent_code 2692 * @param status 2693 * @param pb_transport_cid 2694 * @param pb_type 2695 */ 2696 #define MESH_SUBEVENT_PB_TRANSPORT_LINK_OPEN 0x03 2697 2698 /** 2699 * @format 112 2700 * @param subevent_code 2701 * @param pb_transport_cid 2702 * @param reason 2703 */ 2704 #define MESH_SUBEVENT_PB_TRANSPORT_LINK_CLOSED 0x04 2705 2706 /** 2707 * @format 121 2708 * @param subevent_code 2709 * @param pb_transport_cid 2710 * @param attention_time in seconds 2711 */ 2712 #define MESH_SUBEVENT_PB_PROV_ATTENTION_TIMER 0x10 2713 2714 /** 2715 * Device Role 2716 * @format 12 2717 * @param subevent_code 2718 * @param pb_transport_cid 2719 */ 2720 #define MESH_SUBEVENT_PB_PROV_START_EMIT_PUBLIC_KEY_OOB 0x11 2721 2722 /** 2723 * Device Role 2724 * @format 12 2725 * @param subevent_code 2726 * @param pb_transport_cid 2727 */ 2728 #define MESH_SUBEVENT_PB_PROV_STOP_EMIT_PUBLIC_KEY_OOB 0x12 2729 2730 /** 2731 * Device Role 2732 * @format 12 2733 * @param subevent_code 2734 * @param pb_transport_cid 2735 */ 2736 #define MESH_SUBEVENT_PB_PROV_INPUT_OOB_REQUEST 0x13 2737 2738 /** 2739 * Device Role 2740 * @format 124 2741 * @param subevent_code 2742 * @param pb_transport_cid 2743 * @param output_oob number 2744 */ 2745 #define MESH_SUBEVENT_PB_PROV_START_EMIT_OUTPUT_OOB 0x15 2746 2747 /** 2748 * Device Role 2749 * @format 12 2750 * @param subevent_code 2751 * @param pb_transport_cid 2752 */ 2753 #define MESH_SUBEVENT_PB_PROV_STOP_EMIT_OUTPUT_OOB 0x16 2754 2755 /** 2756 * Provisioner Role 2757 * @format 12 2758 * @param subevent_code 2759 * @param pb_transport_cid 2760 */ 2761 #define MESH_SUBEVENT_PB_PROV_START_RECEIVE_PUBLIC_KEY_OOB 0x17 2762 2763 /** 2764 * Provisioner Role 2765 * @format 12 2766 * @param subevent_code 2767 * @param pb_transport_cid 2768 */ 2769 #define MESH_SUBEVENT_PB_PROV_STOP_RECEIVE_PUBLIC_KEY_OOB 0x18 2770 2771 /** 2772 * Provisioner Role 2773 * @format 12 2774 * @param subevent_code 2775 * @param pb_transport_cid 2776 */ 2777 #define MESH_SUBEVENT_PB_PROV_OUTPUT_OOB_REQUEST 0x19 2778 2779 /** 2780 * Provisioner Role 2781 * @format 124 2782 * @param subevent_code 2783 * @param pb_transport_cid 2784 * @param output_oob number 2785 */ 2786 #define MESH_SUBEVENT_PB_PROV_START_EMIT_INPUT_OOB 0x1a 2787 2788 /** 2789 * Provisioner Role 2790 * @format 12 2791 * @param subevent_code 2792 * @param pb_transport_cid 2793 */ 2794 #define MESH_SUBEVENT_PB_PROV_STOP_EMIT_INPUT_OOB 0x1b 2795 2796 /** 2797 * Provisioner Role 2798 * @format 1212111212 2799 * @param subevent_code 2800 * @param pb_transport_cid 2801 * @param num_elements 2802 * @param algorithms 2803 * @param public_key 2804 * @param static_oob_type 2805 * @param output_oob_size 2806 * @param output_oob_action 2807 * @param input_oob_size 2808 * @param input_oob_action 2809 */ 2810 #define MESH_SUBEVENT_PB_PROV_CAPABILITIES 0x1c 2811 2812 /** 2813 * @format 12 2814 * @param subevent_code 2815 * @param pb_transport_cid 2816 */ 2817 #define MESH_SUBEVENT_PB_PROV_COMPLETE 0x1d 2818 2819 /** 2820 * @format 11 2821 * @param subevent_code 2822 * @param attention_time in seconds 2823 */ 2824 #define MESH_SUBEVENT_ATTENTION_TIMER 0x1e 2825 2826 /** 2827 * @format 1H 2828 * @param subevent_code 2829 * @param con_handle 2830 */ 2831 #define MESH_SUBEVENT_PROXY_CONNECTED 0x20 2832 2833 /** 2834 * @format 1H 2835 * @param subevent_code 2836 * @param con_handle 2837 */ 2838 #define MESH_SUBEVENT_PROXY_PDU_SENT 0x21 2839 2840 /** 2841 * @format 1H 2842 * @param subevent_code 2843 * @param con_handle 2844 */ 2845 #define MESH_SUBEVENT_PROXY_DISCONNECTED 0x22 2846 2847 /** 2848 * @format 1H 2849 * @param subevent_code 2850 * @param con_handle 2851 */ 2852 #define MESH_SUBEVENT_MESSAGE_SENT 0x23 2853 2854 /** 2855 * @format 114411 2856 * @param subevent_code 2857 * @param element_index 2858 * @param model_identifier 2859 * @param state_identifier 2860 * @param reason 2861 * @param value 2862 */ 2863 #define MESH_SUBEVENT_STATE_UPDATE_BOOL 0x24 2864 2865 /** 2866 * @format 114412 2867 * @param subevent_code 2868 * @param element_index 2869 * @param model_identifier 2870 * @param state_identifier 2871 * @param reason 2872 * @param value 2873 */ 2874 #define MESH_SUBEVENT_STATE_UPDATE_INT16 0x25 2875 2876 // Mesh Client Events 2877 /** 2878 * @format 11442 2879 * @param subevent_code 2880 * @param element_index 2881 * @param model_identifier 2882 * @param opcode 2883 * @param dest 2884 */ 2885 #define MESH_SUBEVENT_MESSAGE_NOT_ACKNOWLEDGED 0x30 2886 2887 /** 2888 * @format 121114 2889 * @param subevent_code 2890 * @param dest 2891 * @param status 2892 * @param present_value 2893 * @param target_value optional, if value > 0, than remaining_time_ms must be read 2894 * @param remaining_time_ms 2895 */ 2896 #define MESH_SUBEVENT_GENERIC_ON_OFF 0x31 2897 2898 /** 2899 * @format 121224 2900 * @param subevent_code 2901 * @param dest 2902 * @param status 2903 * @param present_value 2904 * @param target_value optional, if value > 0, than remaining_time_ms must be read 2905 * @param remaining_time_ms 2906 */ 2907 #define MESH_SUBEVENT_GENERIC_LEVEL 0x32 2908 2909 /** 2910 * @format 1222211 2911 * @param subevent_code 2912 * @param dest 2913 * @param netkey_index 2914 * @param appkey_index 2915 * @param company_id 2916 * @param test_id 2917 * @param acknowledged 2918 */ 2919 #define MESH_SUBEVENT_HEALTH_PERFORM_TEST 0x33 2920 2921 /** 2922 * @format 11 2923 * @param subevent_code 2924 * @param element_index 2925 */ 2926 #define MESH_SUBEVENT_HEALTH_ATTENTION_TIMER_CHANGED 0x34 2927 2928 /** 2929 * @format 1211 2930 * @param subevent_code 2931 * @param dest 2932 * @param status 2933 * @param transition_time_gdtt 2934 */ 2935 #define MESH_SUBEVENT_GENERIC_DEFAULT_TRANSITION_TIME 0x35 2936 2937 /** 2938 * @format 1211 2939 * @param subevent_code 2940 * @param dest 2941 * @param foundation_status 2942 * @param secure_network_beacon_state 2943 */ 2944 #define MESH_SUBEVENT_CONFIGURATION_BEACON 0x36 2945 2946 // Composition Data has variable of element descriptions, with two lists of model lists 2947 // Use .. getters to access data 2948 #define MESH_SUBEVENT_CONFIGURATION_COMPOSITION_DATA 0x37 2949 2950 /** 2951 * @format 1211 2952 * @param subevent_code 2953 * @param dest 2954 * @param foundation_status 2955 * @param default_ttl 2956 */ 2957 #define MESH_SUBEVENT_CONFIGURATION_DEFAULT_TTL 0x38 2958 2959 /** 2960 * @format 1211 2961 * @param subevent_code 2962 * @param dest 2963 * @param foundation_status 2964 * @param gatt_proxy_state 2965 */ 2966 #define MESH_SUBEVENT_CONFIGURATION_GATT_PROXY 0x39 2967 2968 /** 2969 * @format 121111 2970 * @param subevent_code 2971 * @param dest 2972 * @param foundation_status 2973 * @param relay 2974 * @param retransmit_count the number of times that packet is transmitted for each packet that is relayed. 2975 * @param retransmit_interval_ms retransmission interval in ms 2976 */ 2977 #define MESH_SUBEVENT_CONFIGURATION_RELAY 0x40 2978 2979 2980 /** 2981 * @format 12122111114 2982 * @param subevent_code 2983 * @param dest element_address 2984 * @param foundation_status 2985 * @param publish_address 2986 * @param appkey_index 2987 * @param credential_flag 2988 * @param publish_ttl 2989 * @param publish_period 2990 * @param publish_retransmit_count 2991 * @param publish_retransmit_interval_steps 2992 * @param model_identifier 2993 */ 2994 #define MESH_SUBEVENT_CONFIGURATION_MODEL_PUBLICATION 0x41 2995 2996 /** 2997 * @format 12124 2998 * @param subevent_code 2999 * @param dest 3000 * @param foundation_status 3001 * @param address 3002 * @param model_identifier 3003 */ 3004 #define MESH_SUBEVENT_CONFIGURATION_MODEL_SUBSCRIPTION 0x42 3005 #endif 3006