/* Static variables */
static volatile bool g_is_thread_canceled = false;
-static bool g_is_screen_reader_on = false;
-
static char* g_engine_name = NULL;
static int g_engine_update_status = 0;
return callback(tts_client_get_handle(client), language, type, data);
}
-static int __update_screen_reader_state()
+static bool __is_screen_reader_turned_on()
{
SLOG(LOG_DEBUG, TAG_TTSC, "[DEBUG] Update screen reader state");
int 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_OPERATION_FAILED;
+ return false;
}
SLOG(LOG_INFO, TAG_TTSC, "[INFO] Current screen reader status(%d)", screen_reader);
- g_is_screen_reader_on = (bool)screen_reader;
-
- return TTS_ERROR_NONE;
+ return (bool)screen_reader;
}
-//LCOV_EXCL_START
-static void __screen_reader_state_changed_cb(bool value)
-{
- g_is_screen_reader_on = value;
-}
-//LCOV_EXCL_STOP
-
static inline bool __handle_dbus_request_result(tts_client_s* client, tts_error_e ret, bool* is_prepared)
{
if (TTS_ERROR_NONE == ret) {
return TTS_ERROR_INVALID_PARAMETER;
}
- int uid = tts_client_get_uid(client);
tts_client_set_mode(client, mode);
- if (TTS_MODE_SCREEN_READER == mode) {
- if (0 != __update_screen_reader_state()) {
- SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Fail to get screen reader state");
- return TTS_ERROR_OPERATION_FAILED;
- }
- tts_config_set_screen_reader_callback(uid, __screen_reader_state_changed_cb);
- } else {
- tts_config_unset_screen_reader_callback(uid);
- }
return TTS_ERROR_NONE;
}
}
tts_mode_e mode = tts_client_get_mode(client);
- if (false == g_is_screen_reader_on && TTS_MODE_SCREEN_READER == mode) {
- /* check screen reader option one more time */
- int ret = __update_screen_reader_state();
- if (0 != ret) {
- SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Fail to get screen reader vconf(%d)", ret);
- return false;
- }
-
- if (false == g_is_screen_reader_on) {
- SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Screen reader option is NOT available.");
- return false;
- }
+ if (false == __is_screen_reader_turned_on() && TTS_MODE_SCREEN_READER == mode) {
+ return false;
}
return true;
client->hello_timer = NULL;
}
- __update_screen_reader_state();
+ bool is_screen_reader_on = __is_screen_reader_turned_on();
tts_mode_e mode = tts_client_get_mode(client);
- SLOG(LOG_INFO, TAG_TTSC, "[INFO] screen_reader(%s), mode(%d)", (true == g_is_screen_reader_on) ? "True" : "False", mode);
+ SLOG(LOG_INFO, TAG_TTSC, "[INFO] screen_reader(%s), mode(%d)", (true == is_screen_reader_on) ? "True" : "False", mode);
int ret = -1;
- if (false == g_is_screen_reader_on && TTS_MODE_SCREEN_READER == mode) {
- SLOG(LOG_WARN, TAG_TTSC, "[WARNING] Do not request finalize : is_screen_reader(%d) mode(%d)", g_is_screen_reader_on, mode);
+ if (false == is_screen_reader_on && TTS_MODE_SCREEN_READER == mode) {
+ SLOG(LOG_WARN, TAG_TTSC, "[WARNING] Do not request finalize : is_screen_reader(%d) mode(%d)", is_screen_reader_on, mode);
ret = tts_ipc_stop_listening(uid);
if (0 != ret) {