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_config.h" 55 #include "btstack_util.h" 56 #include <stdint.h> 57 58 #ifdef ENABLE_BLE 59 #include "ble/gatt_client.h" 60 #endif 61 62 /* API_START */ 63 64 /** 65 * @brief Get field status from event l2cap_event_channel_opened 66 * @param Event packet 67 * @return status 68 * @note: btstack_type 1 69 */ 70 static inline uint8_t l2cap_event_channel_opened_get_status(const uint8_t * event){ 71 return event[2]; 72 } 73 /** 74 * @brief Get field address from event l2cap_event_channel_opened 75 * @param Event packet 76 * @param Pointer to storage for address 77 * @note: btstack_type B 78 */ 79 static inline void l2cap_event_channel_opened_get_address(const uint8_t * event, bd_addr_t address){ 80 reverse_bd_addr(&event[3], address); 81 } 82 /** 83 * @brief Get field handle from event l2cap_event_channel_opened 84 * @param Event packet 85 * @return handle 86 * @note: btstack_type H 87 */ 88 static inline hci_con_handle_t l2cap_event_channel_opened_get_handle(const uint8_t * event){ 89 return little_endian_read_16(event, 9); 90 } 91 /** 92 * @brief Get field psm from event l2cap_event_channel_opened 93 * @param Event packet 94 * @return psm 95 * @note: btstack_type 2 96 */ 97 static inline uint16_t l2cap_event_channel_opened_get_psm(const uint8_t * event){ 98 return little_endian_read_16(event, 11); 99 } 100 /** 101 * @brief Get field local_cid from event l2cap_event_channel_opened 102 * @param Event packet 103 * @return local_cid 104 * @note: btstack_type 2 105 */ 106 static inline uint16_t l2cap_event_channel_opened_get_local_cid(const uint8_t * event){ 107 return little_endian_read_16(event, 13); 108 } 109 /** 110 * @brief Get field remote_cid from event l2cap_event_channel_opened 111 * @param Event packet 112 * @return remote_cid 113 * @note: btstack_type 2 114 */ 115 static inline uint16_t l2cap_event_channel_opened_get_remote_cid(const uint8_t * event){ 116 return little_endian_read_16(event, 15); 117 } 118 /** 119 * @brief Get field local_mtu from event l2cap_event_channel_opened 120 * @param Event packet 121 * @return local_mtu 122 * @note: btstack_type 2 123 */ 124 static inline uint16_t l2cap_event_channel_opened_get_local_mtu(const uint8_t * event){ 125 return little_endian_read_16(event, 17); 126 } 127 /** 128 * @brief Get field remote_mtu from event l2cap_event_channel_opened 129 * @param Event packet 130 * @return remote_mtu 131 * @note: btstack_type 2 132 */ 133 static inline uint16_t l2cap_event_channel_opened_get_remote_mtu(const uint8_t * event){ 134 return little_endian_read_16(event, 19); 135 } 136 /** 137 * @brief Get field flush_timeout from event l2cap_event_channel_opened 138 * @param Event packet 139 * @return flush_timeout 140 * @note: btstack_type 2 141 */ 142 static inline uint16_t l2cap_event_channel_opened_get_flush_timeout(const uint8_t * event){ 143 return little_endian_read_16(event, 21); 144 } 145 146 /** 147 * @brief Get field local_cid from event l2cap_event_channel_closed 148 * @param Event packet 149 * @return local_cid 150 * @note: btstack_type 2 151 */ 152 static inline uint16_t l2cap_event_channel_closed_get_local_cid(const uint8_t * event){ 153 return little_endian_read_16(event, 2); 154 } 155 156 /** 157 * @brief Get field status from event l2cap_event_incoming_connection 158 * @param Event packet 159 * @return status 160 * @note: btstack_type 1 161 */ 162 static inline uint8_t l2cap_event_incoming_connection_get_status(const uint8_t * event){ 163 return event[2]; 164 } 165 /** 166 * @brief Get field address from event l2cap_event_incoming_connection 167 * @param Event packet 168 * @param Pointer to storage for address 169 * @note: btstack_type B 170 */ 171 static inline void l2cap_event_incoming_connection_get_address(const uint8_t * event, bd_addr_t address){ 172 reverse_bd_addr(&event[3], address); 173 } 174 /** 175 * @brief Get field handle from event l2cap_event_incoming_connection 176 * @param Event packet 177 * @return handle 178 * @note: btstack_type H 179 */ 180 static inline hci_con_handle_t l2cap_event_incoming_connection_get_handle(const uint8_t * event){ 181 return little_endian_read_16(event, 9); 182 } 183 /** 184 * @brief Get field psm from event l2cap_event_incoming_connection 185 * @param Event packet 186 * @return psm 187 * @note: btstack_type 2 188 */ 189 static inline uint16_t l2cap_event_incoming_connection_get_psm(const uint8_t * event){ 190 return little_endian_read_16(event, 11); 191 } 192 /** 193 * @brief Get field local_cid from event l2cap_event_incoming_connection 194 * @param Event packet 195 * @return local_cid 196 * @note: btstack_type 2 197 */ 198 static inline uint16_t l2cap_event_incoming_connection_get_local_cid(const uint8_t * event){ 199 return little_endian_read_16(event, 13); 200 } 201 /** 202 * @brief Get field remote_cid from event l2cap_event_incoming_connection 203 * @param Event packet 204 * @return remote_cid 205 * @note: btstack_type 2 206 */ 207 static inline uint16_t l2cap_event_incoming_connection_get_remote_cid(const uint8_t * event){ 208 return little_endian_read_16(event, 15); 209 } 210 211 /** 212 * @brief Get field status from event l2cap_event_service_registered 213 * @param Event packet 214 * @return status 215 * @note: btstack_type 1 216 */ 217 static inline uint8_t l2cap_event_service_registered_get_status(const uint8_t * event){ 218 return event[2]; 219 } 220 /** 221 * @brief Get field psm from event l2cap_event_service_registered 222 * @param Event packet 223 * @return psm 224 * @note: btstack_type 2 225 */ 226 static inline uint16_t l2cap_event_service_registered_get_psm(const uint8_t * event){ 227 return little_endian_read_16(event, 3); 228 } 229 230 /** 231 * @brief Get field handle from event l2cap_event_connection_parameter_update_request 232 * @param Event packet 233 * @return handle 234 * @note: btstack_type H 235 */ 236 static inline hci_con_handle_t l2cap_event_connection_parameter_update_request_get_handle(const uint8_t * event){ 237 return little_endian_read_16(event, 2); 238 } 239 /** 240 * @brief Get field interval_min from event l2cap_event_connection_parameter_update_request 241 * @param Event packet 242 * @return interval_min 243 * @note: btstack_type 2 244 */ 245 static inline uint16_t l2cap_event_connection_parameter_update_request_get_interval_min(const uint8_t * event){ 246 return little_endian_read_16(event, 4); 247 } 248 /** 249 * @brief Get field interval_max from event l2cap_event_connection_parameter_update_request 250 * @param Event packet 251 * @return interval_max 252 * @note: btstack_type 2 253 */ 254 static inline uint16_t l2cap_event_connection_parameter_update_request_get_interval_max(const uint8_t * event){ 255 return little_endian_read_16(event, 6); 256 } 257 /** 258 * @brief Get field latencey from event l2cap_event_connection_parameter_update_request 259 * @param Event packet 260 * @return latencey 261 * @note: btstack_type 2 262 */ 263 static inline uint16_t l2cap_event_connection_parameter_update_request_get_latencey(const uint8_t * event){ 264 return little_endian_read_16(event, 8); 265 } 266 /** 267 * @brief Get field timeout_multiplier from event l2cap_event_connection_parameter_update_request 268 * @param Event packet 269 * @return timeout_multiplier 270 * @note: btstack_type 2 271 */ 272 static inline uint16_t l2cap_event_connection_parameter_update_request_get_timeout_multiplier(const uint8_t * event){ 273 return little_endian_read_16(event, 10); 274 } 275 276 /** 277 * @brief Get field handle from event l2cap_event_connection_parameter_update_response 278 * @param Event packet 279 * @return handle 280 * @note: btstack_type H 281 */ 282 static inline hci_con_handle_t l2cap_event_connection_parameter_update_response_get_handle(const uint8_t * event){ 283 return little_endian_read_16(event, 2); 284 } 285 286 /** 287 * @brief Get field local_cid from event l2cap_event_can_send_now 288 * @param Event packet 289 * @return local_cid 290 * @note: btstack_type 2 291 */ 292 static inline uint16_t l2cap_event_can_send_now_get_local_cid(const uint8_t * event){ 293 return little_endian_read_16(event, 2); 294 } 295 296 /** 297 * @brief Get field status from event rfcomm_event_open_channel_complete 298 * @param Event packet 299 * @return status 300 * @note: btstack_type 1 301 */ 302 static inline uint8_t rfcomm_event_open_channel_complete_get_status(const uint8_t * event){ 303 return event[2]; 304 } 305 /** 306 * @brief Get field bd_addr from event rfcomm_event_open_channel_complete 307 * @param Event packet 308 * @param Pointer to storage for bd_addr 309 * @note: btstack_type B 310 */ 311 static inline void rfcomm_event_open_channel_complete_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 312 reverse_bd_addr(&event[3], bd_addr); 313 } 314 /** 315 * @brief Get field con_handle from event rfcomm_event_open_channel_complete 316 * @param Event packet 317 * @return con_handle 318 * @note: btstack_type 2 319 */ 320 static inline uint16_t rfcomm_event_open_channel_complete_get_con_handle(const uint8_t * event){ 321 return little_endian_read_16(event, 9); 322 } 323 /** 324 * @brief Get field server_channel from event rfcomm_event_open_channel_complete 325 * @param Event packet 326 * @return server_channel 327 * @note: btstack_type 1 328 */ 329 static inline uint8_t rfcomm_event_open_channel_complete_get_server_channel(const uint8_t * event){ 330 return event[11]; 331 } 332 /** 333 * @brief Get field rfcomm_cid from event rfcomm_event_open_channel_complete 334 * @param Event packet 335 * @return rfcomm_cid 336 * @note: btstack_type 2 337 */ 338 static inline uint16_t rfcomm_event_open_channel_complete_get_rfcomm_cid(const uint8_t * event){ 339 return little_endian_read_16(event, 12); 340 } 341 /** 342 * @brief Get field max_frame_size from event rfcomm_event_open_channel_complete 343 * @param Event packet 344 * @return max_frame_size 345 * @note: btstack_type 2 346 */ 347 static inline uint16_t rfcomm_event_open_channel_complete_get_max_frame_size(const uint8_t * event){ 348 return little_endian_read_16(event, 14); 349 } 350 351 /** 352 * @brief Get field rfcomm_cid from event rfcomm_event_channel_closed 353 * @param Event packet 354 * @return rfcomm_cid 355 * @note: btstack_type 2 356 */ 357 static inline uint16_t rfcomm_event_channel_closed_get_rfcomm_cid(const uint8_t * event){ 358 return little_endian_read_16(event, 2); 359 } 360 361 /** 362 * @brief Get field bd_addr from event rfcomm_event_incoming_connection 363 * @param Event packet 364 * @param Pointer to storage for bd_addr 365 * @note: btstack_type B 366 */ 367 static inline void rfcomm_event_incoming_connection_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 368 reverse_bd_addr(&event[2], bd_addr); 369 } 370 /** 371 * @brief Get field server_channel from event rfcomm_event_incoming_connection 372 * @param Event packet 373 * @return server_channel 374 * @note: btstack_type 1 375 */ 376 static inline uint8_t rfcomm_event_incoming_connection_get_server_channel(const uint8_t * event){ 377 return event[8]; 378 } 379 /** 380 * @brief Get field rfcomm_cid from event rfcomm_event_incoming_connection 381 * @param Event packet 382 * @return rfcomm_cid 383 * @note: btstack_type 2 384 */ 385 static inline uint16_t rfcomm_event_incoming_connection_get_rfcomm_cid(const uint8_t * event){ 386 return little_endian_read_16(event, 9); 387 } 388 389 /** 390 * @brief Get field rfcomm_cid from event rfcomm_event_remote_line_status 391 * @param Event packet 392 * @return rfcomm_cid 393 * @note: btstack_type 2 394 */ 395 static inline uint16_t rfcomm_event_remote_line_status_get_rfcomm_cid(const uint8_t * event){ 396 return little_endian_read_16(event, 2); 397 } 398 /** 399 * @brief Get field line_status from event rfcomm_event_remote_line_status 400 * @param Event packet 401 * @return line_status 402 * @note: btstack_type 1 403 */ 404 static inline uint8_t rfcomm_event_remote_line_status_get_line_status(const uint8_t * event){ 405 return event[4]; 406 } 407 408 /** 409 * @brief Get field rfcomm_cid from event rfcomm_event_credits 410 * @param Event packet 411 * @return rfcomm_cid 412 * @note: btstack_type 2 413 */ 414 static inline uint16_t rfcomm_event_credits_get_rfcomm_cid(const uint8_t * event){ 415 return little_endian_read_16(event, 2); 416 } 417 /** 418 * @brief Get field credits from event rfcomm_event_credits 419 * @param Event packet 420 * @return credits 421 * @note: btstack_type 1 422 */ 423 static inline uint8_t rfcomm_event_credits_get_credits(const uint8_t * event){ 424 return event[4]; 425 } 426 427 /** 428 * @brief Get field status from event rfcomm_event_service_registered 429 * @param Event packet 430 * @return status 431 * @note: btstack_type 1 432 */ 433 static inline uint8_t rfcomm_event_service_registered_get_status(const uint8_t * event){ 434 return event[2]; 435 } 436 /** 437 * @brief Get field channel_id from event rfcomm_event_service_registered 438 * @param Event packet 439 * @return channel_id 440 * @note: btstack_type 1 441 */ 442 static inline uint8_t rfcomm_event_service_registered_get_channel_id(const uint8_t * event){ 443 return event[3]; 444 } 445 446 /** 447 * @brief Get field status from event rfcomm_event_persistent_channel 448 * @param Event packet 449 * @return status 450 * @note: btstack_type 1 451 */ 452 static inline uint8_t rfcomm_event_persistent_channel_get_status(const uint8_t * event){ 453 return event[2]; 454 } 455 /** 456 * @brief Get field server_channel_id from event rfcomm_event_persistent_channel 457 * @param Event packet 458 * @return server_channel_id 459 * @note: btstack_type 1 460 */ 461 static inline uint8_t rfcomm_event_persistent_channel_get_server_channel_id(const uint8_t * event){ 462 return event[3]; 463 } 464 465 /** 466 * @brief Get field rfcomm_cid from event rfcomm_event_remote_modem_status 467 * @param Event packet 468 * @return rfcomm_cid 469 * @note: btstack_type 2 470 */ 471 static inline uint16_t rfcomm_event_remote_modem_status_get_rfcomm_cid(const uint8_t * event){ 472 return little_endian_read_16(event, 2); 473 } 474 /** 475 * @brief Get field modem_status from event rfcomm_event_remote_modem_status 476 * @param Event packet 477 * @return modem_status 478 * @note: btstack_type 1 479 */ 480 static inline uint8_t rfcomm_event_remote_modem_status_get_modem_status(const uint8_t * event){ 481 return event[4]; 482 } 483 484 /** 485 * @brief Get field local_cid from event rfcomm_event_can_send_now 486 * @param Event packet 487 * @return local_cid 488 * @note: btstack_type 2 489 */ 490 static inline uint16_t rfcomm_event_can_send_now_get_local_cid(const uint8_t * event){ 491 return little_endian_read_16(event, 2); 492 } 493 494 /** 495 * @brief Get field status from event sdp_event_service_registered 496 * @param Event packet 497 * @return status 498 * @note: btstack_type 1 499 */ 500 static inline uint8_t sdp_event_service_registered_get_status(const uint8_t * event){ 501 return event[2]; 502 } 503 /** 504 * @brief Get field service_record_handle from event sdp_event_service_registered 505 * @param Event packet 506 * @return service_record_handle 507 * @note: btstack_type 4 508 */ 509 static inline uint32_t sdp_event_service_registered_get_service_record_handle(const uint8_t * event){ 510 return little_endian_read_32(event, 3); 511 } 512 513 /** 514 * @brief Get field status from event sdp_event_query_complete 515 * @param Event packet 516 * @return status 517 * @note: btstack_type 1 518 */ 519 static inline uint8_t sdp_event_query_complete_get_status(const uint8_t * event){ 520 return event[2]; 521 } 522 523 /** 524 * @brief Get field rfcomm_channel from event sdp_event_query_rfcomm_service 525 * @param Event packet 526 * @return rfcomm_channel 527 * @note: btstack_type 1 528 */ 529 static inline uint8_t sdp_event_query_rfcomm_service_get_rfcomm_channel(const uint8_t * event){ 530 return event[2]; 531 } 532 /** 533 * @brief Get field name from event sdp_event_query_rfcomm_service 534 * @param Event packet 535 * @return name 536 * @note: btstack_type T 537 */ 538 static inline const char * sdp_event_query_rfcomm_service_get_name(const uint8_t * event){ 539 return (const char *) &event[3]; 540 } 541 542 /** 543 * @brief Get field record_id from event sdp_event_query_attribute_byte 544 * @param Event packet 545 * @return record_id 546 * @note: btstack_type 2 547 */ 548 static inline uint16_t sdp_event_query_attribute_byte_get_record_id(const uint8_t * event){ 549 return little_endian_read_16(event, 2); 550 } 551 /** 552 * @brief Get field attribute_id from event sdp_event_query_attribute_byte 553 * @param Event packet 554 * @return attribute_id 555 * @note: btstack_type 2 556 */ 557 static inline uint16_t sdp_event_query_attribute_byte_get_attribute_id(const uint8_t * event){ 558 return little_endian_read_16(event, 4); 559 } 560 /** 561 * @brief Get field attribute_length from event sdp_event_query_attribute_byte 562 * @param Event packet 563 * @return attribute_length 564 * @note: btstack_type 2 565 */ 566 static inline uint16_t sdp_event_query_attribute_byte_get_attribute_length(const uint8_t * event){ 567 return little_endian_read_16(event, 6); 568 } 569 /** 570 * @brief Get field data_offset from event sdp_event_query_attribute_byte 571 * @param Event packet 572 * @return data_offset 573 * @note: btstack_type 2 574 */ 575 static inline uint16_t sdp_event_query_attribute_byte_get_data_offset(const uint8_t * event){ 576 return little_endian_read_16(event, 8); 577 } 578 /** 579 * @brief Get field data from event sdp_event_query_attribute_byte 580 * @param Event packet 581 * @return data 582 * @note: btstack_type 1 583 */ 584 static inline uint8_t sdp_event_query_attribute_byte_get_data(const uint8_t * event){ 585 return event[10]; 586 } 587 588 /** 589 * @brief Get field record_id from event sdp_event_query_attribute_value 590 * @param Event packet 591 * @return record_id 592 * @note: btstack_type 2 593 */ 594 static inline uint16_t sdp_event_query_attribute_value_get_record_id(const uint8_t * event){ 595 return little_endian_read_16(event, 2); 596 } 597 /** 598 * @brief Get field attribute_id from event sdp_event_query_attribute_value 599 * @param Event packet 600 * @return attribute_id 601 * @note: btstack_type 2 602 */ 603 static inline uint16_t sdp_event_query_attribute_value_get_attribute_id(const uint8_t * event){ 604 return little_endian_read_16(event, 4); 605 } 606 /** 607 * @brief Get field attribute_length from event sdp_event_query_attribute_value 608 * @param Event packet 609 * @return attribute_length 610 * @note: btstack_type L 611 */ 612 static inline int sdp_event_query_attribute_value_get_attribute_length(const uint8_t * event){ 613 return little_endian_read_16(event, 6); 614 } 615 /** 616 * @brief Get field attribute_value from event sdp_event_query_attribute_value 617 * @param Event packet 618 * @return attribute_value 619 * @note: btstack_type V 620 */ 621 static inline const uint8_t * sdp_event_query_attribute_value_get_attribute_value(const uint8_t * event){ 622 return &event[8]; 623 } 624 625 /** 626 * @brief Get field total_count from event sdp_event_query_service_record_handle 627 * @param Event packet 628 * @return total_count 629 * @note: btstack_type 2 630 */ 631 static inline uint16_t sdp_event_query_service_record_handle_get_total_count(const uint8_t * event){ 632 return little_endian_read_16(event, 2); 633 } 634 /** 635 * @brief Get field record_index from event sdp_event_query_service_record_handle 636 * @param Event packet 637 * @return record_index 638 * @note: btstack_type 2 639 */ 640 static inline uint16_t sdp_event_query_service_record_handle_get_record_index(const uint8_t * event){ 641 return little_endian_read_16(event, 4); 642 } 643 /** 644 * @brief Get field record_handle from event sdp_event_query_service_record_handle 645 * @param Event packet 646 * @return record_handle 647 * @note: btstack_type 4 648 */ 649 static inline uint32_t sdp_event_query_service_record_handle_get_record_handle(const uint8_t * event){ 650 return little_endian_read_32(event, 6); 651 } 652 653 #ifdef ENABLE_BLE 654 /** 655 * @brief Get field handle from event gatt_event_query_complete 656 * @param Event packet 657 * @return handle 658 * @note: btstack_type H 659 */ 660 static inline hci_con_handle_t gatt_event_query_complete_get_handle(const uint8_t * event){ 661 return little_endian_read_16(event, 2); 662 } 663 /** 664 * @brief Get field status from event gatt_event_query_complete 665 * @param Event packet 666 * @return status 667 * @note: btstack_type 1 668 */ 669 static inline uint8_t gatt_event_query_complete_get_status(const uint8_t * event){ 670 return event[4]; 671 } 672 #endif 673 674 #ifdef ENABLE_BLE 675 /** 676 * @brief Get field handle from event gatt_event_service_query_result 677 * @param Event packet 678 * @return handle 679 * @note: btstack_type H 680 */ 681 static inline hci_con_handle_t gatt_event_service_query_result_get_handle(const uint8_t * event){ 682 return little_endian_read_16(event, 2); 683 } 684 /** 685 * @brief Get field service from event gatt_event_service_query_result 686 * @param Event packet 687 * @param Pointer to storage for service 688 * @note: btstack_type X 689 */ 690 static inline void gatt_event_service_query_result_get_service(const uint8_t * event, gatt_client_service_t * service){ 691 gatt_client_deserialize_service(event, 4, service); 692 } 693 #endif 694 695 #ifdef ENABLE_BLE 696 /** 697 * @brief Get field handle from event gatt_event_characteristic_query_result 698 * @param Event packet 699 * @return handle 700 * @note: btstack_type H 701 */ 702 static inline hci_con_handle_t gatt_event_characteristic_query_result_get_handle(const uint8_t * event){ 703 return little_endian_read_16(event, 2); 704 } 705 /** 706 * @brief Get field characteristic from event gatt_event_characteristic_query_result 707 * @param Event packet 708 * @param Pointer to storage for characteristic 709 * @note: btstack_type Y 710 */ 711 static inline void gatt_event_characteristic_query_result_get_characteristic(const uint8_t * event, gatt_client_characteristic_t * characteristic){ 712 gatt_client_deserialize_characteristic(event, 4, characteristic); 713 } 714 #endif 715 716 #ifdef ENABLE_BLE 717 /** 718 * @brief Get field handle from event gatt_event_included_service_query_result 719 * @param Event packet 720 * @return handle 721 * @note: btstack_type H 722 */ 723 static inline hci_con_handle_t gatt_event_included_service_query_result_get_handle(const uint8_t * event){ 724 return little_endian_read_16(event, 2); 725 } 726 /** 727 * @brief Get field include_handle from event gatt_event_included_service_query_result 728 * @param Event packet 729 * @return include_handle 730 * @note: btstack_type 2 731 */ 732 static inline uint16_t gatt_event_included_service_query_result_get_include_handle(const uint8_t * event){ 733 return little_endian_read_16(event, 4); 734 } 735 /** 736 * @brief Get field service from event gatt_event_included_service_query_result 737 * @param Event packet 738 * @param Pointer to storage for service 739 * @note: btstack_type X 740 */ 741 static inline void gatt_event_included_service_query_result_get_service(const uint8_t * event, gatt_client_service_t * service){ 742 gatt_client_deserialize_service(event, 6, service); 743 } 744 #endif 745 746 #ifdef ENABLE_BLE 747 /** 748 * @brief Get field handle from event gatt_event_all_characteristic_descriptors_query_result 749 * @param Event packet 750 * @return handle 751 * @note: btstack_type H 752 */ 753 static inline hci_con_handle_t gatt_event_all_characteristic_descriptors_query_result_get_handle(const uint8_t * event){ 754 return little_endian_read_16(event, 2); 755 } 756 /** 757 * @brief Get field characteristic_descriptor from event gatt_event_all_characteristic_descriptors_query_result 758 * @param Event packet 759 * @param Pointer to storage for characteristic_descriptor 760 * @note: btstack_type Z 761 */ 762 static inline void gatt_event_all_characteristic_descriptors_query_result_get_characteristic_descriptor(const uint8_t * event, gatt_client_characteristic_descriptor_t * characteristic_descriptor){ 763 gatt_client_deserialize_characteristic_descriptor(event, 4, characteristic_descriptor); 764 } 765 #endif 766 767 #ifdef ENABLE_BLE 768 /** 769 * @brief Get field handle from event gatt_event_characteristic_value_query_result 770 * @param Event packet 771 * @return handle 772 * @note: btstack_type H 773 */ 774 static inline hci_con_handle_t gatt_event_characteristic_value_query_result_get_handle(const uint8_t * event){ 775 return little_endian_read_16(event, 2); 776 } 777 /** 778 * @brief Get field value_handle from event gatt_event_characteristic_value_query_result 779 * @param Event packet 780 * @return value_handle 781 * @note: btstack_type 2 782 */ 783 static inline uint16_t gatt_event_characteristic_value_query_result_get_value_handle(const uint8_t * event){ 784 return little_endian_read_16(event, 4); 785 } 786 /** 787 * @brief Get field value_length from event gatt_event_characteristic_value_query_result 788 * @param Event packet 789 * @return value_length 790 * @note: btstack_type L 791 */ 792 static inline int gatt_event_characteristic_value_query_result_get_value_length(const uint8_t * event){ 793 return little_endian_read_16(event, 6); 794 } 795 /** 796 * @brief Get field value from event gatt_event_characteristic_value_query_result 797 * @param Event packet 798 * @return value 799 * @note: btstack_type V 800 */ 801 static inline const uint8_t * gatt_event_characteristic_value_query_result_get_value(const uint8_t * event){ 802 return &event[8]; 803 } 804 #endif 805 806 #ifdef ENABLE_BLE 807 /** 808 * @brief Get field handle from event gatt_event_long_characteristic_value_query_result 809 * @param Event packet 810 * @return handle 811 * @note: btstack_type H 812 */ 813 static inline hci_con_handle_t gatt_event_long_characteristic_value_query_result_get_handle(const uint8_t * event){ 814 return little_endian_read_16(event, 2); 815 } 816 /** 817 * @brief Get field value_handle from event gatt_event_long_characteristic_value_query_result 818 * @param Event packet 819 * @return value_handle 820 * @note: btstack_type 2 821 */ 822 static inline uint16_t gatt_event_long_characteristic_value_query_result_get_value_handle(const uint8_t * event){ 823 return little_endian_read_16(event, 4); 824 } 825 /** 826 * @brief Get field value_offset from event gatt_event_long_characteristic_value_query_result 827 * @param Event packet 828 * @return value_offset 829 * @note: btstack_type 2 830 */ 831 static inline uint16_t gatt_event_long_characteristic_value_query_result_get_value_offset(const uint8_t * event){ 832 return little_endian_read_16(event, 6); 833 } 834 /** 835 * @brief Get field value_length from event gatt_event_long_characteristic_value_query_result 836 * @param Event packet 837 * @return value_length 838 * @note: btstack_type L 839 */ 840 static inline int gatt_event_long_characteristic_value_query_result_get_value_length(const uint8_t * event){ 841 return little_endian_read_16(event, 8); 842 } 843 /** 844 * @brief Get field value from event gatt_event_long_characteristic_value_query_result 845 * @param Event packet 846 * @return value 847 * @note: btstack_type V 848 */ 849 static inline const uint8_t * gatt_event_long_characteristic_value_query_result_get_value(const uint8_t * event){ 850 return &event[10]; 851 } 852 #endif 853 854 #ifdef ENABLE_BLE 855 /** 856 * @brief Get field handle from event gatt_event_notification 857 * @param Event packet 858 * @return handle 859 * @note: btstack_type H 860 */ 861 static inline hci_con_handle_t gatt_event_notification_get_handle(const uint8_t * event){ 862 return little_endian_read_16(event, 2); 863 } 864 /** 865 * @brief Get field value_handle from event gatt_event_notification 866 * @param Event packet 867 * @return value_handle 868 * @note: btstack_type 2 869 */ 870 static inline uint16_t gatt_event_notification_get_value_handle(const uint8_t * event){ 871 return little_endian_read_16(event, 4); 872 } 873 /** 874 * @brief Get field value_length from event gatt_event_notification 875 * @param Event packet 876 * @return value_length 877 * @note: btstack_type L 878 */ 879 static inline int gatt_event_notification_get_value_length(const uint8_t * event){ 880 return little_endian_read_16(event, 6); 881 } 882 /** 883 * @brief Get field value from event gatt_event_notification 884 * @param Event packet 885 * @return value 886 * @note: btstack_type V 887 */ 888 static inline const uint8_t * gatt_event_notification_get_value(const uint8_t * event){ 889 return &event[8]; 890 } 891 #endif 892 893 #ifdef ENABLE_BLE 894 /** 895 * @brief Get field handle from event gatt_event_indication 896 * @param Event packet 897 * @return handle 898 * @note: btstack_type H 899 */ 900 static inline hci_con_handle_t gatt_event_indication_get_handle(const uint8_t * event){ 901 return little_endian_read_16(event, 2); 902 } 903 /** 904 * @brief Get field value_handle from event gatt_event_indication 905 * @param Event packet 906 * @return value_handle 907 * @note: btstack_type 2 908 */ 909 static inline uint16_t gatt_event_indication_get_value_handle(const uint8_t * event){ 910 return little_endian_read_16(event, 4); 911 } 912 /** 913 * @brief Get field value_length from event gatt_event_indication 914 * @param Event packet 915 * @return value_length 916 * @note: btstack_type L 917 */ 918 static inline int gatt_event_indication_get_value_length(const uint8_t * event){ 919 return little_endian_read_16(event, 6); 920 } 921 /** 922 * @brief Get field value from event gatt_event_indication 923 * @param Event packet 924 * @return value 925 * @note: btstack_type V 926 */ 927 static inline const uint8_t * gatt_event_indication_get_value(const uint8_t * event){ 928 return &event[8]; 929 } 930 #endif 931 932 #ifdef ENABLE_BLE 933 /** 934 * @brief Get field descriptor_handle from event gatt_event_characteristic_descriptor_query_result 935 * @param Event packet 936 * @return descriptor_handle 937 * @note: btstack_type H 938 */ 939 static inline hci_con_handle_t gatt_event_characteristic_descriptor_query_result_get_descriptor_handle(const uint8_t * event){ 940 return little_endian_read_16(event, 2); 941 } 942 /** 943 * @brief Get field descriptor_length from event gatt_event_characteristic_descriptor_query_result 944 * @param Event packet 945 * @return descriptor_length 946 * @note: btstack_type 2 947 */ 948 static inline uint16_t gatt_event_characteristic_descriptor_query_result_get_descriptor_length(const uint8_t * event){ 949 return little_endian_read_16(event, 4); 950 } 951 /** 952 * @brief Get field descriptor from event gatt_event_characteristic_descriptor_query_result 953 * @param Event packet 954 * @return descriptor 955 * @note: btstack_type L 956 */ 957 static inline int gatt_event_characteristic_descriptor_query_result_get_descriptor(const uint8_t * event){ 958 return little_endian_read_16(event, 6); 959 } 960 #endif 961 962 #ifdef ENABLE_BLE 963 /** 964 * @brief Get field handle from event gatt_event_long_characteristic_descriptor_query_result 965 * @param Event packet 966 * @return handle 967 * @note: btstack_type H 968 */ 969 static inline hci_con_handle_t gatt_event_long_characteristic_descriptor_query_result_get_handle(const uint8_t * event){ 970 return little_endian_read_16(event, 2); 971 } 972 /** 973 * @brief Get field descriptor_offset from event gatt_event_long_characteristic_descriptor_query_result 974 * @param Event packet 975 * @return descriptor_offset 976 * @note: btstack_type 2 977 */ 978 static inline uint16_t gatt_event_long_characteristic_descriptor_query_result_get_descriptor_offset(const uint8_t * event){ 979 return little_endian_read_16(event, 4); 980 } 981 /** 982 * @brief Get field descriptor_length from event gatt_event_long_characteristic_descriptor_query_result 983 * @param Event packet 984 * @return descriptor_length 985 * @note: btstack_type L 986 */ 987 static inline int gatt_event_long_characteristic_descriptor_query_result_get_descriptor_length(const uint8_t * event){ 988 return little_endian_read_16(event, 6); 989 } 990 /** 991 * @brief Get field descriptor from event gatt_event_long_characteristic_descriptor_query_result 992 * @param Event packet 993 * @return descriptor 994 * @note: btstack_type V 995 */ 996 static inline const uint8_t * gatt_event_long_characteristic_descriptor_query_result_get_descriptor(const uint8_t * event){ 997 return &event[8]; 998 } 999 #endif 1000 1001 #ifdef ENABLE_BLE 1002 /** 1003 * @brief Get field handle from event gatt_event_mtu 1004 * @param Event packet 1005 * @return handle 1006 * @note: btstack_type H 1007 */ 1008 static inline hci_con_handle_t gatt_event_mtu_get_handle(const uint8_t * event){ 1009 return little_endian_read_16(event, 2); 1010 } 1011 /** 1012 * @brief Get field MTU from event gatt_event_mtu 1013 * @param Event packet 1014 * @return MTU 1015 * @note: btstack_type 2 1016 */ 1017 static inline uint16_t gatt_event_mtu_get_MTU(const uint8_t * event){ 1018 return little_endian_read_16(event, 4); 1019 } 1020 #endif 1021 1022 #ifdef ENABLE_BLE 1023 /** 1024 * @brief Get field handle from event sm_event_just_works_request 1025 * @param Event packet 1026 * @return handle 1027 * @note: btstack_type H 1028 */ 1029 static inline hci_con_handle_t sm_event_just_works_request_get_handle(const uint8_t * event){ 1030 return little_endian_read_16(event, 2); 1031 } 1032 /** 1033 * @brief Get field addr_type from event sm_event_just_works_request 1034 * @param Event packet 1035 * @return addr_type 1036 * @note: btstack_type 1 1037 */ 1038 static inline uint8_t sm_event_just_works_request_get_addr_type(const uint8_t * event){ 1039 return event[4]; 1040 } 1041 /** 1042 * @brief Get field address from event sm_event_just_works_request 1043 * @param Event packet 1044 * @param Pointer to storage for address 1045 * @note: btstack_type B 1046 */ 1047 static inline void sm_event_just_works_request_get_address(const uint8_t * event, bd_addr_t address){ 1048 reverse_bd_addr(&event[5], address); 1049 } 1050 #endif 1051 1052 #ifdef ENABLE_BLE 1053 /** 1054 * @brief Get field handle from event sm_event_just_works_cancel 1055 * @param Event packet 1056 * @return handle 1057 * @note: btstack_type H 1058 */ 1059 static inline hci_con_handle_t sm_event_just_works_cancel_get_handle(const uint8_t * event){ 1060 return little_endian_read_16(event, 2); 1061 } 1062 /** 1063 * @brief Get field addr_type from event sm_event_just_works_cancel 1064 * @param Event packet 1065 * @return addr_type 1066 * @note: btstack_type 1 1067 */ 1068 static inline uint8_t sm_event_just_works_cancel_get_addr_type(const uint8_t * event){ 1069 return event[4]; 1070 } 1071 /** 1072 * @brief Get field address from event sm_event_just_works_cancel 1073 * @param Event packet 1074 * @param Pointer to storage for address 1075 * @note: btstack_type B 1076 */ 1077 static inline void sm_event_just_works_cancel_get_address(const uint8_t * event, bd_addr_t address){ 1078 reverse_bd_addr(&event[5], address); 1079 } 1080 #endif 1081 1082 #ifdef ENABLE_BLE 1083 /** 1084 * @brief Get field handle from event sm_event_passkey_display_number 1085 * @param Event packet 1086 * @return handle 1087 * @note: btstack_type H 1088 */ 1089 static inline hci_con_handle_t sm_event_passkey_display_number_get_handle(const uint8_t * event){ 1090 return little_endian_read_16(event, 2); 1091 } 1092 /** 1093 * @brief Get field addr_type from event sm_event_passkey_display_number 1094 * @param Event packet 1095 * @return addr_type 1096 * @note: btstack_type 1 1097 */ 1098 static inline uint8_t sm_event_passkey_display_number_get_addr_type(const uint8_t * event){ 1099 return event[4]; 1100 } 1101 /** 1102 * @brief Get field address from event sm_event_passkey_display_number 1103 * @param Event packet 1104 * @param Pointer to storage for address 1105 * @note: btstack_type B 1106 */ 1107 static inline void sm_event_passkey_display_number_get_address(const uint8_t * event, bd_addr_t address){ 1108 reverse_bd_addr(&event[5], address); 1109 } 1110 /** 1111 * @brief Get field passkey from event sm_event_passkey_display_number 1112 * @param Event packet 1113 * @return passkey 1114 * @note: btstack_type 4 1115 */ 1116 static inline uint32_t sm_event_passkey_display_number_get_passkey(const uint8_t * event){ 1117 return little_endian_read_32(event, 11); 1118 } 1119 #endif 1120 1121 #ifdef ENABLE_BLE 1122 /** 1123 * @brief Get field handle from event sm_event_passkey_display_cancel 1124 * @param Event packet 1125 * @return handle 1126 * @note: btstack_type H 1127 */ 1128 static inline hci_con_handle_t sm_event_passkey_display_cancel_get_handle(const uint8_t * event){ 1129 return little_endian_read_16(event, 2); 1130 } 1131 /** 1132 * @brief Get field addr_type from event sm_event_passkey_display_cancel 1133 * @param Event packet 1134 * @return addr_type 1135 * @note: btstack_type 1 1136 */ 1137 static inline uint8_t sm_event_passkey_display_cancel_get_addr_type(const uint8_t * event){ 1138 return event[4]; 1139 } 1140 /** 1141 * @brief Get field address from event sm_event_passkey_display_cancel 1142 * @param Event packet 1143 * @param Pointer to storage for address 1144 * @note: btstack_type B 1145 */ 1146 static inline void sm_event_passkey_display_cancel_get_address(const uint8_t * event, bd_addr_t address){ 1147 reverse_bd_addr(&event[5], address); 1148 } 1149 #endif 1150 1151 #ifdef ENABLE_BLE 1152 /** 1153 * @brief Get field handle from event sm_event_passkey_input_number 1154 * @param Event packet 1155 * @return handle 1156 * @note: btstack_type H 1157 */ 1158 static inline hci_con_handle_t sm_event_passkey_input_number_get_handle(const uint8_t * event){ 1159 return little_endian_read_16(event, 2); 1160 } 1161 /** 1162 * @brief Get field addr_type from event sm_event_passkey_input_number 1163 * @param Event packet 1164 * @return addr_type 1165 * @note: btstack_type 1 1166 */ 1167 static inline uint8_t sm_event_passkey_input_number_get_addr_type(const uint8_t * event){ 1168 return event[4]; 1169 } 1170 /** 1171 * @brief Get field address from event sm_event_passkey_input_number 1172 * @param Event packet 1173 * @param Pointer to storage for address 1174 * @note: btstack_type B 1175 */ 1176 static inline void sm_event_passkey_input_number_get_address(const uint8_t * event, bd_addr_t address){ 1177 reverse_bd_addr(&event[5], address); 1178 } 1179 #endif 1180 1181 #ifdef ENABLE_BLE 1182 /** 1183 * @brief Get field handle from event sm_event_passkey_input_cancel 1184 * @param Event packet 1185 * @return handle 1186 * @note: btstack_type H 1187 */ 1188 static inline hci_con_handle_t sm_event_passkey_input_cancel_get_handle(const uint8_t * event){ 1189 return little_endian_read_16(event, 2); 1190 } 1191 /** 1192 * @brief Get field addr_type from event sm_event_passkey_input_cancel 1193 * @param Event packet 1194 * @return addr_type 1195 * @note: btstack_type 1 1196 */ 1197 static inline uint8_t sm_event_passkey_input_cancel_get_addr_type(const uint8_t * event){ 1198 return event[4]; 1199 } 1200 /** 1201 * @brief Get field address from event sm_event_passkey_input_cancel 1202 * @param Event packet 1203 * @param Pointer to storage for address 1204 * @note: btstack_type B 1205 */ 1206 static inline void sm_event_passkey_input_cancel_get_address(const uint8_t * event, bd_addr_t address){ 1207 reverse_bd_addr(&event[5], address); 1208 } 1209 #endif 1210 1211 #ifdef ENABLE_BLE 1212 /** 1213 * @brief Get field handle from event sm_event_identity_resolving_started 1214 * @param Event packet 1215 * @return handle 1216 * @note: btstack_type H 1217 */ 1218 static inline hci_con_handle_t sm_event_identity_resolving_started_get_handle(const uint8_t * event){ 1219 return little_endian_read_16(event, 2); 1220 } 1221 /** 1222 * @brief Get field addr_type from event sm_event_identity_resolving_started 1223 * @param Event packet 1224 * @return addr_type 1225 * @note: btstack_type 1 1226 */ 1227 static inline uint8_t sm_event_identity_resolving_started_get_addr_type(const uint8_t * event){ 1228 return event[4]; 1229 } 1230 /** 1231 * @brief Get field address from event sm_event_identity_resolving_started 1232 * @param Event packet 1233 * @param Pointer to storage for address 1234 * @note: btstack_type B 1235 */ 1236 static inline void sm_event_identity_resolving_started_get_address(const uint8_t * event, bd_addr_t address){ 1237 reverse_bd_addr(&event[5], address); 1238 } 1239 #endif 1240 1241 #ifdef ENABLE_BLE 1242 /** 1243 * @brief Get field handle from event sm_event_identity_resolving_failed 1244 * @param Event packet 1245 * @return handle 1246 * @note: btstack_type H 1247 */ 1248 static inline hci_con_handle_t sm_event_identity_resolving_failed_get_handle(const uint8_t * event){ 1249 return little_endian_read_16(event, 2); 1250 } 1251 /** 1252 * @brief Get field addr_type from event sm_event_identity_resolving_failed 1253 * @param Event packet 1254 * @return addr_type 1255 * @note: btstack_type 1 1256 */ 1257 static inline uint8_t sm_event_identity_resolving_failed_get_addr_type(const uint8_t * event){ 1258 return event[4]; 1259 } 1260 /** 1261 * @brief Get field address from event sm_event_identity_resolving_failed 1262 * @param Event packet 1263 * @param Pointer to storage for address 1264 * @note: btstack_type B 1265 */ 1266 static inline void sm_event_identity_resolving_failed_get_address(const uint8_t * event, bd_addr_t address){ 1267 reverse_bd_addr(&event[5], address); 1268 } 1269 #endif 1270 1271 #ifdef ENABLE_BLE 1272 /** 1273 * @brief Get field handle from event sm_event_identity_resolving_succeeded 1274 * @param Event packet 1275 * @return handle 1276 * @note: btstack_type H 1277 */ 1278 static inline hci_con_handle_t sm_event_identity_resolving_succeeded_get_handle(const uint8_t * event){ 1279 return little_endian_read_16(event, 2); 1280 } 1281 /** 1282 * @brief Get field addr_type from event sm_event_identity_resolving_succeeded 1283 * @param Event packet 1284 * @return addr_type 1285 * @note: btstack_type 1 1286 */ 1287 static inline uint8_t sm_event_identity_resolving_succeeded_get_addr_type(const uint8_t * event){ 1288 return event[4]; 1289 } 1290 /** 1291 * @brief Get field address from event sm_event_identity_resolving_succeeded 1292 * @param Event packet 1293 * @param Pointer to storage for address 1294 * @note: btstack_type B 1295 */ 1296 static inline void sm_event_identity_resolving_succeeded_get_address(const uint8_t * event, bd_addr_t address){ 1297 reverse_bd_addr(&event[5], address); 1298 } 1299 /** 1300 * @brief Get field le_device_db_index from event sm_event_identity_resolving_succeeded 1301 * @param Event packet 1302 * @return le_device_db_index 1303 * @note: btstack_type 2 1304 */ 1305 static inline uint16_t sm_event_identity_resolving_succeeded_get_le_device_db_index(const uint8_t * event){ 1306 return little_endian_read_16(event, 11); 1307 } 1308 #endif 1309 1310 #ifdef ENABLE_BLE 1311 /** 1312 * @brief Get field handle from event sm_event_authorization_request 1313 * @param Event packet 1314 * @return handle 1315 * @note: btstack_type H 1316 */ 1317 static inline hci_con_handle_t sm_event_authorization_request_get_handle(const uint8_t * event){ 1318 return little_endian_read_16(event, 2); 1319 } 1320 /** 1321 * @brief Get field addr_type from event sm_event_authorization_request 1322 * @param Event packet 1323 * @return addr_type 1324 * @note: btstack_type 1 1325 */ 1326 static inline uint8_t sm_event_authorization_request_get_addr_type(const uint8_t * event){ 1327 return event[4]; 1328 } 1329 /** 1330 * @brief Get field address from event sm_event_authorization_request 1331 * @param Event packet 1332 * @param Pointer to storage for address 1333 * @note: btstack_type B 1334 */ 1335 static inline void sm_event_authorization_request_get_address(const uint8_t * event, bd_addr_t address){ 1336 reverse_bd_addr(&event[5], address); 1337 } 1338 #endif 1339 1340 #ifdef ENABLE_BLE 1341 /** 1342 * @brief Get field handle from event sm_event_authorization_result 1343 * @param Event packet 1344 * @return handle 1345 * @note: btstack_type H 1346 */ 1347 static inline hci_con_handle_t sm_event_authorization_result_get_handle(const uint8_t * event){ 1348 return little_endian_read_16(event, 2); 1349 } 1350 /** 1351 * @brief Get field addr_type from event sm_event_authorization_result 1352 * @param Event packet 1353 * @return addr_type 1354 * @note: btstack_type 1 1355 */ 1356 static inline uint8_t sm_event_authorization_result_get_addr_type(const uint8_t * event){ 1357 return event[4]; 1358 } 1359 /** 1360 * @brief Get field address from event sm_event_authorization_result 1361 * @param Event packet 1362 * @param Pointer to storage for address 1363 * @note: btstack_type B 1364 */ 1365 static inline void sm_event_authorization_result_get_address(const uint8_t * event, bd_addr_t address){ 1366 reverse_bd_addr(&event[5], address); 1367 } 1368 /** 1369 * @brief Get field authorization_result from event sm_event_authorization_result 1370 * @param Event packet 1371 * @return authorization_result 1372 * @note: btstack_type 1 1373 */ 1374 static inline uint8_t sm_event_authorization_result_get_authorization_result(const uint8_t * event){ 1375 return event[11]; 1376 } 1377 #endif 1378 1379 #ifdef ENABLE_BLE 1380 /** 1381 * @brief Get field handle from event ancs_event_client_connected 1382 * @param Event packet 1383 * @return handle 1384 * @note: btstack_type H 1385 */ 1386 static inline hci_con_handle_t ancs_event_client_connected_get_handle(const uint8_t * event){ 1387 return little_endian_read_16(event, 2); 1388 } 1389 #endif 1390 1391 #ifdef ENABLE_BLE 1392 /** 1393 * @brief Get field handle from event ancs_event_client_notification 1394 * @param Event packet 1395 * @return handle 1396 * @note: btstack_type H 1397 */ 1398 static inline hci_con_handle_t ancs_event_client_notification_get_handle(const uint8_t * event){ 1399 return little_endian_read_16(event, 2); 1400 } 1401 /** 1402 * @brief Get field attribute_id from event ancs_event_client_notification 1403 * @param Event packet 1404 * @return attribute_id 1405 * @note: btstack_type 2 1406 */ 1407 static inline uint16_t ancs_event_client_notification_get_attribute_id(const uint8_t * event){ 1408 return little_endian_read_16(event, 4); 1409 } 1410 /** 1411 * @brief Get field text from event ancs_event_client_notification 1412 * @param Event packet 1413 * @return text 1414 * @note: btstack_type T 1415 */ 1416 static inline const char * ancs_event_client_notification_get_text(const uint8_t * event){ 1417 return (const char *) &event[6]; 1418 } 1419 #endif 1420 1421 #ifdef ENABLE_BLE 1422 /** 1423 * @brief Get field handle from event ancs_event_client_disconnected 1424 * @param Event packet 1425 * @return handle 1426 * @note: btstack_type H 1427 */ 1428 static inline hci_con_handle_t ancs_event_client_disconnected_get_handle(const uint8_t * event){ 1429 return little_endian_read_16(event, 2); 1430 } 1431 #endif 1432 1433 1434 1435 /* API_END */ 1436 1437 #if defined __cplusplus 1438 } 1439 #endif 1440 1441 #endif // __BTSTACK_EVENT_H 1442