Modify noise suppression functionality
[platform/core/api/audio-io.git] / src / cpp / CAudioIO.cpp
index 0d7bc43..e337973 100644 (file)
@@ -226,11 +226,20 @@ void CAudioIO::setStreamInfo(sound_stream_info_h stream_info) {
 
     if (mDirection == CAudioInfo::EAudioDirection::AUDIO_DIRECTION_IN) {
         int device_id;
+        bool noise_suppression_enabled;
+        sound_acoustic_echo_cancel_type_e aec_type;
+        sound_noise_suppression_type_e ns_type;
 
-        if ((errorCode = sound_manager_get_echo_cancel_reference_device(stream_info, &device_id) != SOUND_MANAGER_ERROR_NONE))
+        if ((errorCode = sound_manager_get_echo_cancel_reference_device(stream_info, &device_id, &aec_type)) != SOUND_MANAGER_ERROR_NONE)
             THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT, "Can't get reference device [ret:%d]", errorCode); //LCOV_EXCL_LINE
 
         if (device_id != SOUND_MANAGER_STREAM_NO_REFERENCE_DEVICE)
-            getAudioInfo().bindEchoCancelReferenceDeviceId(device_id);
+            getAudioInfo().bindEchoCancelReferenceDeviceId(device_id, aec_type);
+
+        if ((errorCode = sound_manager_get_noise_suppression(stream_info, &noise_suppression_enabled, &ns_type)) != SOUND_MANAGER_ERROR_NONE)
+            THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT, "Can't get noise suppression status [ret:%d]", errorCode); //LCOV_EXCL_LINE
+
+        if (noise_suppression_enabled)
+            getAudioInfo().setNoiseSuppression(noise_suppression_enabled, ns_type);
     }
 }