channelmap: add pa_channel_map_has_position()
authorLennart Poettering <lennart@poettering.net>
Fri, 8 May 2009 20:45:24 +0000 (22:45 +0200)
committerLennart Poettering <lennart@poettering.net>
Fri, 8 May 2009 20:49:47 +0000 (22:49 +0200)
src/pulse/channelmap.c
src/pulse/channelmap.h

index ce7dadc..fe14df2 100644 (file)
@@ -839,3 +839,16 @@ const char* pa_channel_map_to_pretty_name(const pa_channel_map *map) {
 
     return NULL;
 }
+
+int pa_channel_map_has_position(const pa_channel_map *map, pa_channel_position_t p) {
+    unsigned c;
+
+    pa_return_val_if_fail(pa_channel_map_valid(map), 0);
+    pa_return_val_if_fail(p < PA_CHANNEL_POSITION_MAX, 0);
+
+    for (c = 0; c < map->channels; c++)
+        if (map->map[c] == p)
+            return 1;
+
+    return 0;
+}
index d4db45b..a2925c1 100644 (file)
@@ -325,6 +325,10 @@ mapping. I.e. "Stereo", "Surround 7.1" and so on. If the channel
 mapping is unknown NULL will be returned. \since 0.9.15 */
 const char* pa_channel_map_to_pretty_name(const pa_channel_map *map) PA_GCC_PURE;
 
+/** Returns TRUE if the specified channel position is available at
+ * least once in the channel map. \since 0.9.16 */
+int pa_channel_map_has_position(const pa_channel_map *map, pa_channel_position_t p) PA_GCC_PURE;
+
 PA_C_DECL_END
 
 #endif