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_save_game_overrides = true;
static bool quick_menu_show_information = 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_online_updater = true;
static bool menu_show_load_core = true; static bool menu_show_load_core = true;
static bool menu_show_load_content = 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_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); SETTING_PATH("xmb_show_settings_password", settings->paths.menu_xmb_show_settings_password, false, NULL, true);
#endif #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("netplay_nickname", settings->paths.username, false, NULL, true);
SETTING_PATH("video_filter", settings->paths.path_softfilter_plugin, 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); 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_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_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("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 #ifdef HAVE_MATERIALUI
SETTING_BOOL("materialui_icons_enable", &settings->bools.menu_materialui_icons_enable, true, materialui_icons_enable, false); SETTING_BOOL("materialui_icons_enable", &settings->bools.menu_materialui_icons_enable, true, materialui_icons_enable, false);
#endif #endif

View File

@ -157,6 +157,7 @@ typedef struct settings
bool quick_menu_show_save_core_overrides; bool quick_menu_show_save_core_overrides;
bool quick_menu_show_save_game_overrides; bool quick_menu_show_save_game_overrides;
bool quick_menu_show_information; bool quick_menu_show_information;
bool kiosk_mode_enable;
/* Netplay */ /* Netplay */
bool netplay_public_announce; bool netplay_public_announce;
@ -400,6 +401,7 @@ typedef struct settings
char path_menu_xmb_font[PATH_MAX_LENGTH]; char path_menu_xmb_font[PATH_MAX_LENGTH];
char menu_xmb_show_settings_password[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_cheat_database[PATH_MAX_LENGTH];
char path_content_database[PATH_MAX_LENGTH]; char path_content_database[PATH_MAX_LENGTH];
char path_overlay[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") "Show Information")
MSG_HASH(MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_INFORMATION, MSG_HASH(MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_INFORMATION,
"Show/hide the 'Information' option.") "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") "Show Information")
MSG_HASH(MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_INFORMATION, MSG_HASH(MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_INFORMATION,
"Show/hide the 'Information' option.") "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") "Show Information")
MSG_HASH(MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_INFORMATION, MSG_HASH(MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_INFORMATION,
"Show/hide the 'Information' option.") "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") "Show Information")
MSG_HASH(MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_INFORMATION, MSG_HASH(MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_INFORMATION,
"Show/hide the 'Information' option.") "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") "Show Information")
MSG_HASH(MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_INFORMATION, MSG_HASH(MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_INFORMATION,
"Show/hide the 'Information' option.") "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") "Show Information")
MSG_HASH(MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_INFORMATION, MSG_HASH(MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_INFORMATION,
"Show/hide the 'Information' option.") "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メッセージ背景の不透明性") "OSDメッセージ背景の不透明性")
MSG_HASH(MENU_ENUM_LABEL_VALUE_ADD_TO_FAVORITES, 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") "Show Information")
MSG_HASH(MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_INFORMATION, MSG_HASH(MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_INFORMATION,
"Show/hide the 'Information' option.") "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") "quick_menu_show_save_game_overrides")
MSG_HASH(MENU_ENUM_LABEL_QUICK_MENU_SHOW_INFORMATION, MSG_HASH(MENU_ENUM_LABEL_QUICK_MENU_SHOW_INFORMATION,
"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, MSG_HASH(MENU_ENUM_LABEL_VIDEO_MESSAGE_BGCOLOR_ENABLE,
"video_msg_bgcolor_enable") "video_msg_bgcolor_enable")
MSG_HASH(MENU_ENUM_LABEL_VIDEO_MESSAGE_BGCOLOR_RED, 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") "video_msg_bgcolor_blue")
MSG_HASH(MENU_ENUM_LABEL_VIDEO_MESSAGE_BGCOLOR_OPACITY, MSG_HASH(MENU_ENUM_LABEL_VIDEO_MESSAGE_BGCOLOR_OPACITY,
"video_msg_bgcolor_opacity") "video_msg_bgcolor_opacity")

View File

@ -3002,3 +3002,21 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_QUICK_MENU_SHOW_INFORMATION,
"Show Information") "Show Information")
MSG_HASH(MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_INFORMATION, MSG_HASH(MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_INFORMATION,
"Show/hide the 'Information' option.") "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, MSG_HASH(MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_INFORMATION,
"Show/hide the 'Information' option." "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") "Show Information")
MSG_HASH(MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_INFORMATION, MSG_HASH(MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_INFORMATION,
"Show/hide the 'Information' option.") "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") "Show Information")
MSG_HASH(MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_INFORMATION, MSG_HASH(MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_INFORMATION,
"Show/hide the 'Information' option.") "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") "Onscreen Notification Background Blue Color")
MSG_HASH(MENU_ENUM_LABEL_VALUE_VIDEO_MESSAGE_BGCOLOR_OPACITY, MSG_HASH(MENU_ENUM_LABEL_VALUE_VIDEO_MESSAGE_BGCOLOR_OPACITY,
"Onscreen Notification Background 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") "Show Information")
MSG_HASH(MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_INFORMATION, MSG_HASH(MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_INFORMATION,
"Show/hide the 'Information' option.") "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(); 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, static void menu_input_st_string_cb_enable_settings(void *userdata,
const char *str) const char *str)
{ {
@ -3243,6 +3270,22 @@ static int action_ok_delete_entry(const char *path,
return 0; 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, static int action_ok_enable_settings(const char *path,
const char *label, unsigned type, size_t idx, size_t entry_idx) 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: case MENU_ENUM_LABEL_DELETE_ENTRY:
BIND_ACTION_OK(cbs, action_ok_delete_entry); BIND_ACTION_OK(cbs, action_ok_delete_entry);
break; 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: case MENU_ENUM_LABEL_XMB_MAIN_MENU_ENABLE_SETTINGS:
BIND_ACTION_OK(cbs, action_ok_enable_settings); BIND_ACTION_OK(cbs, action_ok_enable_settings);
break; 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_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_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_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_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_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) 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: case MENU_ENUM_LABEL_QUICK_MENU_SHOW_INFORMATION:
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_quick_menu_show_information); BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_quick_menu_show_information);
break; 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: case MENU_ENUM_LABEL_XMB_SHOW_FAVORITES:
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_menu_favorites_tab); BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_menu_favorites_tab);
break; break;

View File

@ -3461,7 +3461,7 @@ static void *xmb_init(void **userdata, bool video_is_threaded)
xmb->system_tab_end = 0; xmb->system_tab_end = 0;
xmb->tabs[xmb->system_tab_end] = XMB_SYSTEM_TAB_MAIN; 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; xmb->tabs[++xmb->system_tab_end] = XMB_SYSTEM_TAB_SETTINGS;
if (settings->bools.menu_xmb_show_favorites) if (settings->bools.menu_xmb_show_favorites)
xmb->tabs[++xmb->system_tab_end] = XMB_SYSTEM_TAB_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; xmb->tabs[++xmb->system_tab_end] = XMB_SYSTEM_TAB_NETPLAY;
#endif #endif
#ifdef HAVE_LIBRETRODB #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; xmb->tabs[++xmb->system_tab_end] = XMB_SYSTEM_TAB_ADD;
#endif #endif
@ -4282,11 +4282,15 @@ static int xmb_list_push(void *data, void *userdata,
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR,
MENU_SETTING_ACTION, 0, 0); MENU_SETTING_ACTION, 0, 0);
menu_entries_append_enum(info->list, settings_t *settings = config_get_ptr();
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_MENU_FILE_BROWSER_SETTINGS), if (!settings->bools.kiosk_mode_enable)
msg_hash_to_str(MENU_ENUM_LABEL_MENU_FILE_BROWSER_SETTINGS), {
MENU_ENUM_LABEL_MENU_FILE_BROWSER_SETTINGS, menu_entries_append_enum(info->list,
MENU_SETTING_ACTION, 0, 0); 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_push = true;
info->need_refresh = true; info->need_refresh = true;
@ -4340,7 +4344,7 @@ static int xmb_list_push(void *data, void *userdata,
#if defined(HAVE_NETWORKING) #if defined(HAVE_NETWORKING)
{ {
settings_t *settings = config_get_ptr(); 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; entry.enum_idx = MENU_ENUM_LABEL_ONLINE_UPDATER;
menu_displaylist_ctl(DISPLAYLIST_SETTING_ENUM, &entry); 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); 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) if (settings->bools.menu_show_information)
{ {
entry.enum_idx = MENU_ENUM_LABEL_INFORMATION_LIST; 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); menu_displaylist_ctl(DISPLAYLIST_SETTING_ENUM, &entry);
#endif #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; entry.enum_idx = MENU_ENUM_LABEL_CONFIGURATIONS_LIST;
menu_displaylist_ctl(DISPLAYLIST_SETTING_ENUM, &entry); 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); 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, menu_entries_append_enum(info->list,
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_CORE_OPTIONS), 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); MENU_SETTING_ACTION, 0, 0);
#endif #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, menu_entries_append_enum(info->list,
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_CORE_INPUT_REMAPPING_OPTIONS), 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); MENU_SETTING_ACTION_CORE_DISK_OPTIONS, 0, 0);
#ifdef HAVE_SHADER_MANAGER #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, menu_entries_append_enum(info->list,
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SHADER_OPTIONS), 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 #ifdef HAVE_LAKKA
if (show_advanced_settings) if (show_advanced_settings)
#endif #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, menu_entries_append_enum(info->list,
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SAVE_CURRENT_CONFIG_OVERRIDE_CORE), 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 #ifdef HAVE_LAKKA
if (show_advanced_settings) if (show_advanced_settings)
#endif #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, menu_entries_append_enum(info->list,
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SAVE_CURRENT_CONFIG_OVERRIDE_GAME), 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), msg_hash_to_str(MENU_ENUM_LABEL_RUN),
MENU_ENUM_LABEL_RUN, FILE_TYPE_PLAYLIST_ENTRY, 0, idx); 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, menu_entries_append_enum(info->list,
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_RENAME_ENTRY), msg_hash_to_str(MENU_ENUM_LABEL_VALUE_RENAME_ENTRY),
msg_hash_to_str(MENU_ENUM_LABEL_RENAME_ENTRY), msg_hash_to_str(MENU_ENUM_LABEL_RENAME_ENTRY),
MENU_ENUM_LABEL_RENAME_ENTRY, MENU_ENUM_LABEL_RENAME_ENTRY,
FILE_TYPE_PLAYLIST_ENTRY, 0, idx); 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, menu_entries_append_enum(info->list,
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_DELETE_ENTRY), msg_hash_to_str(MENU_ENUM_LABEL_VALUE_DELETE_ENTRY),
msg_hash_to_str(MENU_ENUM_LABEL_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); file_list_sort_on_alt(info->list);
#if defined(HAVE_NETWORKING) #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) if (info->download_core)
{ {
menu_entries_append_enum(info->list, 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_displaylist_parse_settings_enum(menu, info,
MENU_ENUM_LABEL_SHOW_ADVANCED_SETTINGS, MENU_ENUM_LABEL_SHOW_ADVANCED_SETTINGS,
PARSE_ONLY_BOOL, false); 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_displaylist_parse_settings_enum(menu, info,
MENU_ENUM_LABEL_NAVIGATION_WRAPAROUND, MENU_ENUM_LABEL_NAVIGATION_WRAPAROUND,
PARSE_ONLY_BOOL, false); PARSE_ONLY_BOOL, false);

View File

@ -2287,6 +2287,14 @@ static bool setting_append_list(
&subgroup_info, &subgroup_info,
parent_group); 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 #ifndef HAVE_DYNAMIC
if (frontend_driver_has_fork()) if (frontend_driver_has_fork())
#endif #endif
@ -5253,6 +5261,38 @@ static bool setting_append_list(
general_read_handler, general_read_handler,
SD_FLAG_NONE); 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 #ifdef HAVE_THREADS
CONFIG_BOOL( CONFIG_BOOL(
list, list_info, list, list_info,

View File

@ -293,6 +293,9 @@ enum msg_hash_enums
MSG_INPUT_ENABLE_SETTINGS_PASSWORD, MSG_INPUT_ENABLE_SETTINGS_PASSWORD,
MSG_INPUT_ENABLE_SETTINGS_PASSWORD_OK, MSG_INPUT_ENABLE_SETTINGS_PASSWORD_OK,
MSG_INPUT_ENABLE_SETTINGS_PASSWORD_NOK, 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_SAVED_SUCCESSFULLY,
MSG_REMAP_FILE_REMOVED_SUCCESSFULLY, MSG_REMAP_FILE_REMOVED_SUCCESSFULLY,
MSG_SHADER_PRESET_SAVED_SUCCESSFULLY, MSG_SHADER_PRESET_SAVED_SUCCESSFULLY,
@ -686,6 +689,9 @@ enum msg_hash_enums
MENU_LABEL(MENU_SHOW_REBOOT), MENU_LABEL(MENU_SHOW_REBOOT),
MENU_LABEL(MENU_SHOW_ONLINE_UPDATER), MENU_LABEL(MENU_SHOW_ONLINE_UPDATER),
MENU_LABEL(MENU_SHOW_CORE_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_MUSIC),
MENU_LABEL(RUN), MENU_LABEL(RUN),
MENU_LABEL(MENU_WALLPAPER), MENU_LABEL(MENU_WALLPAPER),