}
static CAudioInfo::EChannel __convert_channel_to_audio_info_channel(const audio_channel_e &src_channel) {
- 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);
}
static audio_channel_e __convert_audio_info_channel_to_channel(const CAudioInfo::EChannel& src_channel) {
- switch (src_channel) {
- case CAudioInfo::EChannel::CHANNEL_MONO:
- return AUDIO_CHANNEL_MONO;
- case CAudioInfo::EChannel::CHANNEL_STEREO:
- return AUDIO_CHANNEL_STEREO;
- case CAudioInfo::EChannel::CHANNEL_MULTI_3:
- return AUDIO_CHANNEL_MULTI_3;
- case CAudioInfo::EChannel::CHANNEL_MULTI_4:
- return AUDIO_CHANNEL_MULTI_4;
- case CAudioInfo::EChannel::CHANNEL_MULTI_5:
- return AUDIO_CHANNEL_MULTI_5;
- case CAudioInfo::EChannel::CHANNEL_MULTI_6:
- return AUDIO_CHANNEL_MULTI_6;
- case CAudioInfo::EChannel::CHANNEL_MULTI_7:
- return AUDIO_CHANNEL_MULTI_7;
- case CAudioInfo::EChannel::CHANNEL_MULTI_8:
- return AUDIO_CHANNEL_MULTI_8;
- default:
- return AUDIO_CHANNEL_MONO;
- }
+ if (src_channel < CAudioInfo::EChannel::CHANNEL_MONO ||
+ src_channel >= CAudioInfo::EChannel::CHANNEL_MAX)
+ THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT, "Invalid src_channel:%d", static_cast<int>(src_channel));
+
+ return static_cast<audio_channel_e>(static_cast<int>(src_channel) + AUDIO_CHANNEL_MONO - 1);
}
static CAudioInfo::ESampleType __convert_sample_type_to_audio_info_sample_type(const audio_sample_type_e& src_type) {
- switch (src_type) {
- case AUDIO_SAMPLE_TYPE_U8:
- return CAudioInfo::ESampleType::SAMPLE_TYPE_U8;
- case AUDIO_SAMPLE_TYPE_S16_LE:
- return CAudioInfo::ESampleType::SAMPLE_TYPE_S16_LE;
- case AUDIO_SAMPLE_TYPE_S24_LE:
- return CAudioInfo::ESampleType::SAMPLE_TYPE_S24_LE;
- case AUDIO_SAMPLE_TYPE_S24_32_LE:
- return CAudioInfo::ESampleType::SAMPLE_TYPE_S24_32_LE;
- case AUDIO_SAMPLE_TYPE_S32_LE:
- return CAudioInfo::ESampleType::SAMPLE_TYPE_S32_LE;
- default:
- return CAudioInfo::ESampleType::SAMPLE_TYPE_U8;
- }
+ if (src_type < AUDIO_SAMPLE_TYPE_U8 ||
+ src_type > AUDIO_SAMPLE_TYPE_S32_LE)
+ THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT, "Invalid src_type:%d", src_type);
+
+ return static_cast<CAudioInfo::ESampleType>(static_cast<int>(src_type) - AUDIO_SAMPLE_TYPE_U8 + 1);
}
static audio_sample_type_e __convert_audio_info_sample_type_to_sample_type(const CAudioInfo::ESampleType &src_type) {
- switch (src_type) {
- case CAudioInfo::ESampleType::SAMPLE_TYPE_U8:
- return AUDIO_SAMPLE_TYPE_U8;
- case CAudioInfo::ESampleType::SAMPLE_TYPE_S16_LE:
- return AUDIO_SAMPLE_TYPE_S16_LE;
- case CAudioInfo::ESampleType::SAMPLE_TYPE_S24_LE:
- return AUDIO_SAMPLE_TYPE_S24_LE;
- case CAudioInfo::ESampleType::SAMPLE_TYPE_S24_32_LE:
- return AUDIO_SAMPLE_TYPE_S24_32_LE;
- case CAudioInfo::ESampleType::SAMPLE_TYPE_S32_LE:
- return AUDIO_SAMPLE_TYPE_S32_LE;
- default:
- return AUDIO_SAMPLE_TYPE_U8;
- }
+ if (src_type < CAudioInfo::ESampleType::SAMPLE_TYPE_U8 ||
+ src_type >= CAudioInfo::ESampleType::SAMPLE_TYPE_MAX)
+ THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT, "Invalid src_type:%d", static_cast<int>(src_type));
+
+ return static_cast<audio_sample_type_e>(static_cast<int>(src_type) + AUDIO_SAMPLE_TYPE_U8 - 1);
}
static CAudioInfo::EAudioType __convert_sound_type_to_audio_info_audio_type(const sound_type_e &src_type) {
THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT, "Invalid sample rate :%d", sample_rate);
if (channel < AUDIO_CHANNEL_MONO ||
- channel > ((is_output) ? AUDIO_CHANNEL_STEREO : AUDIO_CHANNEL_MULTI_8))
+ channel > ((is_output) ? AUDIO_CHANNEL_STEREO : AUDIO_CHANNEL_MULTI_16))
THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT, "Invalid channel :%d", channel);
if (type < AUDIO_SAMPLE_TYPE_U8 ||
type > AUDIO_SAMPLE_TYPE_S32_LE)
- THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT, "Invalid sample type :%d", type);
+ THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT, "Invalid sample type :0x%x", type);
}
static CAudioInfo __generate_audio_input_info(int sampleRate, audio_channel_e channel, audio_sample_type_e sample_type) {
static int ch_table[] = { 0, AUDIO_CHANNEL_MONO, AUDIO_CHANNEL_STEREO,
AUDIO_CHANNEL_MULTI_3, AUDIO_CHANNEL_MULTI_4, AUDIO_CHANNEL_MULTI_5,
- AUDIO_CHANNEL_MULTI_6, AUDIO_CHANNEL_MULTI_7, AUDIO_CHANNEL_MULTI_8 };
+ AUDIO_CHANNEL_MULTI_6, AUDIO_CHANNEL_MULTI_7, AUDIO_CHANNEL_MULTI_8,
+ AUDIO_CHANNEL_MULTI_9, AUDIO_CHANNEL_MULTI_10, AUDIO_CHANNEL_MULTI_11,
+ AUDIO_CHANNEL_MULTI_12, AUDIO_CHANNEL_MULTI_13, AUDIO_CHANNEL_MULTI_14,
+ AUDIO_CHANNEL_MULTI_15, AUDIO_CHANNEL_MULTI_16 };
static char *state_str[] = { "IDLE", "RUNNING", "PAUSED" };
static void _audio_in_state_cb(audio_in_h handle, audio_io_state_e previous, audio_io_state_e current,
audio_io_test_read_write();
} else if (argc == 4) {
int channel_idx = atoi(argv[3]);
- if (channel_idx < 0 || channel_idx > 8) {
+ if (channel_idx <= 0 || channel_idx > 16) {
printf("Invalid channel\n");
return 0;
}