sound_noise_suppression_type was added to noise suppression API.
This parameter will select noise-suppression algorithm.
[Version] 0.7.4
[Issue Type] New Feature
Change-Id: Ib3cdc1b2a28adbf49fad129e9813c5b7fe3728a6
Signed-off-by: Jaechul Lee <jcsing.lee@samsung.com>
/**
* @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 Gets the maximum master volume level.
* @since_tizen 3.0
* @param[out] max_level The maximum volume level
* 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
manual_route_info_s manual_route_info;
preferred_device_info_s preferred_device_info;
int echo_cancel_reference_device;
- bool noise_suppression;
+ sound_acoustic_echo_cancel_type_e echo_cancel_type;
+ bool noise_suppression_enable;
+ sound_noise_suppression_type_e noise_suppression_type;
pthread_mutex_t focus_state_mutex;
pthread_mutex_t focus_cb_mutex;
pthread_mutex_t vstream_mutex;
int _get_latest_stream_pid(int stream_type, unsigned int *pid);
-int _set_echo_cancel_reference_device(sound_stream_info_s *stream_info, sound_device_h device);
+int _set_echo_cancel_reference_device(sound_stream_info_s *stream_info, sound_device_h device, sound_acoustic_echo_cancel_type_e type);
-int _get_echo_cancel_reference_device(sound_stream_info_s *stream_info, int *device_id);
+int _get_echo_cancel_reference_device(sound_stream_info_s *stream_info, int *device_id, sound_acoustic_echo_cancel_type_e *type);
-int _set_noise_suppression(sound_stream_info_s *stream_info, bool enable);
+int _set_noise_suppression(sound_stream_info_s *stream_info, bool enable, sound_noise_suppression_type_e type);
-int _get_noise_suppression(sound_stream_info_s *stream_info, bool *enable);
+int _get_noise_suppression(sound_stream_info_s *stream_info, bool *enable, sound_noise_suppression_type_e *type);
int _set_rpi_playback_route(sound_rpi_playback_route_type type);
Name: capi-media-sound-manager
Summary: Sound Manager library
-Version: 0.7.4
+Version: 0.7.5
Release: 0
Group: Multimedia/API
License: Apache-2.0
return _set_remote_permission(id, allowed);
}
-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)
{
- return _set_echo_cancel_reference_device((sound_stream_info_s*)stream_info, device);
+ return _set_echo_cancel_reference_device((sound_stream_info_s*)stream_info, device, type);
}
-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)
{
- return _get_echo_cancel_reference_device((sound_stream_info_s*)stream_info, device_id);
+ return _get_echo_cancel_reference_device((sound_stream_info_s*)stream_info, device_id, type);
}
-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)
{
- return _set_noise_suppression((sound_stream_info_s*)stream_info, enable);
+ return _set_noise_suppression((sound_stream_info_s*)stream_info, enable, type);
}
-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)
{
- return _get_noise_suppression((sound_stream_info_s*)stream_info, enabled);
+ return _get_noise_suppression((sound_stream_info_s*)stream_info, enabled, type);
}
int sound_manager_set_rpi_playback_route(sound_rpi_playback_route_type type)
return ret;
}
-int _set_echo_cancel_reference_device(sound_stream_info_s *stream_info, sound_device_h device)
+int _set_echo_cancel_reference_device(sound_stream_info_s *stream_info, sound_device_h device, sound_acoustic_echo_cancel_type_e type)
{
int ret;
int device_id;
return _convert_sound_manager_error_code(__func__, ret);
stream_info->echo_cancel_reference_device = device_id;
+ stream_info->echo_cancel_type = type;
- LOGI("stream_info[%p, %s] EC reference device[id:%d, name:%s]",
- stream_info, stream_info->stream_type, device_id, device_name);
+ LOGI("stream_info[%p, %s] EC reference device[id:%d, name:%s type:%d]",
+ stream_info, stream_info->stream_type, device_id, device_name, stream_info->echo_cancel_type);
return SOUND_MANAGER_ERROR_NONE;
}
-int _get_echo_cancel_reference_device(sound_stream_info_s *stream_info, int *device_id)
+int _get_echo_cancel_reference_device(sound_stream_info_s *stream_info, int *device_id, sound_acoustic_echo_cancel_type_e *type)
{
SM_ARG_CHECK(stream_info);
SM_ARG_CHECK(device_id);
+ SM_ARG_CHECK(type);
*device_id = stream_info->echo_cancel_reference_device;
+ *type = stream_info->echo_cancel_type;
- LOGI("stream_info[%p, %s] reference device_id[%d]",
- stream_info, stream_info->stream_type, *device_id);
+ LOGI("stream_info[%p, %s] reference device_id[%d], type[%d]",
+ stream_info, stream_info->stream_type, *device_id, *type);
return SOUND_MANAGER_ERROR_NONE;
}
-int _set_noise_suppression(sound_stream_info_s *stream_info, bool enable)
+int _set_noise_suppression(sound_stream_info_s *stream_info, bool enable, sound_noise_suppression_type_e type)
{
SM_ARG_CHECK(stream_info);
return SOUND_MANAGER_ERROR_POLICY;
}
- stream_info->noise_suppression = enable;
+ stream_info->noise_suppression_enable = enable;
+ stream_info->noise_suppression_type = type;
- LOGI("stream_info[%p, %s] noise_suppression[%d]",
- stream_info, stream_info->stream_type, stream_info->noise_suppression);
+ LOGI("stream_info[%p, %s] noise_suppression[%d], type[%d]",
+ stream_info, stream_info->stream_type, stream_info->noise_suppression_enable, stream_info->noise_suppression_type);
return SOUND_MANAGER_ERROR_NONE;
}
-int _get_noise_suppression(sound_stream_info_s *stream_info, bool *enabled)
+int _get_noise_suppression(sound_stream_info_s *stream_info, bool *enabled, sound_noise_suppression_type_e *type)
{
SM_ARG_CHECK(stream_info);
SM_ARG_CHECK(enabled);
+ SM_ARG_CHECK(type);
- *enabled = stream_info->noise_suppression;
+ *enabled = stream_info->noise_suppression_enable;
+ *type = stream_info->noise_suppression_type;
- LOGI("stream_info[%p, %s] noise_suppression[%d]",
- stream_info, stream_info->stream_type, *enabled);
+ LOGI("stream_info[%p, %s] noise_suppression[%d], type[%d]",
+ stream_info, stream_info->stream_type, *enabled, *type);
return SOUND_MANAGER_ERROR_NONE;
}