From ebe9f1861e1b00255795c8657b5371b2c4051c28 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Wed, 4 Dec 2019 09:24:27 +0100 Subject: [PATCH] Implement more settings for Accessibility --- intl/msg_hash_lbl.h | 4 ++++ intl/msg_hash_us.h | 8 +++++++ menu/cbs/menu_cbs_sublabel.c | 6 ++++++ menu/menu_displaylist.c | 14 ++++++++++++ menu/menu_setting.c | 42 ++++++++++++++++++++++++++++++++++++ msg_hash.h | 2 ++ 6 files changed, 76 insertions(+) diff --git a/intl/msg_hash_lbl.h b/intl/msg_hash_lbl.h index 50ee7db4ea..9a4c923e79 100644 --- a/intl/msg_hash_lbl.h +++ b/intl/msg_hash_lbl.h @@ -2133,3 +2133,7 @@ MSG_HASH(MENU_ENUM_LABEL_MANUAL_CONTENT_SCAN_OVERWRITE, "manual_content_scan_overwrite") MSG_HASH(MENU_ENUM_LABEL_MANUAL_CONTENT_SCAN_START, "manual_content_scan_start") +MSG_HASH(MENU_ENUM_LABEL_ACCESSIBILITY_ENABLED, + "accessibility_enabled") +MSG_HASH(MENU_ENUM_LABEL_ACCESSIBILITY_NARRATOR_SPEECH_SPEED, + "accessibility_narrator_speech_speed") diff --git a/intl/msg_hash_us.h b/intl/msg_hash_us.h index be6545de60..4a04fe5189 100644 --- a/intl/msg_hash_us.h +++ b/intl/msg_hash_us.h @@ -10156,3 +10156,11 @@ MSG_HASH( MSG_MANUAL_CONTENT_SCAN_END, "Scan complete: " ) +MSG_HASH(MENU_ENUM_LABEL_VALUE_ACCESSIBILITY_ENABLED, + "Accessibility needed") +MSG_HASH(MENU_ENUM_SUBLABEL_ACCESSIBILITY_ENABLED, + "Turn on/off accessibility narrator for menu navigation") +MSG_HASH(MENU_ENUM_SUBLABEL_ACCESSIBILITY_NARRATOR_SPEECH_SPEED, + "Set speech speed for the narrator, from fast to slow") +MSG_HASH(MENU_ENUM_LABEL_VALUE_ACCESSIBILITY_NARRATOR_SPEECH_SPEED, + "Narrator Speech Speed") diff --git a/menu/cbs/menu_cbs_sublabel.c b/menu/cbs/menu_cbs_sublabel.c index a77adb225b..68367e0eb4 100644 --- a/menu/cbs/menu_cbs_sublabel.c +++ b/menu/cbs/menu_cbs_sublabel.c @@ -128,6 +128,7 @@ default_sublabel_macro(action_bind_sublabel_saving_settings_list, MENU_ default_sublabel_macro(action_bind_sublabel_logging_settings_list, MENU_ENUM_SUBLABEL_LOGGING_SETTINGS) default_sublabel_macro(action_bind_sublabel_user_interface_settings_list, MENU_ENUM_SUBLABEL_USER_INTERFACE_SETTINGS) default_sublabel_macro(action_bind_sublabel_ai_service_settings_list, MENU_ENUM_SUBLABEL_AI_SERVICE_SETTINGS) +default_sublabel_macro(action_bind_sublabel__settings_list, MENU_ENUM_SUBLABEL_ACCESSIBILITY_SETTINGS) default_sublabel_macro(action_bind_sublabel_accessibility_settings_list, MENU_ENUM_SUBLABEL_ACCESSIBILITY_SETTINGS) default_sublabel_macro(action_bind_sublabel_ai_service_mode, MENU_ENUM_SUBLABEL_AI_SERVICE_MODE) default_sublabel_macro(action_bind_sublabel_ai_service_pause, MENU_ENUM_SUBLABEL_AI_SERVICE_PAUSE) @@ -2794,6 +2795,11 @@ int menu_cbs_init_bind_sublabel(menu_file_list_cbs_t *cbs, case MENU_ENUM_LABEL_AI_SERVICE_SETTINGS: BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_ai_service_settings_list); break; +#if 0 + case MENU_ENUM_LABEL_ACCESSIBILITY_NARRATOR_SPEECH_SPEED: + BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_accessibility_narrator_speech_speed); + break; +#endif case MENU_ENUM_LABEL_ACCESSIBILITY_SETTINGS: BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_accessibility_settings_list); break; diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index 90970a2951..6b98a2bf1d 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -4786,6 +4786,20 @@ unsigned menu_displaylist_build_list(file_list_t *list, enum menu_displaylist_ct } break; case DISPLAYLIST_ACCESSIBILITY_SETTINGS_LIST: + { + menu_displaylist_build_info_selective_t build_list[] = { + {MENU_ENUM_LABEL_ACCESSIBILITY_NARRATOR_SPEECH_SPEED, PARSE_ONLY_BOOL, true }, + {MENU_ENUM_LABEL_ACCESSIBILITY_NARRATOR_SPEECH_SPEED, PARSE_ONLY_UINT, true }, + }; + + for (i = 0; i < ARRAY_SIZE(build_list); i++) + { + if (menu_displaylist_parse_settings_enum(list, + build_list[i].enum_idx, build_list[i].parse_type, + false) == 0) + count++; + } + } break; case DISPLAYLIST_AI_SERVICE_SETTINGS_LIST: { diff --git a/menu/menu_setting.c b/menu/menu_setting.c index d48cf3cc37..c9cdbc9ea5 100644 --- a/menu/menu_setting.c +++ b/menu/menu_setting.c @@ -143,6 +143,7 @@ enum settings_list_type SETTINGS_LIST_MENU_FILE_BROWSER, SETTINGS_LIST_MULTIMEDIA, SETTINGS_LIST_AI_SERVICE, + SETTINGS_LIST_ACCESSIBILITY, SETTINGS_LIST_USER_INTERFACE, SETTINGS_LIST_POWER_MANAGEMENT, SETTINGS_LIST_MENU_SOUNDS, @@ -13783,6 +13784,46 @@ static bool setting_append_list( SD_FLAG_CMD_APPLY_AUTO); #endif + END_SUB_GROUP(list, list_info, parent_group); + END_GROUP(list, list_info, parent_group); + break; + case SETTINGS_LIST_ACCESSIBILITY: + START_GROUP(list, list_info, &group_info, + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_ACCESSIBILITY_SETTINGS), + parent_group); + + parent_group = msg_hash_to_str(MENU_ENUM_LABEL_ACCESSIBILITY_SETTINGS); + + START_SUB_GROUP(list, list_info, "State", &group_info, &subgroup_info, parent_group); + + CONFIG_BOOL( + list, list_info, + &settings->bools.ai_service_enable, + MENU_ENUM_LABEL_AI_SERVICE_ENABLE, + MENU_ENUM_LABEL_VALUE_AI_SERVICE_ENABLE, + false, + MENU_ENUM_LABEL_VALUE_OFF, + MENU_ENUM_LABEL_VALUE_ON, + &group_info, + &subgroup_info, + parent_group, + general_write_handler, + general_read_handler, + SD_FLAG_NONE); + + CONFIG_UINT( + list, list_info, + &settings->uints.accessibility_narrator_speech_speed, + MENU_ENUM_LABEL_ACCESSIBILITY_NARRATOR_SPEECH_SPEED, + MENU_ENUM_LABEL_VALUE_ACCESSIBILITY_NARRATOR_SPEECH_SPEED, + DEFAULT_AI_SERVICE_MODE, + &group_info, + &subgroup_info, + parent_group, + general_write_handler, + general_read_handler); + menu_settings_list_current_add_range(list, list_info, 1, 10, 1, true, true); + END_SUB_GROUP(list, list_info, parent_group); END_GROUP(list, list_info, parent_group); break; @@ -16646,6 +16687,7 @@ static rarch_setting_t *menu_setting_new_internal(rarch_setting_info_t *list_inf #ifdef HAVE_TRANSLATE SETTINGS_LIST_AI_SERVICE, #endif + SETTINGS_LIST_ACCESSIBILITY, SETTINGS_LIST_USER_INTERFACE, SETTINGS_LIST_POWER_MANAGEMENT, SETTINGS_LIST_MENU_SOUNDS, diff --git a/msg_hash.h b/msg_hash.h index bc2c2d0a82..caf6fc2d14 100644 --- a/msg_hash.h +++ b/msg_hash.h @@ -1761,6 +1761,8 @@ enum msg_hash_enums MENU_LABEL(MAIN_MENU), MENU_LABEL(INPUT_SETTINGS), MENU_LABEL(ACCESSIBILITY_SETTINGS), + MENU_LABEL(ACCESSIBILITY_ENABLED), + MENU_LABEL(ACCESSIBILITY_NARRATOR_SPEECH_SPEED), MENU_LABEL(AI_SERVICE_SETTINGS), MENU_LABEL(AI_SERVICE_MODE), MENU_LABEL(AI_SERVICE_TARGET_LANG),