diff options
Diffstat (limited to 'src/pulse/channelmap.c')
-rw-r--r-- | src/pulse/channelmap.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/pulse/channelmap.c b/src/pulse/channelmap.c index ce7dadc9..4654a9ad 100644 --- a/src/pulse/channelmap.c +++ b/src/pulse/channelmap.c @@ -839,3 +839,28 @@ 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; +} + +pa_channel_position_mask_t pa_channel_map_mask(const pa_channel_map *map) { + unsigned c; + pa_channel_position_mask_t r = 0; + + pa_return_val_if_fail(pa_channel_map_valid(map), 0); + + for (c = 0; c < map->channels; c++) + r |= PA_CHANNEL_POSITION_MASK(map->map[c]); + + return r; +} |