From 39619d124574de81cc4e82d1aa0b4c865d3c2ede Mon Sep 17 00:00:00 2001 From: Brunnis Date: Wed, 11 Oct 2017 11:30:53 +0200 Subject: [PATCH] Implemented new Kiosk Mode setting which hides all configuration related settings/tabs in XMB. --- config.def.h | 2 ++ configuration.c | 2 ++ configuration.h | 2 ++ intl/msg_hash_chs.h | 18 ++++++++++++++ intl/msg_hash_cht.h | 18 ++++++++++++++ intl/msg_hash_de.h | 18 ++++++++++++++ intl/msg_hash_eo.h | 18 ++++++++++++++ intl/msg_hash_fr.h | 18 ++++++++++++++ intl/msg_hash_it.h | 18 ++++++++++++++ intl/msg_hash_ja.h | 18 ++++++++++++++ intl/msg_hash_ko.h | 18 ++++++++++++++ intl/msg_hash_lbl.h | 6 +++++ intl/msg_hash_nl.h | 18 ++++++++++++++ intl/msg_hash_pt_br.h | 27 +++++++++++++++++++++ intl/msg_hash_pt_pt.h | 18 ++++++++++++++ intl/msg_hash_ru.h | 18 ++++++++++++++ intl/msg_hash_us.h | 18 ++++++++++++++ intl/msg_hash_vn.h | 18 ++++++++++++++ menu/cbs/menu_cbs_ok.c | 46 ++++++++++++++++++++++++++++++++++++ menu/cbs/menu_cbs_sublabel.c | 12 ++++++++++ menu/drivers/xmb.c | 28 +++++++++++++++------- menu/menu_displaylist.c | 22 ++++++++++------- menu/menu_setting.c | 40 +++++++++++++++++++++++++++++++ msg_hash.h | 6 +++++ 24 files changed, 410 insertions(+), 17 deletions(-) diff --git a/config.def.h b/config.def.h index 58623bdd80..0054870b1f 100644 --- a/config.def.h +++ b/config.def.h @@ -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; diff --git a/configuration.c b/configuration.c index e5998d8911..d1717dfa82 100644 --- a/configuration.c +++ b/configuration.c @@ -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 diff --git a/configuration.h b/configuration.h index c8c7172d3d..3e46ffdec9 100644 --- a/configuration.h +++ b/configuration.h @@ -156,6 +156,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; @@ -395,6 +396,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]; diff --git a/intl/msg_hash_chs.h b/intl/msg_hash_chs.h index a11bfbe4c6..ba19d029a7 100644 --- a/intl/msg_hash_chs.h +++ b/intl/msg_hash_chs.h @@ -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.") diff --git a/intl/msg_hash_cht.h b/intl/msg_hash_cht.h index f042968c41..5ada1e2891 100644 --- a/intl/msg_hash_cht.h +++ b/intl/msg_hash_cht.h @@ -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.") diff --git a/intl/msg_hash_de.h b/intl/msg_hash_de.h index bd8aac4ed8..a0eb20fe2d 100644 --- a/intl/msg_hash_de.h +++ b/intl/msg_hash_de.h @@ -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.") diff --git a/intl/msg_hash_eo.h b/intl/msg_hash_eo.h index c4eaa936f6..4f6fe4460c 100644 --- a/intl/msg_hash_eo.h +++ b/intl/msg_hash_eo.h @@ -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.") diff --git a/intl/msg_hash_fr.h b/intl/msg_hash_fr.h index 51911b4f8b..94bd0f9bbb 100644 --- a/intl/msg_hash_fr.h +++ b/intl/msg_hash_fr.h @@ -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.") diff --git a/intl/msg_hash_it.h b/intl/msg_hash_it.h index b5659fff47..ba77e7beaf 100644 --- a/intl/msg_hash_it.h +++ b/intl/msg_hash_it.h @@ -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.") diff --git a/intl/msg_hash_ja.h b/intl/msg_hash_ja.h index 3b670dfa86..e1d4910954 100644 --- a/intl/msg_hash_ja.h +++ b/intl/msg_hash_ja.h @@ -3141,3 +3141,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.") diff --git a/intl/msg_hash_ko.h b/intl/msg_hash_ko.h index 57b8fbeadd..a0db09d6f7 100644 --- a/intl/msg_hash_ko.h +++ b/intl/msg_hash_ko.h @@ -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.") diff --git a/intl/msg_hash_lbl.h b/intl/msg_hash_lbl.h index e9598cb327..c06c947d43 100644 --- a/intl/msg_hash_lbl.h +++ b/intl/msg_hash_lbl.h @@ -1343,3 +1343,9 @@ 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") diff --git a/intl/msg_hash_nl.h b/intl/msg_hash_nl.h index ebf00c87e6..1cb34b3446 100644 --- a/intl/msg_hash_nl.h +++ b/intl/msg_hash_nl.h @@ -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.") diff --git a/intl/msg_hash_pt_br.h b/intl/msg_hash_pt_br.h index e5c6c3f25f..bf472714fb 100644 --- a/intl/msg_hash_pt_br.h +++ b/intl/msg_hash_pt_br.h @@ -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." + ) diff --git a/intl/msg_hash_pt_pt.h b/intl/msg_hash_pt_pt.h index b49979d710..4815a6e8b1 100644 --- a/intl/msg_hash_pt_pt.h +++ b/intl/msg_hash_pt_pt.h @@ -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.") diff --git a/intl/msg_hash_ru.h b/intl/msg_hash_ru.h index 3b4bcecc33..8f734f92a1 100644 --- a/intl/msg_hash_ru.h +++ b/intl/msg_hash_ru.h @@ -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.") diff --git a/intl/msg_hash_us.h b/intl/msg_hash_us.h index fda0dd1aef..8a938d721b 100644 --- a/intl/msg_hash_us.h +++ b/intl/msg_hash_us.h @@ -3227,3 +3227,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.") diff --git a/intl/msg_hash_vn.h b/intl/msg_hash_vn.h index a1ec403288..ccd6105fdf 100644 --- a/intl/msg_hash_vn.h +++ b/intl/msg_hash_vn.h @@ -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.") diff --git a/menu/cbs/menu_cbs_ok.c b/menu/cbs/menu_cbs_ok.c index 32cc1edf26..a310c385cf 100644 --- a/menu/cbs/menu_cbs_ok.c +++ b/menu/cbs/menu_cbs_ok.c @@ -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; diff --git a/menu/cbs/menu_cbs_sublabel.c b/menu/cbs/menu_cbs_sublabel.c index 94660b0391..49994a53df 100644 --- a/menu/cbs/menu_cbs_sublabel.c +++ b/menu/cbs/menu_cbs_sublabel.c @@ -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; diff --git a/menu/drivers/xmb.c b/menu/drivers/xmb.c index ef6b4a71fa..529d97193e 100755 --- a/menu/drivers/xmb.c +++ b/menu/drivers/xmb.c @@ -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); diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index 3abcf26721..824d8c710d 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -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, @@ -5549,6 +5549,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); diff --git a/menu/menu_setting.c b/menu/menu_setting.c index 9318302ce2..d2d63e5c5a 100644 --- a/menu/menu_setting.c +++ b/menu/menu_setting.c @@ -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 @@ -5184,6 +5192,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, diff --git a/msg_hash.h b/msg_hash.h index 5c221e4f1e..59f1272b24 100644 --- a/msg_hash.h +++ b/msg_hash.h @@ -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, @@ -681,6 +684,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),