avdtp_util.c (0fbfe0705ce515f74b808566b16b94c29ea198ee) | avdtp_util.c (f08f4934f31cf992e4c7df753556e2e10ca62d73) |
---|---|
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 --- 678 unchanged lines hidden (view full) --- 687 pos += 2; 688 little_endian_store_16(event, pos, media_codec.media_codec_information_len); 689 pos += 2; 690 (void)memcpy(event + pos, media_codec.media_codec_information, 691 btstack_min(media_codec.media_codec_information_len, MAX_MEDIA_CODEC_INFORMATION_LENGTH)); 692 (*callback)(HCI_EVENT_PACKET, 0, event, sizeof(event)); 693} 694 | 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 --- 678 unchanged lines hidden (view full) --- 687 pos += 2; 688 little_endian_store_16(event, pos, media_codec.media_codec_information_len); 689 pos += 2; 690 (void)memcpy(event + pos, media_codec.media_codec_information, 691 btstack_min(media_codec.media_codec_information_len, MAX_MEDIA_CODEC_INFORMATION_LENGTH)); 692 (*callback)(HCI_EVENT_PACKET, 0, event, sizeof(event)); 693} 694 |
695static inline void avdtp_signaling_emit_media_codec_other(btstack_packet_handler_t callback, uint16_t avdtp_cid, uint8_t local_seid, uint8_t remote_seid, adtvp_media_codec_capabilities_t media_codec, uint8_t reconfigure){ | 695static void avdtp_signaling_emit_capability_done(btstack_packet_handler_t callback, uint16_t avdtp_cid, uint8_t local_seid, uint8_t remote_seid){ |
696 btstack_assert(callback != NULL); | 696 btstack_assert(callback != NULL); |
697 uint8_t event[7]; 698 int pos = 0; 699 event[pos++] = HCI_EVENT_AVDTP_META; 700 event[pos++] = sizeof(event) - 2; 701 event[pos++] = AVDTP_SUBEVENT_SIGNALING_CAPABILITIES_DONE; 702 little_endian_store_16(event, pos, avdtp_cid); 703 pos += 2; 704 event[pos++] = local_seid; 705 event[pos++] = remote_seid; 706 (*callback)(HCI_EVENT_PACKET, 0, event, sizeof(event)); 707} 708 709void avdtp_signaling_emit_media_codec_other(btstack_packet_handler_t callback, uint16_t avdtp_cid, uint8_t local_seid, uint8_t remote_seid, adtvp_media_codec_capabilities_t media_codec, uint8_t reconfigure){ 710 btstack_assert(callback != NULL); |
|
697 uint8_t event[MAX_MEDIA_CODEC_INFORMATION_LENGTH + 13]; 698 int pos = 0; 699 event[pos++] = HCI_EVENT_AVDTP_META; 700 event[pos++] = sizeof(event) - 2; 701 event[pos++] = AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION; 702 little_endian_store_16(event, pos, avdtp_cid); 703 pos += 2; 704 event[pos++] = local_seid; --- 7 unchanged lines hidden (view full) --- 712 713 int media_codec_len = btstack_min(MAX_MEDIA_CODEC_INFORMATION_LENGTH, media_codec.media_codec_information_len); 714 (void)memcpy(event + pos, media_codec.media_codec_information, 715 media_codec_len); 716 717 (*callback)(HCI_EVENT_PACKET, 0, event, sizeof(event)); 718} 719 | 711 uint8_t event[MAX_MEDIA_CODEC_INFORMATION_LENGTH + 13]; 712 int pos = 0; 713 event[pos++] = HCI_EVENT_AVDTP_META; 714 event[pos++] = sizeof(event) - 2; 715 event[pos++] = AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION; 716 little_endian_store_16(event, pos, avdtp_cid); 717 pos += 2; 718 event[pos++] = local_seid; --- 7 unchanged lines hidden (view full) --- 726 727 int media_codec_len = btstack_min(MAX_MEDIA_CODEC_INFORMATION_LENGTH, media_codec.media_codec_information_len); 728 (void)memcpy(event + pos, media_codec.media_codec_information, 729 media_codec_len); 730 731 (*callback)(HCI_EVENT_PACKET, 0, event, sizeof(event)); 732} 733 |
720static void avdtp_signaling_emit_capability_done(btstack_packet_handler_t callback, uint16_t avdtp_cid, uint8_t local_seid, uint8_t remote_seid){ 721 btstack_assert(callback != NULL); 722 uint8_t event[7]; 723 int pos = 0; 724 event[pos++] = HCI_EVENT_AVDTP_META; 725 event[pos++] = sizeof(event) - 2; 726 event[pos++] = AVDTP_SUBEVENT_SIGNALING_CAPABILITIES_DONE; 727 little_endian_store_16(event, pos, avdtp_cid); 728 pos += 2; 729 event[pos++] = local_seid; 730 event[pos++] = remote_seid; 731 (*callback)(HCI_EVENT_PACKET, 0, event, sizeof(event)); 732} 733 734void avdtp_signaling_emit_media_codec_other_configuration(btstack_packet_handler_t callback, uint16_t avdtp_cid, uint8_t local_seid, uint8_t remote_seid, adtvp_media_codec_capabilities_t media_codec){ 735 btstack_assert(callback != NULL); 736 avdtp_signaling_emit_media_codec_other(callback, avdtp_cid, local_seid, remote_seid, media_codec, 0); 737} 738 739void avdtp_signaling_emit_media_codec_other_reconfiguration(btstack_packet_handler_t callback, uint16_t avdtp_cid, uint8_t local_seid, uint8_t remote_seid, adtvp_media_codec_capabilities_t media_codec){ 740 btstack_assert(callback != NULL); 741 avdtp_signaling_emit_media_codec_other(callback, avdtp_cid, local_seid, remote_seid, media_codec, 1); 742} 743 | |
744void avdtp_emit_capabilities(btstack_packet_handler_t callback, uint16_t avdtp_cid, uint8_t local_seid, uint8_t remote_seid, avdtp_capabilities_t * capabilities, uint16_t registered_service_categories){ 745 if (get_bit16(registered_service_categories, AVDTP_MEDIA_CODEC)){ 746 switch (capabilities->media_codec.media_codec_type){ 747 case AVDTP_CODEC_SBC: 748 avdtp_signaling_emit_media_codec_sbc_capability(callback, avdtp_cid, local_seid, remote_seid, capabilities->media_codec); 749 break; 750 default: 751 avdtp_signaling_emit_media_codec_other_capability(callback, avdtp_cid, local_seid, remote_seid, capabilities->media_codec); --- 69 unchanged lines hidden --- | 734void avdtp_emit_capabilities(btstack_packet_handler_t callback, uint16_t avdtp_cid, uint8_t local_seid, uint8_t remote_seid, avdtp_capabilities_t * capabilities, uint16_t registered_service_categories){ 735 if (get_bit16(registered_service_categories, AVDTP_MEDIA_CODEC)){ 736 switch (capabilities->media_codec.media_codec_type){ 737 case AVDTP_CODEC_SBC: 738 avdtp_signaling_emit_media_codec_sbc_capability(callback, avdtp_cid, local_seid, remote_seid, capabilities->media_codec); 739 break; 740 default: 741 avdtp_signaling_emit_media_codec_other_capability(callback, avdtp_cid, local_seid, remote_seid, capabilities->media_codec); --- 69 unchanged lines hidden --- |