__mAudioType(audioType),
__mAudioIndex(audioIndex) {
// Check to invalid AudioInfo
- if (sampleRate < CAudioInfo::MIN_SYSTEM_SAMPLERATE ||
- sampleRate > CAudioInfo::MAX_SYSTEM_SAMPLERATE)
+ if (sampleRate < MIN_SYSTEM_SAMPLERATE ||
+ sampleRate > MAX_SYSTEM_SAMPLERATE)
THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT,
"The sampleRate is invalid [sampleRate:%u]", sampleRate);
- if (channel < CAudioInfo::EChannel::CHANNEL_MONO ||
- channel >= CAudioInfo::EChannel::CHANNEL_MAX)
+ if (channel < EChannel::CHANNEL_MONO ||
+ channel >= EChannel::CHANNEL_MAX)
THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT,
"The channel is invalid [channel:%u]", to_integral(channel));
- if (sampleType < CAudioInfo::ESampleType::SAMPLE_TYPE_U8 ||
- sampleType >= CAudioInfo::ESampleType::SAMPLE_TYPE_MAX)
+ if (sampleType < ESampleType::SAMPLE_TYPE_U8 ||
+ sampleType >= ESampleType::SAMPLE_TYPE_MAX)
THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT,
"The sampleType is invalid [sampleType:%u]", to_integral(sampleType));
- if (audioType < CAudioInfo::EAudioType::AUDIO_IN_TYPE_MEDIA ||
- audioType >= CAudioInfo::EAudioType::AUDIO_TYPE_MAX)
+ if (audioType < EAudioType::AUDIO_IN_TYPE_MEDIA ||
+ audioType >= EAudioType::AUDIO_TYPE_MAX)
THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT,
"The audioType is invalid [audioType:%u]", to_integral(audioType));
}
-unsigned int CAudioInfo::getSampleRate() const noexcept {
- return __mSampleRate;
-}
-
-CAudioInfo::EChannel CAudioInfo::getChannel() const noexcept {
- return __mChannel;
-}
-
-CAudioInfo::ESampleType CAudioInfo::getSampleType() const noexcept {
- return __mSampleType;
+std::tuple<CAudioInfo::ESampleType, unsigned int, CAudioInfo::EChannel> CAudioInfo::getSpec() const noexcept {
+ return { __mSampleType, __mSampleRate, __mChannel };
}
CAudioInfo::EAudioType CAudioInfo::getAudioType() const noexcept {
__mAudioType = convertOutputStreamTypeToAudioType(streamType);
}
-int CAudioInfo::getAudioIndex() const noexcept {
- return __mAudioIndex;
-}
-
void CAudioInfo::setAudioIndex(int audioIndex) noexcept {
__mAudioIndex = audioIndex;
}
return bytes_in_sample * static_cast<int>(__mChannel);
}
+
+size_t CAudioInfo::msToBytes(size_t milliseconds) const noexcept {
+ return milliseconds * __mSampleRate * getSampleSize() / 1000;
+}
+
+size_t CAudioInfo::bytesToMs(size_t bytes) const noexcept {
+ return bytes * 1000 / getSampleSize() / __mSampleRate;
+}
+
void CAudioInfo::setEffectMethod(int method) noexcept {
__mEffectMethod = method;
}
return make_pair(method, __mEffectMethodReferenceDeviceId);
}
-const char* CAudioInfo::getConvertedStreamType() const {
- if (__mAudioType < CAudioInfo::EAudioType::AUDIO_IN_TYPE_MEDIA ||
- __mAudioType >= CAudioInfo::EAudioType::AUDIO_TYPE_MAX)
+std::pair<const char*, int> CAudioInfo::getStreamProperties() const {
+ if (__mAudioType < EAudioType::AUDIO_IN_TYPE_MEDIA ||
+ __mAudioType >= EAudioType::AUDIO_TYPE_MAX)
THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_NOT_SUPPORTED_TYPE,
"The audioType is not supported [audioType:%u]", to_integral(__mAudioType));
- return __STREAM_TYPE_TABLE[(unsigned int)__mAudioType];
+ return std::make_pair(__STREAM_TYPE_TABLE[(unsigned int)__mAudioType], __mAudioIndex);
}
CAudioInfo::EAudioType CAudioInfo::convertInputStreamTypeToAudioType(const char *streamType) {
- for (auto i = (unsigned int)CAudioInfo::EAudioType::AUDIO_IN_TYPE_MEDIA;
- i < (unsigned int)CAudioInfo::EAudioType::AUDIO_OUT_TYPE_MEDIA;
+ for (auto i = (unsigned int)EAudioType::AUDIO_IN_TYPE_MEDIA;
+ i < (unsigned int)EAudioType::AUDIO_OUT_TYPE_MEDIA;
i++) {
if (!strcmp(__STREAM_TYPE_TABLE[i], streamType))
- return (CAudioInfo::EAudioType)i;
+ return (EAudioType)i;
}
THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_NOT_SUPPORTED_TYPE,
"The streamType of input is not supported [streamType:%s]", streamType);
}
CAudioInfo::EAudioType CAudioInfo::convertOutputStreamTypeToAudioType(const char *streamType) {
- for (auto i = (unsigned int)CAudioInfo::EAudioType::AUDIO_OUT_TYPE_MEDIA;
- i < (unsigned int)CAudioInfo::EAudioType::AUDIO_TYPE_MAX;
+ for (auto i = (unsigned int)EAudioType::AUDIO_OUT_TYPE_MEDIA;
+ i < (unsigned int)EAudioType::AUDIO_TYPE_MAX;
i++) {
if (!strcmp(__STREAM_TYPE_TABLE[i], streamType))
- return (CAudioInfo::EAudioType)i;
+ return (EAudioType)i;
}
THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_NOT_SUPPORTED_TYPE,
"The streamType of output is not supported [streamType:%s]", streamType);