mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2026-03-15 05:33:56 -04:00
sink: Add a set_formats() API
This adds API to let external sources specify what formats a sink supports. Sinks must opt-in to allow this, and can perform some validation if required.
This commit is contained in:
parent
b430407f47
commit
485d4dd542
2 changed files with 23 additions and 0 deletions
|
|
@ -180,6 +180,7 @@ static void reset_callbacks(pa_sink *s) {
|
|||
s->update_requested_latency = NULL;
|
||||
s->set_port = NULL;
|
||||
s->get_formats = NULL;
|
||||
s->set_formats = NULL;
|
||||
}
|
||||
|
||||
/* Called from main context */
|
||||
|
|
@ -3428,6 +3429,21 @@ pa_idxset* pa_sink_get_formats(pa_sink *s) {
|
|||
return ret;
|
||||
}
|
||||
|
||||
/* Called from the main thread */
|
||||
/* Allows an external source to set what formats a sink supports if the sink
|
||||
* permits this. The function makes a copy of the formats on success. */
|
||||
pa_bool_t pa_sink_set_formats(pa_sink *s, pa_idxset *formats) {
|
||||
pa_assert(s);
|
||||
pa_assert(formats);
|
||||
|
||||
if (s->set_formats)
|
||||
/* Sink supports setting formats -- let's give it a shot */
|
||||
return s->set_formats(s, formats);
|
||||
else
|
||||
/* Sink doesn't support setting this -- bail out */
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/* Called from the main thread */
|
||||
/* Checks if the sink can accept this format */
|
||||
pa_bool_t pa_sink_check_format(pa_sink *s, pa_format_info *f)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue