diff options
author | Lennart Poettering <lennart@poettering.net> | 2006-04-26 15:37:13 +0000 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2006-04-26 15:37:13 +0000 |
commit | 292b237e356371f827df7a7a0e52a7152b64bfe0 (patch) | |
tree | 4b6531389fd1cecd16add7375e23371240d198ec | |
parent | 5f7cc0c870ebe77dd457209503f75d65b35b8014 (diff) |
don't allow channel positions to be specified twice in the same channelmap
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@801 fefdeb5f-60dc-0310-8127-8f9354f1896f
-rw-r--r-- | src/polyp/channelmap.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/polyp/channelmap.c b/src/polyp/channelmap.c index 8d642a06..38349bfa 100644 --- a/src/polyp/channelmap.c +++ b/src/polyp/channelmap.c @@ -277,10 +277,19 @@ int pa_channel_map_valid(const pa_channel_map *map) { if (map->channels <= 0 || map->channels > PA_CHANNELS_MAX) return 0; - for (c = 0; c < map->channels; c++) + for (c = 0; c < map->channels; c++) { + unsigned k; + if (map->map[c] < 0 ||map->map[c] >= PA_CHANNEL_POSITION_MAX) return 0; + /* Don't allow positions to be specified twice */ + for (k = 0; k < c; k++) + if (map->map[k] == map->map[c]) + return 0; + + } + return 1; } |