/*
-* Copyright (c) 2011-2014 Samsung Electronics Co., Ltd All Rights Reserved
+* Copyright (c) 2011-2016 Samsung Electronics Co., Ltd All Rights Reserved
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
/* Default language is STT_BASE_LANGUAGE */
if (0 == strcmp(STT_BASE_LANGUAGE, engine_lang)) {
*language = strdup(engine_lang);
- SLOG(LOG_DEBUG, stt_tag(), "Selected language : %s", *language);
+ SLOG(LOG_DEBUG, stt_tag(), "Selected language : %s", (NULL == *language) ? "NULL" : *language);
return 0;
}
}
/* Not support STT_BASE_LANGUAGE */
if (NULL != engine_lang) {
*language = strdup(engine_lang);
- SLOG(LOG_DEBUG, stt_tag(), "Selected language : %s", *language);
+ SLOG(LOG_DEBUG, stt_tag(), "Selected language : %s", (NULL == *language) ? "NULL" : *language);
return 0;
}
}
char* lang = NULL;
int auto_lang = -1;
int silence = -1;
+ int credential = -1;
GSList *iter = NULL;
stt_config_client_s* temp_client = NULL;
- if (0 != stt_parser_find_config_changed(&engine, &setting, &auto_lang, &lang, &silence))
+ if (0 != stt_parser_find_config_changed(&engine, &setting, &auto_lang, &lang, &silence, &credential))
return ECORE_CALLBACK_PASS_ON;
/* Engine changed */
if (-1 != silence) g_config_info->silence_detection = silence;
+ if (-1 != credential) g_config_info->credential = credential;
+
/* Call all callbacks of client*/
iter = g_slist_nth(g_config_client_list, 0);
if (NULL != temp_client) {
if (NULL != temp_client->engine_cb) {
temp_client->engine_cb(g_config_info->engine_id, g_config_info->setting, g_config_info->language,
- g_config_info->silence_detection, temp_client->user_data);
+ g_config_info->silence_detection, g_config_info->credential, temp_client->user_data);
}
}
strncpy(candidate_lang, value, 5);
free(value);
+ /* Check current config info */
+ if (NULL == g_config_info) {
+ SLOG(LOG_ERROR, stt_tag(), "Current config info is NULL");
+ return STT_CONFIG_ERROR_OPERATION_FAILED;
+ }
+
/* Check current language */
+ if (NULL == g_config_info->language) {
+ SLOG(LOG_ERROR, stt_tag(), "Current config language is NULL");
+ return STT_CONFIG_ERROR_OPERATION_FAILED;
+ }
+
if (0 == strncmp(g_config_info->language, candidate_lang, 5)) {
SLOG(LOG_DEBUG, stt_tag(), "[Config] Language is auto. STT language(%s) is same with display lang", g_config_info->language);
return 0;
}
if (true == __stt_config_mgr_check_lang_is_valid(g_config_info->engine_id, candidate_lang)) {
- /* stt default language change */
- if (NULL == g_config_info->language) {
- SLOG(LOG_ERROR, stt_tag(), "Current config language is NULL");
- return -1;
- }
-
char* before_lang = NULL;
if (0 != stt_parser_set_language(candidate_lang)) {
SLOG(LOG_ERROR, stt_tag(), "Fail to save default language");
iter = g_slist_next(iter);
}
- if (NULL != g_config_info->language) {
- free(g_config_info->language);
- g_config_info->language = strdup(tmp_language);
- }
+ free(g_config_info->language);
+ g_config_info->language = strdup(tmp_language);
free(tmp_language);
}
SLOG(LOG_DEBUG, stt_tag(), " Setting : %s", g_config_info->setting);
SLOG(LOG_DEBUG, stt_tag(), " language : %s", g_config_info->language);
SLOG(LOG_DEBUG, stt_tag(), " Silence detection : %s", g_config_info->silence_detection ? "on" : "off");
+ SLOG(LOG_DEBUG, stt_tag(), " Credential : %s", g_config_info->credential ? "true" : "false");
if (0 != stt_parser_set_engine(g_config_info->engine_id, g_config_info->setting, g_config_info->language,
- g_config_info->silence_detection)) {
+ g_config_info->silence_detection, g_config_info->credential)) {
SLOG(LOG_ERROR, stt_tag(), " Fail to save config");
return STT_CONFIG_ERROR_OPERATION_FAILED;
}
SLOG(LOG_DEBUG, stt_tag(), " auto language : %s", g_config_info->auto_lang ? "on" : "off");
SLOG(LOG_DEBUG, stt_tag(), " language : %s", g_config_info->language);
SLOG(LOG_DEBUG, stt_tag(), " silence detection : %s", g_config_info->silence_detection ? "on" : "off");
+ SLOG(LOG_DEBUG, stt_tag(), " credential : %s", g_config_info->credential ? "true" : "false");
SLOG(LOG_DEBUG, stt_tag(), "===================");
if (0 != __stt_config_mgr_register_config_event()) {
return STT_CONFIG_ERROR_OPERATION_FAILED;
}
- if (false == callback(engine_info->uuid, engine_info->name,
+ if (false == callback(engine_info->uuid, engine_info->name,
engine_info->setting, engine_info->support_silence_detection, user_data)) {
break;
}
lang = iter_lang->data;
SLOG(LOG_DEBUG, stt_tag(), " %s", lang);
- if (NULL != lang) {
+ if (NULL != lang && NULL != g_config_info->language) {
if (0 == strcmp(lang, g_config_info->language)) {
/* language is valid */
is_valid_lang = true;
- if (NULL != g_config_info->language) {
- free(g_config_info->language);
+ free(g_config_info->language);
+ g_config_info->language = strdup(lang);
- g_config_info->language = strdup(lang);
- }
break;
}
}
if (false == is_valid_lang) {
if (NULL != g_config_info->language) {
free(g_config_info->language);
+ g_config_info->language = NULL;
iter_lang = g_slist_nth(engine_info->languages, 0);
+ if (NULL == iter_lang) {
+ SLOG(LOG_ERROR, stt_tag(), "Fail to get default language");
+ break;
+ }
+
lang = iter_lang->data;
g_config_info->language = strdup(lang);
g_config_info->silence_detection = false;
}
+ if (false == engine_info->need_credential) {
+ if (true == g_config_info->credential)
+ g_config_info->credential = false;
+ }
+
is_valid_engine = true;
break;
}
SLOG(LOG_DEBUG, stt_tag(), " Setting : %s", g_config_info->setting);
SLOG(LOG_DEBUG, stt_tag(), " language : %s", g_config_info->language);
SLOG(LOG_DEBUG, stt_tag(), " Silence detection : %s", g_config_info->silence_detection ? "on" : "off");
+ SLOG(LOG_DEBUG, stt_tag(), " Credential : %s", g_config_info->credential ? "true" : "false");
if (0 != stt_parser_set_engine(g_config_info->engine_id, g_config_info->setting, g_config_info->language,
- g_config_info->silence_detection)) {
+ g_config_info->silence_detection, g_config_info->credential)) {
SLOG(LOG_ERROR, stt_tag(), " Fail to save config");
return STT_CONFIG_ERROR_OPERATION_FAILED;
}
/*Get handle data from list*/
lang = iter_lang->data;
- SLOG(LOG_DEBUG, stt_tag(), " %s", lang);
if (NULL != lang) {
+ SLOG(LOG_DEBUG, stt_tag(), " %s", lang);
if (false == callback(engine_info->uuid, lang, user_data))
break;
}
} else {
SLOG(LOG_ERROR, stt_tag(), " language is NONE");
}
- SLOG(LOG_DEBUG, stt_tag(), " silence support : %s",
+ SLOG(LOG_DEBUG, stt_tag(), " silence support : %s",
engine_info->support_silence_detection ? "true" : "false");
iter = g_slist_next(iter);
i++;
while (NULL != iter) {
data = iter->data;
- if (false == callback(data->index, data->event, data->text,
+ if (false == callback(data->index, data->event, data->text,
data->start_time, data->end_time, user_data)) {
break;
}