From 46bafd6e46772d17cf0ac2615f8d83b304a5ce05 Mon Sep 17 00:00:00 2001 From: MrHuu Date: Wed, 17 Aug 2022 08:23:07 +0200 Subject: [PATCH] (3DS) Add bottom menu options (#14323) --- config.def.h | 6 +- configuration.c | 23 ++++-- configuration.h | 16 +++- defaults.h | 3 + frontend/drivers/platform_ctr.c | 3 + gfx/common/ctr_common.h | 18 +++-- gfx/drivers/ctr_gfx.c | 84 ++++++++++++-------- intl/msg_hash_lbl.h | 42 +++++++++- intl/msg_hash_us.h | 68 ++++++++++++++++- menu/cbs/menu_cbs_deferred_push.c | 6 ++ menu/cbs/menu_cbs_ok.c | 13 ++++ menu/cbs/menu_cbs_sublabel.c | 46 +++++++++-- menu/cbs/menu_cbs_title.c | 6 ++ menu/menu_cbs.h | 3 + menu/menu_displaylist.c | 58 +++++++++++++- menu/menu_displaylist.h | 3 + menu/menu_setting.c | 123 ++++++++++++++++++++++++++++-- msg_hash.h | 18 ++++- 18 files changed, 474 insertions(+), 65 deletions(-) diff --git a/config.def.h b/config.def.h index 02a48f385dc..3b8eae59ccf 100644 --- a/config.def.h +++ b/config.def.h @@ -976,13 +976,17 @@ static const float message_bgcolor_opacity = 1.0f; * Used for setups where one manually rotates the monitor. */ #define DEFAULT_ALLOW_ROTATE true -#if defined(_3DS) +#ifdef _3DS /* Enable New3DS clock and L2 cache */ static const bool new3ds_speedup_enable = true; /* Enable bottom LCD screen */ static const bool video_3ds_lcd_bottom = true; /* Sets video display mode (3D, 2D, etc.) */ static const unsigned video_3ds_display_mode = CTR_VIDEO_MODE_3D; + +#define DEFAULT_BOTTOM_FONT_ENABLE true +#define DEFAULT_BOTTOM_FONT_COLOR 255 +#define DEFAULT_BOTTOM_FONT_SCALE 1.48 #endif #ifdef WIIU diff --git a/configuration.c b/configuration.c index 25a81761834..d620f604c1c 100644 --- a/configuration.c +++ b/configuration.c @@ -1579,7 +1579,10 @@ static struct config_path_setting *populate_settings_path( SETTING_PATH("bundle_assets_src_path", settings->paths.bundle_assets_src, false, NULL, true); SETTING_PATH("bundle_assets_dst_path", settings->paths.bundle_assets_dst, false, NULL, true); SETTING_PATH("bundle_assets_dst_path_subdir", settings->paths.bundle_assets_dst_subdir, false, NULL, true); - +#ifdef _3DS + SETTING_PATH("bottom_assets_directory", + settings->paths.directory_bottom_assets, true, NULL, true); +#endif SETTING_ARRAY("log_dir", settings->paths.log_dir, true, NULL, true); *size = count; @@ -1996,7 +1999,8 @@ static struct config_bool_setting *populate_settings_bool( #ifdef _3DS SETTING_BOOL("new3ds_speedup_enable", &settings->bools.new3ds_speedup_enable, true, new3ds_speedup_enable, false); - SETTING_BOOL("video_3ds_lcd_bottom", &settings->bools.video_3ds_lcd_bottom, true, video_3ds_lcd_bottom, false); + SETTING_BOOL("video_3ds_lcd_bottom", &settings->bools.video_3ds_lcd_bottom, true, video_3ds_lcd_bottom, false); + SETTING_BOOL("bottom_font_enable", &settings->bools.bottom_font_enable, true, bottom_font_enable, false); #endif #ifdef WIIU @@ -2106,7 +2110,9 @@ static struct config_float_setting *populate_settings_float( SETTING_FLOAT("video_hdr_max_nits", &settings->floats.video_hdr_max_nits, true, DEFAULT_VIDEO_HDR_MAX_NITS, false); SETTING_FLOAT("video_hdr_paper_white_nits", &settings->floats.video_hdr_paper_white_nits, true, DEFAULT_VIDEO_HDR_PAPER_WHITE_NITS, false); SETTING_FLOAT("video_hdr_display_contrast", &settings->floats.video_hdr_display_contrast, true, DEFAULT_VIDEO_HDR_CONTRAST, false); - +#ifdef _3DS + SETTING_FLOAT("bottom_font_scale", &settings->floats.bottom_font_scale, true, DEFAULT_BOTTOM_FONT_SCALE, false); +#endif *size = count; return tmp; @@ -2318,11 +2324,9 @@ static struct config_uint_setting *populate_settings_uint( #ifdef HAVE_LIBNX SETTING_UINT("libnx_overclock", &settings->uints.libnx_overclock, true, SWITCH_DEFAULT_CPU_PROFILE, false); #endif - #ifdef _3DS - SETTING_UINT("video_3ds_display_mode", &settings->uints.video_3ds_display_mode, true, video_3ds_display_mode, false); + SETTING_UINT("video_3ds_display_mode", &settings->uints.video_3ds_display_mode, true, video_3ds_display_mode, false); #endif - #if defined(DINGUX) SETTING_UINT("video_dingux_ipu_filter_type", &settings->uints.video_dingux_ipu_filter_type, true, DEFAULT_DINGUX_IPU_FILTER_TYPE, false); #if defined(DINGUX_BETA) @@ -2414,7 +2418,12 @@ static struct config_int_setting *populate_settings_int( SETTING_INT("video_window_offset_y", &settings->ints.video_window_offset_y, true, DEFAULT_WINDOW_OFFSET_Y, false); #endif SETTING_INT("content_favorites_size", &settings->ints.content_favorites_size, true, default_content_favorites_size, false); - +#ifdef _3DS + SETTING_INT("bottom_font_color_red", &settings->ints.bottom_font_color_red, true, bottom_font_color_red, false); + SETTING_INT("bottom_font_color_green", &settings->ints.bottom_font_color_green, true, bottom_font_color_green, false); + SETTING_INT("bottom_font_color_blue", &settings->ints.bottom_font_color_blue, true, bottom_font_color_blue, false); + SETTING_INT("bottom_font_color_opacity", &settings->ints.bottom_font_color_opacity, true, bottom_font_color_opacity, false); +#endif *size = count; return tmp; diff --git a/configuration.h b/configuration.h index c1ae2822539..d40c49c3e84 100644 --- a/configuration.h +++ b/configuration.h @@ -124,6 +124,12 @@ typedef struct settings int video_window_offset_y; #endif int content_favorites_size; +#ifdef _3DS + int bottom_font_color_red; + int bottom_font_color_green; + int bottom_font_color_blue; + int bottom_font_color_opacity; +#endif } ints; struct @@ -382,6 +388,9 @@ typedef struct settings float input_analog_deadzone; float input_axis_threshold; float input_analog_sensitivity; +#ifdef _3DS + float bottom_font_scale; +#endif } floats; struct @@ -507,7 +516,9 @@ typedef struct settings char directory_menu_config[PATH_MAX_LENGTH]; char directory_menu_content[PATH_MAX_LENGTH]; char streaming_title[PATH_MAX_LENGTH]; - +#ifdef _3DS + char directory_bottom_assets[PATH_MAX_LENGTH]; +#endif char log_dir[PATH_MAX_LENGTH]; } paths; @@ -552,7 +563,9 @@ typedef struct settings bool video_framecount_show; bool video_memory_show; bool video_msg_bgcolor_enable; +#ifdef _3DS bool video_3ds_lcd_bottom; +#endif bool video_wiiu_prefer_drc; bool video_notch_write_over_enable; #ifdef HAVE_VIDEO_LAYOUT @@ -925,6 +938,7 @@ typedef struct settings bool gamemode_enable; #ifdef _3DS bool new3ds_speedup_enable; + bool bottom_font_enable; #endif #ifdef ANDROID diff --git a/defaults.h b/defaults.h index 879c76f6b4f..91ad1f87c1f 100644 --- a/defaults.h +++ b/defaults.h @@ -35,6 +35,9 @@ enum default_dirs DEFAULT_DIR_AUDIO_FILTER, DEFAULT_DIR_VIDEO_FILTER, DEFAULT_DIR_ASSETS, +#ifdef _3DS + DEFAULT_DIR_BOTTOM_ASSETS, +#endif DEFAULT_DIR_CORE, DEFAULT_DIR_CORE_INFO, DEFAULT_DIR_OVERLAY, diff --git a/frontend/drivers/platform_ctr.c b/frontend/drivers/platform_ctr.c index 167c30f9420..a342186e94f 100644 --- a/frontend/drivers/platform_ctr.c +++ b/frontend/drivers/platform_ctr.c @@ -137,6 +137,9 @@ static void frontend_ctr_get_env(int* argc, char* argv[], fill_pathname_join(g_defaults.path_config, g_defaults.dirs[DEFAULT_DIR_PORT], FILE_PATH_MAIN_CONFIG, sizeof(g_defaults.path_config)); + fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_BOTTOM_ASSETS], g_defaults.dirs[DEFAULT_DIR_ASSETS], + "ctr", sizeof(g_defaults.dirs[DEFAULT_DIR_BOTTOM_ASSETS])); + #ifndef IS_SALAMANDER dir_check_defaults("custom.ini"); #endif diff --git a/gfx/common/ctr_common.h b/gfx/common/ctr_common.h index 970b7cfc2df..986f9587507 100644 --- a/gfx/common/ctr_common.h +++ b/gfx/common/ctr_common.h @@ -40,6 +40,12 @@ extern PrintConsole* ctrConsole; extern const u8 ctr_sprite_shbin[]; extern const u32 ctr_sprite_shbin_size; +static const bool bottom_font_enable; +static const int bottom_font_color_red; +static const int bottom_font_color_green; +static const int bottom_font_color_blue; +static const int bottom_font_color_opacity; + typedef struct { float v; @@ -56,17 +62,17 @@ typedef struct typedef enum { - CTR_VIDEO_MODE_3D = 0, - CTR_VIDEO_MODE_2D, - CTR_VIDEO_MODE_2D_400X240, - CTR_VIDEO_MODE_2D_800X240, - CTR_VIDEO_MODE_LAST + CTR_VIDEO_MODE_3D = 0, + CTR_VIDEO_MODE_2D, + CTR_VIDEO_MODE_2D_400X240, + CTR_VIDEO_MODE_2D_800X240, + CTR_VIDEO_MODE_LAST } ctr_video_mode_enum; typedef enum { CTR_BOTTOM_MENU_NOT_AVAILABLE = 0, - CTR_BOTTOM_MENU_DEFAULT, + CTR_BOTTOM_MENU_DEFAULT, CTR_BOTTOM_MENU_SELECT, } ctr_bottom_menu; diff --git a/gfx/drivers/ctr_gfx.c b/gfx/drivers/ctr_gfx.c index cee6524b4e1..c05a2580ecf 100644 --- a/gfx/drivers/ctr_gfx.c +++ b/gfx/drivers/ctr_gfx.c @@ -262,7 +262,7 @@ static const char *ctr_texture_path(unsigned id) switch (id) { case CTR_TEXTURE_BOTTOM_MENU: - return "ctr/bottom_menu.png"; + return "bottom_menu.png"; case CTR_TEXTURE_STATE_THUMBNAIL: { static char texture_path[PATH_MAX_LENGTH]; @@ -395,7 +395,7 @@ static bool ctr_load_bottom_texture(void *data) if (i == CTR_TEXTURE_STATE_THUMBNAIL) dir_assets = dir_get_ptr(RARCH_DIR_SAVESTATE); else - dir_assets = settings->paths.directory_assets; + dir_assets = settings->paths.directory_bottom_assets; if (gfx_display_reset_textures_list( ctr_texture_path(i), dir_assets, @@ -669,18 +669,30 @@ static void font_driver_render_msg_bottom(ctr_video_t *ctr, static void ctr_render_bottom_screen(void *data) { - struct font_params params = { 0, }; - ctr_video_t *ctr = (ctr_video_t*)data; + struct font_params params = { 0, }; + ctr_video_t *ctr = (ctr_video_t*)data; + + settings_t *settings = config_get_ptr(); + bool font_enable = settings->bools.bottom_font_enable; + int font_color_red = settings->ints.bottom_font_color_red; + int font_color_green = settings->ints.bottom_font_color_green; + int font_color_blue = settings->ints.bottom_font_color_blue; + int font_color_opacity = settings->ints.bottom_font_color_opacity; + float font_scale = settings->floats.bottom_font_scale; if (!ctr || !ctr->refresh_bottom_menu) return; params.text_align = TEXT_ALIGN_CENTER; - params.color = COLOR_ABGR(255, 255, 255, 255); + params.color = COLOR_ABGR(font_color_opacity, + font_color_blue, + font_color_green, + font_color_red); switch (ctr->bottom_menu) { case CTR_BOTTOM_MENU_NOT_AVAILABLE: + params.color = COLOR_ABGR(255, 255, 255, 255); params.scale = 1.6f; params.x = 0.0f; params.y = 0.5f; @@ -690,6 +702,7 @@ static void ctr_render_bottom_screen(void *data) ¶ms); break; case CTR_BOTTOM_MENU_DEFAULT: + params.color = COLOR_ABGR(255, 255, 255, 255); params.scale = 1.6f; params.x = 0.0f; params.y = 0.5f; @@ -703,9 +716,7 @@ static void ctr_render_bottom_screen(void *data) struct ctr_bottom_texture_data *o = NULL; ctr_texture_t *texture = NULL; - params.scale = 1.48f; - params.color = COLOR_ABGR( - 255, 255, 255, 255); + params.scale = font_scale; /* draw state thumbnail */ if (ctr->state_data_exist) @@ -793,35 +804,44 @@ static void ctr_render_bottom_screen(void *data) CTR_BOTTOM_FRAMEBUFFER_WIDTH); GPU_DrawArray(GPU_GEOMETRY_PRIM, 0, 1); - /* draw resume game */ - params.x = -0.178f; - params.y = 0.78f; - - font_driver_render_msg_bottom(ctr, - msg_hash_to_str(MSG_3DS_BOTTOM_MENU_RESUME), - ¶ms); + if (font_enable) + { + /* draw resume game */ + params.x = -0.178f; + params.y = 0.78f; - /* draw create restore point */ - params.x = -0.178f; - params.y = 0.33f; + font_driver_render_msg_bottom(ctr, + msg_hash_to_str(MSG_3DS_BOTTOM_MENU_RESUME), + ¶ms); - font_driver_render_msg_bottom(ctr, - msg_hash_to_str(MSG_3DS_BOTTOM_MENU_SAVE_STATE), - ¶ms); + /* draw create restore point */ + params.x = -0.178f; + params.y = 0.33f; - /* draw load restore point */ - params.x = 0.266f; - params.y = 0.24f; + font_driver_render_msg_bottom(ctr, + msg_hash_to_str(MSG_3DS_BOTTOM_MENU_SAVE_STATE), + ¶ms); - font_driver_render_msg_bottom(ctr, - msg_hash_to_str(MSG_3DS_BOTTOM_MENU_LOAD_STATE), - ¶ms); + if (ctr->state_data_exist) + { + /* draw load restore point */ + params.x = 0.266f; + params.y = 0.24f; - /* draw date */ - params.x = 0.266f; - params.y = 0.87f; - font_driver_render_msg_bottom(ctr, ctr->state_date, - ¶ms); + font_driver_render_msg_bottom(ctr, + msg_hash_to_str(MSG_3DS_BOTTOM_MENU_LOAD_STATE), + ¶ms); + } + } + if (ctr->state_data_exist) + { + /* draw date */ + params.x = 0.266f; + params.y = 0.87f; + font_driver_render_msg_bottom(ctr, + ctr->state_date, + ¶ms); + } } break; } diff --git a/intl/msg_hash_lbl.h b/intl/msg_hash_lbl.h index 7857504fd40..ba16e345249 100644 --- a/intl/msg_hash_lbl.h +++ b/intl/msg_hash_lbl.h @@ -1026,6 +1026,12 @@ MSG_HASH( MENU_ENUM_LABEL_DEFERRED_MENU_SETTINGS_LIST, "deferred_menu_settings_list" ) +#ifdef _3DS +MSG_HASH( + MENU_ENUM_LABEL_DEFERRED_MENU_BOTTOM_SETTINGS_LIST, + "deferred_menu_bottom_settings" + ) +#endif MSG_HASH( MENU_ENUM_LABEL_DEFERRED_MENU_VIEWS_SETTINGS_LIST, "deferred_menu_views_settings_list" @@ -1978,6 +1984,12 @@ MSG_HASH( MENU_ENUM_LABEL_MENU_SETTINGS, "menu_settings" ) +#ifdef _3DS +MSG_HASH( + MENU_ENUM_LABEL_MENU_BOTTOM_SETTINGS, + "menu_bottom_settings" + ) +#endif MSG_HASH( MENU_ENUM_LABEL_MENU_WALLPAPER, "menu_wallpaper" @@ -4960,7 +4972,7 @@ MSG_HASH( MENU_ENUM_LABEL_NO_FAVORITES_AVAILABLE, "no_favorites" ) -#if defined(_3DS) +#ifdef _3DS MSG_HASH( MENU_ENUM_LABEL_NEW3DS_SPEEDUP_ENABLE, "new3ds_speedup_enable" @@ -4973,6 +4985,34 @@ MSG_HASH( MENU_ENUM_LABEL_VIDEO_3DS_DISPLAY_MODE, "video_3ds_display_mode" ) +MSG_HASH( + MENU_ENUM_LABEL_BOTTOM_ASSETS_DIRECTORY, + "bottom_assets_directory" + ) +MSG_HASH( + MENU_ENUM_LABEL_BOTTOM_FONT_ENABLE, + "bottom_font_enable" + ) +MSG_HASH( + MENU_ENUM_LABEL_BOTTOM_FONT_COLOR_RED, + "bottom_font_color_red" + ) +MSG_HASH( + MENU_ENUM_LABEL_BOTTOM_FONT_COLOR_GREEN, + "bottom_font_color_green" + ) +MSG_HASH( + MENU_ENUM_LABEL_BOTTOM_FONT_COLOR_BLUE, + "bottom_font_color_blue" + ) +MSG_HASH( + MENU_ENUM_LABEL_BOTTOM_FONT_COLOR_OPACITY, + "bottom_font_color_opacity" + ) +MSG_HASH( + MENU_ENUM_LABEL_BOTTOM_FONT_SCALE, + "bottom_font_scale" + ) #endif MSG_HASH( MENU_ENUM_LABEL_PLAYLIST_USE_OLD_FORMAT, diff --git a/intl/msg_hash_us.h b/intl/msg_hash_us.h index 26e3e2e0fe0..dc78ebedce2 100644 --- a/intl/msg_hash_us.h +++ b/intl/msg_hash_us.h @@ -4457,6 +4457,16 @@ MSG_HASH( MENU_ENUM_SUBLABEL_MENU_SETTINGS, "Change menu screen appearance settings." ) +#ifdef _3DS +MSG_HASH( + MENU_ENUM_LABEL_VALUE_MENU_BOTTOM_SETTINGS, + "3DS Bottom Screen Appearance" + ) +MSG_HASH( + MENU_ENUM_SUBLABEL_MENU_BOTTOM_SETTINGS, + "Change bottom screen appearance settings." + ) +#endif MSG_HASH( MENU_ENUM_LABEL_VALUE_SHOW_ADVANCED_SETTINGS, "Show Advanced Settings" @@ -13770,7 +13780,7 @@ MSG_HASH( "Hardware context scaling (if available)." ) #endif -#if defined(_3DS) +#ifdef _3DS MSG_HASH( MENU_ENUM_LABEL_VALUE_NEW3DS_SPEEDUP_ENABLE, "Enable New3DS Clock / L2 Cache" @@ -13839,6 +13849,62 @@ MSG_HASH( MSG_3DS_BOTTOM_MENU_LOAD_STATE, "Load\nRestore Point" ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_BOTTOM_ASSETS_DIRECTORY, + "Bottom Screen Asset Directory" + ) +MSG_HASH( + MENU_ENUM_SUBLABEL_BOTTOM_ASSETS_DIRECTORY, + "Bottom screen asset directory. Directory must include \"bottom_menu.png\"." + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_BOTTOM_FONT_ENABLE, + "Font Enable" + ) +MSG_HASH( + MENU_ENUM_SUBLABEL_BOTTOM_FONT_ENABLE, + "Display bottom menu font. Enable to display button descriptions on the bottom screen. This excludes the savestate date." + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_BOTTOM_FONT_COLOR_RED, + "Font Color Red" + ) +MSG_HASH( + MENU_ENUM_SUBLABEL_BOTTOM_FONT_COLOR_RED, + "Adjust bottom screen font red color." + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_BOTTOM_FONT_COLOR_GREEN, + "Font Color Green" + ) +MSG_HASH( + MENU_ENUM_SUBLABEL_BOTTOM_FONT_COLOR_GREEN, + "Adjust bottom screen font green color." + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_BOTTOM_FONT_COLOR_BLUE, + "Font Color Blue" + ) +MSG_HASH( + MENU_ENUM_SUBLABEL_BOTTOM_FONT_COLOR_BLUE, + "Adjust bottom screen font blue color." + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_BOTTOM_FONT_COLOR_OPACITY, + "Font Color Opacity" + ) +MSG_HASH( + MENU_ENUM_SUBLABEL_BOTTOM_FONT_COLOR_OPACITY, + "Adjust bottom screen font opacity." + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_BOTTOM_FONT_SCALE, + "Font Scale" + ) +MSG_HASH( + MENU_ENUM_SUBLABEL_BOTTOM_FONT_SCALE, + "Adjust bottom screen font scale." + ) #endif #ifdef HAVE_QT MSG_HASH( diff --git a/menu/cbs/menu_cbs_deferred_push.c b/menu/cbs/menu_cbs_deferred_push.c index 3db7fdfe1f0..27c427c2ae6 100644 --- a/menu/cbs/menu_cbs_deferred_push.c +++ b/menu/cbs/menu_cbs_deferred_push.c @@ -197,6 +197,9 @@ GENERIC_DEFERRED_PUSH(deferred_push_menu_views_settings_list, DISPLAYLIST_ GENERIC_DEFERRED_PUSH(deferred_push_quick_menu_views_settings_list, DISPLAYLIST_QUICK_MENU_VIEWS_SETTINGS_LIST) GENERIC_DEFERRED_PUSH(deferred_push_settings_views_settings_list, DISPLAYLIST_SETTINGS_VIEWS_SETTINGS_LIST) GENERIC_DEFERRED_PUSH(deferred_push_menu_settings_list, DISPLAYLIST_MENU_SETTINGS_LIST) +#ifdef _3DS +GENERIC_DEFERRED_PUSH(deferred_push_menu_bottom_settings_list, DISPLAYLIST_MENU_BOTTOM_SETTINGS_LIST) +#endif GENERIC_DEFERRED_PUSH(deferred_push_user_interface_settings_list, DISPLAYLIST_USER_INTERFACE_SETTINGS_LIST) GENERIC_DEFERRED_PUSH(deferred_push_power_management_settings_list, DISPLAYLIST_POWER_MANAGEMENT_SETTINGS_LIST) GENERIC_DEFERRED_PUSH(deferred_push_retro_achievements_settings_list,DISPLAYLIST_RETRO_ACHIEVEMENTS_SETTINGS_LIST) @@ -726,6 +729,9 @@ static int menu_cbs_init_bind_deferred_push_compare_label( {MENU_ENUM_LABEL_DEFERRED_SETTINGS_VIEWS_SETTINGS_LIST, deferred_push_settings_views_settings_list}, {MENU_ENUM_LABEL_DEFERRED_QUICK_MENU_VIEWS_SETTINGS_LIST, deferred_push_quick_menu_views_settings_list}, {MENU_ENUM_LABEL_DEFERRED_MENU_SETTINGS_LIST, deferred_push_menu_settings_list}, +#ifdef _3DS + {MENU_ENUM_LABEL_DEFERRED_MENU_BOTTOM_SETTINGS_LIST, deferred_push_menu_bottom_settings_list}, +#endif {MENU_ENUM_LABEL_DEFERRED_USER_INTERFACE_SETTINGS_LIST, deferred_push_user_interface_settings_list}, {MENU_ENUM_LABEL_DEFERRED_POWER_MANAGEMENT_SETTINGS_LIST, deferred_push_power_management_settings_list}, {MENU_ENUM_LABEL_DEFERRED_MENU_SOUNDS_LIST, deferred_push_menu_sounds_list}, diff --git a/menu/cbs/menu_cbs_ok.c b/menu/cbs/menu_cbs_ok.c index ba3308c076c..6068e922589 100644 --- a/menu/cbs/menu_cbs_ok.c +++ b/menu/cbs/menu_cbs_ok.c @@ -383,6 +383,10 @@ static enum msg_hash_enums action_ok_dl_to_enum(unsigned lbl) #endif case ACTION_OK_DL_MENU_SETTINGS_LIST: return MENU_ENUM_LABEL_DEFERRED_MENU_SETTINGS_LIST; +#ifdef _3DS + case ACTION_OK_DL_MENU_BOTTOM_SETTINGS_LIST: + return MENU_ENUM_LABEL_DEFERRED_MENU_BOTTOM_SETTINGS_LIST; +#endif case ACTION_OK_DL_MENU_VIEWS_SETTINGS_LIST: return MENU_ENUM_LABEL_DEFERRED_MENU_VIEWS_SETTINGS_LIST; case ACTION_OK_DL_SETTINGS_VIEWS_SETTINGS_LIST: @@ -1566,6 +1570,9 @@ int generic_action_ok_displaylist_push(const char *path, case ACTION_OK_DL_ONSCREEN_VIDEO_LAYOUT_SETTINGS_LIST: #endif case ACTION_OK_DL_MENU_SETTINGS_LIST: +#ifdef _3DS + case ACTION_OK_DL_MENU_BOTTOM_SETTINGS_LIST: +#endif case ACTION_OK_DL_MENU_VIEWS_SETTINGS_LIST: case ACTION_OK_DL_SETTINGS_VIEWS_SETTINGS_LIST: case ACTION_OK_DL_QUICK_MENU_VIEWS_SETTINGS_LIST: @@ -5808,6 +5815,9 @@ DEFAULT_ACTION_OK_FUNC(action_ok_onscreen_overlay_list, ACTION_OK_DL_ONSCREEN_OV DEFAULT_ACTION_OK_FUNC(action_ok_onscreen_video_layout_list, ACTION_OK_DL_ONSCREEN_VIDEO_LAYOUT_SETTINGS_LIST) #endif DEFAULT_ACTION_OK_FUNC(action_ok_menu_list, ACTION_OK_DL_MENU_SETTINGS_LIST) +#ifdef _3DS +DEFAULT_ACTION_OK_FUNC(action_ok_menu_bottom_list, ACTION_OK_DL_MENU_BOTTOM_SETTINGS_LIST) +#endif DEFAULT_ACTION_OK_FUNC(action_ok_quick_menu_override_options, ACTION_OK_DL_QUICK_MENU_OVERRIDE_OPTIONS_LIST) DEFAULT_ACTION_OK_FUNC(action_ok_menu_views_list, ACTION_OK_DL_MENU_VIEWS_SETTINGS_LIST) DEFAULT_ACTION_OK_FUNC(action_ok_settings_views_list, ACTION_OK_DL_SETTINGS_VIEWS_SETTINGS_LIST) @@ -8335,6 +8345,9 @@ static int menu_cbs_init_bind_ok_compare_label(menu_file_list_cbs_t *cbs, {MENU_ENUM_LABEL_ONSCREEN_NOTIFICATIONS_VIEWS_SETTINGS, action_ok_onscreen_notifications_views_list}, {MENU_ENUM_LABEL_ONSCREEN_OVERLAY_SETTINGS, action_ok_onscreen_overlay_list}, {MENU_ENUM_LABEL_MENU_SETTINGS, action_ok_menu_list}, +#ifdef _3DS + {MENU_ENUM_LABEL_MENU_BOTTOM_SETTINGS, action_ok_menu_bottom_list}, +#endif {MENU_ENUM_LABEL_MENU_VIEWS_SETTINGS, action_ok_menu_views_list}, {MENU_ENUM_LABEL_QUICK_MENU_OVERRIDE_OPTIONS, action_ok_quick_menu_override_options}, {MENU_ENUM_LABEL_SETTINGS_VIEWS_SETTINGS, action_ok_settings_views_list}, diff --git a/menu/cbs/menu_cbs_sublabel.c b/menu/cbs/menu_cbs_sublabel.c index d818bb47895..a737d64faf1 100644 --- a/menu/cbs/menu_cbs_sublabel.c +++ b/menu/cbs/menu_cbs_sublabel.c @@ -304,6 +304,9 @@ DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_menu_views_settings_list, MENU_ DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_quick_menu_views_settings_list, MENU_ENUM_SUBLABEL_QUICK_MENU_VIEWS_SETTINGS) DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_settings_views_settings_list, MENU_ENUM_SUBLABEL_SETTINGS_VIEWS_SETTINGS) DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_menu_settings_list, MENU_ENUM_SUBLABEL_MENU_SETTINGS) +#ifdef _3DS +DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_menu_bottom_settings_list, MENU_ENUM_SUBLABEL_MENU_BOTTOM_SETTINGS) +#endif DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_video_settings_list, MENU_ENUM_SUBLABEL_VIDEO_SETTINGS) DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_video_synchronization_settings_list, MENU_ENUM_SUBLABEL_VIDEO_SYNCHRONIZATION_SETTINGS) DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_video_fullscreen_mode_settings_list, MENU_ENUM_SUBLABEL_VIDEO_FULLSCREEN_MODE_SETTINGS) @@ -1096,10 +1099,17 @@ DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_gamemode_enable, MENU DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_brightness_control, MENU_ENUM_SUBLABEL_BRIGHTNESS_CONTROL) -#if defined(_3DS) +#ifdef _3DS DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_new3ds_speedup_enable, MENU_ENUM_SUBLABEL_NEW3DS_SPEEDUP_ENABLE) -DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_video_3ds_lcd_bottom, MENU_ENUM_SUBLABEL_VIDEO_3DS_LCD_BOTTOM) DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_video_3ds_display_mode, MENU_ENUM_SUBLABEL_VIDEO_3DS_DISPLAY_MODE) +DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_video_3ds_lcd_bottom, MENU_ENUM_SUBLABEL_VIDEO_3DS_LCD_BOTTOM) +DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_bottom_assets_directory, MENU_ENUM_SUBLABEL_BOTTOM_ASSETS_DIRECTORY) +DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_bottom_font_enable, MENU_ENUM_SUBLABEL_BOTTOM_FONT_ENABLE) +DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_bottom_font_color_red, MENU_ENUM_SUBLABEL_BOTTOM_FONT_COLOR_RED) +DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_bottom_font_color_green, MENU_ENUM_SUBLABEL_BOTTOM_FONT_COLOR_GREEN) +DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_bottom_font_color_blue, MENU_ENUM_SUBLABEL_BOTTOM_FONT_COLOR_BLUE) +DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_bottom_font_color_opacity, MENU_ENUM_SUBLABEL_BOTTOM_FONT_COLOR_OPACITY) +DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_bottom_font_scale, MENU_ENUM_SUBLABEL_BOTTOM_FONT_SCALE) #endif #if defined (WIIU) @@ -4299,6 +4309,11 @@ int menu_cbs_init_bind_sublabel(menu_file_list_cbs_t *cbs, case MENU_ENUM_LABEL_MENU_SETTINGS: BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_menu_settings_list); break; +#ifdef _3DS + case MENU_ENUM_LABEL_MENU_BOTTOM_SETTINGS: + BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_menu_bottom_settings_list); + break; +#endif case MENU_ENUM_LABEL_VIDEO_SETTINGS: BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_video_settings_list); break; @@ -4676,15 +4691,36 @@ int menu_cbs_init_bind_sublabel(menu_file_list_cbs_t *cbs, case MENU_ENUM_LABEL_BRIGHTNESS_CONTROL: BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_brightness_control); break; -#if defined(_3DS) +#ifdef _3DS case MENU_ENUM_LABEL_NEW3DS_SPEEDUP_ENABLE: BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_new3ds_speedup_enable); break; + case MENU_ENUM_LABEL_VIDEO_3DS_DISPLAY_MODE: + BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_video_3ds_display_mode); + break; case MENU_ENUM_LABEL_VIDEO_3DS_LCD_BOTTOM: BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_video_3ds_lcd_bottom); break; - case MENU_ENUM_LABEL_VIDEO_3DS_DISPLAY_MODE: - BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_video_3ds_display_mode); + case MENU_ENUM_LABEL_BOTTOM_ASSETS_DIRECTORY: + BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_bottom_assets_directory); + break; + case MENU_ENUM_LABEL_BOTTOM_FONT_ENABLE: + BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_bottom_font_enable); + break; + case MENU_ENUM_LABEL_BOTTOM_FONT_COLOR_RED: + BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_bottom_font_color_red); + break; + case MENU_ENUM_LABEL_BOTTOM_FONT_COLOR_GREEN: + BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_bottom_font_color_green); + break; + case MENU_ENUM_LABEL_BOTTOM_FONT_COLOR_BLUE: + BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_bottom_font_color_blue); + break; + case MENU_ENUM_LABEL_BOTTOM_FONT_COLOR_OPACITY: + BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_bottom_font_color_opacity); + break; + case MENU_ENUM_LABEL_BOTTOM_FONT_SCALE: + BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_bottom_font_scale); break; #endif #if defined(WIIU) diff --git a/menu/cbs/menu_cbs_title.c b/menu/cbs/menu_cbs_title.c index 5f3f682afb0..926270e41ed 100644 --- a/menu/cbs/menu_cbs_title.c +++ b/menu/cbs/menu_cbs_title.c @@ -632,6 +632,9 @@ DEFAULT_TITLE_MACRO(action_get_menu_views_settings_list, MENU_ENUM_LABEL_ DEFAULT_TITLE_MACRO(action_get_settings_views_settings_list, MENU_ENUM_LABEL_VALUE_SETTINGS_VIEWS_SETTINGS) DEFAULT_TITLE_MACRO(action_get_quick_menu_views_settings_list, MENU_ENUM_LABEL_VALUE_QUICK_MENU_VIEWS_SETTINGS) DEFAULT_TITLE_MACRO(action_get_menu_settings_list, MENU_ENUM_LABEL_VALUE_MENU_SETTINGS) +#ifdef _3DS +DEFAULT_TITLE_MACRO(action_get_menu_bottom_settings_list, MENU_ENUM_LABEL_VALUE_MENU_BOTTOM_SETTINGS) +#endif DEFAULT_TITLE_MACRO(action_get_user_interface_settings_list, MENU_ENUM_LABEL_VALUE_USER_INTERFACE_SETTINGS) DEFAULT_TITLE_MACRO(action_get_ai_service_settings_list, MENU_ENUM_LABEL_VALUE_AI_SERVICE_SETTINGS) DEFAULT_TITLE_MACRO(action_get_accessibility_settings_list, MENU_ENUM_LABEL_VALUE_ACCESSIBILITY_SETTINGS) @@ -977,6 +980,9 @@ static int menu_cbs_init_bind_title_compare_label(menu_file_list_cbs_t *cbs, {MENU_ENUM_LABEL_DEFERRED_SETTINGS_VIEWS_SETTINGS_LIST, action_get_settings_views_settings_list}, {MENU_ENUM_LABEL_DEFERRED_QUICK_MENU_VIEWS_SETTINGS_LIST, action_get_quick_menu_views_settings_list}, {MENU_ENUM_LABEL_DEFERRED_MENU_SETTINGS_LIST, action_get_menu_settings_list}, +#ifdef _3DS + {MENU_ENUM_LABEL_DEFERRED_MENU_BOTTOM_SETTINGS_LIST, action_get_menu_bottom_settings_list}, +#endif {MENU_ENUM_LABEL_DEFERRED_USER_INTERFACE_SETTINGS_LIST, action_get_user_interface_settings_list}, {MENU_ENUM_LABEL_DEFERRED_AI_SERVICE_SETTINGS_LIST, action_get_ai_service_settings_list}, {MENU_ENUM_LABEL_DEFERRED_ACCESSIBILITY_SETTINGS_LIST, action_get_accessibility_settings_list}, diff --git a/menu/menu_cbs.h b/menu/menu_cbs.h index 4c31308115f..15eaa620d5f 100644 --- a/menu/menu_cbs.h +++ b/menu/menu_cbs.h @@ -185,6 +185,9 @@ enum ACTION_OK_DL_QUICK_MENU_VIEWS_SETTINGS_LIST, ACTION_OK_DL_QUICK_MENU_OVERRIDE_OPTIONS_LIST, ACTION_OK_DL_MENU_SETTINGS_LIST, +#ifdef _3DS + ACTION_OK_DL_MENU_BOTTOM_SETTINGS_LIST, +#endif ACTION_OK_DL_AI_SERVICE_SETTINGS_LIST, ACTION_OK_DL_ACCESSIBILITY_SETTINGS_LIST, ACTION_OK_DL_USER_INTERFACE_SETTINGS_LIST, diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index 2bd7056cad6..59b27cbc7b2 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -8359,8 +8359,10 @@ unsigned menu_displaylist_build_list( {MENU_ENUM_LABEL_UI_COMPANION_TOGGLE, PARSE_ONLY_BOOL, false}, {MENU_ENUM_LABEL_DESKTOP_MENU_ENABLE, PARSE_ONLY_BOOL, true}, #endif +#ifdef _3DS {MENU_ENUM_LABEL_VIDEO_3DS_DISPLAY_MODE, PARSE_ONLY_UINT, true}, - {MENU_ENUM_LABEL_VIDEO_3DS_LCD_BOTTOM, PARSE_ONLY_BOOL, true}, + {MENU_ENUM_LABEL_MENU_BOTTOM_SETTINGS, PARSE_ACTION, true}, +#endif }; for (i = 0; i < ARRAY_SIZE(build_list); i++) @@ -10315,6 +10317,54 @@ unsigned menu_displaylist_build_list( } } break; +#ifdef _3DS + case DISPLAYLIST_MENU_BOTTOM_SETTINGS_LIST: + { + bool video_3ds_lcd_bottom = settings->bools.video_3ds_lcd_bottom; + + menu_displaylist_build_info_selective_t build_list[] = { + {MENU_ENUM_LABEL_VIDEO_3DS_LCD_BOTTOM, PARSE_ONLY_BOOL, true}, + {MENU_ENUM_LABEL_BOTTOM_ASSETS_DIRECTORY, PARSE_ONLY_DIR, false}, + {MENU_ENUM_LABEL_BOTTOM_FONT_ENABLE, PARSE_ONLY_BOOL, false}, + {MENU_ENUM_LABEL_BOTTOM_FONT_COLOR_RED, PARSE_ONLY_INT, false}, + {MENU_ENUM_LABEL_BOTTOM_FONT_COLOR_GREEN, PARSE_ONLY_INT, false}, + {MENU_ENUM_LABEL_BOTTOM_FONT_COLOR_BLUE, PARSE_ONLY_INT, false}, + {MENU_ENUM_LABEL_BOTTOM_FONT_COLOR_OPACITY, PARSE_ONLY_INT, false}, + {MENU_ENUM_LABEL_BOTTOM_FONT_SCALE, PARSE_ONLY_FLOAT, false}, + }; + + for (i = 0; i < ARRAY_SIZE(build_list); i++) + { + switch (build_list[i].enum_idx) + { + case MENU_ENUM_LABEL_BOTTOM_ASSETS_DIRECTORY: + case MENU_ENUM_LABEL_BOTTOM_FONT_ENABLE: + case MENU_ENUM_LABEL_BOTTOM_FONT_COLOR_RED: + case MENU_ENUM_LABEL_BOTTOM_FONT_COLOR_GREEN: + case MENU_ENUM_LABEL_BOTTOM_FONT_COLOR_BLUE: + case MENU_ENUM_LABEL_BOTTOM_FONT_COLOR_OPACITY: + case MENU_ENUM_LABEL_BOTTOM_FONT_SCALE: + if (video_3ds_lcd_bottom) + build_list[i].checked = true; + break; + default: + break; + } + } + + for (i = 0; i < ARRAY_SIZE(build_list); i++) + { + if (!build_list[i].checked && !include_everything) + continue; + + if (MENU_DISPLAYLIST_PARSE_SETTINGS_ENUM(list, + build_list[i].enum_idx, build_list[i].parse_type, + false) == 0) + count++; + } + } + break; +#endif case DISPLAYLIST_BROWSE_URL_LIST: if (menu_entries_append_enum(list, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_BROWSE_URL), @@ -12968,6 +13018,9 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, case DISPLAYLIST_PERFCOUNTERS_CORE: case DISPLAYLIST_PERFCOUNTERS_FRONTEND: case DISPLAYLIST_MENU_SETTINGS_LIST: +#ifdef _3DS + case DISPLAYLIST_MENU_BOTTOM_SETTINGS_LIST: +#endif case DISPLAYLIST_ADD_CONTENT_LIST: case DISPLAYLIST_INPUT_SETTINGS_LIST: case DISPLAYLIST_INPUT_MENU_SETTINGS_LIST: @@ -13028,6 +13081,9 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, case DISPLAYLIST_EJECT_DISC: #endif case DISPLAYLIST_MENU_SETTINGS_LIST: +#ifdef _3DS + case DISPLAYLIST_MENU_BOTTOM_SETTINGS_LIST: +#endif case DISPLAYLIST_ADD_CONTENT_LIST: case DISPLAYLIST_DROPDOWN_LIST_RESOLUTION: case DISPLAYLIST_DROPDOWN_LIST_PLAYLIST_DEFAULT_CORE: diff --git a/menu/menu_displaylist.h b/menu/menu_displaylist.h index a075d1b777d..180dea79c07 100644 --- a/menu/menu_displaylist.h +++ b/menu/menu_displaylist.h @@ -209,6 +209,9 @@ enum menu_displaylist_ctl_state DISPLAYLIST_QUICK_MENU_VIEWS_SETTINGS_LIST, DISPLAYLIST_SETTINGS_VIEWS_SETTINGS_LIST, DISPLAYLIST_MENU_SETTINGS_LIST, +#ifdef _3DS + DISPLAYLIST_MENU_BOTTOM_SETTINGS_LIST, +#endif DISPLAYLIST_USER_INTERFACE_SETTINGS_LIST, DISPLAYLIST_POWER_MANAGEMENT_SETTINGS_LIST, DISPLAYLIST_MENU_SOUNDS_LIST, diff --git a/menu/menu_setting.c b/menu/menu_setting.c index 7e01cb406a6..cd865d79a19 100644 --- a/menu/menu_setting.c +++ b/menu/menu_setting.c @@ -5344,7 +5344,7 @@ static void setting_get_string_representation_uint_playlist_entry_remove_enable( } } -#if defined(_3DS) +#ifdef _3DS static void setting_get_string_representation_uint_video_3ds_display_mode( rarch_setting_t *setting, char *s, size_t len) @@ -8756,8 +8756,6 @@ static void timezone_change_handler(rarch_setting_t *setting) #ifdef _3DS static void new3ds_speedup_change_handler(rarch_setting_t *setting) { - settings_t *settings = config_get_ptr(); - if (!setting) return; @@ -9864,7 +9862,15 @@ static bool setting_append_list( &group_info, &subgroup_info, parent_group); - +#ifdef _3DS + CONFIG_ACTION( + list, list_info, + MENU_ENUM_LABEL_MENU_BOTTOM_SETTINGS, + MENU_ENUM_LABEL_VALUE_MENU_BOTTOM_SETTINGS, + &group_info, + &subgroup_info, + parent_group); +#endif CONFIG_ACTION( list, list_info, MENU_ENUM_LABEL_MENU_VIEWS_SETTINGS, @@ -18141,7 +18147,7 @@ static bool setting_append_list( SETTINGS_DATA_LIST_CURRENT_ADD_FLAGS(list, list_info, SD_FLAG_LAKKA_ADVANCED); #endif -#if defined(_3DS) +#ifdef _3DS { u8 device_model = 0xFF; @@ -18162,8 +18168,8 @@ static bool setting_append_list( parent_group, general_write_handler, general_read_handler); - (*list)[list_info->index - 1].action_ok = &setting_action_ok_uint; - (*list)[list_info->index - 1].get_string_representation = + (*list)[list_info->index - 1].action_ok = &setting_action_ok_uint; + (*list)[list_info->index - 1].get_string_representation = &setting_get_string_representation_uint_video_3ds_display_mode; menu_settings_list_current_add_range(list, list_info, 0, CTR_VIDEO_MODE_LAST - (((device_model == 0) || (device_model == 1)) ? 1 : 3), @@ -18200,9 +18206,112 @@ static bool setting_append_list( general_write_handler, general_read_handler, SD_FLAG_CMD_APPLY_AUTO); + (*list)[list_info->index - 1].action_ok = &setting_bool_action_left_with_refresh; #ifdef CONSOLE_LOG MENU_SETTINGS_LIST_CURRENT_ADD_CMD(list, list_info, CMD_EVENT_REINIT_FROM_TOGGLE); #endif + + CONFIG_DIR( + list, list_info, + settings->paths.directory_bottom_assets, + sizeof(settings->paths.directory_bottom_assets), + MENU_ENUM_LABEL_BOTTOM_ASSETS_DIRECTORY, + MENU_ENUM_LABEL_VALUE_BOTTOM_ASSETS_DIRECTORY, + g_defaults.dirs[DEFAULT_DIR_BOTTOM_ASSETS], + MENU_ENUM_LABEL_VALUE_DIRECTORY_DEFAULT, + &group_info, + &subgroup_info, + parent_group, + general_write_handler, + general_read_handler); + (*list)[list_info->index - 1].action_start = directory_action_start_generic; + MENU_SETTINGS_LIST_CURRENT_ADD_CMD(list, list_info, CMD_EVENT_REINIT); + + CONFIG_BOOL( + list, list_info, + &settings->bools.bottom_font_enable, + MENU_ENUM_LABEL_BOTTOM_FONT_ENABLE, + MENU_ENUM_LABEL_VALUE_BOTTOM_FONT_ENABLE, + DEFAULT_BOTTOM_FONT_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_INT( + list, list_info, + &settings->ints.bottom_font_color_red, + MENU_ENUM_LABEL_BOTTOM_FONT_COLOR_RED, + MENU_ENUM_LABEL_VALUE_BOTTOM_FONT_COLOR_RED, + DEFAULT_BOTTOM_FONT_COLOR, + &group_info, + &subgroup_info, + parent_group, + general_write_handler, + general_read_handler); + (*list)[list_info->index - 1].action_ok = &setting_action_ok_uint; + menu_settings_list_current_add_range(list, list_info, 0, 255, 1, true, true); + + CONFIG_INT( + list, list_info, + &settings->ints.bottom_font_color_green, + MENU_ENUM_LABEL_BOTTOM_FONT_COLOR_GREEN, + MENU_ENUM_LABEL_VALUE_BOTTOM_FONT_COLOR_GREEN, + DEFAULT_BOTTOM_FONT_COLOR, + &group_info, + &subgroup_info, + parent_group, + general_write_handler, + general_read_handler); + (*list)[list_info->index - 1].action_ok = &setting_action_ok_uint; + menu_settings_list_current_add_range(list, list_info, 0, 255, 1, true, true); + + CONFIG_INT( + list, list_info, + &settings->ints.bottom_font_color_blue, + MENU_ENUM_LABEL_BOTTOM_FONT_COLOR_BLUE, + MENU_ENUM_LABEL_VALUE_BOTTOM_FONT_COLOR_BLUE, + DEFAULT_BOTTOM_FONT_COLOR, + &group_info, + &subgroup_info, + parent_group, + general_write_handler, + general_read_handler); + (*list)[list_info->index - 1].action_ok = &setting_action_ok_uint; + menu_settings_list_current_add_range(list, list_info, 0, 255, 1, true, true); + + CONFIG_INT( + list, list_info, + &settings->ints.bottom_font_color_opacity, + MENU_ENUM_LABEL_BOTTOM_FONT_COLOR_OPACITY, + MENU_ENUM_LABEL_VALUE_BOTTOM_FONT_COLOR_OPACITY, + DEFAULT_BOTTOM_FONT_COLOR, + &group_info, + &subgroup_info, + parent_group, + general_write_handler, + general_read_handler); + (*list)[list_info->index - 1].action_ok = &setting_action_ok_uint; + menu_settings_list_current_add_range(list, list_info, 0, 255, 1, true, true); + + CONFIG_FLOAT( + list, list_info, + &settings->floats.bottom_font_scale, + MENU_ENUM_LABEL_BOTTOM_FONT_SCALE, + MENU_ENUM_LABEL_VALUE_BOTTOM_FONT_SCALE, + DEFAULT_BOTTOM_FONT_SCALE, + "%.2f", + &group_info, + &subgroup_info, + parent_group, + general_write_handler, + general_read_handler); + (*list)[list_info->index - 1].action_ok = &setting_action_ok_uint; + menu_settings_list_current_add_range(list, list_info, 1, 2, 0.01, true, true); #endif #ifdef HAVE_NETWORKING diff --git a/msg_hash.h b/msg_hash.h index f47efff52d8..ed22267b9d3 100644 --- a/msg_hash.h +++ b/msg_hash.h @@ -1377,16 +1377,22 @@ enum msg_hash_enums MENU_LABEL(UI_COMPANION_TOGGLE), MENU_LABEL(DESKTOP_MENU_ENABLE), MENU_LABEL(UI_MENUBAR_ENABLE), - +#ifdef _3DS MENU_LABEL(NEW3DS_SPEEDUP_ENABLE), MENU_LABEL(VIDEO_3DS_LCD_BOTTOM), MENU_LABEL(VIDEO_3DS_DISPLAY_MODE), - MENU_ENUM_LABEL_VALUE_CTR_VIDEO_MODE_3D, MENU_ENUM_LABEL_VALUE_CTR_VIDEO_MODE_2D, MENU_ENUM_LABEL_VALUE_CTR_VIDEO_MODE_2D_400X240, MENU_ENUM_LABEL_VALUE_CTR_VIDEO_MODE_2D_800X240, - + MENU_LABEL(BOTTOM_ASSETS_DIRECTORY), + MENU_LABEL(BOTTOM_FONT_ENABLE), + MENU_LABEL(BOTTOM_FONT_COLOR_RED), + MENU_LABEL(BOTTOM_FONT_COLOR_GREEN), + MENU_LABEL(BOTTOM_FONT_COLOR_BLUE), + MENU_LABEL(BOTTOM_FONT_COLOR_OPACITY), + MENU_LABEL(BOTTOM_FONT_SCALE), +#endif MENU_ENUM_LABEL_FILE_CONFIG, MENU_ENUM_LABEL_FILE_BROWSER_COMPRESSED_ARCHIVE, MENU_ENUM_LABEL_FILE_BROWSER_CONFIG, @@ -1467,6 +1473,9 @@ enum msg_hash_enums MENU_LABEL(QUICK_MENU_VIEWS_SETTINGS), MENU_LABEL(SETTINGS_VIEWS_SETTINGS), MENU_LABEL(MENU_SETTINGS), +#ifdef _3DS + MENU_LABEL(MENU_BOTTOM_SETTINGS), +#endif MENU_LABEL(THUMBNAILS_UPDATER_LIST), MENU_LABEL(PL_THUMBNAILS_UPDATER_LIST), MENU_LABEL(PL_THUMBNAILS_UPDATER_ENTRY), @@ -1668,6 +1677,9 @@ enum msg_hash_enums MENU_ENUM_LABEL_DEFERRED_SETTINGS_VIEWS_SETTINGS_LIST, MENU_ENUM_LABEL_DEFERRED_QUICK_MENU_OVERRIDE_OPTIONS, MENU_ENUM_LABEL_DEFERRED_MENU_SETTINGS_LIST, +#ifdef _3DS + MENU_ENUM_LABEL_DEFERRED_MENU_BOTTOM_SETTINGS_LIST, +#endif MENU_ENUM_LABEL_DEFERRED_USER_INTERFACE_SETTINGS_LIST, MENU_ENUM_LABEL_DEFERRED_POWER_MANAGEMENT_SETTINGS_LIST, MENU_ENUM_LABEL_DEFERRED_CPU_PERFPOWER_LIST,