1 /* 2 * Copyright (C) 2016 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_event.h 41 * 42 * @brief BTstack event getter/setter 43 * @note Don't edit - generated by tool/btstack_event_generator.py 44 * 45 */ 46 47 #ifndef __BTSTACK_EVENT_H 48 #define __BTSTACK_EVENT_H 49 50 #if defined __cplusplus 51 extern "C" { 52 #endif 53 54 #include "btstack_util.h" 55 #include <stdint.h> 56 57 #ifdef ENABLE_BLE 58 #include "ble/gatt_client.h" 59 #endif 60 61 /* API_START */ 62 63 /** 64 * @brief Get event type 65 * @param event 66 * @return type of event 67 */ 68 static inline uint8_t hci_event_packet_get_type(const uint8_t * event){ 69 return event[0]; 70 } 71 72 /*** 73 * @brief Get subevent code for a2dp event 74 * @param event packet 75 * @return subevent_code 76 */ 77 static inline uint8_t hci_event_a2dp_meta_get_subevent_code(const uint8_t * event){ 78 return event[2]; 79 } 80 /*** 81 * @brief Get subevent code for ancs event 82 * @param event packet 83 * @return subevent_code 84 */ 85 static inline uint8_t hci_event_ancs_meta_get_subevent_code(const uint8_t * event){ 86 return event[2]; 87 } 88 /*** 89 * @brief Get subevent code for avdtp event 90 * @param event packet 91 * @return subevent_code 92 */ 93 static inline uint8_t hci_event_avdtp_meta_get_subevent_code(const uint8_t * event){ 94 return event[2]; 95 } 96 /*** 97 * @brief Get subevent code for avrcp event 98 * @param event packet 99 * @return subevent_code 100 */ 101 static inline uint8_t hci_event_avrcp_meta_get_subevent_code(const uint8_t * event){ 102 return event[2]; 103 } 104 /*** 105 * @brief Get subevent code for gattservice event 106 * @param event packet 107 * @return subevent_code 108 */ 109 static inline uint8_t hci_event_gattservice_meta_get_subevent_code(const uint8_t * event){ 110 return event[2]; 111 } 112 /*** 113 * @brief Get subevent code for goep event 114 * @param event packet 115 * @return subevent_code 116 */ 117 static inline uint8_t hci_event_goep_meta_get_subevent_code(const uint8_t * event){ 118 return event[2]; 119 } 120 /*** 121 * @brief Get subevent code for hfp event 122 * @param event packet 123 * @return subevent_code 124 */ 125 static inline uint8_t hci_event_hfp_meta_get_subevent_code(const uint8_t * event){ 126 return event[2]; 127 } 128 /*** 129 * @brief Get subevent code for hid event 130 * @param event packet 131 * @return subevent_code 132 */ 133 static inline uint8_t hci_event_hid_meta_get_subevent_code(const uint8_t * event){ 134 return event[2]; 135 } 136 /*** 137 * @brief Get subevent code for hids event 138 * @param event packet 139 * @return subevent_code 140 */ 141 static inline uint8_t hci_event_hids_meta_get_subevent_code(const uint8_t * event){ 142 return event[2]; 143 } 144 /*** 145 * @brief Get subevent code for hsp event 146 * @param event packet 147 * @return subevent_code 148 */ 149 static inline uint8_t hci_event_hsp_meta_get_subevent_code(const uint8_t * event){ 150 return event[2]; 151 } 152 /*** 153 * @brief Get subevent code for le event 154 * @param event packet 155 * @return subevent_code 156 */ 157 static inline uint8_t hci_event_le_meta_get_subevent_code(const uint8_t * event){ 158 return event[2]; 159 } 160 /*** 161 * @brief Get subevent code for pbap event 162 * @param event packet 163 * @return subevent_code 164 */ 165 static inline uint8_t hci_event_pbap_meta_get_subevent_code(const uint8_t * event){ 166 return event[2]; 167 } 168 /** 169 * @brief Get field status from event HCI_EVENT_INQUIRY_COMPLETE 170 * @param event packet 171 * @return status 172 * @note: btstack_type 1 173 */ 174 static inline uint8_t hci_event_inquiry_complete_get_status(const uint8_t * event){ 175 return event[2]; 176 } 177 178 /** 179 * @brief Get field num_responses from event HCI_EVENT_INQUIRY_RESULT 180 * @param event packet 181 * @return num_responses 182 * @note: btstack_type 1 183 */ 184 static inline uint8_t hci_event_inquiry_result_get_num_responses(const uint8_t * event){ 185 return event[2]; 186 } 187 /** 188 * @brief Get field bd_addr from event HCI_EVENT_INQUIRY_RESULT 189 * @param event packet 190 * @param Pointer to storage for bd_addr 191 * @note: btstack_type B 192 */ 193 static inline void hci_event_inquiry_result_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 194 reverse_bd_addr(&event[3], bd_addr); 195 } 196 /** 197 * @brief Get field page_scan_repetition_mode from event HCI_EVENT_INQUIRY_RESULT 198 * @param event packet 199 * @return page_scan_repetition_mode 200 * @note: btstack_type 1 201 */ 202 static inline uint8_t hci_event_inquiry_result_get_page_scan_repetition_mode(const uint8_t * event){ 203 return event[9]; 204 } 205 /** 206 * @brief Get field reserved1 from event HCI_EVENT_INQUIRY_RESULT 207 * @param event packet 208 * @return reserved1 209 * @note: btstack_type 1 210 */ 211 static inline uint8_t hci_event_inquiry_result_get_reserved1(const uint8_t * event){ 212 return event[10]; 213 } 214 /** 215 * @brief Get field reserved2 from event HCI_EVENT_INQUIRY_RESULT 216 * @param event packet 217 * @return reserved2 218 * @note: btstack_type 1 219 */ 220 static inline uint8_t hci_event_inquiry_result_get_reserved2(const uint8_t * event){ 221 return event[11]; 222 } 223 /** 224 * @brief Get field class_of_device from event HCI_EVENT_INQUIRY_RESULT 225 * @param event packet 226 * @return class_of_device 227 * @note: btstack_type 3 228 */ 229 static inline uint32_t hci_event_inquiry_result_get_class_of_device(const uint8_t * event){ 230 return little_endian_read_24(event, 12); 231 } 232 /** 233 * @brief Get field clock_offset from event HCI_EVENT_INQUIRY_RESULT 234 * @param event packet 235 * @return clock_offset 236 * @note: btstack_type 2 237 */ 238 static inline uint16_t hci_event_inquiry_result_get_clock_offset(const uint8_t * event){ 239 return little_endian_read_16(event, 15); 240 } 241 242 /** 243 * @brief Get field status from event HCI_EVENT_CONNECTION_COMPLETE 244 * @param event packet 245 * @return status 246 * @note: btstack_type 1 247 */ 248 static inline uint8_t hci_event_connection_complete_get_status(const uint8_t * event){ 249 return event[2]; 250 } 251 /** 252 * @brief Get field connection_handle from event HCI_EVENT_CONNECTION_COMPLETE 253 * @param event packet 254 * @return connection_handle 255 * @note: btstack_type 2 256 */ 257 static inline uint16_t hci_event_connection_complete_get_connection_handle(const uint8_t * event){ 258 return little_endian_read_16(event, 3); 259 } 260 /** 261 * @brief Get field bd_addr from event HCI_EVENT_CONNECTION_COMPLETE 262 * @param event packet 263 * @param Pointer to storage for bd_addr 264 * @note: btstack_type B 265 */ 266 static inline void hci_event_connection_complete_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 267 reverse_bd_addr(&event[5], bd_addr); 268 } 269 /** 270 * @brief Get field link_type from event HCI_EVENT_CONNECTION_COMPLETE 271 * @param event packet 272 * @return link_type 273 * @note: btstack_type 1 274 */ 275 static inline uint8_t hci_event_connection_complete_get_link_type(const uint8_t * event){ 276 return event[11]; 277 } 278 /** 279 * @brief Get field encryption_enabled from event HCI_EVENT_CONNECTION_COMPLETE 280 * @param event packet 281 * @return encryption_enabled 282 * @note: btstack_type 1 283 */ 284 static inline uint8_t hci_event_connection_complete_get_encryption_enabled(const uint8_t * event){ 285 return event[12]; 286 } 287 288 /** 289 * @brief Get field bd_addr from event HCI_EVENT_CONNECTION_REQUEST 290 * @param event packet 291 * @param Pointer to storage for bd_addr 292 * @note: btstack_type B 293 */ 294 static inline void hci_event_connection_request_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 295 reverse_bd_addr(&event[2], bd_addr); 296 } 297 /** 298 * @brief Get field class_of_device from event HCI_EVENT_CONNECTION_REQUEST 299 * @param event packet 300 * @return class_of_device 301 * @note: btstack_type 3 302 */ 303 static inline uint32_t hci_event_connection_request_get_class_of_device(const uint8_t * event){ 304 return little_endian_read_24(event, 8); 305 } 306 /** 307 * @brief Get field link_type from event HCI_EVENT_CONNECTION_REQUEST 308 * @param event packet 309 * @return link_type 310 * @note: btstack_type 1 311 */ 312 static inline uint8_t hci_event_connection_request_get_link_type(const uint8_t * event){ 313 return event[11]; 314 } 315 316 /** 317 * @brief Get field status from event HCI_EVENT_DISCONNECTION_COMPLETE 318 * @param event packet 319 * @return status 320 * @note: btstack_type 1 321 */ 322 static inline uint8_t hci_event_disconnection_complete_get_status(const uint8_t * event){ 323 return event[2]; 324 } 325 /** 326 * @brief Get field connection_handle from event HCI_EVENT_DISCONNECTION_COMPLETE 327 * @param event packet 328 * @return connection_handle 329 * @note: btstack_type 2 330 */ 331 static inline uint16_t hci_event_disconnection_complete_get_connection_handle(const uint8_t * event){ 332 return little_endian_read_16(event, 3); 333 } 334 /** 335 * @brief Get field reason from event HCI_EVENT_DISCONNECTION_COMPLETE 336 * @param event packet 337 * @return reason 338 * @note: btstack_type 1 339 */ 340 static inline uint8_t hci_event_disconnection_complete_get_reason(const uint8_t * event){ 341 return event[5]; 342 } 343 344 /** 345 * @brief Get field status from event HCI_EVENT_AUTHENTICATION_COMPLETE 346 * @param event packet 347 * @return status 348 * @note: btstack_type 1 349 */ 350 static inline uint8_t hci_event_authentication_complete_get_status(const uint8_t * event){ 351 return event[2]; 352 } 353 /** 354 * @brief Get field connection_handle from event HCI_EVENT_AUTHENTICATION_COMPLETE 355 * @param event packet 356 * @return connection_handle 357 * @note: btstack_type 2 358 */ 359 static inline uint16_t hci_event_authentication_complete_get_connection_handle(const uint8_t * event){ 360 return little_endian_read_16(event, 3); 361 } 362 363 /** 364 * @brief Get field status from event HCI_EVENT_REMOTE_NAME_REQUEST_COMPLETE 365 * @param event packet 366 * @return status 367 * @note: btstack_type 1 368 */ 369 static inline uint8_t hci_event_remote_name_request_complete_get_status(const uint8_t * event){ 370 return event[2]; 371 } 372 /** 373 * @brief Get field bd_addr from event HCI_EVENT_REMOTE_NAME_REQUEST_COMPLETE 374 * @param event packet 375 * @param Pointer to storage for bd_addr 376 * @note: btstack_type B 377 */ 378 static inline void hci_event_remote_name_request_complete_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 379 reverse_bd_addr(&event[3], bd_addr); 380 } 381 /** 382 * @brief Get field remote_name from event HCI_EVENT_REMOTE_NAME_REQUEST_COMPLETE 383 * @param event packet 384 * @return remote_name 385 * @note: btstack_type N 386 */ 387 static inline const char * hci_event_remote_name_request_complete_get_remote_name(const uint8_t * event){ 388 return (const char *) &event[9]; 389 } 390 391 /** 392 * @brief Get field status from event HCI_EVENT_ENCRYPTION_CHANGE 393 * @param event packet 394 * @return status 395 * @note: btstack_type 1 396 */ 397 static inline uint8_t hci_event_encryption_change_get_status(const uint8_t * event){ 398 return event[2]; 399 } 400 /** 401 * @brief Get field connection_handle from event HCI_EVENT_ENCRYPTION_CHANGE 402 * @param event packet 403 * @return connection_handle 404 * @note: btstack_type 2 405 */ 406 static inline uint16_t hci_event_encryption_change_get_connection_handle(const uint8_t * event){ 407 return little_endian_read_16(event, 3); 408 } 409 /** 410 * @brief Get field encryption_enabled from event HCI_EVENT_ENCRYPTION_CHANGE 411 * @param event packet 412 * @return encryption_enabled 413 * @note: btstack_type 1 414 */ 415 static inline uint8_t hci_event_encryption_change_get_encryption_enabled(const uint8_t * event){ 416 return event[5]; 417 } 418 419 /** 420 * @brief Get field status from event HCI_EVENT_CHANGE_CONNECTION_LINK_KEY_COMPLETE 421 * @param event packet 422 * @return status 423 * @note: btstack_type 1 424 */ 425 static inline uint8_t hci_event_change_connection_link_key_complete_get_status(const uint8_t * event){ 426 return event[2]; 427 } 428 /** 429 * @brief Get field connection_handle from event HCI_EVENT_CHANGE_CONNECTION_LINK_KEY_COMPLETE 430 * @param event packet 431 * @return connection_handle 432 * @note: btstack_type 2 433 */ 434 static inline uint16_t hci_event_change_connection_link_key_complete_get_connection_handle(const uint8_t * event){ 435 return little_endian_read_16(event, 3); 436 } 437 438 /** 439 * @brief Get field status from event HCI_EVENT_MASTER_LINK_KEY_COMPLETE 440 * @param event packet 441 * @return status 442 * @note: btstack_type 1 443 */ 444 static inline uint8_t hci_event_master_link_key_complete_get_status(const uint8_t * event){ 445 return event[2]; 446 } 447 /** 448 * @brief Get field connection_handle from event HCI_EVENT_MASTER_LINK_KEY_COMPLETE 449 * @param event packet 450 * @return connection_handle 451 * @note: btstack_type 2 452 */ 453 static inline uint16_t hci_event_master_link_key_complete_get_connection_handle(const uint8_t * event){ 454 return little_endian_read_16(event, 3); 455 } 456 /** 457 * @brief Get field key_flag from event HCI_EVENT_MASTER_LINK_KEY_COMPLETE 458 * @param event packet 459 * @return key_flag 460 * @note: btstack_type 1 461 */ 462 static inline uint8_t hci_event_master_link_key_complete_get_key_flag(const uint8_t * event){ 463 return event[5]; 464 } 465 466 /** 467 * @brief Get field num_hci_command_packets from event HCI_EVENT_COMMAND_COMPLETE 468 * @param event packet 469 * @return num_hci_command_packets 470 * @note: btstack_type 1 471 */ 472 static inline uint8_t hci_event_command_complete_get_num_hci_command_packets(const uint8_t * event){ 473 return event[2]; 474 } 475 /** 476 * @brief Get field command_opcode from event HCI_EVENT_COMMAND_COMPLETE 477 * @param event packet 478 * @return command_opcode 479 * @note: btstack_type 2 480 */ 481 static inline uint16_t hci_event_command_complete_get_command_opcode(const uint8_t * event){ 482 return little_endian_read_16(event, 3); 483 } 484 /** 485 * @brief Get field return_parameters from event HCI_EVENT_COMMAND_COMPLETE 486 * @param event packet 487 * @return return_parameters 488 * @note: btstack_type R 489 */ 490 static inline const uint8_t * hci_event_command_complete_get_return_parameters(const uint8_t * event){ 491 return &event[5]; 492 } 493 494 /** 495 * @brief Get field status from event HCI_EVENT_COMMAND_STATUS 496 * @param event packet 497 * @return status 498 * @note: btstack_type 1 499 */ 500 static inline uint8_t hci_event_command_status_get_status(const uint8_t * event){ 501 return event[2]; 502 } 503 /** 504 * @brief Get field num_hci_command_packets from event HCI_EVENT_COMMAND_STATUS 505 * @param event packet 506 * @return num_hci_command_packets 507 * @note: btstack_type 1 508 */ 509 static inline uint8_t hci_event_command_status_get_num_hci_command_packets(const uint8_t * event){ 510 return event[3]; 511 } 512 /** 513 * @brief Get field command_opcode from event HCI_EVENT_COMMAND_STATUS 514 * @param event packet 515 * @return command_opcode 516 * @note: btstack_type 2 517 */ 518 static inline uint16_t hci_event_command_status_get_command_opcode(const uint8_t * event){ 519 return little_endian_read_16(event, 4); 520 } 521 522 /** 523 * @brief Get field hardware_code from event HCI_EVENT_HARDWARE_ERROR 524 * @param event packet 525 * @return hardware_code 526 * @note: btstack_type 1 527 */ 528 static inline uint8_t hci_event_hardware_error_get_hardware_code(const uint8_t * event){ 529 return event[2]; 530 } 531 532 /** 533 * @brief Get field status from event HCI_EVENT_ROLE_CHANGE 534 * @param event packet 535 * @return status 536 * @note: btstack_type 1 537 */ 538 static inline uint8_t hci_event_role_change_get_status(const uint8_t * event){ 539 return event[2]; 540 } 541 /** 542 * @brief Get field bd_addr from event HCI_EVENT_ROLE_CHANGE 543 * @param event packet 544 * @param Pointer to storage for bd_addr 545 * @note: btstack_type B 546 */ 547 static inline void hci_event_role_change_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 548 reverse_bd_addr(&event[3], bd_addr); 549 } 550 /** 551 * @brief Get field role from event HCI_EVENT_ROLE_CHANGE 552 * @param event packet 553 * @return role 554 * @note: btstack_type 1 555 */ 556 static inline uint8_t hci_event_role_change_get_role(const uint8_t * event){ 557 return event[9]; 558 } 559 560 /** 561 * @brief Get field status from event HCI_EVENT_MODE_CHANGE 562 * @param event packet 563 * @return status 564 * @note: btstack_type 1 565 */ 566 static inline uint8_t hci_event_mode_change_get_status(const uint8_t * event){ 567 return event[2]; 568 } 569 /** 570 * @brief Get field handle from event HCI_EVENT_MODE_CHANGE 571 * @param event packet 572 * @return handle 573 * @note: btstack_type H 574 */ 575 static inline hci_con_handle_t hci_event_mode_change_get_handle(const uint8_t * event){ 576 return little_endian_read_16(event, 3); 577 } 578 /** 579 * @brief Get field mode from event HCI_EVENT_MODE_CHANGE 580 * @param event packet 581 * @return mode 582 * @note: btstack_type 1 583 */ 584 static inline uint8_t hci_event_mode_change_get_mode(const uint8_t * event){ 585 return event[5]; 586 } 587 /** 588 * @brief Get field interval from event HCI_EVENT_MODE_CHANGE 589 * @param event packet 590 * @return interval 591 * @note: btstack_type 2 592 */ 593 static inline uint16_t hci_event_mode_change_get_interval(const uint8_t * event){ 594 return little_endian_read_16(event, 6); 595 } 596 597 /** 598 * @brief Get field bd_addr from event HCI_EVENT_PIN_CODE_REQUEST 599 * @param event packet 600 * @param Pointer to storage for bd_addr 601 * @note: btstack_type B 602 */ 603 static inline void hci_event_pin_code_request_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 604 reverse_bd_addr(&event[2], bd_addr); 605 } 606 607 /** 608 * @brief Get field bd_addr from event HCI_EVENT_LINK_KEY_REQUEST 609 * @param event packet 610 * @param Pointer to storage for bd_addr 611 * @note: btstack_type B 612 */ 613 static inline void hci_event_link_key_request_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 614 reverse_bd_addr(&event[2], bd_addr); 615 } 616 617 /** 618 * @brief Get field link_type from event HCI_EVENT_DATA_BUFFER_OVERFLOW 619 * @param event packet 620 * @return link_type 621 * @note: btstack_type 1 622 */ 623 static inline uint8_t hci_event_data_buffer_overflow_get_link_type(const uint8_t * event){ 624 return event[2]; 625 } 626 627 /** 628 * @brief Get field handle from event HCI_EVENT_MAX_SLOTS_CHANGED 629 * @param event packet 630 * @return handle 631 * @note: btstack_type H 632 */ 633 static inline hci_con_handle_t hci_event_max_slots_changed_get_handle(const uint8_t * event){ 634 return little_endian_read_16(event, 2); 635 } 636 /** 637 * @brief Get field lmp_max_slots from event HCI_EVENT_MAX_SLOTS_CHANGED 638 * @param event packet 639 * @return lmp_max_slots 640 * @note: btstack_type 1 641 */ 642 static inline uint8_t hci_event_max_slots_changed_get_lmp_max_slots(const uint8_t * event){ 643 return event[4]; 644 } 645 646 /** 647 * @brief Get field status from event HCI_EVENT_READ_CLOCK_OFFSET_COMPLETE 648 * @param event packet 649 * @return status 650 * @note: btstack_type 1 651 */ 652 static inline uint8_t hci_event_read_clock_offset_complete_get_status(const uint8_t * event){ 653 return event[2]; 654 } 655 /** 656 * @brief Get field handle from event HCI_EVENT_READ_CLOCK_OFFSET_COMPLETE 657 * @param event packet 658 * @return handle 659 * @note: btstack_type H 660 */ 661 static inline hci_con_handle_t hci_event_read_clock_offset_complete_get_handle(const uint8_t * event){ 662 return little_endian_read_16(event, 3); 663 } 664 /** 665 * @brief Get field clock_offset from event HCI_EVENT_READ_CLOCK_OFFSET_COMPLETE 666 * @param event packet 667 * @return clock_offset 668 * @note: btstack_type 2 669 */ 670 static inline uint16_t hci_event_read_clock_offset_complete_get_clock_offset(const uint8_t * event){ 671 return little_endian_read_16(event, 5); 672 } 673 674 /** 675 * @brief Get field status from event HCI_EVENT_CONNECTION_PACKET_TYPE_CHANGED 676 * @param event packet 677 * @return status 678 * @note: btstack_type 1 679 */ 680 static inline uint8_t hci_event_connection_packet_type_changed_get_status(const uint8_t * event){ 681 return event[2]; 682 } 683 /** 684 * @brief Get field handle from event HCI_EVENT_CONNECTION_PACKET_TYPE_CHANGED 685 * @param event packet 686 * @return handle 687 * @note: btstack_type H 688 */ 689 static inline hci_con_handle_t hci_event_connection_packet_type_changed_get_handle(const uint8_t * event){ 690 return little_endian_read_16(event, 3); 691 } 692 /** 693 * @brief Get field packet_types from event HCI_EVENT_CONNECTION_PACKET_TYPE_CHANGED 694 * @param event packet 695 * @return packet_types 696 * @note: btstack_type 2 697 */ 698 static inline uint16_t hci_event_connection_packet_type_changed_get_packet_types(const uint8_t * event){ 699 return little_endian_read_16(event, 5); 700 } 701 702 /** 703 * @brief Get field num_responses from event HCI_EVENT_INQUIRY_RESULT_WITH_RSSI 704 * @param event packet 705 * @return num_responses 706 * @note: btstack_type 1 707 */ 708 static inline uint8_t hci_event_inquiry_result_with_rssi_get_num_responses(const uint8_t * event){ 709 return event[2]; 710 } 711 /** 712 * @brief Get field bd_addr from event HCI_EVENT_INQUIRY_RESULT_WITH_RSSI 713 * @param event packet 714 * @param Pointer to storage for bd_addr 715 * @note: btstack_type B 716 */ 717 static inline void hci_event_inquiry_result_with_rssi_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 718 reverse_bd_addr(&event[3], bd_addr); 719 } 720 /** 721 * @brief Get field page_scan_repetition_mode from event HCI_EVENT_INQUIRY_RESULT_WITH_RSSI 722 * @param event packet 723 * @return page_scan_repetition_mode 724 * @note: btstack_type 1 725 */ 726 static inline uint8_t hci_event_inquiry_result_with_rssi_get_page_scan_repetition_mode(const uint8_t * event){ 727 return event[9]; 728 } 729 /** 730 * @brief Get field reserved from event HCI_EVENT_INQUIRY_RESULT_WITH_RSSI 731 * @param event packet 732 * @return reserved 733 * @note: btstack_type 1 734 */ 735 static inline uint8_t hci_event_inquiry_result_with_rssi_get_reserved(const uint8_t * event){ 736 return event[10]; 737 } 738 /** 739 * @brief Get field class_of_device from event HCI_EVENT_INQUIRY_RESULT_WITH_RSSI 740 * @param event packet 741 * @return class_of_device 742 * @note: btstack_type 3 743 */ 744 static inline uint32_t hci_event_inquiry_result_with_rssi_get_class_of_device(const uint8_t * event){ 745 return little_endian_read_24(event, 11); 746 } 747 /** 748 * @brief Get field clock_offset from event HCI_EVENT_INQUIRY_RESULT_WITH_RSSI 749 * @param event packet 750 * @return clock_offset 751 * @note: btstack_type 2 752 */ 753 static inline uint16_t hci_event_inquiry_result_with_rssi_get_clock_offset(const uint8_t * event){ 754 return little_endian_read_16(event, 14); 755 } 756 /** 757 * @brief Get field rssi from event HCI_EVENT_INQUIRY_RESULT_WITH_RSSI 758 * @param event packet 759 * @return rssi 760 * @note: btstack_type 1 761 */ 762 static inline uint8_t hci_event_inquiry_result_with_rssi_get_rssi(const uint8_t * event){ 763 return event[16]; 764 } 765 766 /** 767 * @brief Get field status from event HCI_EVENT_SYNCHRONOUS_CONNECTION_COMPLETE 768 * @param event packet 769 * @return status 770 * @note: btstack_type 1 771 */ 772 static inline uint8_t hci_event_synchronous_connection_complete_get_status(const uint8_t * event){ 773 return event[2]; 774 } 775 /** 776 * @brief Get field handle from event HCI_EVENT_SYNCHRONOUS_CONNECTION_COMPLETE 777 * @param event packet 778 * @return handle 779 * @note: btstack_type H 780 */ 781 static inline hci_con_handle_t hci_event_synchronous_connection_complete_get_handle(const uint8_t * event){ 782 return little_endian_read_16(event, 3); 783 } 784 /** 785 * @brief Get field bd_addr from event HCI_EVENT_SYNCHRONOUS_CONNECTION_COMPLETE 786 * @param event packet 787 * @param Pointer to storage for bd_addr 788 * @note: btstack_type B 789 */ 790 static inline void hci_event_synchronous_connection_complete_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 791 reverse_bd_addr(&event[5], bd_addr); 792 } 793 /** 794 * @brief Get field link_type from event HCI_EVENT_SYNCHRONOUS_CONNECTION_COMPLETE 795 * @param event packet 796 * @return link_type 797 * @note: btstack_type 1 798 */ 799 static inline uint8_t hci_event_synchronous_connection_complete_get_link_type(const uint8_t * event){ 800 return event[11]; 801 } 802 /** 803 * @brief Get field transmission_interval from event HCI_EVENT_SYNCHRONOUS_CONNECTION_COMPLETE 804 * @param event packet 805 * @return transmission_interval 806 * @note: btstack_type 1 807 */ 808 static inline uint8_t hci_event_synchronous_connection_complete_get_transmission_interval(const uint8_t * event){ 809 return event[12]; 810 } 811 /** 812 * @brief Get field retransmission_interval from event HCI_EVENT_SYNCHRONOUS_CONNECTION_COMPLETE 813 * @param event packet 814 * @return retransmission_interval 815 * @note: btstack_type 1 816 */ 817 static inline uint8_t hci_event_synchronous_connection_complete_get_retransmission_interval(const uint8_t * event){ 818 return event[13]; 819 } 820 /** 821 * @brief Get field rx_packet_length from event HCI_EVENT_SYNCHRONOUS_CONNECTION_COMPLETE 822 * @param event packet 823 * @return rx_packet_length 824 * @note: btstack_type 2 825 */ 826 static inline uint16_t hci_event_synchronous_connection_complete_get_rx_packet_length(const uint8_t * event){ 827 return little_endian_read_16(event, 14); 828 } 829 /** 830 * @brief Get field tx_packet_length from event HCI_EVENT_SYNCHRONOUS_CONNECTION_COMPLETE 831 * @param event packet 832 * @return tx_packet_length 833 * @note: btstack_type 2 834 */ 835 static inline uint16_t hci_event_synchronous_connection_complete_get_tx_packet_length(const uint8_t * event){ 836 return little_endian_read_16(event, 16); 837 } 838 /** 839 * @brief Get field air_mode from event HCI_EVENT_SYNCHRONOUS_CONNECTION_COMPLETE 840 * @param event packet 841 * @return air_mode 842 * @note: btstack_type 1 843 */ 844 static inline uint8_t hci_event_synchronous_connection_complete_get_air_mode(const uint8_t * event){ 845 return event[18]; 846 } 847 848 /** 849 * @brief Get field num_responses from event HCI_EVENT_EXTENDED_INQUIRY_RESPONSE 850 * @param event packet 851 * @return num_responses 852 * @note: btstack_type 1 853 */ 854 static inline uint8_t hci_event_extended_inquiry_response_get_num_responses(const uint8_t * event){ 855 return event[2]; 856 } 857 /** 858 * @brief Get field bd_addr from event HCI_EVENT_EXTENDED_INQUIRY_RESPONSE 859 * @param event packet 860 * @param Pointer to storage for bd_addr 861 * @note: btstack_type B 862 */ 863 static inline void hci_event_extended_inquiry_response_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 864 reverse_bd_addr(&event[3], bd_addr); 865 } 866 /** 867 * @brief Get field page_scan_repetition_mode from event HCI_EVENT_EXTENDED_INQUIRY_RESPONSE 868 * @param event packet 869 * @return page_scan_repetition_mode 870 * @note: btstack_type 1 871 */ 872 static inline uint8_t hci_event_extended_inquiry_response_get_page_scan_repetition_mode(const uint8_t * event){ 873 return event[9]; 874 } 875 /** 876 * @brief Get field reserved from event HCI_EVENT_EXTENDED_INQUIRY_RESPONSE 877 * @param event packet 878 * @return reserved 879 * @note: btstack_type 1 880 */ 881 static inline uint8_t hci_event_extended_inquiry_response_get_reserved(const uint8_t * event){ 882 return event[10]; 883 } 884 /** 885 * @brief Get field class_of_device from event HCI_EVENT_EXTENDED_INQUIRY_RESPONSE 886 * @param event packet 887 * @return class_of_device 888 * @note: btstack_type 3 889 */ 890 static inline uint32_t hci_event_extended_inquiry_response_get_class_of_device(const uint8_t * event){ 891 return little_endian_read_24(event, 11); 892 } 893 /** 894 * @brief Get field clock_offset from event HCI_EVENT_EXTENDED_INQUIRY_RESPONSE 895 * @param event packet 896 * @return clock_offset 897 * @note: btstack_type 2 898 */ 899 static inline uint16_t hci_event_extended_inquiry_response_get_clock_offset(const uint8_t * event){ 900 return little_endian_read_16(event, 14); 901 } 902 /** 903 * @brief Get field rssi from event HCI_EVENT_EXTENDED_INQUIRY_RESPONSE 904 * @param event packet 905 * @return rssi 906 * @note: btstack_type 1 907 */ 908 static inline uint8_t hci_event_extended_inquiry_response_get_rssi(const uint8_t * event){ 909 return event[16]; 910 } 911 912 /** 913 * @brief Get field status from event HCI_EVENT_ENCRYPTION_KEY_REFRESH_COMPLETE 914 * @param event packet 915 * @return status 916 * @note: btstack_type 1 917 */ 918 static inline uint8_t hci_event_encryption_key_refresh_complete_get_status(const uint8_t * event){ 919 return event[2]; 920 } 921 /** 922 * @brief Get field handle from event HCI_EVENT_ENCRYPTION_KEY_REFRESH_COMPLETE 923 * @param event packet 924 * @return handle 925 * @note: btstack_type H 926 */ 927 static inline hci_con_handle_t hci_event_encryption_key_refresh_complete_get_handle(const uint8_t * event){ 928 return little_endian_read_16(event, 3); 929 } 930 931 /** 932 * @brief Get field bd_addr from event HCI_EVENT_USER_CONFIRMATION_REQUEST 933 * @param event packet 934 * @param Pointer to storage for bd_addr 935 * @note: btstack_type B 936 */ 937 static inline void hci_event_user_confirmation_request_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 938 reverse_bd_addr(&event[2], bd_addr); 939 } 940 /** 941 * @brief Get field numeric_value from event HCI_EVENT_USER_CONFIRMATION_REQUEST 942 * @param event packet 943 * @return numeric_value 944 * @note: btstack_type 4 945 */ 946 static inline uint32_t hci_event_user_confirmation_request_get_numeric_value(const uint8_t * event){ 947 return little_endian_read_32(event, 8); 948 } 949 950 /** 951 * @brief Get field bd_addr from event HCI_EVENT_USER_PASSKEY_REQUEST 952 * @param event packet 953 * @param Pointer to storage for bd_addr 954 * @note: btstack_type B 955 */ 956 static inline void hci_event_user_passkey_request_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 957 reverse_bd_addr(&event[2], bd_addr); 958 } 959 960 /** 961 * @brief Get field bd_addr from event HCI_EVENT_REMOTE_OOB_DATA_REQUEST 962 * @param event packet 963 * @param Pointer to storage for bd_addr 964 * @note: btstack_type B 965 */ 966 static inline void hci_event_remote_oob_data_request_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 967 reverse_bd_addr(&event[2], bd_addr); 968 } 969 970 /** 971 * @brief Get field status from event HCI_EVENT_SIMPLE_PAIRING_COMPLETE 972 * @param event packet 973 * @return status 974 * @note: btstack_type 1 975 */ 976 static inline uint8_t hci_event_simple_pairing_complete_get_status(const uint8_t * event){ 977 return event[2]; 978 } 979 /** 980 * @brief Get field bd_addr from event HCI_EVENT_SIMPLE_PAIRING_COMPLETE 981 * @param event packet 982 * @param Pointer to storage for bd_addr 983 * @note: btstack_type B 984 */ 985 static inline void hci_event_simple_pairing_complete_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 986 reverse_bd_addr(&event[3], bd_addr); 987 } 988 989 /** 990 * @brief Get field state from event BTSTACK_EVENT_STATE 991 * @param event packet 992 * @return state 993 * @note: btstack_type 1 994 */ 995 static inline uint8_t btstack_event_state_get_state(const uint8_t * event){ 996 return event[2]; 997 } 998 999 /** 1000 * @brief Get field number_connections from event BTSTACK_EVENT_NR_CONNECTIONS_CHANGED 1001 * @param event packet 1002 * @return number_connections 1003 * @note: btstack_type 1 1004 */ 1005 static inline uint8_t btstack_event_nr_connections_changed_get_number_connections(const uint8_t * event){ 1006 return event[2]; 1007 } 1008 1009 1010 /** 1011 * @brief Get field discoverable from event BTSTACK_EVENT_DISCOVERABLE_ENABLED 1012 * @param event packet 1013 * @return discoverable 1014 * @note: btstack_type 1 1015 */ 1016 static inline uint8_t btstack_event_discoverable_enabled_get_discoverable(const uint8_t * event){ 1017 return event[2]; 1018 } 1019 1020 /** 1021 * @brief Get field active from event HCI_EVENT_TRANSPORT_SLEEP_MODE 1022 * @param event packet 1023 * @return active 1024 * @note: btstack_type 1 1025 */ 1026 static inline uint8_t hci_event_transport_sleep_mode_get_active(const uint8_t * event){ 1027 return event[2]; 1028 } 1029 1030 /** 1031 * @brief Get field handle from event HCI_EVENT_SCO_CAN_SEND_NOW 1032 * @param event packet 1033 * @param Pointer to storage for handle 1034 * @note: btstack_type B 1035 */ 1036 static inline void hci_event_sco_can_send_now_get_handle(const uint8_t * event, bd_addr_t handle){ 1037 reverse_bd_addr(&event[2], handle); 1038 } 1039 1040 /** 1041 * @brief Get field status from event L2CAP_EVENT_CHANNEL_OPENED 1042 * @param event packet 1043 * @return status 1044 * @note: btstack_type 1 1045 */ 1046 static inline uint8_t l2cap_event_channel_opened_get_status(const uint8_t * event){ 1047 return event[2]; 1048 } 1049 /** 1050 * @brief Get field address from event L2CAP_EVENT_CHANNEL_OPENED 1051 * @param event packet 1052 * @param Pointer to storage for address 1053 * @note: btstack_type B 1054 */ 1055 static inline void l2cap_event_channel_opened_get_address(const uint8_t * event, bd_addr_t address){ 1056 reverse_bd_addr(&event[3], address); 1057 } 1058 /** 1059 * @brief Get field handle from event L2CAP_EVENT_CHANNEL_OPENED 1060 * @param event packet 1061 * @return handle 1062 * @note: btstack_type H 1063 */ 1064 static inline hci_con_handle_t l2cap_event_channel_opened_get_handle(const uint8_t * event){ 1065 return little_endian_read_16(event, 9); 1066 } 1067 /** 1068 * @brief Get field psm from event L2CAP_EVENT_CHANNEL_OPENED 1069 * @param event packet 1070 * @return psm 1071 * @note: btstack_type 2 1072 */ 1073 static inline uint16_t l2cap_event_channel_opened_get_psm(const uint8_t * event){ 1074 return little_endian_read_16(event, 11); 1075 } 1076 /** 1077 * @brief Get field local_cid from event L2CAP_EVENT_CHANNEL_OPENED 1078 * @param event packet 1079 * @return local_cid 1080 * @note: btstack_type 2 1081 */ 1082 static inline uint16_t l2cap_event_channel_opened_get_local_cid(const uint8_t * event){ 1083 return little_endian_read_16(event, 13); 1084 } 1085 /** 1086 * @brief Get field remote_cid from event L2CAP_EVENT_CHANNEL_OPENED 1087 * @param event packet 1088 * @return remote_cid 1089 * @note: btstack_type 2 1090 */ 1091 static inline uint16_t l2cap_event_channel_opened_get_remote_cid(const uint8_t * event){ 1092 return little_endian_read_16(event, 15); 1093 } 1094 /** 1095 * @brief Get field local_mtu from event L2CAP_EVENT_CHANNEL_OPENED 1096 * @param event packet 1097 * @return local_mtu 1098 * @note: btstack_type 2 1099 */ 1100 static inline uint16_t l2cap_event_channel_opened_get_local_mtu(const uint8_t * event){ 1101 return little_endian_read_16(event, 17); 1102 } 1103 /** 1104 * @brief Get field remote_mtu from event L2CAP_EVENT_CHANNEL_OPENED 1105 * @param event packet 1106 * @return remote_mtu 1107 * @note: btstack_type 2 1108 */ 1109 static inline uint16_t l2cap_event_channel_opened_get_remote_mtu(const uint8_t * event){ 1110 return little_endian_read_16(event, 19); 1111 } 1112 /** 1113 * @brief Get field flush_timeout from event L2CAP_EVENT_CHANNEL_OPENED 1114 * @param event packet 1115 * @return flush_timeout 1116 * @note: btstack_type 2 1117 */ 1118 static inline uint16_t l2cap_event_channel_opened_get_flush_timeout(const uint8_t * event){ 1119 return little_endian_read_16(event, 21); 1120 } 1121 /** 1122 * @brief Get field incoming from event L2CAP_EVENT_CHANNEL_OPENED 1123 * @param event packet 1124 * @return incoming 1125 * @note: btstack_type 1 1126 */ 1127 static inline uint8_t l2cap_event_channel_opened_get_incoming(const uint8_t * event){ 1128 return event[23]; 1129 } 1130 /** 1131 * @brief Get field mode from event L2CAP_EVENT_CHANNEL_OPENED 1132 * @param event packet 1133 * @return mode 1134 * @note: btstack_type 1 1135 */ 1136 static inline uint8_t l2cap_event_channel_opened_get_mode(const uint8_t * event){ 1137 return event[24]; 1138 } 1139 /** 1140 * @brief Get field fcs from event L2CAP_EVENT_CHANNEL_OPENED 1141 * @param event packet 1142 * @return fcs 1143 * @note: btstack_type 1 1144 */ 1145 static inline uint8_t l2cap_event_channel_opened_get_fcs(const uint8_t * event){ 1146 return event[25]; 1147 } 1148 1149 /** 1150 * @brief Get field local_cid from event L2CAP_EVENT_CHANNEL_CLOSED 1151 * @param event packet 1152 * @return local_cid 1153 * @note: btstack_type 2 1154 */ 1155 static inline uint16_t l2cap_event_channel_closed_get_local_cid(const uint8_t * event){ 1156 return little_endian_read_16(event, 2); 1157 } 1158 1159 /** 1160 * @brief Get field address from event L2CAP_EVENT_INCOMING_CONNECTION 1161 * @param event packet 1162 * @param Pointer to storage for address 1163 * @note: btstack_type B 1164 */ 1165 static inline void l2cap_event_incoming_connection_get_address(const uint8_t * event, bd_addr_t address){ 1166 reverse_bd_addr(&event[2], address); 1167 } 1168 /** 1169 * @brief Get field handle from event L2CAP_EVENT_INCOMING_CONNECTION 1170 * @param event packet 1171 * @return handle 1172 * @note: btstack_type H 1173 */ 1174 static inline hci_con_handle_t l2cap_event_incoming_connection_get_handle(const uint8_t * event){ 1175 return little_endian_read_16(event, 8); 1176 } 1177 /** 1178 * @brief Get field psm from event L2CAP_EVENT_INCOMING_CONNECTION 1179 * @param event packet 1180 * @return psm 1181 * @note: btstack_type 2 1182 */ 1183 static inline uint16_t l2cap_event_incoming_connection_get_psm(const uint8_t * event){ 1184 return little_endian_read_16(event, 10); 1185 } 1186 /** 1187 * @brief Get field local_cid from event L2CAP_EVENT_INCOMING_CONNECTION 1188 * @param event packet 1189 * @return local_cid 1190 * @note: btstack_type 2 1191 */ 1192 static inline uint16_t l2cap_event_incoming_connection_get_local_cid(const uint8_t * event){ 1193 return little_endian_read_16(event, 12); 1194 } 1195 /** 1196 * @brief Get field remote_cid from event L2CAP_EVENT_INCOMING_CONNECTION 1197 * @param event packet 1198 * @return remote_cid 1199 * @note: btstack_type 2 1200 */ 1201 static inline uint16_t l2cap_event_incoming_connection_get_remote_cid(const uint8_t * event){ 1202 return little_endian_read_16(event, 14); 1203 } 1204 1205 /** 1206 * @brief Get field handle from event L2CAP_EVENT_CONNECTION_PARAMETER_UPDATE_REQUEST 1207 * @param event packet 1208 * @return handle 1209 * @note: btstack_type H 1210 */ 1211 static inline hci_con_handle_t l2cap_event_connection_parameter_update_request_get_handle(const uint8_t * event){ 1212 return little_endian_read_16(event, 2); 1213 } 1214 /** 1215 * @brief Get field interval_min from event L2CAP_EVENT_CONNECTION_PARAMETER_UPDATE_REQUEST 1216 * @param event packet 1217 * @return interval_min 1218 * @note: btstack_type 2 1219 */ 1220 static inline uint16_t l2cap_event_connection_parameter_update_request_get_interval_min(const uint8_t * event){ 1221 return little_endian_read_16(event, 4); 1222 } 1223 /** 1224 * @brief Get field interval_max from event L2CAP_EVENT_CONNECTION_PARAMETER_UPDATE_REQUEST 1225 * @param event packet 1226 * @return interval_max 1227 * @note: btstack_type 2 1228 */ 1229 static inline uint16_t l2cap_event_connection_parameter_update_request_get_interval_max(const uint8_t * event){ 1230 return little_endian_read_16(event, 6); 1231 } 1232 /** 1233 * @brief Get field latencey from event L2CAP_EVENT_CONNECTION_PARAMETER_UPDATE_REQUEST 1234 * @param event packet 1235 * @return latencey 1236 * @note: btstack_type 2 1237 */ 1238 static inline uint16_t l2cap_event_connection_parameter_update_request_get_latencey(const uint8_t * event){ 1239 return little_endian_read_16(event, 8); 1240 } 1241 /** 1242 * @brief Get field timeout_multiplier from event L2CAP_EVENT_CONNECTION_PARAMETER_UPDATE_REQUEST 1243 * @param event packet 1244 * @return timeout_multiplier 1245 * @note: btstack_type 2 1246 */ 1247 static inline uint16_t l2cap_event_connection_parameter_update_request_get_timeout_multiplier(const uint8_t * event){ 1248 return little_endian_read_16(event, 10); 1249 } 1250 1251 /** 1252 * @brief Get field handle from event L2CAP_EVENT_CONNECTION_PARAMETER_UPDATE_RESPONSE 1253 * @param event packet 1254 * @return handle 1255 * @note: btstack_type H 1256 */ 1257 static inline hci_con_handle_t l2cap_event_connection_parameter_update_response_get_handle(const uint8_t * event){ 1258 return little_endian_read_16(event, 2); 1259 } 1260 /** 1261 * @brief Get field result from event L2CAP_EVENT_CONNECTION_PARAMETER_UPDATE_RESPONSE 1262 * @param event packet 1263 * @return result 1264 * @note: btstack_type 2 1265 */ 1266 static inline uint16_t l2cap_event_connection_parameter_update_response_get_result(const uint8_t * event){ 1267 return little_endian_read_16(event, 4); 1268 } 1269 1270 /** 1271 * @brief Get field local_cid from event L2CAP_EVENT_CAN_SEND_NOW 1272 * @param event packet 1273 * @return local_cid 1274 * @note: btstack_type 2 1275 */ 1276 static inline uint16_t l2cap_event_can_send_now_get_local_cid(const uint8_t * event){ 1277 return little_endian_read_16(event, 2); 1278 } 1279 1280 /** 1281 * @brief Get field address_type from event L2CAP_EVENT_LE_INCOMING_CONNECTION 1282 * @param event packet 1283 * @return address_type 1284 * @note: btstack_type 1 1285 */ 1286 static inline uint8_t l2cap_event_le_incoming_connection_get_address_type(const uint8_t * event){ 1287 return event[2]; 1288 } 1289 /** 1290 * @brief Get field address from event L2CAP_EVENT_LE_INCOMING_CONNECTION 1291 * @param event packet 1292 * @param Pointer to storage for address 1293 * @note: btstack_type B 1294 */ 1295 static inline void l2cap_event_le_incoming_connection_get_address(const uint8_t * event, bd_addr_t address){ 1296 reverse_bd_addr(&event[3], address); 1297 } 1298 /** 1299 * @brief Get field handle from event L2CAP_EVENT_LE_INCOMING_CONNECTION 1300 * @param event packet 1301 * @return handle 1302 * @note: btstack_type H 1303 */ 1304 static inline hci_con_handle_t l2cap_event_le_incoming_connection_get_handle(const uint8_t * event){ 1305 return little_endian_read_16(event, 9); 1306 } 1307 /** 1308 * @brief Get field psm from event L2CAP_EVENT_LE_INCOMING_CONNECTION 1309 * @param event packet 1310 * @return psm 1311 * @note: btstack_type 2 1312 */ 1313 static inline uint16_t l2cap_event_le_incoming_connection_get_psm(const uint8_t * event){ 1314 return little_endian_read_16(event, 11); 1315 } 1316 /** 1317 * @brief Get field local_cid from event L2CAP_EVENT_LE_INCOMING_CONNECTION 1318 * @param event packet 1319 * @return local_cid 1320 * @note: btstack_type 2 1321 */ 1322 static inline uint16_t l2cap_event_le_incoming_connection_get_local_cid(const uint8_t * event){ 1323 return little_endian_read_16(event, 13); 1324 } 1325 /** 1326 * @brief Get field remote_cid from event L2CAP_EVENT_LE_INCOMING_CONNECTION 1327 * @param event packet 1328 * @return remote_cid 1329 * @note: btstack_type 2 1330 */ 1331 static inline uint16_t l2cap_event_le_incoming_connection_get_remote_cid(const uint8_t * event){ 1332 return little_endian_read_16(event, 15); 1333 } 1334 /** 1335 * @brief Get field remote_mtu from event L2CAP_EVENT_LE_INCOMING_CONNECTION 1336 * @param event packet 1337 * @return remote_mtu 1338 * @note: btstack_type 2 1339 */ 1340 static inline uint16_t l2cap_event_le_incoming_connection_get_remote_mtu(const uint8_t * event){ 1341 return little_endian_read_16(event, 17); 1342 } 1343 1344 /** 1345 * @brief Get field status from event L2CAP_EVENT_LE_CHANNEL_OPENED 1346 * @param event packet 1347 * @return status 1348 * @note: btstack_type 1 1349 */ 1350 static inline uint8_t l2cap_event_le_channel_opened_get_status(const uint8_t * event){ 1351 return event[2]; 1352 } 1353 /** 1354 * @brief Get field address_type from event L2CAP_EVENT_LE_CHANNEL_OPENED 1355 * @param event packet 1356 * @return address_type 1357 * @note: btstack_type 1 1358 */ 1359 static inline uint8_t l2cap_event_le_channel_opened_get_address_type(const uint8_t * event){ 1360 return event[3]; 1361 } 1362 /** 1363 * @brief Get field address from event L2CAP_EVENT_LE_CHANNEL_OPENED 1364 * @param event packet 1365 * @param Pointer to storage for address 1366 * @note: btstack_type B 1367 */ 1368 static inline void l2cap_event_le_channel_opened_get_address(const uint8_t * event, bd_addr_t address){ 1369 reverse_bd_addr(&event[4], address); 1370 } 1371 /** 1372 * @brief Get field handle from event L2CAP_EVENT_LE_CHANNEL_OPENED 1373 * @param event packet 1374 * @return handle 1375 * @note: btstack_type H 1376 */ 1377 static inline hci_con_handle_t l2cap_event_le_channel_opened_get_handle(const uint8_t * event){ 1378 return little_endian_read_16(event, 10); 1379 } 1380 /** 1381 * @brief Get field incoming from event L2CAP_EVENT_LE_CHANNEL_OPENED 1382 * @param event packet 1383 * @return incoming 1384 * @note: btstack_type 1 1385 */ 1386 static inline uint8_t l2cap_event_le_channel_opened_get_incoming(const uint8_t * event){ 1387 return event[12]; 1388 } 1389 /** 1390 * @brief Get field psm from event L2CAP_EVENT_LE_CHANNEL_OPENED 1391 * @param event packet 1392 * @return psm 1393 * @note: btstack_type 2 1394 */ 1395 static inline uint16_t l2cap_event_le_channel_opened_get_psm(const uint8_t * event){ 1396 return little_endian_read_16(event, 13); 1397 } 1398 /** 1399 * @brief Get field local_cid from event L2CAP_EVENT_LE_CHANNEL_OPENED 1400 * @param event packet 1401 * @return local_cid 1402 * @note: btstack_type 2 1403 */ 1404 static inline uint16_t l2cap_event_le_channel_opened_get_local_cid(const uint8_t * event){ 1405 return little_endian_read_16(event, 15); 1406 } 1407 /** 1408 * @brief Get field remote_cid from event L2CAP_EVENT_LE_CHANNEL_OPENED 1409 * @param event packet 1410 * @return remote_cid 1411 * @note: btstack_type 2 1412 */ 1413 static inline uint16_t l2cap_event_le_channel_opened_get_remote_cid(const uint8_t * event){ 1414 return little_endian_read_16(event, 17); 1415 } 1416 /** 1417 * @brief Get field local_mtu from event L2CAP_EVENT_LE_CHANNEL_OPENED 1418 * @param event packet 1419 * @return local_mtu 1420 * @note: btstack_type 2 1421 */ 1422 static inline uint16_t l2cap_event_le_channel_opened_get_local_mtu(const uint8_t * event){ 1423 return little_endian_read_16(event, 19); 1424 } 1425 /** 1426 * @brief Get field remote_mtu from event L2CAP_EVENT_LE_CHANNEL_OPENED 1427 * @param event packet 1428 * @return remote_mtu 1429 * @note: btstack_type 2 1430 */ 1431 static inline uint16_t l2cap_event_le_channel_opened_get_remote_mtu(const uint8_t * event){ 1432 return little_endian_read_16(event, 21); 1433 } 1434 1435 /** 1436 * @brief Get field local_cid from event L2CAP_EVENT_LE_CHANNEL_CLOSED 1437 * @param event packet 1438 * @return local_cid 1439 * @note: btstack_type 2 1440 */ 1441 static inline uint16_t l2cap_event_le_channel_closed_get_local_cid(const uint8_t * event){ 1442 return little_endian_read_16(event, 2); 1443 } 1444 1445 /** 1446 * @brief Get field local_cid from event L2CAP_EVENT_LE_CAN_SEND_NOW 1447 * @param event packet 1448 * @return local_cid 1449 * @note: btstack_type 2 1450 */ 1451 static inline uint16_t l2cap_event_le_can_send_now_get_local_cid(const uint8_t * event){ 1452 return little_endian_read_16(event, 2); 1453 } 1454 1455 /** 1456 * @brief Get field local_cid from event L2CAP_EVENT_LE_PACKET_SENT 1457 * @param event packet 1458 * @return local_cid 1459 * @note: btstack_type 2 1460 */ 1461 static inline uint16_t l2cap_event_le_packet_sent_get_local_cid(const uint8_t * event){ 1462 return little_endian_read_16(event, 2); 1463 } 1464 1465 /** 1466 * @brief Get field status from event RFCOMM_EVENT_CHANNEL_OPENED 1467 * @param event packet 1468 * @return status 1469 * @note: btstack_type 1 1470 */ 1471 static inline uint8_t rfcomm_event_channel_opened_get_status(const uint8_t * event){ 1472 return event[2]; 1473 } 1474 /** 1475 * @brief Get field bd_addr from event RFCOMM_EVENT_CHANNEL_OPENED 1476 * @param event packet 1477 * @param Pointer to storage for bd_addr 1478 * @note: btstack_type B 1479 */ 1480 static inline void rfcomm_event_channel_opened_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 1481 reverse_bd_addr(&event[3], bd_addr); 1482 } 1483 /** 1484 * @brief Get field con_handle from event RFCOMM_EVENT_CHANNEL_OPENED 1485 * @param event packet 1486 * @return con_handle 1487 * @note: btstack_type 2 1488 */ 1489 static inline uint16_t rfcomm_event_channel_opened_get_con_handle(const uint8_t * event){ 1490 return little_endian_read_16(event, 9); 1491 } 1492 /** 1493 * @brief Get field server_channel from event RFCOMM_EVENT_CHANNEL_OPENED 1494 * @param event packet 1495 * @return server_channel 1496 * @note: btstack_type 1 1497 */ 1498 static inline uint8_t rfcomm_event_channel_opened_get_server_channel(const uint8_t * event){ 1499 return event[11]; 1500 } 1501 /** 1502 * @brief Get field rfcomm_cid from event RFCOMM_EVENT_CHANNEL_OPENED 1503 * @param event packet 1504 * @return rfcomm_cid 1505 * @note: btstack_type 2 1506 */ 1507 static inline uint16_t rfcomm_event_channel_opened_get_rfcomm_cid(const uint8_t * event){ 1508 return little_endian_read_16(event, 12); 1509 } 1510 /** 1511 * @brief Get field max_frame_size from event RFCOMM_EVENT_CHANNEL_OPENED 1512 * @param event packet 1513 * @return max_frame_size 1514 * @note: btstack_type 2 1515 */ 1516 static inline uint16_t rfcomm_event_channel_opened_get_max_frame_size(const uint8_t * event){ 1517 return little_endian_read_16(event, 14); 1518 } 1519 /** 1520 * @brief Get field incoming from event RFCOMM_EVENT_CHANNEL_OPENED 1521 * @param event packet 1522 * @return incoming 1523 * @note: btstack_type 1 1524 */ 1525 static inline uint8_t rfcomm_event_channel_opened_get_incoming(const uint8_t * event){ 1526 return event[16]; 1527 } 1528 1529 /** 1530 * @brief Get field rfcomm_cid from event RFCOMM_EVENT_CHANNEL_CLOSED 1531 * @param event packet 1532 * @return rfcomm_cid 1533 * @note: btstack_type 2 1534 */ 1535 static inline uint16_t rfcomm_event_channel_closed_get_rfcomm_cid(const uint8_t * event){ 1536 return little_endian_read_16(event, 2); 1537 } 1538 1539 /** 1540 * @brief Get field bd_addr from event RFCOMM_EVENT_INCOMING_CONNECTION 1541 * @param event packet 1542 * @param Pointer to storage for bd_addr 1543 * @note: btstack_type B 1544 */ 1545 static inline void rfcomm_event_incoming_connection_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 1546 reverse_bd_addr(&event[2], bd_addr); 1547 } 1548 /** 1549 * @brief Get field server_channel from event RFCOMM_EVENT_INCOMING_CONNECTION 1550 * @param event packet 1551 * @return server_channel 1552 * @note: btstack_type 1 1553 */ 1554 static inline uint8_t rfcomm_event_incoming_connection_get_server_channel(const uint8_t * event){ 1555 return event[8]; 1556 } 1557 /** 1558 * @brief Get field rfcomm_cid from event RFCOMM_EVENT_INCOMING_CONNECTION 1559 * @param event packet 1560 * @return rfcomm_cid 1561 * @note: btstack_type 2 1562 */ 1563 static inline uint16_t rfcomm_event_incoming_connection_get_rfcomm_cid(const uint8_t * event){ 1564 return little_endian_read_16(event, 9); 1565 } 1566 1567 /** 1568 * @brief Get field rfcomm_cid from event RFCOMM_EVENT_REMOTE_LINE_STATUS 1569 * @param event packet 1570 * @return rfcomm_cid 1571 * @note: btstack_type 2 1572 */ 1573 static inline uint16_t rfcomm_event_remote_line_status_get_rfcomm_cid(const uint8_t * event){ 1574 return little_endian_read_16(event, 2); 1575 } 1576 /** 1577 * @brief Get field line_status from event RFCOMM_EVENT_REMOTE_LINE_STATUS 1578 * @param event packet 1579 * @return line_status 1580 * @note: btstack_type 1 1581 */ 1582 static inline uint8_t rfcomm_event_remote_line_status_get_line_status(const uint8_t * event){ 1583 return event[4]; 1584 } 1585 1586 /** 1587 * @brief Get field rfcomm_cid from event RFCOMM_EVENT_REMOTE_MODEM_STATUS 1588 * @param event packet 1589 * @return rfcomm_cid 1590 * @note: btstack_type 2 1591 */ 1592 static inline uint16_t rfcomm_event_remote_modem_status_get_rfcomm_cid(const uint8_t * event){ 1593 return little_endian_read_16(event, 2); 1594 } 1595 /** 1596 * @brief Get field modem_status from event RFCOMM_EVENT_REMOTE_MODEM_STATUS 1597 * @param event packet 1598 * @return modem_status 1599 * @note: btstack_type 1 1600 */ 1601 static inline uint8_t rfcomm_event_remote_modem_status_get_modem_status(const uint8_t * event){ 1602 return event[4]; 1603 } 1604 1605 /** 1606 * @brief Get field rfcomm_cid from event RFCOMM_EVENT_CAN_SEND_NOW 1607 * @param event packet 1608 * @return rfcomm_cid 1609 * @note: btstack_type 2 1610 */ 1611 static inline uint16_t rfcomm_event_can_send_now_get_rfcomm_cid(const uint8_t * event){ 1612 return little_endian_read_16(event, 2); 1613 } 1614 1615 /** 1616 * @brief Get field status from event SDP_EVENT_QUERY_COMPLETE 1617 * @param event packet 1618 * @return status 1619 * @note: btstack_type 1 1620 */ 1621 static inline uint8_t sdp_event_query_complete_get_status(const uint8_t * event){ 1622 return event[2]; 1623 } 1624 1625 /** 1626 * @brief Get field rfcomm_channel from event SDP_EVENT_QUERY_RFCOMM_SERVICE 1627 * @param event packet 1628 * @return rfcomm_channel 1629 * @note: btstack_type 1 1630 */ 1631 static inline uint8_t sdp_event_query_rfcomm_service_get_rfcomm_channel(const uint8_t * event){ 1632 return event[2]; 1633 } 1634 /** 1635 * @brief Get field name from event SDP_EVENT_QUERY_RFCOMM_SERVICE 1636 * @param event packet 1637 * @return name 1638 * @note: btstack_type T 1639 */ 1640 static inline const char * sdp_event_query_rfcomm_service_get_name(const uint8_t * event){ 1641 return (const char *) &event[3]; 1642 } 1643 1644 /** 1645 * @brief Get field record_id from event SDP_EVENT_QUERY_ATTRIBUTE_BYTE 1646 * @param event packet 1647 * @return record_id 1648 * @note: btstack_type 2 1649 */ 1650 static inline uint16_t sdp_event_query_attribute_byte_get_record_id(const uint8_t * event){ 1651 return little_endian_read_16(event, 2); 1652 } 1653 /** 1654 * @brief Get field attribute_id from event SDP_EVENT_QUERY_ATTRIBUTE_BYTE 1655 * @param event packet 1656 * @return attribute_id 1657 * @note: btstack_type 2 1658 */ 1659 static inline uint16_t sdp_event_query_attribute_byte_get_attribute_id(const uint8_t * event){ 1660 return little_endian_read_16(event, 4); 1661 } 1662 /** 1663 * @brief Get field attribute_length from event SDP_EVENT_QUERY_ATTRIBUTE_BYTE 1664 * @param event packet 1665 * @return attribute_length 1666 * @note: btstack_type 2 1667 */ 1668 static inline uint16_t sdp_event_query_attribute_byte_get_attribute_length(const uint8_t * event){ 1669 return little_endian_read_16(event, 6); 1670 } 1671 /** 1672 * @brief Get field data_offset from event SDP_EVENT_QUERY_ATTRIBUTE_BYTE 1673 * @param event packet 1674 * @return data_offset 1675 * @note: btstack_type 2 1676 */ 1677 static inline uint16_t sdp_event_query_attribute_byte_get_data_offset(const uint8_t * event){ 1678 return little_endian_read_16(event, 8); 1679 } 1680 /** 1681 * @brief Get field data from event SDP_EVENT_QUERY_ATTRIBUTE_BYTE 1682 * @param event packet 1683 * @return data 1684 * @note: btstack_type 1 1685 */ 1686 static inline uint8_t sdp_event_query_attribute_byte_get_data(const uint8_t * event){ 1687 return event[10]; 1688 } 1689 1690 /** 1691 * @brief Get field record_id from event SDP_EVENT_QUERY_ATTRIBUTE_VALUE 1692 * @param event packet 1693 * @return record_id 1694 * @note: btstack_type 2 1695 */ 1696 static inline uint16_t sdp_event_query_attribute_value_get_record_id(const uint8_t * event){ 1697 return little_endian_read_16(event, 2); 1698 } 1699 /** 1700 * @brief Get field attribute_id from event SDP_EVENT_QUERY_ATTRIBUTE_VALUE 1701 * @param event packet 1702 * @return attribute_id 1703 * @note: btstack_type 2 1704 */ 1705 static inline uint16_t sdp_event_query_attribute_value_get_attribute_id(const uint8_t * event){ 1706 return little_endian_read_16(event, 4); 1707 } 1708 /** 1709 * @brief Get field attribute_length from event SDP_EVENT_QUERY_ATTRIBUTE_VALUE 1710 * @param event packet 1711 * @return attribute_length 1712 * @note: btstack_type L 1713 */ 1714 static inline int sdp_event_query_attribute_value_get_attribute_length(const uint8_t * event){ 1715 return little_endian_read_16(event, 6); 1716 } 1717 /** 1718 * @brief Get field attribute_value from event SDP_EVENT_QUERY_ATTRIBUTE_VALUE 1719 * @param event packet 1720 * @return attribute_value 1721 * @note: btstack_type V 1722 */ 1723 static inline const uint8_t * sdp_event_query_attribute_value_get_attribute_value(const uint8_t * event){ 1724 return &event[8]; 1725 } 1726 1727 /** 1728 * @brief Get field total_count from event SDP_EVENT_QUERY_SERVICE_RECORD_HANDLE 1729 * @param event packet 1730 * @return total_count 1731 * @note: btstack_type 2 1732 */ 1733 static inline uint16_t sdp_event_query_service_record_handle_get_total_count(const uint8_t * event){ 1734 return little_endian_read_16(event, 2); 1735 } 1736 /** 1737 * @brief Get field record_index from event SDP_EVENT_QUERY_SERVICE_RECORD_HANDLE 1738 * @param event packet 1739 * @return record_index 1740 * @note: btstack_type 2 1741 */ 1742 static inline uint16_t sdp_event_query_service_record_handle_get_record_index(const uint8_t * event){ 1743 return little_endian_read_16(event, 4); 1744 } 1745 /** 1746 * @brief Get field record_handle from event SDP_EVENT_QUERY_SERVICE_RECORD_HANDLE 1747 * @param event packet 1748 * @return record_handle 1749 * @note: btstack_type 4 1750 */ 1751 static inline uint32_t sdp_event_query_service_record_handle_get_record_handle(const uint8_t * event){ 1752 return little_endian_read_32(event, 6); 1753 } 1754 1755 #ifdef ENABLE_BLE 1756 /** 1757 * @brief Get field handle from event GATT_EVENT_QUERY_COMPLETE 1758 * @param event packet 1759 * @return handle 1760 * @note: btstack_type H 1761 */ 1762 static inline hci_con_handle_t gatt_event_query_complete_get_handle(const uint8_t * event){ 1763 return little_endian_read_16(event, 2); 1764 } 1765 /** 1766 * @brief Get field status from event GATT_EVENT_QUERY_COMPLETE 1767 * @param event packet 1768 * @return status 1769 * @note: btstack_type 1 1770 */ 1771 static inline uint8_t gatt_event_query_complete_get_status(const uint8_t * event){ 1772 return event[4]; 1773 } 1774 #endif 1775 1776 #ifdef ENABLE_BLE 1777 /** 1778 * @brief Get field handle from event GATT_EVENT_SERVICE_QUERY_RESULT 1779 * @param event packet 1780 * @return handle 1781 * @note: btstack_type H 1782 */ 1783 static inline hci_con_handle_t gatt_event_service_query_result_get_handle(const uint8_t * event){ 1784 return little_endian_read_16(event, 2); 1785 } 1786 /** 1787 * @brief Get field service from event GATT_EVENT_SERVICE_QUERY_RESULT 1788 * @param event packet 1789 * @param Pointer to storage for service 1790 * @note: btstack_type X 1791 */ 1792 static inline void gatt_event_service_query_result_get_service(const uint8_t * event, gatt_client_service_t * service){ 1793 gatt_client_deserialize_service(event, 4, service); 1794 } 1795 #endif 1796 1797 #ifdef ENABLE_BLE 1798 /** 1799 * @brief Get field handle from event GATT_EVENT_CHARACTERISTIC_QUERY_RESULT 1800 * @param event packet 1801 * @return handle 1802 * @note: btstack_type H 1803 */ 1804 static inline hci_con_handle_t gatt_event_characteristic_query_result_get_handle(const uint8_t * event){ 1805 return little_endian_read_16(event, 2); 1806 } 1807 /** 1808 * @brief Get field characteristic from event GATT_EVENT_CHARACTERISTIC_QUERY_RESULT 1809 * @param event packet 1810 * @param Pointer to storage for characteristic 1811 * @note: btstack_type Y 1812 */ 1813 static inline void gatt_event_characteristic_query_result_get_characteristic(const uint8_t * event, gatt_client_characteristic_t * characteristic){ 1814 gatt_client_deserialize_characteristic(event, 4, characteristic); 1815 } 1816 #endif 1817 1818 #ifdef ENABLE_BLE 1819 /** 1820 * @brief Get field handle from event GATT_EVENT_INCLUDED_SERVICE_QUERY_RESULT 1821 * @param event packet 1822 * @return handle 1823 * @note: btstack_type H 1824 */ 1825 static inline hci_con_handle_t gatt_event_included_service_query_result_get_handle(const uint8_t * event){ 1826 return little_endian_read_16(event, 2); 1827 } 1828 /** 1829 * @brief Get field include_handle from event GATT_EVENT_INCLUDED_SERVICE_QUERY_RESULT 1830 * @param event packet 1831 * @return include_handle 1832 * @note: btstack_type 2 1833 */ 1834 static inline uint16_t gatt_event_included_service_query_result_get_include_handle(const uint8_t * event){ 1835 return little_endian_read_16(event, 4); 1836 } 1837 /** 1838 * @brief Get field service from event GATT_EVENT_INCLUDED_SERVICE_QUERY_RESULT 1839 * @param event packet 1840 * @param Pointer to storage for service 1841 * @note: btstack_type X 1842 */ 1843 static inline void gatt_event_included_service_query_result_get_service(const uint8_t * event, gatt_client_service_t * service){ 1844 gatt_client_deserialize_service(event, 6, service); 1845 } 1846 #endif 1847 1848 #ifdef ENABLE_BLE 1849 /** 1850 * @brief Get field handle from event GATT_EVENT_ALL_CHARACTERISTIC_DESCRIPTORS_QUERY_RESULT 1851 * @param event packet 1852 * @return handle 1853 * @note: btstack_type H 1854 */ 1855 static inline hci_con_handle_t gatt_event_all_characteristic_descriptors_query_result_get_handle(const uint8_t * event){ 1856 return little_endian_read_16(event, 2); 1857 } 1858 /** 1859 * @brief Get field characteristic_descriptor from event GATT_EVENT_ALL_CHARACTERISTIC_DESCRIPTORS_QUERY_RESULT 1860 * @param event packet 1861 * @param Pointer to storage for characteristic_descriptor 1862 * @note: btstack_type Z 1863 */ 1864 static inline void gatt_event_all_characteristic_descriptors_query_result_get_characteristic_descriptor(const uint8_t * event, gatt_client_characteristic_descriptor_t * characteristic_descriptor){ 1865 gatt_client_deserialize_characteristic_descriptor(event, 4, characteristic_descriptor); 1866 } 1867 #endif 1868 1869 #ifdef ENABLE_BLE 1870 /** 1871 * @brief Get field handle from event GATT_EVENT_CHARACTERISTIC_VALUE_QUERY_RESULT 1872 * @param event packet 1873 * @return handle 1874 * @note: btstack_type H 1875 */ 1876 static inline hci_con_handle_t gatt_event_characteristic_value_query_result_get_handle(const uint8_t * event){ 1877 return little_endian_read_16(event, 2); 1878 } 1879 /** 1880 * @brief Get field value_handle from event GATT_EVENT_CHARACTERISTIC_VALUE_QUERY_RESULT 1881 * @param event packet 1882 * @return value_handle 1883 * @note: btstack_type 2 1884 */ 1885 static inline uint16_t gatt_event_characteristic_value_query_result_get_value_handle(const uint8_t * event){ 1886 return little_endian_read_16(event, 4); 1887 } 1888 /** 1889 * @brief Get field value_length from event GATT_EVENT_CHARACTERISTIC_VALUE_QUERY_RESULT 1890 * @param event packet 1891 * @return value_length 1892 * @note: btstack_type L 1893 */ 1894 static inline int gatt_event_characteristic_value_query_result_get_value_length(const uint8_t * event){ 1895 return little_endian_read_16(event, 6); 1896 } 1897 /** 1898 * @brief Get field value from event GATT_EVENT_CHARACTERISTIC_VALUE_QUERY_RESULT 1899 * @param event packet 1900 * @return value 1901 * @note: btstack_type V 1902 */ 1903 static inline const uint8_t * gatt_event_characteristic_value_query_result_get_value(const uint8_t * event){ 1904 return &event[8]; 1905 } 1906 #endif 1907 1908 #ifdef ENABLE_BLE 1909 /** 1910 * @brief Get field handle from event GATT_EVENT_LONG_CHARACTERISTIC_VALUE_QUERY_RESULT 1911 * @param event packet 1912 * @return handle 1913 * @note: btstack_type H 1914 */ 1915 static inline hci_con_handle_t gatt_event_long_characteristic_value_query_result_get_handle(const uint8_t * event){ 1916 return little_endian_read_16(event, 2); 1917 } 1918 /** 1919 * @brief Get field value_handle from event GATT_EVENT_LONG_CHARACTERISTIC_VALUE_QUERY_RESULT 1920 * @param event packet 1921 * @return value_handle 1922 * @note: btstack_type 2 1923 */ 1924 static inline uint16_t gatt_event_long_characteristic_value_query_result_get_value_handle(const uint8_t * event){ 1925 return little_endian_read_16(event, 4); 1926 } 1927 /** 1928 * @brief Get field value_offset from event GATT_EVENT_LONG_CHARACTERISTIC_VALUE_QUERY_RESULT 1929 * @param event packet 1930 * @return value_offset 1931 * @note: btstack_type 2 1932 */ 1933 static inline uint16_t gatt_event_long_characteristic_value_query_result_get_value_offset(const uint8_t * event){ 1934 return little_endian_read_16(event, 6); 1935 } 1936 /** 1937 * @brief Get field value_length from event GATT_EVENT_LONG_CHARACTERISTIC_VALUE_QUERY_RESULT 1938 * @param event packet 1939 * @return value_length 1940 * @note: btstack_type L 1941 */ 1942 static inline int gatt_event_long_characteristic_value_query_result_get_value_length(const uint8_t * event){ 1943 return little_endian_read_16(event, 8); 1944 } 1945 /** 1946 * @brief Get field value from event GATT_EVENT_LONG_CHARACTERISTIC_VALUE_QUERY_RESULT 1947 * @param event packet 1948 * @return value 1949 * @note: btstack_type V 1950 */ 1951 static inline const uint8_t * gatt_event_long_characteristic_value_query_result_get_value(const uint8_t * event){ 1952 return &event[10]; 1953 } 1954 #endif 1955 1956 #ifdef ENABLE_BLE 1957 /** 1958 * @brief Get field handle from event GATT_EVENT_NOTIFICATION 1959 * @param event packet 1960 * @return handle 1961 * @note: btstack_type H 1962 */ 1963 static inline hci_con_handle_t gatt_event_notification_get_handle(const uint8_t * event){ 1964 return little_endian_read_16(event, 2); 1965 } 1966 /** 1967 * @brief Get field value_handle from event GATT_EVENT_NOTIFICATION 1968 * @param event packet 1969 * @return value_handle 1970 * @note: btstack_type 2 1971 */ 1972 static inline uint16_t gatt_event_notification_get_value_handle(const uint8_t * event){ 1973 return little_endian_read_16(event, 4); 1974 } 1975 /** 1976 * @brief Get field value_length from event GATT_EVENT_NOTIFICATION 1977 * @param event packet 1978 * @return value_length 1979 * @note: btstack_type L 1980 */ 1981 static inline int gatt_event_notification_get_value_length(const uint8_t * event){ 1982 return little_endian_read_16(event, 6); 1983 } 1984 /** 1985 * @brief Get field value from event GATT_EVENT_NOTIFICATION 1986 * @param event packet 1987 * @return value 1988 * @note: btstack_type V 1989 */ 1990 static inline const uint8_t * gatt_event_notification_get_value(const uint8_t * event){ 1991 return &event[8]; 1992 } 1993 #endif 1994 1995 #ifdef ENABLE_BLE 1996 /** 1997 * @brief Get field handle from event GATT_EVENT_INDICATION 1998 * @param event packet 1999 * @return handle 2000 * @note: btstack_type H 2001 */ 2002 static inline hci_con_handle_t gatt_event_indication_get_handle(const uint8_t * event){ 2003 return little_endian_read_16(event, 2); 2004 } 2005 /** 2006 * @brief Get field value_handle from event GATT_EVENT_INDICATION 2007 * @param event packet 2008 * @return value_handle 2009 * @note: btstack_type 2 2010 */ 2011 static inline uint16_t gatt_event_indication_get_value_handle(const uint8_t * event){ 2012 return little_endian_read_16(event, 4); 2013 } 2014 /** 2015 * @brief Get field value_length from event GATT_EVENT_INDICATION 2016 * @param event packet 2017 * @return value_length 2018 * @note: btstack_type L 2019 */ 2020 static inline int gatt_event_indication_get_value_length(const uint8_t * event){ 2021 return little_endian_read_16(event, 6); 2022 } 2023 /** 2024 * @brief Get field value from event GATT_EVENT_INDICATION 2025 * @param event packet 2026 * @return value 2027 * @note: btstack_type V 2028 */ 2029 static inline const uint8_t * gatt_event_indication_get_value(const uint8_t * event){ 2030 return &event[8]; 2031 } 2032 #endif 2033 2034 #ifdef ENABLE_BLE 2035 /** 2036 * @brief Get field handle from event GATT_EVENT_CHARACTERISTIC_DESCRIPTOR_QUERY_RESULT 2037 * @param event packet 2038 * @return handle 2039 * @note: btstack_type H 2040 */ 2041 static inline hci_con_handle_t gatt_event_characteristic_descriptor_query_result_get_handle(const uint8_t * event){ 2042 return little_endian_read_16(event, 2); 2043 } 2044 /** 2045 * @brief Get field descriptor_handle from event GATT_EVENT_CHARACTERISTIC_DESCRIPTOR_QUERY_RESULT 2046 * @param event packet 2047 * @return descriptor_handle 2048 * @note: btstack_type 2 2049 */ 2050 static inline uint16_t gatt_event_characteristic_descriptor_query_result_get_descriptor_handle(const uint8_t * event){ 2051 return little_endian_read_16(event, 4); 2052 } 2053 /** 2054 * @brief Get field descriptor_length from event GATT_EVENT_CHARACTERISTIC_DESCRIPTOR_QUERY_RESULT 2055 * @param event packet 2056 * @return descriptor_length 2057 * @note: btstack_type L 2058 */ 2059 static inline int gatt_event_characteristic_descriptor_query_result_get_descriptor_length(const uint8_t * event){ 2060 return little_endian_read_16(event, 6); 2061 } 2062 /** 2063 * @brief Get field descriptor from event GATT_EVENT_CHARACTERISTIC_DESCRIPTOR_QUERY_RESULT 2064 * @param event packet 2065 * @return descriptor 2066 * @note: btstack_type V 2067 */ 2068 static inline const uint8_t * gatt_event_characteristic_descriptor_query_result_get_descriptor(const uint8_t * event){ 2069 return &event[8]; 2070 } 2071 #endif 2072 2073 #ifdef ENABLE_BLE 2074 /** 2075 * @brief Get field handle from event GATT_EVENT_LONG_CHARACTERISTIC_DESCRIPTOR_QUERY_RESULT 2076 * @param event packet 2077 * @return handle 2078 * @note: btstack_type H 2079 */ 2080 static inline hci_con_handle_t gatt_event_long_characteristic_descriptor_query_result_get_handle(const uint8_t * event){ 2081 return little_endian_read_16(event, 2); 2082 } 2083 /** 2084 * @brief Get field descriptor_offset from event GATT_EVENT_LONG_CHARACTERISTIC_DESCRIPTOR_QUERY_RESULT 2085 * @param event packet 2086 * @return descriptor_offset 2087 * @note: btstack_type 2 2088 */ 2089 static inline uint16_t gatt_event_long_characteristic_descriptor_query_result_get_descriptor_offset(const uint8_t * event){ 2090 return little_endian_read_16(event, 4); 2091 } 2092 /** 2093 * @brief Get field descriptor_length from event GATT_EVENT_LONG_CHARACTERISTIC_DESCRIPTOR_QUERY_RESULT 2094 * @param event packet 2095 * @return descriptor_length 2096 * @note: btstack_type L 2097 */ 2098 static inline int gatt_event_long_characteristic_descriptor_query_result_get_descriptor_length(const uint8_t * event){ 2099 return little_endian_read_16(event, 6); 2100 } 2101 /** 2102 * @brief Get field descriptor from event GATT_EVENT_LONG_CHARACTERISTIC_DESCRIPTOR_QUERY_RESULT 2103 * @param event packet 2104 * @return descriptor 2105 * @note: btstack_type V 2106 */ 2107 static inline const uint8_t * gatt_event_long_characteristic_descriptor_query_result_get_descriptor(const uint8_t * event){ 2108 return &event[8]; 2109 } 2110 #endif 2111 2112 #ifdef ENABLE_BLE 2113 /** 2114 * @brief Get field handle from event GATT_EVENT_MTU 2115 * @param event packet 2116 * @return handle 2117 * @note: btstack_type H 2118 */ 2119 static inline hci_con_handle_t gatt_event_mtu_get_handle(const uint8_t * event){ 2120 return little_endian_read_16(event, 2); 2121 } 2122 /** 2123 * @brief Get field MTU from event GATT_EVENT_MTU 2124 * @param event packet 2125 * @return MTU 2126 * @note: btstack_type 2 2127 */ 2128 static inline uint16_t gatt_event_mtu_get_MTU(const uint8_t * event){ 2129 return little_endian_read_16(event, 4); 2130 } 2131 #endif 2132 2133 #ifdef ENABLE_BLE 2134 /** 2135 * @brief Get field handle from event GATT_EVENT_CAN_WRITE_WITHOUT_RESPONSE 2136 * @param event packet 2137 * @return handle 2138 * @note: btstack_type H 2139 */ 2140 static inline hci_con_handle_t gatt_event_can_write_without_response_get_handle(const uint8_t * event){ 2141 return little_endian_read_16(event, 2); 2142 } 2143 #endif 2144 2145 /** 2146 * @brief Get field handle from event ATT_EVENT_MTU_EXCHANGE_COMPLETE 2147 * @param event packet 2148 * @return handle 2149 * @note: btstack_type H 2150 */ 2151 static inline hci_con_handle_t att_event_mtu_exchange_complete_get_handle(const uint8_t * event){ 2152 return little_endian_read_16(event, 2); 2153 } 2154 /** 2155 * @brief Get field MTU from event ATT_EVENT_MTU_EXCHANGE_COMPLETE 2156 * @param event packet 2157 * @return MTU 2158 * @note: btstack_type 2 2159 */ 2160 static inline uint16_t att_event_mtu_exchange_complete_get_MTU(const uint8_t * event){ 2161 return little_endian_read_16(event, 4); 2162 } 2163 2164 /** 2165 * @brief Get field status from event ATT_EVENT_HANDLE_VALUE_INDICATION_COMPLETE 2166 * @param event packet 2167 * @return status 2168 * @note: btstack_type 1 2169 */ 2170 static inline uint8_t att_event_handle_value_indication_complete_get_status(const uint8_t * event){ 2171 return event[2]; 2172 } 2173 /** 2174 * @brief Get field conn_handle from event ATT_EVENT_HANDLE_VALUE_INDICATION_COMPLETE 2175 * @param event packet 2176 * @return conn_handle 2177 * @note: btstack_type H 2178 */ 2179 static inline hci_con_handle_t att_event_handle_value_indication_complete_get_conn_handle(const uint8_t * event){ 2180 return little_endian_read_16(event, 3); 2181 } 2182 /** 2183 * @brief Get field attribute_handle from event ATT_EVENT_HANDLE_VALUE_INDICATION_COMPLETE 2184 * @param event packet 2185 * @return attribute_handle 2186 * @note: btstack_type 2 2187 */ 2188 static inline uint16_t att_event_handle_value_indication_complete_get_attribute_handle(const uint8_t * event){ 2189 return little_endian_read_16(event, 5); 2190 } 2191 2192 2193 /** 2194 * @brief Get field status from event BNEP_EVENT_SERVICE_REGISTERED 2195 * @param event packet 2196 * @return status 2197 * @note: btstack_type 1 2198 */ 2199 static inline uint8_t bnep_event_service_registered_get_status(const uint8_t * event){ 2200 return event[2]; 2201 } 2202 /** 2203 * @brief Get field service_uuid from event BNEP_EVENT_SERVICE_REGISTERED 2204 * @param event packet 2205 * @return service_uuid 2206 * @note: btstack_type 2 2207 */ 2208 static inline uint16_t bnep_event_service_registered_get_service_uuid(const uint8_t * event){ 2209 return little_endian_read_16(event, 3); 2210 } 2211 2212 /** 2213 * @brief Get field status from event BNEP_EVENT_CHANNEL_OPENED 2214 * @param event packet 2215 * @return status 2216 * @note: btstack_type 1 2217 */ 2218 static inline uint8_t bnep_event_channel_opened_get_status(const uint8_t * event){ 2219 return event[2]; 2220 } 2221 /** 2222 * @brief Get field bnep_cid from event BNEP_EVENT_CHANNEL_OPENED 2223 * @param event packet 2224 * @return bnep_cid 2225 * @note: btstack_type 2 2226 */ 2227 static inline uint16_t bnep_event_channel_opened_get_bnep_cid(const uint8_t * event){ 2228 return little_endian_read_16(event, 3); 2229 } 2230 /** 2231 * @brief Get field source_uuid from event BNEP_EVENT_CHANNEL_OPENED 2232 * @param event packet 2233 * @return source_uuid 2234 * @note: btstack_type 2 2235 */ 2236 static inline uint16_t bnep_event_channel_opened_get_source_uuid(const uint8_t * event){ 2237 return little_endian_read_16(event, 5); 2238 } 2239 /** 2240 * @brief Get field destination_uuid from event BNEP_EVENT_CHANNEL_OPENED 2241 * @param event packet 2242 * @return destination_uuid 2243 * @note: btstack_type 2 2244 */ 2245 static inline uint16_t bnep_event_channel_opened_get_destination_uuid(const uint8_t * event){ 2246 return little_endian_read_16(event, 7); 2247 } 2248 /** 2249 * @brief Get field mtu from event BNEP_EVENT_CHANNEL_OPENED 2250 * @param event packet 2251 * @return mtu 2252 * @note: btstack_type 2 2253 */ 2254 static inline uint16_t bnep_event_channel_opened_get_mtu(const uint8_t * event){ 2255 return little_endian_read_16(event, 9); 2256 } 2257 /** 2258 * @brief Get field remote_address from event BNEP_EVENT_CHANNEL_OPENED 2259 * @param event packet 2260 * @param Pointer to storage for remote_address 2261 * @note: btstack_type B 2262 */ 2263 static inline void bnep_event_channel_opened_get_remote_address(const uint8_t * event, bd_addr_t remote_address){ 2264 reverse_bd_addr(&event[11], remote_address); 2265 } 2266 2267 /** 2268 * @brief Get field bnep_cid from event BNEP_EVENT_CHANNEL_CLOSED 2269 * @param event packet 2270 * @return bnep_cid 2271 * @note: btstack_type 2 2272 */ 2273 static inline uint16_t bnep_event_channel_closed_get_bnep_cid(const uint8_t * event){ 2274 return little_endian_read_16(event, 2); 2275 } 2276 /** 2277 * @brief Get field source_uuid from event BNEP_EVENT_CHANNEL_CLOSED 2278 * @param event packet 2279 * @return source_uuid 2280 * @note: btstack_type 2 2281 */ 2282 static inline uint16_t bnep_event_channel_closed_get_source_uuid(const uint8_t * event){ 2283 return little_endian_read_16(event, 4); 2284 } 2285 /** 2286 * @brief Get field destination_uuid from event BNEP_EVENT_CHANNEL_CLOSED 2287 * @param event packet 2288 * @return destination_uuid 2289 * @note: btstack_type 2 2290 */ 2291 static inline uint16_t bnep_event_channel_closed_get_destination_uuid(const uint8_t * event){ 2292 return little_endian_read_16(event, 6); 2293 } 2294 /** 2295 * @brief Get field remote_address from event BNEP_EVENT_CHANNEL_CLOSED 2296 * @param event packet 2297 * @param Pointer to storage for remote_address 2298 * @note: btstack_type B 2299 */ 2300 static inline void bnep_event_channel_closed_get_remote_address(const uint8_t * event, bd_addr_t remote_address){ 2301 reverse_bd_addr(&event[8], remote_address); 2302 } 2303 2304 /** 2305 * @brief Get field bnep_cid from event BNEP_EVENT_CHANNEL_TIMEOUT 2306 * @param event packet 2307 * @return bnep_cid 2308 * @note: btstack_type 2 2309 */ 2310 static inline uint16_t bnep_event_channel_timeout_get_bnep_cid(const uint8_t * event){ 2311 return little_endian_read_16(event, 2); 2312 } 2313 /** 2314 * @brief Get field source_uuid from event BNEP_EVENT_CHANNEL_TIMEOUT 2315 * @param event packet 2316 * @return source_uuid 2317 * @note: btstack_type 2 2318 */ 2319 static inline uint16_t bnep_event_channel_timeout_get_source_uuid(const uint8_t * event){ 2320 return little_endian_read_16(event, 4); 2321 } 2322 /** 2323 * @brief Get field destination_uuid from event BNEP_EVENT_CHANNEL_TIMEOUT 2324 * @param event packet 2325 * @return destination_uuid 2326 * @note: btstack_type 2 2327 */ 2328 static inline uint16_t bnep_event_channel_timeout_get_destination_uuid(const uint8_t * event){ 2329 return little_endian_read_16(event, 6); 2330 } 2331 /** 2332 * @brief Get field remote_address from event BNEP_EVENT_CHANNEL_TIMEOUT 2333 * @param event packet 2334 * @param Pointer to storage for remote_address 2335 * @note: btstack_type B 2336 */ 2337 static inline void bnep_event_channel_timeout_get_remote_address(const uint8_t * event, bd_addr_t remote_address){ 2338 reverse_bd_addr(&event[8], remote_address); 2339 } 2340 /** 2341 * @brief Get field channel_state from event BNEP_EVENT_CHANNEL_TIMEOUT 2342 * @param event packet 2343 * @return channel_state 2344 * @note: btstack_type 1 2345 */ 2346 static inline uint8_t bnep_event_channel_timeout_get_channel_state(const uint8_t * event){ 2347 return event[14]; 2348 } 2349 2350 /** 2351 * @brief Get field bnep_cid from event BNEP_EVENT_CAN_SEND_NOW 2352 * @param event packet 2353 * @return bnep_cid 2354 * @note: btstack_type 2 2355 */ 2356 static inline uint16_t bnep_event_can_send_now_get_bnep_cid(const uint8_t * event){ 2357 return little_endian_read_16(event, 2); 2358 } 2359 /** 2360 * @brief Get field source_uuid from event BNEP_EVENT_CAN_SEND_NOW 2361 * @param event packet 2362 * @return source_uuid 2363 * @note: btstack_type 2 2364 */ 2365 static inline uint16_t bnep_event_can_send_now_get_source_uuid(const uint8_t * event){ 2366 return little_endian_read_16(event, 4); 2367 } 2368 /** 2369 * @brief Get field destination_uuid from event BNEP_EVENT_CAN_SEND_NOW 2370 * @param event packet 2371 * @return destination_uuid 2372 * @note: btstack_type 2 2373 */ 2374 static inline uint16_t bnep_event_can_send_now_get_destination_uuid(const uint8_t * event){ 2375 return little_endian_read_16(event, 6); 2376 } 2377 /** 2378 * @brief Get field remote_address from event BNEP_EVENT_CAN_SEND_NOW 2379 * @param event packet 2380 * @param Pointer to storage for remote_address 2381 * @note: btstack_type B 2382 */ 2383 static inline void bnep_event_can_send_now_get_remote_address(const uint8_t * event, bd_addr_t remote_address){ 2384 reverse_bd_addr(&event[8], remote_address); 2385 } 2386 2387 #ifdef ENABLE_BLE 2388 /** 2389 * @brief Get field handle from event SM_EVENT_JUST_WORKS_REQUEST 2390 * @param event packet 2391 * @return handle 2392 * @note: btstack_type H 2393 */ 2394 static inline hci_con_handle_t sm_event_just_works_request_get_handle(const uint8_t * event){ 2395 return little_endian_read_16(event, 2); 2396 } 2397 /** 2398 * @brief Get field addr_type from event SM_EVENT_JUST_WORKS_REQUEST 2399 * @param event packet 2400 * @return addr_type 2401 * @note: btstack_type 1 2402 */ 2403 static inline uint8_t sm_event_just_works_request_get_addr_type(const uint8_t * event){ 2404 return event[4]; 2405 } 2406 /** 2407 * @brief Get field address from event SM_EVENT_JUST_WORKS_REQUEST 2408 * @param event packet 2409 * @param Pointer to storage for address 2410 * @note: btstack_type B 2411 */ 2412 static inline void sm_event_just_works_request_get_address(const uint8_t * event, bd_addr_t address){ 2413 reverse_bd_addr(&event[5], address); 2414 } 2415 #endif 2416 2417 #ifdef ENABLE_BLE 2418 /** 2419 * @brief Get field handle from event SM_EVENT_JUST_WORKS_CANCEL 2420 * @param event packet 2421 * @return handle 2422 * @note: btstack_type H 2423 */ 2424 static inline hci_con_handle_t sm_event_just_works_cancel_get_handle(const uint8_t * event){ 2425 return little_endian_read_16(event, 2); 2426 } 2427 /** 2428 * @brief Get field addr_type from event SM_EVENT_JUST_WORKS_CANCEL 2429 * @param event packet 2430 * @return addr_type 2431 * @note: btstack_type 1 2432 */ 2433 static inline uint8_t sm_event_just_works_cancel_get_addr_type(const uint8_t * event){ 2434 return event[4]; 2435 } 2436 /** 2437 * @brief Get field address from event SM_EVENT_JUST_WORKS_CANCEL 2438 * @param event packet 2439 * @param Pointer to storage for address 2440 * @note: btstack_type B 2441 */ 2442 static inline void sm_event_just_works_cancel_get_address(const uint8_t * event, bd_addr_t address){ 2443 reverse_bd_addr(&event[5], address); 2444 } 2445 #endif 2446 2447 #ifdef ENABLE_BLE 2448 /** 2449 * @brief Get field handle from event SM_EVENT_PASSKEY_DISPLAY_NUMBER 2450 * @param event packet 2451 * @return handle 2452 * @note: btstack_type H 2453 */ 2454 static inline hci_con_handle_t sm_event_passkey_display_number_get_handle(const uint8_t * event){ 2455 return little_endian_read_16(event, 2); 2456 } 2457 /** 2458 * @brief Get field addr_type from event SM_EVENT_PASSKEY_DISPLAY_NUMBER 2459 * @param event packet 2460 * @return addr_type 2461 * @note: btstack_type 1 2462 */ 2463 static inline uint8_t sm_event_passkey_display_number_get_addr_type(const uint8_t * event){ 2464 return event[4]; 2465 } 2466 /** 2467 * @brief Get field address from event SM_EVENT_PASSKEY_DISPLAY_NUMBER 2468 * @param event packet 2469 * @param Pointer to storage for address 2470 * @note: btstack_type B 2471 */ 2472 static inline void sm_event_passkey_display_number_get_address(const uint8_t * event, bd_addr_t address){ 2473 reverse_bd_addr(&event[5], address); 2474 } 2475 /** 2476 * @brief Get field passkey from event SM_EVENT_PASSKEY_DISPLAY_NUMBER 2477 * @param event packet 2478 * @return passkey 2479 * @note: btstack_type 4 2480 */ 2481 static inline uint32_t sm_event_passkey_display_number_get_passkey(const uint8_t * event){ 2482 return little_endian_read_32(event, 11); 2483 } 2484 #endif 2485 2486 #ifdef ENABLE_BLE 2487 /** 2488 * @brief Get field handle from event SM_EVENT_PASSKEY_DISPLAY_CANCEL 2489 * @param event packet 2490 * @return handle 2491 * @note: btstack_type H 2492 */ 2493 static inline hci_con_handle_t sm_event_passkey_display_cancel_get_handle(const uint8_t * event){ 2494 return little_endian_read_16(event, 2); 2495 } 2496 /** 2497 * @brief Get field addr_type from event SM_EVENT_PASSKEY_DISPLAY_CANCEL 2498 * @param event packet 2499 * @return addr_type 2500 * @note: btstack_type 1 2501 */ 2502 static inline uint8_t sm_event_passkey_display_cancel_get_addr_type(const uint8_t * event){ 2503 return event[4]; 2504 } 2505 /** 2506 * @brief Get field address from event SM_EVENT_PASSKEY_DISPLAY_CANCEL 2507 * @param event packet 2508 * @param Pointer to storage for address 2509 * @note: btstack_type B 2510 */ 2511 static inline void sm_event_passkey_display_cancel_get_address(const uint8_t * event, bd_addr_t address){ 2512 reverse_bd_addr(&event[5], address); 2513 } 2514 #endif 2515 2516 #ifdef ENABLE_BLE 2517 /** 2518 * @brief Get field handle from event SM_EVENT_PASSKEY_INPUT_NUMBER 2519 * @param event packet 2520 * @return handle 2521 * @note: btstack_type H 2522 */ 2523 static inline hci_con_handle_t sm_event_passkey_input_number_get_handle(const uint8_t * event){ 2524 return little_endian_read_16(event, 2); 2525 } 2526 /** 2527 * @brief Get field addr_type from event SM_EVENT_PASSKEY_INPUT_NUMBER 2528 * @param event packet 2529 * @return addr_type 2530 * @note: btstack_type 1 2531 */ 2532 static inline uint8_t sm_event_passkey_input_number_get_addr_type(const uint8_t * event){ 2533 return event[4]; 2534 } 2535 /** 2536 * @brief Get field address from event SM_EVENT_PASSKEY_INPUT_NUMBER 2537 * @param event packet 2538 * @param Pointer to storage for address 2539 * @note: btstack_type B 2540 */ 2541 static inline void sm_event_passkey_input_number_get_address(const uint8_t * event, bd_addr_t address){ 2542 reverse_bd_addr(&event[5], address); 2543 } 2544 #endif 2545 2546 #ifdef ENABLE_BLE 2547 /** 2548 * @brief Get field handle from event SM_EVENT_PASSKEY_INPUT_CANCEL 2549 * @param event packet 2550 * @return handle 2551 * @note: btstack_type H 2552 */ 2553 static inline hci_con_handle_t sm_event_passkey_input_cancel_get_handle(const uint8_t * event){ 2554 return little_endian_read_16(event, 2); 2555 } 2556 /** 2557 * @brief Get field addr_type from event SM_EVENT_PASSKEY_INPUT_CANCEL 2558 * @param event packet 2559 * @return addr_type 2560 * @note: btstack_type 1 2561 */ 2562 static inline uint8_t sm_event_passkey_input_cancel_get_addr_type(const uint8_t * event){ 2563 return event[4]; 2564 } 2565 /** 2566 * @brief Get field address from event SM_EVENT_PASSKEY_INPUT_CANCEL 2567 * @param event packet 2568 * @param Pointer to storage for address 2569 * @note: btstack_type B 2570 */ 2571 static inline void sm_event_passkey_input_cancel_get_address(const uint8_t * event, bd_addr_t address){ 2572 reverse_bd_addr(&event[5], address); 2573 } 2574 #endif 2575 2576 #ifdef ENABLE_BLE 2577 /** 2578 * @brief Get field handle from event SM_EVENT_NUMERIC_COMPARISON_REQUEST 2579 * @param event packet 2580 * @return handle 2581 * @note: btstack_type H 2582 */ 2583 static inline hci_con_handle_t sm_event_numeric_comparison_request_get_handle(const uint8_t * event){ 2584 return little_endian_read_16(event, 2); 2585 } 2586 /** 2587 * @brief Get field addr_type from event SM_EVENT_NUMERIC_COMPARISON_REQUEST 2588 * @param event packet 2589 * @return addr_type 2590 * @note: btstack_type 1 2591 */ 2592 static inline uint8_t sm_event_numeric_comparison_request_get_addr_type(const uint8_t * event){ 2593 return event[4]; 2594 } 2595 /** 2596 * @brief Get field address from event SM_EVENT_NUMERIC_COMPARISON_REQUEST 2597 * @param event packet 2598 * @param Pointer to storage for address 2599 * @note: btstack_type B 2600 */ 2601 static inline void sm_event_numeric_comparison_request_get_address(const uint8_t * event, bd_addr_t address){ 2602 reverse_bd_addr(&event[5], address); 2603 } 2604 /** 2605 * @brief Get field passkey from event SM_EVENT_NUMERIC_COMPARISON_REQUEST 2606 * @param event packet 2607 * @return passkey 2608 * @note: btstack_type 4 2609 */ 2610 static inline uint32_t sm_event_numeric_comparison_request_get_passkey(const uint8_t * event){ 2611 return little_endian_read_32(event, 11); 2612 } 2613 #endif 2614 2615 #ifdef ENABLE_BLE 2616 /** 2617 * @brief Get field handle from event SM_EVENT_NUMERIC_COMPARISON_CANCEL 2618 * @param event packet 2619 * @return handle 2620 * @note: btstack_type H 2621 */ 2622 static inline hci_con_handle_t sm_event_numeric_comparison_cancel_get_handle(const uint8_t * event){ 2623 return little_endian_read_16(event, 2); 2624 } 2625 /** 2626 * @brief Get field addr_type from event SM_EVENT_NUMERIC_COMPARISON_CANCEL 2627 * @param event packet 2628 * @return addr_type 2629 * @note: btstack_type 1 2630 */ 2631 static inline uint8_t sm_event_numeric_comparison_cancel_get_addr_type(const uint8_t * event){ 2632 return event[4]; 2633 } 2634 /** 2635 * @brief Get field address from event SM_EVENT_NUMERIC_COMPARISON_CANCEL 2636 * @param event packet 2637 * @param Pointer to storage for address 2638 * @note: btstack_type B 2639 */ 2640 static inline void sm_event_numeric_comparison_cancel_get_address(const uint8_t * event, bd_addr_t address){ 2641 reverse_bd_addr(&event[5], address); 2642 } 2643 #endif 2644 2645 #ifdef ENABLE_BLE 2646 /** 2647 * @brief Get field handle from event SM_EVENT_IDENTITY_RESOLVING_STARTED 2648 * @param event packet 2649 * @return handle 2650 * @note: btstack_type H 2651 */ 2652 static inline hci_con_handle_t sm_event_identity_resolving_started_get_handle(const uint8_t * event){ 2653 return little_endian_read_16(event, 2); 2654 } 2655 /** 2656 * @brief Get field addr_type from event SM_EVENT_IDENTITY_RESOLVING_STARTED 2657 * @param event packet 2658 * @return addr_type 2659 * @note: btstack_type 1 2660 */ 2661 static inline uint8_t sm_event_identity_resolving_started_get_addr_type(const uint8_t * event){ 2662 return event[4]; 2663 } 2664 /** 2665 * @brief Get field address from event SM_EVENT_IDENTITY_RESOLVING_STARTED 2666 * @param event packet 2667 * @param Pointer to storage for address 2668 * @note: btstack_type B 2669 */ 2670 static inline void sm_event_identity_resolving_started_get_address(const uint8_t * event, bd_addr_t address){ 2671 reverse_bd_addr(&event[5], address); 2672 } 2673 #endif 2674 2675 #ifdef ENABLE_BLE 2676 /** 2677 * @brief Get field handle from event SM_EVENT_IDENTITY_RESOLVING_FAILED 2678 * @param event packet 2679 * @return handle 2680 * @note: btstack_type H 2681 */ 2682 static inline hci_con_handle_t sm_event_identity_resolving_failed_get_handle(const uint8_t * event){ 2683 return little_endian_read_16(event, 2); 2684 } 2685 /** 2686 * @brief Get field addr_type from event SM_EVENT_IDENTITY_RESOLVING_FAILED 2687 * @param event packet 2688 * @return addr_type 2689 * @note: btstack_type 1 2690 */ 2691 static inline uint8_t sm_event_identity_resolving_failed_get_addr_type(const uint8_t * event){ 2692 return event[4]; 2693 } 2694 /** 2695 * @brief Get field address from event SM_EVENT_IDENTITY_RESOLVING_FAILED 2696 * @param event packet 2697 * @param Pointer to storage for address 2698 * @note: btstack_type B 2699 */ 2700 static inline void sm_event_identity_resolving_failed_get_address(const uint8_t * event, bd_addr_t address){ 2701 reverse_bd_addr(&event[5], address); 2702 } 2703 #endif 2704 2705 #ifdef ENABLE_BLE 2706 /** 2707 * @brief Get field handle from event SM_EVENT_IDENTITY_RESOLVING_SUCCEEDED 2708 * @param event packet 2709 * @return handle 2710 * @note: btstack_type H 2711 */ 2712 static inline hci_con_handle_t sm_event_identity_resolving_succeeded_get_handle(const uint8_t * event){ 2713 return little_endian_read_16(event, 2); 2714 } 2715 /** 2716 * @brief Get field addr_type from event SM_EVENT_IDENTITY_RESOLVING_SUCCEEDED 2717 * @param event packet 2718 * @return addr_type 2719 * @note: btstack_type 1 2720 */ 2721 static inline uint8_t sm_event_identity_resolving_succeeded_get_addr_type(const uint8_t * event){ 2722 return event[4]; 2723 } 2724 /** 2725 * @brief Get field address from event SM_EVENT_IDENTITY_RESOLVING_SUCCEEDED 2726 * @param event packet 2727 * @param Pointer to storage for address 2728 * @note: btstack_type B 2729 */ 2730 static inline void sm_event_identity_resolving_succeeded_get_address(const uint8_t * event, bd_addr_t address){ 2731 reverse_bd_addr(&event[5], address); 2732 } 2733 /** 2734 * @brief Get field identity_addr_type from event SM_EVENT_IDENTITY_RESOLVING_SUCCEEDED 2735 * @param event packet 2736 * @return identity_addr_type 2737 * @note: btstack_type 1 2738 */ 2739 static inline uint8_t sm_event_identity_resolving_succeeded_get_identity_addr_type(const uint8_t * event){ 2740 return event[11]; 2741 } 2742 /** 2743 * @brief Get field identity_address from event SM_EVENT_IDENTITY_RESOLVING_SUCCEEDED 2744 * @param event packet 2745 * @param Pointer to storage for identity_address 2746 * @note: btstack_type B 2747 */ 2748 static inline void sm_event_identity_resolving_succeeded_get_identity_address(const uint8_t * event, bd_addr_t identity_address){ 2749 reverse_bd_addr(&event[12], identity_address); 2750 } 2751 /** 2752 * @brief Get field index from event SM_EVENT_IDENTITY_RESOLVING_SUCCEEDED 2753 * @param event packet 2754 * @return index 2755 * @note: btstack_type 2 2756 */ 2757 static inline uint16_t sm_event_identity_resolving_succeeded_get_index(const uint8_t * event){ 2758 return little_endian_read_16(event, 18); 2759 } 2760 #endif 2761 2762 #ifdef ENABLE_BLE 2763 /** 2764 * @brief Get field handle from event SM_EVENT_AUTHORIZATION_REQUEST 2765 * @param event packet 2766 * @return handle 2767 * @note: btstack_type H 2768 */ 2769 static inline hci_con_handle_t sm_event_authorization_request_get_handle(const uint8_t * event){ 2770 return little_endian_read_16(event, 2); 2771 } 2772 /** 2773 * @brief Get field addr_type from event SM_EVENT_AUTHORIZATION_REQUEST 2774 * @param event packet 2775 * @return addr_type 2776 * @note: btstack_type 1 2777 */ 2778 static inline uint8_t sm_event_authorization_request_get_addr_type(const uint8_t * event){ 2779 return event[4]; 2780 } 2781 /** 2782 * @brief Get field address from event SM_EVENT_AUTHORIZATION_REQUEST 2783 * @param event packet 2784 * @param Pointer to storage for address 2785 * @note: btstack_type B 2786 */ 2787 static inline void sm_event_authorization_request_get_address(const uint8_t * event, bd_addr_t address){ 2788 reverse_bd_addr(&event[5], address); 2789 } 2790 #endif 2791 2792 #ifdef ENABLE_BLE 2793 /** 2794 * @brief Get field handle from event SM_EVENT_AUTHORIZATION_RESULT 2795 * @param event packet 2796 * @return handle 2797 * @note: btstack_type H 2798 */ 2799 static inline hci_con_handle_t sm_event_authorization_result_get_handle(const uint8_t * event){ 2800 return little_endian_read_16(event, 2); 2801 } 2802 /** 2803 * @brief Get field addr_type from event SM_EVENT_AUTHORIZATION_RESULT 2804 * @param event packet 2805 * @return addr_type 2806 * @note: btstack_type 1 2807 */ 2808 static inline uint8_t sm_event_authorization_result_get_addr_type(const uint8_t * event){ 2809 return event[4]; 2810 } 2811 /** 2812 * @brief Get field address from event SM_EVENT_AUTHORIZATION_RESULT 2813 * @param event packet 2814 * @param Pointer to storage for address 2815 * @note: btstack_type B 2816 */ 2817 static inline void sm_event_authorization_result_get_address(const uint8_t * event, bd_addr_t address){ 2818 reverse_bd_addr(&event[5], address); 2819 } 2820 /** 2821 * @brief Get field authorization_result from event SM_EVENT_AUTHORIZATION_RESULT 2822 * @param event packet 2823 * @return authorization_result 2824 * @note: btstack_type 1 2825 */ 2826 static inline uint8_t sm_event_authorization_result_get_authorization_result(const uint8_t * event){ 2827 return event[11]; 2828 } 2829 #endif 2830 2831 #ifdef ENABLE_BLE 2832 /** 2833 * @brief Get field handle from event SM_EVENT_KEYPRESS_NOTIFICATION 2834 * @param event packet 2835 * @return handle 2836 * @note: btstack_type H 2837 */ 2838 static inline hci_con_handle_t sm_event_keypress_notification_get_handle(const uint8_t * event){ 2839 return little_endian_read_16(event, 2); 2840 } 2841 /** 2842 * @brief Get field action from event SM_EVENT_KEYPRESS_NOTIFICATION 2843 * @param event packet 2844 * @return action 2845 * @note: btstack_type 1 2846 */ 2847 static inline uint8_t sm_event_keypress_notification_get_action(const uint8_t * event){ 2848 return event[4]; 2849 } 2850 #endif 2851 2852 #ifdef ENABLE_BLE 2853 /** 2854 * @brief Get field handle from event SM_EVENT_IDENTITY_CREATED 2855 * @param event packet 2856 * @return handle 2857 * @note: btstack_type H 2858 */ 2859 static inline hci_con_handle_t sm_event_identity_created_get_handle(const uint8_t * event){ 2860 return little_endian_read_16(event, 2); 2861 } 2862 /** 2863 * @brief Get field addr_type from event SM_EVENT_IDENTITY_CREATED 2864 * @param event packet 2865 * @return addr_type 2866 * @note: btstack_type 1 2867 */ 2868 static inline uint8_t sm_event_identity_created_get_addr_type(const uint8_t * event){ 2869 return event[4]; 2870 } 2871 /** 2872 * @brief Get field address from event SM_EVENT_IDENTITY_CREATED 2873 * @param event packet 2874 * @param Pointer to storage for address 2875 * @note: btstack_type B 2876 */ 2877 static inline void sm_event_identity_created_get_address(const uint8_t * event, bd_addr_t address){ 2878 reverse_bd_addr(&event[5], address); 2879 } 2880 /** 2881 * @brief Get field identity_addr_type from event SM_EVENT_IDENTITY_CREATED 2882 * @param event packet 2883 * @return identity_addr_type 2884 * @note: btstack_type 1 2885 */ 2886 static inline uint8_t sm_event_identity_created_get_identity_addr_type(const uint8_t * event){ 2887 return event[11]; 2888 } 2889 /** 2890 * @brief Get field identity_address from event SM_EVENT_IDENTITY_CREATED 2891 * @param event packet 2892 * @param Pointer to storage for identity_address 2893 * @note: btstack_type B 2894 */ 2895 static inline void sm_event_identity_created_get_identity_address(const uint8_t * event, bd_addr_t identity_address){ 2896 reverse_bd_addr(&event[12], identity_address); 2897 } 2898 /** 2899 * @brief Get field index from event SM_EVENT_IDENTITY_CREATED 2900 * @param event packet 2901 * @return index 2902 * @note: btstack_type 2 2903 */ 2904 static inline uint16_t sm_event_identity_created_get_index(const uint8_t * event){ 2905 return little_endian_read_16(event, 18); 2906 } 2907 #endif 2908 2909 #ifdef ENABLE_BLE 2910 /** 2911 * @brief Get field handle from event SM_EVENT_PAIRING_COMPLETE 2912 * @param event packet 2913 * @return handle 2914 * @note: btstack_type H 2915 */ 2916 static inline hci_con_handle_t sm_event_pairing_complete_get_handle(const uint8_t * event){ 2917 return little_endian_read_16(event, 2); 2918 } 2919 /** 2920 * @brief Get field addr_type from event SM_EVENT_PAIRING_COMPLETE 2921 * @param event packet 2922 * @return addr_type 2923 * @note: btstack_type 1 2924 */ 2925 static inline uint8_t sm_event_pairing_complete_get_addr_type(const uint8_t * event){ 2926 return event[4]; 2927 } 2928 /** 2929 * @brief Get field address from event SM_EVENT_PAIRING_COMPLETE 2930 * @param event packet 2931 * @param Pointer to storage for address 2932 * @note: btstack_type B 2933 */ 2934 static inline void sm_event_pairing_complete_get_address(const uint8_t * event, bd_addr_t address){ 2935 reverse_bd_addr(&event[5], address); 2936 } 2937 /** 2938 * @brief Get field status from event SM_EVENT_PAIRING_COMPLETE 2939 * @param event packet 2940 * @return status 2941 * @note: btstack_type 1 2942 */ 2943 static inline uint8_t sm_event_pairing_complete_get_status(const uint8_t * event){ 2944 return event[11]; 2945 } 2946 /** 2947 * @brief Get field reason from event SM_EVENT_PAIRING_COMPLETE 2948 * @param event packet 2949 * @return reason 2950 * @note: btstack_type 1 2951 */ 2952 static inline uint8_t sm_event_pairing_complete_get_reason(const uint8_t * event){ 2953 return event[12]; 2954 } 2955 #endif 2956 2957 /** 2958 * @brief Get field handle from event GAP_EVENT_SECURITY_LEVEL 2959 * @param event packet 2960 * @return handle 2961 * @note: btstack_type H 2962 */ 2963 static inline hci_con_handle_t gap_event_security_level_get_handle(const uint8_t * event){ 2964 return little_endian_read_16(event, 2); 2965 } 2966 /** 2967 * @brief Get field security_level from event GAP_EVENT_SECURITY_LEVEL 2968 * @param event packet 2969 * @return security_level 2970 * @note: btstack_type 1 2971 */ 2972 static inline uint8_t gap_event_security_level_get_security_level(const uint8_t * event){ 2973 return event[4]; 2974 } 2975 2976 /** 2977 * @brief Get field status from event GAP_EVENT_DEDICATED_BONDING_COMPLETED 2978 * @param event packet 2979 * @return status 2980 * @note: btstack_type 1 2981 */ 2982 static inline uint8_t gap_event_dedicated_bonding_completed_get_status(const uint8_t * event){ 2983 return event[2]; 2984 } 2985 /** 2986 * @brief Get field address from event GAP_EVENT_DEDICATED_BONDING_COMPLETED 2987 * @param event packet 2988 * @param Pointer to storage for address 2989 * @note: btstack_type B 2990 */ 2991 static inline void gap_event_dedicated_bonding_completed_get_address(const uint8_t * event, bd_addr_t address){ 2992 reverse_bd_addr(&event[3], address); 2993 } 2994 2995 /** 2996 * @brief Get field advertising_event_type from event GAP_EVENT_ADVERTISING_REPORT 2997 * @param event packet 2998 * @return advertising_event_type 2999 * @note: btstack_type 1 3000 */ 3001 static inline uint8_t gap_event_advertising_report_get_advertising_event_type(const uint8_t * event){ 3002 return event[2]; 3003 } 3004 /** 3005 * @brief Get field address_type from event GAP_EVENT_ADVERTISING_REPORT 3006 * @param event packet 3007 * @return address_type 3008 * @note: btstack_type 1 3009 */ 3010 static inline uint8_t gap_event_advertising_report_get_address_type(const uint8_t * event){ 3011 return event[3]; 3012 } 3013 /** 3014 * @brief Get field address from event GAP_EVENT_ADVERTISING_REPORT 3015 * @param event packet 3016 * @param Pointer to storage for address 3017 * @note: btstack_type B 3018 */ 3019 static inline void gap_event_advertising_report_get_address(const uint8_t * event, bd_addr_t address){ 3020 reverse_bd_addr(&event[4], address); 3021 } 3022 /** 3023 * @brief Get field rssi from event GAP_EVENT_ADVERTISING_REPORT 3024 * @param event packet 3025 * @return rssi 3026 * @note: btstack_type 1 3027 */ 3028 static inline uint8_t gap_event_advertising_report_get_rssi(const uint8_t * event){ 3029 return event[10]; 3030 } 3031 /** 3032 * @brief Get field data_length from event GAP_EVENT_ADVERTISING_REPORT 3033 * @param event packet 3034 * @return data_length 3035 * @note: btstack_type J 3036 */ 3037 static inline int gap_event_advertising_report_get_data_length(const uint8_t * event){ 3038 return event[11]; 3039 } 3040 /** 3041 * @brief Get field data from event GAP_EVENT_ADVERTISING_REPORT 3042 * @param event packet 3043 * @return data 3044 * @note: btstack_type V 3045 */ 3046 static inline const uint8_t * gap_event_advertising_report_get_data(const uint8_t * event){ 3047 return &event[12]; 3048 } 3049 3050 /** 3051 * @brief Get field bd_addr from event GAP_EVENT_INQUIRY_RESULT 3052 * @param event packet 3053 * @param Pointer to storage for bd_addr 3054 * @note: btstack_type B 3055 */ 3056 static inline void gap_event_inquiry_result_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 3057 reverse_bd_addr(&event[2], bd_addr); 3058 } 3059 /** 3060 * @brief Get field page_scan_repetition_mode from event GAP_EVENT_INQUIRY_RESULT 3061 * @param event packet 3062 * @return page_scan_repetition_mode 3063 * @note: btstack_type 1 3064 */ 3065 static inline uint8_t gap_event_inquiry_result_get_page_scan_repetition_mode(const uint8_t * event){ 3066 return event[8]; 3067 } 3068 /** 3069 * @brief Get field class_of_device from event GAP_EVENT_INQUIRY_RESULT 3070 * @param event packet 3071 * @return class_of_device 3072 * @note: btstack_type 3 3073 */ 3074 static inline uint32_t gap_event_inquiry_result_get_class_of_device(const uint8_t * event){ 3075 return little_endian_read_24(event, 9); 3076 } 3077 /** 3078 * @brief Get field clock_offset from event GAP_EVENT_INQUIRY_RESULT 3079 * @param event packet 3080 * @return clock_offset 3081 * @note: btstack_type 2 3082 */ 3083 static inline uint16_t gap_event_inquiry_result_get_clock_offset(const uint8_t * event){ 3084 return little_endian_read_16(event, 12); 3085 } 3086 /** 3087 * @brief Get field rssi_available from event GAP_EVENT_INQUIRY_RESULT 3088 * @param event packet 3089 * @return rssi_available 3090 * @note: btstack_type 1 3091 */ 3092 static inline uint8_t gap_event_inquiry_result_get_rssi_available(const uint8_t * event){ 3093 return event[14]; 3094 } 3095 /** 3096 * @brief Get field rssi from event GAP_EVENT_INQUIRY_RESULT 3097 * @param event packet 3098 * @return rssi 3099 * @note: btstack_type 1 3100 */ 3101 static inline uint8_t gap_event_inquiry_result_get_rssi(const uint8_t * event){ 3102 return event[15]; 3103 } 3104 /** 3105 * @brief Get field name_available from event GAP_EVENT_INQUIRY_RESULT 3106 * @param event packet 3107 * @return name_available 3108 * @note: btstack_type 1 3109 */ 3110 static inline uint8_t gap_event_inquiry_result_get_name_available(const uint8_t * event){ 3111 return event[16]; 3112 } 3113 /** 3114 * @brief Get field name_len from event GAP_EVENT_INQUIRY_RESULT 3115 * @param event packet 3116 * @return name_len 3117 * @note: btstack_type J 3118 */ 3119 static inline int gap_event_inquiry_result_get_name_len(const uint8_t * event){ 3120 return event[17]; 3121 } 3122 /** 3123 * @brief Get field name from event GAP_EVENT_INQUIRY_RESULT 3124 * @param event packet 3125 * @return name 3126 * @note: btstack_type V 3127 */ 3128 static inline const uint8_t * gap_event_inquiry_result_get_name(const uint8_t * event){ 3129 return &event[18]; 3130 } 3131 3132 /** 3133 * @brief Get field status from event GAP_EVENT_INQUIRY_COMPLETE 3134 * @param event packet 3135 * @return status 3136 * @note: btstack_type 1 3137 */ 3138 static inline uint8_t gap_event_inquiry_complete_get_status(const uint8_t * event){ 3139 return event[2]; 3140 } 3141 3142 /** 3143 * @brief Get field status from event HCI_SUBEVENT_LE_CONNECTION_COMPLETE 3144 * @param event packet 3145 * @return status 3146 * @note: btstack_type 1 3147 */ 3148 static inline uint8_t hci_subevent_le_connection_complete_get_status(const uint8_t * event){ 3149 return event[3]; 3150 } 3151 /** 3152 * @brief Get field connection_handle from event HCI_SUBEVENT_LE_CONNECTION_COMPLETE 3153 * @param event packet 3154 * @return connection_handle 3155 * @note: btstack_type H 3156 */ 3157 static inline hci_con_handle_t hci_subevent_le_connection_complete_get_connection_handle(const uint8_t * event){ 3158 return little_endian_read_16(event, 4); 3159 } 3160 /** 3161 * @brief Get field role from event HCI_SUBEVENT_LE_CONNECTION_COMPLETE 3162 * @param event packet 3163 * @return role 3164 * @note: btstack_type 1 3165 */ 3166 static inline uint8_t hci_subevent_le_connection_complete_get_role(const uint8_t * event){ 3167 return event[6]; 3168 } 3169 /** 3170 * @brief Get field peer_address_type from event HCI_SUBEVENT_LE_CONNECTION_COMPLETE 3171 * @param event packet 3172 * @return peer_address_type 3173 * @note: btstack_type 1 3174 */ 3175 static inline uint8_t hci_subevent_le_connection_complete_get_peer_address_type(const uint8_t * event){ 3176 return event[7]; 3177 } 3178 /** 3179 * @brief Get field peer_address from event HCI_SUBEVENT_LE_CONNECTION_COMPLETE 3180 * @param event packet 3181 * @param Pointer to storage for peer_address 3182 * @note: btstack_type B 3183 */ 3184 static inline void hci_subevent_le_connection_complete_get_peer_address(const uint8_t * event, bd_addr_t peer_address){ 3185 reverse_bd_addr(&event[8], peer_address); 3186 } 3187 /** 3188 * @brief Get field conn_interval from event HCI_SUBEVENT_LE_CONNECTION_COMPLETE 3189 * @param event packet 3190 * @return conn_interval 3191 * @note: btstack_type 2 3192 */ 3193 static inline uint16_t hci_subevent_le_connection_complete_get_conn_interval(const uint8_t * event){ 3194 return little_endian_read_16(event, 14); 3195 } 3196 /** 3197 * @brief Get field conn_latency from event HCI_SUBEVENT_LE_CONNECTION_COMPLETE 3198 * @param event packet 3199 * @return conn_latency 3200 * @note: btstack_type 2 3201 */ 3202 static inline uint16_t hci_subevent_le_connection_complete_get_conn_latency(const uint8_t * event){ 3203 return little_endian_read_16(event, 16); 3204 } 3205 /** 3206 * @brief Get field supervision_timeout from event HCI_SUBEVENT_LE_CONNECTION_COMPLETE 3207 * @param event packet 3208 * @return supervision_timeout 3209 * @note: btstack_type 2 3210 */ 3211 static inline uint16_t hci_subevent_le_connection_complete_get_supervision_timeout(const uint8_t * event){ 3212 return little_endian_read_16(event, 18); 3213 } 3214 /** 3215 * @brief Get field master_clock_accuracy from event HCI_SUBEVENT_LE_CONNECTION_COMPLETE 3216 * @param event packet 3217 * @return master_clock_accuracy 3218 * @note: btstack_type 1 3219 */ 3220 static inline uint8_t hci_subevent_le_connection_complete_get_master_clock_accuracy(const uint8_t * event){ 3221 return event[20]; 3222 } 3223 3224 /** 3225 * @brief Get field status from event HCI_SUBEVENT_LE_CONNECTION_UPDATE_COMPLETE 3226 * @param event packet 3227 * @return status 3228 * @note: btstack_type 1 3229 */ 3230 static inline uint8_t hci_subevent_le_connection_update_complete_get_status(const uint8_t * event){ 3231 return event[3]; 3232 } 3233 /** 3234 * @brief Get field connection_handle from event HCI_SUBEVENT_LE_CONNECTION_UPDATE_COMPLETE 3235 * @param event packet 3236 * @return connection_handle 3237 * @note: btstack_type H 3238 */ 3239 static inline hci_con_handle_t hci_subevent_le_connection_update_complete_get_connection_handle(const uint8_t * event){ 3240 return little_endian_read_16(event, 4); 3241 } 3242 /** 3243 * @brief Get field conn_interval from event HCI_SUBEVENT_LE_CONNECTION_UPDATE_COMPLETE 3244 * @param event packet 3245 * @return conn_interval 3246 * @note: btstack_type 2 3247 */ 3248 static inline uint16_t hci_subevent_le_connection_update_complete_get_conn_interval(const uint8_t * event){ 3249 return little_endian_read_16(event, 6); 3250 } 3251 /** 3252 * @brief Get field conn_latency from event HCI_SUBEVENT_LE_CONNECTION_UPDATE_COMPLETE 3253 * @param event packet 3254 * @return conn_latency 3255 * @note: btstack_type 2 3256 */ 3257 static inline uint16_t hci_subevent_le_connection_update_complete_get_conn_latency(const uint8_t * event){ 3258 return little_endian_read_16(event, 8); 3259 } 3260 /** 3261 * @brief Get field supervision_timeout from event HCI_SUBEVENT_LE_CONNECTION_UPDATE_COMPLETE 3262 * @param event packet 3263 * @return supervision_timeout 3264 * @note: btstack_type 2 3265 */ 3266 static inline uint16_t hci_subevent_le_connection_update_complete_get_supervision_timeout(const uint8_t * event){ 3267 return little_endian_read_16(event, 10); 3268 } 3269 3270 /** 3271 * @brief Get field connection_handle from event HCI_SUBEVENT_LE_READ_REMOTE_USED_FEATURES_COMPLETE 3272 * @param event packet 3273 * @return connection_handle 3274 * @note: btstack_type H 3275 */ 3276 static inline hci_con_handle_t hci_subevent_le_read_remote_used_features_complete_get_connection_handle(const uint8_t * event){ 3277 return little_endian_read_16(event, 3); 3278 } 3279 /** 3280 * @brief Get field random_number from event HCI_SUBEVENT_LE_READ_REMOTE_USED_FEATURES_COMPLETE 3281 * @param event packet 3282 * @return random_number 3283 * @note: btstack_type D 3284 */ 3285 static inline const uint8_t * hci_subevent_le_read_remote_used_features_complete_get_random_number(const uint8_t * event){ 3286 return (const uint8_t *) &event[5]; 3287 } 3288 /** 3289 * @brief Get field encryption_diversifier from event HCI_SUBEVENT_LE_READ_REMOTE_USED_FEATURES_COMPLETE 3290 * @param event packet 3291 * @return encryption_diversifier 3292 * @note: btstack_type 2 3293 */ 3294 static inline uint16_t hci_subevent_le_read_remote_used_features_complete_get_encryption_diversifier(const uint8_t * event){ 3295 return little_endian_read_16(event, 13); 3296 } 3297 3298 /** 3299 * @brief Get field connection_handle from event HCI_SUBEVENT_LE_LONG_TERM_KEY_REQUEST 3300 * @param event packet 3301 * @return connection_handle 3302 * @note: btstack_type H 3303 */ 3304 static inline hci_con_handle_t hci_subevent_le_long_term_key_request_get_connection_handle(const uint8_t * event){ 3305 return little_endian_read_16(event, 3); 3306 } 3307 /** 3308 * @brief Get field random_number from event HCI_SUBEVENT_LE_LONG_TERM_KEY_REQUEST 3309 * @param event packet 3310 * @return random_number 3311 * @note: btstack_type D 3312 */ 3313 static inline const uint8_t * hci_subevent_le_long_term_key_request_get_random_number(const uint8_t * event){ 3314 return (const uint8_t *) &event[5]; 3315 } 3316 /** 3317 * @brief Get field encryption_diversifier from event HCI_SUBEVENT_LE_LONG_TERM_KEY_REQUEST 3318 * @param event packet 3319 * @return encryption_diversifier 3320 * @note: btstack_type 2 3321 */ 3322 static inline uint16_t hci_subevent_le_long_term_key_request_get_encryption_diversifier(const uint8_t * event){ 3323 return little_endian_read_16(event, 13); 3324 } 3325 3326 /** 3327 * @brief Get field connection_handle from event HCI_SUBEVENT_LE_REMOTE_CONNECTION_PARAMETER_REQUEST 3328 * @param event packet 3329 * @return connection_handle 3330 * @note: btstack_type H 3331 */ 3332 static inline hci_con_handle_t hci_subevent_le_remote_connection_parameter_request_get_connection_handle(const uint8_t * event){ 3333 return little_endian_read_16(event, 3); 3334 } 3335 /** 3336 * @brief Get field interval_min from event HCI_SUBEVENT_LE_REMOTE_CONNECTION_PARAMETER_REQUEST 3337 * @param event packet 3338 * @return interval_min 3339 * @note: btstack_type 2 3340 */ 3341 static inline uint16_t hci_subevent_le_remote_connection_parameter_request_get_interval_min(const uint8_t * event){ 3342 return little_endian_read_16(event, 5); 3343 } 3344 /** 3345 * @brief Get field interval_max from event HCI_SUBEVENT_LE_REMOTE_CONNECTION_PARAMETER_REQUEST 3346 * @param event packet 3347 * @return interval_max 3348 * @note: btstack_type 2 3349 */ 3350 static inline uint16_t hci_subevent_le_remote_connection_parameter_request_get_interval_max(const uint8_t * event){ 3351 return little_endian_read_16(event, 7); 3352 } 3353 /** 3354 * @brief Get field latency from event HCI_SUBEVENT_LE_REMOTE_CONNECTION_PARAMETER_REQUEST 3355 * @param event packet 3356 * @return latency 3357 * @note: btstack_type 2 3358 */ 3359 static inline uint16_t hci_subevent_le_remote_connection_parameter_request_get_latency(const uint8_t * event){ 3360 return little_endian_read_16(event, 9); 3361 } 3362 /** 3363 * @brief Get field timeout from event HCI_SUBEVENT_LE_REMOTE_CONNECTION_PARAMETER_REQUEST 3364 * @param event packet 3365 * @return timeout 3366 * @note: btstack_type 2 3367 */ 3368 static inline uint16_t hci_subevent_le_remote_connection_parameter_request_get_timeout(const uint8_t * event){ 3369 return little_endian_read_16(event, 11); 3370 } 3371 3372 /** 3373 * @brief Get field connection_handle from event HCI_SUBEVENT_LE_DATA_LENGTH_CHANGE 3374 * @param event packet 3375 * @return connection_handle 3376 * @note: btstack_type H 3377 */ 3378 static inline hci_con_handle_t hci_subevent_le_data_length_change_get_connection_handle(const uint8_t * event){ 3379 return little_endian_read_16(event, 3); 3380 } 3381 /** 3382 * @brief Get field max_tx_octets from event HCI_SUBEVENT_LE_DATA_LENGTH_CHANGE 3383 * @param event packet 3384 * @return max_tx_octets 3385 * @note: btstack_type 2 3386 */ 3387 static inline uint16_t hci_subevent_le_data_length_change_get_max_tx_octets(const uint8_t * event){ 3388 return little_endian_read_16(event, 5); 3389 } 3390 /** 3391 * @brief Get field max_tx_time from event HCI_SUBEVENT_LE_DATA_LENGTH_CHANGE 3392 * @param event packet 3393 * @return max_tx_time 3394 * @note: btstack_type 2 3395 */ 3396 static inline uint16_t hci_subevent_le_data_length_change_get_max_tx_time(const uint8_t * event){ 3397 return little_endian_read_16(event, 7); 3398 } 3399 /** 3400 * @brief Get field max_rx_octets from event HCI_SUBEVENT_LE_DATA_LENGTH_CHANGE 3401 * @param event packet 3402 * @return max_rx_octets 3403 * @note: btstack_type 2 3404 */ 3405 static inline uint16_t hci_subevent_le_data_length_change_get_max_rx_octets(const uint8_t * event){ 3406 return little_endian_read_16(event, 9); 3407 } 3408 /** 3409 * @brief Get field max_rx_time from event HCI_SUBEVENT_LE_DATA_LENGTH_CHANGE 3410 * @param event packet 3411 * @return max_rx_time 3412 * @note: btstack_type 2 3413 */ 3414 static inline uint16_t hci_subevent_le_data_length_change_get_max_rx_time(const uint8_t * event){ 3415 return little_endian_read_16(event, 11); 3416 } 3417 3418 /** 3419 * @brief Get field status from event HCI_SUBEVENT_LE_READ_LOCAL_P256_PUBLIC_KEY_COMPLETE 3420 * @param event packet 3421 * @return status 3422 * @note: btstack_type 1 3423 */ 3424 static inline uint8_t hci_subevent_le_read_local_p256_public_key_complete_get_status(const uint8_t * event){ 3425 return event[3]; 3426 } 3427 /** 3428 * @brief Get field dhkey_x from event HCI_SUBEVENT_LE_READ_LOCAL_P256_PUBLIC_KEY_COMPLETE 3429 * @param event packet 3430 * @param Pointer to storage for dhkey_x 3431 * @note: btstack_type Q 3432 */ 3433 static inline void hci_subevent_le_read_local_p256_public_key_complete_get_dhkey_x(const uint8_t * event, uint8_t * dhkey_x){ 3434 reverse_bytes(&event[4], dhkey_x, 32); 3435 } 3436 /** 3437 * @brief Get field dhkey_y from event HCI_SUBEVENT_LE_READ_LOCAL_P256_PUBLIC_KEY_COMPLETE 3438 * @param event packet 3439 * @param Pointer to storage for dhkey_y 3440 * @note: btstack_type Q 3441 */ 3442 static inline void hci_subevent_le_read_local_p256_public_key_complete_get_dhkey_y(const uint8_t * event, uint8_t * dhkey_y){ 3443 reverse_bytes(&event[36], dhkey_y, 32); 3444 } 3445 3446 /** 3447 * @brief Get field status from event HCI_SUBEVENT_LE_GENERATE_DHKEY_COMPLETE 3448 * @param event packet 3449 * @return status 3450 * @note: btstack_type 1 3451 */ 3452 static inline uint8_t hci_subevent_le_generate_dhkey_complete_get_status(const uint8_t * event){ 3453 return event[3]; 3454 } 3455 /** 3456 * @brief Get field dhkey from event HCI_SUBEVENT_LE_GENERATE_DHKEY_COMPLETE 3457 * @param event packet 3458 * @param Pointer to storage for dhkey 3459 * @note: btstack_type Q 3460 */ 3461 static inline void hci_subevent_le_generate_dhkey_complete_get_dhkey(const uint8_t * event, uint8_t * dhkey){ 3462 reverse_bytes(&event[4], dhkey, 32); 3463 } 3464 3465 /** 3466 * @brief Get field status from event HCI_SUBEVENT_LE_ENHANCED_CONNECTION_COMPLETE 3467 * @param event packet 3468 * @return status 3469 * @note: btstack_type 1 3470 */ 3471 static inline uint8_t hci_subevent_le_enhanced_connection_complete_get_status(const uint8_t * event){ 3472 return event[3]; 3473 } 3474 /** 3475 * @brief Get field connection_handle from event HCI_SUBEVENT_LE_ENHANCED_CONNECTION_COMPLETE 3476 * @param event packet 3477 * @return connection_handle 3478 * @note: btstack_type H 3479 */ 3480 static inline hci_con_handle_t hci_subevent_le_enhanced_connection_complete_get_connection_handle(const uint8_t * event){ 3481 return little_endian_read_16(event, 4); 3482 } 3483 /** 3484 * @brief Get field role from event HCI_SUBEVENT_LE_ENHANCED_CONNECTION_COMPLETE 3485 * @param event packet 3486 * @return role 3487 * @note: btstack_type 1 3488 */ 3489 static inline uint8_t hci_subevent_le_enhanced_connection_complete_get_role(const uint8_t * event){ 3490 return event[6]; 3491 } 3492 /** 3493 * @brief Get field peer_address_type from event HCI_SUBEVENT_LE_ENHANCED_CONNECTION_COMPLETE 3494 * @param event packet 3495 * @return peer_address_type 3496 * @note: btstack_type 1 3497 */ 3498 static inline uint8_t hci_subevent_le_enhanced_connection_complete_get_peer_address_type(const uint8_t * event){ 3499 return event[7]; 3500 } 3501 /** 3502 * @brief Get field perr_addresss from event HCI_SUBEVENT_LE_ENHANCED_CONNECTION_COMPLETE 3503 * @param event packet 3504 * @param Pointer to storage for perr_addresss 3505 * @note: btstack_type B 3506 */ 3507 static inline void hci_subevent_le_enhanced_connection_complete_get_perr_addresss(const uint8_t * event, bd_addr_t perr_addresss){ 3508 reverse_bd_addr(&event[8], perr_addresss); 3509 } 3510 /** 3511 * @brief Get field local_resolvable_private_addres from event HCI_SUBEVENT_LE_ENHANCED_CONNECTION_COMPLETE 3512 * @param event packet 3513 * @param Pointer to storage for local_resolvable_private_addres 3514 * @note: btstack_type B 3515 */ 3516 static inline void hci_subevent_le_enhanced_connection_complete_get_local_resolvable_private_addres(const uint8_t * event, bd_addr_t local_resolvable_private_addres){ 3517 reverse_bd_addr(&event[14], local_resolvable_private_addres); 3518 } 3519 /** 3520 * @brief Get field peer_resolvable_private_addres from event HCI_SUBEVENT_LE_ENHANCED_CONNECTION_COMPLETE 3521 * @param event packet 3522 * @param Pointer to storage for peer_resolvable_private_addres 3523 * @note: btstack_type B 3524 */ 3525 static inline void hci_subevent_le_enhanced_connection_complete_get_peer_resolvable_private_addres(const uint8_t * event, bd_addr_t peer_resolvable_private_addres){ 3526 reverse_bd_addr(&event[20], peer_resolvable_private_addres); 3527 } 3528 /** 3529 * @brief Get field conn_interval from event HCI_SUBEVENT_LE_ENHANCED_CONNECTION_COMPLETE 3530 * @param event packet 3531 * @return conn_interval 3532 * @note: btstack_type 2 3533 */ 3534 static inline uint16_t hci_subevent_le_enhanced_connection_complete_get_conn_interval(const uint8_t * event){ 3535 return little_endian_read_16(event, 26); 3536 } 3537 /** 3538 * @brief Get field conn_latency from event HCI_SUBEVENT_LE_ENHANCED_CONNECTION_COMPLETE 3539 * @param event packet 3540 * @return conn_latency 3541 * @note: btstack_type 2 3542 */ 3543 static inline uint16_t hci_subevent_le_enhanced_connection_complete_get_conn_latency(const uint8_t * event){ 3544 return little_endian_read_16(event, 28); 3545 } 3546 /** 3547 * @brief Get field supervision_timeout from event HCI_SUBEVENT_LE_ENHANCED_CONNECTION_COMPLETE 3548 * @param event packet 3549 * @return supervision_timeout 3550 * @note: btstack_type 2 3551 */ 3552 static inline uint16_t hci_subevent_le_enhanced_connection_complete_get_supervision_timeout(const uint8_t * event){ 3553 return little_endian_read_16(event, 30); 3554 } 3555 /** 3556 * @brief Get field master_clock_accuracy from event HCI_SUBEVENT_LE_ENHANCED_CONNECTION_COMPLETE 3557 * @param event packet 3558 * @return master_clock_accuracy 3559 * @note: btstack_type 1 3560 */ 3561 static inline uint8_t hci_subevent_le_enhanced_connection_complete_get_master_clock_accuracy(const uint8_t * event){ 3562 return event[32]; 3563 } 3564 3565 /** 3566 * @brief Get field status from event HSP_SUBEVENT_RFCOMM_CONNECTION_COMPLETE 3567 * @param event packet 3568 * @return status 3569 * @note: btstack_type 1 3570 */ 3571 static inline uint8_t hsp_subevent_rfcomm_connection_complete_get_status(const uint8_t * event){ 3572 return event[3]; 3573 } 3574 3575 /** 3576 * @brief Get field status from event HSP_SUBEVENT_RFCOMM_DISCONNECTION_COMPLETE 3577 * @param event packet 3578 * @return status 3579 * @note: btstack_type 1 3580 */ 3581 static inline uint8_t hsp_subevent_rfcomm_disconnection_complete_get_status(const uint8_t * event){ 3582 return event[3]; 3583 } 3584 3585 /** 3586 * @brief Get field status from event HSP_SUBEVENT_AUDIO_CONNECTION_COMPLETE 3587 * @param event packet 3588 * @return status 3589 * @note: btstack_type 1 3590 */ 3591 static inline uint8_t hsp_subevent_audio_connection_complete_get_status(const uint8_t * event){ 3592 return event[3]; 3593 } 3594 /** 3595 * @brief Get field handle from event HSP_SUBEVENT_AUDIO_CONNECTION_COMPLETE 3596 * @param event packet 3597 * @return handle 3598 * @note: btstack_type H 3599 */ 3600 static inline hci_con_handle_t hsp_subevent_audio_connection_complete_get_handle(const uint8_t * event){ 3601 return little_endian_read_16(event, 4); 3602 } 3603 3604 /** 3605 * @brief Get field status from event HSP_SUBEVENT_AUDIO_DISCONNECTION_COMPLETE 3606 * @param event packet 3607 * @return status 3608 * @note: btstack_type 1 3609 */ 3610 static inline uint8_t hsp_subevent_audio_disconnection_complete_get_status(const uint8_t * event){ 3611 return event[3]; 3612 } 3613 3614 3615 /** 3616 * @brief Get field gain from event HSP_SUBEVENT_MICROPHONE_GAIN_CHANGED 3617 * @param event packet 3618 * @return gain 3619 * @note: btstack_type 1 3620 */ 3621 static inline uint8_t hsp_subevent_microphone_gain_changed_get_gain(const uint8_t * event){ 3622 return event[3]; 3623 } 3624 3625 /** 3626 * @brief Get field gain from event HSP_SUBEVENT_SPEAKER_GAIN_CHANGED 3627 * @param event packet 3628 * @return gain 3629 * @note: btstack_type 1 3630 */ 3631 static inline uint8_t hsp_subevent_speaker_gain_changed_get_gain(const uint8_t * event){ 3632 return event[3]; 3633 } 3634 3635 /** 3636 * @brief Get field value_length from event HSP_SUBEVENT_HS_COMMAND 3637 * @param event packet 3638 * @return value_length 3639 * @note: btstack_type J 3640 */ 3641 static inline int hsp_subevent_hs_command_get_value_length(const uint8_t * event){ 3642 return event[3]; 3643 } 3644 /** 3645 * @brief Get field value from event HSP_SUBEVENT_HS_COMMAND 3646 * @param event packet 3647 * @return value 3648 * @note: btstack_type V 3649 */ 3650 static inline const uint8_t * hsp_subevent_hs_command_get_value(const uint8_t * event){ 3651 return &event[4]; 3652 } 3653 3654 /** 3655 * @brief Get field value_length from event HSP_SUBEVENT_AG_INDICATION 3656 * @param event packet 3657 * @return value_length 3658 * @note: btstack_type J 3659 */ 3660 static inline int hsp_subevent_ag_indication_get_value_length(const uint8_t * event){ 3661 return event[3]; 3662 } 3663 /** 3664 * @brief Get field value from event HSP_SUBEVENT_AG_INDICATION 3665 * @param event packet 3666 * @return value 3667 * @note: btstack_type V 3668 */ 3669 static inline const uint8_t * hsp_subevent_ag_indication_get_value(const uint8_t * event){ 3670 return &event[4]; 3671 } 3672 3673 /** 3674 * @brief Get field status from event HFP_SUBEVENT_SERVICE_LEVEL_CONNECTION_ESTABLISHED 3675 * @param event packet 3676 * @return status 3677 * @note: btstack_type 1 3678 */ 3679 static inline uint8_t hfp_subevent_service_level_connection_established_get_status(const uint8_t * event){ 3680 return event[3]; 3681 } 3682 /** 3683 * @brief Get field con_handle from event HFP_SUBEVENT_SERVICE_LEVEL_CONNECTION_ESTABLISHED 3684 * @param event packet 3685 * @return con_handle 3686 * @note: btstack_type H 3687 */ 3688 static inline hci_con_handle_t hfp_subevent_service_level_connection_established_get_con_handle(const uint8_t * event){ 3689 return little_endian_read_16(event, 4); 3690 } 3691 /** 3692 * @brief Get field bd_addr from event HFP_SUBEVENT_SERVICE_LEVEL_CONNECTION_ESTABLISHED 3693 * @param event packet 3694 * @param Pointer to storage for bd_addr 3695 * @note: btstack_type B 3696 */ 3697 static inline void hfp_subevent_service_level_connection_established_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 3698 reverse_bd_addr(&event[6], bd_addr); 3699 } 3700 3701 3702 /** 3703 * @brief Get field status from event HFP_SUBEVENT_AUDIO_CONNECTION_ESTABLISHED 3704 * @param event packet 3705 * @return status 3706 * @note: btstack_type 1 3707 */ 3708 static inline uint8_t hfp_subevent_audio_connection_established_get_status(const uint8_t * event){ 3709 return event[3]; 3710 } 3711 /** 3712 * @brief Get field handle from event HFP_SUBEVENT_AUDIO_CONNECTION_ESTABLISHED 3713 * @param event packet 3714 * @return handle 3715 * @note: btstack_type H 3716 */ 3717 static inline hci_con_handle_t hfp_subevent_audio_connection_established_get_handle(const uint8_t * event){ 3718 return little_endian_read_16(event, 4); 3719 } 3720 /** 3721 * @brief Get field bd_addr from event HFP_SUBEVENT_AUDIO_CONNECTION_ESTABLISHED 3722 * @param event packet 3723 * @param Pointer to storage for bd_addr 3724 * @note: btstack_type B 3725 */ 3726 static inline void hfp_subevent_audio_connection_established_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 3727 reverse_bd_addr(&event[6], bd_addr); 3728 } 3729 /** 3730 * @brief Get field negotiated_codec from event HFP_SUBEVENT_AUDIO_CONNECTION_ESTABLISHED 3731 * @param event packet 3732 * @return negotiated_codec 3733 * @note: btstack_type 1 3734 */ 3735 static inline uint8_t hfp_subevent_audio_connection_established_get_negotiated_codec(const uint8_t * event){ 3736 return event[12]; 3737 } 3738 3739 3740 /** 3741 * @brief Get field status from event HFP_SUBEVENT_COMPLETE 3742 * @param event packet 3743 * @return status 3744 * @note: btstack_type 1 3745 */ 3746 static inline uint8_t hfp_subevent_complete_get_status(const uint8_t * event){ 3747 return event[3]; 3748 } 3749 3750 /** 3751 * @brief Get field indicator_index from event HFP_SUBEVENT_AG_INDICATOR_STATUS_CHANGED 3752 * @param event packet 3753 * @return indicator_index 3754 * @note: btstack_type 1 3755 */ 3756 static inline uint8_t hfp_subevent_ag_indicator_status_changed_get_indicator_index(const uint8_t * event){ 3757 return event[3]; 3758 } 3759 /** 3760 * @brief Get field indicator_status from event HFP_SUBEVENT_AG_INDICATOR_STATUS_CHANGED 3761 * @param event packet 3762 * @return indicator_status 3763 * @note: btstack_type 1 3764 */ 3765 static inline uint8_t hfp_subevent_ag_indicator_status_changed_get_indicator_status(const uint8_t * event){ 3766 return event[4]; 3767 } 3768 /** 3769 * @brief Get field indicator_min_range from event HFP_SUBEVENT_AG_INDICATOR_STATUS_CHANGED 3770 * @param event packet 3771 * @return indicator_min_range 3772 * @note: btstack_type 1 3773 */ 3774 static inline uint8_t hfp_subevent_ag_indicator_status_changed_get_indicator_min_range(const uint8_t * event){ 3775 return event[5]; 3776 } 3777 /** 3778 * @brief Get field indicator_max_range from event HFP_SUBEVENT_AG_INDICATOR_STATUS_CHANGED 3779 * @param event packet 3780 * @return indicator_max_range 3781 * @note: btstack_type 1 3782 */ 3783 static inline uint8_t hfp_subevent_ag_indicator_status_changed_get_indicator_max_range(const uint8_t * event){ 3784 return event[6]; 3785 } 3786 /** 3787 * @brief Get field indicator_mandatory from event HFP_SUBEVENT_AG_INDICATOR_STATUS_CHANGED 3788 * @param event packet 3789 * @return indicator_mandatory 3790 * @note: btstack_type 1 3791 */ 3792 static inline uint8_t hfp_subevent_ag_indicator_status_changed_get_indicator_mandatory(const uint8_t * event){ 3793 return event[7]; 3794 } 3795 /** 3796 * @brief Get field indicator_enabled from event HFP_SUBEVENT_AG_INDICATOR_STATUS_CHANGED 3797 * @param event packet 3798 * @return indicator_enabled 3799 * @note: btstack_type 1 3800 */ 3801 static inline uint8_t hfp_subevent_ag_indicator_status_changed_get_indicator_enabled(const uint8_t * event){ 3802 return event[8]; 3803 } 3804 /** 3805 * @brief Get field indicator_status_changed from event HFP_SUBEVENT_AG_INDICATOR_STATUS_CHANGED 3806 * @param event packet 3807 * @return indicator_status_changed 3808 * @note: btstack_type 1 3809 */ 3810 static inline uint8_t hfp_subevent_ag_indicator_status_changed_get_indicator_status_changed(const uint8_t * event){ 3811 return event[9]; 3812 } 3813 /** 3814 * @brief Get field indicator_name from event HFP_SUBEVENT_AG_INDICATOR_STATUS_CHANGED 3815 * @param event packet 3816 * @return indicator_name 3817 * @note: btstack_type T 3818 */ 3819 static inline const char * hfp_subevent_ag_indicator_status_changed_get_indicator_name(const uint8_t * event){ 3820 return (const char *) &event[10]; 3821 } 3822 3823 /** 3824 * @brief Get field network_operator_mode from event HFP_SUBEVENT_NETWORK_OPERATOR_CHANGED 3825 * @param event packet 3826 * @return network_operator_mode 3827 * @note: btstack_type 1 3828 */ 3829 static inline uint8_t hfp_subevent_network_operator_changed_get_network_operator_mode(const uint8_t * event){ 3830 return event[3]; 3831 } 3832 /** 3833 * @brief Get field network_operator_format from event HFP_SUBEVENT_NETWORK_OPERATOR_CHANGED 3834 * @param event packet 3835 * @return network_operator_format 3836 * @note: btstack_type 1 3837 */ 3838 static inline uint8_t hfp_subevent_network_operator_changed_get_network_operator_format(const uint8_t * event){ 3839 return event[4]; 3840 } 3841 /** 3842 * @brief Get field network_operator_name from event HFP_SUBEVENT_NETWORK_OPERATOR_CHANGED 3843 * @param event packet 3844 * @return network_operator_name 3845 * @note: btstack_type T 3846 */ 3847 static inline const char * hfp_subevent_network_operator_changed_get_network_operator_name(const uint8_t * event){ 3848 return (const char *) &event[5]; 3849 } 3850 3851 /** 3852 * @brief Get field error from event HFP_SUBEVENT_EXTENDED_AUDIO_GATEWAY_ERROR 3853 * @param event packet 3854 * @return error 3855 * @note: btstack_type 1 3856 */ 3857 static inline uint8_t hfp_subevent_extended_audio_gateway_error_get_error(const uint8_t * event){ 3858 return event[3]; 3859 } 3860 3861 3862 3863 3864 /** 3865 * @brief Get field number from event HFP_SUBEVENT_PLACE_CALL_WITH_NUMBER 3866 * @param event packet 3867 * @return number 3868 * @note: btstack_type T 3869 */ 3870 static inline const char * hfp_subevent_place_call_with_number_get_number(const uint8_t * event){ 3871 return (const char *) &event[3]; 3872 } 3873 3874 3875 /** 3876 * @brief Get field number from event HFP_SUBEVENT_NUMBER_FOR_VOICE_TAG 3877 * @param event packet 3878 * @return number 3879 * @note: btstack_type T 3880 */ 3881 static inline const char * hfp_subevent_number_for_voice_tag_get_number(const uint8_t * event){ 3882 return (const char *) &event[3]; 3883 } 3884 3885 /** 3886 * @brief Get field dtmf from event HFP_SUBEVENT_TRANSMIT_DTMF_CODES 3887 * @param event packet 3888 * @return dtmf 3889 * @note: btstack_type T 3890 */ 3891 static inline const char * hfp_subevent_transmit_dtmf_codes_get_dtmf(const uint8_t * event){ 3892 return (const char *) &event[3]; 3893 } 3894 3895 3896 3897 3898 /** 3899 * @brief Get field status from event HFP_SUBEVENT_SPEAKER_VOLUME 3900 * @param event packet 3901 * @return status 3902 * @note: btstack_type 1 3903 */ 3904 static inline uint8_t hfp_subevent_speaker_volume_get_status(const uint8_t * event){ 3905 return event[3]; 3906 } 3907 /** 3908 * @brief Get field gain from event HFP_SUBEVENT_SPEAKER_VOLUME 3909 * @param event packet 3910 * @return gain 3911 * @note: btstack_type 1 3912 */ 3913 static inline uint8_t hfp_subevent_speaker_volume_get_gain(const uint8_t * event){ 3914 return event[4]; 3915 } 3916 3917 /** 3918 * @brief Get field status from event HFP_SUBEVENT_MICROPHONE_VOLUME 3919 * @param event packet 3920 * @return status 3921 * @note: btstack_type 1 3922 */ 3923 static inline uint8_t hfp_subevent_microphone_volume_get_status(const uint8_t * event){ 3924 return event[3]; 3925 } 3926 /** 3927 * @brief Get field gain from event HFP_SUBEVENT_MICROPHONE_VOLUME 3928 * @param event packet 3929 * @return gain 3930 * @note: btstack_type 1 3931 */ 3932 static inline uint8_t hfp_subevent_microphone_volume_get_gain(const uint8_t * event){ 3933 return event[4]; 3934 } 3935 3936 /** 3937 * @brief Get field type from event HFP_SUBEVENT_CALL_WAITING_NOTIFICATION 3938 * @param event packet 3939 * @return type 3940 * @note: btstack_type 1 3941 */ 3942 static inline uint8_t hfp_subevent_call_waiting_notification_get_type(const uint8_t * event){ 3943 return event[3]; 3944 } 3945 /** 3946 * @brief Get field number from event HFP_SUBEVENT_CALL_WAITING_NOTIFICATION 3947 * @param event packet 3948 * @return number 3949 * @note: btstack_type T 3950 */ 3951 static inline const char * hfp_subevent_call_waiting_notification_get_number(const uint8_t * event){ 3952 return (const char *) &event[4]; 3953 } 3954 3955 /** 3956 * @brief Get field type from event HFP_SUBEVENT_CALLING_LINE_IDENTIFICATION_NOTIFICATION 3957 * @param event packet 3958 * @return type 3959 * @note: btstack_type 1 3960 */ 3961 static inline uint8_t hfp_subevent_calling_line_identification_notification_get_type(const uint8_t * event){ 3962 return event[3]; 3963 } 3964 /** 3965 * @brief Get field number from event HFP_SUBEVENT_CALLING_LINE_IDENTIFICATION_NOTIFICATION 3966 * @param event packet 3967 * @return number 3968 * @note: btstack_type T 3969 */ 3970 static inline const char * hfp_subevent_calling_line_identification_notification_get_number(const uint8_t * event){ 3971 return (const char *) &event[4]; 3972 } 3973 3974 /** 3975 * @brief Get field clcc_idx from event HFP_SUBEVENT_ENHANCED_CALL_STATUS 3976 * @param event packet 3977 * @return clcc_idx 3978 * @note: btstack_type 1 3979 */ 3980 static inline uint8_t hfp_subevent_enhanced_call_status_get_clcc_idx(const uint8_t * event){ 3981 return event[3]; 3982 } 3983 /** 3984 * @brief Get field clcc_dir from event HFP_SUBEVENT_ENHANCED_CALL_STATUS 3985 * @param event packet 3986 * @return clcc_dir 3987 * @note: btstack_type 1 3988 */ 3989 static inline uint8_t hfp_subevent_enhanced_call_status_get_clcc_dir(const uint8_t * event){ 3990 return event[4]; 3991 } 3992 /** 3993 * @brief Get field clcc_status from event HFP_SUBEVENT_ENHANCED_CALL_STATUS 3994 * @param event packet 3995 * @return clcc_status 3996 * @note: btstack_type 1 3997 */ 3998 static inline uint8_t hfp_subevent_enhanced_call_status_get_clcc_status(const uint8_t * event){ 3999 return event[5]; 4000 } 4001 /** 4002 * @brief Get field clcc_mpty from event HFP_SUBEVENT_ENHANCED_CALL_STATUS 4003 * @param event packet 4004 * @return clcc_mpty 4005 * @note: btstack_type 1 4006 */ 4007 static inline uint8_t hfp_subevent_enhanced_call_status_get_clcc_mpty(const uint8_t * event){ 4008 return event[6]; 4009 } 4010 /** 4011 * @brief Get field bnip_type from event HFP_SUBEVENT_ENHANCED_CALL_STATUS 4012 * @param event packet 4013 * @return bnip_type 4014 * @note: btstack_type 1 4015 */ 4016 static inline uint8_t hfp_subevent_enhanced_call_status_get_bnip_type(const uint8_t * event){ 4017 return event[7]; 4018 } 4019 /** 4020 * @brief Get field bnip_number from event HFP_SUBEVENT_ENHANCED_CALL_STATUS 4021 * @param event packet 4022 * @return bnip_number 4023 * @note: btstack_type T 4024 */ 4025 static inline const char * hfp_subevent_enhanced_call_status_get_bnip_number(const uint8_t * event){ 4026 return (const char *) &event[8]; 4027 } 4028 4029 /** 4030 * @brief Get field status from event HFP_SUBEVENT_SUBSCRIBER_NUMBER_INFORMATION 4031 * @param event packet 4032 * @return status 4033 * @note: btstack_type 1 4034 */ 4035 static inline uint8_t hfp_subevent_subscriber_number_information_get_status(const uint8_t * event){ 4036 return event[3]; 4037 } 4038 /** 4039 * @brief Get field bnip_type from event HFP_SUBEVENT_SUBSCRIBER_NUMBER_INFORMATION 4040 * @param event packet 4041 * @return bnip_type 4042 * @note: btstack_type 1 4043 */ 4044 static inline uint8_t hfp_subevent_subscriber_number_information_get_bnip_type(const uint8_t * event){ 4045 return event[4]; 4046 } 4047 /** 4048 * @brief Get field bnip_number from event HFP_SUBEVENT_SUBSCRIBER_NUMBER_INFORMATION 4049 * @param event packet 4050 * @return bnip_number 4051 * @note: btstack_type T 4052 */ 4053 static inline const char * hfp_subevent_subscriber_number_information_get_bnip_number(const uint8_t * event){ 4054 return (const char *) &event[5]; 4055 } 4056 4057 /** 4058 * @brief Get field value from event HFP_SUBEVENT_RESPONSE_AND_HOLD_STATUS 4059 * @param event packet 4060 * @return value 4061 * @note: btstack_type T 4062 */ 4063 static inline const char * hfp_subevent_response_and_hold_status_get_value(const uint8_t * event){ 4064 return (const char *) &event[3]; 4065 } 4066 4067 #ifdef ENABLE_BLE 4068 /** 4069 * @brief Get field handle from event ANCS_SUBEVENT_CLIENT_CONNECTED 4070 * @param event packet 4071 * @return handle 4072 * @note: btstack_type H 4073 */ 4074 static inline hci_con_handle_t ancs_subevent_client_connected_get_handle(const uint8_t * event){ 4075 return little_endian_read_16(event, 3); 4076 } 4077 #endif 4078 4079 #ifdef ENABLE_BLE 4080 /** 4081 * @brief Get field handle from event ANCS_SUBEVENT_CLIENT_NOTIFICATION 4082 * @param event packet 4083 * @return handle 4084 * @note: btstack_type H 4085 */ 4086 static inline hci_con_handle_t ancs_subevent_client_notification_get_handle(const uint8_t * event){ 4087 return little_endian_read_16(event, 3); 4088 } 4089 /** 4090 * @brief Get field attribute_id from event ANCS_SUBEVENT_CLIENT_NOTIFICATION 4091 * @param event packet 4092 * @return attribute_id 4093 * @note: btstack_type 2 4094 */ 4095 static inline uint16_t ancs_subevent_client_notification_get_attribute_id(const uint8_t * event){ 4096 return little_endian_read_16(event, 5); 4097 } 4098 /** 4099 * @brief Get field text from event ANCS_SUBEVENT_CLIENT_NOTIFICATION 4100 * @param event packet 4101 * @return text 4102 * @note: btstack_type T 4103 */ 4104 static inline const char * ancs_subevent_client_notification_get_text(const uint8_t * event){ 4105 return (const char *) &event[7]; 4106 } 4107 #endif 4108 4109 #ifdef ENABLE_BLE 4110 /** 4111 * @brief Get field handle from event ANCS_SUBEVENT_CLIENT_DISCONNECTED 4112 * @param event packet 4113 * @return handle 4114 * @note: btstack_type H 4115 */ 4116 static inline hci_con_handle_t ancs_subevent_client_disconnected_get_handle(const uint8_t * event){ 4117 return little_endian_read_16(event, 3); 4118 } 4119 #endif 4120 4121 /** 4122 * @brief Get field avdtp_cid from event AVDTP_SUBEVENT_SIGNALING_ACCEPT 4123 * @param event packet 4124 * @return avdtp_cid 4125 * @note: btstack_type 2 4126 */ 4127 static inline uint16_t avdtp_subevent_signaling_accept_get_avdtp_cid(const uint8_t * event){ 4128 return little_endian_read_16(event, 3); 4129 } 4130 /** 4131 * @brief Get field local_seid from event AVDTP_SUBEVENT_SIGNALING_ACCEPT 4132 * @param event packet 4133 * @return local_seid 4134 * @note: btstack_type 1 4135 */ 4136 static inline uint8_t avdtp_subevent_signaling_accept_get_local_seid(const uint8_t * event){ 4137 return event[5]; 4138 } 4139 /** 4140 * @brief Get field signal_identifier from event AVDTP_SUBEVENT_SIGNALING_ACCEPT 4141 * @param event packet 4142 * @return signal_identifier 4143 * @note: btstack_type 1 4144 */ 4145 static inline uint8_t avdtp_subevent_signaling_accept_get_signal_identifier(const uint8_t * event){ 4146 return event[6]; 4147 } 4148 4149 /** 4150 * @brief Get field avdtp_cid from event AVDTP_SUBEVENT_SIGNALING_REJECT 4151 * @param event packet 4152 * @return avdtp_cid 4153 * @note: btstack_type 2 4154 */ 4155 static inline uint16_t avdtp_subevent_signaling_reject_get_avdtp_cid(const uint8_t * event){ 4156 return little_endian_read_16(event, 3); 4157 } 4158 /** 4159 * @brief Get field local_seid from event AVDTP_SUBEVENT_SIGNALING_REJECT 4160 * @param event packet 4161 * @return local_seid 4162 * @note: btstack_type 1 4163 */ 4164 static inline uint8_t avdtp_subevent_signaling_reject_get_local_seid(const uint8_t * event){ 4165 return event[5]; 4166 } 4167 /** 4168 * @brief Get field signal_identifier from event AVDTP_SUBEVENT_SIGNALING_REJECT 4169 * @param event packet 4170 * @return signal_identifier 4171 * @note: btstack_type 1 4172 */ 4173 static inline uint8_t avdtp_subevent_signaling_reject_get_signal_identifier(const uint8_t * event){ 4174 return event[6]; 4175 } 4176 4177 /** 4178 * @brief Get field avdtp_cid from event AVDTP_SUBEVENT_SIGNALING_GENERAL_REJECT 4179 * @param event packet 4180 * @return avdtp_cid 4181 * @note: btstack_type 2 4182 */ 4183 static inline uint16_t avdtp_subevent_signaling_general_reject_get_avdtp_cid(const uint8_t * event){ 4184 return little_endian_read_16(event, 3); 4185 } 4186 /** 4187 * @brief Get field local_seid from event AVDTP_SUBEVENT_SIGNALING_GENERAL_REJECT 4188 * @param event packet 4189 * @return local_seid 4190 * @note: btstack_type 1 4191 */ 4192 static inline uint8_t avdtp_subevent_signaling_general_reject_get_local_seid(const uint8_t * event){ 4193 return event[5]; 4194 } 4195 /** 4196 * @brief Get field signal_identifier from event AVDTP_SUBEVENT_SIGNALING_GENERAL_REJECT 4197 * @param event packet 4198 * @return signal_identifier 4199 * @note: btstack_type 1 4200 */ 4201 static inline uint8_t avdtp_subevent_signaling_general_reject_get_signal_identifier(const uint8_t * event){ 4202 return event[6]; 4203 } 4204 4205 /** 4206 * @brief Get field avdtp_cid from event AVDTP_SUBEVENT_SIGNALING_CONNECTION_ESTABLISHED 4207 * @param event packet 4208 * @return avdtp_cid 4209 * @note: btstack_type 2 4210 */ 4211 static inline uint16_t avdtp_subevent_signaling_connection_established_get_avdtp_cid(const uint8_t * event){ 4212 return little_endian_read_16(event, 3); 4213 } 4214 /** 4215 * @brief Get field bd_addr from event AVDTP_SUBEVENT_SIGNALING_CONNECTION_ESTABLISHED 4216 * @param event packet 4217 * @param Pointer to storage for bd_addr 4218 * @note: btstack_type B 4219 */ 4220 static inline void avdtp_subevent_signaling_connection_established_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 4221 reverse_bd_addr(&event[5], bd_addr); 4222 } 4223 /** 4224 * @brief Get field status from event AVDTP_SUBEVENT_SIGNALING_CONNECTION_ESTABLISHED 4225 * @param event packet 4226 * @return status 4227 * @note: btstack_type 1 4228 */ 4229 static inline uint8_t avdtp_subevent_signaling_connection_established_get_status(const uint8_t * event){ 4230 return event[11]; 4231 } 4232 4233 /** 4234 * @brief Get field avdtp_cid from event AVDTP_SUBEVENT_SIGNALING_CONNECTION_RELEASED 4235 * @param event packet 4236 * @return avdtp_cid 4237 * @note: btstack_type 2 4238 */ 4239 static inline uint16_t avdtp_subevent_signaling_connection_released_get_avdtp_cid(const uint8_t * event){ 4240 return little_endian_read_16(event, 3); 4241 } 4242 4243 /** 4244 * @brief Get field avdtp_cid from event AVDTP_SUBEVENT_SIGNALING_SEP_FOUND 4245 * @param event packet 4246 * @return avdtp_cid 4247 * @note: btstack_type 2 4248 */ 4249 static inline uint16_t avdtp_subevent_signaling_sep_found_get_avdtp_cid(const uint8_t * event){ 4250 return little_endian_read_16(event, 3); 4251 } 4252 /** 4253 * @brief Get field remote_seid from event AVDTP_SUBEVENT_SIGNALING_SEP_FOUND 4254 * @param event packet 4255 * @return remote_seid 4256 * @note: btstack_type 1 4257 */ 4258 static inline uint8_t avdtp_subevent_signaling_sep_found_get_remote_seid(const uint8_t * event){ 4259 return event[5]; 4260 } 4261 /** 4262 * @brief Get field in_use from event AVDTP_SUBEVENT_SIGNALING_SEP_FOUND 4263 * @param event packet 4264 * @return in_use 4265 * @note: btstack_type 1 4266 */ 4267 static inline uint8_t avdtp_subevent_signaling_sep_found_get_in_use(const uint8_t * event){ 4268 return event[6]; 4269 } 4270 /** 4271 * @brief Get field media_type from event AVDTP_SUBEVENT_SIGNALING_SEP_FOUND 4272 * @param event packet 4273 * @return media_type 4274 * @note: btstack_type 1 4275 */ 4276 static inline uint8_t avdtp_subevent_signaling_sep_found_get_media_type(const uint8_t * event){ 4277 return event[7]; 4278 } 4279 /** 4280 * @brief Get field sep_type from event AVDTP_SUBEVENT_SIGNALING_SEP_FOUND 4281 * @param event packet 4282 * @return sep_type 4283 * @note: btstack_type 1 4284 */ 4285 static inline uint8_t avdtp_subevent_signaling_sep_found_get_sep_type(const uint8_t * event){ 4286 return event[8]; 4287 } 4288 4289 /** 4290 * @brief Get field avdtp_cid from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CAPABILITY 4291 * @param event packet 4292 * @return avdtp_cid 4293 * @note: btstack_type 2 4294 */ 4295 static inline uint16_t avdtp_subevent_signaling_media_codec_sbc_capability_get_avdtp_cid(const uint8_t * event){ 4296 return little_endian_read_16(event, 3); 4297 } 4298 /** 4299 * @brief Get field local_seid from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CAPABILITY 4300 * @param event packet 4301 * @return local_seid 4302 * @note: btstack_type 1 4303 */ 4304 static inline uint8_t avdtp_subevent_signaling_media_codec_sbc_capability_get_local_seid(const uint8_t * event){ 4305 return event[5]; 4306 } 4307 /** 4308 * @brief Get field remote_seid from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CAPABILITY 4309 * @param event packet 4310 * @return remote_seid 4311 * @note: btstack_type 1 4312 */ 4313 static inline uint8_t avdtp_subevent_signaling_media_codec_sbc_capability_get_remote_seid(const uint8_t * event){ 4314 return event[6]; 4315 } 4316 /** 4317 * @brief Get field media_type from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CAPABILITY 4318 * @param event packet 4319 * @return media_type 4320 * @note: btstack_type 1 4321 */ 4322 static inline uint8_t avdtp_subevent_signaling_media_codec_sbc_capability_get_media_type(const uint8_t * event){ 4323 return event[7]; 4324 } 4325 /** 4326 * @brief Get field sampling_frequency_bitmap from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CAPABILITY 4327 * @param event packet 4328 * @return sampling_frequency_bitmap 4329 * @note: btstack_type 1 4330 */ 4331 static inline uint8_t avdtp_subevent_signaling_media_codec_sbc_capability_get_sampling_frequency_bitmap(const uint8_t * event){ 4332 return event[8]; 4333 } 4334 /** 4335 * @brief Get field channel_mode_bitmap from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CAPABILITY 4336 * @param event packet 4337 * @return channel_mode_bitmap 4338 * @note: btstack_type 1 4339 */ 4340 static inline uint8_t avdtp_subevent_signaling_media_codec_sbc_capability_get_channel_mode_bitmap(const uint8_t * event){ 4341 return event[9]; 4342 } 4343 /** 4344 * @brief Get field block_length_bitmap from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CAPABILITY 4345 * @param event packet 4346 * @return block_length_bitmap 4347 * @note: btstack_type 1 4348 */ 4349 static inline uint8_t avdtp_subevent_signaling_media_codec_sbc_capability_get_block_length_bitmap(const uint8_t * event){ 4350 return event[10]; 4351 } 4352 /** 4353 * @brief Get field subbands_bitmap from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CAPABILITY 4354 * @param event packet 4355 * @return subbands_bitmap 4356 * @note: btstack_type 1 4357 */ 4358 static inline uint8_t avdtp_subevent_signaling_media_codec_sbc_capability_get_subbands_bitmap(const uint8_t * event){ 4359 return event[11]; 4360 } 4361 /** 4362 * @brief Get field allocation_method_bitmap from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CAPABILITY 4363 * @param event packet 4364 * @return allocation_method_bitmap 4365 * @note: btstack_type 1 4366 */ 4367 static inline uint8_t avdtp_subevent_signaling_media_codec_sbc_capability_get_allocation_method_bitmap(const uint8_t * event){ 4368 return event[12]; 4369 } 4370 /** 4371 * @brief Get field min_bitpool_value from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CAPABILITY 4372 * @param event packet 4373 * @return min_bitpool_value 4374 * @note: btstack_type 1 4375 */ 4376 static inline uint8_t avdtp_subevent_signaling_media_codec_sbc_capability_get_min_bitpool_value(const uint8_t * event){ 4377 return event[13]; 4378 } 4379 /** 4380 * @brief Get field max_bitpool_value from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CAPABILITY 4381 * @param event packet 4382 * @return max_bitpool_value 4383 * @note: btstack_type 1 4384 */ 4385 static inline uint8_t avdtp_subevent_signaling_media_codec_sbc_capability_get_max_bitpool_value(const uint8_t * event){ 4386 return event[14]; 4387 } 4388 4389 /** 4390 * @brief Get field avdtp_cid from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CAPABILITY 4391 * @param event packet 4392 * @return avdtp_cid 4393 * @note: btstack_type 2 4394 */ 4395 static inline uint16_t avdtp_subevent_signaling_media_codec_other_capability_get_avdtp_cid(const uint8_t * event){ 4396 return little_endian_read_16(event, 3); 4397 } 4398 /** 4399 * @brief Get field local_seid from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CAPABILITY 4400 * @param event packet 4401 * @return local_seid 4402 * @note: btstack_type 1 4403 */ 4404 static inline uint8_t avdtp_subevent_signaling_media_codec_other_capability_get_local_seid(const uint8_t * event){ 4405 return event[5]; 4406 } 4407 /** 4408 * @brief Get field remote_seid from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CAPABILITY 4409 * @param event packet 4410 * @return remote_seid 4411 * @note: btstack_type 1 4412 */ 4413 static inline uint8_t avdtp_subevent_signaling_media_codec_other_capability_get_remote_seid(const uint8_t * event){ 4414 return event[6]; 4415 } 4416 /** 4417 * @brief Get field media_type from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CAPABILITY 4418 * @param event packet 4419 * @return media_type 4420 * @note: btstack_type 1 4421 */ 4422 static inline uint8_t avdtp_subevent_signaling_media_codec_other_capability_get_media_type(const uint8_t * event){ 4423 return event[7]; 4424 } 4425 /** 4426 * @brief Get field media_codec_type from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CAPABILITY 4427 * @param event packet 4428 * @return media_codec_type 4429 * @note: btstack_type 2 4430 */ 4431 static inline uint16_t avdtp_subevent_signaling_media_codec_other_capability_get_media_codec_type(const uint8_t * event){ 4432 return little_endian_read_16(event, 8); 4433 } 4434 /** 4435 * @brief Get field media_codec_information_len from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CAPABILITY 4436 * @param event packet 4437 * @return media_codec_information_len 4438 * @note: btstack_type L 4439 */ 4440 static inline int avdtp_subevent_signaling_media_codec_other_capability_get_media_codec_information_len(const uint8_t * event){ 4441 return little_endian_read_16(event, 10); 4442 } 4443 /** 4444 * @brief Get field media_codec_information from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CAPABILITY 4445 * @param event packet 4446 * @return media_codec_information 4447 * @note: btstack_type V 4448 */ 4449 static inline const uint8_t * avdtp_subevent_signaling_media_codec_other_capability_get_media_codec_information(const uint8_t * event){ 4450 return &event[12]; 4451 } 4452 4453 /** 4454 * @brief Get field avdtp_cid from event AVDTP_SUBEVENT_SIGNALING_MEDIA_TRANSPORT_CAPABILITY 4455 * @param event packet 4456 * @return avdtp_cid 4457 * @note: btstack_type 2 4458 */ 4459 static inline uint16_t avdtp_subevent_signaling_media_transport_capability_get_avdtp_cid(const uint8_t * event){ 4460 return little_endian_read_16(event, 3); 4461 } 4462 /** 4463 * @brief Get field local_seid from event AVDTP_SUBEVENT_SIGNALING_MEDIA_TRANSPORT_CAPABILITY 4464 * @param event packet 4465 * @return local_seid 4466 * @note: btstack_type 1 4467 */ 4468 static inline uint8_t avdtp_subevent_signaling_media_transport_capability_get_local_seid(const uint8_t * event){ 4469 return event[5]; 4470 } 4471 /** 4472 * @brief Get field remote_seid from event AVDTP_SUBEVENT_SIGNALING_MEDIA_TRANSPORT_CAPABILITY 4473 * @param event packet 4474 * @return remote_seid 4475 * @note: btstack_type 1 4476 */ 4477 static inline uint8_t avdtp_subevent_signaling_media_transport_capability_get_remote_seid(const uint8_t * event){ 4478 return event[6]; 4479 } 4480 4481 /** 4482 * @brief Get field avdtp_cid from event AVDTP_SUBEVENT_SIGNALING_REPORTING_CAPABILITY 4483 * @param event packet 4484 * @return avdtp_cid 4485 * @note: btstack_type 2 4486 */ 4487 static inline uint16_t avdtp_subevent_signaling_reporting_capability_get_avdtp_cid(const uint8_t * event){ 4488 return little_endian_read_16(event, 3); 4489 } 4490 /** 4491 * @brief Get field local_seid from event AVDTP_SUBEVENT_SIGNALING_REPORTING_CAPABILITY 4492 * @param event packet 4493 * @return local_seid 4494 * @note: btstack_type 1 4495 */ 4496 static inline uint8_t avdtp_subevent_signaling_reporting_capability_get_local_seid(const uint8_t * event){ 4497 return event[5]; 4498 } 4499 /** 4500 * @brief Get field remote_seid from event AVDTP_SUBEVENT_SIGNALING_REPORTING_CAPABILITY 4501 * @param event packet 4502 * @return remote_seid 4503 * @note: btstack_type 1 4504 */ 4505 static inline uint8_t avdtp_subevent_signaling_reporting_capability_get_remote_seid(const uint8_t * event){ 4506 return event[6]; 4507 } 4508 4509 /** 4510 * @brief Get field avdtp_cid from event AVDTP_SUBEVENT_SIGNALING_RECOVERY_CAPABILITY 4511 * @param event packet 4512 * @return avdtp_cid 4513 * @note: btstack_type 2 4514 */ 4515 static inline uint16_t avdtp_subevent_signaling_recovery_capability_get_avdtp_cid(const uint8_t * event){ 4516 return little_endian_read_16(event, 3); 4517 } 4518 /** 4519 * @brief Get field local_seid from event AVDTP_SUBEVENT_SIGNALING_RECOVERY_CAPABILITY 4520 * @param event packet 4521 * @return local_seid 4522 * @note: btstack_type 1 4523 */ 4524 static inline uint8_t avdtp_subevent_signaling_recovery_capability_get_local_seid(const uint8_t * event){ 4525 return event[5]; 4526 } 4527 /** 4528 * @brief Get field remote_seid from event AVDTP_SUBEVENT_SIGNALING_RECOVERY_CAPABILITY 4529 * @param event packet 4530 * @return remote_seid 4531 * @note: btstack_type 1 4532 */ 4533 static inline uint8_t avdtp_subevent_signaling_recovery_capability_get_remote_seid(const uint8_t * event){ 4534 return event[6]; 4535 } 4536 /** 4537 * @brief Get field recovery_type from event AVDTP_SUBEVENT_SIGNALING_RECOVERY_CAPABILITY 4538 * @param event packet 4539 * @return recovery_type 4540 * @note: btstack_type 1 4541 */ 4542 static inline uint8_t avdtp_subevent_signaling_recovery_capability_get_recovery_type(const uint8_t * event){ 4543 return event[7]; 4544 } 4545 /** 4546 * @brief Get field maximum_recovery_window_size from event AVDTP_SUBEVENT_SIGNALING_RECOVERY_CAPABILITY 4547 * @param event packet 4548 * @return maximum_recovery_window_size 4549 * @note: btstack_type 1 4550 */ 4551 static inline uint8_t avdtp_subevent_signaling_recovery_capability_get_maximum_recovery_window_size(const uint8_t * event){ 4552 return event[8]; 4553 } 4554 /** 4555 * @brief Get field maximum_number_media_packets from event AVDTP_SUBEVENT_SIGNALING_RECOVERY_CAPABILITY 4556 * @param event packet 4557 * @return maximum_number_media_packets 4558 * @note: btstack_type 1 4559 */ 4560 static inline uint8_t avdtp_subevent_signaling_recovery_capability_get_maximum_number_media_packets(const uint8_t * event){ 4561 return event[9]; 4562 } 4563 4564 /** 4565 * @brief Get field avdtp_cid from event AVDTP_SUBEVENT_SIGNALING_CONTENT_PROTECTION_CAPABILITY 4566 * @param event packet 4567 * @return avdtp_cid 4568 * @note: btstack_type 2 4569 */ 4570 static inline uint16_t avdtp_subevent_signaling_content_protection_capability_get_avdtp_cid(const uint8_t * event){ 4571 return little_endian_read_16(event, 3); 4572 } 4573 /** 4574 * @brief Get field local_seid from event AVDTP_SUBEVENT_SIGNALING_CONTENT_PROTECTION_CAPABILITY 4575 * @param event packet 4576 * @return local_seid 4577 * @note: btstack_type 1 4578 */ 4579 static inline uint8_t avdtp_subevent_signaling_content_protection_capability_get_local_seid(const uint8_t * event){ 4580 return event[5]; 4581 } 4582 /** 4583 * @brief Get field remote_seid from event AVDTP_SUBEVENT_SIGNALING_CONTENT_PROTECTION_CAPABILITY 4584 * @param event packet 4585 * @return remote_seid 4586 * @note: btstack_type 1 4587 */ 4588 static inline uint8_t avdtp_subevent_signaling_content_protection_capability_get_remote_seid(const uint8_t * event){ 4589 return event[6]; 4590 } 4591 /** 4592 * @brief Get field cp_type from event AVDTP_SUBEVENT_SIGNALING_CONTENT_PROTECTION_CAPABILITY 4593 * @param event packet 4594 * @return cp_type 4595 * @note: btstack_type 2 4596 */ 4597 static inline uint16_t avdtp_subevent_signaling_content_protection_capability_get_cp_type(const uint8_t * event){ 4598 return little_endian_read_16(event, 7); 4599 } 4600 /** 4601 * @brief Get field cp_type_value_len from event AVDTP_SUBEVENT_SIGNALING_CONTENT_PROTECTION_CAPABILITY 4602 * @param event packet 4603 * @return cp_type_value_len 4604 * @note: btstack_type L 4605 */ 4606 static inline int avdtp_subevent_signaling_content_protection_capability_get_cp_type_value_len(const uint8_t * event){ 4607 return little_endian_read_16(event, 9); 4608 } 4609 /** 4610 * @brief Get field cp_type_value from event AVDTP_SUBEVENT_SIGNALING_CONTENT_PROTECTION_CAPABILITY 4611 * @param event packet 4612 * @return cp_type_value 4613 * @note: btstack_type V 4614 */ 4615 static inline const uint8_t * avdtp_subevent_signaling_content_protection_capability_get_cp_type_value(const uint8_t * event){ 4616 return &event[11]; 4617 } 4618 4619 /** 4620 * @brief Get field avdtp_cid from event AVDTP_SUBEVENT_SIGNALING_MULTIPLEXING_CAPABILITY 4621 * @param event packet 4622 * @return avdtp_cid 4623 * @note: btstack_type 2 4624 */ 4625 static inline uint16_t avdtp_subevent_signaling_multiplexing_capability_get_avdtp_cid(const uint8_t * event){ 4626 return little_endian_read_16(event, 3); 4627 } 4628 /** 4629 * @brief Get field local_seid from event AVDTP_SUBEVENT_SIGNALING_MULTIPLEXING_CAPABILITY 4630 * @param event packet 4631 * @return local_seid 4632 * @note: btstack_type 1 4633 */ 4634 static inline uint8_t avdtp_subevent_signaling_multiplexing_capability_get_local_seid(const uint8_t * event){ 4635 return event[5]; 4636 } 4637 /** 4638 * @brief Get field remote_seid from event AVDTP_SUBEVENT_SIGNALING_MULTIPLEXING_CAPABILITY 4639 * @param event packet 4640 * @return remote_seid 4641 * @note: btstack_type 1 4642 */ 4643 static inline uint8_t avdtp_subevent_signaling_multiplexing_capability_get_remote_seid(const uint8_t * event){ 4644 return event[6]; 4645 } 4646 /** 4647 * @brief Get field fragmentation from event AVDTP_SUBEVENT_SIGNALING_MULTIPLEXING_CAPABILITY 4648 * @param event packet 4649 * @return fragmentation 4650 * @note: btstack_type 1 4651 */ 4652 static inline uint8_t avdtp_subevent_signaling_multiplexing_capability_get_fragmentation(const uint8_t * event){ 4653 return event[7]; 4654 } 4655 /** 4656 * @brief Get field transport_identifiers_num from event AVDTP_SUBEVENT_SIGNALING_MULTIPLEXING_CAPABILITY 4657 * @param event packet 4658 * @return transport_identifiers_num 4659 * @note: btstack_type 1 4660 */ 4661 static inline uint8_t avdtp_subevent_signaling_multiplexing_capability_get_transport_identifiers_num(const uint8_t * event){ 4662 return event[8]; 4663 } 4664 /** 4665 * @brief Get field transport_session_identifier_1 from event AVDTP_SUBEVENT_SIGNALING_MULTIPLEXING_CAPABILITY 4666 * @param event packet 4667 * @return transport_session_identifier_1 4668 * @note: btstack_type 1 4669 */ 4670 static inline uint8_t avdtp_subevent_signaling_multiplexing_capability_get_transport_session_identifier_1(const uint8_t * event){ 4671 return event[9]; 4672 } 4673 /** 4674 * @brief Get field transport_session_identifier_2 from event AVDTP_SUBEVENT_SIGNALING_MULTIPLEXING_CAPABILITY 4675 * @param event packet 4676 * @return transport_session_identifier_2 4677 * @note: btstack_type 1 4678 */ 4679 static inline uint8_t avdtp_subevent_signaling_multiplexing_capability_get_transport_session_identifier_2(const uint8_t * event){ 4680 return event[10]; 4681 } 4682 /** 4683 * @brief Get field transport_session_identifier_3 from event AVDTP_SUBEVENT_SIGNALING_MULTIPLEXING_CAPABILITY 4684 * @param event packet 4685 * @return transport_session_identifier_3 4686 * @note: btstack_type 1 4687 */ 4688 static inline uint8_t avdtp_subevent_signaling_multiplexing_capability_get_transport_session_identifier_3(const uint8_t * event){ 4689 return event[11]; 4690 } 4691 /** 4692 * @brief Get field tcid_1 from event AVDTP_SUBEVENT_SIGNALING_MULTIPLEXING_CAPABILITY 4693 * @param event packet 4694 * @return tcid_1 4695 * @note: btstack_type 1 4696 */ 4697 static inline uint8_t avdtp_subevent_signaling_multiplexing_capability_get_tcid_1(const uint8_t * event){ 4698 return event[12]; 4699 } 4700 /** 4701 * @brief Get field tcid_2 from event AVDTP_SUBEVENT_SIGNALING_MULTIPLEXING_CAPABILITY 4702 * @param event packet 4703 * @return tcid_2 4704 * @note: btstack_type 1 4705 */ 4706 static inline uint8_t avdtp_subevent_signaling_multiplexing_capability_get_tcid_2(const uint8_t * event){ 4707 return event[13]; 4708 } 4709 /** 4710 * @brief Get field tcid_3 from event AVDTP_SUBEVENT_SIGNALING_MULTIPLEXING_CAPABILITY 4711 * @param event packet 4712 * @return tcid_3 4713 * @note: btstack_type 1 4714 */ 4715 static inline uint8_t avdtp_subevent_signaling_multiplexing_capability_get_tcid_3(const uint8_t * event){ 4716 return event[14]; 4717 } 4718 4719 /** 4720 * @brief Get field avdtp_cid from event AVDTP_SUBEVENT_SIGNALING_DELAY_REPORTING_CAPABILITY 4721 * @param event packet 4722 * @return avdtp_cid 4723 * @note: btstack_type 2 4724 */ 4725 static inline uint16_t avdtp_subevent_signaling_delay_reporting_capability_get_avdtp_cid(const uint8_t * event){ 4726 return little_endian_read_16(event, 3); 4727 } 4728 /** 4729 * @brief Get field local_seid from event AVDTP_SUBEVENT_SIGNALING_DELAY_REPORTING_CAPABILITY 4730 * @param event packet 4731 * @return local_seid 4732 * @note: btstack_type 1 4733 */ 4734 static inline uint8_t avdtp_subevent_signaling_delay_reporting_capability_get_local_seid(const uint8_t * event){ 4735 return event[5]; 4736 } 4737 /** 4738 * @brief Get field remote_seid from event AVDTP_SUBEVENT_SIGNALING_DELAY_REPORTING_CAPABILITY 4739 * @param event packet 4740 * @return remote_seid 4741 * @note: btstack_type 1 4742 */ 4743 static inline uint8_t avdtp_subevent_signaling_delay_reporting_capability_get_remote_seid(const uint8_t * event){ 4744 return event[6]; 4745 } 4746 4747 /** 4748 * @brief Get field avdtp_cid from event AVDTP_SUBEVENT_SIGNALING_HEADER_COMPRESSION_CAPABILITY 4749 * @param event packet 4750 * @return avdtp_cid 4751 * @note: btstack_type 2 4752 */ 4753 static inline uint16_t avdtp_subevent_signaling_header_compression_capability_get_avdtp_cid(const uint8_t * event){ 4754 return little_endian_read_16(event, 3); 4755 } 4756 /** 4757 * @brief Get field local_seid from event AVDTP_SUBEVENT_SIGNALING_HEADER_COMPRESSION_CAPABILITY 4758 * @param event packet 4759 * @return local_seid 4760 * @note: btstack_type 1 4761 */ 4762 static inline uint8_t avdtp_subevent_signaling_header_compression_capability_get_local_seid(const uint8_t * event){ 4763 return event[5]; 4764 } 4765 /** 4766 * @brief Get field remote_seid from event AVDTP_SUBEVENT_SIGNALING_HEADER_COMPRESSION_CAPABILITY 4767 * @param event packet 4768 * @return remote_seid 4769 * @note: btstack_type 1 4770 */ 4771 static inline uint8_t avdtp_subevent_signaling_header_compression_capability_get_remote_seid(const uint8_t * event){ 4772 return event[6]; 4773 } 4774 /** 4775 * @brief Get field back_ch from event AVDTP_SUBEVENT_SIGNALING_HEADER_COMPRESSION_CAPABILITY 4776 * @param event packet 4777 * @return back_ch 4778 * @note: btstack_type 1 4779 */ 4780 static inline uint8_t avdtp_subevent_signaling_header_compression_capability_get_back_ch(const uint8_t * event){ 4781 return event[7]; 4782 } 4783 /** 4784 * @brief Get field media from event AVDTP_SUBEVENT_SIGNALING_HEADER_COMPRESSION_CAPABILITY 4785 * @param event packet 4786 * @return media 4787 * @note: btstack_type 1 4788 */ 4789 static inline uint8_t avdtp_subevent_signaling_header_compression_capability_get_media(const uint8_t * event){ 4790 return event[8]; 4791 } 4792 /** 4793 * @brief Get field recovery from event AVDTP_SUBEVENT_SIGNALING_HEADER_COMPRESSION_CAPABILITY 4794 * @param event packet 4795 * @return recovery 4796 * @note: btstack_type 1 4797 */ 4798 static inline uint8_t avdtp_subevent_signaling_header_compression_capability_get_recovery(const uint8_t * event){ 4799 return event[9]; 4800 } 4801 4802 /** 4803 * @brief Get field avdtp_cid from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION 4804 * @param event packet 4805 * @return avdtp_cid 4806 * @note: btstack_type 2 4807 */ 4808 static inline uint16_t avdtp_subevent_signaling_media_codec_sbc_configuration_get_avdtp_cid(const uint8_t * event){ 4809 return little_endian_read_16(event, 3); 4810 } 4811 /** 4812 * @brief Get field local_seid from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION 4813 * @param event packet 4814 * @return local_seid 4815 * @note: btstack_type 1 4816 */ 4817 static inline uint8_t avdtp_subevent_signaling_media_codec_sbc_configuration_get_local_seid(const uint8_t * event){ 4818 return event[5]; 4819 } 4820 /** 4821 * @brief Get field remote_seid from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION 4822 * @param event packet 4823 * @return remote_seid 4824 * @note: btstack_type 1 4825 */ 4826 static inline uint8_t avdtp_subevent_signaling_media_codec_sbc_configuration_get_remote_seid(const uint8_t * event){ 4827 return event[6]; 4828 } 4829 /** 4830 * @brief Get field reconfigure from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION 4831 * @param event packet 4832 * @return reconfigure 4833 * @note: btstack_type 1 4834 */ 4835 static inline uint8_t avdtp_subevent_signaling_media_codec_sbc_configuration_get_reconfigure(const uint8_t * event){ 4836 return event[7]; 4837 } 4838 /** 4839 * @brief Get field media_type from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION 4840 * @param event packet 4841 * @return media_type 4842 * @note: btstack_type 1 4843 */ 4844 static inline uint8_t avdtp_subevent_signaling_media_codec_sbc_configuration_get_media_type(const uint8_t * event){ 4845 return event[8]; 4846 } 4847 /** 4848 * @brief Get field sampling_frequency from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION 4849 * @param event packet 4850 * @return sampling_frequency 4851 * @note: btstack_type 2 4852 */ 4853 static inline uint16_t avdtp_subevent_signaling_media_codec_sbc_configuration_get_sampling_frequency(const uint8_t * event){ 4854 return little_endian_read_16(event, 9); 4855 } 4856 /** 4857 * @brief Get field channel_mode from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION 4858 * @param event packet 4859 * @return channel_mode 4860 * @note: btstack_type 1 4861 */ 4862 static inline uint8_t avdtp_subevent_signaling_media_codec_sbc_configuration_get_channel_mode(const uint8_t * event){ 4863 return event[11]; 4864 } 4865 /** 4866 * @brief Get field num_channels from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION 4867 * @param event packet 4868 * @return num_channels 4869 * @note: btstack_type 1 4870 */ 4871 static inline uint8_t avdtp_subevent_signaling_media_codec_sbc_configuration_get_num_channels(const uint8_t * event){ 4872 return event[12]; 4873 } 4874 /** 4875 * @brief Get field block_length from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION 4876 * @param event packet 4877 * @return block_length 4878 * @note: btstack_type 1 4879 */ 4880 static inline uint8_t avdtp_subevent_signaling_media_codec_sbc_configuration_get_block_length(const uint8_t * event){ 4881 return event[13]; 4882 } 4883 /** 4884 * @brief Get field subbands from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION 4885 * @param event packet 4886 * @return subbands 4887 * @note: btstack_type 1 4888 */ 4889 static inline uint8_t avdtp_subevent_signaling_media_codec_sbc_configuration_get_subbands(const uint8_t * event){ 4890 return event[14]; 4891 } 4892 /** 4893 * @brief Get field allocation_method from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION 4894 * @param event packet 4895 * @return allocation_method 4896 * @note: btstack_type 1 4897 */ 4898 static inline uint8_t avdtp_subevent_signaling_media_codec_sbc_configuration_get_allocation_method(const uint8_t * event){ 4899 return event[15]; 4900 } 4901 /** 4902 * @brief Get field min_bitpool_value from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION 4903 * @param event packet 4904 * @return min_bitpool_value 4905 * @note: btstack_type 1 4906 */ 4907 static inline uint8_t avdtp_subevent_signaling_media_codec_sbc_configuration_get_min_bitpool_value(const uint8_t * event){ 4908 return event[16]; 4909 } 4910 /** 4911 * @brief Get field max_bitpool_value from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION 4912 * @param event packet 4913 * @return max_bitpool_value 4914 * @note: btstack_type 1 4915 */ 4916 static inline uint8_t avdtp_subevent_signaling_media_codec_sbc_configuration_get_max_bitpool_value(const uint8_t * event){ 4917 return event[17]; 4918 } 4919 4920 /** 4921 * @brief Get field avdtp_cid from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION 4922 * @param event packet 4923 * @return avdtp_cid 4924 * @note: btstack_type 2 4925 */ 4926 static inline uint16_t avdtp_subevent_signaling_media_codec_other_configuration_get_avdtp_cid(const uint8_t * event){ 4927 return little_endian_read_16(event, 3); 4928 } 4929 /** 4930 * @brief Get field local_seid from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION 4931 * @param event packet 4932 * @return local_seid 4933 * @note: btstack_type 1 4934 */ 4935 static inline uint8_t avdtp_subevent_signaling_media_codec_other_configuration_get_local_seid(const uint8_t * event){ 4936 return event[5]; 4937 } 4938 /** 4939 * @brief Get field remote_seid from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION 4940 * @param event packet 4941 * @return remote_seid 4942 * @note: btstack_type 1 4943 */ 4944 static inline uint8_t avdtp_subevent_signaling_media_codec_other_configuration_get_remote_seid(const uint8_t * event){ 4945 return event[6]; 4946 } 4947 /** 4948 * @brief Get field reconfigure from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION 4949 * @param event packet 4950 * @return reconfigure 4951 * @note: btstack_type 1 4952 */ 4953 static inline uint8_t avdtp_subevent_signaling_media_codec_other_configuration_get_reconfigure(const uint8_t * event){ 4954 return event[7]; 4955 } 4956 /** 4957 * @brief Get field media_type from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION 4958 * @param event packet 4959 * @return media_type 4960 * @note: btstack_type 1 4961 */ 4962 static inline uint8_t avdtp_subevent_signaling_media_codec_other_configuration_get_media_type(const uint8_t * event){ 4963 return event[8]; 4964 } 4965 /** 4966 * @brief Get field media_codec_type from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION 4967 * @param event packet 4968 * @return media_codec_type 4969 * @note: btstack_type 2 4970 */ 4971 static inline uint16_t avdtp_subevent_signaling_media_codec_other_configuration_get_media_codec_type(const uint8_t * event){ 4972 return little_endian_read_16(event, 9); 4973 } 4974 /** 4975 * @brief Get field media_codec_information_len from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION 4976 * @param event packet 4977 * @return media_codec_information_len 4978 * @note: btstack_type L 4979 */ 4980 static inline int avdtp_subevent_signaling_media_codec_other_configuration_get_media_codec_information_len(const uint8_t * event){ 4981 return little_endian_read_16(event, 11); 4982 } 4983 /** 4984 * @brief Get field media_codec_information from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION 4985 * @param event packet 4986 * @return media_codec_information 4987 * @note: btstack_type V 4988 */ 4989 static inline const uint8_t * avdtp_subevent_signaling_media_codec_other_configuration_get_media_codec_information(const uint8_t * event){ 4990 return &event[13]; 4991 } 4992 4993 /** 4994 * @brief Get field avdtp_cid from event AVDTP_SUBEVENT_STREAMING_CONNECTION_ESTABLISHED 4995 * @param event packet 4996 * @return avdtp_cid 4997 * @note: btstack_type 2 4998 */ 4999 static inline uint16_t avdtp_subevent_streaming_connection_established_get_avdtp_cid(const uint8_t * event){ 5000 return little_endian_read_16(event, 3); 5001 } 5002 /** 5003 * @brief Get field bd_addr from event AVDTP_SUBEVENT_STREAMING_CONNECTION_ESTABLISHED 5004 * @param event packet 5005 * @param Pointer to storage for bd_addr 5006 * @note: btstack_type B 5007 */ 5008 static inline void avdtp_subevent_streaming_connection_established_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 5009 reverse_bd_addr(&event[5], bd_addr); 5010 } 5011 /** 5012 * @brief Get field local_seid from event AVDTP_SUBEVENT_STREAMING_CONNECTION_ESTABLISHED 5013 * @param event packet 5014 * @return local_seid 5015 * @note: btstack_type 1 5016 */ 5017 static inline uint8_t avdtp_subevent_streaming_connection_established_get_local_seid(const uint8_t * event){ 5018 return event[11]; 5019 } 5020 /** 5021 * @brief Get field remote_seid from event AVDTP_SUBEVENT_STREAMING_CONNECTION_ESTABLISHED 5022 * @param event packet 5023 * @return remote_seid 5024 * @note: btstack_type 1 5025 */ 5026 static inline uint8_t avdtp_subevent_streaming_connection_established_get_remote_seid(const uint8_t * event){ 5027 return event[12]; 5028 } 5029 /** 5030 * @brief Get field status from event AVDTP_SUBEVENT_STREAMING_CONNECTION_ESTABLISHED 5031 * @param event packet 5032 * @return status 5033 * @note: btstack_type 1 5034 */ 5035 static inline uint8_t avdtp_subevent_streaming_connection_established_get_status(const uint8_t * event){ 5036 return event[13]; 5037 } 5038 5039 /** 5040 * @brief Get field avdtp_cid from event AVDTP_SUBEVENT_STREAMING_CONNECTION_RELEASED 5041 * @param event packet 5042 * @return avdtp_cid 5043 * @note: btstack_type 2 5044 */ 5045 static inline uint16_t avdtp_subevent_streaming_connection_released_get_avdtp_cid(const uint8_t * event){ 5046 return little_endian_read_16(event, 3); 5047 } 5048 /** 5049 * @brief Get field local_seid from event AVDTP_SUBEVENT_STREAMING_CONNECTION_RELEASED 5050 * @param event packet 5051 * @return local_seid 5052 * @note: btstack_type 1 5053 */ 5054 static inline uint8_t avdtp_subevent_streaming_connection_released_get_local_seid(const uint8_t * event){ 5055 return event[5]; 5056 } 5057 5058 /** 5059 * @brief Get field avdtp_cid from event AVDTP_SUBEVENT_STREAMING_CAN_SEND_MEDIA_PACKET_NOW 5060 * @param event packet 5061 * @return avdtp_cid 5062 * @note: btstack_type 2 5063 */ 5064 static inline uint16_t avdtp_subevent_streaming_can_send_media_packet_now_get_avdtp_cid(const uint8_t * event){ 5065 return little_endian_read_16(event, 3); 5066 } 5067 /** 5068 * @brief Get field local_seid from event AVDTP_SUBEVENT_STREAMING_CAN_SEND_MEDIA_PACKET_NOW 5069 * @param event packet 5070 * @return local_seid 5071 * @note: btstack_type 1 5072 */ 5073 static inline uint8_t avdtp_subevent_streaming_can_send_media_packet_now_get_local_seid(const uint8_t * event){ 5074 return event[5]; 5075 } 5076 /** 5077 * @brief Get field sequence_number from event AVDTP_SUBEVENT_STREAMING_CAN_SEND_MEDIA_PACKET_NOW 5078 * @param event packet 5079 * @return sequence_number 5080 * @note: btstack_type 2 5081 */ 5082 static inline uint16_t avdtp_subevent_streaming_can_send_media_packet_now_get_sequence_number(const uint8_t * event){ 5083 return little_endian_read_16(event, 6); 5084 } 5085 5086 /** 5087 * @brief Get field avdtp_cid from event AVDTP_SUBEVENT_SIGNALING_CAPABILITY_DONE 5088 * @param event packet 5089 * @return avdtp_cid 5090 * @note: btstack_type 2 5091 */ 5092 static inline uint16_t avdtp_subevent_signaling_capability_done_get_avdtp_cid(const uint8_t * event){ 5093 return little_endian_read_16(event, 3); 5094 } 5095 /** 5096 * @brief Get field local_seid from event AVDTP_SUBEVENT_SIGNALING_CAPABILITY_DONE 5097 * @param event packet 5098 * @return local_seid 5099 * @note: btstack_type 1 5100 */ 5101 static inline uint8_t avdtp_subevent_signaling_capability_done_get_local_seid(const uint8_t * event){ 5102 return event[5]; 5103 } 5104 /** 5105 * @brief Get field remote_seid from event AVDTP_SUBEVENT_SIGNALING_CAPABILITY_DONE 5106 * @param event packet 5107 * @return remote_seid 5108 * @note: btstack_type 1 5109 */ 5110 static inline uint8_t avdtp_subevent_signaling_capability_done_get_remote_seid(const uint8_t * event){ 5111 return event[6]; 5112 } 5113 5114 /** 5115 * @brief Get field avdtp_cid from event AVDTP_SUBEVENT_SIGNALING_SEP_DICOVERY_DONE 5116 * @param event packet 5117 * @return avdtp_cid 5118 * @note: btstack_type 2 5119 */ 5120 static inline uint16_t avdtp_subevent_signaling_sep_dicovery_done_get_avdtp_cid(const uint8_t * event){ 5121 return little_endian_read_16(event, 3); 5122 } 5123 5124 /** 5125 * @brief Get field a2dp_cid from event A2DP_SUBEVENT_STREAMING_CAN_SEND_MEDIA_PACKET_NOW 5126 * @param event packet 5127 * @return a2dp_cid 5128 * @note: btstack_type 2 5129 */ 5130 static inline uint16_t a2dp_subevent_streaming_can_send_media_packet_now_get_a2dp_cid(const uint8_t * event){ 5131 return little_endian_read_16(event, 3); 5132 } 5133 /** 5134 * @brief Get field local_seid from event A2DP_SUBEVENT_STREAMING_CAN_SEND_MEDIA_PACKET_NOW 5135 * @param event packet 5136 * @return local_seid 5137 * @note: btstack_type 1 5138 */ 5139 static inline uint8_t a2dp_subevent_streaming_can_send_media_packet_now_get_local_seid(const uint8_t * event){ 5140 return event[5]; 5141 } 5142 5143 /** 5144 * @brief Get field a2dp_cid from event A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION 5145 * @param event packet 5146 * @return a2dp_cid 5147 * @note: btstack_type 2 5148 */ 5149 static inline uint16_t a2dp_subevent_signaling_media_codec_sbc_configuration_get_a2dp_cid(const uint8_t * event){ 5150 return little_endian_read_16(event, 3); 5151 } 5152 /** 5153 * @brief Get field int_seid from event A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION 5154 * @param event packet 5155 * @return int_seid 5156 * @note: btstack_type 1 5157 */ 5158 static inline uint8_t a2dp_subevent_signaling_media_codec_sbc_configuration_get_int_seid(const uint8_t * event){ 5159 return event[5]; 5160 } 5161 /** 5162 * @brief Get field acp_seid from event A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION 5163 * @param event packet 5164 * @return acp_seid 5165 * @note: btstack_type 1 5166 */ 5167 static inline uint8_t a2dp_subevent_signaling_media_codec_sbc_configuration_get_acp_seid(const uint8_t * event){ 5168 return event[6]; 5169 } 5170 /** 5171 * @brief Get field reconfigure from event A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION 5172 * @param event packet 5173 * @return reconfigure 5174 * @note: btstack_type 1 5175 */ 5176 static inline uint8_t a2dp_subevent_signaling_media_codec_sbc_configuration_get_reconfigure(const uint8_t * event){ 5177 return event[7]; 5178 } 5179 /** 5180 * @brief Get field media_type from event A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION 5181 * @param event packet 5182 * @return media_type 5183 * @note: btstack_type 1 5184 */ 5185 static inline uint8_t a2dp_subevent_signaling_media_codec_sbc_configuration_get_media_type(const uint8_t * event){ 5186 return event[8]; 5187 } 5188 /** 5189 * @brief Get field sampling_frequency from event A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION 5190 * @param event packet 5191 * @return sampling_frequency 5192 * @note: btstack_type 2 5193 */ 5194 static inline uint16_t a2dp_subevent_signaling_media_codec_sbc_configuration_get_sampling_frequency(const uint8_t * event){ 5195 return little_endian_read_16(event, 9); 5196 } 5197 /** 5198 * @brief Get field channel_mode from event A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION 5199 * @param event packet 5200 * @return channel_mode 5201 * @note: btstack_type 1 5202 */ 5203 static inline uint8_t a2dp_subevent_signaling_media_codec_sbc_configuration_get_channel_mode(const uint8_t * event){ 5204 return event[11]; 5205 } 5206 /** 5207 * @brief Get field num_channels from event A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION 5208 * @param event packet 5209 * @return num_channels 5210 * @note: btstack_type 1 5211 */ 5212 static inline uint8_t a2dp_subevent_signaling_media_codec_sbc_configuration_get_num_channels(const uint8_t * event){ 5213 return event[12]; 5214 } 5215 /** 5216 * @brief Get field block_length from event A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION 5217 * @param event packet 5218 * @return block_length 5219 * @note: btstack_type 1 5220 */ 5221 static inline uint8_t a2dp_subevent_signaling_media_codec_sbc_configuration_get_block_length(const uint8_t * event){ 5222 return event[13]; 5223 } 5224 /** 5225 * @brief Get field subbands from event A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION 5226 * @param event packet 5227 * @return subbands 5228 * @note: btstack_type 1 5229 */ 5230 static inline uint8_t a2dp_subevent_signaling_media_codec_sbc_configuration_get_subbands(const uint8_t * event){ 5231 return event[14]; 5232 } 5233 /** 5234 * @brief Get field allocation_method from event A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION 5235 * @param event packet 5236 * @return allocation_method 5237 * @note: btstack_type 1 5238 */ 5239 static inline uint8_t a2dp_subevent_signaling_media_codec_sbc_configuration_get_allocation_method(const uint8_t * event){ 5240 return event[15]; 5241 } 5242 /** 5243 * @brief Get field min_bitpool_value from event A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION 5244 * @param event packet 5245 * @return min_bitpool_value 5246 * @note: btstack_type 1 5247 */ 5248 static inline uint8_t a2dp_subevent_signaling_media_codec_sbc_configuration_get_min_bitpool_value(const uint8_t * event){ 5249 return event[16]; 5250 } 5251 /** 5252 * @brief Get field max_bitpool_value from event A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION 5253 * @param event packet 5254 * @return max_bitpool_value 5255 * @note: btstack_type 1 5256 */ 5257 static inline uint8_t a2dp_subevent_signaling_media_codec_sbc_configuration_get_max_bitpool_value(const uint8_t * event){ 5258 return event[17]; 5259 } 5260 5261 /** 5262 * @brief Get field a2dp_cid from event A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION 5263 * @param event packet 5264 * @return a2dp_cid 5265 * @note: btstack_type 2 5266 */ 5267 static inline uint16_t a2dp_subevent_signaling_media_codec_other_configuration_get_a2dp_cid(const uint8_t * event){ 5268 return little_endian_read_16(event, 3); 5269 } 5270 /** 5271 * @brief Get field int_seid from event A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION 5272 * @param event packet 5273 * @return int_seid 5274 * @note: btstack_type 1 5275 */ 5276 static inline uint8_t a2dp_subevent_signaling_media_codec_other_configuration_get_int_seid(const uint8_t * event){ 5277 return event[5]; 5278 } 5279 /** 5280 * @brief Get field acp_seid from event A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION 5281 * @param event packet 5282 * @return acp_seid 5283 * @note: btstack_type 1 5284 */ 5285 static inline uint8_t a2dp_subevent_signaling_media_codec_other_configuration_get_acp_seid(const uint8_t * event){ 5286 return event[6]; 5287 } 5288 /** 5289 * @brief Get field reconfigure from event A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION 5290 * @param event packet 5291 * @return reconfigure 5292 * @note: btstack_type 1 5293 */ 5294 static inline uint8_t a2dp_subevent_signaling_media_codec_other_configuration_get_reconfigure(const uint8_t * event){ 5295 return event[7]; 5296 } 5297 /** 5298 * @brief Get field media_type from event A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION 5299 * @param event packet 5300 * @return media_type 5301 * @note: btstack_type 1 5302 */ 5303 static inline uint8_t a2dp_subevent_signaling_media_codec_other_configuration_get_media_type(const uint8_t * event){ 5304 return event[8]; 5305 } 5306 /** 5307 * @brief Get field media_codec_type from event A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION 5308 * @param event packet 5309 * @return media_codec_type 5310 * @note: btstack_type 2 5311 */ 5312 static inline uint16_t a2dp_subevent_signaling_media_codec_other_configuration_get_media_codec_type(const uint8_t * event){ 5313 return little_endian_read_16(event, 9); 5314 } 5315 /** 5316 * @brief Get field media_codec_information_len from event A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION 5317 * @param event packet 5318 * @return media_codec_information_len 5319 * @note: btstack_type L 5320 */ 5321 static inline int a2dp_subevent_signaling_media_codec_other_configuration_get_media_codec_information_len(const uint8_t * event){ 5322 return little_endian_read_16(event, 11); 5323 } 5324 /** 5325 * @brief Get field media_codec_information from event A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION 5326 * @param event packet 5327 * @return media_codec_information 5328 * @note: btstack_type V 5329 */ 5330 static inline const uint8_t * a2dp_subevent_signaling_media_codec_other_configuration_get_media_codec_information(const uint8_t * event){ 5331 return &event[13]; 5332 } 5333 5334 /** 5335 * @brief Get field a2dp_cid from event A2DP_SUBEVENT_STREAM_ESTABLISHED 5336 * @param event packet 5337 * @return a2dp_cid 5338 * @note: btstack_type 2 5339 */ 5340 static inline uint16_t a2dp_subevent_stream_established_get_a2dp_cid(const uint8_t * event){ 5341 return little_endian_read_16(event, 3); 5342 } 5343 /** 5344 * @brief Get field bd_addr from event A2DP_SUBEVENT_STREAM_ESTABLISHED 5345 * @param event packet 5346 * @param Pointer to storage for bd_addr 5347 * @note: btstack_type B 5348 */ 5349 static inline void a2dp_subevent_stream_established_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 5350 reverse_bd_addr(&event[5], bd_addr); 5351 } 5352 /** 5353 * @brief Get field local_seid from event A2DP_SUBEVENT_STREAM_ESTABLISHED 5354 * @param event packet 5355 * @return local_seid 5356 * @note: btstack_type 1 5357 */ 5358 static inline uint8_t a2dp_subevent_stream_established_get_local_seid(const uint8_t * event){ 5359 return event[11]; 5360 } 5361 /** 5362 * @brief Get field remote_seid from event A2DP_SUBEVENT_STREAM_ESTABLISHED 5363 * @param event packet 5364 * @return remote_seid 5365 * @note: btstack_type 1 5366 */ 5367 static inline uint8_t a2dp_subevent_stream_established_get_remote_seid(const uint8_t * event){ 5368 return event[12]; 5369 } 5370 /** 5371 * @brief Get field status from event A2DP_SUBEVENT_STREAM_ESTABLISHED 5372 * @param event packet 5373 * @return status 5374 * @note: btstack_type 1 5375 */ 5376 static inline uint8_t a2dp_subevent_stream_established_get_status(const uint8_t * event){ 5377 return event[13]; 5378 } 5379 5380 /** 5381 * @brief Get field a2dp_cid from event A2DP_SUBEVENT_STREAM_STARTED 5382 * @param event packet 5383 * @return a2dp_cid 5384 * @note: btstack_type 2 5385 */ 5386 static inline uint16_t a2dp_subevent_stream_started_get_a2dp_cid(const uint8_t * event){ 5387 return little_endian_read_16(event, 3); 5388 } 5389 /** 5390 * @brief Get field local_seid from event A2DP_SUBEVENT_STREAM_STARTED 5391 * @param event packet 5392 * @return local_seid 5393 * @note: btstack_type 1 5394 */ 5395 static inline uint8_t a2dp_subevent_stream_started_get_local_seid(const uint8_t * event){ 5396 return event[5]; 5397 } 5398 5399 /** 5400 * @brief Get field a2dp_cid from event A2DP_SUBEVENT_STREAM_SUSPENDED 5401 * @param event packet 5402 * @return a2dp_cid 5403 * @note: btstack_type 2 5404 */ 5405 static inline uint16_t a2dp_subevent_stream_suspended_get_a2dp_cid(const uint8_t * event){ 5406 return little_endian_read_16(event, 3); 5407 } 5408 /** 5409 * @brief Get field local_seid from event A2DP_SUBEVENT_STREAM_SUSPENDED 5410 * @param event packet 5411 * @return local_seid 5412 * @note: btstack_type 1 5413 */ 5414 static inline uint8_t a2dp_subevent_stream_suspended_get_local_seid(const uint8_t * event){ 5415 return event[5]; 5416 } 5417 5418 /** 5419 * @brief Get field a2dp_cid from event A2DP_SUBEVENT_STREAM_STOPPED 5420 * @param event packet 5421 * @return a2dp_cid 5422 * @note: btstack_type 2 5423 */ 5424 static inline uint16_t a2dp_subevent_stream_stopped_get_a2dp_cid(const uint8_t * event){ 5425 return little_endian_read_16(event, 3); 5426 } 5427 /** 5428 * @brief Get field local_seid from event A2DP_SUBEVENT_STREAM_STOPPED 5429 * @param event packet 5430 * @return local_seid 5431 * @note: btstack_type 1 5432 */ 5433 static inline uint8_t a2dp_subevent_stream_stopped_get_local_seid(const uint8_t * event){ 5434 return event[5]; 5435 } 5436 5437 /** 5438 * @brief Get field a2dp_cid from event A2DP_SUBEVENT_STREAM_RELEASED 5439 * @param event packet 5440 * @return a2dp_cid 5441 * @note: btstack_type 2 5442 */ 5443 static inline uint16_t a2dp_subevent_stream_released_get_a2dp_cid(const uint8_t * event){ 5444 return little_endian_read_16(event, 3); 5445 } 5446 /** 5447 * @brief Get field local_seid from event A2DP_SUBEVENT_STREAM_RELEASED 5448 * @param event packet 5449 * @return local_seid 5450 * @note: btstack_type 1 5451 */ 5452 static inline uint8_t a2dp_subevent_stream_released_get_local_seid(const uint8_t * event){ 5453 return event[5]; 5454 } 5455 5456 /** 5457 * @brief Get field a2dp_cid from event A2DP_SUBEVENT_COMMAND_ACCEPTED 5458 * @param event packet 5459 * @return a2dp_cid 5460 * @note: btstack_type 2 5461 */ 5462 static inline uint16_t a2dp_subevent_command_accepted_get_a2dp_cid(const uint8_t * event){ 5463 return little_endian_read_16(event, 3); 5464 } 5465 /** 5466 * @brief Get field local_seid from event A2DP_SUBEVENT_COMMAND_ACCEPTED 5467 * @param event packet 5468 * @return local_seid 5469 * @note: btstack_type 1 5470 */ 5471 static inline uint8_t a2dp_subevent_command_accepted_get_local_seid(const uint8_t * event){ 5472 return event[5]; 5473 } 5474 /** 5475 * @brief Get field signal_identifier from event A2DP_SUBEVENT_COMMAND_ACCEPTED 5476 * @param event packet 5477 * @return signal_identifier 5478 * @note: btstack_type 1 5479 */ 5480 static inline uint8_t a2dp_subevent_command_accepted_get_signal_identifier(const uint8_t * event){ 5481 return event[6]; 5482 } 5483 5484 /** 5485 * @brief Get field a2dp_cid from event A2DP_SUBEVENT_COMMAND_REJECTED 5486 * @param event packet 5487 * @return a2dp_cid 5488 * @note: btstack_type 2 5489 */ 5490 static inline uint16_t a2dp_subevent_command_rejected_get_a2dp_cid(const uint8_t * event){ 5491 return little_endian_read_16(event, 3); 5492 } 5493 /** 5494 * @brief Get field local_seid from event A2DP_SUBEVENT_COMMAND_REJECTED 5495 * @param event packet 5496 * @return local_seid 5497 * @note: btstack_type 1 5498 */ 5499 static inline uint8_t a2dp_subevent_command_rejected_get_local_seid(const uint8_t * event){ 5500 return event[5]; 5501 } 5502 /** 5503 * @brief Get field signal_identifier from event A2DP_SUBEVENT_COMMAND_REJECTED 5504 * @param event packet 5505 * @return signal_identifier 5506 * @note: btstack_type 1 5507 */ 5508 static inline uint8_t a2dp_subevent_command_rejected_get_signal_identifier(const uint8_t * event){ 5509 return event[6]; 5510 } 5511 5512 /** 5513 * @brief Get field a2dp_cid from event A2DP_SUBEVENT_SIGNALING_CONNECTION_ESTABLISHED 5514 * @param event packet 5515 * @return a2dp_cid 5516 * @note: btstack_type 2 5517 */ 5518 static inline uint16_t a2dp_subevent_signaling_connection_established_get_a2dp_cid(const uint8_t * event){ 5519 return little_endian_read_16(event, 3); 5520 } 5521 /** 5522 * @brief Get field bd_addr from event A2DP_SUBEVENT_SIGNALING_CONNECTION_ESTABLISHED 5523 * @param event packet 5524 * @param Pointer to storage for bd_addr 5525 * @note: btstack_type B 5526 */ 5527 static inline void a2dp_subevent_signaling_connection_established_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 5528 reverse_bd_addr(&event[5], bd_addr); 5529 } 5530 /** 5531 * @brief Get field status from event A2DP_SUBEVENT_SIGNALING_CONNECTION_ESTABLISHED 5532 * @param event packet 5533 * @return status 5534 * @note: btstack_type 1 5535 */ 5536 static inline uint8_t a2dp_subevent_signaling_connection_established_get_status(const uint8_t * event){ 5537 return event[11]; 5538 } 5539 5540 /** 5541 * @brief Get field a2dp_cid from event A2DP_SUBEVENT_SIGNALING_CONNECTION_RELEASED 5542 * @param event packet 5543 * @return a2dp_cid 5544 * @note: btstack_type 2 5545 */ 5546 static inline uint16_t a2dp_subevent_signaling_connection_released_get_a2dp_cid(const uint8_t * event){ 5547 return little_endian_read_16(event, 3); 5548 } 5549 5550 /** 5551 * @brief Get field a2dp_cid from event A2DP_SUBEVENT_STREAM_RECONFIGURED 5552 * @param event packet 5553 * @return a2dp_cid 5554 * @note: btstack_type 2 5555 */ 5556 static inline uint16_t a2dp_subevent_stream_reconfigured_get_a2dp_cid(const uint8_t * event){ 5557 return little_endian_read_16(event, 3); 5558 } 5559 /** 5560 * @brief Get field local_seid from event A2DP_SUBEVENT_STREAM_RECONFIGURED 5561 * @param event packet 5562 * @return local_seid 5563 * @note: btstack_type 1 5564 */ 5565 static inline uint8_t a2dp_subevent_stream_reconfigured_get_local_seid(const uint8_t * event){ 5566 return event[5]; 5567 } 5568 /** 5569 * @brief Get field status from event A2DP_SUBEVENT_STREAM_RECONFIGURED 5570 * @param event packet 5571 * @return status 5572 * @note: btstack_type 1 5573 */ 5574 static inline uint8_t a2dp_subevent_stream_reconfigured_get_status(const uint8_t * event){ 5575 return event[6]; 5576 } 5577 5578 /** 5579 * @brief Get field status from event AVRCP_SUBEVENT_CONNECTION_ESTABLISHED 5580 * @param event packet 5581 * @return status 5582 * @note: btstack_type 1 5583 */ 5584 static inline uint8_t avrcp_subevent_connection_established_get_status(const uint8_t * event){ 5585 return event[3]; 5586 } 5587 /** 5588 * @brief Get field bd_addr from event AVRCP_SUBEVENT_CONNECTION_ESTABLISHED 5589 * @param event packet 5590 * @param Pointer to storage for bd_addr 5591 * @note: btstack_type B 5592 */ 5593 static inline void avrcp_subevent_connection_established_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 5594 reverse_bd_addr(&event[4], bd_addr); 5595 } 5596 /** 5597 * @brief Get field avrcp_cid from event AVRCP_SUBEVENT_CONNECTION_ESTABLISHED 5598 * @param event packet 5599 * @return avrcp_cid 5600 * @note: btstack_type 2 5601 */ 5602 static inline uint16_t avrcp_subevent_connection_established_get_avrcp_cid(const uint8_t * event){ 5603 return little_endian_read_16(event, 10); 5604 } 5605 5606 /** 5607 * @brief Get field avrcp_cid from event AVRCP_SUBEVENT_CONNECTION_RELEASED 5608 * @param event packet 5609 * @return avrcp_cid 5610 * @note: btstack_type 2 5611 */ 5612 static inline uint16_t avrcp_subevent_connection_released_get_avrcp_cid(const uint8_t * event){ 5613 return little_endian_read_16(event, 3); 5614 } 5615 5616 /** 5617 * @brief Get field avrcp_cid from event AVRCP_SUBEVENT_SHUFFLE_AND_REPEAT_MODE 5618 * @param event packet 5619 * @return avrcp_cid 5620 * @note: btstack_type 2 5621 */ 5622 static inline uint16_t avrcp_subevent_shuffle_and_repeat_mode_get_avrcp_cid(const uint8_t * event){ 5623 return little_endian_read_16(event, 3); 5624 } 5625 /** 5626 * @brief Get field command_type from event AVRCP_SUBEVENT_SHUFFLE_AND_REPEAT_MODE 5627 * @param event packet 5628 * @return command_type 5629 * @note: btstack_type 1 5630 */ 5631 static inline uint8_t avrcp_subevent_shuffle_and_repeat_mode_get_command_type(const uint8_t * event){ 5632 return event[5]; 5633 } 5634 /** 5635 * @brief Get field repeat_mode from event AVRCP_SUBEVENT_SHUFFLE_AND_REPEAT_MODE 5636 * @param event packet 5637 * @return repeat_mode 5638 * @note: btstack_type 1 5639 */ 5640 static inline uint8_t avrcp_subevent_shuffle_and_repeat_mode_get_repeat_mode(const uint8_t * event){ 5641 return event[6]; 5642 } 5643 /** 5644 * @brief Get field shuffle_mode from event AVRCP_SUBEVENT_SHUFFLE_AND_REPEAT_MODE 5645 * @param event packet 5646 * @return shuffle_mode 5647 * @note: btstack_type 1 5648 */ 5649 static inline uint8_t avrcp_subevent_shuffle_and_repeat_mode_get_shuffle_mode(const uint8_t * event){ 5650 return event[7]; 5651 } 5652 5653 /** 5654 * @brief Get field avrcp_cid from event AVRCP_SUBEVENT_PLAY_STATUS 5655 * @param event packet 5656 * @return avrcp_cid 5657 * @note: btstack_type 2 5658 */ 5659 static inline uint16_t avrcp_subevent_play_status_get_avrcp_cid(const uint8_t * event){ 5660 return little_endian_read_16(event, 3); 5661 } 5662 /** 5663 * @brief Get field command_type from event AVRCP_SUBEVENT_PLAY_STATUS 5664 * @param event packet 5665 * @return command_type 5666 * @note: btstack_type 1 5667 */ 5668 static inline uint8_t avrcp_subevent_play_status_get_command_type(const uint8_t * event){ 5669 return event[5]; 5670 } 5671 /** 5672 * @brief Get field song_length from event AVRCP_SUBEVENT_PLAY_STATUS 5673 * @param event packet 5674 * @return song_length 5675 * @note: btstack_type 4 5676 */ 5677 static inline uint32_t avrcp_subevent_play_status_get_song_length(const uint8_t * event){ 5678 return little_endian_read_32(event, 6); 5679 } 5680 /** 5681 * @brief Get field song_position from event AVRCP_SUBEVENT_PLAY_STATUS 5682 * @param event packet 5683 * @return song_position 5684 * @note: btstack_type 4 5685 */ 5686 static inline uint32_t avrcp_subevent_play_status_get_song_position(const uint8_t * event){ 5687 return little_endian_read_32(event, 10); 5688 } 5689 /** 5690 * @brief Get field play_status from event AVRCP_SUBEVENT_PLAY_STATUS 5691 * @param event packet 5692 * @return play_status 5693 * @note: btstack_type 1 5694 */ 5695 static inline uint8_t avrcp_subevent_play_status_get_play_status(const uint8_t * event){ 5696 return event[14]; 5697 } 5698 5699 /** 5700 * @brief Get field avrcp_cid from event AVRCP_SUBEVENT_NOTIFICATION_PLAYBACK_STATUS_CHANGED 5701 * @param event packet 5702 * @return avrcp_cid 5703 * @note: btstack_type 2 5704 */ 5705 static inline uint16_t avrcp_subevent_notification_playback_status_changed_get_avrcp_cid(const uint8_t * event){ 5706 return little_endian_read_16(event, 3); 5707 } 5708 /** 5709 * @brief Get field command_type from event AVRCP_SUBEVENT_NOTIFICATION_PLAYBACK_STATUS_CHANGED 5710 * @param event packet 5711 * @return command_type 5712 * @note: btstack_type 1 5713 */ 5714 static inline uint8_t avrcp_subevent_notification_playback_status_changed_get_command_type(const uint8_t * event){ 5715 return event[5]; 5716 } 5717 /** 5718 * @brief Get field play_status from event AVRCP_SUBEVENT_NOTIFICATION_PLAYBACK_STATUS_CHANGED 5719 * @param event packet 5720 * @return play_status 5721 * @note: btstack_type 1 5722 */ 5723 static inline uint8_t avrcp_subevent_notification_playback_status_changed_get_play_status(const uint8_t * event){ 5724 return event[6]; 5725 } 5726 5727 /** 5728 * @brief Get field avrcp_cid from event AVRCP_SUBEVENT_NOTIFICATION_TRACK_CHANGED 5729 * @param event packet 5730 * @return avrcp_cid 5731 * @note: btstack_type 2 5732 */ 5733 static inline uint16_t avrcp_subevent_notification_track_changed_get_avrcp_cid(const uint8_t * event){ 5734 return little_endian_read_16(event, 3); 5735 } 5736 /** 5737 * @brief Get field command_type from event AVRCP_SUBEVENT_NOTIFICATION_TRACK_CHANGED 5738 * @param event packet 5739 * @return command_type 5740 * @note: btstack_type 1 5741 */ 5742 static inline uint8_t avrcp_subevent_notification_track_changed_get_command_type(const uint8_t * event){ 5743 return event[5]; 5744 } 5745 5746 /** 5747 * @brief Get field avrcp_cid from event AVRCP_SUBEVENT_NOTIFICATION_NOW_PLAYING_CONTENT_CHANGED 5748 * @param event packet 5749 * @return avrcp_cid 5750 * @note: btstack_type 2 5751 */ 5752 static inline uint16_t avrcp_subevent_notification_now_playing_content_changed_get_avrcp_cid(const uint8_t * event){ 5753 return little_endian_read_16(event, 3); 5754 } 5755 /** 5756 * @brief Get field command_type from event AVRCP_SUBEVENT_NOTIFICATION_NOW_PLAYING_CONTENT_CHANGED 5757 * @param event packet 5758 * @return command_type 5759 * @note: btstack_type 1 5760 */ 5761 static inline uint8_t avrcp_subevent_notification_now_playing_content_changed_get_command_type(const uint8_t * event){ 5762 return event[5]; 5763 } 5764 5765 /** 5766 * @brief Get field avrcp_cid from event AVRCP_SUBEVENT_NOTIFICATION_AVAILABLE_PLAYERS_CHANGED 5767 * @param event packet 5768 * @return avrcp_cid 5769 * @note: btstack_type 2 5770 */ 5771 static inline uint16_t avrcp_subevent_notification_available_players_changed_get_avrcp_cid(const uint8_t * event){ 5772 return little_endian_read_16(event, 3); 5773 } 5774 /** 5775 * @brief Get field command_type from event AVRCP_SUBEVENT_NOTIFICATION_AVAILABLE_PLAYERS_CHANGED 5776 * @param event packet 5777 * @return command_type 5778 * @note: btstack_type 1 5779 */ 5780 static inline uint8_t avrcp_subevent_notification_available_players_changed_get_command_type(const uint8_t * event){ 5781 return event[5]; 5782 } 5783 5784 /** 5785 * @brief Get field avrcp_cid from event AVRCP_SUBEVENT_NOTIFICATION_VOLUME_CHANGED 5786 * @param event packet 5787 * @return avrcp_cid 5788 * @note: btstack_type 2 5789 */ 5790 static inline uint16_t avrcp_subevent_notification_volume_changed_get_avrcp_cid(const uint8_t * event){ 5791 return little_endian_read_16(event, 3); 5792 } 5793 /** 5794 * @brief Get field command_type from event AVRCP_SUBEVENT_NOTIFICATION_VOLUME_CHANGED 5795 * @param event packet 5796 * @return command_type 5797 * @note: btstack_type 1 5798 */ 5799 static inline uint8_t avrcp_subevent_notification_volume_changed_get_command_type(const uint8_t * event){ 5800 return event[5]; 5801 } 5802 /** 5803 * @brief Get field absolute_volume from event AVRCP_SUBEVENT_NOTIFICATION_VOLUME_CHANGED 5804 * @param event packet 5805 * @return absolute_volume 5806 * @note: btstack_type 1 5807 */ 5808 static inline uint8_t avrcp_subevent_notification_volume_changed_get_absolute_volume(const uint8_t * event){ 5809 return event[6]; 5810 } 5811 5812 /** 5813 * @brief Get field avrcp_cid from event AVRCP_SUBEVENT_SET_ABSOLUTE_VOLUME_RESPONSE 5814 * @param event packet 5815 * @return avrcp_cid 5816 * @note: btstack_type 2 5817 */ 5818 static inline uint16_t avrcp_subevent_set_absolute_volume_response_get_avrcp_cid(const uint8_t * event){ 5819 return little_endian_read_16(event, 3); 5820 } 5821 /** 5822 * @brief Get field command_type from event AVRCP_SUBEVENT_SET_ABSOLUTE_VOLUME_RESPONSE 5823 * @param event packet 5824 * @return command_type 5825 * @note: btstack_type 1 5826 */ 5827 static inline uint8_t avrcp_subevent_set_absolute_volume_response_get_command_type(const uint8_t * event){ 5828 return event[5]; 5829 } 5830 /** 5831 * @brief Get field absolute_volume from event AVRCP_SUBEVENT_SET_ABSOLUTE_VOLUME_RESPONSE 5832 * @param event packet 5833 * @return absolute_volume 5834 * @note: btstack_type 1 5835 */ 5836 static inline uint8_t avrcp_subevent_set_absolute_volume_response_get_absolute_volume(const uint8_t * event){ 5837 return event[6]; 5838 } 5839 5840 /** 5841 * @brief Get field avrcp_cid from event AVRCP_SUBEVENT_ENABLE_NOTIFICATION_COMPLETE 5842 * @param event packet 5843 * @return avrcp_cid 5844 * @note: btstack_type 2 5845 */ 5846 static inline uint16_t avrcp_subevent_enable_notification_complete_get_avrcp_cid(const uint8_t * event){ 5847 return little_endian_read_16(event, 3); 5848 } 5849 /** 5850 * @brief Get field command_type from event AVRCP_SUBEVENT_ENABLE_NOTIFICATION_COMPLETE 5851 * @param event packet 5852 * @return command_type 5853 * @note: btstack_type 1 5854 */ 5855 static inline uint8_t avrcp_subevent_enable_notification_complete_get_command_type(const uint8_t * event){ 5856 return event[5]; 5857 } 5858 /** 5859 * @brief Get field notification_id from event AVRCP_SUBEVENT_ENABLE_NOTIFICATION_COMPLETE 5860 * @param event packet 5861 * @return notification_id 5862 * @note: btstack_type 1 5863 */ 5864 static inline uint8_t avrcp_subevent_enable_notification_complete_get_notification_id(const uint8_t * event){ 5865 return event[6]; 5866 } 5867 5868 /** 5869 * @brief Get field avrcp_cid from event AVRCP_SUBEVENT_OPERATION_START 5870 * @param event packet 5871 * @return avrcp_cid 5872 * @note: btstack_type 2 5873 */ 5874 static inline uint16_t avrcp_subevent_operation_start_get_avrcp_cid(const uint8_t * event){ 5875 return little_endian_read_16(event, 3); 5876 } 5877 /** 5878 * @brief Get field command_type from event AVRCP_SUBEVENT_OPERATION_START 5879 * @param event packet 5880 * @return command_type 5881 * @note: btstack_type 1 5882 */ 5883 static inline uint8_t avrcp_subevent_operation_start_get_command_type(const uint8_t * event){ 5884 return event[5]; 5885 } 5886 /** 5887 * @brief Get field operation_id from event AVRCP_SUBEVENT_OPERATION_START 5888 * @param event packet 5889 * @return operation_id 5890 * @note: btstack_type 1 5891 */ 5892 static inline uint8_t avrcp_subevent_operation_start_get_operation_id(const uint8_t * event){ 5893 return event[6]; 5894 } 5895 5896 /** 5897 * @brief Get field avrcp_cid from event AVRCP_SUBEVENT_OPERATION_COMPLETE 5898 * @param event packet 5899 * @return avrcp_cid 5900 * @note: btstack_type 2 5901 */ 5902 static inline uint16_t avrcp_subevent_operation_complete_get_avrcp_cid(const uint8_t * event){ 5903 return little_endian_read_16(event, 3); 5904 } 5905 /** 5906 * @brief Get field command_type from event AVRCP_SUBEVENT_OPERATION_COMPLETE 5907 * @param event packet 5908 * @return command_type 5909 * @note: btstack_type 1 5910 */ 5911 static inline uint8_t avrcp_subevent_operation_complete_get_command_type(const uint8_t * event){ 5912 return event[5]; 5913 } 5914 /** 5915 * @brief Get field operation_id from event AVRCP_SUBEVENT_OPERATION_COMPLETE 5916 * @param event packet 5917 * @return operation_id 5918 * @note: btstack_type 1 5919 */ 5920 static inline uint8_t avrcp_subevent_operation_complete_get_operation_id(const uint8_t * event){ 5921 return event[6]; 5922 } 5923 5924 /** 5925 * @brief Get field avrcp_cid from event AVRCP_SUBEVENT_PLAYER_APPLICATION_VALUE_RESPONSE 5926 * @param event packet 5927 * @return avrcp_cid 5928 * @note: btstack_type 2 5929 */ 5930 static inline uint16_t avrcp_subevent_player_application_value_response_get_avrcp_cid(const uint8_t * event){ 5931 return little_endian_read_16(event, 3); 5932 } 5933 /** 5934 * @brief Get field command_type from event AVRCP_SUBEVENT_PLAYER_APPLICATION_VALUE_RESPONSE 5935 * @param event packet 5936 * @return command_type 5937 * @note: btstack_type 1 5938 */ 5939 static inline uint8_t avrcp_subevent_player_application_value_response_get_command_type(const uint8_t * event){ 5940 return event[5]; 5941 } 5942 5943 /** 5944 * @brief Get field avrcp_cid from event AVRCP_SUBEVENT_COMPANY_IDS_QUERY 5945 * @param event packet 5946 * @return avrcp_cid 5947 * @note: btstack_type 2 5948 */ 5949 static inline uint16_t avrcp_subevent_company_ids_query_get_avrcp_cid(const uint8_t * event){ 5950 return little_endian_read_16(event, 3); 5951 } 5952 5953 /** 5954 * @brief Get field avrcp_cid from event AVRCP_SUBEVENT_EVENT_IDS_QUERY 5955 * @param event packet 5956 * @return avrcp_cid 5957 * @note: btstack_type 2 5958 */ 5959 static inline uint16_t avrcp_subevent_event_ids_query_get_avrcp_cid(const uint8_t * event){ 5960 return little_endian_read_16(event, 3); 5961 } 5962 5963 /** 5964 * @brief Get field avrcp_cid from event AVRCP_SUBEVENT_PLAY_STATUS_QUERY 5965 * @param event packet 5966 * @return avrcp_cid 5967 * @note: btstack_type 2 5968 */ 5969 static inline uint16_t avrcp_subevent_play_status_query_get_avrcp_cid(const uint8_t * event){ 5970 return little_endian_read_16(event, 3); 5971 } 5972 5973 /** 5974 * @brief Get field avrcp_cid from event AVRCP_SUBEVENT_OPERATION 5975 * @param event packet 5976 * @return avrcp_cid 5977 * @note: btstack_type 2 5978 */ 5979 static inline uint16_t avrcp_subevent_operation_get_avrcp_cid(const uint8_t * event){ 5980 return little_endian_read_16(event, 3); 5981 } 5982 /** 5983 * @brief Get field operation_id from event AVRCP_SUBEVENT_OPERATION 5984 * @param event packet 5985 * @return operation_id 5986 * @note: btstack_type 1 5987 */ 5988 static inline uint8_t avrcp_subevent_operation_get_operation_id(const uint8_t * event){ 5989 return event[5]; 5990 } 5991 /** 5992 * @brief Get field operands_length from event AVRCP_SUBEVENT_OPERATION 5993 * @param event packet 5994 * @return operands_length 5995 * @note: btstack_type 1 5996 */ 5997 static inline uint8_t avrcp_subevent_operation_get_operands_length(const uint8_t * event){ 5998 return event[6]; 5999 } 6000 /** 6001 * @brief Get field operand from event AVRCP_SUBEVENT_OPERATION 6002 * @param event packet 6003 * @return operand 6004 * @note: btstack_type 1 6005 */ 6006 static inline uint8_t avrcp_subevent_operation_get_operand(const uint8_t * event){ 6007 return event[7]; 6008 } 6009 6010 /** 6011 * @brief Get field avrcp_cid from event AVRCP_SUBEVENT_NOW_PLAYING_TRACK_INFO 6012 * @param event packet 6013 * @return avrcp_cid 6014 * @note: btstack_type 2 6015 */ 6016 static inline uint16_t avrcp_subevent_now_playing_track_info_get_avrcp_cid(const uint8_t * event){ 6017 return little_endian_read_16(event, 3); 6018 } 6019 /** 6020 * @brief Get field command_type from event AVRCP_SUBEVENT_NOW_PLAYING_TRACK_INFO 6021 * @param event packet 6022 * @return command_type 6023 * @note: btstack_type 1 6024 */ 6025 static inline uint8_t avrcp_subevent_now_playing_track_info_get_command_type(const uint8_t * event){ 6026 return event[5]; 6027 } 6028 /** 6029 * @brief Get field track from event AVRCP_SUBEVENT_NOW_PLAYING_TRACK_INFO 6030 * @param event packet 6031 * @return track 6032 * @note: btstack_type 1 6033 */ 6034 static inline uint8_t avrcp_subevent_now_playing_track_info_get_track(const uint8_t * event){ 6035 return event[6]; 6036 } 6037 6038 /** 6039 * @brief Get field avrcp_cid from event AVRCP_SUBEVENT_NOW_PLAYING_TOTAL_TRACKS_INFO 6040 * @param event packet 6041 * @return avrcp_cid 6042 * @note: btstack_type 2 6043 */ 6044 static inline uint16_t avrcp_subevent_now_playing_total_tracks_info_get_avrcp_cid(const uint8_t * event){ 6045 return little_endian_read_16(event, 3); 6046 } 6047 /** 6048 * @brief Get field command_type from event AVRCP_SUBEVENT_NOW_PLAYING_TOTAL_TRACKS_INFO 6049 * @param event packet 6050 * @return command_type 6051 * @note: btstack_type 1 6052 */ 6053 static inline uint8_t avrcp_subevent_now_playing_total_tracks_info_get_command_type(const uint8_t * event){ 6054 return event[5]; 6055 } 6056 /** 6057 * @brief Get field total_tracks from event AVRCP_SUBEVENT_NOW_PLAYING_TOTAL_TRACKS_INFO 6058 * @param event packet 6059 * @return total_tracks 6060 * @note: btstack_type 1 6061 */ 6062 static inline uint8_t avrcp_subevent_now_playing_total_tracks_info_get_total_tracks(const uint8_t * event){ 6063 return event[6]; 6064 } 6065 6066 /** 6067 * @brief Get field avrcp_cid from event AVRCP_SUBEVENT_NOW_PLAYING_SONG_LENGTH_MS_INFO 6068 * @param event packet 6069 * @return avrcp_cid 6070 * @note: btstack_type 2 6071 */ 6072 static inline uint16_t avrcp_subevent_now_playing_song_length_ms_info_get_avrcp_cid(const uint8_t * event){ 6073 return little_endian_read_16(event, 3); 6074 } 6075 /** 6076 * @brief Get field command_type from event AVRCP_SUBEVENT_NOW_PLAYING_SONG_LENGTH_MS_INFO 6077 * @param event packet 6078 * @return command_type 6079 * @note: btstack_type 1 6080 */ 6081 static inline uint8_t avrcp_subevent_now_playing_song_length_ms_info_get_command_type(const uint8_t * event){ 6082 return event[5]; 6083 } 6084 /** 6085 * @brief Get field song_length from event AVRCP_SUBEVENT_NOW_PLAYING_SONG_LENGTH_MS_INFO 6086 * @param event packet 6087 * @return song_length 6088 * @note: btstack_type 4 6089 */ 6090 static inline uint32_t avrcp_subevent_now_playing_song_length_ms_info_get_song_length(const uint8_t * event){ 6091 return little_endian_read_32(event, 6); 6092 } 6093 6094 /** 6095 * @brief Get field avrcp_cid from event AVRCP_SUBEVENT_NOW_PLAYING_TITLE_INFO 6096 * @param event packet 6097 * @return avrcp_cid 6098 * @note: btstack_type 2 6099 */ 6100 static inline uint16_t avrcp_subevent_now_playing_title_info_get_avrcp_cid(const uint8_t * event){ 6101 return little_endian_read_16(event, 3); 6102 } 6103 /** 6104 * @brief Get field command_type from event AVRCP_SUBEVENT_NOW_PLAYING_TITLE_INFO 6105 * @param event packet 6106 * @return command_type 6107 * @note: btstack_type 1 6108 */ 6109 static inline uint8_t avrcp_subevent_now_playing_title_info_get_command_type(const uint8_t * event){ 6110 return event[5]; 6111 } 6112 /** 6113 * @brief Get field value_len from event AVRCP_SUBEVENT_NOW_PLAYING_TITLE_INFO 6114 * @param event packet 6115 * @return value_len 6116 * @note: btstack_type J 6117 */ 6118 static inline int avrcp_subevent_now_playing_title_info_get_value_len(const uint8_t * event){ 6119 return event[6]; 6120 } 6121 /** 6122 * @brief Get field value from event AVRCP_SUBEVENT_NOW_PLAYING_TITLE_INFO 6123 * @param event packet 6124 * @return value 6125 * @note: btstack_type V 6126 */ 6127 static inline const uint8_t * avrcp_subevent_now_playing_title_info_get_value(const uint8_t * event){ 6128 return &event[7]; 6129 } 6130 6131 /** 6132 * @brief Get field avrcp_cid from event AVRCP_SUBEVENT_NOW_PLAYING_ARTIST_INFO 6133 * @param event packet 6134 * @return avrcp_cid 6135 * @note: btstack_type 2 6136 */ 6137 static inline uint16_t avrcp_subevent_now_playing_artist_info_get_avrcp_cid(const uint8_t * event){ 6138 return little_endian_read_16(event, 3); 6139 } 6140 /** 6141 * @brief Get field command_type from event AVRCP_SUBEVENT_NOW_PLAYING_ARTIST_INFO 6142 * @param event packet 6143 * @return command_type 6144 * @note: btstack_type 1 6145 */ 6146 static inline uint8_t avrcp_subevent_now_playing_artist_info_get_command_type(const uint8_t * event){ 6147 return event[5]; 6148 } 6149 /** 6150 * @brief Get field value_len from event AVRCP_SUBEVENT_NOW_PLAYING_ARTIST_INFO 6151 * @param event packet 6152 * @return value_len 6153 * @note: btstack_type J 6154 */ 6155 static inline int avrcp_subevent_now_playing_artist_info_get_value_len(const uint8_t * event){ 6156 return event[6]; 6157 } 6158 /** 6159 * @brief Get field value from event AVRCP_SUBEVENT_NOW_PLAYING_ARTIST_INFO 6160 * @param event packet 6161 * @return value 6162 * @note: btstack_type V 6163 */ 6164 static inline const uint8_t * avrcp_subevent_now_playing_artist_info_get_value(const uint8_t * event){ 6165 return &event[7]; 6166 } 6167 6168 /** 6169 * @brief Get field avrcp_cid from event AVRCP_SUBEVENT_NOW_PLAYING_ALBUM_INFO 6170 * @param event packet 6171 * @return avrcp_cid 6172 * @note: btstack_type 2 6173 */ 6174 static inline uint16_t avrcp_subevent_now_playing_album_info_get_avrcp_cid(const uint8_t * event){ 6175 return little_endian_read_16(event, 3); 6176 } 6177 /** 6178 * @brief Get field command_type from event AVRCP_SUBEVENT_NOW_PLAYING_ALBUM_INFO 6179 * @param event packet 6180 * @return command_type 6181 * @note: btstack_type 1 6182 */ 6183 static inline uint8_t avrcp_subevent_now_playing_album_info_get_command_type(const uint8_t * event){ 6184 return event[5]; 6185 } 6186 /** 6187 * @brief Get field value_len from event AVRCP_SUBEVENT_NOW_PLAYING_ALBUM_INFO 6188 * @param event packet 6189 * @return value_len 6190 * @note: btstack_type J 6191 */ 6192 static inline int avrcp_subevent_now_playing_album_info_get_value_len(const uint8_t * event){ 6193 return event[6]; 6194 } 6195 /** 6196 * @brief Get field value from event AVRCP_SUBEVENT_NOW_PLAYING_ALBUM_INFO 6197 * @param event packet 6198 * @return value 6199 * @note: btstack_type V 6200 */ 6201 static inline const uint8_t * avrcp_subevent_now_playing_album_info_get_value(const uint8_t * event){ 6202 return &event[7]; 6203 } 6204 6205 /** 6206 * @brief Get field avrcp_cid from event AVRCP_SUBEVENT_NOW_PLAYING_GENRE_INFO 6207 * @param event packet 6208 * @return avrcp_cid 6209 * @note: btstack_type 2 6210 */ 6211 static inline uint16_t avrcp_subevent_now_playing_genre_info_get_avrcp_cid(const uint8_t * event){ 6212 return little_endian_read_16(event, 3); 6213 } 6214 /** 6215 * @brief Get field command_type from event AVRCP_SUBEVENT_NOW_PLAYING_GENRE_INFO 6216 * @param event packet 6217 * @return command_type 6218 * @note: btstack_type 1 6219 */ 6220 static inline uint8_t avrcp_subevent_now_playing_genre_info_get_command_type(const uint8_t * event){ 6221 return event[5]; 6222 } 6223 /** 6224 * @brief Get field value_len from event AVRCP_SUBEVENT_NOW_PLAYING_GENRE_INFO 6225 * @param event packet 6226 * @return value_len 6227 * @note: btstack_type J 6228 */ 6229 static inline int avrcp_subevent_now_playing_genre_info_get_value_len(const uint8_t * event){ 6230 return event[6]; 6231 } 6232 /** 6233 * @brief Get field value from event AVRCP_SUBEVENT_NOW_PLAYING_GENRE_INFO 6234 * @param event packet 6235 * @return value 6236 * @note: btstack_type V 6237 */ 6238 static inline const uint8_t * avrcp_subevent_now_playing_genre_info_get_value(const uint8_t * event){ 6239 return &event[7]; 6240 } 6241 6242 /** 6243 * @brief Get field avrcp_cid from event AVRCP_SUBEVENT_NOW_PLAYING_INFO_DONE 6244 * @param event packet 6245 * @return avrcp_cid 6246 * @note: btstack_type 2 6247 */ 6248 static inline uint16_t avrcp_subevent_now_playing_info_done_get_avrcp_cid(const uint8_t * event){ 6249 return little_endian_read_16(event, 3); 6250 } 6251 /** 6252 * @brief Get field command_type from event AVRCP_SUBEVENT_NOW_PLAYING_INFO_DONE 6253 * @param event packet 6254 * @return command_type 6255 * @note: btstack_type 1 6256 */ 6257 static inline uint8_t avrcp_subevent_now_playing_info_done_get_command_type(const uint8_t * event){ 6258 return event[5]; 6259 } 6260 /** 6261 * @brief Get field status from event AVRCP_SUBEVENT_NOW_PLAYING_INFO_DONE 6262 * @param event packet 6263 * @return status 6264 * @note: btstack_type 1 6265 */ 6266 static inline uint8_t avrcp_subevent_now_playing_info_done_get_status(const uint8_t * event){ 6267 return event[6]; 6268 } 6269 6270 /** 6271 * @brief Get field bd_addr from event AVRCP_SUBEVENT_INCOMING_BROWSING_CONNECTION 6272 * @param event packet 6273 * @param Pointer to storage for bd_addr 6274 * @note: btstack_type B 6275 */ 6276 static inline void avrcp_subevent_incoming_browsing_connection_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 6277 reverse_bd_addr(&event[3], bd_addr); 6278 } 6279 /** 6280 * @brief Get field browsing_cid from event AVRCP_SUBEVENT_INCOMING_BROWSING_CONNECTION 6281 * @param event packet 6282 * @return browsing_cid 6283 * @note: btstack_type 2 6284 */ 6285 static inline uint16_t avrcp_subevent_incoming_browsing_connection_get_browsing_cid(const uint8_t * event){ 6286 return little_endian_read_16(event, 9); 6287 } 6288 6289 /** 6290 * @brief Get field status from event AVRCP_SUBEVENT_BROWSING_CONNECTION_ESTABLISHED 6291 * @param event packet 6292 * @return status 6293 * @note: btstack_type 1 6294 */ 6295 static inline uint8_t avrcp_subevent_browsing_connection_established_get_status(const uint8_t * event){ 6296 return event[3]; 6297 } 6298 /** 6299 * @brief Get field bd_addr from event AVRCP_SUBEVENT_BROWSING_CONNECTION_ESTABLISHED 6300 * @param event packet 6301 * @param Pointer to storage for bd_addr 6302 * @note: btstack_type B 6303 */ 6304 static inline void avrcp_subevent_browsing_connection_established_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 6305 reverse_bd_addr(&event[4], bd_addr); 6306 } 6307 /** 6308 * @brief Get field browsing_cid from event AVRCP_SUBEVENT_BROWSING_CONNECTION_ESTABLISHED 6309 * @param event packet 6310 * @return browsing_cid 6311 * @note: btstack_type 2 6312 */ 6313 static inline uint16_t avrcp_subevent_browsing_connection_established_get_browsing_cid(const uint8_t * event){ 6314 return little_endian_read_16(event, 10); 6315 } 6316 6317 /** 6318 * @brief Get field browsing_cid from event AVRCP_SUBEVENT_BROWSING_CONNECTION_RELEASED 6319 * @param event packet 6320 * @return browsing_cid 6321 * @note: btstack_type 2 6322 */ 6323 static inline uint16_t avrcp_subevent_browsing_connection_released_get_browsing_cid(const uint8_t * event){ 6324 return little_endian_read_16(event, 3); 6325 } 6326 6327 /** 6328 * @brief Get field browsing_cid from event AVRCP_SUBEVENT_BROWSING_DONE 6329 * @param event packet 6330 * @return browsing_cid 6331 * @note: btstack_type 2 6332 */ 6333 static inline uint16_t avrcp_subevent_browsing_done_get_browsing_cid(const uint8_t * event){ 6334 return little_endian_read_16(event, 3); 6335 } 6336 /** 6337 * @brief Get field uid_counter from event AVRCP_SUBEVENT_BROWSING_DONE 6338 * @param event packet 6339 * @return uid_counter 6340 * @note: btstack_type 2 6341 */ 6342 static inline uint16_t avrcp_subevent_browsing_done_get_uid_counter(const uint8_t * event){ 6343 return little_endian_read_16(event, 5); 6344 } 6345 /** 6346 * @brief Get field browsing_status from event AVRCP_SUBEVENT_BROWSING_DONE 6347 * @param event packet 6348 * @return browsing_status 6349 * @note: btstack_type 1 6350 */ 6351 static inline uint8_t avrcp_subevent_browsing_done_get_browsing_status(const uint8_t * event){ 6352 return event[7]; 6353 } 6354 /** 6355 * @brief Get field bluetooth_status from event AVRCP_SUBEVENT_BROWSING_DONE 6356 * @param event packet 6357 * @return bluetooth_status 6358 * @note: btstack_type 1 6359 */ 6360 static inline uint8_t avrcp_subevent_browsing_done_get_bluetooth_status(const uint8_t * event){ 6361 return event[8]; 6362 } 6363 6364 /** 6365 * @brief Get field browsing_cid from event AVRCP_SUBEVENT_BROWSING_GET_FOLDER_ITEMS 6366 * @param event packet 6367 * @return browsing_cid 6368 * @note: btstack_type 2 6369 */ 6370 static inline uint16_t avrcp_subevent_browsing_get_folder_items_get_browsing_cid(const uint8_t * event){ 6371 return little_endian_read_16(event, 3); 6372 } 6373 /** 6374 * @brief Get field scope from event AVRCP_SUBEVENT_BROWSING_GET_FOLDER_ITEMS 6375 * @param event packet 6376 * @return scope 6377 * @note: btstack_type 1 6378 */ 6379 static inline uint8_t avrcp_subevent_browsing_get_folder_items_get_scope(const uint8_t * event){ 6380 return event[5]; 6381 } 6382 /** 6383 * @brief Get field attr_bitmap from event AVRCP_SUBEVENT_BROWSING_GET_FOLDER_ITEMS 6384 * @param event packet 6385 * @return attr_bitmap 6386 * @note: btstack_type 4 6387 */ 6388 static inline uint32_t avrcp_subevent_browsing_get_folder_items_get_attr_bitmap(const uint8_t * event){ 6389 return little_endian_read_32(event, 6); 6390 } 6391 6392 /** 6393 * @brief Get field browsing_cid from event AVRCP_SUBEVENT_BROWSING_GET_TOTAL_NUM_ITEMS 6394 * @param event packet 6395 * @return browsing_cid 6396 * @note: btstack_type 2 6397 */ 6398 static inline uint16_t avrcp_subevent_browsing_get_total_num_items_get_browsing_cid(const uint8_t * event){ 6399 return little_endian_read_16(event, 3); 6400 } 6401 /** 6402 * @brief Get field scope from event AVRCP_SUBEVENT_BROWSING_GET_TOTAL_NUM_ITEMS 6403 * @param event packet 6404 * @return scope 6405 * @note: btstack_type 1 6406 */ 6407 static inline uint8_t avrcp_subevent_browsing_get_total_num_items_get_scope(const uint8_t * event){ 6408 return event[5]; 6409 } 6410 6411 /** 6412 * @brief Get field avrcp_cid from event AVRCP_SUBEVENT_NOTIFICATION_PLAYBACK_POS_CHANGED 6413 * @param event packet 6414 * @return avrcp_cid 6415 * @note: btstack_type 2 6416 */ 6417 static inline uint16_t avrcp_subevent_notification_playback_pos_changed_get_avrcp_cid(const uint8_t * event){ 6418 return little_endian_read_16(event, 3); 6419 } 6420 /** 6421 * @brief Get field command_type from event AVRCP_SUBEVENT_NOTIFICATION_PLAYBACK_POS_CHANGED 6422 * @param event packet 6423 * @return command_type 6424 * @note: btstack_type 1 6425 */ 6426 static inline uint8_t avrcp_subevent_notification_playback_pos_changed_get_command_type(const uint8_t * event){ 6427 return event[5]; 6428 } 6429 /** 6430 * @brief Get field playback_position_ms from event AVRCP_SUBEVENT_NOTIFICATION_PLAYBACK_POS_CHANGED 6431 * @param event packet 6432 * @return playback_position_ms 6433 * @note: btstack_type 4 6434 */ 6435 static inline uint32_t avrcp_subevent_notification_playback_pos_changed_get_playback_position_ms(const uint8_t * event){ 6436 return little_endian_read_32(event, 6); 6437 } 6438 6439 /** 6440 * @brief Get field goep_cid from event GOEP_SUBEVENT_CONNECTION_OPENED 6441 * @param event packet 6442 * @return goep_cid 6443 * @note: btstack_type 2 6444 */ 6445 static inline uint16_t goep_subevent_connection_opened_get_goep_cid(const uint8_t * event){ 6446 return little_endian_read_16(event, 3); 6447 } 6448 /** 6449 * @brief Get field status from event GOEP_SUBEVENT_CONNECTION_OPENED 6450 * @param event packet 6451 * @return status 6452 * @note: btstack_type 1 6453 */ 6454 static inline uint8_t goep_subevent_connection_opened_get_status(const uint8_t * event){ 6455 return event[5]; 6456 } 6457 /** 6458 * @brief Get field bd_addr from event GOEP_SUBEVENT_CONNECTION_OPENED 6459 * @param event packet 6460 * @param Pointer to storage for bd_addr 6461 * @note: btstack_type B 6462 */ 6463 static inline void goep_subevent_connection_opened_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 6464 reverse_bd_addr(&event[6], bd_addr); 6465 } 6466 /** 6467 * @brief Get field con_handle from event GOEP_SUBEVENT_CONNECTION_OPENED 6468 * @param event packet 6469 * @return con_handle 6470 * @note: btstack_type H 6471 */ 6472 static inline hci_con_handle_t goep_subevent_connection_opened_get_con_handle(const uint8_t * event){ 6473 return little_endian_read_16(event, 12); 6474 } 6475 /** 6476 * @brief Get field incoming from event GOEP_SUBEVENT_CONNECTION_OPENED 6477 * @param event packet 6478 * @return incoming 6479 * @note: btstack_type 1 6480 */ 6481 static inline uint8_t goep_subevent_connection_opened_get_incoming(const uint8_t * event){ 6482 return event[14]; 6483 } 6484 6485 /** 6486 * @brief Get field goep_cid from event GOEP_SUBEVENT_CONNECTION_CLOSED 6487 * @param event packet 6488 * @return goep_cid 6489 * @note: btstack_type 2 6490 */ 6491 static inline uint16_t goep_subevent_connection_closed_get_goep_cid(const uint8_t * event){ 6492 return little_endian_read_16(event, 3); 6493 } 6494 6495 /** 6496 * @brief Get field goep_cid from event GOEP_SUBEVENT_CAN_SEND_NOW 6497 * @param event packet 6498 * @return goep_cid 6499 * @note: btstack_type 2 6500 */ 6501 static inline uint16_t goep_subevent_can_send_now_get_goep_cid(const uint8_t * event){ 6502 return little_endian_read_16(event, 3); 6503 } 6504 6505 /** 6506 * @brief Get field pbap_cid from event PBAP_SUBEVENT_CONNECTION_OPENED 6507 * @param event packet 6508 * @return pbap_cid 6509 * @note: btstack_type 2 6510 */ 6511 static inline uint16_t pbap_subevent_connection_opened_get_pbap_cid(const uint8_t * event){ 6512 return little_endian_read_16(event, 3); 6513 } 6514 /** 6515 * @brief Get field status from event PBAP_SUBEVENT_CONNECTION_OPENED 6516 * @param event packet 6517 * @return status 6518 * @note: btstack_type 1 6519 */ 6520 static inline uint8_t pbap_subevent_connection_opened_get_status(const uint8_t * event){ 6521 return event[5]; 6522 } 6523 /** 6524 * @brief Get field bd_addr from event PBAP_SUBEVENT_CONNECTION_OPENED 6525 * @param event packet 6526 * @param Pointer to storage for bd_addr 6527 * @note: btstack_type B 6528 */ 6529 static inline void pbap_subevent_connection_opened_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 6530 reverse_bd_addr(&event[6], bd_addr); 6531 } 6532 /** 6533 * @brief Get field con_handle from event PBAP_SUBEVENT_CONNECTION_OPENED 6534 * @param event packet 6535 * @return con_handle 6536 * @note: btstack_type H 6537 */ 6538 static inline hci_con_handle_t pbap_subevent_connection_opened_get_con_handle(const uint8_t * event){ 6539 return little_endian_read_16(event, 12); 6540 } 6541 /** 6542 * @brief Get field incoming from event PBAP_SUBEVENT_CONNECTION_OPENED 6543 * @param event packet 6544 * @return incoming 6545 * @note: btstack_type 1 6546 */ 6547 static inline uint8_t pbap_subevent_connection_opened_get_incoming(const uint8_t * event){ 6548 return event[14]; 6549 } 6550 6551 /** 6552 * @brief Get field goep_cid from event PBAP_SUBEVENT_CONNECTION_CLOSED 6553 * @param event packet 6554 * @return goep_cid 6555 * @note: btstack_type 2 6556 */ 6557 static inline uint16_t pbap_subevent_connection_closed_get_goep_cid(const uint8_t * event){ 6558 return little_endian_read_16(event, 3); 6559 } 6560 6561 /** 6562 * @brief Get field goep_cid from event PBAP_SUBEVENT_OPERATION_COMPLETED 6563 * @param event packet 6564 * @return goep_cid 6565 * @note: btstack_type 2 6566 */ 6567 static inline uint16_t pbap_subevent_operation_completed_get_goep_cid(const uint8_t * event){ 6568 return little_endian_read_16(event, 3); 6569 } 6570 /** 6571 * @brief Get field status from event PBAP_SUBEVENT_OPERATION_COMPLETED 6572 * @param event packet 6573 * @return status 6574 * @note: btstack_type 1 6575 */ 6576 static inline uint8_t pbap_subevent_operation_completed_get_status(const uint8_t * event){ 6577 return event[5]; 6578 } 6579 6580 /** 6581 * @brief Get field goep_cid from event PBAP_SUBEVENT_PHONEBOOK_SIZE 6582 * @param event packet 6583 * @return goep_cid 6584 * @note: btstack_type 2 6585 */ 6586 static inline uint16_t pbap_subevent_phonebook_size_get_goep_cid(const uint8_t * event){ 6587 return little_endian_read_16(event, 3); 6588 } 6589 /** 6590 * @brief Get field status from event PBAP_SUBEVENT_PHONEBOOK_SIZE 6591 * @param event packet 6592 * @return status 6593 * @note: btstack_type 1 6594 */ 6595 static inline uint8_t pbap_subevent_phonebook_size_get_status(const uint8_t * event){ 6596 return event[5]; 6597 } 6598 /** 6599 * @brief Get field phoneboook_size from event PBAP_SUBEVENT_PHONEBOOK_SIZE 6600 * @param event packet 6601 * @return phoneboook_size 6602 * @note: btstack_type 2 6603 */ 6604 static inline uint16_t pbap_subevent_phonebook_size_get_phoneboook_size(const uint8_t * event){ 6605 return little_endian_read_16(event, 6); 6606 } 6607 6608 /** 6609 * @brief Get field goep_cid from event PBAP_SUBEVENT_AUTHENTICATION_REQUEST 6610 * @param event packet 6611 * @return goep_cid 6612 * @note: btstack_type 2 6613 */ 6614 static inline uint16_t pbap_subevent_authentication_request_get_goep_cid(const uint8_t * event){ 6615 return little_endian_read_16(event, 3); 6616 } 6617 /** 6618 * @brief Get field user_id_required from event PBAP_SUBEVENT_AUTHENTICATION_REQUEST 6619 * @param event packet 6620 * @return user_id_required 6621 * @note: btstack_type 1 6622 */ 6623 static inline uint8_t pbap_subevent_authentication_request_get_user_id_required(const uint8_t * event){ 6624 return event[5]; 6625 } 6626 /** 6627 * @brief Get field full_access from event PBAP_SUBEVENT_AUTHENTICATION_REQUEST 6628 * @param event packet 6629 * @return full_access 6630 * @note: btstack_type 1 6631 */ 6632 static inline uint8_t pbap_subevent_authentication_request_get_full_access(const uint8_t * event){ 6633 return event[6]; 6634 } 6635 6636 /** 6637 * @brief Get field goep_cid from event PBAP_SUBEVENT_CARD_RESULT 6638 * @param event packet 6639 * @return goep_cid 6640 * @note: btstack_type 2 6641 */ 6642 static inline uint16_t pbap_subevent_card_result_get_goep_cid(const uint8_t * event){ 6643 return little_endian_read_16(event, 3); 6644 } 6645 /** 6646 * @brief Get field name_len from event PBAP_SUBEVENT_CARD_RESULT 6647 * @param event packet 6648 * @return name_len 6649 * @note: btstack_type J 6650 */ 6651 static inline int pbap_subevent_card_result_get_name_len(const uint8_t * event){ 6652 return event[5]; 6653 } 6654 /** 6655 * @brief Get field name from event PBAP_SUBEVENT_CARD_RESULT 6656 * @param event packet 6657 * @return name 6658 * @note: btstack_type V 6659 */ 6660 static inline const uint8_t * pbap_subevent_card_result_get_name(const uint8_t * event){ 6661 return &event[6]; 6662 } 6663 /** 6664 * @brief Get field handle_len from event PBAP_SUBEVENT_CARD_RESULT 6665 * @param event packet 6666 * @return handle_len 6667 * @note: btstack_type J 6668 */ 6669 static inline int pbap_subevent_card_result_get_handle_len(const uint8_t * event){ 6670 return event[6 + event[5]]; 6671 } 6672 /** 6673 * @brief Get field handle from event PBAP_SUBEVENT_CARD_RESULT 6674 * @param event packet 6675 * @return handle 6676 * @note: btstack_type V 6677 */ 6678 static inline const uint8_t * pbap_subevent_card_result_get_handle(const uint8_t * event){ 6679 return &event[6 + event[5] + 1]; 6680 } 6681 6682 /** 6683 * @brief Get field hid_cid from event HID_SUBEVENT_CONNECTION_OPENED 6684 * @param event packet 6685 * @return hid_cid 6686 * @note: btstack_type 2 6687 */ 6688 static inline uint16_t hid_subevent_connection_opened_get_hid_cid(const uint8_t * event){ 6689 return little_endian_read_16(event, 3); 6690 } 6691 /** 6692 * @brief Get field status from event HID_SUBEVENT_CONNECTION_OPENED 6693 * @param event packet 6694 * @return status 6695 * @note: btstack_type 1 6696 */ 6697 static inline uint8_t hid_subevent_connection_opened_get_status(const uint8_t * event){ 6698 return event[5]; 6699 } 6700 /** 6701 * @brief Get field bd_addr from event HID_SUBEVENT_CONNECTION_OPENED 6702 * @param event packet 6703 * @param Pointer to storage for bd_addr 6704 * @note: btstack_type B 6705 */ 6706 static inline void hid_subevent_connection_opened_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 6707 reverse_bd_addr(&event[6], bd_addr); 6708 } 6709 /** 6710 * @brief Get field con_handle from event HID_SUBEVENT_CONNECTION_OPENED 6711 * @param event packet 6712 * @return con_handle 6713 * @note: btstack_type H 6714 */ 6715 static inline hci_con_handle_t hid_subevent_connection_opened_get_con_handle(const uint8_t * event){ 6716 return little_endian_read_16(event, 12); 6717 } 6718 /** 6719 * @brief Get field incoming from event HID_SUBEVENT_CONNECTION_OPENED 6720 * @param event packet 6721 * @return incoming 6722 * @note: btstack_type 1 6723 */ 6724 static inline uint8_t hid_subevent_connection_opened_get_incoming(const uint8_t * event){ 6725 return event[14]; 6726 } 6727 6728 /** 6729 * @brief Get field hid_cid from event HID_SUBEVENT_CONNECTION_CLOSED 6730 * @param event packet 6731 * @return hid_cid 6732 * @note: btstack_type 2 6733 */ 6734 static inline uint16_t hid_subevent_connection_closed_get_hid_cid(const uint8_t * event){ 6735 return little_endian_read_16(event, 3); 6736 } 6737 6738 /** 6739 * @brief Get field hid_cid from event HID_SUBEVENT_CAN_SEND_NOW 6740 * @param event packet 6741 * @return hid_cid 6742 * @note: btstack_type 2 6743 */ 6744 static inline uint16_t hid_subevent_can_send_now_get_hid_cid(const uint8_t * event){ 6745 return little_endian_read_16(event, 3); 6746 } 6747 6748 /** 6749 * @brief Get field con_handle from event HID_SUBEVENT_SUSPEND 6750 * @param event packet 6751 * @return con_handle 6752 * @note: btstack_type 2 6753 */ 6754 static inline uint16_t hid_subevent_suspend_get_con_handle(const uint8_t * event){ 6755 return little_endian_read_16(event, 3); 6756 } 6757 6758 /** 6759 * @brief Get field con_handle from event HID_SUBEVENT_EXIT_SUSPEND 6760 * @param event packet 6761 * @return con_handle 6762 * @note: btstack_type 2 6763 */ 6764 static inline uint16_t hid_subevent_exit_suspend_get_con_handle(const uint8_t * event){ 6765 return little_endian_read_16(event, 3); 6766 } 6767 6768 /** 6769 * @brief Get field con_handle from event HIDS_SUBEVENT_CAN_SEND_NOW 6770 * @param event packet 6771 * @return con_handle 6772 * @note: btstack_type 2 6773 */ 6774 static inline uint16_t hids_subevent_can_send_now_get_con_handle(const uint8_t * event){ 6775 return little_endian_read_16(event, 3); 6776 } 6777 6778 /** 6779 * @brief Get field con_handle from event HIDS_SUBEVENT_PROTOCOL_MODE 6780 * @param event packet 6781 * @return con_handle 6782 * @note: btstack_type 2 6783 */ 6784 static inline uint16_t hids_subevent_protocol_mode_get_con_handle(const uint8_t * event){ 6785 return little_endian_read_16(event, 3); 6786 } 6787 /** 6788 * @brief Get field protocol_mode from event HIDS_SUBEVENT_PROTOCOL_MODE 6789 * @param event packet 6790 * @return protocol_mode 6791 * @note: btstack_type 1 6792 */ 6793 static inline uint8_t hids_subevent_protocol_mode_get_protocol_mode(const uint8_t * event){ 6794 return event[5]; 6795 } 6796 6797 /** 6798 * @brief Get field con_handle from event HIDS_SUBEVENT_BOOT_MOUSE_INPUT_REPORT_ENABLE 6799 * @param event packet 6800 * @return con_handle 6801 * @note: btstack_type 2 6802 */ 6803 static inline uint16_t hids_subevent_boot_mouse_input_report_enable_get_con_handle(const uint8_t * event){ 6804 return little_endian_read_16(event, 3); 6805 } 6806 /** 6807 * @brief Get field enable from event HIDS_SUBEVENT_BOOT_MOUSE_INPUT_REPORT_ENABLE 6808 * @param event packet 6809 * @return enable 6810 * @note: btstack_type 1 6811 */ 6812 static inline uint8_t hids_subevent_boot_mouse_input_report_enable_get_enable(const uint8_t * event){ 6813 return event[5]; 6814 } 6815 6816 /** 6817 * @brief Get field con_handle from event HIDS_SUBEVENT_BOOT_KEYBOARD_INPUT_REPORT_ENABLE 6818 * @param event packet 6819 * @return con_handle 6820 * @note: btstack_type 2 6821 */ 6822 static inline uint16_t hids_subevent_boot_keyboard_input_report_enable_get_con_handle(const uint8_t * event){ 6823 return little_endian_read_16(event, 3); 6824 } 6825 /** 6826 * @brief Get field enable from event HIDS_SUBEVENT_BOOT_KEYBOARD_INPUT_REPORT_ENABLE 6827 * @param event packet 6828 * @return enable 6829 * @note: btstack_type 1 6830 */ 6831 static inline uint8_t hids_subevent_boot_keyboard_input_report_enable_get_enable(const uint8_t * event){ 6832 return event[5]; 6833 } 6834 6835 /** 6836 * @brief Get field con_handle from event HIDS_SUBEVENT_INPUT_REPORT_ENABLE 6837 * @param event packet 6838 * @return con_handle 6839 * @note: btstack_type 2 6840 */ 6841 static inline uint16_t hids_subevent_input_report_enable_get_con_handle(const uint8_t * event){ 6842 return little_endian_read_16(event, 3); 6843 } 6844 /** 6845 * @brief Get field enable from event HIDS_SUBEVENT_INPUT_REPORT_ENABLE 6846 * @param event packet 6847 * @return enable 6848 * @note: btstack_type 1 6849 */ 6850 static inline uint8_t hids_subevent_input_report_enable_get_enable(const uint8_t * event){ 6851 return event[5]; 6852 } 6853 6854 /** 6855 * @brief Get field con_handle from event HIDS_SUBEVENT_OUTPUT_REPORT_ENABLE 6856 * @param event packet 6857 * @return con_handle 6858 * @note: btstack_type 2 6859 */ 6860 static inline uint16_t hids_subevent_output_report_enable_get_con_handle(const uint8_t * event){ 6861 return little_endian_read_16(event, 3); 6862 } 6863 /** 6864 * @brief Get field enable from event HIDS_SUBEVENT_OUTPUT_REPORT_ENABLE 6865 * @param event packet 6866 * @return enable 6867 * @note: btstack_type 1 6868 */ 6869 static inline uint8_t hids_subevent_output_report_enable_get_enable(const uint8_t * event){ 6870 return event[5]; 6871 } 6872 6873 /** 6874 * @brief Get field con_handle from event HIDS_SUBEVENT_FEATURE_REPORT_ENABLE 6875 * @param event packet 6876 * @return con_handle 6877 * @note: btstack_type 2 6878 */ 6879 static inline uint16_t hids_subevent_feature_report_enable_get_con_handle(const uint8_t * event){ 6880 return little_endian_read_16(event, 3); 6881 } 6882 /** 6883 * @brief Get field enable from event HIDS_SUBEVENT_FEATURE_REPORT_ENABLE 6884 * @param event packet 6885 * @return enable 6886 * @note: btstack_type 1 6887 */ 6888 static inline uint8_t hids_subevent_feature_report_enable_get_enable(const uint8_t * event){ 6889 return event[5]; 6890 } 6891 6892 /** 6893 * @brief Get field con_handle from event HIDS_SUBEVENT_SUSPEND 6894 * @param event packet 6895 * @return con_handle 6896 * @note: btstack_type 2 6897 */ 6898 static inline uint16_t hids_subevent_suspend_get_con_handle(const uint8_t * event){ 6899 return little_endian_read_16(event, 3); 6900 } 6901 6902 /** 6903 * @brief Get field con_handle from event HIDS_SUBEVENT_EXIT_SUSPEND 6904 * @param event packet 6905 * @return con_handle 6906 * @note: btstack_type 2 6907 */ 6908 static inline uint16_t hids_subevent_exit_suspend_get_con_handle(const uint8_t * event){ 6909 return little_endian_read_16(event, 3); 6910 } 6911 6912 /** 6913 * @brief Get field con_handle from event GATTSERVICE_SUBEVENT_CYCLING_POWER_START_CALIBRATION 6914 * @param event packet 6915 * @return con_handle 6916 * @note: btstack_type 2 6917 */ 6918 static inline uint16_t gattservice_subevent_cycling_power_start_calibration_get_con_handle(const uint8_t * event){ 6919 return little_endian_read_16(event, 3); 6920 } 6921 /** 6922 * @brief Get field measurement_type from event GATTSERVICE_SUBEVENT_CYCLING_POWER_START_CALIBRATION 6923 * @param event packet 6924 * @return measurement_type 6925 * @note: btstack_type 1 6926 */ 6927 static inline uint8_t gattservice_subevent_cycling_power_start_calibration_get_measurement_type(const uint8_t * event){ 6928 return event[5]; 6929 } 6930 /** 6931 * @brief Get field is_enhanced from event GATTSERVICE_SUBEVENT_CYCLING_POWER_START_CALIBRATION 6932 * @param event packet 6933 * @return is_enhanced 6934 * @note: btstack_type 1 6935 */ 6936 static inline uint8_t gattservice_subevent_cycling_power_start_calibration_get_is_enhanced(const uint8_t * event){ 6937 return event[6]; 6938 } 6939 6940 /** 6941 * @brief Get field con_handle from event GATTSERVICE_SUBEVENT_CYCLING_POWER_BROADCAST_START 6942 * @param event packet 6943 * @return con_handle 6944 * @note: btstack_type 2 6945 */ 6946 static inline uint16_t gattservice_subevent_cycling_power_broadcast_start_get_con_handle(const uint8_t * event){ 6947 return little_endian_read_16(event, 3); 6948 } 6949 6950 /** 6951 * @brief Get field con_handle from event GATTSERVICE_SUBEVENT_CYCLING_POWER_BROADCAST_STOP 6952 * @param event packet 6953 * @return con_handle 6954 * @note: btstack_type 2 6955 */ 6956 static inline uint16_t gattservice_subevent_cycling_power_broadcast_stop_get_con_handle(const uint8_t * event){ 6957 return little_endian_read_16(event, 3); 6958 } 6959 6960 6961 6962 /* API_END */ 6963 6964 #if defined __cplusplus 6965 } 6966 #endif 6967 6968 #endif // __BTSTACK_EVENT_H 6969