X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Fcpp%2FCPulseStreamSpec.cpp;h=08a445dcee857180bf4eeaa9096addeaead91a32;hb=20b14df3ee6f2addbc5fed71dde71ed5c1ebce3e;hp=c5649446c3a25c3b92c34cfbecc5da876967b230;hpb=5cfe54834f37db8a96a502b6191252534fc537b4;p=platform%2Fcore%2Fapi%2Faudio-io.git diff --git a/src/cpp/CPulseStreamSpec.cpp b/src/cpp/CPulseStreamSpec.cpp index c564944..08a445d 100644 --- a/src/cpp/CPulseStreamSpec.cpp +++ b/src/cpp/CPulseStreamSpec.cpp @@ -22,119 +22,181 @@ using namespace std; using namespace tizen_media_audio; -static const char* STREAM_NAME_INPUT = "CAPTURE"; static const char* STREAM_NAME_INPUT_LOW_LATENCY = "LOW LATENCY CAPTURE"; +static const char* STREAM_NAME_INPUT_MID_LATENCY = "MID LATENCY CAPTURE"; static const char* STREAM_NAME_INPUT_HIGH_LATENCY = "HIGH LATENCY CAPTURE"; static const char* STREAM_NAME_INPUT_VOIP = "VOIP CAPTURE"; +static const char* STREAM_NAME_INPUT_DEFAULT = "DEFAULT CAPTURE"; -static const char* STREAM_NAME_OUTPUT = "PLAYBACK"; static const char* STREAM_NAME_OUTPUT_LOW_LATENCY = "LOW LATENCY PLAYBACK"; +static const char* STREAM_NAME_OUTPUT_MID_LATENCY = "MID LATENCY PLAYBACK"; static const char* STREAM_NAME_OUTPUT_HIGH_LATENCY = "HIGH LATENCY PLAYBACK"; static const char* STREAM_NAME_OUTPUT_VOIP = "VOIP PLAYBACK"; +static const char* STREAM_NAME_OUTPUT_DEFAULT = "DEFAULT PLAYBACK"; +static const char* STREAM_LATENCY_LOW = "low"; +static const char* STREAM_LATENCY_MID = "mid"; +static const char* STREAM_LATENCY_HIGH = "high"; +static const char* STREAM_LATENCY_VOIP = "voip"; +static const char* STREAM_LATENCY_DEFAULT = "default"; -CPulseStreamSpec::CPulseStreamSpec() throw (CAudioError) - : mLatency(STREAM_LATENCY_INPUT_MID), mStreamName(NULL) { - _adjustSpec(); + +CPulseStreamSpec::CPulseStreamSpec() throw(CAudioError) : + __mLatency(EStreamLatency::STREAM_LATENCY_INPUT_DEFAULT), + __mStreamName(NULL) { + __adjustSpec(); } -CPulseStreamSpec::CPulseStreamSpec(EStreamLatency latency, CAudioInfo& audioInfo) throw (CAudioError) - : mLatency(latency), mAudioInfo(audioInfo), mStreamName(NULL) { - _adjustSpec(); +CPulseStreamSpec::CPulseStreamSpec(EStreamLatency latency, CAudioInfo& audioInfo) throw(CAudioError) : + __mLatency(latency), + __mAudioInfo(audioInfo), + __mStreamName(NULL) { + __adjustSpec(); } -CPulseStreamSpec::CPulseStreamSpec(EStreamLatency latency, CAudioInfo& audioInfo, int customLatency) throw (CAudioError) - : mLatency(latency), mAudioInfo(audioInfo), mStreamName(NULL) { - _adjustSpec(); +CPulseStreamSpec::CPulseStreamSpec(EStreamLatency latency, CAudioInfo& audioInfo, int customLatency) throw(CAudioError) : + __mLatency(latency), + __mAudioInfo(audioInfo), + __mStreamName(NULL) { + __adjustSpec(); } CPulseStreamSpec::~CPulseStreamSpec() { } -void CPulseStreamSpec::_adjustSpec() throw (CAudioError) { +void CPulseStreamSpec::__adjustSpec() throw(CAudioError) { // Sets a sampleRate - mSampleSpec.rate = mAudioInfo.getSampleRate(); + __mSampleSpec.rate = __mAudioInfo.getSampleRate(); // Convert channels for PA - switch (mAudioInfo.getChannel()) { - case CAudioInfo::CHANNEL_MONO: - mSampleSpec.channels = 1; + switch (__mAudioInfo.getChannel()) { + case CAudioInfo::EChannel::CHANNEL_MONO: + __mSampleSpec.channels = 1; break; - case CAudioInfo::CHANNEL_STEREO: + case CAudioInfo::EChannel::CHANNEL_STEREO: default: - mSampleSpec.channels = 2; + __mSampleSpec.channels = 2; break; } // Convert format for PA - switch (mAudioInfo.getSampleType()) { - case CAudioInfo::SAMPLE_TYPE_U8: - mSampleSpec.format = PA_SAMPLE_U8; + switch (__mAudioInfo.getSampleType()) { + case CAudioInfo::ESampleType::SAMPLE_TYPE_U8: + __mSampleSpec.format = PA_SAMPLE_U8; break; - case CAudioInfo::SAMPLE_TYPE_S16_LE: + case CAudioInfo::ESampleType::SAMPLE_TYPE_S16_LE: default: - mSampleSpec.format = PA_SAMPLE_S16LE; + __mSampleSpec.format = PA_SAMPLE_S16LE; break; } // Sets channelmap - pa_channel_map_init_auto(&mChannelMap, mSampleSpec.channels, PA_CHANNEL_MAP_ALSA); + pa_channel_map_init_auto(&__mChannelMap, __mSampleSpec.channels, PA_CHANNEL_MAP_ALSA); // Sets stream name - switch (mLatency) { - case STREAM_LATENCY_OUTPUT_MID: - mStreamName = STREAM_NAME_OUTPUT; + switch (__mLatency) { + case EStreamLatency::STREAM_LATENCY_INPUT_LOW: + __mStreamName = STREAM_NAME_INPUT_LOW_LATENCY; + break; + + case EStreamLatency::STREAM_LATENCY_INPUT_MID: + __mStreamName = STREAM_NAME_INPUT_MID_LATENCY; break; - case STREAM_LATENCY_OUTPUT_HIGH: - mStreamName = STREAM_NAME_OUTPUT_HIGH_LATENCY; + case EStreamLatency::STREAM_LATENCY_INPUT_HIGH: + __mStreamName = STREAM_NAME_INPUT_HIGH_LATENCY; break; - case STREAM_LATENCY_OUTPUT_LOW: - mStreamName = STREAM_NAME_OUTPUT_LOW_LATENCY; + case EStreamLatency::STREAM_LATENCY_INPUT_VOIP: + __mStreamName = STREAM_NAME_INPUT_VOIP; break; - case STREAM_LATENCY_OUTPUT_VOIP: - mStreamName = STREAM_NAME_OUTPUT_VOIP; - break; + case EStreamLatency::STREAM_LATENCY_INPUT_DEFAULT: + __mStreamName = STREAM_NAME_INPUT_DEFAULT; + break; - case STREAM_LATENCY_INPUT_HIGH: - mStreamName = STREAM_NAME_INPUT_HIGH_LATENCY; + case EStreamLatency::STREAM_LATENCY_OUTPUT_LOW: + __mStreamName = STREAM_NAME_OUTPUT_LOW_LATENCY; break; - case STREAM_LATENCY_INPUT_LOW: - mStreamName = STREAM_NAME_INPUT_LOW_LATENCY; + case EStreamLatency::STREAM_LATENCY_OUTPUT_MID: + __mStreamName = STREAM_NAME_OUTPUT_MID_LATENCY; break; - case STREAM_LATENCY_INPUT_VOIP: - mStreamName = STREAM_NAME_INPUT_VOIP; + case EStreamLatency::STREAM_LATENCY_OUTPUT_HIGH: + __mStreamName = STREAM_NAME_OUTPUT_HIGH_LATENCY; + break; + + case EStreamLatency::STREAM_LATENCY_OUTPUT_VOIP: + __mStreamName = STREAM_NAME_OUTPUT_VOIP; + break; + + case EStreamLatency::STREAM_LATENCY_OUTPUT_DEFAULT: + __mStreamName = STREAM_NAME_OUTPUT_DEFAULT; break; - case STREAM_LATENCY_INPUT_MID: default: - mStreamName = STREAM_NAME_INPUT; + AUDIO_IO_LOGW("Invalid __mLatency[%d]", static_cast(__mLatency)); break; } } CPulseStreamSpec::EStreamLatency CPulseStreamSpec::getStreamLatency() { - return mLatency; + return __mLatency; +} + +const char* CPulseStreamSpec::getStreamLatencyToString() { + const char* latency; + + switch (__mLatency) { + case EStreamLatency::STREAM_LATENCY_INPUT_LOW: + case EStreamLatency::STREAM_LATENCY_OUTPUT_LOW: + latency = STREAM_LATENCY_LOW; + break; + + case EStreamLatency::STREAM_LATENCY_INPUT_MID: + case EStreamLatency::STREAM_LATENCY_OUTPUT_MID: + latency = STREAM_LATENCY_MID; + break; + + case EStreamLatency::STREAM_LATENCY_INPUT_HIGH: + case EStreamLatency::STREAM_LATENCY_OUTPUT_HIGH: + latency = STREAM_LATENCY_HIGH; + break; + + case EStreamLatency::STREAM_LATENCY_INPUT_VOIP: + case EStreamLatency::STREAM_LATENCY_OUTPUT_VOIP: + latency = STREAM_LATENCY_VOIP; + break; + + case EStreamLatency::STREAM_LATENCY_INPUT_DEFAULT: + case EStreamLatency::STREAM_LATENCY_OUTPUT_DEFAULT: + latency = STREAM_LATENCY_DEFAULT; + break; + + default: + AUDIO_IO_LOGW("Invalid __mLatency[%d]", static_cast(__mLatency)); + latency = STREAM_LATENCY_DEFAULT; + break; + } + + return latency; } -CAudioInfo CPulseStreamSpec::getAudioInfo() { - return mAudioInfo; +CAudioInfo& CPulseStreamSpec::getAudioInfo() { + return __mAudioInfo; } pa_sample_spec CPulseStreamSpec::getSampleSpec() { - return mSampleSpec; + return __mSampleSpec; } pa_channel_map CPulseStreamSpec::getChannelMap() { - return mChannelMap; + return __mChannelMap; } const char* CPulseStreamSpec::getStreamName() { - return mStreamName; + return __mStreamName; }