Merge pull request #5531 from Brunnis/kiosk-mode-setting

Implemented new Kiosk Mode setting which hides all configuration related settings/tabs in XMB
This commit is contained in:
Twinaphex 2017-10-11 17:29:00 +02:00 committed by GitHub
commit d5c2279502
24 changed files with 412 additions and 17 deletions

View File

@ -248,6 +248,8 @@ static bool quick_menu_show_save_core_overrides = true;
static bool quick_menu_show_save_game_overrides = true;
static bool quick_menu_show_information = true;
static bool kiosk_mode_enable = false;
static bool menu_show_online_updater = true;
static bool menu_show_load_core = true;
static bool menu_show_load_content = true;

View File

@ -991,6 +991,7 @@ static struct config_path_setting *populate_settings_path(settings_t *settings,
SETTING_PATH("xmb_font", settings->paths.path_menu_xmb_font, false, NULL, true);
SETTING_PATH("xmb_show_settings_password", settings->paths.menu_xmb_show_settings_password, false, NULL, true);
#endif
SETTING_PATH("kiosk_mode_password", settings->paths.kiosk_mode_password, false, NULL, true);
SETTING_PATH("netplay_nickname", settings->paths.username, false, NULL, true);
SETTING_PATH("video_filter", settings->paths.path_softfilter_plugin, false, NULL, true);
SETTING_PATH("audio_dsp_plugin", settings->paths.path_audio_dsp_plugin, false, NULL, true);
@ -1202,6 +1203,7 @@ static struct config_bool_setting *populate_settings_bool(settings_t *settings,
SETTING_BOOL("quick_menu_show_save_core_overrides", &settings->bools.quick_menu_show_save_core_overrides, true, quick_menu_show_save_core_overrides, false);
SETTING_BOOL("quick_menu_show_save_game_overrides", &settings->bools.quick_menu_show_save_game_overrides, true, quick_menu_show_save_game_overrides, false);
SETTING_BOOL("quick_menu_show_information", &settings->bools.quick_menu_show_information, true, quick_menu_show_information, false);
SETTING_BOOL("kiosk_mode_enable", &settings->bools.kiosk_mode_enable, true, kiosk_mode_enable, false);
#ifdef HAVE_MATERIALUI
SETTING_BOOL("materialui_icons_enable", &settings->bools.menu_materialui_icons_enable, true, materialui_icons_enable, false);
#endif

View File

@ -157,6 +157,7 @@ typedef struct settings
bool quick_menu_show_save_core_overrides;
bool quick_menu_show_save_game_overrides;
bool quick_menu_show_information;
bool kiosk_mode_enable;
/* Netplay */
bool netplay_public_announce;
@ -400,6 +401,7 @@ typedef struct settings
char path_menu_xmb_font[PATH_MAX_LENGTH];
char menu_xmb_show_settings_password[PATH_MAX_LENGTH];
char kiosk_mode_password[PATH_MAX_LENGTH];
char path_cheat_database[PATH_MAX_LENGTH];
char path_content_database[PATH_MAX_LENGTH];
char path_overlay[PATH_MAX_LENGTH];

View File

@ -3139,3 +3139,21 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_QUICK_MENU_SHOW_INFORMATION,
"Show Information")
MSG_HASH(MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_INFORMATION,
"Show/hide the 'Information' option.")
MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_DISABLE_KIOSK_MODE,
"Disable Kiosk Mode")
MSG_HASH(MENU_ENUM_SUBLABEL_MENU_DISABLE_KIOSK_MODE,
"Disables kiosk mode. A restart is required for the change to take full effect.")
MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_ENABLE_KIOSK_MODE,
"Enable Kiosk Mode")
MSG_HASH(MENU_ENUM_SUBLABEL_MENU_ENABLE_KIOSK_MODE,
"Protects the setup by hiding all configuration related settings.")
MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_KIOSK_MODE_PASSWORD,
"Set Password For Disabling Kiosk Mode")
MSG_HASH(MENU_ENUM_SUBLABEL_MENU_KIOSK_MODE_PASSWORD,
"Supplying a password when enabling kiosk mode makes it possible to later disable it from the menu, by going to the Main Menu, selecting Disable Kiosk Mode and entering the password.")
MSG_HASH(MSG_INPUT_KIOSK_MODE_PASSWORD,
"Enter Password")
MSG_HASH(MSG_INPUT_KIOSK_MODE_PASSWORD_OK,
"Password correct.")
MSG_HASH(MSG_INPUT_KIOSK_MODE_PASSWORD_NOK,
"Password incorrect.")

View File

@ -3139,3 +3139,21 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_QUICK_MENU_SHOW_INFORMATION,
"Show Information")
MSG_HASH(MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_INFORMATION,
"Show/hide the 'Information' option.")
MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_DISABLE_KIOSK_MODE,
"Disable Kiosk Mode")
MSG_HASH(MENU_ENUM_SUBLABEL_MENU_DISABLE_KIOSK_MODE,
"Disables kiosk mode. A restart is required for the change to take full effect.")
MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_ENABLE_KIOSK_MODE,
"Enable Kiosk Mode")
MSG_HASH(MENU_ENUM_SUBLABEL_MENU_ENABLE_KIOSK_MODE,
"Protects the setup by hiding all configuration related settings.")
MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_KIOSK_MODE_PASSWORD,
"Set Password For Disabling Kiosk Mode")
MSG_HASH(MENU_ENUM_SUBLABEL_MENU_KIOSK_MODE_PASSWORD,
"Supplying a password when enabling kiosk mode makes it possible to later disable it from the menu, by going to the Main Menu, selecting Disable Kiosk Mode and entering the password.")
MSG_HASH(MSG_INPUT_KIOSK_MODE_PASSWORD,
"Enter Password")
MSG_HASH(MSG_INPUT_KIOSK_MODE_PASSWORD_OK,
"Password correct.")
MSG_HASH(MSG_INPUT_KIOSK_MODE_PASSWORD_NOK,
"Password incorrect.")

View File

@ -3133,3 +3133,21 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_QUICK_MENU_SHOW_INFORMATION,
"Show Information")
MSG_HASH(MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_INFORMATION,
"Show/hide the 'Information' option.")
MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_DISABLE_KIOSK_MODE,
"Disable Kiosk Mode")
MSG_HASH(MENU_ENUM_SUBLABEL_MENU_DISABLE_KIOSK_MODE,
"Disables kiosk mode. A restart is required for the change to take full effect.")
MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_ENABLE_KIOSK_MODE,
"Enable Kiosk Mode")
MSG_HASH(MENU_ENUM_SUBLABEL_MENU_ENABLE_KIOSK_MODE,
"Protects the setup by hiding all configuration related settings.")
MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_KIOSK_MODE_PASSWORD,
"Set Password For Disabling Kiosk Mode")
MSG_HASH(MENU_ENUM_SUBLABEL_MENU_KIOSK_MODE_PASSWORD,
"Supplying a password when enabling kiosk mode makes it possible to later disable it from the menu, by going to the Main Menu, selecting Disable Kiosk Mode and entering the password.")
MSG_HASH(MSG_INPUT_KIOSK_MODE_PASSWORD,
"Enter Password")
MSG_HASH(MSG_INPUT_KIOSK_MODE_PASSWORD_OK,
"Password correct.")
MSG_HASH(MSG_INPUT_KIOSK_MODE_PASSWORD_NOK,
"Password incorrect.")

View File

@ -3002,3 +3002,21 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_QUICK_MENU_SHOW_INFORMATION,
"Show Information")
MSG_HASH(MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_INFORMATION,
"Show/hide the 'Information' option.")
MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_DISABLE_KIOSK_MODE,
"Disable Kiosk Mode")
MSG_HASH(MENU_ENUM_SUBLABEL_MENU_DISABLE_KIOSK_MODE,
"Disables kiosk mode. A restart is required for the change to take full effect.")
MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_ENABLE_KIOSK_MODE,
"Enable Kiosk Mode")
MSG_HASH(MENU_ENUM_SUBLABEL_MENU_ENABLE_KIOSK_MODE,
"Protects the setup by hiding all configuration related settings.")
MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_KIOSK_MODE_PASSWORD,
"Set Password For Disabling Kiosk Mode")
MSG_HASH(MENU_ENUM_SUBLABEL_MENU_KIOSK_MODE_PASSWORD,
"Supplying a password when enabling kiosk mode makes it possible to later disable it from the menu, by going to the Main Menu, selecting Disable Kiosk Mode and entering the password.")
MSG_HASH(MSG_INPUT_KIOSK_MODE_PASSWORD,
"Enter Password")
MSG_HASH(MSG_INPUT_KIOSK_MODE_PASSWORD_OK,
"Password correct.")
MSG_HASH(MSG_INPUT_KIOSK_MODE_PASSWORD_NOK,
"Password incorrect.")

View File

@ -3171,3 +3171,21 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_QUICK_MENU_SHOW_INFORMATION,
"Show Information")
MSG_HASH(MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_INFORMATION,
"Show/hide the 'Information' option.")
MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_DISABLE_KIOSK_MODE,
"Disable Kiosk Mode")
MSG_HASH(MENU_ENUM_SUBLABEL_MENU_DISABLE_KIOSK_MODE,
"Disables kiosk mode. A restart is required for the change to take full effect.")
MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_ENABLE_KIOSK_MODE,
"Enable Kiosk Mode")
MSG_HASH(MENU_ENUM_SUBLABEL_MENU_ENABLE_KIOSK_MODE,
"Protects the setup by hiding all configuration related settings.")
MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_KIOSK_MODE_PASSWORD,
"Set Password For Disabling Kiosk Mode")
MSG_HASH(MENU_ENUM_SUBLABEL_MENU_KIOSK_MODE_PASSWORD,
"Supplying a password when enabling kiosk mode makes it possible to later disable it from the menu, by going to the Main Menu, selecting Disable Kiosk Mode and entering the password.")
MSG_HASH(MSG_INPUT_KIOSK_MODE_PASSWORD,
"Enter Password")
MSG_HASH(MSG_INPUT_KIOSK_MODE_PASSWORD_OK,
"Password correct.")
MSG_HASH(MSG_INPUT_KIOSK_MODE_PASSWORD_NOK,
"Password incorrect.")

View File

@ -3225,3 +3225,21 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_QUICK_MENU_SHOW_INFORMATION,
"Show Information")
MSG_HASH(MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_INFORMATION,
"Show/hide the 'Information' option.")
MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_DISABLE_KIOSK_MODE,
"Disable Kiosk Mode")
MSG_HASH(MENU_ENUM_SUBLABEL_MENU_DISABLE_KIOSK_MODE,
"Disables kiosk mode. A restart is required for the change to take full effect.")
MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_ENABLE_KIOSK_MODE,
"Enable Kiosk Mode")
MSG_HASH(MENU_ENUM_SUBLABEL_MENU_ENABLE_KIOSK_MODE,
"Protects the setup by hiding all configuration related settings.")
MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_KIOSK_MODE_PASSWORD,
"Set Password For Disabling Kiosk Mode")
MSG_HASH(MENU_ENUM_SUBLABEL_MENU_KIOSK_MODE_PASSWORD,
"Supplying a password when enabling kiosk mode makes it possible to later disable it from the menu, by going to the Main Menu, selecting Disable Kiosk Mode and entering the password.")
MSG_HASH(MSG_INPUT_KIOSK_MODE_PASSWORD,
"Enter Password")
MSG_HASH(MSG_INPUT_KIOSK_MODE_PASSWORD_OK,
"Password correct.")
MSG_HASH(MSG_INPUT_KIOSK_MODE_PASSWORD_NOK,
"Password incorrect.")

View File

@ -3153,3 +3153,22 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_VIDEO_MESSAGE_BGCOLOR_OPACITY,
"OSDメッセージ背景の不透明性")
MSG_HASH(MENU_ENUM_LABEL_VALUE_ADD_TO_FAVORITES,
"お気に入りに追加")
MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_DISABLE_KIOSK_MODE,
"Disable Kiosk Mode")
MSG_HASH(MENU_ENUM_SUBLABEL_MENU_DISABLE_KIOSK_MODE,
"Disables kiosk mode. A restart is required for the change to take full effect.")
MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_ENABLE_KIOSK_MODE,
"Enable Kiosk Mode")
MSG_HASH(MENU_ENUM_SUBLABEL_MENU_ENABLE_KIOSK_MODE,
"Protects the setup by hiding all configuration related settings.")
MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_KIOSK_MODE_PASSWORD,
"Set Password For Disabling Kiosk Mode")
MSG_HASH(MENU_ENUM_SUBLABEL_MENU_KIOSK_MODE_PASSWORD,
"Supplying a password when enabling kiosk mode makes it possible to later disable it from the menu, by going to the Main Menu, selecting Disable Kiosk Mode and entering the password.")
MSG_HASH(MSG_INPUT_KIOSK_MODE_PASSWORD,
"Enter Password")
MSG_HASH(MSG_INPUT_KIOSK_MODE_PASSWORD_OK,
"Password correct.")
MSG_HASH(MSG_INPUT_KIOSK_MODE_PASSWORD_NOK,
"Password incorrect.")

View File

@ -3134,3 +3134,21 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_QUICK_MENU_SHOW_INFORMATION,
"Show Information")
MSG_HASH(MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_INFORMATION,
"Show/hide the 'Information' option.")
MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_DISABLE_KIOSK_MODE,
"Disable Kiosk Mode")
MSG_HASH(MENU_ENUM_SUBLABEL_MENU_DISABLE_KIOSK_MODE,
"Disables kiosk mode. A restart is required for the change to take full effect.")
MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_ENABLE_KIOSK_MODE,
"Enable Kiosk Mode")
MSG_HASH(MENU_ENUM_SUBLABEL_MENU_ENABLE_KIOSK_MODE,
"Protects the setup by hiding all configuration related settings.")
MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_KIOSK_MODE_PASSWORD,
"Set Password For Disabling Kiosk Mode")
MSG_HASH(MENU_ENUM_SUBLABEL_MENU_KIOSK_MODE_PASSWORD,
"Supplying a password when enabling kiosk mode makes it possible to later disable it from the menu, by going to the Main Menu, selecting Disable Kiosk Mode and entering the password.")
MSG_HASH(MSG_INPUT_KIOSK_MODE_PASSWORD,
"Enter Password")
MSG_HASH(MSG_INPUT_KIOSK_MODE_PASSWORD_OK,
"Password correct.")
MSG_HASH(MSG_INPUT_KIOSK_MODE_PASSWORD_NOK,
"Password incorrect.")

View File

@ -1343,6 +1343,12 @@ MSG_HASH(MENU_ENUM_LABEL_QUICK_MENU_SHOW_SAVE_GAME_OVERRIDES,
"quick_menu_show_save_game_overrides")
MSG_HASH(MENU_ENUM_LABEL_QUICK_MENU_SHOW_INFORMATION,
"quick_menu_show_information")
MSG_HASH(MENU_ENUM_LABEL_MENU_ENABLE_KIOSK_MODE,
"menu_enable_kiosk_mode")
MSG_HASH(MENU_ENUM_LABEL_MENU_DISABLE_KIOSK_MODE,
"menu_disable_kiosk_mode")
MSG_HASH(MENU_ENUM_LABEL_MENU_KIOSK_MODE_PASSWORD,
"menu_disable_kiosk_mode_password")
MSG_HASH(MENU_ENUM_LABEL_VIDEO_MESSAGE_BGCOLOR_ENABLE,
"video_msg_bgcolor_enable")
MSG_HASH(MENU_ENUM_LABEL_VIDEO_MESSAGE_BGCOLOR_RED,
@ -1353,3 +1359,4 @@ MSG_HASH(MENU_ENUM_LABEL_VIDEO_MESSAGE_BGCOLOR_BLUE,
"video_msg_bgcolor_blue")
MSG_HASH(MENU_ENUM_LABEL_VIDEO_MESSAGE_BGCOLOR_OPACITY,
"video_msg_bgcolor_opacity")

View File

@ -3002,3 +3002,21 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_QUICK_MENU_SHOW_INFORMATION,
"Show Information")
MSG_HASH(MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_INFORMATION,
"Show/hide the 'Information' option.")
MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_DISABLE_KIOSK_MODE,
"Disable Kiosk Mode")
MSG_HASH(MENU_ENUM_SUBLABEL_MENU_DISABLE_KIOSK_MODE,
"Disables kiosk mode. A restart is required for the change to take full effect.")
MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_ENABLE_KIOSK_MODE,
"Enable Kiosk Mode")
MSG_HASH(MENU_ENUM_SUBLABEL_MENU_ENABLE_KIOSK_MODE,
"Protects the setup by hiding all configuration related settings.")
MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_KIOSK_MODE_PASSWORD,
"Set Password For Disabling Kiosk Mode")
MSG_HASH(MENU_ENUM_SUBLABEL_MENU_KIOSK_MODE_PASSWORD,
"Supplying a password when enabling kiosk mode makes it possible to later disable it from the menu, by going to the Main Menu, selecting Disable Kiosk Mode and entering the password.")
MSG_HASH(MSG_INPUT_KIOSK_MODE_PASSWORD,
"Enter Password")
MSG_HASH(MSG_INPUT_KIOSK_MODE_PASSWORD_OK,
"Password correct.")
MSG_HASH(MSG_INPUT_KIOSK_MODE_PASSWORD_NOK,
"Password incorrect.")

View File

@ -4102,3 +4102,30 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_QUICK_MENU_SHOW_INFORMATION,
MSG_HASH(MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_INFORMATION,
"Show/hide the 'Information' option."
)
MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_DISABLE_KIOSK_MODE,
"Disable Kiosk Mode"
)
MSG_HASH(MENU_ENUM_SUBLABEL_MENU_DISABLE_KIOSK_MODE,
"Disables kiosk mode. A restart is required for the change to take full effect."
)
MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_ENABLE_KIOSK_MODE,
"Enable Kiosk Mode"
)
MSG_HASH(MENU_ENUM_SUBLABEL_MENU_ENABLE_KIOSK_MODE,
"Protects the setup by hiding all configuration related settings."
)
MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_KIOSK_MODE_PASSWORD,
"Set Password For Disabling Kiosk Mode"
)
MSG_HASH(MENU_ENUM_SUBLABEL_MENU_KIOSK_MODE_PASSWORD,
"Supplying a password when enabling kiosk mode makes it possible to later disable it from the menu, by going to the Main Menu, selecting Disable Kiosk Mode and entering the password."
)
MSG_HASH(MSG_INPUT_KIOSK_MODE_PASSWORD,
"Enter Password"
)
MSG_HASH(MSG_INPUT_KIOSK_MODE_PASSWORD_OK,
"Password correct."
)
MSG_HASH(MSG_INPUT_KIOSK_MODE_PASSWORD_NOK,
"Password incorrect."
)

View File

@ -3109,3 +3109,21 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_QUICK_MENU_SHOW_INFORMATION,
"Show Information")
MSG_HASH(MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_INFORMATION,
"Show/hide the 'Information' option.")
MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_DISABLE_KIOSK_MODE,
"Disable Kiosk Mode")
MSG_HASH(MENU_ENUM_SUBLABEL_MENU_DISABLE_KIOSK_MODE,
"Disables kiosk mode. A restart is required for the change to take full effect.")
MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_ENABLE_KIOSK_MODE,
"Enable Kiosk Mode")
MSG_HASH(MENU_ENUM_SUBLABEL_MENU_ENABLE_KIOSK_MODE,
"Protects the setup by hiding all configuration related settings.")
MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_KIOSK_MODE_PASSWORD,
"Set Password For Disabling Kiosk Mode")
MSG_HASH(MENU_ENUM_SUBLABEL_MENU_KIOSK_MODE_PASSWORD,
"Supplying a password when enabling kiosk mode makes it possible to later disable it from the menu, by going to the Main Menu, selecting Disable Kiosk Mode and entering the password.")
MSG_HASH(MSG_INPUT_KIOSK_MODE_PASSWORD,
"Enter Password")
MSG_HASH(MSG_INPUT_KIOSK_MODE_PASSWORD_OK,
"Password correct.")
MSG_HASH(MSG_INPUT_KIOSK_MODE_PASSWORD_NOK,
"Password incorrect.")

View File

@ -3192,3 +3192,21 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_QUICK_MENU_SHOW_INFORMATION,
"Show Information")
MSG_HASH(MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_INFORMATION,
"Show/hide the 'Information' option.")
MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_DISABLE_KIOSK_MODE,
"Disable Kiosk Mode")
MSG_HASH(MENU_ENUM_SUBLABEL_MENU_DISABLE_KIOSK_MODE,
"Disables kiosk mode. A restart is required for the change to take full effect.")
MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_ENABLE_KIOSK_MODE,
"Enable Kiosk Mode")
MSG_HASH(MENU_ENUM_SUBLABEL_MENU_ENABLE_KIOSK_MODE,
"Protects the setup by hiding all configuration related settings.")
MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_KIOSK_MODE_PASSWORD,
"Set Password For Disabling Kiosk Mode")
MSG_HASH(MENU_ENUM_SUBLABEL_MENU_KIOSK_MODE_PASSWORD,
"Supplying a password when enabling kiosk mode makes it possible to later disable it from the menu, by going to the Main Menu, selecting Disable Kiosk Mode and entering the password.")
MSG_HASH(MSG_INPUT_KIOSK_MODE_PASSWORD,
"Enter Password")
MSG_HASH(MSG_INPUT_KIOSK_MODE_PASSWORD_OK,
"Password correct.")
MSG_HASH(MSG_INPUT_KIOSK_MODE_PASSWORD_NOK,
"Password incorrect.")

View File

@ -3237,3 +3237,21 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_VIDEO_MESSAGE_BGCOLOR_BLUE,
"Onscreen Notification Background Blue Color")
MSG_HASH(MENU_ENUM_LABEL_VALUE_VIDEO_MESSAGE_BGCOLOR_OPACITY,
"Onscreen Notification Background Opacity")
MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_DISABLE_KIOSK_MODE,
"Disable Kiosk Mode")
MSG_HASH(MENU_ENUM_SUBLABEL_MENU_DISABLE_KIOSK_MODE,
"Disables kiosk mode. A restart is required for the change to take full effect.")
MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_ENABLE_KIOSK_MODE,
"Enable Kiosk Mode")
MSG_HASH(MENU_ENUM_SUBLABEL_MENU_ENABLE_KIOSK_MODE,
"Protects the setup by hiding all configuration related settings.")
MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_KIOSK_MODE_PASSWORD,
"Set Password For Disabling Kiosk Mode")
MSG_HASH(MENU_ENUM_SUBLABEL_MENU_KIOSK_MODE_PASSWORD,
"Supplying a password when enabling kiosk mode makes it possible to later disable it from the menu, by going to the Main Menu, selecting Disable Kiosk Mode and entering the password.")
MSG_HASH(MSG_INPUT_KIOSK_MODE_PASSWORD,
"Enter Password")
MSG_HASH(MSG_INPUT_KIOSK_MODE_PASSWORD_OK,
"Password correct.")
MSG_HASH(MSG_INPUT_KIOSK_MODE_PASSWORD_NOK,
"Password incorrect.")

View File

@ -3163,3 +3163,21 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_QUICK_MENU_SHOW_INFORMATION,
"Show Information")
MSG_HASH(MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_INFORMATION,
"Show/hide the 'Information' option.")
MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_DISABLE_KIOSK_MODE,
"Disable Kiosk Mode")
MSG_HASH(MENU_ENUM_SUBLABEL_MENU_DISABLE_KIOSK_MODE,
"Disables kiosk mode. A restart is required for the change to take full effect.")
MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_ENABLE_KIOSK_MODE,
"Enable Kiosk Mode")
MSG_HASH(MENU_ENUM_SUBLABEL_MENU_ENABLE_KIOSK_MODE,
"Protects the setup by hiding all configuration related settings.")
MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_KIOSK_MODE_PASSWORD,
"Set Password For Disabling Kiosk Mode")
MSG_HASH(MENU_ENUM_SUBLABEL_MENU_KIOSK_MODE_PASSWORD,
"Supplying a password when enabling kiosk mode makes it possible to later disable it from the menu, by going to the Main Menu, selecting Disable Kiosk Mode and entering the password.")
MSG_HASH(MSG_INPUT_KIOSK_MODE_PASSWORD,
"Enter Password")
MSG_HASH(MSG_INPUT_KIOSK_MODE_PASSWORD_OK,
"Password correct.")
MSG_HASH(MSG_INPUT_KIOSK_MODE_PASSWORD_NOK,
"Password incorrect.")

View File

@ -1953,6 +1953,33 @@ static void menu_input_st_string_cb_rename_entry(void *userdata,
menu_input_dialog_end();
}
static void menu_input_st_string_cb_disable_kiosk_mode(void *userdata,
const char *str)
{
if (str && *str)
{
const char *label = menu_input_dialog_get_buffer();
settings_t *settings = config_get_ptr();
if (string_is_equal(label, settings->paths.kiosk_mode_password))
{
settings->bools.kiosk_mode_enable = false;
runloop_msg_queue_push(
msg_hash_to_str(MSG_INPUT_KIOSK_MODE_PASSWORD_OK),
1, 100, true);
}
else
{
runloop_msg_queue_push(
msg_hash_to_str(MSG_INPUT_KIOSK_MODE_PASSWORD_NOK),
1, 100, true);
}
}
menu_input_dialog_end();
}
static void menu_input_st_string_cb_enable_settings(void *userdata,
const char *str)
{
@ -3243,6 +3270,22 @@ static int action_ok_delete_entry(const char *path,
return 0;
}
static int action_ok_disable_kiosk_mode(const char *path,
const char *label, unsigned type, size_t idx, size_t entry_idx)
{
menu_input_ctx_line_t line;
line.label = msg_hash_to_str(MSG_INPUT_KIOSK_MODE_PASSWORD);
line.label_setting = label;
line.type = type;
line.idx = (unsigned)entry_idx;
line.cb = menu_input_st_string_cb_disable_kiosk_mode;
if (!menu_input_dialog_start(&line))
return -1;
return 0;
}
static int action_ok_enable_settings(const char *path,
const char *label, unsigned type, size_t idx, size_t entry_idx)
{
@ -4367,6 +4410,9 @@ static int menu_cbs_init_bind_ok_compare_label(menu_file_list_cbs_t *cbs,
case MENU_ENUM_LABEL_DELETE_ENTRY:
BIND_ACTION_OK(cbs, action_ok_delete_entry);
break;
case MENU_ENUM_LABEL_MENU_DISABLE_KIOSK_MODE:
BIND_ACTION_OK(cbs, action_ok_disable_kiosk_mode);
break;
case MENU_ENUM_LABEL_XMB_MAIN_MENU_ENABLE_SETTINGS:
BIND_ACTION_OK(cbs, action_ok_enable_settings);
break;

View File

@ -301,6 +301,9 @@ default_sublabel_macro(action_bind_sublabel_quick_menu_show_shaders,
default_sublabel_macro(action_bind_sublabel_quick_menu_show_save_core_overrides, MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_SAVE_CORE_OVERRIDES)
default_sublabel_macro(action_bind_sublabel_quick_menu_show_save_game_overrides, MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_SAVE_GAME_OVERRIDES)
default_sublabel_macro(action_bind_sublabel_quick_menu_show_information, MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_INFORMATION)
default_sublabel_macro(action_bind_sublabel_menu_enable_kiosk_mode, MENU_ENUM_SUBLABEL_MENU_ENABLE_KIOSK_MODE)
default_sublabel_macro(action_bind_sublabel_menu_disable_kiosk_mode, MENU_ENUM_SUBLABEL_MENU_DISABLE_KIOSK_MODE)
default_sublabel_macro(action_bind_sublabel_menu_kiosk_mode_password, MENU_ENUM_SUBLABEL_MENU_KIOSK_MODE_PASSWORD)
default_sublabel_macro(action_bind_sublabel_menu_favorites_tab, MENU_ENUM_SUBLABEL_XMB_SHOW_FAVORITES)
default_sublabel_macro(action_bind_sublabel_menu_images_tab, MENU_ENUM_SUBLABEL_XMB_SHOW_IMAGES)
default_sublabel_macro(action_bind_sublabel_menu_show_load_core, MENU_ENUM_SUBLABEL_MENU_SHOW_LOAD_CORE)
@ -643,6 +646,15 @@ int menu_cbs_init_bind_sublabel(menu_file_list_cbs_t *cbs,
case MENU_ENUM_LABEL_QUICK_MENU_SHOW_INFORMATION:
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_quick_menu_show_information);
break;
case MENU_ENUM_LABEL_MENU_ENABLE_KIOSK_MODE:
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_menu_enable_kiosk_mode);
break;
case MENU_ENUM_LABEL_MENU_DISABLE_KIOSK_MODE:
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_menu_disable_kiosk_mode);
break;
case MENU_ENUM_LABEL_MENU_KIOSK_MODE_PASSWORD:
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_menu_kiosk_mode_password);
break;
case MENU_ENUM_LABEL_XMB_SHOW_FAVORITES:
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_menu_favorites_tab);
break;

View File

@ -3461,7 +3461,7 @@ static void *xmb_init(void **userdata, bool video_is_threaded)
xmb->system_tab_end = 0;
xmb->tabs[xmb->system_tab_end] = XMB_SYSTEM_TAB_MAIN;
if (settings->bools.menu_xmb_show_settings)
if (settings->bools.menu_xmb_show_settings && !settings->bools.kiosk_mode_enable)
xmb->tabs[++xmb->system_tab_end] = XMB_SYSTEM_TAB_SETTINGS;
if (settings->bools.menu_xmb_show_favorites)
xmb->tabs[++xmb->system_tab_end] = XMB_SYSTEM_TAB_FAVORITES;
@ -3482,7 +3482,7 @@ static void *xmb_init(void **userdata, bool video_is_threaded)
xmb->tabs[++xmb->system_tab_end] = XMB_SYSTEM_TAB_NETPLAY;
#endif
#ifdef HAVE_LIBRETRODB
if (settings->bools.menu_xmb_show_add)
if (settings->bools.menu_xmb_show_add && !settings->bools.kiosk_mode_enable)
xmb->tabs[++xmb->system_tab_end] = XMB_SYSTEM_TAB_ADD;
#endif
@ -4282,11 +4282,15 @@ static int xmb_list_push(void *data, void *userdata,
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR,
MENU_SETTING_ACTION, 0, 0);
menu_entries_append_enum(info->list,
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_MENU_FILE_BROWSER_SETTINGS),
msg_hash_to_str(MENU_ENUM_LABEL_MENU_FILE_BROWSER_SETTINGS),
MENU_ENUM_LABEL_MENU_FILE_BROWSER_SETTINGS,
MENU_SETTING_ACTION, 0, 0);
settings_t *settings = config_get_ptr();
if (!settings->bools.kiosk_mode_enable)
{
menu_entries_append_enum(info->list,
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_MENU_FILE_BROWSER_SETTINGS),
msg_hash_to_str(MENU_ENUM_LABEL_MENU_FILE_BROWSER_SETTINGS),
MENU_ENUM_LABEL_MENU_FILE_BROWSER_SETTINGS,
MENU_SETTING_ACTION, 0, 0);
}
info->need_push = true;
info->need_refresh = true;
@ -4340,7 +4344,7 @@ static int xmb_list_push(void *data, void *userdata,
#if defined(HAVE_NETWORKING)
{
settings_t *settings = config_get_ptr();
if (settings->bools.menu_show_online_updater)
if (settings->bools.menu_show_online_updater && !settings->bools.kiosk_mode_enable)
{
entry.enum_idx = MENU_ENUM_LABEL_ONLINE_UPDATER;
menu_displaylist_ctl(DISPLAYLIST_SETTING_ENUM, &entry);
@ -4353,6 +4357,12 @@ static int xmb_list_push(void *data, void *userdata,
menu_displaylist_ctl(DISPLAYLIST_SETTING_ENUM, &entry);
}
if (settings->bools.kiosk_mode_enable && !string_is_empty(settings->paths.kiosk_mode_password))
{
entry.enum_idx = MENU_ENUM_LABEL_MENU_DISABLE_KIOSK_MODE;
menu_displaylist_ctl(DISPLAYLIST_SETTING_ENUM, &entry);
}
if (settings->bools.menu_show_information)
{
entry.enum_idx = MENU_ENUM_LABEL_INFORMATION_LIST;
@ -4364,7 +4374,7 @@ static int xmb_list_push(void *data, void *userdata,
menu_displaylist_ctl(DISPLAYLIST_SETTING_ENUM, &entry);
#endif
if (settings->bools.menu_show_configurations)
if (settings->bools.menu_show_configurations && !settings->bools.kiosk_mode_enable)
{
entry.enum_idx = MENU_ENUM_LABEL_CONFIGURATIONS_LIST;
menu_displaylist_ctl(DISPLAYLIST_SETTING_ENUM, &entry);

View File

@ -2889,7 +2889,7 @@ static int menu_displaylist_parse_load_content_settings(
MENU_ENUM_LABEL_ADD_TO_FAVORITES, FILE_TYPE_PLAYLIST_ENTRY, 0, 0);
}
if (settings->bools.quick_menu_show_options)
if (settings->bools.quick_menu_show_options && !settings->bools.kiosk_mode_enable)
{
menu_entries_append_enum(info->list,
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_CORE_OPTIONS),
@ -2906,7 +2906,7 @@ static int menu_displaylist_parse_load_content_settings(
MENU_SETTING_ACTION, 0, 0);
#endif
if (settings->bools.quick_menu_show_controls)
if (settings->bools.quick_menu_show_controls && !settings->bools.kiosk_mode_enable)
{
menu_entries_append_enum(info->list,
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_CORE_INPUT_REMAPPING_OPTIONS),
@ -2936,7 +2936,7 @@ static int menu_displaylist_parse_load_content_settings(
MENU_SETTING_ACTION_CORE_DISK_OPTIONS, 0, 0);
#ifdef HAVE_SHADER_MANAGER
if (settings->bools.quick_menu_show_shaders)
if (settings->bools.quick_menu_show_shaders && !settings->bools.kiosk_mode_enable)
{
menu_entries_append_enum(info->list,
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SHADER_OPTIONS),
@ -2949,7 +2949,7 @@ static int menu_displaylist_parse_load_content_settings(
#ifdef HAVE_LAKKA
if (show_advanced_settings)
#endif
if (settings->bools.quick_menu_show_save_core_overrides)
if (settings->bools.quick_menu_show_save_core_overrides && !settings->bools.kiosk_mode_enable)
{
menu_entries_append_enum(info->list,
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SAVE_CURRENT_CONFIG_OVERRIDE_CORE),
@ -2961,7 +2961,7 @@ static int menu_displaylist_parse_load_content_settings(
#ifdef HAVE_LAKKA
if (show_advanced_settings)
#endif
if (settings->bools.quick_menu_show_save_game_overrides)
if (settings->bools.quick_menu_show_save_game_overrides && !settings->bools.kiosk_mode_enable)
{
menu_entries_append_enum(info->list,
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SAVE_CURRENT_CONFIG_OVERRIDE_GAME),
@ -3045,14 +3045,14 @@ static int menu_displaylist_parse_horizontal_content_actions(
msg_hash_to_str(MENU_ENUM_LABEL_RUN),
MENU_ENUM_LABEL_RUN, FILE_TYPE_PLAYLIST_ENTRY, 0, idx);
if (settings->bools.playlist_entry_rename)
if (settings->bools.playlist_entry_rename && !settings->bools.kiosk_mode_enable)
menu_entries_append_enum(info->list,
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_RENAME_ENTRY),
msg_hash_to_str(MENU_ENUM_LABEL_RENAME_ENTRY),
MENU_ENUM_LABEL_RENAME_ENTRY,
FILE_TYPE_PLAYLIST_ENTRY, 0, idx);
if (settings->bools.playlist_entry_remove)
if (settings->bools.playlist_entry_remove && !settings->bools.kiosk_mode_enable)
menu_entries_append_enum(info->list,
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_DELETE_ENTRY),
msg_hash_to_str(MENU_ENUM_LABEL_DELETE_ENTRY),
@ -4272,7 +4272,7 @@ bool menu_displaylist_process(menu_displaylist_info_t *info)
file_list_sort_on_alt(info->list);
#if defined(HAVE_NETWORKING)
if (settings->bools.menu_show_core_updater)
if (settings->bools.menu_show_core_updater && !settings->bools.kiosk_mode_enable)
if (info->download_core)
{
menu_entries_append_enum(info->list,
@ -5564,6 +5564,12 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data)
menu_displaylist_parse_settings_enum(menu, info,
MENU_ENUM_LABEL_SHOW_ADVANCED_SETTINGS,
PARSE_ONLY_BOOL, false);
menu_displaylist_parse_settings_enum(menu, info,
MENU_ENUM_LABEL_MENU_ENABLE_KIOSK_MODE,
PARSE_ONLY_BOOL, false);
menu_displaylist_parse_settings_enum(menu, info,
MENU_ENUM_LABEL_MENU_KIOSK_MODE_PASSWORD,
PARSE_ONLY_STRING, false);
menu_displaylist_parse_settings_enum(menu, info,
MENU_ENUM_LABEL_NAVIGATION_WRAPAROUND,
PARSE_ONLY_BOOL, false);

View File

@ -2287,6 +2287,14 @@ static bool setting_append_list(
&subgroup_info,
parent_group);
CONFIG_ACTION(
list, list_info,
MENU_ENUM_LABEL_MENU_DISABLE_KIOSK_MODE,
MENU_ENUM_LABEL_VALUE_MENU_DISABLE_KIOSK_MODE,
&group_info,
&subgroup_info,
parent_group);
#ifndef HAVE_DYNAMIC
if (frontend_driver_has_fork())
#endif
@ -5253,6 +5261,38 @@ static bool setting_append_list(
general_read_handler,
SD_FLAG_NONE);
if (string_is_equal_fast(settings->arrays.menu_driver, "xmb", 3))
{
CONFIG_BOOL(
list, list_info,
&settings->bools.kiosk_mode_enable,
MENU_ENUM_LABEL_MENU_ENABLE_KIOSK_MODE,
MENU_ENUM_LABEL_VALUE_MENU_ENABLE_KIOSK_MODE,
kiosk_mode_enable,
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_STRING(
list, list_info,
settings->paths.kiosk_mode_password,
sizeof(settings->paths.kiosk_mode_password),
MENU_ENUM_LABEL_MENU_KIOSK_MODE_PASSWORD,
MENU_ENUM_LABEL_VALUE_MENU_KIOSK_MODE_PASSWORD,
"",
&group_info,
&subgroup_info,
parent_group,
general_write_handler,
general_read_handler);
settings_data_list_current_add_flags(list, list_info, SD_FLAG_ALLOW_INPUT);
}
#ifdef HAVE_THREADS
CONFIG_BOOL(
list, list_info,

View File

@ -293,6 +293,9 @@ enum msg_hash_enums
MSG_INPUT_ENABLE_SETTINGS_PASSWORD,
MSG_INPUT_ENABLE_SETTINGS_PASSWORD_OK,
MSG_INPUT_ENABLE_SETTINGS_PASSWORD_NOK,
MSG_INPUT_KIOSK_MODE_PASSWORD,
MSG_INPUT_KIOSK_MODE_PASSWORD_OK,
MSG_INPUT_KIOSK_MODE_PASSWORD_NOK,
MSG_REMAP_FILE_SAVED_SUCCESSFULLY,
MSG_REMAP_FILE_REMOVED_SUCCESSFULLY,
MSG_SHADER_PRESET_SAVED_SUCCESSFULLY,
@ -686,6 +689,9 @@ enum msg_hash_enums
MENU_LABEL(MENU_SHOW_REBOOT),
MENU_LABEL(MENU_SHOW_ONLINE_UPDATER),
MENU_LABEL(MENU_SHOW_CORE_UPDATER),
MENU_LABEL(MENU_ENABLE_KIOSK_MODE),
MENU_LABEL(MENU_DISABLE_KIOSK_MODE),
MENU_LABEL(MENU_KIOSK_MODE_PASSWORD),
MENU_LABEL(RUN_MUSIC),
MENU_LABEL(RUN),
MENU_LABEL(MENU_WALLPAPER),