static tts_setting_pitch_changed_cb g_pitch_changed_cb;
static void* g_pitch_changed_user_data;
+static tts_setting_background_volume_ratio_changed_cb g_bg_volume_ratio_changed_cb;
+static void* g_bg_volume_ratio_changed_user_data;
const char* tts_tag()
void __setting_config_engine_changed_cb(const char* engine_id, const char* setting, const char* language, int voice_type, bool auto_voice, bool need_credential, void* user_data)
{
- SLOG(LOG_DEBUG, TAG_TTSC, "Engine chagned : engine(%s) setting(%s) lang(%s) type(%d)",
+ SLOG(LOG_DEBUG, TAG_TTSC, "Engine changed : engine(%s) setting(%s) lang(%s) type(%d)",
engine_id, setting, language, voice_type);
if (NULL != g_engine_changed_cb)
g_pitch_changed_cb(value, g_pitch_changed_user_data);
}
+void __setting_config_bg_volume_ratio_changed_cb(double value, void* user_data)
+{
+ SLOG(LOG_DEBUG, TAG_TTSC, "Rratio : %lf", value);
+
+ if (NULL != g_bg_volume_ratio_changed_cb)
+ g_bg_volume_ratio_changed_cb(value, g_bg_volume_ratio_changed_user_data);
+}
+
int tts_setting_initialize()
{
SLOG(LOG_DEBUG, TAG_TTSC, "@@@ Initialize TTS Setting");
return __setting_convert_config_error_code(ret);
}
- ret = tts_config_mgr_set_callback(getpid(), __setting_config_engine_changed_cb, __setting_config_voice_changed_cb,
- __setting_config_speech_rate_changed_cb, __setting_config_pitch_changed_cb, NULL);
+ ret = tts_config_mgr_set_callback(getpid(), __setting_config_engine_changed_cb, __setting_config_voice_changed_cb,
+ __setting_config_speech_rate_changed_cb, __setting_config_pitch_changed_cb, __setting_config_bg_volume_ratio_changed_cb, NULL);
if (0 != ret) {
SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Fail to set config changed : %d", ret);
return __setting_convert_config_error_code(ret);
return __setting_convert_config_error_code(ret);
}
+int tts_setting_get_background_volume_ratio(double *ratio)
+{
+ SLOG(LOG_DEBUG, TAG_TTSC, "@@@ Get background ratio");
+
+ if (TTS_SETTING_STATE_NONE == g_state) {
+ SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Not initialized");
+ return TTS_SETTING_ERROR_INVALID_STATE;
+ }
+
+ if (NULL == ratio) {
+ SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Param is NULL");
+ return TTS_SETTING_ERROR_INVALID_PARAMETER;
+ }
+
+ double temp;
+ temp = 0;
+
+ int ret = tts_config_mgr_get_bg_volume_ratio(&temp);
+ if (0 != ret) {
+ SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Result : %d", ret);
+ } else {
+ /* Copy value */
+ *ratio = temp;
+ SECURE_SLOG(LOG_DEBUG, TAG_TTSC, "[SUCCESS] Get bg volume duration : %lf", *ratio);
+ }
+
+ SLOG(LOG_DEBUG, TAG_TTSC, "@@@");
+
+ return __setting_convert_config_error_code(ret);
+}
+
+int tts_setting_set_background_volume_ratio(double ratio)
+{
+ SLOG(LOG_DEBUG, TAG_TTSC, "@@@ Set bg volume duration");
+
+ if (TTS_SETTING_STATE_NONE == g_state) {
+ SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Not initialized");
+ return TTS_SETTING_ERROR_INVALID_STATE;
+ }
+
+ if (0.0 > ratio || ratio > 1.0) {
+ SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Invalid bg volume ratio(%lf)", ratio);
+ return TTS_SETTING_ERROR_INVALID_PARAMETER;
+ }
+
+ int ret = tts_config_mgr_set_bg_volume_ratio(ratio);
+ if (0 != ret) {
+ SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Result : %d", ret);
+ } else {
+ SECURE_SLOG(LOG_DEBUG, TAG_TTSC, "[SUCCESS] Set bg volume ratio : %lf", ratio);
+ }
+
+ SLOG(LOG_DEBUG, TAG_TTSC, "@@@");
+
+ return __setting_convert_config_error_code(ret);
+}
+
int tts_setting_get_pitch(int* pitch)
{
SLOG(LOG_DEBUG, TAG_TTSC, "@@@ Get default pitch");
return TTS_SETTING_ERROR_NONE;
}
+
+
+int tts_setting_set_background_volume_ratio_changed_cb(tts_setting_background_volume_ratio_changed_cb callback, void* user_data)
+{
+ if (NULL == callback) {
+ SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Input param is NULL");
+ return TTS_SETTING_ERROR_INVALID_PARAMETER;
+ }
+
+ g_bg_volume_ratio_changed_cb = callback;
+ g_bg_volume_ratio_changed_user_data = user_data;
+
+ return TTS_SETTING_ERROR_NONE;
+}
+
+int tts_setting_unset_background_volume_ratio_changed_cb()
+{
+ g_bg_volume_ratio_changed_cb = NULL;
+ g_bg_volume_ratio_changed_user_data = NULL;
+
+ return TTS_SETTING_ERROR_NONE;
+}