*/
void app_tracker_null_context_switch(App_Tracker_Data *atd);
+/**
+ * @brief Resets internal read timer
+ */
+void app_tracker_reset_read_timer(App_Tracker_Data *atd);
+
#endif /* end of include guard: APP_TRACKER_H_ */
Eina_Bool navigator_get_is_text_selection_mode(NavigatorData *nd);
+void navigator_reset_read_timer(NavigatorData *nd);
+
#endif //NAVIGATOR_H_
int screen_reader_terminate_service(Service_Data *data);
+void screen_reader_set_lang_change_callback(Service_Data *service_data);
+
#endif
int vc_get_lcd_backlight_timeout(void);
int vc_get_tts_speed(void);
+typedef void(*lang_change_callback_t)(void*);
+void vc_set_lang_change_callback(lang_change_callback_t cb, void *user_data);
+
#endif /* SCREEN_READER_VCONF_H_ */
AtspiAccessible *desktop;
};
+void app_tracker_reset_read_timer(App_Tracker_Data *atd)
+{
+#ifndef SCREEN_READER_TV
+ if (atd->read_timer) {
+ DEBUG("Resetting read timer");
+ ecore_timer_del(atd->read_timer);
+ atd->read_timer = NULL;
+ }
+#endif
+}
+
#ifndef SCREEN_READER_TV
static void app_tracker_window_append(void *data, AtspiAccessible *root);
#endif
return -1;
}
+ screen_reader_set_lang_change_callback(sd);
+
sd->system_data = system_notifications_init();
navigator_set_read_quickpanel_cb(sd->navigator_data, system_status_get, sd->system_data, NULL);
if (!nd) { ERROR("NavigatorData is NULL!"); }
return nd ? nd->is_text_selection_mode : EINA_FALSE;
}
+
+void navigator_reset_read_timer(NavigatorData *nd) {
+ app_tracker_reset_read_timer(nd->app_tracker_data);
+}
tw_shutdown();
return 0;
}
+
+static void _lang_change_callback(void *user_data)
+{
+ NavigatorData *nd = (NavigatorData*)user_data;
+ if (nd)
+ navigator_reset_read_timer(nd);
+ tw_purge(EINA_TRUE);
+}
+
+void screen_reader_set_lang_change_callback(Service_Data *service_data)
+{
+ DEBUG("Setting language change callback");
+ NavigatorData *nd = service_data->navigator_data;
+ vc_set_lang_change_callback(_lang_change_callback, nd);
+
+}
bool sound_feedback;
int lcd_backlight_timeout;
int tts_speed;
+ lang_change_callback_t lang_change_cb;
+ void *lang_chang_cb_data;
} VConfData;
static VConfData *vc_get_instance(void);
//to make gettext work
char *pLocale = vconf_get_str(VCONFKEY_LANGSET);
if (pLocale) {
- tw_purge(EINA_TRUE);
+ VConfData *vconf_data = vc_get_instance();
+ if (vconf_data->lang_change_cb)
+ vconf_data->lang_change_cb(vconf_data->lang_chang_cb_data);
+
setlocale(LC_ALL, pLocale);
DEBUG("Changed Language: %s", pLocale);
free(pLocale);
{
return vc_get_instance()->tts_speed;
}
+
+void vc_set_lang_change_callback(lang_change_callback_t cb, void *user_data)
+{
+ VConfData *vconf_data = vc_get_instance();
+ vconf_data->lang_change_cb = cb;
+ vconf_data->lang_chang_cb_data = user_data;
+}