]> code.delx.au - pulseaudio/blobdiff - src/pulse/channelmap.c
export pa_channel_map_superset()
[pulseaudio] / src / pulse / channelmap.c
index fd313bd3447fcf234e6ac7327d9cf608b4009196..26eae599f9e516c638d59d5caa5fec445823b1bb 100644 (file)
@@ -577,3 +577,22 @@ int pa_channel_map_compatible(const pa_channel_map *map, const pa_sample_spec *s
 
     return map->channels == ss->channels;
 }
+
+int pa_channel_map_superset(const pa_channel_map *a, const pa_channel_map *b) {
+    pa_bool_t in_a[PA_CHANNEL_POSITION_MAX];
+    unsigned i;
+
+    pa_assert(a);
+    pa_assert(b);
+
+    memset(in_a, 0, sizeof(in_a));
+
+    for (i = 0; i < a->channels; i++)
+        in_a[a->map[i]] = TRUE;
+
+    for (i = 0; i < b->channels; i++)
+        if (!in_a[b->map[i]])
+            return 0;
+
+    return 1;
+}