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