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