[ACR-1434] Extend channel and format parameters
[platform/core/api/audio-io.git] / src / cpp / CPulseStreamSpec.cpp
index 93b10ec..def1833 100644 (file)
@@ -42,12 +42,13 @@ static const char* STREAM_LATENCY_VOIP    = "voip";
 static const char* STREAM_LATENCY_DEFAULT = "default";
 static const char* STREAM_LATENCY_DEFAULT_ASYNC = "default-async";
 
-
+//LCOV_EXCL_START
 CPulseStreamSpec::CPulseStreamSpec():
     __mLatency(EStreamLatency::STREAM_LATENCY_INPUT_DEFAULT),
     __mStreamName(NULL) {
     __adjustSpec();
 }
+//LCOV_EXCL_STOP
 
 CPulseStreamSpec::CPulseStreamSpec(EStreamLatency latency, CAudioInfo& audioInfo) :
     __mLatency(latency),
@@ -56,12 +57,14 @@ CPulseStreamSpec::CPulseStreamSpec(EStreamLatency latency, CAudioInfo& audioInfo
     __adjustSpec();
 }
 
+//LCOV_EXCL_START
 CPulseStreamSpec::CPulseStreamSpec(EStreamLatency latency, CAudioInfo& audioInfo, int customLatency) :
     __mLatency(latency),
     __mAudioInfo(audioInfo),
     __mStreamName(NULL) {
     __adjustSpec();
 }
+//LCOV_EXCL_STOP
 
 CPulseStreamSpec::~CPulseStreamSpec() {
 }
@@ -71,16 +74,7 @@ void CPulseStreamSpec::__adjustSpec() {
     __mSampleSpec.rate = __mAudioInfo.getSampleRate();
 
     // Convert channels for PA
-    switch (__mAudioInfo.getChannel()) {
-    case CAudioInfo::EChannel::CHANNEL_MONO:
-        __mSampleSpec.channels = 1;
-        break;
-
-    case CAudioInfo::EChannel::CHANNEL_STEREO:
-    default:
-        __mSampleSpec.channels = 2;
-        break;
-    }
+    __mSampleSpec.channels = static_cast<uint8_t>(__mAudioInfo.getChannel());
 
     // Convert format for PA
     switch (__mAudioInfo.getSampleType()) {
@@ -100,13 +94,17 @@ void CPulseStreamSpec::__adjustSpec() {
         __mSampleSpec.format = PA_SAMPLE_S24_32LE;
         break;
 
+    case CAudioInfo::ESampleType::SAMPLE_TYPE_S32_LE:
+        __mSampleSpec.format = PA_SAMPLE_S32LE;
+        break;
+
     default:
         __mSampleSpec.format = PA_SAMPLE_S16LE;
         break;
     }
 
     // Sets channelmap
-    pa_channel_map_init_auto(&__mChannelMap, __mSampleSpec.channels, PA_CHANNEL_MAP_ALSA);
+    pa_channel_map_init_extend(&__mChannelMap, __mSampleSpec.channels, PA_CHANNEL_MAP_ALSA);
 
     // Sets stream name
     switch (__mLatency) {