summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2009-02-03 21:15:32 +0100
committerLennart Poettering <lennart@poettering.net>2009-02-03 21:15:32 +0100
commit543115ae1726e853624a6214ad58187f6d84c95a (patch)
treede2ec270ffbbab36a2c5cab577be8370e5e7a9db /src
parent921882de548e17bbdd79bd8eb2c2ce7d36412cf4 (diff)
add new API pa_cvolume_compatible_with_channel_map()
Diffstat (limited to 'src')
-rw-r--r--src/map-file1
-rw-r--r--src/pulse/volume.c13
-rw-r--r--src/pulse/volume.h8
3 files changed, 20 insertions, 2 deletions
diff --git a/src/map-file b/src/map-file
index 3aa1d7a8..d7addfec 100644
--- a/src/map-file
+++ b/src/map-file
@@ -109,6 +109,7 @@ pa_context_unref;
pa_cvolume_avg;
pa_cvolume_channels_equal_to;
pa_cvolume_compatible;
+pa_cvolume_compatible_with_channel_map;
pa_cvolume_equal;
pa_cvolume_get_balance;
pa_cvolume_get_fade;
diff --git a/src/pulse/volume.c b/src/pulse/volume.c
index 01a28e83..e920288c 100644
--- a/src/pulse/volume.c
+++ b/src/pulse/volume.c
@@ -428,6 +428,19 @@ int pa_cvolume_compatible(const pa_cvolume *v, const pa_sample_spec *ss) {
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) {
int c;
pa_volume_t left = 0, right = 0;
diff --git a/src/pulse/volume.h b/src/pulse/volume.h
index 9ad3e9bf..8bfd0687 100644
--- a/src/pulse/volume.h
+++ b/src/pulse/volume.h
@@ -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 */
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
- * the specified sample spec. \since 0.9.13 */
+/** Return non-zero if the specified volume is compatible with the
+ * specified sample spec. \since 0.9.13 */
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
* specified channel map. The return value will range from -1.0f
* (left) to +1.0f (right). If no balance value is applicable to this