11#ifndef ZEPHYR_INCLUDE_BLUETOOTH_AUDIO_AUDIO_H_
12#define ZEPHYR_INCLUDE_BLUETOOTH_AUDIO_AUDIO_H_
33#define BT_AUDIO_BROADCAST_ID_SIZE 3
58#define BT_AUDIO_CONTEXT_TYPE_ANY (BT_AUDIO_CONTEXT_TYPE_UNSPECIFIED | \
59 BT_AUDIO_CONTEXT_TYPE_CONVERSATIONAL | \
60 BT_AUDIO_CONTEXT_TYPE_MEDIA | \
61 BT_AUDIO_CONTEXT_TYPE_GAME | \
62 BT_AUDIO_CONTEXT_TYPE_INSTRUCTIONAL | \
63 BT_AUDIO_CONTEXT_TYPE_VOICE_ASSISTANTS | \
64 BT_AUDIO_CONTEXT_TYPE_LIVE | \
65 BT_AUDIO_CONTEXT_TYPE_SOUND_EFFECTS | \
66 BT_AUDIO_CONTEXT_TYPE_NOTIFICATIONS | \
67 BT_AUDIO_CONTEXT_TYPE_RINGTONE | \
68 BT_AUDIO_CONTEXT_TYPE_ALERTS | \
69 BT_AUDIO_CONTEXT_TYPE_EMERGENCY_ALARM)
153#define BT_AUDIO_UNICAST_ANNOUNCEMENT_GENERAL 0x00
154#define BT_AUDIO_UNICAST_ANNOUNCEMENT_TARGETED 0x01
156#if defined(CONFIG_BT_AUDIO_BROADCAST_SINK)
157#define BROADCAST_SNK_STREAM_CNT CONFIG_BT_AUDIO_BROADCAST_SNK_STREAM_COUNT
158#define BROADCAST_SNK_SUBGROUP_CNT CONFIG_BT_AUDIO_BROADCAST_SNK_SUBGROUP_COUNT
160#define BROADCAST_SNK_STREAM_CNT 0
161#define BROADCAST_SNK_SUBGROUP_CNT 0
165struct bt_audio_unicast_group;
168struct bt_audio_broadcast_sink;
171struct bt_audio_broadcast_source;
176#if defined(CONFIG_BT_CODEC_MAX_DATA_LEN)
177 uint8_t value[CONFIG_BT_CODEC_MAX_DATA_LEN];
191#define BT_CODEC_DATA(_type, _bytes...) \
193 .data = BT_DATA(_type, ((uint8_t []) { _bytes }), \
194 sizeof((uint8_t []) { _bytes })) \
206#define BT_CODEC(_id, _cid, _vid, _data, _meta) \
209 .path_id = BT_ISO_DATA_PATH_HCI, \
213 .data_count = ARRAY_SIZE(((struct bt_codec_data[]) _data)), \
215 .meta_count = ARRAY_SIZE(((struct bt_codec_data[]) _meta)), \
268#if defined(CONFIG_BT_CODEC_MAX_DATA_COUNT)
274#if defined(CONFIG_BT_CODEC_MAX_METADATA_COUNT)
278 struct bt_codec_data meta[CONFIG_BT_CODEC_MAX_METADATA_COUNT];
285#if defined(CONFIG_BT_CODEC_MAX_DATA_COUNT)
336#define BT_CODEC_QOS(_interval, _framing, _phy, _sdu, _rtn, _latency, \
339 .interval = _interval, \
340 .framing = _framing, \
344 .latency = _latency, \
370#define BT_CODEC_QOS_UNFRAMED(_interval, _sdu, _rtn, _latency, _pd) \
371 BT_CODEC_QOS(_interval, BT_CODEC_QOS_UNFRAMED, BT_CODEC_QOS_2M, _sdu, \
383#define BT_CODEC_QOS_FRAMED(_interval, _sdu, _rtn, _latency, _pd) \
384 BT_CODEC_QOS(_interval, BT_CODEC_QOS_FRAMED, BT_CODEC_QOS_2M, _sdu, \
422#define BT_CODEC_QOS_PREF(_unframed_supported, _phy, _rtn, _latency, _pd_min, \
423 _pd_max, _pref_pd_min, _pref_pd_max) \
425 .unframed_supported = _unframed_supported, \
428 .latency = _latency, \
431 .pref_pd_min = _pref_pd_min, \
432 .pref_pd_max = _pref_pd_max, \
483#define BT_AUDIO_LC3_PRESET(_codec, _qos) \
497#define BT_AUDIO_LC3_UNICAST_PRESET_8_1_1(_loc, _stream_context) \
498 BT_AUDIO_LC3_PRESET( \
499 BT_CODEC_LC3_CONFIG_8_1(_loc, _stream_context), \
500 BT_CODEC_LC3_QOS_7_5_UNFRAMED(26u, 2u, 8u, 40000u) \
509#define BT_AUDIO_LC3_UNICAST_PRESET_8_2_1(_loc, _stream_context) \
510 BT_AUDIO_LC3_PRESET( \
511 BT_CODEC_LC3_CONFIG_8_2(_loc, _stream_context), \
512 BT_CODEC_LC3_QOS_10_UNFRAMED(30u, 2u, 10u, 40000u) \
521#define BT_AUDIO_LC3_UNICAST_PRESET_16_1_1(_loc, _stream_context) \
522 BT_AUDIO_LC3_PRESET( \
523 BT_CODEC_LC3_CONFIG_16_1(_loc, _stream_context), \
524 BT_CODEC_LC3_QOS_7_5_UNFRAMED(30u, 2u, 8u, 40000u) \
535#define BT_AUDIO_LC3_UNICAST_PRESET_16_2_1(_loc, _stream_context) \
536 BT_AUDIO_LC3_PRESET( \
537 BT_CODEC_LC3_CONFIG_16_2(_loc, _stream_context), \
538 BT_CODEC_LC3_QOS_10_UNFRAMED(40u, 2u, 10u, 40000u) \
547#define BT_AUDIO_LC3_UNICAST_PRESET_24_1_1(_loc, _stream_context) \
548 BT_AUDIO_LC3_PRESET( \
549 BT_CODEC_LC3_CONFIG_24_1(_loc, _stream_context), \
550 BT_CODEC_LC3_QOS_7_5_UNFRAMED(45u, 2u, 8u, 40000u) \
561#define BT_AUDIO_LC3_UNICAST_PRESET_24_2_1(_loc, _stream_context) \
562 BT_AUDIO_LC3_PRESET( \
563 BT_CODEC_LC3_CONFIG_24_2(_loc, _stream_context), \
564 BT_CODEC_LC3_QOS_10_UNFRAMED(60u, 2u, 10u, 40000u) \
573#define BT_AUDIO_LC3_UNICAST_PRESET_32_1_1(_loc, _stream_context) \
574 BT_AUDIO_LC3_PRESET( \
575 BT_CODEC_LC3_CONFIG_32_1(_loc, _stream_context), \
576 BT_CODEC_LC3_QOS_7_5_UNFRAMED(60u, 2u, 8u, 40000u) \
585#define BT_AUDIO_LC3_UNICAST_PRESET_32_2_1(_loc, _stream_context) \
586 BT_AUDIO_LC3_PRESET( \
587 BT_CODEC_LC3_CONFIG_32_2(_loc, _stream_context), \
588 BT_CODEC_LC3_QOS_10_UNFRAMED(80u, 2u, 10u, 40000u) \
597#define BT_AUDIO_LC3_UNICAST_PRESET_441_1_1(_loc, _stream_context) \
598 BT_AUDIO_LC3_PRESET( \
599 BT_CODEC_LC3_CONFIG_441_1(_loc, _stream_context), \
600 BT_CODEC_QOS(8163u, BT_CODEC_QOS_FRAMED, \
601 BT_CODEC_QOS_2M, 97u, 5u, 24u, 40000u) \
610#define BT_AUDIO_LC3_UNICAST_PRESET_441_2_1(_loc, _stream_context) \
611 BT_AUDIO_LC3_PRESET( \
612 BT_CODEC_LC3_CONFIG_441_2(_loc, _stream_context), \
613 BT_CODEC_QOS(10884u, BT_CODEC_QOS_FRAMED, \
614 BT_CODEC_QOS_2M, 130u, 5u, 31u, 40000u) \
623#define BT_AUDIO_LC3_UNICAST_PRESET_48_1_1(_loc, _stream_context) \
624 BT_AUDIO_LC3_PRESET( \
625 BT_CODEC_LC3_CONFIG_48_1(_loc, _stream_context), \
626 BT_CODEC_LC3_QOS_7_5_UNFRAMED(75u, 5u, 15u, 40000u) \
635#define BT_AUDIO_LC3_UNICAST_PRESET_48_2_1(_loc, _stream_context) \
636 BT_AUDIO_LC3_PRESET( \
637 BT_CODEC_LC3_CONFIG_48_2(_loc, _stream_context), \
638 BT_CODEC_LC3_QOS_10_UNFRAMED(100u, 5u, 20u, 40000u) \
647#define BT_AUDIO_LC3_UNICAST_PRESET_48_3_1(_loc, _stream_context) \
648 BT_AUDIO_LC3_PRESET( \
649 BT_CODEC_LC3_CONFIG_48_3(_loc, _stream_context), \
650 BT_CODEC_LC3_QOS_7_5_UNFRAMED(90u, 5u, 15u, 40000u) \
659#define BT_AUDIO_LC3_UNICAST_PRESET_48_4_1(_loc, _stream_context) \
660 BT_AUDIO_LC3_PRESET( \
661 BT_CODEC_LC3_CONFIG_48_4(_loc, _stream_context), \
662 BT_CODEC_LC3_QOS_10_UNFRAMED(120u, 5u, 20u, 40000u) \
671#define BT_AUDIO_LC3_UNICAST_PRESET_48_5_1(_loc, _stream_context) \
672 BT_AUDIO_LC3_PRESET( \
673 BT_CODEC_LC3_CONFIG_48_5(_loc, _stream_context), \
674 BT_CODEC_LC3_QOS_7_5_UNFRAMED(117u, 5u, 15u, 40000u) \
683#define BT_AUDIO_LC3_UNICAST_PRESET_48_6_1(_loc, _stream_context) \
684 BT_AUDIO_LC3_PRESET( \
685 BT_CODEC_LC3_CONFIG_48_6(_loc, _stream_context), \
686 BT_CODEC_LC3_QOS_10_UNFRAMED(155u, 5u, 20u, 40000u) \
696#define BT_AUDIO_LC3_UNICAST_PRESET_8_1_2(_loc, _stream_context) \
697 BT_AUDIO_LC3_PRESET( \
698 BT_CODEC_LC3_CONFIG_8_1(_loc, _stream_context), \
699 BT_CODEC_LC3_QOS_7_5_UNFRAMED(26u, 13u, 75u, 40000u) \
708#define BT_AUDIO_LC3_UNICAST_PRESET_8_2_2(_loc, _stream_context) \
709 BT_AUDIO_LC3_PRESET( \
710 BT_CODEC_LC3_CONFIG_8_2(_loc, _stream_context), \
711 BT_CODEC_LC3_QOS_10_UNFRAMED(30u, 13u, 95u, 40000u) \
720#define BT_AUDIO_LC3_UNICAST_PRESET_16_1_2(_loc, _stream_context) \
721 BT_AUDIO_LC3_PRESET( \
722 BT_CODEC_LC3_CONFIG_16_1(_loc, _stream_context), \
723 BT_CODEC_LC3_QOS_7_5_UNFRAMED(30u, 13u, 75u, 40000u) \
732#define BT_AUDIO_LC3_UNICAST_PRESET_16_2_2(_loc, _stream_context) \
733 BT_AUDIO_LC3_PRESET( \
734 BT_CODEC_LC3_CONFIG_16_2(_loc, _stream_context), \
735 BT_CODEC_LC3_QOS_10_UNFRAMED(40u, 13u, 95u, 40000u) \
744#define BT_AUDIO_LC3_UNICAST_PRESET_24_1_2(_loc, _stream_context) \
745 BT_AUDIO_LC3_PRESET( \
746 BT_CODEC_LC3_CONFIG_24_1(_loc, _stream_context), \
747 BT_CODEC_LC3_QOS_7_5_UNFRAMED(45u, 13u, 75u, 40000u) \
756#define BT_AUDIO_LC3_UNICAST_PRESET_24_2_2(_loc, _stream_context) \
757 BT_AUDIO_LC3_PRESET( \
758 BT_CODEC_LC3_CONFIG_24_2(_loc, _stream_context), \
759 BT_CODEC_LC3_QOS_10_UNFRAMED(60u, 13u, 95u, 40000u) \
768#define BT_AUDIO_LC3_UNICAST_PRESET_32_1_2(_loc, _stream_context) \
769 BT_AUDIO_LC3_PRESET( \
770 BT_CODEC_LC3_CONFIG_32_1(_loc, _stream_context), \
771 BT_CODEC_LC3_QOS_7_5_UNFRAMED(60u, 13u, 75u, 40000u) \
780#define BT_AUDIO_LC3_UNICAST_PRESET_32_2_2(_loc, _stream_context) \
781 BT_AUDIO_LC3_PRESET( \
782 BT_CODEC_LC3_CONFIG_32_2(_loc, _stream_context), \
783 BT_CODEC_LC3_QOS_10_UNFRAMED(80u, 13u, 95u, 40000u) \
792#define BT_AUDIO_LC3_UNICAST_PRESET_441_1_2(_loc, _stream_context) \
793 BT_AUDIO_LC3_PRESET( \
794 BT_CODEC_LC3_CONFIG_441_1(_loc, _stream_context), \
795 BT_CODEC_QOS(8163u, BT_CODEC_QOS_FRAMED, \
796 BT_CODEC_QOS_2M, 97u, 13u, 80u, 40000u) \
805#define BT_AUDIO_LC3_UNICAST_PRESET_441_2_2(_loc, _stream_context) \
806 BT_AUDIO_LC3_PRESET( \
807 BT_CODEC_LC3_CONFIG_441_2(_loc, _stream_context), \
808 BT_CODEC_QOS(10884u, BT_CODEC_QOS_FRAMED, \
809 BT_CODEC_QOS_2M, 130u, 13u, 85u, 40000u) \
818#define BT_AUDIO_LC3_UNICAST_PRESET_48_1_2(_loc, _stream_context) \
819 BT_AUDIO_LC3_PRESET( \
820 BT_CODEC_LC3_CONFIG_48_1(_loc, _stream_context), \
821 BT_CODEC_LC3_QOS_7_5_UNFRAMED(75u, 13u, 75u, 40000u) \
830#define BT_AUDIO_LC3_UNICAST_PRESET_48_2_2(_loc, _stream_context) \
831 BT_AUDIO_LC3_PRESET( \
832 BT_CODEC_LC3_CONFIG_48_2(_loc, _stream_context), \
833 BT_CODEC_LC3_QOS_10_UNFRAMED(100u, 13u, 95u, 40000u) \
842#define BT_AUDIO_LC3_UNICAST_PRESET_48_3_2(_loc, _stream_context) \
843 BT_AUDIO_LC3_PRESET( \
844 BT_CODEC_LC3_CONFIG_48_3(_loc, _stream_context), \
845 BT_CODEC_LC3_QOS_7_5_UNFRAMED(90u, 13u, 75u, 40000u) \
854#define BT_AUDIO_LC3_UNICAST_PRESET_48_4_2(_loc, _stream_context) \
855 BT_AUDIO_LC3_PRESET( \
856 BT_CODEC_LC3_CONFIG_48_4(_loc, _stream_context), \
857 BT_CODEC_LC3_QOS_10_UNFRAMED(120u, 13u, 100u, 40000u) \
866#define BT_AUDIO_LC3_UNICAST_PRESET_48_5_2(_loc, _stream_context) \
867 BT_AUDIO_LC3_PRESET( \
868 BT_CODEC_LC3_CONFIG_48_5(_loc, _stream_context), \
869 BT_CODEC_LC3_QOS_7_5_UNFRAMED(117u, 13u, 75u, 40000u) \
878#define BT_AUDIO_LC3_UNICAST_PRESET_48_6_2(_loc, _stream_context) \
879 BT_AUDIO_LC3_PRESET( \
880 BT_CODEC_LC3_CONFIG_48_6(_loc, _stream_context), \
881 BT_CODEC_LC3_QOS_10_UNFRAMED(155u, 13u, 100u, 40000u) \
891#define BT_AUDIO_LC3_BROADCAST_PRESET_8_1_1(_loc, _stream_context) \
892 BT_AUDIO_LC3_PRESET( \
893 BT_CODEC_LC3_CONFIG_8_1(_loc, _stream_context), \
894 BT_CODEC_LC3_QOS_7_5_UNFRAMED(26u, 2u, 8u, 40000u) \
903#define BT_AUDIO_LC3_BROADCAST_PRESET_8_2_1(_loc, _stream_context) \
904 BT_AUDIO_LC3_PRESET( \
905 BT_CODEC_LC3_CONFIG_8_2(_loc, _stream_context), \
906 BT_CODEC_LC3_QOS_10_UNFRAMED(30u, 2u, 10u, 40000u) \
915#define BT_AUDIO_LC3_BROADCAST_PRESET_16_1_1(_loc, _stream_context) \
916 BT_AUDIO_LC3_PRESET( \
917 BT_CODEC_LC3_CONFIG_16_1(_loc, _stream_context), \
918 BT_CODEC_LC3_QOS_7_5_UNFRAMED(30u, 2u, 8u, 40000u) \
929#define BT_AUDIO_LC3_BROADCAST_PRESET_16_2_1(_loc, _stream_context) \
930 BT_AUDIO_LC3_PRESET( \
931 BT_CODEC_LC3_CONFIG_16_2(_loc, _stream_context), \
932 BT_CODEC_LC3_QOS_10_UNFRAMED(40u, 2u, 10u, 40000u) \
941#define BT_AUDIO_LC3_BROADCAST_PRESET_24_1_1(_loc, _stream_context) \
942 BT_AUDIO_LC3_PRESET( \
943 BT_CODEC_LC3_CONFIG_24_1(_loc, _stream_context), \
944 BT_CODEC_LC3_QOS_7_5_UNFRAMED(45u, 2u, 8u, 40000u) \
955#define BT_AUDIO_LC3_BROADCAST_PRESET_24_2_1(_loc, _stream_context) \
956 BT_AUDIO_LC3_PRESET( \
957 BT_CODEC_LC3_CONFIG_24_2(_loc, _stream_context), \
958 BT_CODEC_LC3_QOS_10_UNFRAMED(60u, 2u, 10u, 40000u) \
967#define BT_AUDIO_LC3_BROADCAST_PRESET_32_1_1(_loc, _stream_context) \
968 BT_AUDIO_LC3_PRESET( \
969 BT_CODEC_LC3_CONFIG_32_1(_loc, _stream_context), \
970 BT_CODEC_LC3_QOS_7_5_UNFRAMED(60u, 2u, 8u, 40000u) \
979#define BT_AUDIO_LC3_BROADCAST_PRESET_32_2_1(_loc, _stream_context) \
980 BT_AUDIO_LC3_PRESET( \
981 BT_CODEC_LC3_CONFIG_32_2(_loc, _stream_context), \
982 BT_CODEC_LC3_QOS_10_UNFRAMED(80u, 2u, 10u, 40000u) \
991#define BT_AUDIO_LC3_BROADCAST_PRESET_441_1_1(_loc, _stream_context) \
992 BT_AUDIO_LC3_PRESET( \
993 BT_CODEC_LC3_CONFIG_441_1(_loc, _stream_context), \
994 BT_CODEC_QOS(8163u, BT_CODEC_QOS_FRAMED, \
995 BT_CODEC_QOS_2M, 97u, 4u, 24u, 40000u) \
1004#define BT_AUDIO_LC3_BROADCAST_PRESET_441_2_1(_loc, _stream_context) \
1005 BT_AUDIO_LC3_PRESET( \
1006 BT_CODEC_LC3_CONFIG_441_2(_loc, _stream_context), \
1007 BT_CODEC_QOS(10884u, BT_CODEC_QOS_FRAMED, \
1008 BT_CODEC_QOS_2M, 130u, 4u, 31u, 40000u) \
1017#define BT_AUDIO_LC3_BROADCAST_PRESET_48_1_1(_loc, _stream_context) \
1018 BT_AUDIO_LC3_PRESET( \
1019 BT_CODEC_LC3_CONFIG_48_1(_loc, _stream_context), \
1020 BT_CODEC_LC3_QOS_7_5_UNFRAMED(75u, 4u, 15u, 40000u) \
1029#define BT_AUDIO_LC3_BROADCAST_PRESET_48_2_1(_loc, _stream_context) \
1030 BT_AUDIO_LC3_PRESET( \
1031 BT_CODEC_LC3_CONFIG_48_2(_loc, _stream_context), \
1032 BT_CODEC_LC3_QOS_10_UNFRAMED(100u, 4u, 20u, 40000u) \
1041#define BT_AUDIO_LC3_BROADCAST_PRESET_48_3_1(_loc, _stream_context) \
1042 BT_AUDIO_LC3_PRESET( \
1043 BT_CODEC_LC3_CONFIG_48_3(_loc, _stream_context), \
1044 BT_CODEC_LC3_QOS_7_5_UNFRAMED(90u, 4u, 15u, 40000u) \
1053#define BT_AUDIO_LC3_BROADCAST_PRESET_48_4_1(_loc, _stream_context) \
1054 BT_AUDIO_LC3_PRESET( \
1055 BT_CODEC_LC3_CONFIG_48_4(_loc, _stream_context), \
1056 BT_CODEC_LC3_QOS_10_UNFRAMED(120u, 4u, 20u, 40000u) \
1065#define BT_AUDIO_LC3_BROADCAST_PRESET_48_5_1(_loc, _stream_context) \
1066 BT_AUDIO_LC3_PRESET( \
1067 BT_CODEC_LC3_CONFIG_48_5(_loc, _stream_context), \
1068 BT_CODEC_LC3_QOS_7_5_UNFRAMED(117u, 4u, 15u, 40000u) \
1077#define BT_AUDIO_LC3_BROADCAST_PRESET_48_6_1(_loc, _stream_context) \
1078 BT_AUDIO_LC3_PRESET( \
1079 BT_CODEC_LC3_CONFIG_48_6(_loc, _stream_context), \
1080 BT_CODEC_LC3_QOS_10_UNFRAMED(155u, 4u, 20u, 40000u) \
1090#define BT_AUDIO_LC3_BROADCAST_PRESET_8_1_2(_loc, _stream_context) \
1091 BT_AUDIO_LC3_PRESET( \
1092 BT_CODEC_LC3_CONFIG_8_1(_loc, _stream_context), \
1093 BT_CODEC_LC3_QOS_7_5_UNFRAMED(26u, 4u, 45u, 40000u) \
1102#define BT_AUDIO_LC3_BROADCAST_PRESET_8_2_2(_loc, _stream_context) \
1103 BT_AUDIO_LC3_PRESET( \
1104 BT_CODEC_LC3_CONFIG_8_2(_loc, _stream_context), \
1105 BT_CODEC_LC3_QOS_10_UNFRAMED(30u, 4u, 60u, 40000u) \
1114#define BT_AUDIO_LC3_BROADCAST_PRESET_16_1_2(_loc, _stream_context) \
1115 BT_AUDIO_LC3_PRESET( \
1116 BT_CODEC_LC3_CONFIG_16_1(_loc, _stream_context), \
1117 BT_CODEC_LC3_QOS_7_5_UNFRAMED(30u, 4u, 45u, 40000u) \
1128#define BT_AUDIO_LC3_BROADCAST_PRESET_16_2_2(_loc, _stream_context) \
1129 BT_AUDIO_LC3_PRESET( \
1130 BT_CODEC_LC3_CONFIG_16_2(_loc, _stream_context), \
1131 BT_CODEC_LC3_QOS_10_UNFRAMED(40u, 4u, 60u, 40000u) \
1140#define BT_AUDIO_LC3_BROADCAST_PRESET_24_1_2(_loc, _stream_context) \
1141 BT_AUDIO_LC3_PRESET( \
1142 BT_CODEC_LC3_CONFIG_24_1(_loc, _stream_context), \
1143 BT_CODEC_LC3_QOS_7_5_UNFRAMED(45u, 4u, 45u, 40000u) \
1154#define BT_AUDIO_LC3_BROADCAST_PRESET_24_2_2(_loc, _stream_context) \
1155 BT_AUDIO_LC3_PRESET( \
1156 BT_CODEC_LC3_CONFIG_24_2(_loc, _stream_context), \
1157 BT_CODEC_LC3_QOS_10_UNFRAMED(60u, 4u, 60u, 40000u) \
1166#define BT_AUDIO_LC3_BROADCAST_PRESET_32_1_2(_loc, _stream_context) \
1167 BT_AUDIO_LC3_PRESET( \
1168 BT_CODEC_LC3_CONFIG_32_1(_loc, _stream_context), \
1169 BT_CODEC_LC3_QOS_7_5_UNFRAMED(60u, 4u, 45u, 40000u) \
1178#define BT_AUDIO_LC3_BROADCAST_PRESET_32_2_2(_loc, _stream_context) \
1179 BT_AUDIO_LC3_PRESET( \
1180 BT_CODEC_LC3_CONFIG_32_2(_loc, _stream_context), \
1181 BT_CODEC_LC3_QOS_10_UNFRAMED(80u, 4u, 60u, 40000u) \
1190#define BT_AUDIO_LC3_BROADCAST_PRESET_441_1_2(_loc, _stream_context) \
1191 BT_AUDIO_LC3_PRESET( \
1192 BT_CODEC_LC3_CONFIG_441_1(_loc, _stream_context), \
1193 BT_CODEC_QOS(8163u, BT_CODEC_QOS_FRAMED, \
1194 BT_CODEC_QOS_2M, 97u, 4u, 54u, 40000u) \
1203#define BT_AUDIO_LC3_BROADCAST_PRESET_441_2_2(_loc, _stream_context) \
1204 BT_AUDIO_LC3_PRESET( \
1205 BT_CODEC_LC3_CONFIG_441_2(_loc, _stream_context), \
1206 BT_CODEC_QOS(10884u, BT_CODEC_QOS_FRAMED, \
1207 BT_CODEC_QOS_2M, 130u, 4u, 60u, 40000u) \
1216#define BT_AUDIO_LC3_BROADCAST_PRESET_48_1_2(_loc, _stream_context) \
1217 BT_AUDIO_LC3_PRESET( \
1218 BT_CODEC_LC3_CONFIG_48_1(_loc, _stream_context), \
1219 BT_CODEC_LC3_QOS_7_5_UNFRAMED(75u, 4u, 50u, 40000u) \
1228#define BT_AUDIO_LC3_BROADCAST_PRESET_48_2_2(_loc, _stream_context) \
1229 BT_AUDIO_LC3_PRESET( \
1230 BT_CODEC_LC3_CONFIG_48_2(_loc, _stream_context), \
1231 BT_CODEC_LC3_QOS_10_UNFRAMED(100u, 4u, 65u, 40000u) \
1240#define BT_AUDIO_LC3_BROADCAST_PRESET_48_3_2(_loc, _stream_context) \
1241 BT_AUDIO_LC3_PRESET( \
1242 BT_CODEC_LC3_CONFIG_48_3(_loc, _stream_context), \
1243 BT_CODEC_LC3_QOS_7_5_UNFRAMED(90u, 4u, 50u, 40000u) \
1252#define BT_AUDIO_LC3_BROADCAST_PRESET_48_4_2(_loc, _stream_context) \
1253 BT_AUDIO_LC3_PRESET( \
1254 BT_CODEC_LC3_CONFIG_48_4(_loc, _stream_context), \
1255 BT_CODEC_LC3_QOS_10_UNFRAMED(120u, 4u, 65u, 40000u) \
1264#define BT_AUDIO_LC3_BROADCAST_PRESET_48_5_2(_loc, _stream_context) \
1265 BT_AUDIO_LC3_PRESET( \
1266 BT_CODEC_LC3_CONFIG_48_5(_loc, _stream_context), \
1267 BT_CODEC_LC3_QOS_7_5_UNFRAMED(117u, 4u, 50u, 40000u) \
1276#define BT_AUDIO_LC3_BROADCAST_PRESET_48_6_2(_loc, _stream_context) \
1277 BT_AUDIO_LC3_PRESET( \
1278 BT_CODEC_LC3_CONFIG_48_6(_loc, _stream_context), \
1279 BT_CODEC_LC3_QOS_10_UNFRAMED(155u, 4u, 65u, 40000u) \
1382 const struct bt_audio_ep *ep,
1546#if defined(CONFIG_BT_PAC_SNK_LOC) || defined(CONFIG_BT_PAC_SRC_LOC)
1562 int (*publish_location)(
struct bt_conn *conn,
1566#if defined(CONFIG_BT_PAC_SNK_LOC_WRITEABLE) || defined(CONFIG_BT_PAC_SRC_LOC_WRITEABLE)
1578 int (*write_location)(
struct bt_conn *conn,
enum bt_audio_dir dir,
1614 struct bt_le_per_adv_sync *sync,
1640 void (*
syncable)(
struct bt_audio_broadcast_sink *sink,
bool encrypted);
1674#if defined(CONFIG_BT_AUDIO_UNICAST)
1750#if defined(CONFIG_BT_AUDIO_UNICAST) || defined(CONFIG_BT_AUDIO_BROADCAST_SINK)
1767#if defined(CONFIG_BT_AUDIO_UNICAST) || defined(CONFIG_BT_AUDIO_BROADCAST_SOURCE)
1870 struct bt_audio_ep *ep,
1916 struct bt_audio_ep *ep,
1947 struct bt_audio_unicast_group *group);
2098 struct bt_audio_unicast_group **unicast_group);
2170 struct bt_audio_broadcast_source **source);
2271 const uint8_t broadcast_code[16]);
Bluetooth data buffer API.
ZTEST_BMEM int index[(3)]
Definition: main.c:32
Bluetooth connection handling.
Generic Attribute Profile handling.
static ssize_t recv(int sock, void *buf, size_t max_len, int flags)
Definition: socket.h:744
int bt_audio_broadcast_source_create(struct bt_audio_stream *streams[], size_t num_stream, struct bt_codec *codec, struct bt_codec_qos *qos, struct bt_audio_broadcast_source **source)
Create audio broadcast source.
int bt_audio_broadcast_sink_delete(struct bt_audio_broadcast_sink *sink)
Release a broadcast sink.
int bt_audio_broadcast_source_delete(struct bt_audio_broadcast_source *source)
Delete audio broadcast source.
void bt_audio_broadcast_sink_register_cb(struct bt_audio_broadcast_sink_cb *cb)
Register Broadcast sink callbacks *.
int bt_audio_broadcast_sink_scan_start(const struct bt_le_scan_param *param)
Start scan for broadcast sources.
int bt_audio_broadcast_sink_stop(struct bt_audio_broadcast_sink *sink)
Stop audio broadcast sink.
int bt_audio_broadcast_sink_scan_stop(void)
Stop scan for broadcast sources.
int bt_audio_broadcast_source_reconfig(struct bt_audio_broadcast_source *source, struct bt_codec *codec, struct bt_codec_qos *qos)
Reconfigure audio broadcast source.
int bt_audio_broadcast_source_stop(struct bt_audio_broadcast_source *source)
Stop audio broadcast source.
int bt_audio_broadcast_source_start(struct bt_audio_broadcast_source *source)
Start audio broadcast source.
int bt_audio_broadcast_sink_sync(struct bt_audio_broadcast_sink *sink, uint32_t indexes_bitfield, struct bt_audio_stream *streams[], const uint8_t broadcast_code[16])
Sync to a broadcaster's audio.
int bt_audio_stream_release(struct bt_audio_stream *stream)
Release Audio Stream.
int bt_audio_stream_enable(struct bt_audio_stream *stream, struct bt_codec_data *meta, size_t meta_count)
Enable Audio Stream.
int bt_audio_stream_start(struct bt_audio_stream *stream)
Start Audio Stream.
int bt_audio_stream_qos(struct bt_conn *conn, struct bt_audio_unicast_group *group)
Configure Audio Stream QoS.
int bt_audio_unicast_group_delete(struct bt_audio_unicast_group *unicast_group)
Delete audio unicast group.
int bt_audio_stream_reconfig(struct bt_audio_stream *stream, const struct bt_codec *codec)
Reconfigure Audio Stream.
int bt_audio_discover(struct bt_conn *conn, struct bt_audio_discover_params *params)
Discover remote capabilities and endpoints.
int bt_audio_unicast_group_create(struct bt_audio_unicast_group_param params[], size_t num_param, struct bt_audio_unicast_group **unicast_group)
Create audio unicast group.
void(* bt_audio_discover_func_t)(struct bt_conn *conn, struct bt_codec *codec, struct bt_audio_ep *ep, struct bt_audio_discover_params *params)
Discover Audio capabilities and endpoints callback function.
Definition: audio.h:1868
int bt_audio_stream_stop(struct bt_audio_stream *stream)
Stop Audio Stream.
int bt_audio_stream_config(struct bt_conn *conn, struct bt_audio_stream *stream, struct bt_audio_ep *ep, struct bt_codec *codec)
Configure Audio Stream.
int bt_audio_stream_disable(struct bt_audio_stream *stream)
Disable Audio Stream.
int bt_audio_stream_metadata(struct bt_audio_stream *stream, struct bt_codec_data *meta, size_t meta_count)
Change Audio Stream Metadata.
int bt_audio_unicast_group_add_streams(struct bt_audio_unicast_group *unicast_group, struct bt_audio_unicast_group_param params[], size_t num_param)
Add streams to a unicast group as a unicast client.
int bt_audio_stream_send(struct bt_audio_stream *stream, struct net_buf *buf, uint32_t seq_num, uint32_t ts)
Send data to Audio stream.
bt_audio_codec_parse_err
Codec parser error codes for Codec config parsing APIs.
Definition: audio.h:2313
int bt_codec_cfg_get_octets_per_frame(const struct bt_codec *codec)
Extract frame size in octets from BT codec config.
int bt_codec_cfg_get_frame_blocks_per_sdu(const struct bt_codec *codec, bool fallback_to_default)
Extract number of audio frame blockss in each SDU from BT codec config.
bool bt_codec_get_val(const struct bt_codec *codec, uint8_t type, const struct bt_codec_data **data)
Lookup a specific value based on type.
int bt_codec_cfg_get_freq(const struct bt_codec *codec)
Extract the frequency from a codec configuration.
int bt_codec_cfg_get_frame_duration_us(const struct bt_codec *codec)
Extract frame duration from BT codec config.
int bt_codec_cfg_get_chan_allocation_val(const struct bt_codec *codec, uint32_t *chan_allocation)
Extract channel allocation from BT codec config.
@ BT_AUDIO_CODEC_PARSE_ERR_SUCCESS
The requested type is not present in the data set.
Definition: audio.h:2316
@ BT_AUDIO_CODEC_PARSE_ERR_TYPE_NOT_FOUND
The requested type is not present in the data set.
Definition: audio.h:2319
@ BT_AUDIO_CODEC_PARSE_ERR_INVALID_VALUE_FOUND
The value found is invalid.
Definition: audio.h:2322
@ BT_AUDIO_CODEC_PARSE_ERR_INVALID_PARAM
The parameters specified to the function call are not valid.
Definition: audio.h:2325
int bt_pacs_available_contexts_changed(void)
Notify available audio contexts changed.
int bt_audio_pacs_location_changed(enum bt_audio_dir dir)
Notify that the location has changed.
int bt_audio_unicast_server_register_cb(const struct bt_audio_unicast_server_cb *cb)
Register unicast server callbacks.
int bt_audio_pacs_register_cb(const struct bt_audio_pacs_cb *cb)
Register Published Audio Capabilities Service callbacks.
int bt_audio_unicast_server_unregister_cb(const struct bt_audio_unicast_server_cb *cb)
Unregister unicast server callbacks.
int bt_audio_unicast_client_register_cb(const struct bt_audio_unicast_client_cb *cb)
Register unicast client callbacks.
#define BROADCAST_SNK_SUBGROUP_CNT
Definition: audio.h:161
bt_audio_dir
Audio Capability type.
Definition: audio.h:320
#define BROADCAST_SNK_STREAM_CNT
Definition: audio.h:160
bt_audio_location
Location values for BT Audio.
Definition: audio.h:223
bt_audio_parental_rating
Parental rating defined by the Generic Audio assigned numbers (bluetooth.com).
Definition: audio.h:77
void bt_audio_stream_cb_register(struct bt_audio_stream *stream, struct bt_audio_stream_ops *ops)
Register Audio callbacks for a stream.
#define BT_CODEC_QOS_FRAMED(_interval, _sdu, _rtn, _latency, _pd)
Helper to declare Input Framed bt_codec_qos.
Definition: audio.h:383
#define BT_CODEC_QOS_UNFRAMED(_interval, _sdu, _rtn, _latency, _pd)
Helper to declare Input Unframed bt_codec_qos.
Definition: audio.h:370
bt_audio_metadata_type
Codec metadata type IDs.
Definition: audio.h:101
bt_audio_context
Audio Context Type for Generic Audio.
Definition: audio.h:39
@ BT_CODEC_QOS_2M
Definition: audio.h:357
@ BT_CODEC_QOS_CODED
Definition: audio.h:358
@ BT_CODEC_QOS_1M
Definition: audio.h:356
@ BT_AUDIO_DIR_SINK
Definition: audio.h:321
@ BT_AUDIO_DIR_SOURCE
Definition: audio.h:322
@ BT_AUDIO_LOCATION_FRONT_CENTER
Definition: audio.h:226
@ BT_AUDIO_LOCATION_TOP_BACK_LEFT
Definition: audio.h:240
@ BT_AUDIO_LOCATION_LOW_FREQ_EFFECTS_2
Definition: audio.h:233
@ BT_AUDIO_LOCATION_TOP_SIDE_RIGHT
Definition: audio.h:243
@ BT_AUDIO_LOCATION_FRONT_RIGHT
Definition: audio.h:225
@ BT_AUDIO_LOCATION_BOTTOM_FRONT_RIGHT
Definition: audio.h:247
@ BT_AUDIO_LOCATION_BACK_RIGHT
Definition: audio.h:229
@ BT_AUDIO_LOCATION_TOP_CENTER
Definition: audio.h:239
@ BT_AUDIO_LOCATION_LEFT_SURROUND
Definition: audio.h:250
@ BT_AUDIO_LOCATION_TOP_FRONT_RIGHT
Definition: audio.h:237
@ BT_AUDIO_LOCATION_FRONT_RIGHT_OF_CENTER
Definition: audio.h:231
@ BT_AUDIO_LOCATION_FRONT_RIGHT_WIDE
Definition: audio.h:249
@ BT_AUDIO_LOCATION_TOP_BACK_RIGHT
Definition: audio.h:241
@ BT_AUDIO_LOCATION_BACK_LEFT
Definition: audio.h:228
@ BT_AUDIO_LOCATION_RIGHT_SURROUND
Definition: audio.h:251
@ BT_AUDIO_LOCATION_SIDE_RIGHT
Definition: audio.h:235
@ BT_AUDIO_LOCATION_TOP_FRONT_LEFT
Definition: audio.h:236
@ BT_AUDIO_LOCATION_SIDE_LEFT
Definition: audio.h:234
@ BT_AUDIO_LOCATION_BOTTOM_FRONT_LEFT
Definition: audio.h:246
@ BT_AUDIO_LOCATION_TOP_FRONT_CENTER
Definition: audio.h:238
@ BT_AUDIO_LOCATION_LOW_FREQ_EFFECTS_1
Definition: audio.h:227
@ BT_AUDIO_LOCATION_FRONT_LEFT
Definition: audio.h:224
@ BT_AUDIO_LOCATION_FRONT_LEFT_WIDE
Definition: audio.h:248
@ BT_AUDIO_LOCATION_BOTTOM_FRONT_CENTER
Definition: audio.h:245
@ BT_AUDIO_LOCATION_BACK_CENTER
Definition: audio.h:232
@ BT_AUDIO_LOCATION_TOP_SIDE_LEFT
Definition: audio.h:242
@ BT_AUDIO_LOCATION_TOP_BACK_CENTER
Definition: audio.h:244
@ BT_AUDIO_LOCATION_FRONT_LEFT_OF_CENTER
Definition: audio.h:230
@ BT_AUDIO_PARENTAL_RATING_AGE_18_OR_ABOVE
Definition: audio.h:93
@ BT_AUDIO_PARENTAL_RATING_AGE_15_OR_ABOVE
Definition: audio.h:90
@ BT_AUDIO_PARENTAL_RATING_AGE_10_OR_ABOVE
Definition: audio.h:85
@ BT_AUDIO_PARENTAL_RATING_AGE_7_OR_ABOVE
Definition: audio.h:82
@ BT_AUDIO_PARENTAL_RATING_AGE_16_OR_ABOVE
Definition: audio.h:91
@ BT_AUDIO_PARENTAL_RATING_AGE_17_OR_ABOVE
Definition: audio.h:92
@ BT_AUDIO_PARENTAL_RATING_AGE_5_OR_ABOVE
Definition: audio.h:80
@ BT_AUDIO_PARENTAL_RATING_AGE_8_OR_ABOVE
Definition: audio.h:83
@ BT_AUDIO_PARENTAL_RATING_AGE_13_OR_ABOVE
Definition: audio.h:88
@ BT_AUDIO_PARENTAL_RATING_AGE_9_OR_ABOVE
Definition: audio.h:84
@ BT_AUDIO_PARENTAL_RATING_AGE_11_OR_ABOVE
Definition: audio.h:86
@ BT_AUDIO_PARENTAL_RATING_AGE_12_OR_ABOVE
Definition: audio.h:87
@ BT_AUDIO_PARENTAL_RATING_AGE_6_OR_ABOVE
Definition: audio.h:81
@ BT_AUDIO_PARENTAL_RATING_AGE_ANY
Definition: audio.h:79
@ BT_AUDIO_PARENTAL_RATING_NO_RATING
Definition: audio.h:78
@ BT_AUDIO_PARENTAL_RATING_AGE_14_OR_ABOVE
Definition: audio.h:89
@ BT_AUDIO_METADATA_TYPE_PROGRAM_INFO
Definition: audio.h:125
@ BT_AUDIO_METADATA_TYPE_EXTENDED
Definition: audio.h:146
@ BT_AUDIO_METADATA_TYPE_VENDOR
Definition: audio.h:149
@ BT_AUDIO_METADATA_TYPE_CCID_LIST
Definition: audio.h:134
@ BT_AUDIO_METADATA_TYPE_PROGRAM_INFO_URI
Definition: audio.h:143
@ BT_AUDIO_METADATA_TYPE_PARENTAL_RATING
Parental rating.
Definition: audio.h:140
@ BT_AUDIO_METADATA_TYPE_STREAM_CONTEXT
Streaming audio context.
Definition: audio.h:122
@ BT_AUDIO_METADATA_TYPE_PREF_CONTEXT
Preferred audio context.
Definition: audio.h:111
@ BT_AUDIO_METADATA_TYPE_STREAM_LANG
Stream language.
Definition: audio.h:131
@ BT_AUDIO_CONTEXT_TYPE_NOTIFICATIONS
Definition: audio.h:49
@ BT_AUDIO_CONTEXT_TYPE_EMERGENCY_ALARM
Definition: audio.h:52
@ BT_AUDIO_CONTEXT_TYPE_INSTRUCTIONAL
Definition: audio.h:45
@ BT_AUDIO_CONTEXT_TYPE_PROHIBITED
Definition: audio.h:40
@ BT_AUDIO_CONTEXT_TYPE_RINGTONE
Definition: audio.h:50
@ BT_AUDIO_CONTEXT_TYPE_LIVE
Definition: audio.h:47
@ BT_AUDIO_CONTEXT_TYPE_MEDIA
Definition: audio.h:43
@ BT_AUDIO_CONTEXT_TYPE_GAME
Definition: audio.h:44
@ BT_AUDIO_CONTEXT_TYPE_SOUND_EFFECTS
Definition: audio.h:48
@ BT_AUDIO_CONTEXT_TYPE_VOICE_ASSISTANTS
Definition: audio.h:46
@ BT_AUDIO_CONTEXT_TYPE_CONVERSATIONAL
Definition: audio.h:42
@ BT_AUDIO_CONTEXT_TYPE_ALERTS
Definition: audio.h:51
@ BT_AUDIO_CONTEXT_TYPE_UNSPECIFIED
Definition: audio.h:41
#define BIT(n)
Unsigned integer with bit position n set (signed in assembly language).
Definition: util_macro.h:44
Bluetooth LC3 codec handling.
struct _snode sys_snode_t
Definition: slist.h:33
#define bool
Definition: stdbool.h:13
__UINT32_TYPE__ uint32_t
Definition: stdint.h:90
__UINT8_TYPE__ uint8_t
Definition: stdint.h:88
__UINT16_TYPE__ uint16_t
Definition: stdint.h:89
uint8_t index
Definition: audio.h:284
size_t bis_count
Definition: audio.h:301
struct bt_audio_base_bis_data bis_data[0]
Definition: audio.h:309
struct bt_codec codec
Definition: audio.h:307
struct bt_audio_base_subgroup subgroups[0]
Definition: audio.h:316
size_t subgroup_count
Definition: audio.h:314
void(* scan_term)(int err)
Scan terminated callback.
Definition: audio.h:1655
bool(* scan_recv)(const struct bt_le_scan_recv_info *info, struct net_buf_simple *ad, uint32_t broadcast_id)
Scan receive callback.
Definition: audio.h:1598
void(* syncable)(struct bt_audio_broadcast_sink *sink, bool encrypted)
Broadcast sink is syncable.
Definition: audio.h:1640
void(* pa_synced)(struct bt_audio_broadcast_sink *sink, struct bt_le_per_adv_sync *sync, uint32_t broadcast_id)
Periodic advertising sync callback.
Definition: audio.h:1613
void(* base_recv)(struct bt_audio_broadcast_sink *sink, const struct bt_audio_base *base)
Broadcast Audio Source Endpoint (BASE) received.
Definition: audio.h:1625
void(* pa_sync_lost)(struct bt_audio_broadcast_sink *sink)
Periodic advertising synchronization lost callback.
Definition: audio.h:1666
uint8_t num_caps
Definition: audio.h:1879
uint8_t err
Definition: audio.h:1883
enum bt_audio_dir dir
Definition: audio.h:1875
uint8_t num_eps
Definition: audio.h:1881
struct bt_gatt_read_params read
Definition: audio.h:1884
struct bt_gatt_discover_params discover
Definition: audio.h:1885
bt_audio_discover_func_t func
Definition: audio.h:1877
struct bt_codec codec
Definition: audio.h:477
struct bt_codec_qos qos
Definition: audio.h:479
Callback structure for the Public Audio Capabilities Service (PACS)
Definition: audio.h:1501
int(* get_available_contexts)(struct bt_conn *conn, enum bt_audio_dir dir, enum bt_audio_context *context)
Get available audio contexts callback.
Definition: audio.h:1517
int(* publish_capability)(struct bt_conn *conn, uint8_t type, uint8_t index, struct bt_codec *const codec)
Publish Capability callback.
Definition: audio.h:1543
Stream operation.
Definition: audio.h:1673
void(* stopped)(struct bt_audio_stream *stream)
Stream stopped callback.
Definition: audio.h:1748
void(* started)(struct bt_audio_stream *stream)
Stream started callback.
Definition: audio.h:1739
Audio stream structure.
Definition: audio.h:1291
struct bt_audio_stream_ops * ops
Definition: audio.h:1303
struct bt_audio_unicast_group * unicast_group
Definition: audio.h:1307
struct bt_audio_broadcast_sink * broadcast_sink
Definition: audio.h:1309
void * group
Definition: audio.h:1306
struct bt_conn * conn
Definition: audio.h:1293
struct bt_audio_ep * ep
Definition: audio.h:1295
struct bt_audio_broadcast_source * broadcast_source
Definition: audio.h:1308
const struct bt_codec * codec
Definition: audio.h:1297
struct bt_iso_chan * iso
Definition: audio.h:1301
struct bt_codec_qos * qos
Definition: audio.h:1299
void * user_data
Definition: audio.h:1313
void(* available_contexts)(struct bt_conn *conn, enum bt_audio_context snk_ctx, enum bt_audio_context src_ctx)
Remote Unicast Server Available Contexts.
Definition: audio.h:1346
void(* location)(struct bt_conn *conn, enum bt_audio_dir dir, enum bt_audio_location loc)
Remote Unicast Server Audio Locations.
Definition: audio.h:1332
Parameter struct for the unicast group functions.
Definition: audio.h:2068
enum bt_audio_dir dir
The direction of the bt_audio_unicast_group_param::stream.
Definition: audio.h:2080
struct bt_audio_stream * stream
Definition: audio.h:2070
struct bt_codec_qos * qos
Definition: audio.h:2073
int(* reconfig)(struct bt_audio_stream *stream, enum bt_audio_dir dir, const struct bt_codec *codec, struct bt_codec_qos_pref *const pref)
Stream reconfig request callback.
Definition: audio.h:1402
int(* qos)(struct bt_audio_stream *stream, const struct bt_codec_qos *qos)
Stream QoS request callback.
Definition: audio.h:1417
int(* start)(struct bt_audio_stream *stream)
Stream Start request callback.
Definition: audio.h:1444
int(* stop)(struct bt_audio_stream *stream)
Stream Stop callback.
Definition: audio.h:1481
int(* enable)(struct bt_audio_stream *stream, const struct bt_codec_data *meta, size_t meta_count)
Stream Enable request callback.
Definition: audio.h:1431
int(* disable)(struct bt_audio_stream *stream)
Stream Disable request callback.
Definition: audio.h:1470
int(* release)(struct bt_audio_stream *stream)
Stream release callback.
Definition: audio.h:1492
int(* config)(struct bt_conn *conn, const struct bt_audio_ep *ep, enum bt_audio_dir dir, const struct bt_codec *codec, struct bt_audio_stream **stream, struct bt_codec_qos_pref *const pref)
Endpoint config request callback.
Definition: audio.h:1381
int(* metadata)(struct bt_audio_stream *stream, const struct bt_codec_data *meta, size_t meta_count)
Stream Metadata update request callback.
Definition: audio.h:1457
Codec configuration structure.
Definition: audio.h:174
struct bt_data data
Definition: audio.h:175
Audio Stream Quality of Service Preference structure.
Definition: audio.h:436
bool unframed_supported
Unframed PDUs supported.
Definition: audio.h:442
uint32_t pd_min
Minimum Presentation Delay.
Definition: audio.h:458
uint32_t pref_pd_min
Preferred minimum Presentation Delay.
Definition: audio.h:468
uint32_t pd_max
Maximum Presentation Delay.
Definition: audio.h:465
uint8_t rtn
Definition: audio.h:448
uint8_t phy
Definition: audio.h:445
uint16_t latency
Definition: audio.h:451
uint32_t pref_pd_max
Preferred maximum Presentation Delay
Definition: audio.h:471
Codec QoS structure.
Definition: audio.h:388
uint8_t phy
Definition: audio.h:390
uint8_t framing
Definition: audio.h:393
uint32_t pd
Definition: audio.h:407
uint16_t latency
Definition: audio.h:402
uint32_t interval
Definition: audio.h:405
uint8_t rtn
Definition: audio.h:396
uint16_t sdu
Definition: audio.h:399
Codec structure.
Definition: audio.h:255
uint16_t cid
Definition: audio.h:265
uint8_t id
Definition: audio.h:263
uint16_t vid
Definition: audio.h:267
uint8_t path_id
Definition: audio.h:261
Bluetooth data.
Definition: bluetooth.h:356
GATT Discover Attributes parameters.
Definition: gatt.h:1430
GATT Read parameters.
Definition: gatt.h:1518
ISO Channel structure.
Definition: iso.h:121
ISO Meta Data structure for received ISO packets.
Definition: iso.h:222
Definition: bluetooth.h:1719
Definition: bluetooth.h:1756
Simple network buffer representation.
Definition: buf.h:82
Network buffer representation.
Definition: buf.h:914
static fdata_t data[2]
Definition: test_fifo_contexts.c:15