Lines Matching defs:cm
151 int pa_sndfile_read_channel_map(SNDFILE *sf, pa_channel_map *cm) {
184 pa_assert(cm);
198 cm->channels = (uint8_t) sfi.channels;
199 for (c = 0; c < cm->channels; c++) {
206 cm->map[c] = table[channels[c]];
211 if (!pa_channel_map_valid(cm))
217 int pa_sndfile_write_channel_map(SNDFILE *sf, pa_channel_map *cm) {
285 pa_assert(cm);
288 if (cm->channels == 1 && cm->map[0] == PA_CHANNEL_POSITION_MONO)
291 if (cm->channels == 2 &&
292 cm->map[0] == PA_CHANNEL_POSITION_FRONT_LEFT &&
293 cm->map[1] == PA_CHANNEL_POSITION_FRONT_RIGHT)
296 channels = pa_xnew(int, cm->channels);
297 for (c = 0; c < cm->channels; c++) {
299 if (cm->map[c] < 0 ||
300 cm->map[c] >= PA_CHANNEL_POSITION_MAX ||
301 table[cm->map[c]] < 0) {
306 channels[c] = table[cm->map[c]];
309 if (!sf_command(sf, SFC_SET_CHANNEL_MAP_INFO, channels, sizeof(channels[0]) * cm->channels)) {