--- src/modules/bluetooth/module-bluetooth-device.c | 26 +++++++++++++++++++++++ 1 files changed, 26 insertions(+), 0 deletions(-) diff --git a/src/modules/bluetooth/module-bluetooth-device.c b/src/modules/bluetooth/module-bluetooth-device.c index a1e37bd..3116d9c 100644 --- a/src/modules/bluetooth/module-bluetooth-device.c +++ b/src/modules/bluetooth/module-bluetooth-device.c @@ -2738,6 +2738,31 @@ static pa_idxset* sink_get_formats(pa_sink *s) { return formats; } +static pa_idxset* source_get_formats(pa_source *s) { + struct userdata *u; + pa_idxset *formats; + pa_format_info *f; + + pa_assert(s); + + formats = pa_idxset_new(NULL, NULL); + + f = pa_format_info_new(); + f->encoding = PA_ENCODING_PCM; + pa_idxset_put(formats, f, NULL); + + u = (struct userdata *) s->userdata; + + if (u->profile == PROFILE_A2DP && u->a2dp.has_mpeg) { + f = pa_format_info_new(); + f->encoding = PA_ENCODING_MPEG_IEC61937; + /* FIXME: Populate supported rates, layers, ... */ + pa_idxset_put(formats, f, NULL); + } + + return formats; +} + /* Run from main thread */ static int add_sink(struct userdata *u) { char *k; @@ -2849,6 +2874,7 @@ static int add_source(struct userdata *u) { u->source->userdata = u; u->source->parent.process_msg = source_process_msg; + u->source->get_formats = source_get_formats; pa_source_set_fixed_latency(u->source, (u->profile == PROFILE_A2DP_SOURCE ? FIXED_LATENCY_RECORD_A2DP : FIXED_LATENCY_RECORD_HSP) + -- 1.7.5.4