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; +}  | 
