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 hsp event 74 * @param event packet 75 * @return subevent_code 76 */ 77 static inline uint8_t hci_event_hsp_meta_get_subevent_code(const uint8_t * event){ 78 return event[2]; 79 } 80 /*** 81 * @brief Get subevent code for hfp event 82 * @param event packet 83 * @return subevent_code 84 */ 85 static inline uint8_t hci_event_hfp_meta_get_subevent_code(const uint8_t * event){ 86 return event[2]; 87 } 88 /*** 89 * @brief Get subevent code for ancs event 90 * @param event packet 91 * @return subevent_code 92 */ 93 static inline uint8_t hci_event_ancs_meta_get_subevent_code(const uint8_t * event){ 94 return event[2]; 95 } 96 /** 97 * @brief Get field status from event hci_event_inquiry_complete 98 * @param event packet 99 * @return status 100 * @note: btstack_type 1 101 */ 102 static inline uint8_t hci_event_inquiry_complete_get_status(const uint8_t * event){ 103 return event[2]; 104 } 105 106 /** 107 * @brief Get field num_responses from event hci_event_inquiry_result 108 * @param event packet 109 * @return num_responses 110 * @note: btstack_type 1 111 */ 112 static inline uint8_t hci_event_inquiry_result_get_num_responses(const uint8_t * event){ 113 return event[2]; 114 } 115 /** 116 * @brief Get field bd_addr from event hci_event_inquiry_result 117 * @param event packet 118 * @param Pointer to storage for bd_addr 119 * @note: btstack_type B 120 */ 121 static inline void hci_event_inquiry_result_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 122 reverse_bd_addr(&event[3], bd_addr); 123 } 124 /** 125 * @brief Get field page_scan_repetition_mode from event hci_event_inquiry_result 126 * @param event packet 127 * @return page_scan_repetition_mode 128 * @note: btstack_type 1 129 */ 130 static inline uint8_t hci_event_inquiry_result_get_page_scan_repetition_mode(const uint8_t * event){ 131 return event[9]; 132 } 133 /** 134 * @brief Get field reserved1 from event hci_event_inquiry_result 135 * @param event packet 136 * @return reserved1 137 * @note: btstack_type 1 138 */ 139 static inline uint8_t hci_event_inquiry_result_get_reserved1(const uint8_t * event){ 140 return event[10]; 141 } 142 /** 143 * @brief Get field reserved2 from event hci_event_inquiry_result 144 * @param event packet 145 * @return reserved2 146 * @note: btstack_type 1 147 */ 148 static inline uint8_t hci_event_inquiry_result_get_reserved2(const uint8_t * event){ 149 return event[11]; 150 } 151 /** 152 * @brief Get field class_of_device from event hci_event_inquiry_result 153 * @param event packet 154 * @return class_of_device 155 * @note: btstack_type 3 156 */ 157 static inline uint32_t hci_event_inquiry_result_get_class_of_device(const uint8_t * event){ 158 return little_endian_read_24(event, 12); 159 } 160 /** 161 * @brief Get field clock_offset from event hci_event_inquiry_result 162 * @param event packet 163 * @return clock_offset 164 * @note: btstack_type 2 165 */ 166 static inline uint16_t hci_event_inquiry_result_get_clock_offset(const uint8_t * event){ 167 return little_endian_read_16(event, 15); 168 } 169 170 /** 171 * @brief Get field status from event hci_event_connection_complete 172 * @param event packet 173 * @return status 174 * @note: btstack_type 1 175 */ 176 static inline uint8_t hci_event_connection_complete_get_status(const uint8_t * event){ 177 return event[2]; 178 } 179 /** 180 * @brief Get field connection_handle from event hci_event_connection_complete 181 * @param event packet 182 * @return connection_handle 183 * @note: btstack_type 2 184 */ 185 static inline uint16_t hci_event_connection_complete_get_connection_handle(const uint8_t * event){ 186 return little_endian_read_16(event, 3); 187 } 188 /** 189 * @brief Get field bd_addr from event hci_event_connection_complete 190 * @param event packet 191 * @param Pointer to storage for bd_addr 192 * @note: btstack_type B 193 */ 194 static inline void hci_event_connection_complete_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 195 reverse_bd_addr(&event[5], bd_addr); 196 } 197 /** 198 * @brief Get field link_type from event hci_event_connection_complete 199 * @param event packet 200 * @return link_type 201 * @note: btstack_type 1 202 */ 203 static inline uint8_t hci_event_connection_complete_get_link_type(const uint8_t * event){ 204 return event[11]; 205 } 206 /** 207 * @brief Get field encryption_enabled from event hci_event_connection_complete 208 * @param event packet 209 * @return encryption_enabled 210 * @note: btstack_type 1 211 */ 212 static inline uint8_t hci_event_connection_complete_get_encryption_enabled(const uint8_t * event){ 213 return event[12]; 214 } 215 216 /** 217 * @brief Get field bd_addr from event hci_event_connection_request 218 * @param event packet 219 * @param Pointer to storage for bd_addr 220 * @note: btstack_type B 221 */ 222 static inline void hci_event_connection_request_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 223 reverse_bd_addr(&event[2], bd_addr); 224 } 225 /** 226 * @brief Get field class_of_device from event hci_event_connection_request 227 * @param event packet 228 * @return class_of_device 229 * @note: btstack_type 3 230 */ 231 static inline uint32_t hci_event_connection_request_get_class_of_device(const uint8_t * event){ 232 return little_endian_read_24(event, 8); 233 } 234 /** 235 * @brief Get field link_type from event hci_event_connection_request 236 * @param event packet 237 * @return link_type 238 * @note: btstack_type 1 239 */ 240 static inline uint8_t hci_event_connection_request_get_link_type(const uint8_t * event){ 241 return event[11]; 242 } 243 244 /** 245 * @brief Get field status from event hci_event_disconnection_complete 246 * @param event packet 247 * @return status 248 * @note: btstack_type 1 249 */ 250 static inline uint8_t hci_event_disconnection_complete_get_status(const uint8_t * event){ 251 return event[2]; 252 } 253 /** 254 * @brief Get field connection_handle from event hci_event_disconnection_complete 255 * @param event packet 256 * @return connection_handle 257 * @note: btstack_type 2 258 */ 259 static inline uint16_t hci_event_disconnection_complete_get_connection_handle(const uint8_t * event){ 260 return little_endian_read_16(event, 3); 261 } 262 /** 263 * @brief Get field reason from event hci_event_disconnection_complete 264 * @param event packet 265 * @return reason 266 * @note: btstack_type 1 267 */ 268 static inline uint8_t hci_event_disconnection_complete_get_reason(const uint8_t * event){ 269 return event[5]; 270 } 271 272 /** 273 * @brief Get field status from event hci_event_authentication_complete_event 274 * @param event packet 275 * @return status 276 * @note: btstack_type 1 277 */ 278 static inline uint8_t hci_event_authentication_complete_event_get_status(const uint8_t * event){ 279 return event[2]; 280 } 281 /** 282 * @brief Get field connection_handle from event hci_event_authentication_complete_event 283 * @param event packet 284 * @return connection_handle 285 * @note: btstack_type 2 286 */ 287 static inline uint16_t hci_event_authentication_complete_event_get_connection_handle(const uint8_t * event){ 288 return little_endian_read_16(event, 3); 289 } 290 291 /** 292 * @brief Get field status from event hci_event_remote_name_request_complete 293 * @param event packet 294 * @return status 295 * @note: btstack_type 1 296 */ 297 // static inline uint8_t hci_event_remote_name_request_complete_get_status(const uint8_t * event){ 298 // not implemented yet 299 // } 300 /** 301 * @brief Get field bd_addr from event hci_event_remote_name_request_complete 302 * @param event packet 303 * @return bd_addr 304 * @note: btstack_type B 305 */ 306 // static inline bd_addr_t hci_event_remote_name_request_complete_get_bd_addr(const uint8_t * event){ 307 // not implemented yet 308 // } 309 /** 310 * @brief Get field remote_name from event hci_event_remote_name_request_complete 311 * @param event packet 312 * @return remote_name 313 * @note: btstack_type N 314 */ 315 // static inline String hci_event_remote_name_request_complete_get_remote_name(const uint8_t * event){ 316 // not implemented yet 317 // } 318 319 /** 320 * @brief Get field status from event hci_event_encryption_change 321 * @param event packet 322 * @return status 323 * @note: btstack_type 1 324 */ 325 static inline uint8_t hci_event_encryption_change_get_status(const uint8_t * event){ 326 return event[2]; 327 } 328 /** 329 * @brief Get field connection_handle from event hci_event_encryption_change 330 * @param event packet 331 * @return connection_handle 332 * @note: btstack_type 2 333 */ 334 static inline uint16_t hci_event_encryption_change_get_connection_handle(const uint8_t * event){ 335 return little_endian_read_16(event, 3); 336 } 337 /** 338 * @brief Get field encryption_enabled from event hci_event_encryption_change 339 * @param event packet 340 * @return encryption_enabled 341 * @note: btstack_type 1 342 */ 343 static inline uint8_t hci_event_encryption_change_get_encryption_enabled(const uint8_t * event){ 344 return event[5]; 345 } 346 347 /** 348 * @brief Get field status from event hci_event_change_connection_link_key_complete 349 * @param event packet 350 * @return status 351 * @note: btstack_type 1 352 */ 353 static inline uint8_t hci_event_change_connection_link_key_complete_get_status(const uint8_t * event){ 354 return event[2]; 355 } 356 /** 357 * @brief Get field connection_handle from event hci_event_change_connection_link_key_complete 358 * @param event packet 359 * @return connection_handle 360 * @note: btstack_type 2 361 */ 362 static inline uint16_t hci_event_change_connection_link_key_complete_get_connection_handle(const uint8_t * event){ 363 return little_endian_read_16(event, 3); 364 } 365 366 /** 367 * @brief Get field status from event hci_event_master_link_key_complete 368 * @param event packet 369 * @return status 370 * @note: btstack_type 1 371 */ 372 static inline uint8_t hci_event_master_link_key_complete_get_status(const uint8_t * event){ 373 return event[2]; 374 } 375 /** 376 * @brief Get field connection_handle from event hci_event_master_link_key_complete 377 * @param event packet 378 * @return connection_handle 379 * @note: btstack_type 2 380 */ 381 static inline uint16_t hci_event_master_link_key_complete_get_connection_handle(const uint8_t * event){ 382 return little_endian_read_16(event, 3); 383 } 384 /** 385 * @brief Get field key_flag from event hci_event_master_link_key_complete 386 * @param event packet 387 * @return key_flag 388 * @note: btstack_type 1 389 */ 390 static inline uint8_t hci_event_master_link_key_complete_get_key_flag(const uint8_t * event){ 391 return event[5]; 392 } 393 394 /** 395 * @brief Get field num_hci_command_packets from event hci_event_command_complete 396 * @param event packet 397 * @return num_hci_command_packets 398 * @note: btstack_type 1 399 */ 400 static inline uint8_t hci_event_command_complete_get_num_hci_command_packets(const uint8_t * event){ 401 return event[2]; 402 } 403 /** 404 * @brief Get field command_opcode from event hci_event_command_complete 405 * @param event packet 406 * @return command_opcode 407 * @note: btstack_type 2 408 */ 409 static inline uint16_t hci_event_command_complete_get_command_opcode(const uint8_t * event){ 410 return little_endian_read_16(event, 3); 411 } 412 /** 413 * @brief Get field return_parameters from event hci_event_command_complete 414 * @param event packet 415 * @return return_parameters 416 * @note: btstack_type R 417 */ 418 static inline const uint8_t * hci_event_command_complete_get_return_parameters(const uint8_t * event){ 419 return &event[5]; 420 } 421 422 /** 423 * @brief Get field status from event hci_event_command_status 424 * @param event packet 425 * @return status 426 * @note: btstack_type 1 427 */ 428 static inline uint8_t hci_event_command_status_get_status(const uint8_t * event){ 429 return event[2]; 430 } 431 /** 432 * @brief Get field num_hci_command_packets from event hci_event_command_status 433 * @param event packet 434 * @return num_hci_command_packets 435 * @note: btstack_type 1 436 */ 437 static inline uint8_t hci_event_command_status_get_num_hci_command_packets(const uint8_t * event){ 438 return event[3]; 439 } 440 /** 441 * @brief Get field command_opcode from event hci_event_command_status 442 * @param event packet 443 * @return command_opcode 444 * @note: btstack_type 2 445 */ 446 static inline uint16_t hci_event_command_status_get_command_opcode(const uint8_t * event){ 447 return little_endian_read_16(event, 4); 448 } 449 450 /** 451 * @brief Get field hardware_code from event hci_event_hardware_error 452 * @param event packet 453 * @return hardware_code 454 * @note: btstack_type 1 455 */ 456 static inline uint8_t hci_event_hardware_error_get_hardware_code(const uint8_t * event){ 457 return event[2]; 458 } 459 460 /** 461 * @brief Get field status from event hci_event_role_change 462 * @param event packet 463 * @return status 464 * @note: btstack_type 1 465 */ 466 static inline uint8_t hci_event_role_change_get_status(const uint8_t * event){ 467 return event[2]; 468 } 469 /** 470 * @brief Get field bd_addr from event hci_event_role_change 471 * @param event packet 472 * @param Pointer to storage for bd_addr 473 * @note: btstack_type B 474 */ 475 static inline void hci_event_role_change_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 476 reverse_bd_addr(&event[3], bd_addr); 477 } 478 /** 479 * @brief Get field role from event hci_event_role_change 480 * @param event packet 481 * @return role 482 * @note: btstack_type 1 483 */ 484 static inline uint8_t hci_event_role_change_get_role(const uint8_t * event){ 485 return event[9]; 486 } 487 488 /** 489 * @brief Get field status from event hci_event_mode_change_event 490 * @param event packet 491 * @return status 492 * @note: btstack_type 1 493 */ 494 static inline uint8_t hci_event_mode_change_event_get_status(const uint8_t * event){ 495 return event[2]; 496 } 497 /** 498 * @brief Get field handle from event hci_event_mode_change_event 499 * @param event packet 500 * @return handle 501 * @note: btstack_type H 502 */ 503 static inline hci_con_handle_t hci_event_mode_change_event_get_handle(const uint8_t * event){ 504 return little_endian_read_16(event, 3); 505 } 506 /** 507 * @brief Get field mode from event hci_event_mode_change_event 508 * @param event packet 509 * @return mode 510 * @note: btstack_type 1 511 */ 512 static inline uint8_t hci_event_mode_change_event_get_mode(const uint8_t * event){ 513 return event[5]; 514 } 515 /** 516 * @brief Get field interval from event hci_event_mode_change_event 517 * @param event packet 518 * @return interval 519 * @note: btstack_type 2 520 */ 521 static inline uint16_t hci_event_mode_change_event_get_interval(const uint8_t * event){ 522 return little_endian_read_16(event, 6); 523 } 524 525 /** 526 * @brief Get field bd_addr from event hci_event_pin_code_request 527 * @param event packet 528 * @param Pointer to storage for bd_addr 529 * @note: btstack_type B 530 */ 531 static inline void hci_event_pin_code_request_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 532 reverse_bd_addr(&event[2], bd_addr); 533 } 534 535 /** 536 * @brief Get field bd_addr from event hci_event_link_key_request 537 * @param event packet 538 * @param Pointer to storage for bd_addr 539 * @note: btstack_type B 540 */ 541 static inline void hci_event_link_key_request_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 542 reverse_bd_addr(&event[2], bd_addr); 543 } 544 545 /** 546 * @brief Get field link_type from event hci_event_data_buffer_overflow 547 * @param event packet 548 * @return link_type 549 * @note: btstack_type 1 550 */ 551 static inline uint8_t hci_event_data_buffer_overflow_get_link_type(const uint8_t * event){ 552 return event[2]; 553 } 554 555 /** 556 * @brief Get field handle from event hci_event_max_slots_changed 557 * @param event packet 558 * @return handle 559 * @note: btstack_type H 560 */ 561 static inline hci_con_handle_t hci_event_max_slots_changed_get_handle(const uint8_t * event){ 562 return little_endian_read_16(event, 2); 563 } 564 /** 565 * @brief Get field lmp_max_slots from event hci_event_max_slots_changed 566 * @param event packet 567 * @return lmp_max_slots 568 * @note: btstack_type 1 569 */ 570 static inline uint8_t hci_event_max_slots_changed_get_lmp_max_slots(const uint8_t * event){ 571 return event[4]; 572 } 573 574 /** 575 * @brief Get field status from event hci_event_read_clock_offset_complete 576 * @param event packet 577 * @return status 578 * @note: btstack_type 1 579 */ 580 static inline uint8_t hci_event_read_clock_offset_complete_get_status(const uint8_t * event){ 581 return event[2]; 582 } 583 /** 584 * @brief Get field handle from event hci_event_read_clock_offset_complete 585 * @param event packet 586 * @return handle 587 * @note: btstack_type H 588 */ 589 static inline hci_con_handle_t hci_event_read_clock_offset_complete_get_handle(const uint8_t * event){ 590 return little_endian_read_16(event, 3); 591 } 592 /** 593 * @brief Get field clock_offset from event hci_event_read_clock_offset_complete 594 * @param event packet 595 * @return clock_offset 596 * @note: btstack_type 2 597 */ 598 static inline uint16_t hci_event_read_clock_offset_complete_get_clock_offset(const uint8_t * event){ 599 return little_endian_read_16(event, 5); 600 } 601 602 /** 603 * @brief Get field status from event hci_event_packet_type_changed 604 * @param event packet 605 * @return status 606 * @note: btstack_type 1 607 */ 608 static inline uint8_t hci_event_packet_type_changed_get_status(const uint8_t * event){ 609 return event[2]; 610 } 611 /** 612 * @brief Get field handle from event hci_event_packet_type_changed 613 * @param event packet 614 * @return handle 615 * @note: btstack_type H 616 */ 617 static inline hci_con_handle_t hci_event_packet_type_changed_get_handle(const uint8_t * event){ 618 return little_endian_read_16(event, 3); 619 } 620 /** 621 * @brief Get field packet_type from event hci_event_packet_type_changed 622 * @param event packet 623 * @return packet_type 624 * @note: btstack_type 2 625 */ 626 static inline uint16_t hci_event_packet_type_changed_get_packet_type(const uint8_t * event){ 627 return little_endian_read_16(event, 5); 628 } 629 630 /** 631 * @brief Get field num_responses from event hci_event_inquiry_result_with_rssi 632 * @param event packet 633 * @return num_responses 634 * @note: btstack_type 1 635 */ 636 static inline uint8_t hci_event_inquiry_result_with_rssi_get_num_responses(const uint8_t * event){ 637 return event[2]; 638 } 639 /** 640 * @brief Get field bd_addr from event hci_event_inquiry_result_with_rssi 641 * @param event packet 642 * @param Pointer to storage for bd_addr 643 * @note: btstack_type B 644 */ 645 static inline void hci_event_inquiry_result_with_rssi_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 646 reverse_bd_addr(&event[3], bd_addr); 647 } 648 /** 649 * @brief Get field page_scan_repetition_mode from event hci_event_inquiry_result_with_rssi 650 * @param event packet 651 * @return page_scan_repetition_mode 652 * @note: btstack_type 1 653 */ 654 static inline uint8_t hci_event_inquiry_result_with_rssi_get_page_scan_repetition_mode(const uint8_t * event){ 655 return event[9]; 656 } 657 /** 658 * @brief Get field reserved from event hci_event_inquiry_result_with_rssi 659 * @param event packet 660 * @return reserved 661 * @note: btstack_type 1 662 */ 663 static inline uint8_t hci_event_inquiry_result_with_rssi_get_reserved(const uint8_t * event){ 664 return event[10]; 665 } 666 /** 667 * @brief Get field class_of_device from event hci_event_inquiry_result_with_rssi 668 * @param event packet 669 * @return class_of_device 670 * @note: btstack_type 3 671 */ 672 static inline uint32_t hci_event_inquiry_result_with_rssi_get_class_of_device(const uint8_t * event){ 673 return little_endian_read_24(event, 11); 674 } 675 /** 676 * @brief Get field clock_offset from event hci_event_inquiry_result_with_rssi 677 * @param event packet 678 * @return clock_offset 679 * @note: btstack_type 2 680 */ 681 static inline uint16_t hci_event_inquiry_result_with_rssi_get_clock_offset(const uint8_t * event){ 682 return little_endian_read_16(event, 14); 683 } 684 /** 685 * @brief Get field rssi from event hci_event_inquiry_result_with_rssi 686 * @param event packet 687 * @return rssi 688 * @note: btstack_type 1 689 */ 690 static inline uint8_t hci_event_inquiry_result_with_rssi_get_rssi(const uint8_t * event){ 691 return event[16]; 692 } 693 694 /** 695 * @brief Get field status from event hci_event_synchronous_connection_complete 696 * @param event packet 697 * @return status 698 * @note: btstack_type 1 699 */ 700 static inline uint8_t hci_event_synchronous_connection_complete_get_status(const uint8_t * event){ 701 return event[2]; 702 } 703 /** 704 * @brief Get field handle from event hci_event_synchronous_connection_complete 705 * @param event packet 706 * @return handle 707 * @note: btstack_type H 708 */ 709 static inline hci_con_handle_t hci_event_synchronous_connection_complete_get_handle(const uint8_t * event){ 710 return little_endian_read_16(event, 3); 711 } 712 /** 713 * @brief Get field bd_addr from event hci_event_synchronous_connection_complete 714 * @param event packet 715 * @param Pointer to storage for bd_addr 716 * @note: btstack_type B 717 */ 718 static inline void hci_event_synchronous_connection_complete_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 719 reverse_bd_addr(&event[5], bd_addr); 720 } 721 /** 722 * @brief Get field link_type from event hci_event_synchronous_connection_complete 723 * @param event packet 724 * @return link_type 725 * @note: btstack_type 1 726 */ 727 static inline uint8_t hci_event_synchronous_connection_complete_get_link_type(const uint8_t * event){ 728 return event[11]; 729 } 730 /** 731 * @brief Get field transmission_interval from event hci_event_synchronous_connection_complete 732 * @param event packet 733 * @return transmission_interval 734 * @note: btstack_type 1 735 */ 736 static inline uint8_t hci_event_synchronous_connection_complete_get_transmission_interval(const uint8_t * event){ 737 return event[12]; 738 } 739 /** 740 * @brief Get field retransmission_interval from event hci_event_synchronous_connection_complete 741 * @param event packet 742 * @return retransmission_interval 743 * @note: btstack_type 1 744 */ 745 static inline uint8_t hci_event_synchronous_connection_complete_get_retransmission_interval(const uint8_t * event){ 746 return event[13]; 747 } 748 /** 749 * @brief Get field rx_packet_length from event hci_event_synchronous_connection_complete 750 * @param event packet 751 * @return rx_packet_length 752 * @note: btstack_type 2 753 */ 754 static inline uint16_t hci_event_synchronous_connection_complete_get_rx_packet_length(const uint8_t * event){ 755 return little_endian_read_16(event, 14); 756 } 757 /** 758 * @brief Get field tx_packet_length from event hci_event_synchronous_connection_complete 759 * @param event packet 760 * @return tx_packet_length 761 * @note: btstack_type 2 762 */ 763 static inline uint16_t hci_event_synchronous_connection_complete_get_tx_packet_length(const uint8_t * event){ 764 return little_endian_read_16(event, 16); 765 } 766 /** 767 * @brief Get field air_mode from event hci_event_synchronous_connection_complete 768 * @param event packet 769 * @return air_mode 770 * @note: btstack_type 1 771 */ 772 static inline uint8_t hci_event_synchronous_connection_complete_get_air_mode(const uint8_t * event){ 773 return event[18]; 774 } 775 776 /** 777 * @brief Get field num_responses from event hci_event_extended_inquiry_response 778 * @param event packet 779 * @return num_responses 780 * @note: btstack_type 1 781 */ 782 static inline uint8_t hci_event_extended_inquiry_response_get_num_responses(const uint8_t * event){ 783 return event[2]; 784 } 785 /** 786 * @brief Get field bd_addr from event hci_event_extended_inquiry_response 787 * @param event packet 788 * @param Pointer to storage for bd_addr 789 * @note: btstack_type B 790 */ 791 static inline void hci_event_extended_inquiry_response_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 792 reverse_bd_addr(&event[3], bd_addr); 793 } 794 /** 795 * @brief Get field page_scan_repetition_mode from event hci_event_extended_inquiry_response 796 * @param event packet 797 * @return page_scan_repetition_mode 798 * @note: btstack_type 1 799 */ 800 static inline uint8_t hci_event_extended_inquiry_response_get_page_scan_repetition_mode(const uint8_t * event){ 801 return event[9]; 802 } 803 /** 804 * @brief Get field reserved from event hci_event_extended_inquiry_response 805 * @param event packet 806 * @return reserved 807 * @note: btstack_type 1 808 */ 809 static inline uint8_t hci_event_extended_inquiry_response_get_reserved(const uint8_t * event){ 810 return event[10]; 811 } 812 /** 813 * @brief Get field class_of_device from event hci_event_extended_inquiry_response 814 * @param event packet 815 * @return class_of_device 816 * @note: btstack_type 3 817 */ 818 static inline uint32_t hci_event_extended_inquiry_response_get_class_of_device(const uint8_t * event){ 819 return little_endian_read_24(event, 11); 820 } 821 /** 822 * @brief Get field clock_offset from event hci_event_extended_inquiry_response 823 * @param event packet 824 * @return clock_offset 825 * @note: btstack_type 2 826 */ 827 static inline uint16_t hci_event_extended_inquiry_response_get_clock_offset(const uint8_t * event){ 828 return little_endian_read_16(event, 14); 829 } 830 /** 831 * @brief Get field rssi from event hci_event_extended_inquiry_response 832 * @param event packet 833 * @return rssi 834 * @note: btstack_type 1 835 */ 836 static inline uint8_t hci_event_extended_inquiry_response_get_rssi(const uint8_t * event){ 837 return event[16]; 838 } 839 840 /** 841 * @brief Get field status from event hci_event_encryption_key_refresh_complete 842 * @param event packet 843 * @return status 844 * @note: btstack_type 1 845 */ 846 static inline uint8_t hci_event_encryption_key_refresh_complete_get_status(const uint8_t * event){ 847 return event[2]; 848 } 849 /** 850 * @brief Get field handle from event hci_event_encryption_key_refresh_complete 851 * @param event packet 852 * @return handle 853 * @note: btstack_type H 854 */ 855 static inline hci_con_handle_t hci_event_encryption_key_refresh_complete_get_handle(const uint8_t * event){ 856 return little_endian_read_16(event, 3); 857 } 858 859 /** 860 * @brief Get field state from event btstack_event_state 861 * @param event packet 862 * @return state 863 * @note: btstack_type 1 864 */ 865 static inline uint8_t btstack_event_state_get_state(const uint8_t * event){ 866 return event[2]; 867 } 868 869 870 /** 871 * @brief Get field discoverable from event btstack_event_discoverable_enabled 872 * @param event packet 873 * @return discoverable 874 * @note: btstack_type 1 875 */ 876 static inline uint8_t btstack_event_discoverable_enabled_get_discoverable(const uint8_t * event){ 877 return event[2]; 878 } 879 880 /** 881 * @brief Get field handle from event hci_event_sco_can_send_now 882 * @param event packet 883 * @param Pointer to storage for handle 884 * @note: btstack_type B 885 */ 886 static inline void hci_event_sco_can_send_now_get_handle(const uint8_t * event, bd_addr_t handle){ 887 reverse_bd_addr(&event[2], handle); 888 } 889 890 /** 891 * @brief Get field status from event l2cap_event_channel_opened 892 * @param event packet 893 * @return status 894 * @note: btstack_type 1 895 */ 896 static inline uint8_t l2cap_event_channel_opened_get_status(const uint8_t * event){ 897 return event[2]; 898 } 899 /** 900 * @brief Get field address from event l2cap_event_channel_opened 901 * @param event packet 902 * @param Pointer to storage for address 903 * @note: btstack_type B 904 */ 905 static inline void l2cap_event_channel_opened_get_address(const uint8_t * event, bd_addr_t address){ 906 reverse_bd_addr(&event[3], address); 907 } 908 /** 909 * @brief Get field handle from event l2cap_event_channel_opened 910 * @param event packet 911 * @return handle 912 * @note: btstack_type H 913 */ 914 static inline hci_con_handle_t l2cap_event_channel_opened_get_handle(const uint8_t * event){ 915 return little_endian_read_16(event, 9); 916 } 917 /** 918 * @brief Get field psm from event l2cap_event_channel_opened 919 * @param event packet 920 * @return psm 921 * @note: btstack_type 2 922 */ 923 static inline uint16_t l2cap_event_channel_opened_get_psm(const uint8_t * event){ 924 return little_endian_read_16(event, 11); 925 } 926 /** 927 * @brief Get field local_cid from event l2cap_event_channel_opened 928 * @param event packet 929 * @return local_cid 930 * @note: btstack_type 2 931 */ 932 static inline uint16_t l2cap_event_channel_opened_get_local_cid(const uint8_t * event){ 933 return little_endian_read_16(event, 13); 934 } 935 /** 936 * @brief Get field remote_cid from event l2cap_event_channel_opened 937 * @param event packet 938 * @return remote_cid 939 * @note: btstack_type 2 940 */ 941 static inline uint16_t l2cap_event_channel_opened_get_remote_cid(const uint8_t * event){ 942 return little_endian_read_16(event, 15); 943 } 944 /** 945 * @brief Get field local_mtu from event l2cap_event_channel_opened 946 * @param event packet 947 * @return local_mtu 948 * @note: btstack_type 2 949 */ 950 static inline uint16_t l2cap_event_channel_opened_get_local_mtu(const uint8_t * event){ 951 return little_endian_read_16(event, 17); 952 } 953 /** 954 * @brief Get field remote_mtu from event l2cap_event_channel_opened 955 * @param event packet 956 * @return remote_mtu 957 * @note: btstack_type 2 958 */ 959 static inline uint16_t l2cap_event_channel_opened_get_remote_mtu(const uint8_t * event){ 960 return little_endian_read_16(event, 19); 961 } 962 /** 963 * @brief Get field flush_timeout from event l2cap_event_channel_opened 964 * @param event packet 965 * @return flush_timeout 966 * @note: btstack_type 2 967 */ 968 static inline uint16_t l2cap_event_channel_opened_get_flush_timeout(const uint8_t * event){ 969 return little_endian_read_16(event, 21); 970 } 971 972 /** 973 * @brief Get field local_cid from event l2cap_event_channel_closed 974 * @param event packet 975 * @return local_cid 976 * @note: btstack_type 2 977 */ 978 static inline uint16_t l2cap_event_channel_closed_get_local_cid(const uint8_t * event){ 979 return little_endian_read_16(event, 2); 980 } 981 982 /** 983 * @brief Get field status from event l2cap_event_incoming_connection 984 * @param event packet 985 * @return status 986 * @note: btstack_type 1 987 */ 988 static inline uint8_t l2cap_event_incoming_connection_get_status(const uint8_t * event){ 989 return event[2]; 990 } 991 /** 992 * @brief Get field address from event l2cap_event_incoming_connection 993 * @param event packet 994 * @param Pointer to storage for address 995 * @note: btstack_type B 996 */ 997 static inline void l2cap_event_incoming_connection_get_address(const uint8_t * event, bd_addr_t address){ 998 reverse_bd_addr(&event[3], address); 999 } 1000 /** 1001 * @brief Get field handle from event l2cap_event_incoming_connection 1002 * @param event packet 1003 * @return handle 1004 * @note: btstack_type H 1005 */ 1006 static inline hci_con_handle_t l2cap_event_incoming_connection_get_handle(const uint8_t * event){ 1007 return little_endian_read_16(event, 9); 1008 } 1009 /** 1010 * @brief Get field psm from event l2cap_event_incoming_connection 1011 * @param event packet 1012 * @return psm 1013 * @note: btstack_type 2 1014 */ 1015 static inline uint16_t l2cap_event_incoming_connection_get_psm(const uint8_t * event){ 1016 return little_endian_read_16(event, 11); 1017 } 1018 /** 1019 * @brief Get field local_cid from event l2cap_event_incoming_connection 1020 * @param event packet 1021 * @return local_cid 1022 * @note: btstack_type 2 1023 */ 1024 static inline uint16_t l2cap_event_incoming_connection_get_local_cid(const uint8_t * event){ 1025 return little_endian_read_16(event, 13); 1026 } 1027 /** 1028 * @brief Get field remote_cid from event l2cap_event_incoming_connection 1029 * @param event packet 1030 * @return remote_cid 1031 * @note: btstack_type 2 1032 */ 1033 static inline uint16_t l2cap_event_incoming_connection_get_remote_cid(const uint8_t * event){ 1034 return little_endian_read_16(event, 15); 1035 } 1036 1037 /** 1038 * @brief Get field status from event l2cap_event_service_registered 1039 * @param event packet 1040 * @return status 1041 * @note: btstack_type 1 1042 */ 1043 static inline uint8_t l2cap_event_service_registered_get_status(const uint8_t * event){ 1044 return event[2]; 1045 } 1046 /** 1047 * @brief Get field psm from event l2cap_event_service_registered 1048 * @param event packet 1049 * @return psm 1050 * @note: btstack_type 2 1051 */ 1052 static inline uint16_t l2cap_event_service_registered_get_psm(const uint8_t * event){ 1053 return little_endian_read_16(event, 3); 1054 } 1055 1056 /** 1057 * @brief Get field handle from event l2cap_event_connection_parameter_update_request 1058 * @param event packet 1059 * @return handle 1060 * @note: btstack_type H 1061 */ 1062 static inline hci_con_handle_t l2cap_event_connection_parameter_update_request_get_handle(const uint8_t * event){ 1063 return little_endian_read_16(event, 2); 1064 } 1065 /** 1066 * @brief Get field interval_min from event l2cap_event_connection_parameter_update_request 1067 * @param event packet 1068 * @return interval_min 1069 * @note: btstack_type 2 1070 */ 1071 static inline uint16_t l2cap_event_connection_parameter_update_request_get_interval_min(const uint8_t * event){ 1072 return little_endian_read_16(event, 4); 1073 } 1074 /** 1075 * @brief Get field interval_max from event l2cap_event_connection_parameter_update_request 1076 * @param event packet 1077 * @return interval_max 1078 * @note: btstack_type 2 1079 */ 1080 static inline uint16_t l2cap_event_connection_parameter_update_request_get_interval_max(const uint8_t * event){ 1081 return little_endian_read_16(event, 6); 1082 } 1083 /** 1084 * @brief Get field latencey from event l2cap_event_connection_parameter_update_request 1085 * @param event packet 1086 * @return latencey 1087 * @note: btstack_type 2 1088 */ 1089 static inline uint16_t l2cap_event_connection_parameter_update_request_get_latencey(const uint8_t * event){ 1090 return little_endian_read_16(event, 8); 1091 } 1092 /** 1093 * @brief Get field timeout_multiplier from event l2cap_event_connection_parameter_update_request 1094 * @param event packet 1095 * @return timeout_multiplier 1096 * @note: btstack_type 2 1097 */ 1098 static inline uint16_t l2cap_event_connection_parameter_update_request_get_timeout_multiplier(const uint8_t * event){ 1099 return little_endian_read_16(event, 10); 1100 } 1101 1102 /** 1103 * @brief Get field handle from event l2cap_event_connection_parameter_update_response 1104 * @param event packet 1105 * @return handle 1106 * @note: btstack_type H 1107 */ 1108 static inline hci_con_handle_t l2cap_event_connection_parameter_update_response_get_handle(const uint8_t * event){ 1109 return little_endian_read_16(event, 2); 1110 } 1111 1112 /** 1113 * @brief Get field local_cid from event l2cap_event_can_send_now 1114 * @param event packet 1115 * @return local_cid 1116 * @note: btstack_type 2 1117 */ 1118 static inline uint16_t l2cap_event_can_send_now_get_local_cid(const uint8_t * event){ 1119 return little_endian_read_16(event, 2); 1120 } 1121 1122 /** 1123 * @brief Get field status from event rfcomm_event_channel_opened 1124 * @param event packet 1125 * @return status 1126 * @note: btstack_type 1 1127 */ 1128 static inline uint8_t rfcomm_event_channel_opened_get_status(const uint8_t * event){ 1129 return event[2]; 1130 } 1131 /** 1132 * @brief Get field bd_addr from event rfcomm_event_channel_opened 1133 * @param event packet 1134 * @param Pointer to storage for bd_addr 1135 * @note: btstack_type B 1136 */ 1137 static inline void rfcomm_event_channel_opened_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 1138 reverse_bd_addr(&event[3], bd_addr); 1139 } 1140 /** 1141 * @brief Get field con_handle from event rfcomm_event_channel_opened 1142 * @param event packet 1143 * @return con_handle 1144 * @note: btstack_type 2 1145 */ 1146 static inline uint16_t rfcomm_event_channel_opened_get_con_handle(const uint8_t * event){ 1147 return little_endian_read_16(event, 9); 1148 } 1149 /** 1150 * @brief Get field server_channel from event rfcomm_event_channel_opened 1151 * @param event packet 1152 * @return server_channel 1153 * @note: btstack_type 1 1154 */ 1155 static inline uint8_t rfcomm_event_channel_opened_get_server_channel(const uint8_t * event){ 1156 return event[11]; 1157 } 1158 /** 1159 * @brief Get field rfcomm_cid from event rfcomm_event_channel_opened 1160 * @param event packet 1161 * @return rfcomm_cid 1162 * @note: btstack_type 2 1163 */ 1164 static inline uint16_t rfcomm_event_channel_opened_get_rfcomm_cid(const uint8_t * event){ 1165 return little_endian_read_16(event, 12); 1166 } 1167 /** 1168 * @brief Get field max_frame_size from event rfcomm_event_channel_opened 1169 * @param event packet 1170 * @return max_frame_size 1171 * @note: btstack_type 2 1172 */ 1173 static inline uint16_t rfcomm_event_channel_opened_get_max_frame_size(const uint8_t * event){ 1174 return little_endian_read_16(event, 14); 1175 } 1176 1177 /** 1178 * @brief Get field rfcomm_cid from event rfcomm_event_channel_closed 1179 * @param event packet 1180 * @return rfcomm_cid 1181 * @note: btstack_type 2 1182 */ 1183 static inline uint16_t rfcomm_event_channel_closed_get_rfcomm_cid(const uint8_t * event){ 1184 return little_endian_read_16(event, 2); 1185 } 1186 1187 /** 1188 * @brief Get field bd_addr from event rfcomm_event_incoming_connection 1189 * @param event packet 1190 * @param Pointer to storage for bd_addr 1191 * @note: btstack_type B 1192 */ 1193 static inline void rfcomm_event_incoming_connection_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 1194 reverse_bd_addr(&event[2], bd_addr); 1195 } 1196 /** 1197 * @brief Get field server_channel from event rfcomm_event_incoming_connection 1198 * @param event packet 1199 * @return server_channel 1200 * @note: btstack_type 1 1201 */ 1202 static inline uint8_t rfcomm_event_incoming_connection_get_server_channel(const uint8_t * event){ 1203 return event[8]; 1204 } 1205 /** 1206 * @brief Get field rfcomm_cid from event rfcomm_event_incoming_connection 1207 * @param event packet 1208 * @return rfcomm_cid 1209 * @note: btstack_type 2 1210 */ 1211 static inline uint16_t rfcomm_event_incoming_connection_get_rfcomm_cid(const uint8_t * event){ 1212 return little_endian_read_16(event, 9); 1213 } 1214 1215 /** 1216 * @brief Get field rfcomm_cid from event rfcomm_event_remote_line_status 1217 * @param event packet 1218 * @return rfcomm_cid 1219 * @note: btstack_type 2 1220 */ 1221 static inline uint16_t rfcomm_event_remote_line_status_get_rfcomm_cid(const uint8_t * event){ 1222 return little_endian_read_16(event, 2); 1223 } 1224 /** 1225 * @brief Get field line_status from event rfcomm_event_remote_line_status 1226 * @param event packet 1227 * @return line_status 1228 * @note: btstack_type 1 1229 */ 1230 static inline uint8_t rfcomm_event_remote_line_status_get_line_status(const uint8_t * event){ 1231 return event[4]; 1232 } 1233 1234 /** 1235 * @brief Get field rfcomm_cid from event rfcomm_event_credits 1236 * @param event packet 1237 * @return rfcomm_cid 1238 * @note: btstack_type 2 1239 */ 1240 static inline uint16_t rfcomm_event_credits_get_rfcomm_cid(const uint8_t * event){ 1241 return little_endian_read_16(event, 2); 1242 } 1243 /** 1244 * @brief Get field credits from event rfcomm_event_credits 1245 * @param event packet 1246 * @return credits 1247 * @note: btstack_type 1 1248 */ 1249 static inline uint8_t rfcomm_event_credits_get_credits(const uint8_t * event){ 1250 return event[4]; 1251 } 1252 1253 /** 1254 * @brief Get field status from event rfcomm_event_service_registered 1255 * @param event packet 1256 * @return status 1257 * @note: btstack_type 1 1258 */ 1259 static inline uint8_t rfcomm_event_service_registered_get_status(const uint8_t * event){ 1260 return event[2]; 1261 } 1262 /** 1263 * @brief Get field channel_id from event rfcomm_event_service_registered 1264 * @param event packet 1265 * @return channel_id 1266 * @note: btstack_type 1 1267 */ 1268 static inline uint8_t rfcomm_event_service_registered_get_channel_id(const uint8_t * event){ 1269 return event[3]; 1270 } 1271 1272 /** 1273 * @brief Get field status from event rfcomm_event_persistent_channel 1274 * @param event packet 1275 * @return status 1276 * @note: btstack_type 1 1277 */ 1278 static inline uint8_t rfcomm_event_persistent_channel_get_status(const uint8_t * event){ 1279 return event[2]; 1280 } 1281 /** 1282 * @brief Get field server_channel_id from event rfcomm_event_persistent_channel 1283 * @param event packet 1284 * @return server_channel_id 1285 * @note: btstack_type 1 1286 */ 1287 static inline uint8_t rfcomm_event_persistent_channel_get_server_channel_id(const uint8_t * event){ 1288 return event[3]; 1289 } 1290 1291 /** 1292 * @brief Get field rfcomm_cid from event rfcomm_event_remote_modem_status 1293 * @param event packet 1294 * @return rfcomm_cid 1295 * @note: btstack_type 2 1296 */ 1297 static inline uint16_t rfcomm_event_remote_modem_status_get_rfcomm_cid(const uint8_t * event){ 1298 return little_endian_read_16(event, 2); 1299 } 1300 /** 1301 * @brief Get field modem_status from event rfcomm_event_remote_modem_status 1302 * @param event packet 1303 * @return modem_status 1304 * @note: btstack_type 1 1305 */ 1306 static inline uint8_t rfcomm_event_remote_modem_status_get_modem_status(const uint8_t * event){ 1307 return event[4]; 1308 } 1309 1310 /** 1311 * @brief Get field rfcomm_cid from event rfcomm_event_can_send_now 1312 * @param event packet 1313 * @return rfcomm_cid 1314 * @note: btstack_type 2 1315 */ 1316 static inline uint16_t rfcomm_event_can_send_now_get_rfcomm_cid(const uint8_t * event){ 1317 return little_endian_read_16(event, 2); 1318 } 1319 1320 /** 1321 * @brief Get field status from event sdp_event_service_registered 1322 * @param event packet 1323 * @return status 1324 * @note: btstack_type 1 1325 */ 1326 static inline uint8_t sdp_event_service_registered_get_status(const uint8_t * event){ 1327 return event[2]; 1328 } 1329 /** 1330 * @brief Get field service_record_handle from event sdp_event_service_registered 1331 * @param event packet 1332 * @return service_record_handle 1333 * @note: btstack_type 4 1334 */ 1335 static inline uint32_t sdp_event_service_registered_get_service_record_handle(const uint8_t * event){ 1336 return little_endian_read_32(event, 3); 1337 } 1338 1339 /** 1340 * @brief Get field status from event sdp_event_query_complete 1341 * @param event packet 1342 * @return status 1343 * @note: btstack_type 1 1344 */ 1345 static inline uint8_t sdp_event_query_complete_get_status(const uint8_t * event){ 1346 return event[2]; 1347 } 1348 1349 /** 1350 * @brief Get field rfcomm_channel from event sdp_event_query_rfcomm_service 1351 * @param event packet 1352 * @return rfcomm_channel 1353 * @note: btstack_type 1 1354 */ 1355 static inline uint8_t sdp_event_query_rfcomm_service_get_rfcomm_channel(const uint8_t * event){ 1356 return event[2]; 1357 } 1358 /** 1359 * @brief Get field name from event sdp_event_query_rfcomm_service 1360 * @param event packet 1361 * @return name 1362 * @note: btstack_type T 1363 */ 1364 static inline const char * sdp_event_query_rfcomm_service_get_name(const uint8_t * event){ 1365 return (const char *) &event[3]; 1366 } 1367 1368 /** 1369 * @brief Get field record_id from event sdp_event_query_attribute_byte 1370 * @param event packet 1371 * @return record_id 1372 * @note: btstack_type 2 1373 */ 1374 static inline uint16_t sdp_event_query_attribute_byte_get_record_id(const uint8_t * event){ 1375 return little_endian_read_16(event, 2); 1376 } 1377 /** 1378 * @brief Get field attribute_id from event sdp_event_query_attribute_byte 1379 * @param event packet 1380 * @return attribute_id 1381 * @note: btstack_type 2 1382 */ 1383 static inline uint16_t sdp_event_query_attribute_byte_get_attribute_id(const uint8_t * event){ 1384 return little_endian_read_16(event, 4); 1385 } 1386 /** 1387 * @brief Get field attribute_length from event sdp_event_query_attribute_byte 1388 * @param event packet 1389 * @return attribute_length 1390 * @note: btstack_type 2 1391 */ 1392 static inline uint16_t sdp_event_query_attribute_byte_get_attribute_length(const uint8_t * event){ 1393 return little_endian_read_16(event, 6); 1394 } 1395 /** 1396 * @brief Get field data_offset from event sdp_event_query_attribute_byte 1397 * @param event packet 1398 * @return data_offset 1399 * @note: btstack_type 2 1400 */ 1401 static inline uint16_t sdp_event_query_attribute_byte_get_data_offset(const uint8_t * event){ 1402 return little_endian_read_16(event, 8); 1403 } 1404 /** 1405 * @brief Get field data from event sdp_event_query_attribute_byte 1406 * @param event packet 1407 * @return data 1408 * @note: btstack_type 1 1409 */ 1410 static inline uint8_t sdp_event_query_attribute_byte_get_data(const uint8_t * event){ 1411 return event[10]; 1412 } 1413 1414 /** 1415 * @brief Get field record_id from event sdp_event_query_attribute_value 1416 * @param event packet 1417 * @return record_id 1418 * @note: btstack_type 2 1419 */ 1420 static inline uint16_t sdp_event_query_attribute_value_get_record_id(const uint8_t * event){ 1421 return little_endian_read_16(event, 2); 1422 } 1423 /** 1424 * @brief Get field attribute_id from event sdp_event_query_attribute_value 1425 * @param event packet 1426 * @return attribute_id 1427 * @note: btstack_type 2 1428 */ 1429 static inline uint16_t sdp_event_query_attribute_value_get_attribute_id(const uint8_t * event){ 1430 return little_endian_read_16(event, 4); 1431 } 1432 /** 1433 * @brief Get field attribute_length from event sdp_event_query_attribute_value 1434 * @param event packet 1435 * @return attribute_length 1436 * @note: btstack_type L 1437 */ 1438 static inline int sdp_event_query_attribute_value_get_attribute_length(const uint8_t * event){ 1439 return little_endian_read_16(event, 6); 1440 } 1441 /** 1442 * @brief Get field attribute_value from event sdp_event_query_attribute_value 1443 * @param event packet 1444 * @return attribute_value 1445 * @note: btstack_type V 1446 */ 1447 static inline const uint8_t * sdp_event_query_attribute_value_get_attribute_value(const uint8_t * event){ 1448 return &event[8]; 1449 } 1450 1451 /** 1452 * @brief Get field total_count from event sdp_event_query_service_record_handle 1453 * @param event packet 1454 * @return total_count 1455 * @note: btstack_type 2 1456 */ 1457 static inline uint16_t sdp_event_query_service_record_handle_get_total_count(const uint8_t * event){ 1458 return little_endian_read_16(event, 2); 1459 } 1460 /** 1461 * @brief Get field record_index from event sdp_event_query_service_record_handle 1462 * @param event packet 1463 * @return record_index 1464 * @note: btstack_type 2 1465 */ 1466 static inline uint16_t sdp_event_query_service_record_handle_get_record_index(const uint8_t * event){ 1467 return little_endian_read_16(event, 4); 1468 } 1469 /** 1470 * @brief Get field record_handle from event sdp_event_query_service_record_handle 1471 * @param event packet 1472 * @return record_handle 1473 * @note: btstack_type 4 1474 */ 1475 static inline uint32_t sdp_event_query_service_record_handle_get_record_handle(const uint8_t * event){ 1476 return little_endian_read_32(event, 6); 1477 } 1478 1479 #ifdef ENABLE_BLE 1480 /** 1481 * @brief Get field handle from event gatt_event_query_complete 1482 * @param event packet 1483 * @return handle 1484 * @note: btstack_type H 1485 */ 1486 static inline hci_con_handle_t gatt_event_query_complete_get_handle(const uint8_t * event){ 1487 return little_endian_read_16(event, 2); 1488 } 1489 /** 1490 * @brief Get field status from event gatt_event_query_complete 1491 * @param event packet 1492 * @return status 1493 * @note: btstack_type 1 1494 */ 1495 static inline uint8_t gatt_event_query_complete_get_status(const uint8_t * event){ 1496 return event[4]; 1497 } 1498 #endif 1499 1500 #ifdef ENABLE_BLE 1501 /** 1502 * @brief Get field handle from event gatt_event_service_query_result 1503 * @param event packet 1504 * @return handle 1505 * @note: btstack_type H 1506 */ 1507 static inline hci_con_handle_t gatt_event_service_query_result_get_handle(const uint8_t * event){ 1508 return little_endian_read_16(event, 2); 1509 } 1510 /** 1511 * @brief Get field service from event gatt_event_service_query_result 1512 * @param event packet 1513 * @param Pointer to storage for service 1514 * @note: btstack_type X 1515 */ 1516 static inline void gatt_event_service_query_result_get_service(const uint8_t * event, gatt_client_service_t * service){ 1517 gatt_client_deserialize_service(event, 4, service); 1518 } 1519 #endif 1520 1521 #ifdef ENABLE_BLE 1522 /** 1523 * @brief Get field handle from event gatt_event_characteristic_query_result 1524 * @param event packet 1525 * @return handle 1526 * @note: btstack_type H 1527 */ 1528 static inline hci_con_handle_t gatt_event_characteristic_query_result_get_handle(const uint8_t * event){ 1529 return little_endian_read_16(event, 2); 1530 } 1531 /** 1532 * @brief Get field characteristic from event gatt_event_characteristic_query_result 1533 * @param event packet 1534 * @param Pointer to storage for characteristic 1535 * @note: btstack_type Y 1536 */ 1537 static inline void gatt_event_characteristic_query_result_get_characteristic(const uint8_t * event, gatt_client_characteristic_t * characteristic){ 1538 gatt_client_deserialize_characteristic(event, 4, characteristic); 1539 } 1540 #endif 1541 1542 #ifdef ENABLE_BLE 1543 /** 1544 * @brief Get field handle from event gatt_event_included_service_query_result 1545 * @param event packet 1546 * @return handle 1547 * @note: btstack_type H 1548 */ 1549 static inline hci_con_handle_t gatt_event_included_service_query_result_get_handle(const uint8_t * event){ 1550 return little_endian_read_16(event, 2); 1551 } 1552 /** 1553 * @brief Get field include_handle from event gatt_event_included_service_query_result 1554 * @param event packet 1555 * @return include_handle 1556 * @note: btstack_type 2 1557 */ 1558 static inline uint16_t gatt_event_included_service_query_result_get_include_handle(const uint8_t * event){ 1559 return little_endian_read_16(event, 4); 1560 } 1561 /** 1562 * @brief Get field service from event gatt_event_included_service_query_result 1563 * @param event packet 1564 * @param Pointer to storage for service 1565 * @note: btstack_type X 1566 */ 1567 static inline void gatt_event_included_service_query_result_get_service(const uint8_t * event, gatt_client_service_t * service){ 1568 gatt_client_deserialize_service(event, 6, service); 1569 } 1570 #endif 1571 1572 #ifdef ENABLE_BLE 1573 /** 1574 * @brief Get field handle from event gatt_event_all_characteristic_descriptors_query_result 1575 * @param event packet 1576 * @return handle 1577 * @note: btstack_type H 1578 */ 1579 static inline hci_con_handle_t gatt_event_all_characteristic_descriptors_query_result_get_handle(const uint8_t * event){ 1580 return little_endian_read_16(event, 2); 1581 } 1582 /** 1583 * @brief Get field characteristic_descriptor from event gatt_event_all_characteristic_descriptors_query_result 1584 * @param event packet 1585 * @param Pointer to storage for characteristic_descriptor 1586 * @note: btstack_type Z 1587 */ 1588 static inline void gatt_event_all_characteristic_descriptors_query_result_get_characteristic_descriptor(const uint8_t * event, gatt_client_characteristic_descriptor_t * characteristic_descriptor){ 1589 gatt_client_deserialize_characteristic_descriptor(event, 4, characteristic_descriptor); 1590 } 1591 #endif 1592 1593 #ifdef ENABLE_BLE 1594 /** 1595 * @brief Get field handle from event gatt_event_characteristic_value_query_result 1596 * @param event packet 1597 * @return handle 1598 * @note: btstack_type H 1599 */ 1600 static inline hci_con_handle_t gatt_event_characteristic_value_query_result_get_handle(const uint8_t * event){ 1601 return little_endian_read_16(event, 2); 1602 } 1603 /** 1604 * @brief Get field value_handle from event gatt_event_characteristic_value_query_result 1605 * @param event packet 1606 * @return value_handle 1607 * @note: btstack_type 2 1608 */ 1609 static inline uint16_t gatt_event_characteristic_value_query_result_get_value_handle(const uint8_t * event){ 1610 return little_endian_read_16(event, 4); 1611 } 1612 /** 1613 * @brief Get field value_length from event gatt_event_characteristic_value_query_result 1614 * @param event packet 1615 * @return value_length 1616 * @note: btstack_type L 1617 */ 1618 static inline int gatt_event_characteristic_value_query_result_get_value_length(const uint8_t * event){ 1619 return little_endian_read_16(event, 6); 1620 } 1621 /** 1622 * @brief Get field value from event gatt_event_characteristic_value_query_result 1623 * @param event packet 1624 * @return value 1625 * @note: btstack_type V 1626 */ 1627 static inline const uint8_t * gatt_event_characteristic_value_query_result_get_value(const uint8_t * event){ 1628 return &event[8]; 1629 } 1630 #endif 1631 1632 #ifdef ENABLE_BLE 1633 /** 1634 * @brief Get field handle from event gatt_event_long_characteristic_value_query_result 1635 * @param event packet 1636 * @return handle 1637 * @note: btstack_type H 1638 */ 1639 static inline hci_con_handle_t gatt_event_long_characteristic_value_query_result_get_handle(const uint8_t * event){ 1640 return little_endian_read_16(event, 2); 1641 } 1642 /** 1643 * @brief Get field value_handle from event gatt_event_long_characteristic_value_query_result 1644 * @param event packet 1645 * @return value_handle 1646 * @note: btstack_type 2 1647 */ 1648 static inline uint16_t gatt_event_long_characteristic_value_query_result_get_value_handle(const uint8_t * event){ 1649 return little_endian_read_16(event, 4); 1650 } 1651 /** 1652 * @brief Get field value_offset from event gatt_event_long_characteristic_value_query_result 1653 * @param event packet 1654 * @return value_offset 1655 * @note: btstack_type 2 1656 */ 1657 static inline uint16_t gatt_event_long_characteristic_value_query_result_get_value_offset(const uint8_t * event){ 1658 return little_endian_read_16(event, 6); 1659 } 1660 /** 1661 * @brief Get field value_length from event gatt_event_long_characteristic_value_query_result 1662 * @param event packet 1663 * @return value_length 1664 * @note: btstack_type L 1665 */ 1666 static inline int gatt_event_long_characteristic_value_query_result_get_value_length(const uint8_t * event){ 1667 return little_endian_read_16(event, 8); 1668 } 1669 /** 1670 * @brief Get field value from event gatt_event_long_characteristic_value_query_result 1671 * @param event packet 1672 * @return value 1673 * @note: btstack_type V 1674 */ 1675 static inline const uint8_t * gatt_event_long_characteristic_value_query_result_get_value(const uint8_t * event){ 1676 return &event[10]; 1677 } 1678 #endif 1679 1680 #ifdef ENABLE_BLE 1681 /** 1682 * @brief Get field handle from event gatt_event_notification 1683 * @param event packet 1684 * @return handle 1685 * @note: btstack_type H 1686 */ 1687 static inline hci_con_handle_t gatt_event_notification_get_handle(const uint8_t * event){ 1688 return little_endian_read_16(event, 2); 1689 } 1690 /** 1691 * @brief Get field value_handle from event gatt_event_notification 1692 * @param event packet 1693 * @return value_handle 1694 * @note: btstack_type 2 1695 */ 1696 static inline uint16_t gatt_event_notification_get_value_handle(const uint8_t * event){ 1697 return little_endian_read_16(event, 4); 1698 } 1699 /** 1700 * @brief Get field value_length from event gatt_event_notification 1701 * @param event packet 1702 * @return value_length 1703 * @note: btstack_type L 1704 */ 1705 static inline int gatt_event_notification_get_value_length(const uint8_t * event){ 1706 return little_endian_read_16(event, 6); 1707 } 1708 /** 1709 * @brief Get field value from event gatt_event_notification 1710 * @param event packet 1711 * @return value 1712 * @note: btstack_type V 1713 */ 1714 static inline const uint8_t * gatt_event_notification_get_value(const uint8_t * event){ 1715 return &event[8]; 1716 } 1717 #endif 1718 1719 #ifdef ENABLE_BLE 1720 /** 1721 * @brief Get field handle from event gatt_event_indication 1722 * @param event packet 1723 * @return handle 1724 * @note: btstack_type H 1725 */ 1726 static inline hci_con_handle_t gatt_event_indication_get_handle(const uint8_t * event){ 1727 return little_endian_read_16(event, 2); 1728 } 1729 /** 1730 * @brief Get field value_handle from event gatt_event_indication 1731 * @param event packet 1732 * @return value_handle 1733 * @note: btstack_type 2 1734 */ 1735 static inline uint16_t gatt_event_indication_get_value_handle(const uint8_t * event){ 1736 return little_endian_read_16(event, 4); 1737 } 1738 /** 1739 * @brief Get field value_length from event gatt_event_indication 1740 * @param event packet 1741 * @return value_length 1742 * @note: btstack_type L 1743 */ 1744 static inline int gatt_event_indication_get_value_length(const uint8_t * event){ 1745 return little_endian_read_16(event, 6); 1746 } 1747 /** 1748 * @brief Get field value from event gatt_event_indication 1749 * @param event packet 1750 * @return value 1751 * @note: btstack_type V 1752 */ 1753 static inline const uint8_t * gatt_event_indication_get_value(const uint8_t * event){ 1754 return &event[8]; 1755 } 1756 #endif 1757 1758 #ifdef ENABLE_BLE 1759 /** 1760 * @brief Get field descriptor_handle from event gatt_event_characteristic_descriptor_query_result 1761 * @param event packet 1762 * @return descriptor_handle 1763 * @note: btstack_type H 1764 */ 1765 static inline hci_con_handle_t gatt_event_characteristic_descriptor_query_result_get_descriptor_handle(const uint8_t * event){ 1766 return little_endian_read_16(event, 2); 1767 } 1768 /** 1769 * @brief Get field descriptor_length from event gatt_event_characteristic_descriptor_query_result 1770 * @param event packet 1771 * @return descriptor_length 1772 * @note: btstack_type 2 1773 */ 1774 static inline uint16_t gatt_event_characteristic_descriptor_query_result_get_descriptor_length(const uint8_t * event){ 1775 return little_endian_read_16(event, 4); 1776 } 1777 /** 1778 * @brief Get field descriptor from event gatt_event_characteristic_descriptor_query_result 1779 * @param event packet 1780 * @return descriptor 1781 * @note: btstack_type L 1782 */ 1783 static inline int gatt_event_characteristic_descriptor_query_result_get_descriptor(const uint8_t * event){ 1784 return little_endian_read_16(event, 6); 1785 } 1786 #endif 1787 1788 #ifdef ENABLE_BLE 1789 /** 1790 * @brief Get field handle from event gatt_event_long_characteristic_descriptor_query_result 1791 * @param event packet 1792 * @return handle 1793 * @note: btstack_type H 1794 */ 1795 static inline hci_con_handle_t gatt_event_long_characteristic_descriptor_query_result_get_handle(const uint8_t * event){ 1796 return little_endian_read_16(event, 2); 1797 } 1798 /** 1799 * @brief Get field descriptor_offset from event gatt_event_long_characteristic_descriptor_query_result 1800 * @param event packet 1801 * @return descriptor_offset 1802 * @note: btstack_type 2 1803 */ 1804 static inline uint16_t gatt_event_long_characteristic_descriptor_query_result_get_descriptor_offset(const uint8_t * event){ 1805 return little_endian_read_16(event, 4); 1806 } 1807 /** 1808 * @brief Get field descriptor_length from event gatt_event_long_characteristic_descriptor_query_result 1809 * @param event packet 1810 * @return descriptor_length 1811 * @note: btstack_type L 1812 */ 1813 static inline int gatt_event_long_characteristic_descriptor_query_result_get_descriptor_length(const uint8_t * event){ 1814 return little_endian_read_16(event, 6); 1815 } 1816 /** 1817 * @brief Get field descriptor from event gatt_event_long_characteristic_descriptor_query_result 1818 * @param event packet 1819 * @return descriptor 1820 * @note: btstack_type V 1821 */ 1822 static inline const uint8_t * gatt_event_long_characteristic_descriptor_query_result_get_descriptor(const uint8_t * event){ 1823 return &event[8]; 1824 } 1825 #endif 1826 1827 #ifdef ENABLE_BLE 1828 /** 1829 * @brief Get field handle from event gatt_event_mtu 1830 * @param event packet 1831 * @return handle 1832 * @note: btstack_type H 1833 */ 1834 static inline hci_con_handle_t gatt_event_mtu_get_handle(const uint8_t * event){ 1835 return little_endian_read_16(event, 2); 1836 } 1837 /** 1838 * @brief Get field MTU from event gatt_event_mtu 1839 * @param event packet 1840 * @return MTU 1841 * @note: btstack_type 2 1842 */ 1843 static inline uint16_t gatt_event_mtu_get_MTU(const uint8_t * event){ 1844 return little_endian_read_16(event, 4); 1845 } 1846 #endif 1847 1848 /** 1849 * @brief Get field status from event bnep_event_service_registered 1850 * @param event packet 1851 * @return status 1852 * @note: btstack_type 1 1853 */ 1854 static inline uint8_t bnep_event_service_registered_get_status(const uint8_t * event){ 1855 return event[2]; 1856 } 1857 /** 1858 * @brief Get field service_uuid from event bnep_event_service_registered 1859 * @param event packet 1860 * @return service_uuid 1861 * @note: btstack_type 2 1862 */ 1863 static inline uint16_t bnep_event_service_registered_get_service_uuid(const uint8_t * event){ 1864 return little_endian_read_16(event, 3); 1865 } 1866 1867 /** 1868 * @brief Get field status from event bnep_event_channel_opened 1869 * @param event packet 1870 * @return status 1871 * @note: btstack_type 1 1872 */ 1873 static inline uint8_t bnep_event_channel_opened_get_status(const uint8_t * event){ 1874 return event[2]; 1875 } 1876 /** 1877 * @brief Get field bnep_cid from event bnep_event_channel_opened 1878 * @param event packet 1879 * @return bnep_cid 1880 * @note: btstack_type 2 1881 */ 1882 static inline uint16_t bnep_event_channel_opened_get_bnep_cid(const uint8_t * event){ 1883 return little_endian_read_16(event, 3); 1884 } 1885 /** 1886 * @brief Get field source_uuid from event bnep_event_channel_opened 1887 * @param event packet 1888 * @return source_uuid 1889 * @note: btstack_type 2 1890 */ 1891 static inline uint16_t bnep_event_channel_opened_get_source_uuid(const uint8_t * event){ 1892 return little_endian_read_16(event, 5); 1893 } 1894 /** 1895 * @brief Get field destination_uuid from event bnep_event_channel_opened 1896 * @param event packet 1897 * @return destination_uuid 1898 * @note: btstack_type 2 1899 */ 1900 static inline uint16_t bnep_event_channel_opened_get_destination_uuid(const uint8_t * event){ 1901 return little_endian_read_16(event, 7); 1902 } 1903 /** 1904 * @brief Get field mtu from event bnep_event_channel_opened 1905 * @param event packet 1906 * @return mtu 1907 * @note: btstack_type 2 1908 */ 1909 static inline uint16_t bnep_event_channel_opened_get_mtu(const uint8_t * event){ 1910 return little_endian_read_16(event, 9); 1911 } 1912 /** 1913 * @brief Get field remote_address from event bnep_event_channel_opened 1914 * @param event packet 1915 * @param Pointer to storage for remote_address 1916 * @note: btstack_type B 1917 */ 1918 static inline void bnep_event_channel_opened_get_remote_address(const uint8_t * event, bd_addr_t remote_address){ 1919 reverse_bd_addr(&event[11], remote_address); 1920 } 1921 1922 /** 1923 * @brief Get field bnep_cid from event bnep_event_channel_closed 1924 * @param event packet 1925 * @return bnep_cid 1926 * @note: btstack_type 2 1927 */ 1928 static inline uint16_t bnep_event_channel_closed_get_bnep_cid(const uint8_t * event){ 1929 return little_endian_read_16(event, 2); 1930 } 1931 /** 1932 * @brief Get field source_uuid from event bnep_event_channel_closed 1933 * @param event packet 1934 * @return source_uuid 1935 * @note: btstack_type 2 1936 */ 1937 static inline uint16_t bnep_event_channel_closed_get_source_uuid(const uint8_t * event){ 1938 return little_endian_read_16(event, 4); 1939 } 1940 /** 1941 * @brief Get field destination_uuid from event bnep_event_channel_closed 1942 * @param event packet 1943 * @return destination_uuid 1944 * @note: btstack_type 2 1945 */ 1946 static inline uint16_t bnep_event_channel_closed_get_destination_uuid(const uint8_t * event){ 1947 return little_endian_read_16(event, 6); 1948 } 1949 /** 1950 * @brief Get field remote_address from event bnep_event_channel_closed 1951 * @param event packet 1952 * @param Pointer to storage for remote_address 1953 * @note: btstack_type B 1954 */ 1955 static inline void bnep_event_channel_closed_get_remote_address(const uint8_t * event, bd_addr_t remote_address){ 1956 reverse_bd_addr(&event[8], remote_address); 1957 } 1958 1959 /** 1960 * @brief Get field bnep_cid from event bnep_event_channel_timeout 1961 * @param event packet 1962 * @return bnep_cid 1963 * @note: btstack_type 2 1964 */ 1965 static inline uint16_t bnep_event_channel_timeout_get_bnep_cid(const uint8_t * event){ 1966 return little_endian_read_16(event, 2); 1967 } 1968 /** 1969 * @brief Get field source_uuid from event bnep_event_channel_timeout 1970 * @param event packet 1971 * @return source_uuid 1972 * @note: btstack_type 2 1973 */ 1974 static inline uint16_t bnep_event_channel_timeout_get_source_uuid(const uint8_t * event){ 1975 return little_endian_read_16(event, 4); 1976 } 1977 /** 1978 * @brief Get field destination_uuid from event bnep_event_channel_timeout 1979 * @param event packet 1980 * @return destination_uuid 1981 * @note: btstack_type 2 1982 */ 1983 static inline uint16_t bnep_event_channel_timeout_get_destination_uuid(const uint8_t * event){ 1984 return little_endian_read_16(event, 6); 1985 } 1986 /** 1987 * @brief Get field remote_address from event bnep_event_channel_timeout 1988 * @param event packet 1989 * @param Pointer to storage for remote_address 1990 * @note: btstack_type B 1991 */ 1992 static inline void bnep_event_channel_timeout_get_remote_address(const uint8_t * event, bd_addr_t remote_address){ 1993 reverse_bd_addr(&event[8], remote_address); 1994 } 1995 /** 1996 * @brief Get field channel_state from event bnep_event_channel_timeout 1997 * @param event packet 1998 * @return channel_state 1999 * @note: btstack_type 1 2000 */ 2001 static inline uint8_t bnep_event_channel_timeout_get_channel_state(const uint8_t * event){ 2002 return event[14]; 2003 } 2004 2005 /** 2006 * @brief Get field bnep_cid from event bnep_event_can_send_now 2007 * @param event packet 2008 * @return bnep_cid 2009 * @note: btstack_type 2 2010 */ 2011 static inline uint16_t bnep_event_can_send_now_get_bnep_cid(const uint8_t * event){ 2012 return little_endian_read_16(event, 2); 2013 } 2014 /** 2015 * @brief Get field source_uuid from event bnep_event_can_send_now 2016 * @param event packet 2017 * @return source_uuid 2018 * @note: btstack_type 2 2019 */ 2020 static inline uint16_t bnep_event_can_send_now_get_source_uuid(const uint8_t * event){ 2021 return little_endian_read_16(event, 4); 2022 } 2023 /** 2024 * @brief Get field destination_uuid from event bnep_event_can_send_now 2025 * @param event packet 2026 * @return destination_uuid 2027 * @note: btstack_type 2 2028 */ 2029 static inline uint16_t bnep_event_can_send_now_get_destination_uuid(const uint8_t * event){ 2030 return little_endian_read_16(event, 6); 2031 } 2032 /** 2033 * @brief Get field remote_address from event bnep_event_can_send_now 2034 * @param event packet 2035 * @param Pointer to storage for remote_address 2036 * @note: btstack_type B 2037 */ 2038 static inline void bnep_event_can_send_now_get_remote_address(const uint8_t * event, bd_addr_t remote_address){ 2039 reverse_bd_addr(&event[8], remote_address); 2040 } 2041 2042 #ifdef ENABLE_BLE 2043 /** 2044 * @brief Get field handle from event sm_event_just_works_request 2045 * @param event packet 2046 * @return handle 2047 * @note: btstack_type H 2048 */ 2049 static inline hci_con_handle_t sm_event_just_works_request_get_handle(const uint8_t * event){ 2050 return little_endian_read_16(event, 2); 2051 } 2052 /** 2053 * @brief Get field addr_type from event sm_event_just_works_request 2054 * @param event packet 2055 * @return addr_type 2056 * @note: btstack_type 1 2057 */ 2058 static inline uint8_t sm_event_just_works_request_get_addr_type(const uint8_t * event){ 2059 return event[4]; 2060 } 2061 /** 2062 * @brief Get field address from event sm_event_just_works_request 2063 * @param event packet 2064 * @param Pointer to storage for address 2065 * @note: btstack_type B 2066 */ 2067 static inline void sm_event_just_works_request_get_address(const uint8_t * event, bd_addr_t address){ 2068 reverse_bd_addr(&event[5], address); 2069 } 2070 #endif 2071 2072 #ifdef ENABLE_BLE 2073 /** 2074 * @brief Get field handle from event sm_event_just_works_cancel 2075 * @param event packet 2076 * @return handle 2077 * @note: btstack_type H 2078 */ 2079 static inline hci_con_handle_t sm_event_just_works_cancel_get_handle(const uint8_t * event){ 2080 return little_endian_read_16(event, 2); 2081 } 2082 /** 2083 * @brief Get field addr_type from event sm_event_just_works_cancel 2084 * @param event packet 2085 * @return addr_type 2086 * @note: btstack_type 1 2087 */ 2088 static inline uint8_t sm_event_just_works_cancel_get_addr_type(const uint8_t * event){ 2089 return event[4]; 2090 } 2091 /** 2092 * @brief Get field address from event sm_event_just_works_cancel 2093 * @param event packet 2094 * @param Pointer to storage for address 2095 * @note: btstack_type B 2096 */ 2097 static inline void sm_event_just_works_cancel_get_address(const uint8_t * event, bd_addr_t address){ 2098 reverse_bd_addr(&event[5], address); 2099 } 2100 #endif 2101 2102 #ifdef ENABLE_BLE 2103 /** 2104 * @brief Get field handle from event sm_event_passkey_display_number 2105 * @param event packet 2106 * @return handle 2107 * @note: btstack_type H 2108 */ 2109 static inline hci_con_handle_t sm_event_passkey_display_number_get_handle(const uint8_t * event){ 2110 return little_endian_read_16(event, 2); 2111 } 2112 /** 2113 * @brief Get field addr_type from event sm_event_passkey_display_number 2114 * @param event packet 2115 * @return addr_type 2116 * @note: btstack_type 1 2117 */ 2118 static inline uint8_t sm_event_passkey_display_number_get_addr_type(const uint8_t * event){ 2119 return event[4]; 2120 } 2121 /** 2122 * @brief Get field address from event sm_event_passkey_display_number 2123 * @param event packet 2124 * @param Pointer to storage for address 2125 * @note: btstack_type B 2126 */ 2127 static inline void sm_event_passkey_display_number_get_address(const uint8_t * event, bd_addr_t address){ 2128 reverse_bd_addr(&event[5], address); 2129 } 2130 /** 2131 * @brief Get field passkey from event sm_event_passkey_display_number 2132 * @param event packet 2133 * @return passkey 2134 * @note: btstack_type 4 2135 */ 2136 static inline uint32_t sm_event_passkey_display_number_get_passkey(const uint8_t * event){ 2137 return little_endian_read_32(event, 11); 2138 } 2139 #endif 2140 2141 #ifdef ENABLE_BLE 2142 /** 2143 * @brief Get field handle from event sm_event_passkey_display_cancel 2144 * @param event packet 2145 * @return handle 2146 * @note: btstack_type H 2147 */ 2148 static inline hci_con_handle_t sm_event_passkey_display_cancel_get_handle(const uint8_t * event){ 2149 return little_endian_read_16(event, 2); 2150 } 2151 /** 2152 * @brief Get field addr_type from event sm_event_passkey_display_cancel 2153 * @param event packet 2154 * @return addr_type 2155 * @note: btstack_type 1 2156 */ 2157 static inline uint8_t sm_event_passkey_display_cancel_get_addr_type(const uint8_t * event){ 2158 return event[4]; 2159 } 2160 /** 2161 * @brief Get field address from event sm_event_passkey_display_cancel 2162 * @param event packet 2163 * @param Pointer to storage for address 2164 * @note: btstack_type B 2165 */ 2166 static inline void sm_event_passkey_display_cancel_get_address(const uint8_t * event, bd_addr_t address){ 2167 reverse_bd_addr(&event[5], address); 2168 } 2169 #endif 2170 2171 #ifdef ENABLE_BLE 2172 /** 2173 * @brief Get field handle from event sm_event_passkey_input_number 2174 * @param event packet 2175 * @return handle 2176 * @note: btstack_type H 2177 */ 2178 static inline hci_con_handle_t sm_event_passkey_input_number_get_handle(const uint8_t * event){ 2179 return little_endian_read_16(event, 2); 2180 } 2181 /** 2182 * @brief Get field addr_type from event sm_event_passkey_input_number 2183 * @param event packet 2184 * @return addr_type 2185 * @note: btstack_type 1 2186 */ 2187 static inline uint8_t sm_event_passkey_input_number_get_addr_type(const uint8_t * event){ 2188 return event[4]; 2189 } 2190 /** 2191 * @brief Get field address from event sm_event_passkey_input_number 2192 * @param event packet 2193 * @param Pointer to storage for address 2194 * @note: btstack_type B 2195 */ 2196 static inline void sm_event_passkey_input_number_get_address(const uint8_t * event, bd_addr_t address){ 2197 reverse_bd_addr(&event[5], address); 2198 } 2199 #endif 2200 2201 #ifdef ENABLE_BLE 2202 /** 2203 * @brief Get field handle from event sm_event_passkey_input_cancel 2204 * @param event packet 2205 * @return handle 2206 * @note: btstack_type H 2207 */ 2208 static inline hci_con_handle_t sm_event_passkey_input_cancel_get_handle(const uint8_t * event){ 2209 return little_endian_read_16(event, 2); 2210 } 2211 /** 2212 * @brief Get field addr_type from event sm_event_passkey_input_cancel 2213 * @param event packet 2214 * @return addr_type 2215 * @note: btstack_type 1 2216 */ 2217 static inline uint8_t sm_event_passkey_input_cancel_get_addr_type(const uint8_t * event){ 2218 return event[4]; 2219 } 2220 /** 2221 * @brief Get field address from event sm_event_passkey_input_cancel 2222 * @param event packet 2223 * @param Pointer to storage for address 2224 * @note: btstack_type B 2225 */ 2226 static inline void sm_event_passkey_input_cancel_get_address(const uint8_t * event, bd_addr_t address){ 2227 reverse_bd_addr(&event[5], address); 2228 } 2229 #endif 2230 2231 #ifdef ENABLE_BLE 2232 /** 2233 * @brief Get field handle from event sm_event_identity_resolving_started 2234 * @param event packet 2235 * @return handle 2236 * @note: btstack_type H 2237 */ 2238 static inline hci_con_handle_t sm_event_identity_resolving_started_get_handle(const uint8_t * event){ 2239 return little_endian_read_16(event, 2); 2240 } 2241 /** 2242 * @brief Get field addr_type from event sm_event_identity_resolving_started 2243 * @param event packet 2244 * @return addr_type 2245 * @note: btstack_type 1 2246 */ 2247 static inline uint8_t sm_event_identity_resolving_started_get_addr_type(const uint8_t * event){ 2248 return event[4]; 2249 } 2250 /** 2251 * @brief Get field address from event sm_event_identity_resolving_started 2252 * @param event packet 2253 * @param Pointer to storage for address 2254 * @note: btstack_type B 2255 */ 2256 static inline void sm_event_identity_resolving_started_get_address(const uint8_t * event, bd_addr_t address){ 2257 reverse_bd_addr(&event[5], address); 2258 } 2259 #endif 2260 2261 #ifdef ENABLE_BLE 2262 /** 2263 * @brief Get field handle from event sm_event_identity_resolving_failed 2264 * @param event packet 2265 * @return handle 2266 * @note: btstack_type H 2267 */ 2268 static inline hci_con_handle_t sm_event_identity_resolving_failed_get_handle(const uint8_t * event){ 2269 return little_endian_read_16(event, 2); 2270 } 2271 /** 2272 * @brief Get field addr_type from event sm_event_identity_resolving_failed 2273 * @param event packet 2274 * @return addr_type 2275 * @note: btstack_type 1 2276 */ 2277 static inline uint8_t sm_event_identity_resolving_failed_get_addr_type(const uint8_t * event){ 2278 return event[4]; 2279 } 2280 /** 2281 * @brief Get field address from event sm_event_identity_resolving_failed 2282 * @param event packet 2283 * @param Pointer to storage for address 2284 * @note: btstack_type B 2285 */ 2286 static inline void sm_event_identity_resolving_failed_get_address(const uint8_t * event, bd_addr_t address){ 2287 reverse_bd_addr(&event[5], address); 2288 } 2289 #endif 2290 2291 #ifdef ENABLE_BLE 2292 /** 2293 * @brief Get field handle from event sm_event_identity_resolving_succeeded 2294 * @param event packet 2295 * @return handle 2296 * @note: btstack_type H 2297 */ 2298 static inline hci_con_handle_t sm_event_identity_resolving_succeeded_get_handle(const uint8_t * event){ 2299 return little_endian_read_16(event, 2); 2300 } 2301 /** 2302 * @brief Get field addr_type from event sm_event_identity_resolving_succeeded 2303 * @param event packet 2304 * @return addr_type 2305 * @note: btstack_type 1 2306 */ 2307 static inline uint8_t sm_event_identity_resolving_succeeded_get_addr_type(const uint8_t * event){ 2308 return event[4]; 2309 } 2310 /** 2311 * @brief Get field address from event sm_event_identity_resolving_succeeded 2312 * @param event packet 2313 * @param Pointer to storage for address 2314 * @note: btstack_type B 2315 */ 2316 static inline void sm_event_identity_resolving_succeeded_get_address(const uint8_t * event, bd_addr_t address){ 2317 reverse_bd_addr(&event[5], address); 2318 } 2319 /** 2320 * @brief Get field le_device_db_index from event sm_event_identity_resolving_succeeded 2321 * @param event packet 2322 * @return le_device_db_index 2323 * @note: btstack_type 2 2324 */ 2325 static inline uint16_t sm_event_identity_resolving_succeeded_get_le_device_db_index(const uint8_t * event){ 2326 return little_endian_read_16(event, 11); 2327 } 2328 #endif 2329 2330 #ifdef ENABLE_BLE 2331 /** 2332 * @brief Get field handle from event sm_event_authorization_request 2333 * @param event packet 2334 * @return handle 2335 * @note: btstack_type H 2336 */ 2337 static inline hci_con_handle_t sm_event_authorization_request_get_handle(const uint8_t * event){ 2338 return little_endian_read_16(event, 2); 2339 } 2340 /** 2341 * @brief Get field addr_type from event sm_event_authorization_request 2342 * @param event packet 2343 * @return addr_type 2344 * @note: btstack_type 1 2345 */ 2346 static inline uint8_t sm_event_authorization_request_get_addr_type(const uint8_t * event){ 2347 return event[4]; 2348 } 2349 /** 2350 * @brief Get field address from event sm_event_authorization_request 2351 * @param event packet 2352 * @param Pointer to storage for address 2353 * @note: btstack_type B 2354 */ 2355 static inline void sm_event_authorization_request_get_address(const uint8_t * event, bd_addr_t address){ 2356 reverse_bd_addr(&event[5], address); 2357 } 2358 #endif 2359 2360 #ifdef ENABLE_BLE 2361 /** 2362 * @brief Get field handle from event sm_event_authorization_result 2363 * @param event packet 2364 * @return handle 2365 * @note: btstack_type H 2366 */ 2367 static inline hci_con_handle_t sm_event_authorization_result_get_handle(const uint8_t * event){ 2368 return little_endian_read_16(event, 2); 2369 } 2370 /** 2371 * @brief Get field addr_type from event sm_event_authorization_result 2372 * @param event packet 2373 * @return addr_type 2374 * @note: btstack_type 1 2375 */ 2376 static inline uint8_t sm_event_authorization_result_get_addr_type(const uint8_t * event){ 2377 return event[4]; 2378 } 2379 /** 2380 * @brief Get field address from event sm_event_authorization_result 2381 * @param event packet 2382 * @param Pointer to storage for address 2383 * @note: btstack_type B 2384 */ 2385 static inline void sm_event_authorization_result_get_address(const uint8_t * event, bd_addr_t address){ 2386 reverse_bd_addr(&event[5], address); 2387 } 2388 /** 2389 * @brief Get field authorization_result from event sm_event_authorization_result 2390 * @param event packet 2391 * @return authorization_result 2392 * @note: btstack_type 1 2393 */ 2394 static inline uint8_t sm_event_authorization_result_get_authorization_result(const uint8_t * event){ 2395 return event[11]; 2396 } 2397 #endif 2398 2399 /** 2400 * @brief Get field advertising_event_type from event gap_event_advertising_report 2401 * @param event packet 2402 * @return advertising_event_type 2403 * @note: btstack_type 1 2404 */ 2405 static inline uint8_t gap_event_advertising_report_get_advertising_event_type(const uint8_t * event){ 2406 return event[2]; 2407 } 2408 /** 2409 * @brief Get field address_type from event gap_event_advertising_report 2410 * @param event packet 2411 * @return address_type 2412 * @note: btstack_type 1 2413 */ 2414 static inline uint8_t gap_event_advertising_report_get_address_type(const uint8_t * event){ 2415 return event[3]; 2416 } 2417 /** 2418 * @brief Get field address from event gap_event_advertising_report 2419 * @param event packet 2420 * @param Pointer to storage for address 2421 * @note: btstack_type B 2422 */ 2423 static inline void gap_event_advertising_report_get_address(const uint8_t * event, bd_addr_t address){ 2424 reverse_bd_addr(&event[4], address); 2425 } 2426 /** 2427 * @brief Get field rssi from event gap_event_advertising_report 2428 * @param event packet 2429 * @return rssi 2430 * @note: btstack_type 1 2431 */ 2432 static inline uint8_t gap_event_advertising_report_get_rssi(const uint8_t * event){ 2433 return event[10]; 2434 } 2435 /** 2436 * @brief Get field data_length from event gap_event_advertising_report 2437 * @param event packet 2438 * @return data_length 2439 * @note: btstack_type J 2440 */ 2441 static inline int gap_event_advertising_report_get_data_length(const uint8_t * event){ 2442 return event[11]; 2443 } 2444 /** 2445 * @brief Get field data from event gap_event_advertising_report 2446 * @param event packet 2447 * @return data 2448 * @note: btstack_type V 2449 */ 2450 static inline const uint8_t * gap_event_advertising_report_get_data(const uint8_t * event){ 2451 return &event[12]; 2452 } 2453 2454 /** 2455 * @brief Get field status from event hci_subevent_le_connection_complete 2456 * @param event packet 2457 * @return status 2458 * @note: btstack_type 1 2459 */ 2460 static inline uint8_t hci_subevent_le_connection_complete_get_status(const uint8_t * event){ 2461 return event[3]; 2462 } 2463 /** 2464 * @brief Get field connection_handle from event hci_subevent_le_connection_complete 2465 * @param event packet 2466 * @return connection_handle 2467 * @note: btstack_type H 2468 */ 2469 static inline hci_con_handle_t hci_subevent_le_connection_complete_get_connection_handle(const uint8_t * event){ 2470 return little_endian_read_16(event, 4); 2471 } 2472 /** 2473 * @brief Get field role from event hci_subevent_le_connection_complete 2474 * @param event packet 2475 * @return role 2476 * @note: btstack_type 1 2477 */ 2478 static inline uint8_t hci_subevent_le_connection_complete_get_role(const uint8_t * event){ 2479 return event[6]; 2480 } 2481 /** 2482 * @brief Get field peer_address_type from event hci_subevent_le_connection_complete 2483 * @param event packet 2484 * @return peer_address_type 2485 * @note: btstack_type 1 2486 */ 2487 static inline uint8_t hci_subevent_le_connection_complete_get_peer_address_type(const uint8_t * event){ 2488 return event[7]; 2489 } 2490 /** 2491 * @brief Get field peer_address from event hci_subevent_le_connection_complete 2492 * @param event packet 2493 * @param Pointer to storage for peer_address 2494 * @note: btstack_type B 2495 */ 2496 static inline void hci_subevent_le_connection_complete_get_peer_address(const uint8_t * event, bd_addr_t peer_address){ 2497 reverse_bd_addr(&event[8], peer_address); 2498 } 2499 /** 2500 * @brief Get field conn_interval from event hci_subevent_le_connection_complete 2501 * @param event packet 2502 * @return conn_interval 2503 * @note: btstack_type 2 2504 */ 2505 static inline uint16_t hci_subevent_le_connection_complete_get_conn_interval(const uint8_t * event){ 2506 return little_endian_read_16(event, 14); 2507 } 2508 /** 2509 * @brief Get field conn_latency from event hci_subevent_le_connection_complete 2510 * @param event packet 2511 * @return conn_latency 2512 * @note: btstack_type 2 2513 */ 2514 static inline uint16_t hci_subevent_le_connection_complete_get_conn_latency(const uint8_t * event){ 2515 return little_endian_read_16(event, 16); 2516 } 2517 /** 2518 * @brief Get field supervision_timeout from event hci_subevent_le_connection_complete 2519 * @param event packet 2520 * @return supervision_timeout 2521 * @note: btstack_type 2 2522 */ 2523 static inline uint16_t hci_subevent_le_connection_complete_get_supervision_timeout(const uint8_t * event){ 2524 return little_endian_read_16(event, 18); 2525 } 2526 /** 2527 * @brief Get field master_clock_accuracy from event hci_subevent_le_connection_complete 2528 * @param event packet 2529 * @return master_clock_accuracy 2530 * @note: btstack_type 1 2531 */ 2532 static inline uint8_t hci_subevent_le_connection_complete_get_master_clock_accuracy(const uint8_t * event){ 2533 return event[20]; 2534 } 2535 2536 /** 2537 * @brief Get field status from event hsp_subevent_rfcomm_connection_complete 2538 * @param event packet 2539 * @return status 2540 * @note: btstack_type 1 2541 */ 2542 static inline uint8_t hsp_subevent_rfcomm_connection_complete_get_status(const uint8_t * event){ 2543 return event[3]; 2544 } 2545 2546 /** 2547 * @brief Get field status from event hsp_subevent_rfcomm_disconnection_complete 2548 * @param event packet 2549 * @return status 2550 * @note: btstack_type 1 2551 */ 2552 static inline uint8_t hsp_subevent_rfcomm_disconnection_complete_get_status(const uint8_t * event){ 2553 return event[3]; 2554 } 2555 2556 /** 2557 * @brief Get field status from event hsp_subevent_audio_connection_complete 2558 * @param event packet 2559 * @return status 2560 * @note: btstack_type 1 2561 */ 2562 static inline uint8_t hsp_subevent_audio_connection_complete_get_status(const uint8_t * event){ 2563 return event[3]; 2564 } 2565 /** 2566 * @brief Get field handle from event hsp_subevent_audio_connection_complete 2567 * @param event packet 2568 * @return handle 2569 * @note: btstack_type H 2570 */ 2571 static inline hci_con_handle_t hsp_subevent_audio_connection_complete_get_handle(const uint8_t * event){ 2572 return little_endian_read_16(event, 4); 2573 } 2574 2575 /** 2576 * @brief Get field status from event hsp_subevent_audio_disconnection_complete 2577 * @param event packet 2578 * @return status 2579 * @note: btstack_type 1 2580 */ 2581 static inline uint8_t hsp_subevent_audio_disconnection_complete_get_status(const uint8_t * event){ 2582 return event[3]; 2583 } 2584 2585 2586 /** 2587 * @brief Get field gain from event hsp_subevent_microphone_gain_changed 2588 * @param event packet 2589 * @return gain 2590 * @note: btstack_type 1 2591 */ 2592 static inline uint8_t hsp_subevent_microphone_gain_changed_get_gain(const uint8_t * event){ 2593 return event[3]; 2594 } 2595 2596 /** 2597 * @brief Get field gain from event hsp_subevent_speaker_gain_changed 2598 * @param event packet 2599 * @return gain 2600 * @note: btstack_type 1 2601 */ 2602 static inline uint8_t hsp_subevent_speaker_gain_changed_get_gain(const uint8_t * event){ 2603 return event[3]; 2604 } 2605 2606 /** 2607 * @brief Get field value_length from event hsp_subevent_hs_command 2608 * @param event packet 2609 * @return value_length 2610 * @note: btstack_type J 2611 */ 2612 static inline int hsp_subevent_hs_command_get_value_length(const uint8_t * event){ 2613 return event[3]; 2614 } 2615 /** 2616 * @brief Get field value from event hsp_subevent_hs_command 2617 * @param event packet 2618 * @return value 2619 * @note: btstack_type V 2620 */ 2621 static inline const uint8_t * hsp_subevent_hs_command_get_value(const uint8_t * event){ 2622 return &event[4]; 2623 } 2624 2625 /** 2626 * @brief Get field value_length from event hsp_subevent_ag_indication 2627 * @param event packet 2628 * @return value_length 2629 * @note: btstack_type J 2630 */ 2631 static inline int hsp_subevent_ag_indication_get_value_length(const uint8_t * event){ 2632 return event[3]; 2633 } 2634 /** 2635 * @brief Get field value from event hsp_subevent_ag_indication 2636 * @param event packet 2637 * @return value 2638 * @note: btstack_type V 2639 */ 2640 static inline const uint8_t * hsp_subevent_ag_indication_get_value(const uint8_t * event){ 2641 return &event[4]; 2642 } 2643 2644 /** 2645 * @brief Get field status from event hfp_subevent_service_level_connection_established 2646 * @param event packet 2647 * @return status 2648 * @note: btstack_type 1 2649 */ 2650 static inline uint8_t hfp_subevent_service_level_connection_established_get_status(const uint8_t * event){ 2651 return event[3]; 2652 } 2653 2654 2655 /** 2656 * @brief Get field status from event hfp_subevent_audio_connection_established 2657 * @param event packet 2658 * @return status 2659 * @note: btstack_type 1 2660 */ 2661 static inline uint8_t hfp_subevent_audio_connection_established_get_status(const uint8_t * event){ 2662 return event[3]; 2663 } 2664 2665 2666 /** 2667 * @brief Get field status from event hfp_subevent_complete 2668 * @param event packet 2669 * @return status 2670 * @note: btstack_type 1 2671 */ 2672 static inline uint8_t hfp_subevent_complete_get_status(const uint8_t * event){ 2673 return event[3]; 2674 } 2675 2676 /** 2677 * @brief Get field indicator_index from event hfp_subevent_ag_indicator_status_changed 2678 * @param event packet 2679 * @return indicator_index 2680 * @note: btstack_type 1 2681 */ 2682 static inline uint8_t hfp_subevent_ag_indicator_status_changed_get_indicator_index(const uint8_t * event){ 2683 return event[3]; 2684 } 2685 /** 2686 * @brief Get field indicator_status from event hfp_subevent_ag_indicator_status_changed 2687 * @param event packet 2688 * @return indicator_status 2689 * @note: btstack_type 1 2690 */ 2691 static inline uint8_t hfp_subevent_ag_indicator_status_changed_get_indicator_status(const uint8_t * event){ 2692 return event[4]; 2693 } 2694 /** 2695 * @brief Get field indicator_name from event hfp_subevent_ag_indicator_status_changed 2696 * @param event packet 2697 * @return indicator_name 2698 * @note: btstack_type T 2699 */ 2700 static inline const char * hfp_subevent_ag_indicator_status_changed_get_indicator_name(const uint8_t * event){ 2701 return (const char *) &event[5]; 2702 } 2703 2704 /** 2705 * @brief Get field network_operator_mode from event hfp_subevent_network_operator_changed 2706 * @param event packet 2707 * @return network_operator_mode 2708 * @note: btstack_type 1 2709 */ 2710 static inline uint8_t hfp_subevent_network_operator_changed_get_network_operator_mode(const uint8_t * event){ 2711 return event[3]; 2712 } 2713 /** 2714 * @brief Get field network_operator_format from event hfp_subevent_network_operator_changed 2715 * @param event packet 2716 * @return network_operator_format 2717 * @note: btstack_type 1 2718 */ 2719 static inline uint8_t hfp_subevent_network_operator_changed_get_network_operator_format(const uint8_t * event){ 2720 return event[4]; 2721 } 2722 /** 2723 * @brief Get field network_operator_name from event hfp_subevent_network_operator_changed 2724 * @param event packet 2725 * @return network_operator_name 2726 * @note: btstack_type 1 2727 */ 2728 static inline uint8_t hfp_subevent_network_operator_changed_get_network_operator_name(const uint8_t * event){ 2729 return event[5]; 2730 } 2731 2732 /** 2733 * @brief Get field error from event hfp_subevent_extended_audio_gateway_error 2734 * @param event packet 2735 * @return error 2736 * @note: btstack_type 1 2737 */ 2738 static inline uint8_t hfp_subevent_extended_audio_gateway_error_get_error(const uint8_t * event){ 2739 return event[3]; 2740 } 2741 2742 /** 2743 * @brief Get field status from event hfp_subevent_codecs_connection_complete 2744 * @param event packet 2745 * @return status 2746 * @note: btstack_type 1 2747 */ 2748 static inline uint8_t hfp_subevent_codecs_connection_complete_get_status(const uint8_t * event){ 2749 return event[3]; 2750 } 2751 2752 2753 2754 2755 /** 2756 * @brief Get field number from event hfp_subevent_place_call_with_number 2757 * @param event packet 2758 * @return number 2759 * @note: btstack_type T 2760 */ 2761 static inline const char * hfp_subevent_place_call_with_number_get_number(const uint8_t * event){ 2762 return (const char *) &event[3]; 2763 } 2764 2765 2766 /** 2767 * @brief Get field number from event hfp_subevent_number_for_voice_tag 2768 * @param event packet 2769 * @return number 2770 * @note: btstack_type T 2771 */ 2772 static inline const char * hfp_subevent_number_for_voice_tag_get_number(const uint8_t * event){ 2773 return (const char *) &event[3]; 2774 } 2775 2776 /** 2777 * @brief Get field dtmf from event hfp_subevent_transmit_dtmf_codes 2778 * @param event packet 2779 * @return dtmf 2780 * @note: btstack_type T 2781 */ 2782 static inline const char * hfp_subevent_transmit_dtmf_codes_get_dtmf(const uint8_t * event){ 2783 return (const char *) &event[3]; 2784 } 2785 2786 2787 2788 2789 /** 2790 * @brief Get field status from event hfp_subevent_speaker_volume 2791 * @param event packet 2792 * @return status 2793 * @note: btstack_type 1 2794 */ 2795 static inline uint8_t hfp_subevent_speaker_volume_get_status(const uint8_t * event){ 2796 return event[3]; 2797 } 2798 /** 2799 * @brief Get field gain from event hfp_subevent_speaker_volume 2800 * @param event packet 2801 * @return gain 2802 * @note: btstack_type 1 2803 */ 2804 static inline uint8_t hfp_subevent_speaker_volume_get_gain(const uint8_t * event){ 2805 return event[4]; 2806 } 2807 2808 /** 2809 * @brief Get field status from event hfp_subevent_microphone_volume 2810 * @param event packet 2811 * @return status 2812 * @note: btstack_type 1 2813 */ 2814 static inline uint8_t hfp_subevent_microphone_volume_get_status(const uint8_t * event){ 2815 return event[3]; 2816 } 2817 /** 2818 * @brief Get field gain from event hfp_subevent_microphone_volume 2819 * @param event packet 2820 * @return gain 2821 * @note: btstack_type 1 2822 */ 2823 static inline uint8_t hfp_subevent_microphone_volume_get_gain(const uint8_t * event){ 2824 return event[4]; 2825 } 2826 2827 /** 2828 * @brief Get field type from event hfp_subevent_call_waiting_notification 2829 * @param event packet 2830 * @return type 2831 * @note: btstack_type 1 2832 */ 2833 static inline uint8_t hfp_subevent_call_waiting_notification_get_type(const uint8_t * event){ 2834 return event[3]; 2835 } 2836 /** 2837 * @brief Get field number from event hfp_subevent_call_waiting_notification 2838 * @param event packet 2839 * @return number 2840 * @note: btstack_type T 2841 */ 2842 static inline const char * hfp_subevent_call_waiting_notification_get_number(const uint8_t * event){ 2843 return (const char *) &event[4]; 2844 } 2845 2846 /** 2847 * @brief Get field type from event hfp_subevent_calling_line_indetification_notification 2848 * @param event packet 2849 * @return type 2850 * @note: btstack_type 1 2851 */ 2852 static inline uint8_t hfp_subevent_calling_line_indetification_notification_get_type(const uint8_t * event){ 2853 return event[3]; 2854 } 2855 /** 2856 * @brief Get field number from event hfp_subevent_calling_line_indetification_notification 2857 * @param event packet 2858 * @return number 2859 * @note: btstack_type T 2860 */ 2861 static inline const char * hfp_subevent_calling_line_indetification_notification_get_number(const uint8_t * event){ 2862 return (const char *) &event[4]; 2863 } 2864 2865 /** 2866 * @brief Get field clcc_idx from event hfp_subevent_enhanced_call_status 2867 * @param event packet 2868 * @return clcc_idx 2869 * @note: btstack_type 1 2870 */ 2871 static inline uint8_t hfp_subevent_enhanced_call_status_get_clcc_idx(const uint8_t * event){ 2872 return event[3]; 2873 } 2874 /** 2875 * @brief Get field clcc_dir from event hfp_subevent_enhanced_call_status 2876 * @param event packet 2877 * @return clcc_dir 2878 * @note: btstack_type 1 2879 */ 2880 static inline uint8_t hfp_subevent_enhanced_call_status_get_clcc_dir(const uint8_t * event){ 2881 return event[4]; 2882 } 2883 /** 2884 * @brief Get field clcc_status from event hfp_subevent_enhanced_call_status 2885 * @param event packet 2886 * @return clcc_status 2887 * @note: btstack_type 1 2888 */ 2889 static inline uint8_t hfp_subevent_enhanced_call_status_get_clcc_status(const uint8_t * event){ 2890 return event[5]; 2891 } 2892 /** 2893 * @brief Get field clcc_mpty from event hfp_subevent_enhanced_call_status 2894 * @param event packet 2895 * @return clcc_mpty 2896 * @note: btstack_type 1 2897 */ 2898 static inline uint8_t hfp_subevent_enhanced_call_status_get_clcc_mpty(const uint8_t * event){ 2899 return event[6]; 2900 } 2901 /** 2902 * @brief Get field bnip_type from event hfp_subevent_enhanced_call_status 2903 * @param event packet 2904 * @return bnip_type 2905 * @note: btstack_type 1 2906 */ 2907 static inline uint8_t hfp_subevent_enhanced_call_status_get_bnip_type(const uint8_t * event){ 2908 return event[7]; 2909 } 2910 /** 2911 * @brief Get field bnip_number from event hfp_subevent_enhanced_call_status 2912 * @param event packet 2913 * @return bnip_number 2914 * @note: btstack_type T 2915 */ 2916 static inline const char * hfp_subevent_enhanced_call_status_get_bnip_number(const uint8_t * event){ 2917 return (const char *) &event[8]; 2918 } 2919 2920 /** 2921 * @brief Get field status from event hfp_subevent_subscriber_number_information 2922 * @param event packet 2923 * @return status 2924 * @note: btstack_type 1 2925 */ 2926 static inline uint8_t hfp_subevent_subscriber_number_information_get_status(const uint8_t * event){ 2927 return event[3]; 2928 } 2929 /** 2930 * @brief Get field bnip_type from event hfp_subevent_subscriber_number_information 2931 * @param event packet 2932 * @return bnip_type 2933 * @note: btstack_type 1 2934 */ 2935 static inline uint8_t hfp_subevent_subscriber_number_information_get_bnip_type(const uint8_t * event){ 2936 return event[4]; 2937 } 2938 /** 2939 * @brief Get field bnip_number from event hfp_subevent_subscriber_number_information 2940 * @param event packet 2941 * @return bnip_number 2942 * @note: btstack_type T 2943 */ 2944 static inline const char * hfp_subevent_subscriber_number_information_get_bnip_number(const uint8_t * event){ 2945 return (const char *) &event[5]; 2946 } 2947 2948 /** 2949 * @brief Get field value from event hfp_subevent_response_and_hold_status 2950 * @param event packet 2951 * @return value 2952 * @note: btstack_type T 2953 */ 2954 static inline const char * hfp_subevent_response_and_hold_status_get_value(const uint8_t * event){ 2955 return (const char *) &event[3]; 2956 } 2957 2958 #ifdef ENABLE_BLE 2959 /** 2960 * @brief Get field handle from event ancs_subevent_client_connected 2961 * @param event packet 2962 * @return handle 2963 * @note: btstack_type H 2964 */ 2965 static inline hci_con_handle_t ancs_subevent_client_connected_get_handle(const uint8_t * event){ 2966 return little_endian_read_16(event, 3); 2967 } 2968 #endif 2969 2970 #ifdef ENABLE_BLE 2971 /** 2972 * @brief Get field handle from event ancs_subevent_client_notification 2973 * @param event packet 2974 * @return handle 2975 * @note: btstack_type H 2976 */ 2977 static inline hci_con_handle_t ancs_subevent_client_notification_get_handle(const uint8_t * event){ 2978 return little_endian_read_16(event, 3); 2979 } 2980 /** 2981 * @brief Get field attribute_id from event ancs_subevent_client_notification 2982 * @param event packet 2983 * @return attribute_id 2984 * @note: btstack_type 2 2985 */ 2986 static inline uint16_t ancs_subevent_client_notification_get_attribute_id(const uint8_t * event){ 2987 return little_endian_read_16(event, 5); 2988 } 2989 /** 2990 * @brief Get field text from event ancs_subevent_client_notification 2991 * @param event packet 2992 * @return text 2993 * @note: btstack_type T 2994 */ 2995 static inline const char * ancs_subevent_client_notification_get_text(const uint8_t * event){ 2996 return (const char *) &event[7]; 2997 } 2998 #endif 2999 3000 #ifdef ENABLE_BLE 3001 /** 3002 * @brief Get field handle from event ancs_subevent_client_disconnected 3003 * @param event packet 3004 * @return handle 3005 * @note: btstack_type H 3006 */ 3007 static inline hci_con_handle_t ancs_subevent_client_disconnected_get_handle(const uint8_t * event){ 3008 return little_endian_read_16(event, 3); 3009 } 3010 #endif 3011 3012 3013 3014 /* API_END */ 3015 3016 #if defined __cplusplus 3017 } 3018 #endif 3019 3020 #endif // __BTSTACK_EVENT_H 3021