add new API pa_cvolume_compatible_with_channel_map()

This commit is contained in:
Lennart Poettering 2009-02-03 21:15:32 +01:00
parent 921882de54
commit 543115ae17
3 changed files with 20 additions and 2 deletions

View file

@ -109,6 +109,7 @@ pa_context_unref;
pa_cvolume_avg; pa_cvolume_avg;
pa_cvolume_channels_equal_to; pa_cvolume_channels_equal_to;
pa_cvolume_compatible; pa_cvolume_compatible;
pa_cvolume_compatible_with_channel_map;
pa_cvolume_equal; pa_cvolume_equal;
pa_cvolume_get_balance; pa_cvolume_get_balance;
pa_cvolume_get_fade; pa_cvolume_get_fade;

View file

@ -428,6 +428,19 @@ int pa_cvolume_compatible(const pa_cvolume *v, const pa_sample_spec *ss) {
return v->channels == ss->channels; return v->channels == ss->channels;
} }
int pa_cvolume_compatible_with_channel_map(const pa_cvolume *v, const pa_channel_map *cm) {
pa_assert(v);
pa_assert(cm);
if (!pa_cvolume_valid(v))
return 0;
if (!pa_channel_map_valid(cm))
return 0;
return v->channels == cm->channels;
}
static void get_avg_lr(const pa_channel_map *map, const pa_cvolume *v, pa_volume_t *l, pa_volume_t *r) { static void get_avg_lr(const pa_channel_map *map, const pa_cvolume *v, pa_volume_t *l, pa_volume_t *r) {
int c; int c;
pa_volume_t left = 0, right = 0; pa_volume_t left = 0, right = 0;

View file

@ -230,10 +230,14 @@ double pa_sw_volume_to_linear(pa_volume_t v) PA_GCC_CONST;
/** Remap a volume from one channel mapping to a different channel mapping. \since 0.9.12 */ /** Remap a volume from one channel mapping to a different channel mapping. \since 0.9.12 */
pa_cvolume *pa_cvolume_remap(pa_cvolume *v, const pa_channel_map *from, const pa_channel_map *to); pa_cvolume *pa_cvolume_remap(pa_cvolume *v, const pa_channel_map *from, const pa_channel_map *to);
/** Return non-zero if the specified volume is compatible with /** Return non-zero if the specified volume is compatible with the
* the specified sample spec. \since 0.9.13 */ * specified sample spec. \since 0.9.13 */
int pa_cvolume_compatible(const pa_cvolume *v, const pa_sample_spec *ss) PA_GCC_PURE; int pa_cvolume_compatible(const pa_cvolume *v, const pa_sample_spec *ss) PA_GCC_PURE;
/** Return non-zero if the specified volume is compatible with the
* specified sample spec. \since 0.9.15 */
int pa_cvolume_compatible_with_channel_map(const pa_cvolume *v, const pa_channel_map *cm) PA_GCC_PURE;
/** Calculate a 'balance' value for the specified volume with the /** Calculate a 'balance' value for the specified volume with the
* specified channel map. The return value will range from -1.0f * specified channel map. The return value will range from -1.0f
* (left) to +1.0f (right). If no balance value is applicable to this * (left) to +1.0f (right). If no balance value is applicable to this