static int g_max_text_size = -1;
+static Ecore_Timer* g_check_state_timer = NULL;
+
+
/* for repetition */
static char* g_language = NULL;
return code;
}
+//LCOV_EXCL_START
void __tts_config_voice_changed_cb(const char* before_lang, int before_voice_type, const char* language, int voice_type, bool auto_voice, void* user_data)
{
SLOG(LOG_DEBUG, TAG_TTSC, "Voice changed : Before lang(%s) type(%d) , Current lang(%s), type(%d)",
}
return;
}
+//LCOV_EXCL_STOP
+
+void __tts_unset_all_callbacks(tts_h tts)
+{
+ SLOG(LOG_INFO, TAG_TTSC, "@@@ unset all callbacks");
+
+ tts_unset_state_changed_cb(tts);
+ tts_unset_utterance_started_cb(tts);
+ tts_unset_utterance_completed_cb(tts);
+ tts_unset_error_cb(tts);
+ tts_unset_default_voice_changed_cb(tts);
+ tts_unset_engine_changed_cb(tts);
+
+ SLOG(LOG_DEBUG, TAG_TTSC, "@@@");
+}
int tts_create(tts_h* tts)
{
return __tts_convert_config_error_code(ret);
}
- ret = tts_config_mgr_set_callback(client->uid, _tts_config_engine_changed_cb, __tts_config_voice_changed_cb, NULL, NULL, client->tts);
+ ret = tts_config_mgr_set_callback(client->uid, _tts_config_engine_changed_cb, __tts_config_voice_changed_cb, NULL, NULL, NULL, client->tts);
if (0 != ret) {
SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Fail to set config changed : %d", ret);
tts_client_destroy(*tts);
do {
ret = tts_dbus_request_finalize(client->uid);
if (0 != ret) {
+ //LCOV_EXCL_START
if (TTS_ERROR_TIMED_OUT != ret) {
SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] result : %s", __tts_get_error_code(ret));
break;
break;
}
}
+ //LCOV_EXCL_STOP
}
} while (0 != ret);
} else {
ecore_timer_del(client->conn_timer);
client->conn_timer = NULL;
}
+ /* Unset registered callbacks */
+ __tts_unset_all_callbacks(tts);
+
/* Free resources */
tts_client_destroy(tts);
break;
g_language = NULL;
}
+ /* Delete state timer before destroying handle */
+ if (NULL != g_check_state_timer) {
+ ecore_timer_del(g_check_state_timer);
+ g_check_state_timer = NULL;
+ }
+
tts = NULL;
SLOG(LOG_DEBUG, TAG_TTSC, "@@@");
return TTS_ERROR_NONE;
}
+//LCOV_EXCL_START
void __tts_screen_reader_changed_cb(bool value)
{
g_screen_reader = value;
}
+//LCOV_EXCL_STOP
int tts_set_mode(tts_h tts, tts_mode_e mode)
{
client->utt_id = -1;
ecore_timer_add(0, __tts_notify_error, (void*)client->tts);
- client->conn_timer = NULL;
+ if (client->conn_timer) {
+ ecore_timer_del(client->conn_timer);
+ client->conn_timer = NULL;
+ }
return EINA_FALSE;
} else if (TTS_ERROR_PERMISSION_DENIED == ret) {
client->utt_id = -1;
ecore_timer_add(0, __tts_notify_error, (void*)client->tts);
- client->conn_timer = NULL;
+ if (client->conn_timer) {
+ ecore_timer_del(client->conn_timer);
+ client->conn_timer = NULL;
+ }
return EINA_FALSE;
} else if (TTS_ERROR_NONE != ret) {
SLOG(LOG_ERROR, TAG_TTSC, "Supported options : credential(%s)", credential_needed ? "need" : "no need");
}
- client->conn_timer = NULL;
+ if (client->conn_timer) {
+ ecore_timer_del(client->conn_timer);
+ client->conn_timer = NULL;
+ }
client = tts_client_get(tts);
/* check handle */
}
ecore_thread_main_loop_begin();
+ if (client->conn_timer) {
+ ecore_timer_del(client->conn_timer);
+ client->conn_timer = NULL;
+ }
client->conn_timer = ecore_timer_add(0.02, __tts_connect_daemon, (void*)tts);
ecore_thread_main_loop_end();
do {
ret = tts_dbus_request_finalize(client->uid);
if (0 != ret) {
+ //LCOV_EXCL_START
if (TTS_ERROR_INVALID_PARAMETER == ret && false == is_prepared) {
client->current_state = TTS_STATE_CREATED;
if (0 == tts_prepare_sync(tts)) {
break;
}
}
+ //LCOV_EXCL_STOP
}
} while (0 != ret);
} else {
while (0 != ret) {
ret = tts_dbus_request_add_text(client->uid, text, temp, voice_type, speed, client->current_utt_id, client->credential);
if (0 != ret) {
+ //LCOV_EXCL_START
if (TTS_ERROR_INVALID_PARAMETER == ret && false == is_prepared) {
client->current_state = TTS_STATE_CREATED;
if (0 == tts_prepare_sync(tts)) {
break;
}
}
+ //LCOV_EXCL_STOP
} else {
*utt_id = client->current_utt_id;
}
while (0 != ret) {
ret = tts_dbus_request_play(client->uid, client->credential);
if (0 != ret) {
+ //LCOV_EXCL_START
if (TTS_ERROR_INVALID_PARAMETER == ret && false == is_prepared) {
client->current_state = TTS_STATE_CREATED;
if (0 == tts_prepare_sync(tts)) {
return ret;
}
}
+ //LCOV_EXCL_STOP
}
}
while (0 != ret) {
ret = tts_dbus_request_stop(client->uid);
if (0 != ret) {
+ //LCOV_EXCL_START
if (TTS_ERROR_INVALID_PARAMETER == ret && false == is_prepared) {
client->current_state = TTS_STATE_CREATED;
if (0 == tts_prepare_sync(tts)) {
return ret;
}
}
+ //LCOV_EXCL_STOP
}
}
while (0 != ret) {
ret = tts_dbus_request_pause(client->uid);
if (0 != ret) {
+ //LCOV_EXCL_START
if (TTS_ERROR_INVALID_PARAMETER == ret && false == is_prepared) {
client->current_state = TTS_STATE_CREATED;
if (0 == tts_prepare_sync(tts)) {
return ret;
}
}
+ //LCOV_EXCL_STOP
}
}
SLOG(LOG_INFO, TAG_TTSC, "@@@ Set private data, key(%s), data(%s)", key, data);
if (NULL == tts) {
- SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Input handle isnull");
+ SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Input handle is null");
return TTS_ERROR_INVALID_PARAMETER;
}
while (0 != ret) {
ret = tts_dbus_request_set_private_data(client->uid, key, data);
if (0 != ret) {
+ //LCOV_EXCL_START
if (TTS_ERROR_INVALID_PARAMETER == ret && false == is_prepared) {
client->current_state = TTS_STATE_CREATED;
if (0 == tts_prepare_sync(tts)) {
return ret;
}
}
+ //LCOV_EXCL_STOP
}
}
while (0 != ret) {
ret = tts_dbus_request_get_private_data(client->uid, key, data);
if (0 != ret) {
+ //LCOV_EXCL_START
if (TTS_ERROR_INVALID_PARAMETER == ret && false == is_prepared) {
client->current_state = TTS_STATE_CREATED;
if (0 == tts_prepare_sync(tts)) {
return ret;
}
}
+ //LCOV_EXCL_STOP
}
}
return 0;
}
+//LCOV_EXCL_START
static Eina_Bool __tts_notify_error(void *data)
{
tts_h tts = (tts_h)data;
}
if (NULL != client->state_changed_cb) {
- ecore_timer_add(0, __tts_notify_state_changed, client->tts);
+ if (NULL != g_check_state_timer) {
+ ecore_timer_del(g_check_state_timer);
+ g_check_state_timer = NULL;
+ }
+ g_check_state_timer = ecore_timer_add(0, __tts_notify_state_changed, client->tts);
} else {
SLOG(LOG_WARN, TAG_TTSC, "[WARNING] State changed callback is null");
}
return 0;
}
+//LCOV_EXCL_STOP
int __tts_cb_utt_started(int uid, int utt_id)
{
client->state_changed_cb = NULL;
client->state_changed_user_data = NULL;
+ if (NULL != g_check_state_timer) {
+ ecore_timer_del(g_check_state_timer);
+ g_check_state_timer = NULL;
+ }
+
SLOG(LOG_DEBUG, TAG_TTSC, "[SUCCESS] Unset state changed cb");
return 0;
return TTS_ERROR_NONE;
}
+//LCOV_EXCL_STOP
int tts_repeat(tts_h tts, char** text_repeat, int* utt_id)
{
return TTS_ERROR_NONE;
}
-//LCOV_EXCL_STOP