diff --git a/msg_hash.c b/msg_hash.c index e38ba1fe43..36a14c1655 100644 --- a/msg_hash.c +++ b/msg_hash.c @@ -104,7 +104,7 @@ int menu_hash_get_help_enum(enum msg_hash_enums msg, char *s, size_t len) const char *get_user_language_iso639_1(bool limit) { - char *voice; + const char *voice; voice = "en"; switch (uint_user_language) { diff --git a/retroarch.c b/retroarch.c index 6134c7347d..fc5ef29ac0 100644 --- a/retroarch.c +++ b/retroarch.c @@ -2289,6 +2289,9 @@ void dir_check_defaults(void) } } +/* Is text-to-speech accessibility turned on? */ +static bool accessibility_enabled = false; + #ifdef HAVE_MENU /* MENU INPUT GLOBAL VARIABLES */ static const char **menu_input_dialog_keyboard_buffer = {NULL}; @@ -2311,9 +2314,6 @@ static bool menu_driver_is_binding = false; * it will be closed; if the menu was not running, it will be opened */ static bool menu_driver_toggled = false; -/* Is text-to-speech accessibility turned on? */ -static bool accessibility_enabled = false; - #ifdef HAVE_LIBNX #define LIBNX_SWKBD_LIMIT 500 /* enforced by HOS */ @@ -4304,17 +4304,18 @@ static void handle_translation_cb( * image, so we have to change that to RGB first. This should * probably be replaced with a scaler call.*/ { + unsigned ui; int d,tw,th,tc; d=0; raw_image_data = malloc(image_width*image_height*3*sizeof(uint8_t)); - for (i=0;i<image_width*image_height*4;i++) + for (ui=0;ui<image_width*image_height*4;ui++) { - if (i%4 != 3) + if (ui%4 != 3) { tc = d%3; th = image_height-d/(3*image_width)-1; tw = (d%(image_width*3))/3; - ((uint8_t*) raw_image_data)[tw*3+th*3*image_width+tc] = ((uint8_t *)raw_image_data_alpha)[i]; + ((uint8_t*) raw_image_data)[tw*3+th*3*image_width+tc] = ((uint8_t *)raw_image_data_alpha)[ui]; d+=1; } } @@ -4463,8 +4464,10 @@ bool is_ai_service_speech_running(void) bool ai_service_speech_stop(void) { +#ifdef HAVE_AUDIOMIXER audio_driver_mixer_stop_stream(10); audio_driver_mixer_remove_stream(10); +#endif return false; } @@ -4834,7 +4837,7 @@ static bool run_translation_service(void) /* Form request... */ if (system_label) { - int i; + unsigned i; /* include game label if provided */ rf3 = (char *) malloc(16+strlen(system_label)); memcpy(rf3, "\", \"label\": \"", 13*sizeof(uint8_t)); @@ -4911,7 +4914,7 @@ static bool run_translation_service(void) /* mode */ { char temp_string[PATH_MAX_LENGTH]; - char *mode_chr = NULL; + const char *mode_chr = NULL; /*"image" is included for backwards compatability with * vgtranslate < 1.04 */ @@ -16437,7 +16440,7 @@ void input_keyboard_event(bool down, unsigned code, uint32_t character, uint16_t mod, unsigned device) { static bool deferred_wait_keys; - if (menu_input_dialog_keyboard_display && down && is_accessibility_enabled()) + if (menu_input_dialog_get_display_kb() && down && is_accessibility_enabled()) { if (code != 303 && code != 0) { @@ -28956,11 +28959,11 @@ bool is_accessibility_enabled(void) } bool is_input_keyboard_display_on(void) -{ - return menu_input_dialog_keyboard_display; +{ + return menu_input_dialog_get_display_kb(); } -bool accessibility_speak(char* speak_text) +bool accessibility_speak(const char* speak_text) { return accessibility_speak_priority(speak_text, 10); } @@ -29041,11 +29044,11 @@ bool is_narrator_running_macos(void) } static bool accessibility_speak_macos( - char* speak_text, const char* voice, int priority) + const char* speak_text, const char* voice, int priority) { int pid; char* language_speaker = accessibility_mac_language_code(voice); - char* speed_out = malloc(4); + char* speed_out = (char*) malloc(4); char* speeds[10] = {"80", "100", "125", "150", "170", "210", "260", "310", "380", "450"}; settings_t *settings = configuration_settings; @@ -29093,7 +29096,7 @@ static bool accessibility_speak_macos( char* cmd[] = {"say", "-v", NULL, NULL, "-r", NULL, NULL}; cmd[2] = language_speaker; - cmd[3] = speak_text; + cmd[3] = (char *) speak_text; cmd[5] = speed_out; execvp("say", cmd); } @@ -29219,7 +29222,7 @@ static bool is_narrator_running_windows(void) } static bool accessibility_speak_windows( - char* speak_text, const char* voice, int priority) + const char* speak_text, const char* voice, int priority) { char cmd[1200]; char* language = accessibility_win_language_code(voice); @@ -29242,10 +29245,10 @@ static bool accessibility_speak_windows( if (strlen(language) > 0) snprintf(cmd, sizeof(cmd), - "powershell.exe -NoProfile -WindowStyle Hidden -Command \"Add-Type -AssemblyName System.Speech; $synth = New-Object System.Speech.Synthesis.SpeechSynthesizer; $synth.SelectVoice(\\\"%s\\\"); $synth.Rate = %s; $synth.Speak(\\\"%s\\\");\"", language, speeds[speed-1], speak_text); + "powershell.exe -NoProfile -WindowStyle Hidden -Command \"Add-Type -AssemblyName System.Speech; $synth = New-Object System.Speech.Synthesis.SpeechSynthesizer; $synth.SelectVoice(\\\"%s\\\"); $synth.Rate = %s; $synth.Speak(\\\"%s\\\");\"", language, speeds[speed-1], (char*) speak_text); else snprintf(cmd, sizeof(cmd), - "powershell.exe -NoProfile -WindowStyle Hidden -Command \"Add-Type -AssemblyName System.Speech; $synth = New-Object System.Speech.Synthesis.SpeechSynthesizer; $synth.Rate = %s; $synth.Speak(\\\"%s\\\");\"", speeds[speed-1], speak_text); + "powershell.exe -NoProfile -WindowStyle Hidden -Command \"Add-Type -AssemblyName System.Speech; $synth = New-Object System.Speech.Synthesis.SpeechSynthesizer; $synth.Rate = %s; $synth.Speak(\\\"%s\\\");\"", speeds[speed-1], (char*) speak_text); if (pi_set) terminate_win32_process(pi); res = create_win32_process(cmd); @@ -29268,14 +29271,14 @@ bool is_narrator_running_linux(void) bool accessibility_speak_linux( - char* speak_text, const char* language, int priority) + const char* speak_text, const char* language, int priority) { int pid; - char* voice_out = malloc(3+strlen(language)); - char* speed_out = malloc(3+3); + char* voice_out = (char *) malloc(3+strlen(language)); + char* speed_out = (char *) malloc(3+3); settings_t *settings = configuration_settings; - char* speeds[10] = {"80", "100", "125", "150", "170", "210", "260", "310", "380", "450"}; + const char* speeds[10] = {"80", "100", "125", "150", "170", "210", "260", "310", "380", "450"}; int speed = settings->uints.accessibility_narrator_speech_speed; if (speed < 1) @@ -29321,17 +29324,17 @@ bool accessibility_speak_linux( else { /* child process: replace process with the espeak command */ - char* cmd[] = {"espeak", NULL, NULL, NULL, NULL}; + char* cmd[] = { (char*) "espeak", NULL, NULL, NULL, NULL}; cmd[1] = voice_out; cmd[2] = speed_out; - cmd[3] = speak_text; + cmd[3] = (char *) speak_text; execvp("espeak", cmd); } return true; } #endif -bool accessibility_speak_priority(char* speak_text, int priority) +bool accessibility_speak_priority(const char* speak_text, int priority) { const char* voice = NULL; @@ -29356,7 +29359,9 @@ bool accessibility_speak_priority(char* speak_text, int priority) mixer can handle playing streams while the core is paused, then we can use this. */ /* +#if defined(HAVE_NETWORKING) return accessibility_speak_ai_service(speak_text, voice, priority); +#endif */ } return true; @@ -29378,7 +29383,7 @@ bool is_narrator_running(void) } -bool accessibility_speak_ai_service(char* speak_text, const char* language, int priority) +bool accessibility_speak_ai_service(const char* speak_text, const char* language, int priority) { #if defined(HAVE_NETWORKING) && defined(HAVE_TRANSLATE) /* Call the AI service listed to do espeak for us. */ @@ -29422,11 +29427,6 @@ bool accessibility_speak_ai_service(char* speak_text, const char* language, int bool accessibility_startup_message(void) { -#ifdef HAVE_NETWORKING - /* Note: for the ai service tts call, this is called too early... */ accessibility_speak("RetroArch accessibility on."); return true; -#else - return false; -#endif } diff --git a/retroarch.h b/retroarch.h index b4bf65641a..4c4db9d222 100644 --- a/retroarch.h +++ b/retroarch.h @@ -2022,14 +2022,14 @@ unsigned int retroarch_get_rotation(void); bool is_input_keyboard_display_on(void); bool is_accessibility_enabled(void); -bool accessibility_speak(char* speak_text); -bool accessibility_speak_priority(char* speak_text, int priority); +bool accessibility_speak(const char* speak_text); +bool accessibility_speak_priority(const char* speak_text, int priority); bool accessibility_startup_message(void); bool is_narrator_running(void); bool accessibility_speak_ai_service( - char* speak_text, const char* voice, int priority); + const char* speak_text, const char* voice, int priority); RETRO_END_DECLS