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 /* API_START */ 58 59 60 /** 61 * @brief Get field status from event l2cap_event_channel_opened 62 * @param Event packet 63 * @return status 64 * @note: btstack_type 1 65 */ 66 static inline uint8_t l2cap_event_channel_opened_get_status(const uint8_t * event){ 67 return event[2]; 68 } 69 70 /** 71 * @brief Get field address from event l2cap_event_channel_opened 72 * @param Event packet 73 * @param Pointer to storage for address 74 * @note: btstack_type B 75 */ 76 static inline void l2cap_event_channel_opened_get_address(const uint8_t * event, bd_addr_t address){ 77 swap48(&event[3], address); 78 } 79 80 /** 81 * @brief Get field handle from event l2cap_event_channel_opened 82 * @param Event packet 83 * @return handle 84 * @note: btstack_type H 85 */ 86 static inline hci_con_handle_t l2cap_event_channel_opened_get_handle(const uint8_t * event){ 87 return little_endian_read_16(event, 9); 88 } 89 90 /** 91 * @brief Get field psm from event l2cap_event_channel_opened 92 * @param Event packet 93 * @return psm 94 * @note: btstack_type 2 95 */ 96 static inline uint16_t l2cap_event_channel_opened_get_psm(const uint8_t * event){ 97 return little_endian_read_16(event, 11); 98 } 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 /** 111 * @brief Get field remote_cid from event l2cap_event_channel_opened 112 * @param Event packet 113 * @return remote_cid 114 * @note: btstack_type 2 115 */ 116 static inline uint16_t l2cap_event_channel_opened_get_remote_cid(const uint8_t * event){ 117 return little_endian_read_16(event, 15); 118 } 119 120 /** 121 * @brief Get field local_mtu from event l2cap_event_channel_opened 122 * @param Event packet 123 * @return local_mtu 124 * @note: btstack_type 2 125 */ 126 static inline uint16_t l2cap_event_channel_opened_get_local_mtu(const uint8_t * event){ 127 return little_endian_read_16(event, 17); 128 } 129 130 /** 131 * @brief Get field remote_mtu from event l2cap_event_channel_opened 132 * @param Event packet 133 * @return remote_mtu 134 * @note: btstack_type 2 135 */ 136 static inline uint16_t l2cap_event_channel_opened_get_remote_mtu(const uint8_t * event){ 137 return little_endian_read_16(event, 19); 138 } 139 140 /** 141 * @brief Get field flush_timeout from event l2cap_event_channel_opened 142 * @param Event packet 143 * @return flush_timeout 144 * @note: btstack_type 2 145 */ 146 static inline uint16_t l2cap_event_channel_opened_get_flush_timeout(const uint8_t * event){ 147 return little_endian_read_16(event, 21); 148 } 149 150 /** 151 * @brief Get field local_cid from event l2cap_event_channel_closed 152 * @param Event packet 153 * @return local_cid 154 * @note: btstack_type 2 155 */ 156 static inline uint16_t l2cap_event_channel_closed_get_local_cid(const uint8_t * event){ 157 return little_endian_read_16(event, 2); 158 } 159 160 /** 161 * @brief Get field status from event l2cap_event_incoming_connection 162 * @param Event packet 163 * @return status 164 * @note: btstack_type 1 165 */ 166 static inline uint8_t l2cap_event_incoming_connection_get_status(const uint8_t * event){ 167 return event[2]; 168 } 169 170 /** 171 * @brief Get field address from event l2cap_event_incoming_connection 172 * @param Event packet 173 * @param Pointer to storage for address 174 * @note: btstack_type B 175 */ 176 static inline void l2cap_event_incoming_connection_get_address(const uint8_t * event, bd_addr_t address){ 177 swap48(&event[3], address); 178 } 179 180 /** 181 * @brief Get field handle from event l2cap_event_incoming_connection 182 * @param Event packet 183 * @return handle 184 * @note: btstack_type H 185 */ 186 static inline hci_con_handle_t l2cap_event_incoming_connection_get_handle(const uint8_t * event){ 187 return little_endian_read_16(event, 9); 188 } 189 190 /** 191 * @brief Get field psm from event l2cap_event_incoming_connection 192 * @param Event packet 193 * @return psm 194 * @note: btstack_type 2 195 */ 196 static inline uint16_t l2cap_event_incoming_connection_get_psm(const uint8_t * event){ 197 return little_endian_read_16(event, 11); 198 } 199 200 /** 201 * @brief Get field local_cid from event l2cap_event_incoming_connection 202 * @param Event packet 203 * @return local_cid 204 * @note: btstack_type 2 205 */ 206 static inline uint16_t l2cap_event_incoming_connection_get_local_cid(const uint8_t * event){ 207 return little_endian_read_16(event, 13); 208 } 209 210 /** 211 * @brief Get field remote_cid from event l2cap_event_incoming_connection 212 * @param Event packet 213 * @return remote_cid 214 * @note: btstack_type 2 215 */ 216 static inline uint16_t l2cap_event_incoming_connection_get_remote_cid(const uint8_t * event){ 217 return little_endian_read_16(event, 15); 218 } 219 220 /** 221 * @brief Get field status from event l2cap_event_service_registered 222 * @param Event packet 223 * @return status 224 * @note: btstack_type 1 225 */ 226 static inline uint8_t l2cap_event_service_registered_get_status(const uint8_t * event){ 227 return event[2]; 228 } 229 230 /** 231 * @brief Get field psm from event l2cap_event_service_registered 232 * @param Event packet 233 * @return psm 234 * @note: btstack_type 2 235 */ 236 static inline uint16_t l2cap_event_service_registered_get_psm(const uint8_t * event){ 237 return little_endian_read_16(event, 3); 238 } 239 240 /** 241 * @brief Get field handle from event l2cap_event_connection_parameter_update_request 242 * @param Event packet 243 * @return handle 244 * @note: btstack_type H 245 */ 246 static inline hci_con_handle_t l2cap_event_connection_parameter_update_request_get_handle(const uint8_t * event){ 247 return little_endian_read_16(event, 2); 248 } 249 250 /** 251 * @brief Get field interval_min from event l2cap_event_connection_parameter_update_request 252 * @param Event packet 253 * @return interval_min 254 * @note: btstack_type 2 255 */ 256 static inline uint16_t l2cap_event_connection_parameter_update_request_get_interval_min(const uint8_t * event){ 257 return little_endian_read_16(event, 4); 258 } 259 260 /** 261 * @brief Get field interval_max from event l2cap_event_connection_parameter_update_request 262 * @param Event packet 263 * @return interval_max 264 * @note: btstack_type 2 265 */ 266 static inline uint16_t l2cap_event_connection_parameter_update_request_get_interval_max(const uint8_t * event){ 267 return little_endian_read_16(event, 6); 268 } 269 270 /** 271 * @brief Get field latencey from event l2cap_event_connection_parameter_update_request 272 * @param Event packet 273 * @return latencey 274 * @note: btstack_type 2 275 */ 276 static inline uint16_t l2cap_event_connection_parameter_update_request_get_latencey(const uint8_t * event){ 277 return little_endian_read_16(event, 8); 278 } 279 280 /** 281 * @brief Get field timeout_multiplier from event l2cap_event_connection_parameter_update_request 282 * @param Event packet 283 * @return timeout_multiplier 284 * @note: btstack_type 2 285 */ 286 static inline uint16_t l2cap_event_connection_parameter_update_request_get_timeout_multiplier(const uint8_t * event){ 287 return little_endian_read_16(event, 10); 288 } 289 290 /** 291 * @brief Get field handle from event l2cap_event_connection_parameter_update_response 292 * @param Event packet 293 * @return handle 294 * @note: btstack_type H 295 */ 296 static inline hci_con_handle_t l2cap_event_connection_parameter_update_response_get_handle(const uint8_t * event){ 297 return little_endian_read_16(event, 2); 298 } 299 300 /** 301 * @brief Get field local_cid from event l2cap_event_can_send_now 302 * @param Event packet 303 * @return local_cid 304 * @note: btstack_type 2 305 */ 306 static inline uint16_t l2cap_event_can_send_now_get_local_cid(const uint8_t * event){ 307 return little_endian_read_16(event, 2); 308 } 309 310 /** 311 * @brief Get field status from event rfcomm_event_open_channel_complete 312 * @param Event packet 313 * @return status 314 * @note: btstack_type 1 315 */ 316 static inline uint8_t rfcomm_event_open_channel_complete_get_status(const uint8_t * event){ 317 return event[2]; 318 } 319 320 /** 321 * @brief Get field bd_addr from event rfcomm_event_open_channel_complete 322 * @param Event packet 323 * @param Pointer to storage for bd_addr 324 * @note: btstack_type B 325 */ 326 static inline void rfcomm_event_open_channel_complete_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 327 swap48(&event[3], bd_addr); 328 } 329 330 /** 331 * @brief Get field con_handle from event rfcomm_event_open_channel_complete 332 * @param Event packet 333 * @return con_handle 334 * @note: btstack_type 2 335 */ 336 static inline uint16_t rfcomm_event_open_channel_complete_get_con_handle(const uint8_t * event){ 337 return little_endian_read_16(event, 9); 338 } 339 340 /** 341 * @brief Get field server_channel from event rfcomm_event_open_channel_complete 342 * @param Event packet 343 * @return server_channel 344 * @note: btstack_type 1 345 */ 346 static inline uint8_t rfcomm_event_open_channel_complete_get_server_channel(const uint8_t * event){ 347 return event[11]; 348 } 349 350 /** 351 * @brief Get field rfcomm_cid from event rfcomm_event_open_channel_complete 352 * @param Event packet 353 * @return rfcomm_cid 354 * @note: btstack_type 2 355 */ 356 static inline uint16_t rfcomm_event_open_channel_complete_get_rfcomm_cid(const uint8_t * event){ 357 return little_endian_read_16(event, 12); 358 } 359 360 /** 361 * @brief Get field max_frame_size from event rfcomm_event_open_channel_complete 362 * @param Event packet 363 * @return max_frame_size 364 * @note: btstack_type 2 365 */ 366 static inline uint16_t rfcomm_event_open_channel_complete_get_max_frame_size(const uint8_t * event){ 367 return little_endian_read_16(event, 14); 368 } 369 370 /** 371 * @brief Get field rfcomm_cid from event rfcomm_event_channel_closed 372 * @param Event packet 373 * @return rfcomm_cid 374 * @note: btstack_type 2 375 */ 376 static inline uint16_t rfcomm_event_channel_closed_get_rfcomm_cid(const uint8_t * event){ 377 return little_endian_read_16(event, 2); 378 } 379 380 /** 381 * @brief Get field bd_addr from event rfcomm_event_incoming_connection 382 * @param Event packet 383 * @param Pointer to storage for bd_addr 384 * @note: btstack_type B 385 */ 386 static inline void rfcomm_event_incoming_connection_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 387 swap48(&event[2], bd_addr); 388 } 389 390 /** 391 * @brief Get field server_channel from event rfcomm_event_incoming_connection 392 * @param Event packet 393 * @return server_channel 394 * @note: btstack_type 1 395 */ 396 static inline uint8_t rfcomm_event_incoming_connection_get_server_channel(const uint8_t * event){ 397 return event[8]; 398 } 399 400 /** 401 * @brief Get field rfcomm_cid from event rfcomm_event_incoming_connection 402 * @param Event packet 403 * @return rfcomm_cid 404 * @note: btstack_type 2 405 */ 406 static inline uint16_t rfcomm_event_incoming_connection_get_rfcomm_cid(const uint8_t * event){ 407 return little_endian_read_16(event, 9); 408 } 409 410 /** 411 * @brief Get field rfcomm_cid from event rfcomm_event_remote_line_status 412 * @param Event packet 413 * @return rfcomm_cid 414 * @note: btstack_type 2 415 */ 416 static inline uint16_t rfcomm_event_remote_line_status_get_rfcomm_cid(const uint8_t * event){ 417 return little_endian_read_16(event, 2); 418 } 419 420 /** 421 * @brief Get field line_status from event rfcomm_event_remote_line_status 422 * @param Event packet 423 * @return line_status 424 * @note: btstack_type 1 425 */ 426 static inline uint8_t rfcomm_event_remote_line_status_get_line_status(const uint8_t * event){ 427 return event[4]; 428 } 429 430 /** 431 * @brief Get field rfcomm_cid from event rfcomm_event_credits 432 * @param Event packet 433 * @return rfcomm_cid 434 * @note: btstack_type 2 435 */ 436 static inline uint16_t rfcomm_event_credits_get_rfcomm_cid(const uint8_t * event){ 437 return little_endian_read_16(event, 2); 438 } 439 440 /** 441 * @brief Get field credits from event rfcomm_event_credits 442 * @param Event packet 443 * @return credits 444 * @note: btstack_type 1 445 */ 446 static inline uint8_t rfcomm_event_credits_get_credits(const uint8_t * event){ 447 return event[4]; 448 } 449 450 /** 451 * @brief Get field status from event rfcomm_event_service_registered 452 * @param Event packet 453 * @return status 454 * @note: btstack_type 1 455 */ 456 static inline uint8_t rfcomm_event_service_registered_get_status(const uint8_t * event){ 457 return event[2]; 458 } 459 460 /** 461 * @brief Get field channel_id from event rfcomm_event_service_registered 462 * @param Event packet 463 * @return channel_id 464 * @note: btstack_type 1 465 */ 466 static inline uint8_t rfcomm_event_service_registered_get_channel_id(const uint8_t * event){ 467 return event[3]; 468 } 469 470 /** 471 * @brief Get field status from event rfcomm_event_persistent_channel 472 * @param Event packet 473 * @return status 474 * @note: btstack_type 1 475 */ 476 static inline uint8_t rfcomm_event_persistent_channel_get_status(const uint8_t * event){ 477 return event[2]; 478 } 479 480 /** 481 * @brief Get field server_channel_id from event rfcomm_event_persistent_channel 482 * @param Event packet 483 * @return server_channel_id 484 * @note: btstack_type 1 485 */ 486 static inline uint8_t rfcomm_event_persistent_channel_get_server_channel_id(const uint8_t * event){ 487 return event[3]; 488 } 489 490 /** 491 * @brief Get field rfcomm_cid from event rfcomm_event_remote_modem_status 492 * @param Event packet 493 * @return rfcomm_cid 494 * @note: btstack_type 2 495 */ 496 static inline uint16_t rfcomm_event_remote_modem_status_get_rfcomm_cid(const uint8_t * event){ 497 return little_endian_read_16(event, 2); 498 } 499 500 /** 501 * @brief Get field modem_status from event rfcomm_event_remote_modem_status 502 * @param Event packet 503 * @return modem_status 504 * @note: btstack_type 1 505 */ 506 static inline uint8_t rfcomm_event_remote_modem_status_get_modem_status(const uint8_t * event){ 507 return event[4]; 508 } 509 510 /** 511 * @brief Get field local_cid from event rfcomm_event_can_send_now 512 * @param Event packet 513 * @return local_cid 514 * @note: btstack_type 2 515 */ 516 static inline uint16_t rfcomm_event_can_send_now_get_local_cid(const uint8_t * event){ 517 return little_endian_read_16(event, 2); 518 } 519 520 /** 521 * @brief Get field status from event sdp_event_service_registered 522 * @param Event packet 523 * @return status 524 * @note: btstack_type 1 525 */ 526 static inline uint8_t sdp_event_service_registered_get_status(const uint8_t * event){ 527 return event[2]; 528 } 529 530 /** 531 * @brief Get field service_record_handle from event sdp_event_service_registered 532 * @param Event packet 533 * @return service_record_handle 534 * @note: btstack_type 4 535 */ 536 static inline uint32_t sdp_event_service_registered_get_service_record_handle(const uint8_t * event){ 537 return little_endian_read_32(event, 3); 538 } 539 540 /** 541 * @brief Get field status from event sdp_event_query_complete 542 * @param Event packet 543 * @return status 544 * @note: btstack_type 1 545 */ 546 static inline uint8_t sdp_event_query_complete_get_status(const uint8_t * event){ 547 return event[2]; 548 } 549 550 /** 551 * @brief Get field rfcomm_channel from event sdp_event_query_rfcomm_service 552 * @param Event packet 553 * @return rfcomm_channel 554 * @note: btstack_type 1 555 */ 556 static inline uint8_t sdp_event_query_rfcomm_service_get_rfcomm_channel(const uint8_t * event){ 557 return event[2]; 558 } 559 560 /** 561 * @brief Get field name from event sdp_event_query_rfcomm_service 562 * @param Event packet 563 * @return name 564 * @note: btstack_type T 565 */ 566 static inline const char * sdp_event_query_rfcomm_service_get_name(const uint8_t * event){ 567 return (const char *) &event[3]; 568 } 569 570 /** 571 * @brief Get field record_id from event sdp_event_query_attribute_byte 572 * @param Event packet 573 * @return record_id 574 * @note: btstack_type 2 575 */ 576 static inline uint16_t sdp_event_query_attribute_byte_get_record_id(const uint8_t * event){ 577 return little_endian_read_16(event, 2); 578 } 579 580 /** 581 * @brief Get field attribute_id from event sdp_event_query_attribute_byte 582 * @param Event packet 583 * @return attribute_id 584 * @note: btstack_type 2 585 */ 586 static inline uint16_t sdp_event_query_attribute_byte_get_attribute_id(const uint8_t * event){ 587 return little_endian_read_16(event, 4); 588 } 589 590 /** 591 * @brief Get field attribute_length from event sdp_event_query_attribute_byte 592 * @param Event packet 593 * @return attribute_length 594 * @note: btstack_type 2 595 */ 596 static inline uint16_t sdp_event_query_attribute_byte_get_attribute_length(const uint8_t * event){ 597 return little_endian_read_16(event, 6); 598 } 599 600 /** 601 * @brief Get field data_offset from event sdp_event_query_attribute_byte 602 * @param Event packet 603 * @return data_offset 604 * @note: btstack_type 2 605 */ 606 static inline uint16_t sdp_event_query_attribute_byte_get_data_offset(const uint8_t * event){ 607 return little_endian_read_16(event, 8); 608 } 609 610 /** 611 * @brief Get field data from event sdp_event_query_attribute_byte 612 * @param Event packet 613 * @return data 614 * @note: btstack_type 1 615 */ 616 static inline uint8_t sdp_event_query_attribute_byte_get_data(const uint8_t * event){ 617 return event[10]; 618 } 619 620 /** 621 * @brief Get field record_id from event sdp_event_query_attribute_value 622 * @param Event packet 623 * @return record_id 624 * @note: btstack_type 2 625 */ 626 static inline uint16_t sdp_event_query_attribute_value_get_record_id(const uint8_t * event){ 627 return little_endian_read_16(event, 2); 628 } 629 630 /** 631 * @brief Get field attribute_id from event sdp_event_query_attribute_value 632 * @param Event packet 633 * @return attribute_id 634 * @note: btstack_type 2 635 */ 636 static inline uint16_t sdp_event_query_attribute_value_get_attribute_id(const uint8_t * event){ 637 return little_endian_read_16(event, 4); 638 } 639 640 /** 641 * @brief Get field attribute_length from event sdp_event_query_attribute_value 642 * @param Event packet 643 * @return attribute_length 644 * @note: btstack_type L 645 */ 646 static inline int sdp_event_query_attribute_value_get_attribute_length(const uint8_t * event){ 647 return little_endian_read_16(event, 6); 648 } 649 650 /** 651 * @brief Get field attribute_value from event sdp_event_query_attribute_value 652 * @param Event packet 653 * @return attribute_value 654 * @note: btstack_type V 655 */ 656 static inline const uint8_t * sdp_event_query_attribute_value_get_attribute_value(const uint8_t * event){ 657 return &event[8]; 658 } 659 660 /** 661 * @brief Get field total_count from event sdp_event_query_service_record_handle 662 * @param Event packet 663 * @return total_count 664 * @note: btstack_type 2 665 */ 666 static inline uint16_t sdp_event_query_service_record_handle_get_total_count(const uint8_t * event){ 667 return little_endian_read_16(event, 2); 668 } 669 670 /** 671 * @brief Get field record_index from event sdp_event_query_service_record_handle 672 * @param Event packet 673 * @return record_index 674 * @note: btstack_type 2 675 */ 676 static inline uint16_t sdp_event_query_service_record_handle_get_record_index(const uint8_t * event){ 677 return little_endian_read_16(event, 4); 678 } 679 680 /** 681 * @brief Get field record_handle from event sdp_event_query_service_record_handle 682 * @param Event packet 683 * @return record_handle 684 * @note: btstack_type 4 685 */ 686 static inline uint32_t sdp_event_query_service_record_handle_get_record_handle(const uint8_t * event){ 687 return little_endian_read_32(event, 6); 688 } 689 690 /** 691 * @brief Get field handle from event sm_event_just_works_request 692 * @param Event packet 693 * @return handle 694 * @note: btstack_type H 695 */ 696 static inline hci_con_handle_t sm_event_just_works_request_get_handle(const uint8_t * event){ 697 return little_endian_read_16(event, 2); 698 } 699 700 /** 701 * @brief Get field addr_type from event sm_event_just_works_request 702 * @param Event packet 703 * @return addr_type 704 * @note: btstack_type 1 705 */ 706 static inline uint8_t sm_event_just_works_request_get_addr_type(const uint8_t * event){ 707 return event[4]; 708 } 709 710 /** 711 * @brief Get field address from event sm_event_just_works_request 712 * @param Event packet 713 * @param Pointer to storage for address 714 * @note: btstack_type B 715 */ 716 static inline void sm_event_just_works_request_get_address(const uint8_t * event, bd_addr_t address){ 717 swap48(&event[5], address); 718 } 719 720 /** 721 * @brief Get field handle from event sm_event_just_works_cancel 722 * @param Event packet 723 * @return handle 724 * @note: btstack_type H 725 */ 726 static inline hci_con_handle_t sm_event_just_works_cancel_get_handle(const uint8_t * event){ 727 return little_endian_read_16(event, 2); 728 } 729 730 /** 731 * @brief Get field addr_type from event sm_event_just_works_cancel 732 * @param Event packet 733 * @return addr_type 734 * @note: btstack_type 1 735 */ 736 static inline uint8_t sm_event_just_works_cancel_get_addr_type(const uint8_t * event){ 737 return event[4]; 738 } 739 740 /** 741 * @brief Get field address from event sm_event_just_works_cancel 742 * @param Event packet 743 * @param Pointer to storage for address 744 * @note: btstack_type B 745 */ 746 static inline void sm_event_just_works_cancel_get_address(const uint8_t * event, bd_addr_t address){ 747 swap48(&event[5], address); 748 } 749 750 /** 751 * @brief Get field handle from event sm_event_passkey_display_number 752 * @param Event packet 753 * @return handle 754 * @note: btstack_type H 755 */ 756 static inline hci_con_handle_t sm_event_passkey_display_number_get_handle(const uint8_t * event){ 757 return little_endian_read_16(event, 2); 758 } 759 760 /** 761 * @brief Get field addr_type from event sm_event_passkey_display_number 762 * @param Event packet 763 * @return addr_type 764 * @note: btstack_type 1 765 */ 766 static inline uint8_t sm_event_passkey_display_number_get_addr_type(const uint8_t * event){ 767 return event[4]; 768 } 769 770 /** 771 * @brief Get field address from event sm_event_passkey_display_number 772 * @param Event packet 773 * @param Pointer to storage for address 774 * @note: btstack_type B 775 */ 776 static inline void sm_event_passkey_display_number_get_address(const uint8_t * event, bd_addr_t address){ 777 swap48(&event[5], address); 778 } 779 780 /** 781 * @brief Get field passkey from event sm_event_passkey_display_number 782 * @param Event packet 783 * @return passkey 784 * @note: btstack_type 4 785 */ 786 static inline uint32_t sm_event_passkey_display_number_get_passkey(const uint8_t * event){ 787 return little_endian_read_32(event, 11); 788 } 789 790 /** 791 * @brief Get field handle from event sm_event_passkey_display_cancel 792 * @param Event packet 793 * @return handle 794 * @note: btstack_type H 795 */ 796 static inline hci_con_handle_t sm_event_passkey_display_cancel_get_handle(const uint8_t * event){ 797 return little_endian_read_16(event, 2); 798 } 799 800 /** 801 * @brief Get field addr_type from event sm_event_passkey_display_cancel 802 * @param Event packet 803 * @return addr_type 804 * @note: btstack_type 1 805 */ 806 static inline uint8_t sm_event_passkey_display_cancel_get_addr_type(const uint8_t * event){ 807 return event[4]; 808 } 809 810 /** 811 * @brief Get field address from event sm_event_passkey_display_cancel 812 * @param Event packet 813 * @param Pointer to storage for address 814 * @note: btstack_type B 815 */ 816 static inline void sm_event_passkey_display_cancel_get_address(const uint8_t * event, bd_addr_t address){ 817 swap48(&event[5], address); 818 } 819 820 /** 821 * @brief Get field handle from event sm_event_passkey_input_number 822 * @param Event packet 823 * @return handle 824 * @note: btstack_type H 825 */ 826 static inline hci_con_handle_t sm_event_passkey_input_number_get_handle(const uint8_t * event){ 827 return little_endian_read_16(event, 2); 828 } 829 830 /** 831 * @brief Get field addr_type from event sm_event_passkey_input_number 832 * @param Event packet 833 * @return addr_type 834 * @note: btstack_type 1 835 */ 836 static inline uint8_t sm_event_passkey_input_number_get_addr_type(const uint8_t * event){ 837 return event[4]; 838 } 839 840 /** 841 * @brief Get field address from event sm_event_passkey_input_number 842 * @param Event packet 843 * @param Pointer to storage for address 844 * @note: btstack_type B 845 */ 846 static inline void sm_event_passkey_input_number_get_address(const uint8_t * event, bd_addr_t address){ 847 swap48(&event[5], address); 848 } 849 850 /** 851 * @brief Get field handle from event sm_event_passkey_input_cancel 852 * @param Event packet 853 * @return handle 854 * @note: btstack_type H 855 */ 856 static inline hci_con_handle_t sm_event_passkey_input_cancel_get_handle(const uint8_t * event){ 857 return little_endian_read_16(event, 2); 858 } 859 860 /** 861 * @brief Get field addr_type from event sm_event_passkey_input_cancel 862 * @param Event packet 863 * @return addr_type 864 * @note: btstack_type 1 865 */ 866 static inline uint8_t sm_event_passkey_input_cancel_get_addr_type(const uint8_t * event){ 867 return event[4]; 868 } 869 870 /** 871 * @brief Get field address from event sm_event_passkey_input_cancel 872 * @param Event packet 873 * @param Pointer to storage for address 874 * @note: btstack_type B 875 */ 876 static inline void sm_event_passkey_input_cancel_get_address(const uint8_t * event, bd_addr_t address){ 877 swap48(&event[5], address); 878 } 879 880 /** 881 * @brief Get field handle from event sm_event_identity_resolving_started 882 * @param Event packet 883 * @return handle 884 * @note: btstack_type H 885 */ 886 static inline hci_con_handle_t sm_event_identity_resolving_started_get_handle(const uint8_t * event){ 887 return little_endian_read_16(event, 2); 888 } 889 890 /** 891 * @brief Get field addr_type from event sm_event_identity_resolving_started 892 * @param Event packet 893 * @return addr_type 894 * @note: btstack_type 1 895 */ 896 static inline uint8_t sm_event_identity_resolving_started_get_addr_type(const uint8_t * event){ 897 return event[4]; 898 } 899 900 /** 901 * @brief Get field address from event sm_event_identity_resolving_started 902 * @param Event packet 903 * @param Pointer to storage for address 904 * @note: btstack_type B 905 */ 906 static inline void sm_event_identity_resolving_started_get_address(const uint8_t * event, bd_addr_t address){ 907 swap48(&event[5], address); 908 } 909 910 /** 911 * @brief Get field handle from event sm_event_identity_resolving_failed 912 * @param Event packet 913 * @return handle 914 * @note: btstack_type H 915 */ 916 static inline hci_con_handle_t sm_event_identity_resolving_failed_get_handle(const uint8_t * event){ 917 return little_endian_read_16(event, 2); 918 } 919 920 /** 921 * @brief Get field addr_type from event sm_event_identity_resolving_failed 922 * @param Event packet 923 * @return addr_type 924 * @note: btstack_type 1 925 */ 926 static inline uint8_t sm_event_identity_resolving_failed_get_addr_type(const uint8_t * event){ 927 return event[4]; 928 } 929 930 /** 931 * @brief Get field address from event sm_event_identity_resolving_failed 932 * @param Event packet 933 * @param Pointer to storage for address 934 * @note: btstack_type B 935 */ 936 static inline void sm_event_identity_resolving_failed_get_address(const uint8_t * event, bd_addr_t address){ 937 swap48(&event[5], address); 938 } 939 940 /** 941 * @brief Get field handle from event sm_event_identity_resolving_succeeded 942 * @param Event packet 943 * @return handle 944 * @note: btstack_type H 945 */ 946 static inline hci_con_handle_t sm_event_identity_resolving_succeeded_get_handle(const uint8_t * event){ 947 return little_endian_read_16(event, 2); 948 } 949 950 /** 951 * @brief Get field addr_type from event sm_event_identity_resolving_succeeded 952 * @param Event packet 953 * @return addr_type 954 * @note: btstack_type 1 955 */ 956 static inline uint8_t sm_event_identity_resolving_succeeded_get_addr_type(const uint8_t * event){ 957 return event[4]; 958 } 959 960 /** 961 * @brief Get field address from event sm_event_identity_resolving_succeeded 962 * @param Event packet 963 * @param Pointer to storage for address 964 * @note: btstack_type B 965 */ 966 static inline void sm_event_identity_resolving_succeeded_get_address(const uint8_t * event, bd_addr_t address){ 967 swap48(&event[5], address); 968 } 969 970 /** 971 * @brief Get field le_device_db_index from event sm_event_identity_resolving_succeeded 972 * @param Event packet 973 * @return le_device_db_index 974 * @note: btstack_type 2 975 */ 976 static inline uint16_t sm_event_identity_resolving_succeeded_get_le_device_db_index(const uint8_t * event){ 977 return little_endian_read_16(event, 11); 978 } 979 980 /** 981 * @brief Get field handle from event sm_event_authorization_request 982 * @param Event packet 983 * @return handle 984 * @note: btstack_type H 985 */ 986 static inline hci_con_handle_t sm_event_authorization_request_get_handle(const uint8_t * event){ 987 return little_endian_read_16(event, 2); 988 } 989 990 /** 991 * @brief Get field addr_type from event sm_event_authorization_request 992 * @param Event packet 993 * @return addr_type 994 * @note: btstack_type 1 995 */ 996 static inline uint8_t sm_event_authorization_request_get_addr_type(const uint8_t * event){ 997 return event[4]; 998 } 999 1000 /** 1001 * @brief Get field address from event sm_event_authorization_request 1002 * @param Event packet 1003 * @param Pointer to storage for address 1004 * @note: btstack_type B 1005 */ 1006 static inline void sm_event_authorization_request_get_address(const uint8_t * event, bd_addr_t address){ 1007 swap48(&event[5], address); 1008 } 1009 1010 /** 1011 * @brief Get field handle from event sm_event_authorization_result 1012 * @param Event packet 1013 * @return handle 1014 * @note: btstack_type H 1015 */ 1016 static inline hci_con_handle_t sm_event_authorization_result_get_handle(const uint8_t * event){ 1017 return little_endian_read_16(event, 2); 1018 } 1019 1020 /** 1021 * @brief Get field addr_type from event sm_event_authorization_result 1022 * @param Event packet 1023 * @return addr_type 1024 * @note: btstack_type 1 1025 */ 1026 static inline uint8_t sm_event_authorization_result_get_addr_type(const uint8_t * event){ 1027 return event[4]; 1028 } 1029 1030 /** 1031 * @brief Get field address from event sm_event_authorization_result 1032 * @param Event packet 1033 * @param Pointer to storage for address 1034 * @note: btstack_type B 1035 */ 1036 static inline void sm_event_authorization_result_get_address(const uint8_t * event, bd_addr_t address){ 1037 swap48(&event[5], address); 1038 } 1039 1040 /** 1041 * @brief Get field authorization_result from event sm_event_authorization_result 1042 * @param Event packet 1043 * @return authorization_result 1044 * @note: btstack_type 1 1045 */ 1046 static inline uint8_t sm_event_authorization_result_get_authorization_result(const uint8_t * event){ 1047 return event[11]; 1048 } 1049 1050 /** 1051 * @brief Get field handle from event ancs_event_client_connected 1052 * @param Event packet 1053 * @return handle 1054 * @note: btstack_type H 1055 */ 1056 static inline hci_con_handle_t ancs_event_client_connected_get_handle(const uint8_t * event){ 1057 return little_endian_read_16(event, 2); 1058 } 1059 1060 /** 1061 * @brief Get field handle from event ancs_event_client_notification 1062 * @param Event packet 1063 * @return handle 1064 * @note: btstack_type H 1065 */ 1066 static inline hci_con_handle_t ancs_event_client_notification_get_handle(const uint8_t * event){ 1067 return little_endian_read_16(event, 2); 1068 } 1069 1070 /** 1071 * @brief Get field attribute_id from event ancs_event_client_notification 1072 * @param Event packet 1073 * @return attribute_id 1074 * @note: btstack_type 2 1075 */ 1076 static inline uint16_t ancs_event_client_notification_get_attribute_id(const uint8_t * event){ 1077 return little_endian_read_16(event, 4); 1078 } 1079 1080 /** 1081 * @brief Get field text from event ancs_event_client_notification 1082 * @param Event packet 1083 * @return text 1084 * @note: btstack_type T 1085 */ 1086 static inline const char * ancs_event_client_notification_get_text(const uint8_t * event){ 1087 return (const char *) &event[6]; 1088 } 1089 1090 /** 1091 * @brief Get field handle from event ancs_event_client_disconnected 1092 * @param Event packet 1093 * @return handle 1094 * @note: btstack_type H 1095 */ 1096 static inline hci_con_handle_t ancs_event_client_disconnected_get_handle(const uint8_t * event){ 1097 return little_endian_read_16(event, 2); 1098 } 1099 1100 1101 /* API_END */ 1102 1103 #if defined __cplusplus 1104 } 1105 #endif 1106 1107 #endif // __BTSTACK_EVENT_H 1108