*/
#define SOUND_MANAGER_STREAM_NO_REFERENCE_DEVICE 0
+/**
+ * @internal
+ * @brief Enumeration for noise-suppression scenarios
+ * @since_tizen 8.0
+ */
+typedef enum {
+ SOUND_ACOUSTIC_ECHO_CANCEL_VOICE_CALL,
+ SOUND_ACOUSTIC_ECHO_CANCEL_REFERENCE_COPY,
+} sound_acoustic_echo_cancel_type_e;
+
+/**
+ * @internal
+ * @brief Enumeration for noise-suppression scenarios
+ * @since_tizen 8.0
+ */
+typedef enum {
+ SOUND_NOISE_SUPPRESSION_VOICE_CALL,
+ SOUND_NOISE_SUPPRESSION_VOICE_RECOGNITION,
+} sound_noise_suppression_type_e;
+
/**
* @internal
* @brief Sets the mute specified for a particular sound type.
* If @a device is not supported by @a stream_info, #SOUND_MANAGER_ERROR_POLICY will be returned.
* @param[in] stream_info The handle of stream information
* @param[in] device The reference device of echo-cancellation
+ * @param[in] type The types of acoustic echo cancellation
* @return @c 0 on success,
* otherwise a negative error value
* @retval #SOUND_MANAGER_ERROR_NONE Success
* @see sound_manager_get_next_device()
* @see sound_manager_free_device_list()
*/
-int sound_manager_set_echo_cancel_reference_device(sound_stream_info_h stream_info, sound_device_h device);
+int sound_manager_set_echo_cancel_reference_device(sound_stream_info_h stream_info, sound_device_h device, sound_acoustic_echo_cancel_type_e type);
/**
* @internal
* sound_manager_get_next_device() and sound_manager_get_device_id().
* @param[in] stream_info The handle of stream information
* @param[out] device_id The reference device id of echo-cancellation
+ * @param[in] type The types of acoustic echo cancellation
* @return @c 0 on success,
* otherwise a negative error value
* @retval #SOUND_MANAGER_ERROR_NONE Success
* @see sound_manager_get_next_device()
* @see sound_manager_free_device_list()
*/
-int sound_manager_get_echo_cancel_reference_device(sound_stream_info_h stream_info, int *device_id);
+int sound_manager_get_echo_cancel_reference_device(sound_stream_info_h stream_info, int *device_id, sound_acoustic_echo_cancel_type_e *type);
/**
* @internal
* @brief Sets noise suppression status
* @since_tizen 7.5
* @param[in] stream_info The handle of stream information
+ * @param[in] type The type of noise suppression
* @param[in] enable The 'noise_suppression' property value to set: (@c true = enable, @c false = disable)
* @return @c 0 on success,
* otherwise a negative error value
* @see sound_manager_create_stream_information()
* @see sound_manager_get_noise_suppression()
*/
-int sound_manager_set_noise_suppression(sound_stream_info_h stream_info, bool enable);
+int sound_manager_set_noise_suppression(sound_stream_info_h stream_info, bool enable, sound_noise_suppression_type_e type);
/**
* @internal
* @since_tizen 7.5
* @param[in] stream_info The handle of stream information
* @param[out] enabled The 'noise_suppression' property value : (@c true = enable, @c false = disable)
+ * @param[out] type The type of the noise_suppression scenario
* @return @c 0 on success,
* otherwise a negative error value
* @retval #SOUND_MANAGER_ERROR_NONE Success
* @see sound_manager_create_stream_information()
* @see sound_manager_set_noise_suppression()
*/
-int sound_manager_get_noise_suppression(sound_stream_info_h stream_info, bool *enabled);
+int sound_manager_get_noise_suppression(sound_stream_info_h stream_info, bool *enabled, sound_noise_suppression_type_e *type);
/**
* @internal