- switch (src_channel) {
- case AUDIO_CHANNEL_MONO:
- return CAudioInfo::EChannel::CHANNEL_MONO;
- case AUDIO_CHANNEL_STEREO:
- return CAudioInfo::EChannel::CHANNEL_STEREO;
- case AUDIO_CHANNEL_MULTI_3:
- return CAudioInfo::EChannel::CHANNEL_MULTI_3;
- case AUDIO_CHANNEL_MULTI_4:
- return CAudioInfo::EChannel::CHANNEL_MULTI_4;
- case AUDIO_CHANNEL_MULTI_5:
- return CAudioInfo::EChannel::CHANNEL_MULTI_5;
- case AUDIO_CHANNEL_MULTI_6:
- return CAudioInfo::EChannel::CHANNEL_MULTI_6;
- case AUDIO_CHANNEL_MULTI_7:
- return CAudioInfo::EChannel::CHANNEL_MULTI_7;
- case AUDIO_CHANNEL_MULTI_8:
- return CAudioInfo::EChannel::CHANNEL_MULTI_8;
- default:
- return CAudioInfo::EChannel::CHANNEL_MONO;
- }
+ if (src_channel < AUDIO_CHANNEL_MONO ||
+ src_channel > AUDIO_CHANNEL_MULTI_16)
+ THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT, "Invalid src_channel:%d", src_channel);
+
+ return static_cast<CAudioInfo::EChannel>(src_channel - AUDIO_CHANNEL_MONO + 1);