mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-11-08 13:29:59 -05:00
add new API pa_channel_map_init_extend() to synthesize a channel map if noone is known
This commit is contained in:
parent
b95cf52030
commit
132e73b2ef
4 changed files with 43 additions and 3 deletions
|
|
@ -394,6 +394,34 @@ pa_channel_map* pa_channel_map_init_auto(pa_channel_map *m, unsigned channels, p
|
|||
}
|
||||
}
|
||||
|
||||
pa_channel_map* pa_channel_map_init_extend(pa_channel_map *m, unsigned channels, pa_channel_map_def_t def) {
|
||||
unsigned c;
|
||||
|
||||
pa_assert(m);
|
||||
pa_assert(channels > 0);
|
||||
pa_assert(channels <= PA_CHANNELS_MAX);
|
||||
|
||||
pa_channel_map_init(m);
|
||||
|
||||
for (c = channels; c > 0; c--) {
|
||||
|
||||
if (pa_channel_map_init_auto(m, c, def)) {
|
||||
unsigned i = 0;
|
||||
|
||||
for (; c < channels; c++) {
|
||||
|
||||
m->map[c] = PA_CHANNEL_POSITION_AUX0 + i;
|
||||
i++;
|
||||
}
|
||||
|
||||
m->channels = channels;
|
||||
|
||||
return m;
|
||||
}
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
const char* pa_channel_position_to_string(pa_channel_position_t pos) {
|
||||
|
||||
|
|
|
|||
|
|
@ -166,10 +166,18 @@ pa_channel_map* pa_channel_map_init_mono(pa_channel_map *m);
|
|||
/** Initialize the specified channel map for stereophonic audio and return a pointer to it */
|
||||
pa_channel_map* pa_channel_map_init_stereo(pa_channel_map *m);
|
||||
|
||||
/** Initialize the specified channel map for the specified number
|
||||
* of channels using default labels and return a pointer to it. */
|
||||
/** Initialize the specified channel map for the specified number of
|
||||
* channels using default labels and return a pointer to it. This call
|
||||
* will fail (return NULL) if there is no default channel map known for this
|
||||
* specific number of channels and mapping. */
|
||||
pa_channel_map* pa_channel_map_init_auto(pa_channel_map *m, unsigned channels, pa_channel_map_def_t def);
|
||||
|
||||
/** Similar to pa_channel_map_init_auto() but instead of failing if no
|
||||
* default mapping is known with the specified parameters it will
|
||||
* synthesize a mapping based on a known mapping with fewer channels
|
||||
* and fill up the rest with AUX0...AUX31 channels \since 0.9.11 */
|
||||
pa_channel_map* pa_channel_map_init_extend(pa_channel_map *m, unsigned channels, pa_channel_map_def_t def);
|
||||
|
||||
/** Return a text label for the specified channel position */
|
||||
const char* pa_channel_position_to_string(pa_channel_position_t pos) PA_GCC_PURE;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue