(Accessibility) Move out of p_rarch state

This commit is contained in:
twinaphex 2021-11-06 01:59:03 +01:00
parent 0af9b72388
commit a594ccd81c
4 changed files with 97 additions and 68 deletions

View File

@ -30,4 +30,13 @@
#include "config.h" #include "config.h"
#endif #endif
typedef struct
{
int ai_service_auto;
/* Is text-to-speech accessibility turned on? */
bool enabled;
} access_state_t;
access_state_t *access_state_get_ptr(void);
#endif #endif

View File

@ -396,6 +396,15 @@ static bool driver_find_next(const char *label, char *s, size_t len)
return false; return false;
} }
#ifdef HAVE_ACCESSIBILITY
static access_state_t access_state_st = {0};
access_state_t *access_state_get_ptr(void)
{
return &access_state_st;
}
#endif
#ifdef HAVE_MENU #ifdef HAVE_MENU
/** /**
* menu_iterate: * menu_iterate:
@ -421,6 +430,7 @@ static int generic_menu_iterate(
#ifdef HAVE_ACCESSIBILITY #ifdef HAVE_ACCESSIBILITY
static enum action_iterate_type static enum action_iterate_type
last_iterate_type = ITERATE_TYPE_DEFAULT; last_iterate_type = ITERATE_TYPE_DEFAULT;
access_state_t *access_st = access_state_get_ptr();
bool accessibility_enable = settings->bools.accessibility_enable; bool accessibility_enable = settings->bools.accessibility_enable;
unsigned accessibility_narrator_speech_speed = settings->uints.accessibility_narrator_speech_speed; unsigned accessibility_narrator_speech_speed = settings->uints.accessibility_narrator_speech_speed;
#endif #endif
@ -457,8 +467,8 @@ static int generic_menu_iterate(
if ( (iterate_type != last_iterate_type) if ( (iterate_type != last_iterate_type)
&& is_accessibility_enabled( && is_accessibility_enabled(
accessibility_enable, accessibility_enable,
p_rarch->accessibility_enabled)) access_st->enabled))
accessibility_speak_priority(p_rarch, accessibility_speak_priority(
accessibility_enable, accessibility_enable,
accessibility_narrator_speech_speed, accessibility_narrator_speech_speed,
menu->menu_state_msg, 10); menu->menu_state_msg, 10);
@ -572,7 +582,7 @@ static int generic_menu_iterate(
if ( (iterate_type != last_iterate_type) && if ( (iterate_type != last_iterate_type) &&
is_accessibility_enabled( is_accessibility_enabled(
accessibility_enable, accessibility_enable,
p_rarch->accessibility_enabled)) access_st->enabled))
{ {
if (string_is_equal(menu->menu_state_msg, if (string_is_equal(menu->menu_state_msg,
msg_hash_to_str( msg_hash_to_str(
@ -583,18 +593,18 @@ static int generic_menu_iterate(
menu_st, menu_st,
current_sublabel, sizeof(current_sublabel)); current_sublabel, sizeof(current_sublabel));
if (string_is_equal(current_sublabel, "")) if (string_is_equal(current_sublabel, ""))
accessibility_speak_priority(p_rarch, accessibility_speak_priority(
accessibility_enable, accessibility_enable,
accessibility_narrator_speech_speed, accessibility_narrator_speech_speed,
menu->menu_state_msg, 10); menu->menu_state_msg, 10);
else else
accessibility_speak_priority(p_rarch, accessibility_speak_priority(
accessibility_enable, accessibility_enable,
accessibility_narrator_speech_speed, accessibility_narrator_speech_speed,
current_sublabel, 10); current_sublabel, 10);
} }
else else
accessibility_speak_priority(p_rarch, accessibility_speak_priority(
accessibility_enable, accessibility_enable,
accessibility_narrator_speech_speed, accessibility_narrator_speech_speed,
menu->menu_state_msg, 10); menu->menu_state_msg, 10);
@ -744,8 +754,8 @@ static int generic_menu_iterate(
&& last_iterate_type != iterate_type && last_iterate_type != iterate_type
&& is_accessibility_enabled( && is_accessibility_enabled(
accessibility_enable, accessibility_enable,
p_rarch->accessibility_enabled)) access_st->enabled))
accessibility_speak_priority(p_rarch, accessibility_speak_priority(
accessibility_enable, accessibility_enable,
accessibility_narrator_speech_speed, accessibility_narrator_speech_speed,
"Closed dialog.", 10); "Closed dialog.", 10);
@ -807,6 +817,7 @@ int generic_menu_entry_action(
#ifdef HAVE_ACCESSIBILITY #ifdef HAVE_ACCESSIBILITY
bool accessibility_enable = settings->bools.accessibility_enable; bool accessibility_enable = settings->bools.accessibility_enable;
unsigned accessibility_narrator_speech_speed = settings->uints.accessibility_narrator_speech_speed; unsigned accessibility_narrator_speech_speed = settings->uints.accessibility_narrator_speech_speed;
access_state_t *access_st = access_state_get_ptr();
#endif #endif
switch (action) switch (action)
@ -967,7 +978,7 @@ int generic_menu_entry_action(
if ( action != 0 if ( action != 0
&& is_accessibility_enabled( && is_accessibility_enabled(
accessibility_enable, accessibility_enable,
p_rarch->accessibility_enabled) access_st->enabled)
&& !menu_input_dialog_get_display_kb()) && !menu_input_dialog_get_display_kb())
{ {
char current_label[128]; char current_label[128];
@ -1034,7 +1045,7 @@ int generic_menu_entry_action(
} }
if (!string_is_empty(speak_string)) if (!string_is_empty(speak_string))
accessibility_speak_priority(p_rarch, accessibility_speak_priority(
accessibility_enable, accessibility_enable,
accessibility_narrator_speech_speed, accessibility_narrator_speech_speed,
speak_string, 10); speak_string, 10);
@ -2649,6 +2660,7 @@ bool menu_input_dialog_start_search(void)
settings_t *settings = config_get_ptr(); settings_t *settings = config_get_ptr();
bool accessibility_enable = settings->bools.accessibility_enable; bool accessibility_enable = settings->bools.accessibility_enable;
unsigned accessibility_narrator_speech_speed = settings->uints.accessibility_narrator_speech_speed; unsigned accessibility_narrator_speech_speed = settings->uints.accessibility_narrator_speech_speed;
access_state_t *access_st = access_state_get_ptr();
#endif #endif
struct menu_state *menu_st = menu_state_get_ptr(); struct menu_state *menu_st = menu_state_get_ptr();
menu_handle_t *menu = menu_st->driver_data; menu_handle_t *menu = menu_st->driver_data;
@ -2673,8 +2685,8 @@ bool menu_input_dialog_start_search(void)
#ifdef HAVE_ACCESSIBILITY #ifdef HAVE_ACCESSIBILITY
if (is_accessibility_enabled( if (is_accessibility_enabled(
accessibility_enable, accessibility_enable,
p_rarch->accessibility_enabled)) access_st->enabled))
accessibility_speak_priority(p_rarch, accessibility_speak_priority(
accessibility_enable, accessibility_enable,
accessibility_narrator_speech_speed, accessibility_narrator_speech_speed,
(char*)msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SEARCH), 10); (char*)msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SEARCH), 10);
@ -2698,6 +2710,7 @@ bool menu_input_dialog_start(menu_input_ctx_line_t *line)
settings_t *settings = config_get_ptr(); settings_t *settings = config_get_ptr();
bool accessibility_enable = settings->bools.accessibility_enable; bool accessibility_enable = settings->bools.accessibility_enable;
unsigned accessibility_narrator_speech_speed = settings->uints.accessibility_narrator_speech_speed; unsigned accessibility_narrator_speech_speed = settings->uints.accessibility_narrator_speech_speed;
access_state_t *access_st = access_state_get_ptr();
#endif #endif
struct menu_state *menu_st = menu_state_get_ptr(); struct menu_state *menu_st = menu_state_get_ptr();
menu_handle_t *menu = menu_st->driver_data; menu_handle_t *menu = menu_st->driver_data;
@ -2731,8 +2744,8 @@ bool menu_input_dialog_start(menu_input_ctx_line_t *line)
#ifdef HAVE_ACCESSIBILITY #ifdef HAVE_ACCESSIBILITY
if (is_accessibility_enabled( if (is_accessibility_enabled(
accessibility_enable, accessibility_enable,
p_rarch->accessibility_enabled)) access_st->enabled))
accessibility_speak_priority(p_rarch, accessibility_speak_priority(
accessibility_enable, accessibility_enable,
accessibility_narrator_speech_speed, accessibility_narrator_speech_speed,
"Keyboard input:", 10); "Keyboard input:", 10);
@ -2833,6 +2846,7 @@ static void task_auto_translate_handler(retro_task_t *task)
struct rarch_state *p_rarch = &rarch_st; struct rarch_state *p_rarch = &rarch_st;
#ifdef HAVE_ACCESSIBILITY #ifdef HAVE_ACCESSIBILITY
settings_t *settings = config_get_ptr(); settings_t *settings = config_get_ptr();
access_state_t *access_st = access_state_get_ptr();
#endif #endif
if (task_get_cancelled(task)) if (task_get_cancelled(task))
@ -2860,8 +2874,8 @@ static void task_auto_translate_handler(retro_task_t *task)
return; return;
task_finished: task_finished:
if (p_rarch->ai_service_auto == 1) if (access_st->ai_service_auto == 1)
p_rarch->ai_service_auto = 2; access_st->ai_service_auto = 2;
task_set_finished(task, true); task_set_finished(task, true);
@ -2880,12 +2894,13 @@ static void call_auto_translate_task(
bool *was_paused) bool *was_paused)
{ {
int ai_service_mode = settings->uints.ai_service_mode; int ai_service_mode = settings->uints.ai_service_mode;
access_state_t *access_st = access_state_get_ptr();
/*Image Mode*/ /*Image Mode*/
if (ai_service_mode == 0) if (ai_service_mode == 0)
{ {
if (p_rarch->ai_service_auto == 1) if (access_st->ai_service_auto == 1)
p_rarch->ai_service_auto = 2; access_st->ai_service_auto = 2;
command_event(CMD_EVENT_AI_SERVICE_CALL, was_paused); command_event(CMD_EVENT_AI_SERVICE_CALL, was_paused);
} }
@ -2948,6 +2963,7 @@ static void handle_translation_cb(
#ifdef HAVE_ACCESSIBILITY #ifdef HAVE_ACCESSIBILITY
bool accessibility_enable = settings->bools.accessibility_enable; bool accessibility_enable = settings->bools.accessibility_enable;
unsigned accessibility_narrator_speech_speed = settings->uints.accessibility_narrator_speech_speed; unsigned accessibility_narrator_speech_speed = settings->uints.accessibility_narrator_speech_speed;
access_state_t *access_st = access_state_get_ptr();
#endif #endif
#ifdef HAVE_GFX_WIDGETS #ifdef HAVE_GFX_WIDGETS
bool gfx_widgets_paused = video_st->widgets_paused; bool gfx_widgets_paused = video_st->widgets_paused;
@ -2955,12 +2971,12 @@ static void handle_translation_cb(
/* When auto mode is on, we turn off the overlay /* When auto mode is on, we turn off the overlay
* once we have the result for the next call.*/ * once we have the result for the next call.*/
if (dispwidget_get_ptr()->ai_service_overlay_state != 0 if (dispwidget_get_ptr()->ai_service_overlay_state != 0
&& p_rarch->ai_service_auto == 2) && access_st->ai_service_auto == 2)
gfx_widgets_ai_service_overlay_unload(); gfx_widgets_ai_service_overlay_unload();
#endif #endif
#ifdef DEBUG #ifdef DEBUG
if (p_rarch->ai_service_auto != 2) if (access_st->ai_service_auto != 2)
RARCH_LOG("RESULT FROM AI SERVICE...\n"); RARCH_LOG("RESULT FROM AI SERVICE...\n");
#endif #endif
@ -3060,7 +3076,7 @@ static void handle_translation_cb(
if ( !raw_image_file_data if ( !raw_image_file_data
&& !raw_sound_data && !raw_sound_data
&& !text_string && !text_string
&& (p_rarch->ai_service_auto != 2) && (access_st->ai_service_auto != 2)
&& !key_string) && !key_string)
{ {
error = "Invalid JSON body."; error = "Invalid JSON body.";
@ -3364,10 +3380,11 @@ static void handle_translation_cb(
} }
#ifdef HAVE_ACCESSIBILITY #ifdef HAVE_ACCESSIBILITY
if (text_string && is_accessibility_enabled( if ( text_string
&& is_accessibility_enabled(
accessibility_enable, accessibility_enable,
p_rarch->accessibility_enabled)) access_st->enabled))
accessibility_speak_priority(p_rarch, accessibility_speak_priority(
accessibility_enable, accessibility_enable,
accessibility_narrator_speech_speed, accessibility_narrator_speech_speed,
text_string, 10); text_string, 10);
@ -3399,7 +3416,7 @@ finish:
if (string_is_equal(auto_string, "auto")) if (string_is_equal(auto_string, "auto"))
{ {
if ( (p_rarch->ai_service_auto != 0) if ( (access_st->ai_service_auto != 0)
&& !settings->bools.ai_service_pause) && !settings->bools.ai_service_pause)
call_auto_translate_task(p_rarch, settings, &was_paused); call_auto_translate_task(p_rarch, settings, &was_paused);
} }
@ -3620,6 +3637,7 @@ static bool run_translation_service(
const enum retro_pixel_format const enum retro_pixel_format
video_driver_pix_fmt = video_st->pix_fmt; video_driver_pix_fmt = video_st->pix_fmt;
#ifdef HAVE_ACCESSIBILITY #ifdef HAVE_ACCESSIBILITY
access_state_t *access_st = access_state_get_ptr();
#ifdef HAVE_TRANSLATE #ifdef HAVE_TRANSLATE
input_driver_state_t *input_st = input_state_get_ptr(); input_driver_state_t *input_st = input_state_get_ptr();
#endif #endif
@ -3628,7 +3646,7 @@ static bool run_translation_service(
#ifdef HAVE_GFX_WIDGETS #ifdef HAVE_GFX_WIDGETS
/* For the case when ai service pause is disabled. */ /* For the case when ai service pause is disabled. */
if ( (dispwidget_get_ptr()->ai_service_overlay_state != 0) if ( (dispwidget_get_ptr()->ai_service_overlay_state != 0)
&& (p_rarch->ai_service_auto == 1)) && (access_st->ai_service_auto == 1))
{ {
gfx_widgets_ai_service_overlay_unload(); gfx_widgets_ai_service_overlay_unload();
goto finish; goto finish;
@ -3851,7 +3869,7 @@ static bool run_translation_service(
goto finish; /* ran out of memory */ goto finish; /* ran out of memory */
#ifdef DEBUG #ifdef DEBUG
if (p_rarch->ai_service_auto != 2) if (access_st->ai_service_auto != 2)
RARCH_LOG("Request size: %d\n", bmp64_length); RARCH_LOG("Request size: %d\n", bmp64_length);
#endif #endif
{ {
@ -3947,7 +3965,7 @@ static bool run_translation_service(
sizeof(new_ai_service_url)); sizeof(new_ai_service_url));
} }
#ifdef DEBUG #ifdef DEBUG
if (p_rarch->ai_service_auto != 2) if (access_st->ai_service_auto != 2)
RARCH_LOG("SENDING... %s\n", new_ai_service_url); RARCH_LOG("SENDING... %s\n", new_ai_service_url);
#endif #endif
task_push_http_post_transfer(new_ai_service_url, task_push_http_post_transfer(new_ai_service_url,
@ -3980,9 +3998,10 @@ finish:
static bool is_narrator_running(struct rarch_state *p_rarch, static bool is_narrator_running(struct rarch_state *p_rarch,
bool accessibility_enable) bool accessibility_enable)
{ {
access_state_t *access_st = access_state_get_ptr();
if (is_accessibility_enabled( if (is_accessibility_enabled(
accessibility_enable, accessibility_enable,
p_rarch->accessibility_enabled)) access_st->enabled))
{ {
frontend_ctx_driver_t *frontend = frontend_ctx_driver_t *frontend =
frontend_state_get_ptr()->current_frontend_ctx; frontend_state_get_ptr()->current_frontend_ctx;
@ -4671,11 +4690,12 @@ bool command_event(enum event_command cmd, void *data)
{ {
#ifdef HAVE_ACCESSIBILITY #ifdef HAVE_ACCESSIBILITY
bool accessibility_enable = settings->bools.accessibility_enable; bool accessibility_enable = settings->bools.accessibility_enable;
access_state_t *access_st = access_state_get_ptr();
unsigned accessibility_narrator_speech_speed = settings->uints.accessibility_narrator_speech_speed; unsigned accessibility_narrator_speech_speed = settings->uints.accessibility_narrator_speech_speed;
if (is_accessibility_enabled( if (is_accessibility_enabled(
accessibility_enable, accessibility_enable,
p_rarch->accessibility_enabled)) access_st->enabled))
accessibility_speak_priority(p_rarch, accessibility_speak_priority(
accessibility_enable, accessibility_enable,
accessibility_narrator_speech_speed, accessibility_narrator_speech_speed,
(char*)msg_hash_to_str(MSG_UNPAUSED), 10); (char*)msg_hash_to_str(MSG_UNPAUSED), 10);
@ -4693,11 +4713,12 @@ bool command_event(enum event_command cmd, void *data)
* Also, this mode is required for "auto" translation * Also, this mode is required for "auto" translation
* packages, since you don't want to pause for that. * packages, since you don't want to pause for that.
*/ */
if (p_rarch->ai_service_auto == 2) access_state_t *access_st = access_state_get_ptr();
if (access_st->ai_service_auto == 2)
{ {
/* Auto mode was turned on, but we pressed the /* Auto mode was turned on, but we pressed the
* toggle button, so turn it off now. */ * toggle button, so turn it off now. */
p_rarch->ai_service_auto = 0; access_st->ai_service_auto = 0;
#ifdef HAVE_MENU_WIDGETS #ifdef HAVE_MENU_WIDGETS
gfx_widgets_ai_service_overlay_unload(); gfx_widgets_ai_service_overlay_unload();
#endif #endif
@ -5690,6 +5711,7 @@ bool command_event(enum event_command cmd, void *data)
{ {
#ifdef HAVE_ACCESSIBILITY #ifdef HAVE_ACCESSIBILITY
bool accessibility_enable = settings->bools.accessibility_enable; bool accessibility_enable = settings->bools.accessibility_enable;
access_state_t *access_st = access_state_get_ptr();
unsigned accessibility_narrator_speech_speed = settings->uints.accessibility_narrator_speech_speed; unsigned accessibility_narrator_speech_speed = settings->uints.accessibility_narrator_speech_speed;
#endif #endif
boolean = runloop_st->paused; boolean = runloop_st->paused;
@ -5698,15 +5720,15 @@ bool command_event(enum event_command cmd, void *data)
#ifdef HAVE_ACCESSIBILITY #ifdef HAVE_ACCESSIBILITY
if (is_accessibility_enabled( if (is_accessibility_enabled(
accessibility_enable, accessibility_enable,
p_rarch->accessibility_enabled)) access_st->enabled))
{ {
if (boolean) if (boolean)
accessibility_speak_priority(p_rarch, accessibility_speak_priority(
accessibility_enable, accessibility_enable,
accessibility_narrator_speech_speed, accessibility_narrator_speech_speed,
(char*)msg_hash_to_str(MSG_PAUSED), 10); (char*)msg_hash_to_str(MSG_PAUSED), 10);
else else
accessibility_speak_priority(p_rarch, accessibility_speak_priority(
accessibility_enable, accessibility_enable,
accessibility_narrator_speech_speed, accessibility_narrator_speech_speed,
(char*)msg_hash_to_str(MSG_UNPAUSED), 10); (char*)msg_hash_to_str(MSG_UNPAUSED), 10);
@ -6407,6 +6429,7 @@ bool command_event(enum event_command cmd, void *data)
{ {
#ifdef HAVE_TRANSLATE #ifdef HAVE_TRANSLATE
#ifdef HAVE_ACCESSIBILITY #ifdef HAVE_ACCESSIBILITY
access_state_t *access_st = access_state_get_ptr();
bool accessibility_enable = settings->bools.accessibility_enable; bool accessibility_enable = settings->bools.accessibility_enable;
unsigned accessibility_narrator_speech_speed = settings->uints.accessibility_narrator_speech_speed; unsigned accessibility_narrator_speech_speed = settings->uints.accessibility_narrator_speech_speed;
#endif #endif
@ -6420,8 +6443,8 @@ bool command_event(enum event_command cmd, void *data)
#ifdef HAVE_ACCESSIBILITY #ifdef HAVE_ACCESSIBILITY
if (is_accessibility_enabled( if (is_accessibility_enabled(
accessibility_enable, accessibility_enable,
p_rarch->accessibility_enabled)) access_st->enabled))
accessibility_speak_priority(p_rarch, accessibility_speak_priority(
accessibility_enable, accessibility_enable,
accessibility_narrator_speech_speed, accessibility_narrator_speech_speed,
"stopped.", 10); "stopped.", 10);
@ -6432,10 +6455,10 @@ bool command_event(enum event_command cmd, void *data)
#ifdef HAVE_ACCESSIBILITY #ifdef HAVE_ACCESSIBILITY
if (is_accessibility_enabled( if (is_accessibility_enabled(
accessibility_enable, accessibility_enable,
p_rarch->accessibility_enabled) && access_st->enabled)
ai_service_mode == 2 && && ai_service_mode == 2
is_narrator_running(p_rarch, accessibility_enable)) && is_narrator_running(p_rarch, accessibility_enable))
accessibility_speak_priority(p_rarch, accessibility_speak_priority(
accessibility_enable, accessibility_enable,
accessibility_narrator_speech_speed, accessibility_narrator_speech_speed,
"stopped.", 10); "stopped.", 10);
@ -6446,9 +6469,9 @@ bool command_event(enum event_command cmd, void *data)
if (data) if (data)
paused = *((bool*)data); paused = *((bool*)data);
if ( p_rarch->ai_service_auto == 0 if ( access_st->ai_service_auto == 0
&& !settings->bools.ai_service_pause) && !settings->bools.ai_service_pause)
p_rarch->ai_service_auto = 1; access_st->ai_service_auto = 1;
run_translation_service(settings, run_translation_service(settings,
p_rarch, paused); p_rarch, paused);
@ -11820,6 +11843,7 @@ void input_keyboard_event(bool down, unsigned code,
*input_st = input_state_get_ptr(); *input_st = input_state_get_ptr();
#ifdef HAVE_ACCESSIBILITY #ifdef HAVE_ACCESSIBILITY
struct rarch_state *p_rarch = &rarch_st; struct rarch_state *p_rarch = &rarch_st;
access_state_t *access_st = access_state_get_ptr();
settings_t *settings = config_get_ptr(); settings_t *settings = config_get_ptr();
bool accessibility_enable = settings->bools.accessibility_enable; bool accessibility_enable = settings->bools.accessibility_enable;
unsigned accessibility_narrator_speech_speed = settings->uints.accessibility_narrator_speech_speed; unsigned accessibility_narrator_speech_speed = settings->uints.accessibility_narrator_speech_speed;
@ -11880,7 +11904,7 @@ void input_keyboard_event(bool down, unsigned code,
if (menu_input_dialog_get_display_kb() if (menu_input_dialog_get_display_kb()
&& down && is_accessibility_enabled( && down && is_accessibility_enabled(
accessibility_enable, accessibility_enable,
p_rarch->accessibility_enabled)) access_st->enabled))
{ {
if (code != 303 && code != 0) if (code != 303 && code != 0)
{ {
@ -11893,7 +11917,7 @@ void input_keyboard_event(bool down, unsigned code,
say_char[1] = '\0'; say_char[1] = '\0';
if (character == 127 || character == 8) if (character == 127 || character == 8)
accessibility_speak_priority(p_rarch, accessibility_speak_priority(
accessibility_enable, accessibility_enable,
accessibility_narrator_speech_speed, accessibility_narrator_speech_speed,
"backspace", 10); "backspace", 10);
@ -11902,12 +11926,12 @@ void input_keyboard_event(bool down, unsigned code,
const char *lut_name = accessibility_lut_name(c); const char *lut_name = accessibility_lut_name(c);
if (lut_name) if (lut_name)
accessibility_speak_priority(p_rarch, accessibility_speak_priority(
accessibility_enable, accessibility_enable,
accessibility_narrator_speech_speed, accessibility_narrator_speech_speed,
lut_name, 10); lut_name, 10);
else if (character != 0) else if (character != 0)
accessibility_speak_priority(p_rarch, accessibility_speak_priority(
accessibility_enable, accessibility_enable,
accessibility_narrator_speech_speed, accessibility_narrator_speech_speed,
say_char, 10); say_char, 10);
@ -13753,6 +13777,9 @@ static bool retroarch_parse_input_and_config(
video_driver_state_t *video_st = video_state_get_ptr(); video_driver_state_t *video_st = video_state_get_ptr();
runloop_state_t *runloop_st = &runloop_state; runloop_state_t *runloop_st = &runloop_state;
settings_t *settings = config_get_ptr(); settings_t *settings = config_get_ptr();
#ifdef HAVE_ACCESSIBILITY
access_state_t *access_st = access_state_get_ptr();
#endif
const struct option opts[] = { const struct option opts[] = {
#ifdef HAVE_DYNAMIC #ifdef HAVE_DYNAMIC
@ -14372,7 +14399,7 @@ static bool retroarch_parse_input_and_config(
retroarch_fail(p_rarch, 1, "retroarch_parse_input()"); retroarch_fail(p_rarch, 1, "retroarch_parse_input()");
case RA_OPT_ACCESSIBILITY: case RA_OPT_ACCESSIBILITY:
#ifdef HAVE_ACCESSIBILITY #ifdef HAVE_ACCESSIBILITY
p_rarch->accessibility_enabled = true; access_st->enabled = true;
#endif #endif
break; break;
case RA_OPT_LOAD_MENU_ON_ERROR: case RA_OPT_LOAD_MENU_ON_ERROR:
@ -14500,6 +14527,7 @@ bool retroarch_main_init(int argc, char *argv[])
#ifdef HAVE_ACCESSIBILITY #ifdef HAVE_ACCESSIBILITY
bool accessibility_enable = false; bool accessibility_enable = false;
unsigned accessibility_narrator_speech_speed = 0; unsigned accessibility_narrator_speech_speed = 0;
access_state_t *access_st = access_state_get_ptr();
#endif #endif
#ifdef HAVE_MENU #ifdef HAVE_MENU
struct menu_state *menu_st = menu_state_get_ptr(); struct menu_state *menu_st = menu_state_get_ptr();
@ -14530,8 +14558,8 @@ bool retroarch_main_init(int argc, char *argv[])
item we're on at startup. */ item we're on at startup. */
if (is_accessibility_enabled( if (is_accessibility_enabled(
accessibility_enable, accessibility_enable,
p_rarch->accessibility_enabled)) access_st->enabled))
accessibility_speak_priority(p_rarch, accessibility_speak_priority(
accessibility_enable, accessibility_enable,
accessibility_narrator_speech_speed, accessibility_narrator_speech_speed,
"RetroArch accessibility on. Main Menu Load Core.", "RetroArch accessibility on. Main Menu Load Core.",
@ -14832,6 +14860,7 @@ static void runloop_task_msg_queue_push(
settings_t *settings = config_get_ptr(); settings_t *settings = config_get_ptr();
bool accessibility_enable = settings->bools.accessibility_enable; bool accessibility_enable = settings->bools.accessibility_enable;
unsigned accessibility_narrator_speech_speed = settings->uints.accessibility_narrator_speech_speed; unsigned accessibility_narrator_speech_speed = settings->uints.accessibility_narrator_speech_speed;
access_state_t *access_st = access_state_get_ptr();
#endif #endif
runloop_state_t *runloop_st = &runloop_state; runloop_state_t *runloop_st = &runloop_state;
bool widgets_active = dispwidget_get_ptr()->active; bool widgets_active = dispwidget_get_ptr()->active;
@ -14844,8 +14873,8 @@ static void runloop_task_msg_queue_push(
#ifdef HAVE_ACCESSIBILITY #ifdef HAVE_ACCESSIBILITY
if (is_accessibility_enabled( if (is_accessibility_enabled(
accessibility_enable, accessibility_enable,
p_rarch->accessibility_enabled)) access_st->enabled))
accessibility_speak_priority(p_rarch, accessibility_speak_priority(
accessibility_enable, accessibility_enable,
accessibility_narrator_speech_speed, accessibility_narrator_speech_speed,
(char*)msg, 0); (char*)msg, 0);
@ -15454,6 +15483,7 @@ void runloop_msg_queue_push(const char *msg,
settings_t *settings = config_get_ptr(); settings_t *settings = config_get_ptr();
bool accessibility_enable = settings->bools.accessibility_enable; bool accessibility_enable = settings->bools.accessibility_enable;
unsigned accessibility_narrator_speech_speed = settings->uints.accessibility_narrator_speech_speed; unsigned accessibility_narrator_speech_speed = settings->uints.accessibility_narrator_speech_speed;
access_state_t *access_st = access_state_get_ptr();
#endif #endif
runloop_state_t *runloop_st = &runloop_state; runloop_state_t *runloop_st = &runloop_state;
@ -15461,8 +15491,8 @@ void runloop_msg_queue_push(const char *msg,
#ifdef HAVE_ACCESSIBILITY #ifdef HAVE_ACCESSIBILITY
if (is_accessibility_enabled( if (is_accessibility_enabled(
accessibility_enable, accessibility_enable,
p_rarch->accessibility_enabled)) access_st->enabled))
accessibility_speak_priority(p_rarch, accessibility_speak_priority(
accessibility_enable, accessibility_enable,
accessibility_narrator_speech_speed, accessibility_narrator_speech_speed,
(char*) msg, 0); (char*) msg, 0);
@ -17775,14 +17805,14 @@ unsigned int retroarch_get_rotation(void)
#ifdef HAVE_ACCESSIBILITY #ifdef HAVE_ACCESSIBILITY
static bool accessibility_speak_priority( static bool accessibility_speak_priority(
struct rarch_state *p_rarch,
bool accessibility_enable, bool accessibility_enable,
unsigned accessibility_narrator_speech_speed, unsigned accessibility_narrator_speech_speed,
const char* speak_text, int priority) const char* speak_text, int priority)
{ {
access_state_t *access_st = access_state_get_ptr();
if (is_accessibility_enabled( if (is_accessibility_enabled(
accessibility_enable, accessibility_enable,
p_rarch->accessibility_enabled)) access_st->enabled))
{ {
frontend_ctx_driver_t *frontend = frontend_ctx_driver_t *frontend =
frontend_state_get_ptr()->current_frontend_ctx; frontend_state_get_ptr()->current_frontend_ctx;
@ -17809,7 +17839,6 @@ static bool accessibility_speak_priority(
return true; return true;
} }
#endif #endif
/* Creates folder and core options stub file for subsequent runs */ /* Creates folder and core options stub file for subsequent runs */

View File

@ -410,10 +410,6 @@ struct rarch_state
jmp_buf error_sjlj_context; /* 4-byte alignment, jmp_buf error_sjlj_context; /* 4-byte alignment,
put it right before long */ put it right before long */
#if defined(HAVE_TRANSLATE)
int ai_service_auto;
#endif
#ifdef HAVE_THREAD_STORAGE #ifdef HAVE_THREAD_STORAGE
sthread_tls_t rarch_tls; /* unsigned alignment */ sthread_tls_t rarch_tls; /* unsigned alignment */
#endif #endif
@ -450,10 +446,6 @@ struct rarch_state
bool rarch_bps_pref; bool rarch_bps_pref;
bool rarch_ips_pref; bool rarch_ips_pref;
#ifdef HAVE_ACCESSIBILITY
/* Is text-to-speech accessibility turned on? */
bool accessibility_enabled;
#endif
#ifdef HAVE_CONFIGFILE #ifdef HAVE_CONFIGFILE
bool rarch_block_config_read; bool rarch_block_config_read;
#endif #endif

View File

@ -66,7 +66,6 @@ static bool driver_camera_start(void);
static bool is_accessibility_enabled(bool accessibility_enable, static bool is_accessibility_enabled(bool accessibility_enable,
bool accessibility_enabled); bool accessibility_enabled);
static bool accessibility_speak_priority( static bool accessibility_speak_priority(
struct rarch_state *p_rarch,
bool accessibility_enable, bool accessibility_enable,
unsigned accessibility_narrator_speech_speed, unsigned accessibility_narrator_speech_speed,
const char* speak_text, int priority); const char* speak_text, int priority);