static Eina_Bool __tts_notify_state_changed(void *data);
static Eina_Bool __tts_notify_error(void *data);
int __tts_cb_error(int uid, tts_error_e reason, int utt_id, char* err_msg);
-
+int __tts_recheck_screen_reader();
const char* tts_tag()
{
int ret = -1;
int count = 0;
- int screen_reader = -1;
/* check state */
switch (client->current_state) {
case TTS_STATE_PAUSED:
case TTS_STATE_PLAYING:
case TTS_STATE_READY:
- ret = vconf_get_bool(TTS_ACCESSIBILITY_KEY, &screen_reader);
+ ret = __tts_recheck_screen_reader();
if (0 != ret) {
- SLOG(LOG_ERROR, tts_tag(), "[ERROR] Fail to get screen reader");
- } else {
- SLOG(LOG_INFO, tts_tag(), "[INFO] Success to get screen reader(%d), g_screen_reader(%s), client->mode(%d)", screen_reader, (true == g_screen_reader) ? "True" : "False", client->mode);
- g_screen_reader = (bool)screen_reader;
+ SLOG(LOG_ERROR, tts_tag(), "[ERROR] Fail to get screen reader(%d)", ret);
}
+
+ SLOG(LOG_INFO, tts_tag(), "[INFO] g_screen_reader(%s), client->mode(%d)", (true == g_screen_reader) ? "True" : "False", client->mode);
+
if (!(false == g_screen_reader && TTS_MODE_SCREEN_READER == client->mode)) {
do {
ret = tts_dbus_request_finalize(client->uid);
if (TTS_MODE_SCREEN_READER == mode) {
int ret;
- int screen_reader;
- ret = vconf_get_bool(TTS_ACCESSIBILITY_KEY, &screen_reader);
+ ret = __tts_recheck_screen_reader();
if (0 != ret) {
- SLOG(LOG_ERROR, tts_tag(), "[Config ERROR] Fail to get screen reader");
+ SLOG(LOG_ERROR, tts_tag(), "[Config ERROR] Fail to get screen reader(%d)", ret);
return TTS_ERROR_OPERATION_FAILED;
}
- g_screen_reader = (bool)screen_reader;
tts_config_set_screen_reader_callback(client->uid, __tts_screen_reader_changed_cb);
} else {
tts_config_unset_screen_reader_callback(client->uid);
int ret = -1;
int count = 0;
- int screen_reader = -1;
- ret = vconf_get_bool(TTS_ACCESSIBILITY_KEY, &screen_reader);
+ ret = __tts_recheck_screen_reader();
if (0 != ret) {
- SLOG(LOG_ERROR, tts_tag(), "[ERROR] Fail to get screen reader");
- } else {
- SLOG(LOG_INFO, tts_tag(), "[INFO] Success to get screen reader(%d), g_screen_reader(%s), client->mode(%d)", screen_reader, (true == g_screen_reader) ? "True" : "False", client->mode);
- g_screen_reader = (bool)screen_reader;
+ SLOG(LOG_ERROR, tts_tag(), "[ERROR] Fail to get screen reader(%d)", ret);
}
+ SLOG(LOG_INFO, tts_tag(), "[INFO] g_screen_reader(%s), client->mode(%d)", (true == g_screen_reader) ? "True" : "False", client->mode);
+
bool is_prepared = false;
if (!(false == g_screen_reader && TTS_MODE_SCREEN_READER == client->mode)) {
do {
return TTS_ERROR_NONE;
}
+int __tts_recheck_screen_reader()
+{
+ SLOG(LOG_DEBUG, TAG_TTSC, "[DEBUG] Check screen reader again");
+
+ int ret = -1;
+ int screen_reader = 0;
+
+ ret = vconf_get_bool(TTS_ACCESSIBILITY_KEY, &screen_reader);
+ if (0 != ret) {
+ SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Fail to get screen reader vconf(%d)", ret);
+ return TTS_ERROR_INVALID_STATE;
+ } else {
+ SLOG(LOG_INFO, TAG_TTSC, "[INFO] Current screen reader status(%d)", screen_reader);
+ g_screen_reader = (bool)screen_reader;
+ }
+
+ return TTS_ERROR_NONE;
+}
+
int tts_add_text(tts_h tts, const char* text, const char* language, int voice_type, int speed, int* utt_id)
{
SLOG(LOG_ERROR, TAG_TTSC, "[INFO] Add text: text(%s), language(%s), type(%d)", (NULL == text) ? "NULL" : text, (NULL == language) ? "NULL" : language, voice_type);
SLOG(LOG_DEBUG, TAG_TTSC, "@@@ Add text");
+ int ret = -1;
+
if (NULL == tts || NULL == utt_id) {
SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Input parameter is null");
SLOG(LOG_DEBUG, TAG_TTSC, "@@@");
}
if (false == g_screen_reader && TTS_MODE_SCREEN_READER == client->mode) {
- SLOG(LOG_WARN, TAG_TTSC, "[WARNING] Screen reader option is NOT available. Ignore this request");
- return TTS_ERROR_INVALID_STATE;
+ /* check screen reader option one more time */
+ ret = __tts_recheck_screen_reader();
+ if (0 != ret) {
+ SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Fail to get screen reader vconf(%d)", ret);
+ return TTS_ERROR_INVALID_STATE;
+ } else {
+ if (false == g_screen_reader) {
+ SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Screen reader option is NOT available.");
+ return TTS_ERROR_INVALID_STATE;
+ }
+ }
}
if (true == client->credential_needed && NULL == client->credential) {
}
/* do request */
- int ret = -1;
+ ret = -1;
int count = 0;
bool is_prepared = false;
while (0 != ret) {
}
if (false == g_screen_reader && TTS_MODE_SCREEN_READER == client->mode) {
- SLOG(LOG_WARN, TAG_TTSC, "[WARNING] Screen reader option is NOT available. Ignore this request");
- return TTS_ERROR_INVALID_STATE;
+ /* check screen reader vconf one more time */
+ int ret = -1;
+ ret = __tts_recheck_screen_reader();
+ if (0 != ret) {
+ SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Fail to get screen reader vconf(%d)", ret);
+ return TTS_ERROR_INVALID_STATE;
+ } else {
+ if (false == g_screen_reader) {
+ SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Screen reader option is NOT available.");
+ return TTS_ERROR_INVALID_STATE;
+ }
+ }
}
if (true == client->credential_needed && NULL == client->credential) {
SLOG(LOG_INFO, TAG_TTSC, "@@@ Play tts");
+ int ret = -1;
+
if (NULL == tts) {
SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Input handle is null.");
SLOG(LOG_DEBUG, TAG_TTSC, "@@@");
}
if (false == g_screen_reader && TTS_MODE_SCREEN_READER == client->mode) {
- SLOG(LOG_WARN, TAG_TTSC, "[WARNING] Screen reader option is NOT available. Ignore this request");
- return TTS_ERROR_INVALID_STATE;
+ /* check screen reader option one more time */
+ ret = __tts_recheck_screen_reader();
+ if (0 != ret) {
+ SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Fail to get screen reader vconf(%d)", ret);
+ return TTS_ERROR_INVALID_STATE;
+ } else {
+ if (false == g_screen_reader) {
+ SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Screen reader option is NOT available.");
+ return TTS_ERROR_INVALID_STATE;
+ }
+ }
}
if (true == client->credential_needed && NULL == client->credential) {
return TTS_ERROR_PERMISSION_DENIED;
}
- int ret = -1;
+ ret = -1;
int count = 0;
bool is_prepared = false;
while (0 != ret) {
}
if (false == g_screen_reader && TTS_MODE_SCREEN_READER == client->mode) {
- SLOG(LOG_WARN, TAG_TTSC, "[WARNING] Screen reader option is NOT available. Ignore this request");
- return TTS_ERROR_INVALID_STATE;
+ /* check screen reader option one more time */
+ int ret = __tts_recheck_screen_reader();
+ if (0 != ret) {
+ SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Fail to get screen reader vconf(%d)", ret);
+ return TTS_ERROR_INVALID_STATE;
+ } else {
+ if (false == g_screen_reader) {
+ SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Screen reader option is NOT available.");
+ return TTS_ERROR_INVALID_STATE;
+ }
+ }
}
ecore_main_loop_thread_safe_call_async(__tts_stop_async, (void*)tts);
SLOG(LOG_INFO, TAG_TTSC, "@@@ Stop tts");
+ int ret = -1;
+
if (NULL == tts) {
SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Input handle is null");
SLOG(LOG_DEBUG, TAG_TTSC, "@@@");
}
if (false == g_screen_reader && TTS_MODE_SCREEN_READER == client->mode) {
- SLOG(LOG_WARN, TAG_TTSC, "[WARNING] Screen reader option is NOT available. Ignore this request");
- return TTS_ERROR_INVALID_STATE;
+ /* check screen reader option one more time */
+ ret = __tts_recheck_screen_reader();
+ if (0 != ret) {
+ SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Fail to get screen reader vconf(%d)", ret);
+ return TTS_ERROR_INVALID_STATE;
+ } else {
+ if (false == g_screen_reader) {
+ SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Screen reader option is NOT available.");
+ return TTS_ERROR_INVALID_STATE;
+ }
+ }
}
- int ret = -1;
+ ret = -1;
int count = 0;
bool is_prepared = false;
while (0 != ret) {
}
if (false == g_screen_reader && TTS_MODE_SCREEN_READER == client->mode) {
- SLOG(LOG_WARN, TAG_TTSC, "[WARNING] Screen reader option is NOT available. Ignore this request");
- return TTS_ERROR_INVALID_STATE;
+ /* check screen reader option one more time */
+ int ret = __tts_recheck_screen_reader();
+ if (0 != ret) {
+ SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Fail to get screen reader vconf(%d)", ret);
+ return TTS_ERROR_INVALID_STATE;
+ } else {
+ if (false == g_screen_reader) {
+ SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Screen reader option is NOT available.");
+ return TTS_ERROR_INVALID_STATE;
+ }
+ }
}
ecore_main_loop_thread_safe_call_async(__tts_pause_async, (void*)tts);
SLOG(LOG_INFO, TAG_TTSC, "@@@ Pause tts");
+ int ret = -1;
+
if (NULL == tts) {
SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Input handle is null");
SLOG(LOG_DEBUG, TAG_TTSC, "@@@");
}
if (false == g_screen_reader && TTS_MODE_SCREEN_READER == client->mode) {
- SLOG(LOG_WARN, TAG_TTSC, "[WARNING] Screen reader option is NOT available. Ignore this request");
- return TTS_ERROR_INVALID_STATE;
+ ret = __tts_recheck_screen_reader();
+ if (0 != ret) {
+ SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Fail to get screen reader vconf(%d)", ret);
+ return TTS_ERROR_INVALID_STATE;
+ } else {
+ if (false == g_screen_reader) {
+ SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Screen reader option is NOT available.");
+ return TTS_ERROR_INVALID_STATE;
+ }
+ }
}
- int ret = -1;
+ ret = -1;
int count = 0;
bool is_prepared = false;
while (0 != ret) {
SLOG(LOG_INFO, TAG_TTSC, "@@@ Add pcm tts");
+ int ret = -1;
+
if (NULL == tts) {
SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Input handle is null.");
SLOG(LOG_DEBUG, TAG_TTSC, "@@@");
}
if (false == g_screen_reader && TTS_MODE_SCREEN_READER == client->mode) {
- SLOG(LOG_WARN, TAG_TTSC, "[WARNING] Screen reader option is NOT available. Ignore this request");
- return TTS_ERROR_INVALID_STATE;
+ ret = __tts_recheck_screen_reader();
+ if (0 != ret) {
+ SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Fail to get screen reader vconf(%d)", ret);
+ return TTS_ERROR_INVALID_STATE;
+ } else {
+ if (false == g_screen_reader) {
+ SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Screen reader option is NOT available.");
+ return TTS_ERROR_INVALID_STATE;
+ }
+ }
}
- int ret = -1;
+ ret = -1;
int count = 0;
bool is_prepared = false;
while (0 != ret) {
SLOG(LOG_INFO, TAG_TTSC, "@@@ Play pcm tts");
+ int ret = -1;
+
if (NULL == tts) {
SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Input handle is null.");
SLOG(LOG_DEBUG, TAG_TTSC, "@@@");
}
if (false == g_screen_reader && TTS_MODE_SCREEN_READER == client->mode) {
- SLOG(LOG_WARN, TAG_TTSC, "[WARNING] Screen reader option is NOT available. Ignore this request");
- return TTS_ERROR_INVALID_STATE;
+ ret = __tts_recheck_screen_reader();
+ if (0 != ret) {
+ SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Fail to get screen reader vconf(%d)", ret);
+ return TTS_ERROR_INVALID_STATE;
+ } else {
+ if (false == g_screen_reader) {
+ SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Screen reader option is NOT available.");
+ return TTS_ERROR_INVALID_STATE;
+ }
+ }
}
- int ret = -1;
+ ret = -1;
int count = 0;
bool is_prepared = false;
while (0 != ret) {
SLOG(LOG_INFO, TAG_TTSC, "@@@ Stop pcm tts");
+ int ret = -1;
+
if (NULL == tts) {
SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Input handle is null.");
SLOG(LOG_DEBUG, TAG_TTSC, "@@@");
}
if (false == g_screen_reader && TTS_MODE_SCREEN_READER == client->mode) {
- SLOG(LOG_WARN, TAG_TTSC, "[WARNING] Screen reader option is NOT available. Ignore this request");
- return TTS_ERROR_INVALID_STATE;
+ ret = __tts_recheck_screen_reader();
+ if (0 != ret) {
+ SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Fail to get screen reader vconf(%d)", ret);
+ return TTS_ERROR_INVALID_STATE;
+ } else {
+ if (false == g_screen_reader) {
+ SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Screen reader option is NOT available.");
+ return TTS_ERROR_INVALID_STATE;
+ }
+ }
}
- int ret = -1;
+ ret = -1;
int count = 0;
bool is_prepared = false;
while (0 != ret) {