mirror of
https://github.com/libretro/RetroArch.git
synced 2024-11-26 17:50:56 +00:00
Merge pull request #3395 from gitghostcoder/master
Reworked xmb driver to allow tab hiding
This commit is contained in:
commit
a8023b4957
@ -481,6 +481,12 @@ endif
|
||||
ifeq ($(HAVE_XMB), 1)
|
||||
OBJ += menu/drivers/xmb.o
|
||||
DEFINES += -DHAVE_XMB
|
||||
ifeq ($(HAVE_XMB_REQUIRESETTINGS), 1)
|
||||
DEFINES += -DHAVE_XMB_REQUIRESETTINGS
|
||||
endif
|
||||
endif
|
||||
ifeq ($(HAVE_KIOSK), 1)
|
||||
DEFINES += -DHAVE_KIOSK
|
||||
endif
|
||||
endif
|
||||
|
||||
|
@ -496,6 +496,21 @@ static void config_set_defaults(void)
|
||||
settings->menu.xmb.shadows_enable = xmb_shadows_enable;
|
||||
settings->menu.xmb.shader_pipeline = menu_shader_pipeline;
|
||||
settings->menu.xmb.font[0] = '\0';
|
||||
#ifdef HAVE_KIOSK
|
||||
settings->menu.xmb.node_position_main = XMB_NODE_POSITION_NORMAL;
|
||||
#endif
|
||||
settings->menu.xmb.node_position_settings = XMB_NODE_POSITION_NORMAL;
|
||||
#ifdef HAVE_IMAGEVIEWER
|
||||
settings->menu.xmb.node_position_images = XMB_NODE_POSITION_NORMAL;
|
||||
#endif
|
||||
#ifdef HAVE_FFMPEG
|
||||
settings->menu.xmb.node_position_music = XMB_NODE_POSITION_NORMAL;
|
||||
settings->menu.xmb.node_position_video = XMB_NODE_POSITION_NORMAL;
|
||||
#endif
|
||||
settings->menu.xmb.node_position_history = XMB_NODE_POSITION_NORMAL;
|
||||
#ifdef HAVE_LIBRETRODB
|
||||
settings->menu.xmb.node_position_add = XMB_NODE_POSITION_NORMAL;
|
||||
#endif
|
||||
#endif
|
||||
#ifdef HAVE_MATERIALUI
|
||||
settings->menu.materialui.menu_color_theme = MATERIALUI_THEME_BLUE;
|
||||
@ -1440,6 +1455,21 @@ static bool config_load_file(const char *path, bool set_defaults)
|
||||
{ "xmb_theme", &settings->menu.xmb.theme},
|
||||
#ifdef HAVE_XMB
|
||||
{ "xmb_menu_color_theme", &settings->menu.xmb.menu_color_theme},
|
||||
#ifdef HAVE_KIOSK
|
||||
{ "xmb_node_position_main", &settings->menu.xmb.node_position_main},
|
||||
#endif
|
||||
{ "xmb_node_position_settings", &settings->menu.xmb.node_position_settings},
|
||||
#ifdef HAVE_IMAGEVIEWER
|
||||
{ "xmb_node_position_images", &settings->menu.xmb.node_position_images},
|
||||
#endif
|
||||
#ifdef HAVE_FFMPEG
|
||||
{ "xmb_node_position_music", &settings->menu.xmb.node_position_music},
|
||||
{ "xmb_node_position_video", &settings->menu.xmb.node_position_video},
|
||||
#endif
|
||||
{ "xmb_node_position_history", &settings->menu.xmb.node_position_history},
|
||||
#ifdef HAVE_LIBRETRODB
|
||||
{ "xmb_node_position_add", &settings->menu.xmb.node_position_add},
|
||||
#endif
|
||||
#endif
|
||||
{ "materialui_menu_color_theme", &settings->menu.materialui.menu_color_theme},
|
||||
{ "menu_shader_pipeline", &settings->menu.xmb.shader_pipeline},
|
||||
@ -2946,6 +2976,21 @@ bool config_save_file(const char *path)
|
||||
{ "xmb_theme", settings->menu.xmb.theme},
|
||||
#ifdef HAVE_XMB
|
||||
{ "xmb_menu_color_theme", settings->menu.xmb.menu_color_theme},
|
||||
#ifdef HAVE_KIOSK
|
||||
{ "xmb_node_position_main", settings->menu.xmb.node_position_main},
|
||||
#endif
|
||||
{ "xmb_node_position_settings", settings->menu.xmb.node_position_settings},
|
||||
#ifdef HAVE_IMAGEVIEWER
|
||||
{ "xmb_node_position_images", settings->menu.xmb.node_position_images},
|
||||
#endif
|
||||
#ifdef HAVE_FFMPEG
|
||||
{ "xmb_node_position_music", settings->menu.xmb.node_position_music},
|
||||
{ "xmb_node_position_video", settings->menu.xmb.node_position_video},
|
||||
#endif
|
||||
{ "xmb_node_position_history", settings->menu.xmb.node_position_history},
|
||||
#ifdef HAVE_LIBRETRODB
|
||||
{ "xmb_node_position_add", settings->menu.xmb.node_position_add},
|
||||
#endif
|
||||
#endif
|
||||
{ "materialui_menu_color_theme", settings->menu.materialui.menu_color_theme},
|
||||
{ "menu_shader_pipeline", settings->menu.xmb.shader_pipeline},
|
||||
|
@ -233,6 +233,23 @@ typedef struct settings
|
||||
unsigned alpha_factor;
|
||||
unsigned theme;
|
||||
unsigned menu_color_theme;
|
||||
#ifdef HAVE_XMB
|
||||
#ifdef HAVE_KIOSK
|
||||
unsigned node_position_main;
|
||||
#endif
|
||||
unsigned node_position_settings;
|
||||
#ifdef HAVE_IMAGEVIEWER
|
||||
unsigned node_position_images;
|
||||
#endif
|
||||
#ifdef HAVE_FFMPEG
|
||||
unsigned node_position_music;
|
||||
unsigned node_position_video;
|
||||
#endif
|
||||
unsigned node_position_history;
|
||||
#ifdef HAVE_LIBRETRODB
|
||||
unsigned node_position_add;
|
||||
#endif
|
||||
#endif
|
||||
bool shadows_enable;
|
||||
} xmb;
|
||||
|
||||
|
@ -2420,6 +2420,30 @@ static const char *menu_hash_to_str_us_label_enum(enum msg_hash_enums msg)
|
||||
return "xmb_theme";
|
||||
case MENU_ENUM_LABEL_XMB_MENU_COLOR_THEME:
|
||||
return "xmb_menu_color_theme";
|
||||
#ifdef HAVE_XMB
|
||||
#ifdef HAVE_KIOSK
|
||||
case MENU_ENUM_LABEL_XMB_NODE_POSITION_MAIN:
|
||||
return "xmb_node_position_main";
|
||||
#endif
|
||||
case MENU_ENUM_LABEL_XMB_NODE_POSITION_SETTINGS:
|
||||
return "xmb_node_position_settings";
|
||||
#ifdef HAVE_IMAGEVIEWER
|
||||
case MENU_ENUM_LABEL_XMB_NODE_POSITION_IMAGES:
|
||||
return "xmb_node_position_images";
|
||||
#endif
|
||||
#ifdef HAVE_FFMPEG
|
||||
case MENU_ENUM_LABEL_XMB_NODE_POSITION_MUSIC:
|
||||
return "xmb_node_position_music";
|
||||
case MENU_ENUM_LABEL_XMB_NODE_POSITION_VIDEO:
|
||||
return "xmb_node_position_video";
|
||||
#endif
|
||||
case MENU_ENUM_LABEL_XMB_NODE_POSITION_HISTORY:
|
||||
return "xmb_node_position_history";
|
||||
#ifdef HAVE_LIBRETRODB
|
||||
case MENU_ENUM_LABEL_XMB_NODE_POSITION_ADD:
|
||||
return "xmb_node_position_add";
|
||||
#endif
|
||||
#endif
|
||||
case MENU_ENUM_LABEL_MATERIALUI_MENU_COLOR_THEME:
|
||||
return "materialui_menu_color_theme";
|
||||
case MENU_ENUM_LABEL_MATERIALUI_MENU_HEADER_OPACITY:
|
||||
@ -2949,6 +2973,10 @@ const char *msg_hash_to_str_us(enum msg_hash_enums msg)
|
||||
return "Volcanic Red";
|
||||
case MENU_ENUM_LABEL_VALUE_XMB_MENU_COLOR_THEME_DARK:
|
||||
return "Dark";
|
||||
#ifdef HAVE_XMB
|
||||
case MENU_ENUM_LABEL_VALUE_XMB_MENU_NODE_POSITION_REORDERED:
|
||||
return "REORDERED";
|
||||
#endif
|
||||
case MENU_ENUM_LABEL_VALUE_CHEEVOS_UNLOCKED_ENTRY:
|
||||
return "Unlocked";
|
||||
case MENU_ENUM_LABEL_VALUE_CHEEVOS_LOCKED_ENTRY:
|
||||
@ -3711,6 +3739,30 @@ const char *msg_hash_to_str_us(enum msg_hash_enums msg)
|
||||
return "Menu Icon Theme";
|
||||
case MENU_ENUM_LABEL_VALUE_XMB_MENU_COLOR_THEME:
|
||||
return "Menu Color Theme";
|
||||
#ifdef HAVE_XMB
|
||||
#ifdef HAVE_KIOSK
|
||||
case MENU_ENUM_LABEL_VALUE_XMB_NODE_POSITION_MAIN:
|
||||
return "Show Main Menu";
|
||||
#endif
|
||||
case MENU_ENUM_LABEL_VALUE_XMB_NODE_POSITION_SETTINGS:
|
||||
return "Show Settings Menu";
|
||||
#ifdef HAVE_IMAGEVIEWER
|
||||
case MENU_ENUM_LABEL_VALUE_XMB_NODE_POSITION_IMAGES:
|
||||
return "Show Images Menu";
|
||||
#endif
|
||||
#ifdef HAVE_FFMPEG
|
||||
case MENU_ENUM_LABEL_VALUE_XMB_NODE_POSITION_MUSIC:
|
||||
return "Show Music Menu";
|
||||
case MENU_ENUM_LABEL_VALUE_XMB_NODE_POSITION_VIDEO:
|
||||
return "Show Video Menu";
|
||||
#endif
|
||||
case MENU_ENUM_LABEL_VALUE_XMB_NODE_POSITION_HISTORY:
|
||||
return "Show History Menu";
|
||||
#ifdef HAVE_LIBRETRODB
|
||||
case MENU_ENUM_LABEL_VALUE_XMB_NODE_POSITION_ADD:
|
||||
return "Show Import Menu";
|
||||
#endif
|
||||
#endif
|
||||
case MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_COLOR_THEME:
|
||||
return "Menu Color Theme";
|
||||
case MENU_ENUM_LABEL_VALUE_XMB_SHADOWS_ENABLE:
|
||||
|
@ -783,6 +783,165 @@ static void menu_action_setting_disp_set_label_xmb_menu_color_theme(
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef HAVE_XMB
|
||||
#ifndef HAVE_KIOSK
|
||||
static void menu_action_setting_disp_set_label_xmb_menu_node_position(
|
||||
file_list_t* list,
|
||||
unsigned *w, unsigned type, unsigned i,
|
||||
const char *label,
|
||||
char *s, size_t len,
|
||||
const char *entry_label,
|
||||
const char *path,
|
||||
char *s2, size_t len2, unsigned position)
|
||||
{
|
||||
strlcpy(s2, path, len2);
|
||||
*w = 7;
|
||||
|
||||
switch (position)
|
||||
{
|
||||
case XMB_NODE_POSITION_HIDDEN:
|
||||
strlcpy(s,
|
||||
msg_hash_to_str(
|
||||
MENU_ENUM_LABEL_VALUE_OFF),
|
||||
len);
|
||||
break;
|
||||
case XMB_NODE_POSITION_NORMAL:
|
||||
strlcpy(s,
|
||||
msg_hash_to_str(
|
||||
MENU_ENUM_LABEL_VALUE_ON),
|
||||
len);
|
||||
break;
|
||||
default:
|
||||
strlcpy(s,
|
||||
msg_hash_to_str(
|
||||
MENU_ENUM_LABEL_VALUE_XMB_MENU_NODE_POSITION_REORDERED),
|
||||
len);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void menu_action_setting_disp_set_label_xmb_menu_node_position_settings(
|
||||
file_list_t* list,
|
||||
unsigned *w, unsigned type, unsigned i,
|
||||
const char *label,
|
||||
char *s, size_t len,
|
||||
const char *entry_label,
|
||||
const char *path,
|
||||
char *s2, size_t len2)
|
||||
{
|
||||
settings_t *settings = config_get_ptr();
|
||||
|
||||
if (!settings)
|
||||
return;
|
||||
|
||||
menu_action_setting_disp_set_label_xmb_menu_node_position(list,
|
||||
w, type, i, label, s, len, entry_label, path, s2, len2,
|
||||
settings->menu.xmb.node_position_settings);
|
||||
}
|
||||
|
||||
#ifdef HAVE_IMAGEVIEWER
|
||||
static void menu_action_setting_disp_set_label_xmb_menu_node_position_images(
|
||||
file_list_t* list,
|
||||
unsigned *w, unsigned type, unsigned i,
|
||||
const char *label,
|
||||
char *s, size_t len,
|
||||
const char *entry_label,
|
||||
const char *path,
|
||||
char *s2, size_t len2)
|
||||
{
|
||||
settings_t *settings = config_get_ptr();
|
||||
|
||||
if (!settings)
|
||||
return;
|
||||
|
||||
menu_action_setting_disp_set_label_xmb_menu_node_position(list,
|
||||
w, type, i, label, s, len, entry_label, path, s2, len2,
|
||||
settings->menu.xmb.node_position_images);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_FFMPEG
|
||||
static void menu_action_setting_disp_set_label_xmb_menu_node_position_music(
|
||||
file_list_t* list,
|
||||
unsigned *w, unsigned type, unsigned i,
|
||||
const char *label,
|
||||
char *s, size_t len,
|
||||
const char *entry_label,
|
||||
const char *path,
|
||||
char *s2, size_t len2)
|
||||
{
|
||||
settings_t *settings = config_get_ptr();
|
||||
|
||||
if (!settings)
|
||||
return;
|
||||
|
||||
menu_action_setting_disp_set_label_xmb_menu_node_position(list,
|
||||
w, type, i, label, s, len, entry_label, path, s2, len2,
|
||||
settings->menu.xmb.node_position_music);
|
||||
}
|
||||
|
||||
static void menu_action_setting_disp_set_label_xmb_menu_node_position_video(
|
||||
file_list_t* list,
|
||||
unsigned *w, unsigned type, unsigned i,
|
||||
const char *label,
|
||||
char *s, size_t len,
|
||||
const char *entry_label,
|
||||
const char *path,
|
||||
char *s2, size_t len2)
|
||||
{
|
||||
settings_t *settings = config_get_ptr();
|
||||
|
||||
if (!settings)
|
||||
return;
|
||||
|
||||
menu_action_setting_disp_set_label_xmb_menu_node_position(list,
|
||||
w, type, i, label, s, len, entry_label, path, s2, len2,
|
||||
settings->menu.xmb.node_position_video);
|
||||
}
|
||||
#endif
|
||||
|
||||
static void menu_action_setting_disp_set_label_xmb_menu_node_position_history(
|
||||
file_list_t* list,
|
||||
unsigned *w, unsigned type, unsigned i,
|
||||
const char *label,
|
||||
char *s, size_t len,
|
||||
const char *entry_label,
|
||||
const char *path,
|
||||
char *s2, size_t len2)
|
||||
{
|
||||
settings_t *settings = config_get_ptr();
|
||||
|
||||
if (!settings)
|
||||
return;
|
||||
|
||||
menu_action_setting_disp_set_label_xmb_menu_node_position(list,
|
||||
w, type, i, label, s, len, entry_label, path, s2, len2,
|
||||
settings->menu.xmb.node_position_history);
|
||||
}
|
||||
|
||||
#ifdef HAVE_LIBRETRODB
|
||||
static void menu_action_setting_disp_set_label_xmb_menu_node_position_add(
|
||||
file_list_t* list,
|
||||
unsigned *w, unsigned type, unsigned i,
|
||||
const char *label,
|
||||
char *s, size_t len,
|
||||
const char *entry_label,
|
||||
const char *path,
|
||||
char *s2, size_t len2)
|
||||
{
|
||||
settings_t *settings = config_get_ptr();
|
||||
|
||||
if (!settings)
|
||||
return;
|
||||
|
||||
menu_action_setting_disp_set_label_xmb_menu_node_position(list,
|
||||
w, type, i, label, s, len, entry_label, path, s2, len2,
|
||||
settings->menu.xmb.node_position_add);
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
static void menu_action_setting_disp_set_label_materialui_menu_color_theme(
|
||||
file_list_t* list,
|
||||
unsigned *w, unsigned type, unsigned i,
|
||||
@ -1532,6 +1691,40 @@ static int menu_cbs_init_bind_get_string_representation_compare_label(
|
||||
BIND_ACTION_GET_VALUE(cbs,
|
||||
menu_action_setting_disp_set_label_xmb_menu_color_theme);
|
||||
break;
|
||||
#ifdef HAVE_XMB
|
||||
#ifndef HAVE_KIOSK
|
||||
case MENU_ENUM_LABEL_XMB_NODE_POSITION_SETTINGS:
|
||||
BIND_ACTION_GET_VALUE(cbs,
|
||||
menu_action_setting_disp_set_label_xmb_menu_node_position_settings);
|
||||
break;
|
||||
#ifdef HAVE_IMAGEVIEWER
|
||||
case MENU_ENUM_LABEL_XMB_NODE_POSITION_IMAGES:
|
||||
BIND_ACTION_GET_VALUE(cbs,
|
||||
menu_action_setting_disp_set_label_xmb_menu_node_position_images);
|
||||
break;
|
||||
#endif
|
||||
#ifdef HAVE_FFMPEG
|
||||
case MENU_ENUM_LABEL_XMB_NODE_POSITION_MUSIC:
|
||||
BIND_ACTION_GET_VALUE(cbs,
|
||||
menu_action_setting_disp_set_label_xmb_menu_node_position_music);
|
||||
break;
|
||||
case MENU_ENUM_LABEL_XMB_NODE_POSITION_VIDEO:
|
||||
BIND_ACTION_GET_VALUE(cbs,
|
||||
menu_action_setting_disp_set_label_xmb_menu_node_position_video);
|
||||
break;
|
||||
#endif
|
||||
case MENU_ENUM_LABEL_XMB_NODE_POSITION_HISTORY:
|
||||
BIND_ACTION_GET_VALUE(cbs,
|
||||
menu_action_setting_disp_set_label_xmb_menu_node_position_history);
|
||||
break;
|
||||
#ifdef HAVE_LIBRETRODB
|
||||
case MENU_ENUM_LABEL_XMB_NODE_POSITION_ADD:
|
||||
BIND_ACTION_GET_VALUE(cbs,
|
||||
menu_action_setting_disp_set_label_xmb_menu_node_position_add);
|
||||
break;
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
case MENU_ENUM_LABEL_MATERIALUI_MENU_COLOR_THEME:
|
||||
BIND_ACTION_GET_VALUE(cbs,
|
||||
menu_action_setting_disp_set_label_materialui_menu_color_theme);
|
||||
|
@ -107,6 +107,7 @@ enum
|
||||
XMB_TEXTURE_CURSOR,
|
||||
XMB_TEXTURE_SWITCH_ON,
|
||||
XMB_TEXTURE_SWITCH_OFF,
|
||||
XMB_TEXTURE_SWITCH_REORDERED,
|
||||
XMB_TEXTURE_CLOCK,
|
||||
XMB_TEXTURE_POINTER,
|
||||
XMB_TEXTURE_ADD,
|
||||
@ -134,6 +135,13 @@ enum
|
||||
#define XMB_SYSTEM_TAB_END XMB_SYSTEM_TAB_HISTORY
|
||||
#endif
|
||||
|
||||
enum
|
||||
{
|
||||
XMB_PLAYLIST_DIFFERENCE = XMB_SYSTEM_TAB_END + 1,
|
||||
XMB_PLAYLIST_LEFT,
|
||||
XMB_PLAYLIST_RIGHT
|
||||
};
|
||||
|
||||
typedef struct xmb_handle
|
||||
{
|
||||
file_list_t *menu_stack_old;
|
||||
@ -263,9 +271,17 @@ typedef struct xmb_handle
|
||||
xmb_node_t history_tab_node;
|
||||
xmb_node_t add_tab_node;
|
||||
|
||||
unsigned tab_positions[XMB_PLAYLIST_RIGHT + 1];
|
||||
|
||||
video_font_raster_block_t raster_block;
|
||||
} xmb_handle_t;
|
||||
|
||||
typedef struct xmb_tab_position_key
|
||||
{
|
||||
unsigned internal;
|
||||
unsigned configured;
|
||||
} xmb_tab_position_key_t;
|
||||
|
||||
float gradient_dark_purple[16] = {
|
||||
20/255.0, 13/255.0, 20/255.0, 1.0,
|
||||
20/255.0, 13/255.0, 20/255.0, 1.0,
|
||||
@ -424,7 +440,7 @@ static size_t xmb_list_get_size(void *data, enum menu_list_type type)
|
||||
return file_list_get_size(xmb->horizontal_list);
|
||||
break;
|
||||
case MENU_LIST_TABS:
|
||||
return XMB_SYSTEM_TAB_END;
|
||||
return xmb->tab_positions[XMB_PLAYLIST_DIFFERENCE];
|
||||
}
|
||||
|
||||
return 0;
|
||||
@ -448,6 +464,7 @@ static void *xmb_list_get_entry(void *data, enum menu_list_type type, unsigned i
|
||||
case MENU_LIST_HORIZONTAL:
|
||||
if (xmb && xmb->horizontal_list)
|
||||
list_size = file_list_get_size(xmb->horizontal_list);
|
||||
i += 1 + xmb->tab_positions[XMB_PLAYLIST_DIFFERENCE] - xmb->tab_positions[XMB_PLAYLIST_LEFT];
|
||||
if (i < list_size)
|
||||
return (void*)&xmb->horizontal_list->list[i];
|
||||
break;
|
||||
@ -997,7 +1014,7 @@ static xmb_node_t *xmb_node_allocate_userdata(xmb_handle_t *xmb, unsigned i)
|
||||
node->alpha = xmb->categories.passive.alpha;
|
||||
node->zoom = xmb->categories.passive.zoom;
|
||||
|
||||
if ((i + XMB_SYSTEM_TAB_END) == xmb->categories.active.idx)
|
||||
if ((i + xmb->tab_positions[XMB_PLAYLIST_DIFFERENCE]) == xmb->categories.active.idx)
|
||||
{
|
||||
node->alpha = xmb->categories.active.alpha;
|
||||
node->zoom = xmb->categories.active.zoom;
|
||||
@ -1125,7 +1142,8 @@ static void xmb_list_switch_new(xmb_handle_t *xmb,
|
||||
|
||||
static void xmb_set_title(xmb_handle_t *xmb)
|
||||
{
|
||||
if (xmb->categories.selection_ptr <= XMB_SYSTEM_TAB_END)
|
||||
if (xmb->categories.selection_ptr < xmb->tab_positions[XMB_PLAYLIST_LEFT]
|
||||
|| xmb->categories.selection_ptr > xmb->tab_positions[XMB_PLAYLIST_RIGHT])
|
||||
{
|
||||
menu_entries_get_title(xmb->title_name, sizeof(xmb->title_name));
|
||||
}
|
||||
@ -1134,7 +1152,7 @@ static void xmb_set_title(xmb_handle_t *xmb)
|
||||
const char *path = NULL;
|
||||
menu_entries_get_at_offset(
|
||||
xmb->horizontal_list,
|
||||
xmb->categories.selection_ptr - (XMB_SYSTEM_TAB_END + 1),
|
||||
xmb->categories.selection_ptr - xmb->tab_positions[XMB_PLAYLIST_LEFT],
|
||||
&path, NULL, NULL, NULL, NULL);
|
||||
|
||||
if (!path)
|
||||
@ -1144,10 +1162,38 @@ static void xmb_set_title(xmb_handle_t *xmb)
|
||||
}
|
||||
}
|
||||
|
||||
static unsigned xmb_get_system_tab(xmb_handle_t *xmb, unsigned i)
|
||||
{
|
||||
/* transform global index into the internal index */
|
||||
if (i == xmb->tab_positions[XMB_SYSTEM_TAB_MAIN])
|
||||
return XMB_SYSTEM_TAB_MAIN;
|
||||
else if (i == xmb->tab_positions[XMB_SYSTEM_TAB_SETTINGS])
|
||||
return XMB_SYSTEM_TAB_SETTINGS;
|
||||
#ifdef HAVE_IMAGEVIEWER
|
||||
else if (i == xmb->tab_positions[XMB_SYSTEM_TAB_IMAGES])
|
||||
return XMB_SYSTEM_TAB_IMAGES;
|
||||
#endif
|
||||
#ifdef HAVE_FFMPEG
|
||||
else if (i == xmb->tab_positions[XMB_SYSTEM_TAB_VIDEO])
|
||||
return XMB_SYSTEM_TAB_VIDEO;
|
||||
else if (i == xmb->tab_positions[XMB_SYSTEM_TAB_MUSIC])
|
||||
return XMB_SYSTEM_TAB_MUSIC;
|
||||
#endif
|
||||
else if (i == xmb->tab_positions[XMB_SYSTEM_TAB_HISTORY])
|
||||
return XMB_SYSTEM_TAB_HISTORY;
|
||||
else if (i == xmb->tab_positions[XMB_SYSTEM_TAB_ADD])
|
||||
return XMB_SYSTEM_TAB_ADD;
|
||||
else
|
||||
return UINT_MAX;
|
||||
return UINT_MAX;
|
||||
}
|
||||
|
||||
static xmb_node_t* xmb_get_node(xmb_handle_t *xmb, unsigned i)
|
||||
{
|
||||
switch (i)
|
||||
switch (xmb_get_system_tab(xmb, i))
|
||||
{
|
||||
case XMB_SYSTEM_TAB_MAIN:
|
||||
return &xmb->main_menu_node;
|
||||
case XMB_SYSTEM_TAB_SETTINGS:
|
||||
return &xmb->settings_tab_node;
|
||||
#ifdef HAVE_IMAGEVIEWER
|
||||
@ -1165,9 +1211,10 @@ static xmb_node_t* xmb_get_node(xmb_handle_t *xmb, unsigned i)
|
||||
case XMB_SYSTEM_TAB_ADD:
|
||||
return &xmb->add_tab_node;
|
||||
default:
|
||||
if (i > XMB_SYSTEM_TAB_END)
|
||||
if (i >= xmb->tab_positions[XMB_PLAYLIST_LEFT]
|
||||
&& i <= xmb->tab_positions[XMB_PLAYLIST_RIGHT])
|
||||
return xmb_get_userdata_from_horizontal_list(
|
||||
xmb, i - (XMB_SYSTEM_TAB_END + 1));
|
||||
xmb, i - xmb->tab_positions[XMB_PLAYLIST_LEFT]);
|
||||
}
|
||||
|
||||
return &xmb->main_menu_node;
|
||||
@ -1177,9 +1224,9 @@ static void xmb_list_switch_horizontal_list(xmb_handle_t *xmb)
|
||||
{
|
||||
unsigned j;
|
||||
size_t list_size = xmb_list_get_size(xmb, MENU_LIST_HORIZONTAL)
|
||||
+ XMB_SYSTEM_TAB_END;
|
||||
+ xmb->tab_positions[XMB_PLAYLIST_DIFFERENCE];
|
||||
|
||||
for (j = 0; j <= list_size; j++)
|
||||
for (j = 0; j < list_size; j++)
|
||||
{
|
||||
menu_animation_ctx_entry_t entry;
|
||||
float ia = xmb->categories.passive.alpha;
|
||||
@ -1257,9 +1304,9 @@ static void xmb_list_open_horizontal_list(xmb_handle_t *xmb)
|
||||
{
|
||||
unsigned j;
|
||||
size_t list_size = xmb_list_get_size(xmb, MENU_LIST_HORIZONTAL)
|
||||
+ XMB_SYSTEM_TAB_END;
|
||||
+ xmb->tab_positions[XMB_PLAYLIST_DIFFERENCE];
|
||||
|
||||
for (j = 0; j <= list_size; j++)
|
||||
for (j = 0; j < list_size; j++)
|
||||
{
|
||||
menu_animation_ctx_entry_t entry;
|
||||
float ia = 0;
|
||||
@ -1308,6 +1355,150 @@ static void xmb_context_destroy_horizontal_list(xmb_handle_t *xmb)
|
||||
}
|
||||
}
|
||||
|
||||
static int xmb_sort_tab_position(const xmb_tab_position_key_t *a,
|
||||
const xmb_tab_position_key_t *b)
|
||||
{
|
||||
if (a->configured == b->configured)
|
||||
return a->internal - b->internal;
|
||||
return a->configured - b->configured;
|
||||
}
|
||||
|
||||
static void xmb_init_tab_positions(xmb_handle_t *xmb, settings_t *settings)
|
||||
{
|
||||
unsigned configured_position_main = XMB_NODE_POSITION_NORMAL;
|
||||
unsigned configured_position_settings = settings->menu.xmb.node_position_settings;
|
||||
#ifdef HAVE_IMAGEVIEWER
|
||||
unsigned configured_position_images = settings->menu.xmb.node_position_images;
|
||||
#endif
|
||||
#ifdef HAVE_FFMPEG
|
||||
unsigned configured_position_music = settings->menu.xmb.node_position_music;
|
||||
unsigned configured_position_video = settings->menu.xmb.node_position_video;
|
||||
#endif
|
||||
unsigned configured_position_history = settings->menu.xmb.node_position_history;
|
||||
#ifdef HAVE_LIBRETRODB
|
||||
unsigned configured_position_add = settings->menu.xmb.node_position_add;
|
||||
#endif
|
||||
size_t list_size = file_list_get_size(xmb->horizontal_list);
|
||||
unsigned i = 0;
|
||||
|
||||
/* adjust the configured positions for the needs of some distributions */
|
||||
#ifdef HAVE_KIOSK
|
||||
/* configured_position_main = settings->menu.xmb.node_position_main; */
|
||||
#endif
|
||||
#if defined(HAVE_XMB_REQUIRESETTINGS) && !defined(HAVE_KIOSK)
|
||||
if (configured_position_settings == XMB_NODE_POSITION_HIDDEN)
|
||||
configured_position_settings = XMB_NODE_POSITION_NORMAL;
|
||||
#endif
|
||||
|
||||
/* adjust the configured positions depending on history */
|
||||
if (settings->history_list_enable)
|
||||
{
|
||||
if ( configured_position_history == XMB_NODE_POSITION_HIDDEN
|
||||
#ifdef HAVE_IMAGEVIEWER
|
||||
&& configured_position_images == XMB_NODE_POSITION_HIDDEN
|
||||
#endif
|
||||
#ifdef HAVE_FFMPEG
|
||||
&& configured_position_music == XMB_NODE_POSITION_HIDDEN
|
||||
&& configured_position_video == XMB_NODE_POSITION_HIDDEN
|
||||
#endif
|
||||
)
|
||||
{
|
||||
/* reset history tabs if history is enabled without any way to see the history */
|
||||
configured_position_history = XMB_NODE_POSITION_NORMAL;
|
||||
settings->menu.xmb.node_position_history = configured_position_history;
|
||||
#ifdef HAVE_IMAGEVIEWER
|
||||
configured_position_images = XMB_NODE_POSITION_NORMAL;
|
||||
settings->menu.xmb.node_position_images = configured_position_images;
|
||||
#endif
|
||||
#ifdef HAVE_FFMPEG
|
||||
configured_position_music = XMB_NODE_POSITION_NORMAL;
|
||||
settings->menu.xmb.node_position_music = configured_position_music;
|
||||
configured_position_video = XMB_NODE_POSITION_NORMAL;
|
||||
settings->menu.xmb.node_position_video = configured_position_video;
|
||||
#endif
|
||||
#ifndef HAVE_KIOSK
|
||||
command_event(CMD_EVENT_MENU_SAVE_CURRENT_CONFIG, NULL);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( configured_position_history != XMB_NODE_POSITION_HIDDEN
|
||||
#ifdef HAVE_IMAGEVIEWER
|
||||
|| configured_position_images != XMB_NODE_POSITION_HIDDEN
|
||||
#endif
|
||||
#ifdef HAVE_FFMPEG
|
||||
|| configured_position_music != XMB_NODE_POSITION_HIDDEN
|
||||
|| configured_position_video != XMB_NODE_POSITION_HIDDEN
|
||||
#endif
|
||||
)
|
||||
{
|
||||
/* enable history if any tabs are history shown */
|
||||
settings->history_list_enable = true;
|
||||
if (!settings->content_history_size)
|
||||
settings->content_history_size = 1;
|
||||
command_event(CMD_EVENT_HISTORY_INIT, NULL);
|
||||
#ifndef HAVE_KIOSK
|
||||
command_event(CMD_EVENT_MENU_SAVE_CURRENT_CONFIG, NULL);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
xmb_tab_position_key_t keys[XMB_SYSTEM_TAB_END + 1] = {
|
||||
#ifdef HAVE_IMAGEVIEWER
|
||||
{XMB_SYSTEM_TAB_IMAGES, configured_position_images},
|
||||
#endif
|
||||
#ifdef HAVE_FFMPEG
|
||||
{XMB_SYSTEM_TAB_MUSIC, configured_position_music},
|
||||
{XMB_SYSTEM_TAB_VIDEO, configured_position_video},
|
||||
#endif
|
||||
#ifdef HAVE_LIBRETRODB
|
||||
{XMB_SYSTEM_TAB_ADD, configured_position_add},
|
||||
#endif
|
||||
{XMB_SYSTEM_TAB_MAIN, configured_position_main},
|
||||
{XMB_SYSTEM_TAB_SETTINGS, configured_position_settings},
|
||||
{XMB_SYSTEM_TAB_HISTORY, configured_position_history}
|
||||
};
|
||||
|
||||
qsort(&keys, ARRAY_SIZE(keys),
|
||||
sizeof(*keys),
|
||||
(int (*)(const void *, const void *))xmb_sort_tab_position);
|
||||
|
||||
/* discard hidden tabs */
|
||||
for (i = 0; i < ARRAY_SIZE(keys) && keys[i].configured == XMB_NODE_POSITION_HIDDEN; i++)
|
||||
{
|
||||
xmb->tab_positions[keys[i].internal] = UINT_MAX;
|
||||
}
|
||||
|
||||
/* close any gaps pushing leftmost using the now sorted keys */
|
||||
for (; i < ARRAY_SIZE(keys) && keys[i].configured < XMB_NODE_POSITION_RIGHT; i++)
|
||||
{
|
||||
xmb->tab_positions[keys[i].internal] = xmb->tab_positions[XMB_PLAYLIST_DIFFERENCE]++;
|
||||
xmb->tab_positions[XMB_PLAYLIST_LEFT] += 1;
|
||||
}
|
||||
for (; i < ARRAY_SIZE(keys) && keys[i].configured >= XMB_NODE_POSITION_RIGHT; i++)
|
||||
{
|
||||
xmb->tab_positions[keys[i].internal] = list_size + xmb->tab_positions[XMB_PLAYLIST_DIFFERENCE]++;
|
||||
xmb->tab_positions[XMB_PLAYLIST_RIGHT] += 1;
|
||||
}
|
||||
|
||||
/* adjust playlist limits */
|
||||
if (list_size)
|
||||
xmb->tab_positions[XMB_PLAYLIST_RIGHT] = xmb->tab_positions[XMB_PLAYLIST_LEFT] + list_size - 1;
|
||||
else
|
||||
{
|
||||
xmb->tab_positions[XMB_PLAYLIST_LEFT] += xmb->tab_positions[XMB_PLAYLIST_RIGHT];
|
||||
xmb->tab_positions[XMB_PLAYLIST_RIGHT] = 0;
|
||||
if (!xmb->tab_positions[XMB_PLAYLIST_DIFFERENCE])
|
||||
{
|
||||
/* reset main to guarantee at least one menu can be shown */
|
||||
xmb->tab_positions[XMB_SYSTEM_TAB_MAIN] = 0;
|
||||
xmb->tab_positions[XMB_PLAYLIST_DIFFERENCE] = 1;
|
||||
xmb->tab_positions[XMB_PLAYLIST_LEFT] = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void xmb_init_horizontal_list(xmb_handle_t *xmb)
|
||||
{
|
||||
menu_displaylist_info_t info = {0};
|
||||
@ -1333,16 +1524,19 @@ static void xmb_init_horizontal_list(xmb_handle_t *xmb)
|
||||
strlcpy(info.exts, "lpl", sizeof(info.exts));
|
||||
|
||||
if (menu_displaylist_ctl(DISPLAYLIST_DATABASE_PLAYLISTS_HORIZONTAL, &info))
|
||||
{
|
||||
xmb_init_tab_positions(xmb, settings);
|
||||
menu_displaylist_ctl(DISPLAYLIST_PROCESS, &info);
|
||||
}
|
||||
}
|
||||
|
||||
static void xmb_toggle_horizontal_list(xmb_handle_t *xmb)
|
||||
{
|
||||
unsigned i;
|
||||
size_t list_size = xmb_list_get_size(xmb, MENU_LIST_HORIZONTAL)
|
||||
+ XMB_SYSTEM_TAB_END;
|
||||
+ xmb->tab_positions[XMB_PLAYLIST_DIFFERENCE];
|
||||
|
||||
for (i = 0; i <= list_size; i++)
|
||||
for (i = 0; i < list_size; i++)
|
||||
{
|
||||
xmb_node_t *node = xmb_get_node(xmb, i);
|
||||
|
||||
@ -1608,7 +1802,7 @@ static uintptr_t xmb_icon_get_id(xmb_handle_t *xmb,
|
||||
return core_node->content_icon;
|
||||
|
||||
#if defined(HAVE_IMAGEVIEWER) || defined(HAVE_FFMPEG)
|
||||
switch (xmb->categories.selection_ptr)
|
||||
switch (xmb_get_system_tab(xmb, xmb->categories.selection_ptr))
|
||||
{
|
||||
#ifdef HAVE_IMAGEVIEWER
|
||||
case XMB_SYSTEM_TAB_IMAGES:
|
||||
@ -1694,9 +1888,10 @@ static void xmb_draw_items(xmb_handle_t *xmb,
|
||||
if (!list || !list->size)
|
||||
return;
|
||||
|
||||
if (cat_selection_ptr > XMB_SYSTEM_TAB_END)
|
||||
if (cat_selection_ptr >= xmb->tab_positions[XMB_PLAYLIST_LEFT]
|
||||
&& cat_selection_ptr <= xmb->tab_positions[XMB_PLAYLIST_RIGHT])
|
||||
core_node = xmb_get_userdata_from_horizontal_list(
|
||||
xmb, cat_selection_ptr - (XMB_SYSTEM_TAB_END + 1));
|
||||
xmb, cat_selection_ptr - xmb->tab_positions[XMB_PLAYLIST_LEFT]);
|
||||
|
||||
end = file_list_get_size(list);
|
||||
|
||||
@ -1757,7 +1952,8 @@ static void xmb_draw_items(xmb_handle_t *xmb,
|
||||
|
||||
|
||||
if (string_is_equal(entry.value, "disabled") ||
|
||||
string_is_equal(entry.value, "off"))
|
||||
string_is_equal(entry.value, "off") ||
|
||||
string_is_equal(entry.value, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_OFF)))
|
||||
{
|
||||
if (xmb->textures.list[XMB_TEXTURE_SWITCH_OFF])
|
||||
texture_switch = xmb->textures.list[XMB_TEXTURE_SWITCH_OFF];
|
||||
@ -1765,13 +1961,22 @@ static void xmb_draw_items(xmb_handle_t *xmb,
|
||||
do_draw_text = true;
|
||||
}
|
||||
else if (string_is_equal(entry.value, "enabled") ||
|
||||
string_is_equal(entry.value, "on"))
|
||||
string_is_equal(entry.value, "on") ||
|
||||
string_is_equal(entry.value, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_ON)))
|
||||
{
|
||||
if (xmb->textures.list[XMB_TEXTURE_SWITCH_ON])
|
||||
texture_switch = xmb->textures.list[XMB_TEXTURE_SWITCH_ON];
|
||||
else
|
||||
do_draw_text = true;
|
||||
}
|
||||
else if (string_is_equal(entry.value, "reordered_tab") ||
|
||||
string_is_equal(entry.value, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_XMB_MENU_NODE_POSITION_REORDERED)))
|
||||
{
|
||||
if (xmb->textures.list[XMB_TEXTURE_SWITCH_REORDERED])
|
||||
texture_switch = xmb->textures.list[XMB_TEXTURE_SWITCH_REORDERED];
|
||||
else
|
||||
do_draw_text = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
switch (msg_hash_to_file_type(msg_hash_calculate(entry.value)))
|
||||
@ -2227,8 +2432,8 @@ static void xmb_frame(void *data)
|
||||
menu_display_blend_begin();
|
||||
|
||||
/* Horizontal tab icons */
|
||||
for (i = 0; i <= xmb_list_get_size(xmb, MENU_LIST_HORIZONTAL)
|
||||
+ XMB_SYSTEM_TAB_END; i++)
|
||||
for (i = 0; i < xmb_list_get_size(xmb, MENU_LIST_HORIZONTAL)
|
||||
+ xmb->tab_positions[XMB_PLAYLIST_DIFFERENCE]; i++)
|
||||
{
|
||||
xmb_node_t *node = xmb_get_node(xmb, i);
|
||||
|
||||
@ -2781,6 +2986,8 @@ static const char *xmb_texture_path(unsigned id)
|
||||
return "on.png";
|
||||
case XMB_TEXTURE_SWITCH_OFF:
|
||||
return "off.png";
|
||||
case XMB_TEXTURE_SWITCH_REORDERED:
|
||||
return "reordered.png";
|
||||
case XMB_TEXTURE_ADD:
|
||||
return "add.png";
|
||||
}
|
||||
@ -3043,7 +3250,7 @@ static void xmb_list_cache(void *data, enum menu_list_type type, unsigned action
|
||||
xmb->selection_ptr_old = selection;
|
||||
|
||||
list_size = xmb_list_get_size(xmb, MENU_LIST_HORIZONTAL)
|
||||
+ XMB_SYSTEM_TAB_END;
|
||||
+ xmb->tab_positions[XMB_PLAYLIST_DIFFERENCE];
|
||||
|
||||
switch (type)
|
||||
{
|
||||
@ -3057,14 +3264,14 @@ static void xmb_list_cache(void *data, enum menu_list_type type, unsigned action
|
||||
case MENU_ACTION_LEFT:
|
||||
if (xmb->categories.selection_ptr == 0)
|
||||
{
|
||||
xmb->categories.selection_ptr = list_size;
|
||||
xmb->categories.active.idx = list_size - 1;
|
||||
xmb->categories.selection_ptr = list_size - 1;
|
||||
xmb->categories.active.idx = list_size - 2;
|
||||
}
|
||||
else
|
||||
xmb->categories.selection_ptr--;
|
||||
break;
|
||||
default:
|
||||
if (xmb->categories.selection_ptr == list_size)
|
||||
if (xmb->categories.selection_ptr == (list_size - 1))
|
||||
{
|
||||
xmb->categories.selection_ptr = 0;
|
||||
xmb->categories.active.idx = 1;
|
||||
@ -3080,7 +3287,7 @@ static void xmb_list_cache(void *data, enum menu_list_type type, unsigned action
|
||||
free(menu_stack->list[stack_size - 1].label);
|
||||
menu_stack->list[stack_size - 1].label = NULL;
|
||||
|
||||
switch (xmb->categories.selection_ptr)
|
||||
switch (xmb_get_system_tab(xmb, xmb->categories.selection_ptr))
|
||||
{
|
||||
case XMB_SYSTEM_TAB_MAIN:
|
||||
menu_stack->list[stack_size - 1].label =
|
||||
@ -3236,6 +3443,10 @@ static int xmb_list_push(void *data, void *userdata,
|
||||
menu_displaylist_ctx_parse_entry_t entry;
|
||||
int ret = -1;
|
||||
menu_handle_t *menu = (menu_handle_t*)data;
|
||||
#ifdef HAVE_KIOSK
|
||||
bool hide_entries = false;
|
||||
settings_t *settings;
|
||||
#endif
|
||||
|
||||
switch (type)
|
||||
{
|
||||
@ -3247,55 +3458,74 @@ static int xmb_list_push(void *data, void *userdata,
|
||||
entry.parse_type = PARSE_ACTION;
|
||||
entry.add_empty_entry = false;
|
||||
|
||||
#ifdef HAVE_KIOSK
|
||||
settings = config_get_ptr();
|
||||
|
||||
if (settings->menu.xmb.node_position_main == XMB_NODE_POSITION_HIDDEN)
|
||||
hide_entries = true;
|
||||
#endif
|
||||
|
||||
if (!rarch_ctl(RARCH_CTL_IS_DUMMY_CORE, NULL))
|
||||
{
|
||||
entry.enum_idx = MENU_ENUM_LABEL_CONTENT_SETTINGS;
|
||||
menu_displaylist_ctl(DISPLAYLIST_SETTING_ENUM, &entry);
|
||||
}
|
||||
|
||||
if (menu_driver_ctl(RARCH_MENU_CTL_HAS_LOAD_NO_CONTENT, NULL))
|
||||
#ifdef HAVE_KIOSK
|
||||
if (!hide_entries)
|
||||
#endif
|
||||
{
|
||||
entry.enum_idx = MENU_ENUM_LABEL_START_CORE;
|
||||
if (menu_driver_ctl(RARCH_MENU_CTL_HAS_LOAD_NO_CONTENT, NULL))
|
||||
{
|
||||
entry.enum_idx = MENU_ENUM_LABEL_START_CORE;
|
||||
menu_displaylist_ctl(DISPLAYLIST_SETTING_ENUM, &entry);
|
||||
}
|
||||
|
||||
entry.enum_idx = MENU_ENUM_LABEL_START_VIDEO_PROCESSOR;
|
||||
menu_displaylist_ctl(DISPLAYLIST_SETTING_ENUM, &entry);
|
||||
}
|
||||
|
||||
entry.enum_idx = MENU_ENUM_LABEL_START_VIDEO_PROCESSOR;
|
||||
menu_displaylist_ctl(DISPLAYLIST_SETTING_ENUM, &entry);
|
||||
|
||||
entry.enum_idx = MENU_ENUM_LABEL_START_NET_RETROPAD;
|
||||
menu_displaylist_ctl(DISPLAYLIST_SETTING_ENUM, &entry);
|
||||
entry.enum_idx = MENU_ENUM_LABEL_START_NET_RETROPAD;
|
||||
menu_displaylist_ctl(DISPLAYLIST_SETTING_ENUM, &entry);
|
||||
|
||||
#ifndef HAVE_DYNAMIC
|
||||
if (frontend_driver_has_fork())
|
||||
if (frontend_driver_has_fork())
|
||||
#endif
|
||||
{
|
||||
entry.enum_idx = MENU_ENUM_LABEL_CORE_LIST;
|
||||
{
|
||||
entry.enum_idx = MENU_ENUM_LABEL_CORE_LIST;
|
||||
menu_displaylist_ctl(DISPLAYLIST_SETTING_ENUM, &entry);
|
||||
}
|
||||
|
||||
entry.enum_idx = MENU_ENUM_LABEL_LOAD_CONTENT_LIST;
|
||||
menu_displaylist_ctl(DISPLAYLIST_SETTING_ENUM, &entry);
|
||||
|
||||
entry.enum_idx = MENU_ENUM_LABEL_ADD_CONTENT_LIST;
|
||||
menu_displaylist_ctl(DISPLAYLIST_SETTING_ENUM, &entry);
|
||||
#if defined(HAVE_NETWORKING)
|
||||
entry.enum_idx = MENU_ENUM_LABEL_ONLINE_UPDATER;
|
||||
menu_displaylist_ctl(DISPLAYLIST_SETTING_ENUM, &entry);
|
||||
#endif
|
||||
}
|
||||
|
||||
entry.enum_idx = MENU_ENUM_LABEL_LOAD_CONTENT_LIST;
|
||||
menu_displaylist_ctl(DISPLAYLIST_SETTING_ENUM, &entry);
|
||||
|
||||
entry.enum_idx = MENU_ENUM_LABEL_ADD_CONTENT_LIST;
|
||||
menu_displaylist_ctl(DISPLAYLIST_SETTING_ENUM, &entry);
|
||||
#if defined(HAVE_NETWORKING)
|
||||
entry.enum_idx = MENU_ENUM_LABEL_ONLINE_UPDATER;
|
||||
menu_displaylist_ctl(DISPLAYLIST_SETTING_ENUM, &entry);
|
||||
#endif
|
||||
entry.enum_idx = MENU_ENUM_LABEL_INFORMATION_LIST;
|
||||
menu_displaylist_ctl(DISPLAYLIST_SETTING_ENUM, &entry);
|
||||
#ifndef HAVE_DYNAMIC
|
||||
entry.enum_idx = MENU_ENUM_LABEL_RESTART_RETROARCH;
|
||||
menu_displaylist_ctl(DISPLAYLIST_SETTING_ENUM, &entry);
|
||||
#endif
|
||||
entry.enum_idx = MENU_ENUM_LABEL_CONFIGURATIONS;
|
||||
menu_displaylist_ctl(DISPLAYLIST_SETTING_ENUM, &entry);
|
||||
|
||||
entry.enum_idx = MENU_ENUM_LABEL_SAVE_CURRENT_CONFIG;
|
||||
menu_displaylist_ctl(DISPLAYLIST_SETTING_ENUM, &entry);
|
||||
#ifdef HAVE_KIOSK
|
||||
if (!hide_entries)
|
||||
#endif
|
||||
{
|
||||
entry.enum_idx = MENU_ENUM_LABEL_CONFIGURATIONS;
|
||||
menu_displaylist_ctl(DISPLAYLIST_SETTING_ENUM, &entry);
|
||||
|
||||
entry.enum_idx = MENU_ENUM_LABEL_SAVE_NEW_CONFIG;
|
||||
menu_displaylist_ctl(DISPLAYLIST_SETTING_ENUM, &entry);
|
||||
entry.enum_idx = MENU_ENUM_LABEL_SAVE_CURRENT_CONFIG;
|
||||
menu_displaylist_ctl(DISPLAYLIST_SETTING_ENUM, &entry);
|
||||
|
||||
entry.enum_idx = MENU_ENUM_LABEL_SAVE_NEW_CONFIG;
|
||||
menu_displaylist_ctl(DISPLAYLIST_SETTING_ENUM, &entry);
|
||||
}
|
||||
|
||||
entry.enum_idx = MENU_ENUM_LABEL_HELP_LIST;
|
||||
menu_displaylist_ctl(DISPLAYLIST_SETTING_ENUM, &entry);
|
||||
|
@ -65,6 +65,21 @@ enum xmb_icon_theme
|
||||
XMB_ICON_THEME_CUSTOM
|
||||
};
|
||||
|
||||
#ifdef HAVE_XMB
|
||||
enum xmb_node_position
|
||||
{
|
||||
XMB_NODE_POSITION_HIDDEN = 0,
|
||||
XMB_NODE_POSITION_NORMAL = 1,
|
||||
XMB_NODE_POSITION_RIGHT = 9,
|
||||
XMB_NODE_POSITION_LAST = (XMB_NODE_POSITION_RIGHT - 1) * 2
|
||||
};
|
||||
#ifdef HAVE_KIOSK
|
||||
#define XMB_NODE_POSITION_END XMB_NODE_POSITION_LAST
|
||||
#else
|
||||
#define XMB_NODE_POSITION_END XMB_NODE_POSITION_NORMAL
|
||||
#endif
|
||||
#endif
|
||||
|
||||
enum xmb_shader_pipeline
|
||||
{
|
||||
XMB_SHADER_PIPELINE_WALLPAPER = 0,
|
||||
|
@ -2647,9 +2647,13 @@ static int menu_displaylist_parse_load_content_settings(
|
||||
menu_displaylist_info_t *info)
|
||||
{
|
||||
menu_handle_t *menu = NULL;
|
||||
#ifdef HAVE_CHEEVOS
|
||||
#if defined(HAVE_CHEEVOS) || defined(HAVE_KIOSK)
|
||||
settings_t *settings = config_get_ptr();
|
||||
#endif
|
||||
#ifdef HAVE_KIOSK
|
||||
bool hide_entries = false;
|
||||
#endif
|
||||
|
||||
if (!menu_driver_ctl(RARCH_MENU_CTL_DRIVER_DATA_GET, &menu))
|
||||
return -1;
|
||||
|
||||
@ -2657,6 +2661,13 @@ static int menu_displaylist_parse_load_content_settings(
|
||||
{
|
||||
rarch_system_info_t *system = NULL;
|
||||
|
||||
#ifdef HAVE_KIOSK
|
||||
#ifdef HAVE_XMB
|
||||
if (!settings->menu.xmb.node_position_main && !settings->menu.show_advanced_settings)
|
||||
hide_entries = true;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
runloop_ctl(RUNLOOP_CTL_SYSTEM_INFO_GET, &system);
|
||||
|
||||
menu_entries_append_enum(info->list,
|
||||
@ -2710,39 +2721,43 @@ static int menu_displaylist_parse_load_content_settings(
|
||||
MENU_ENUM_LABEL_UNDO_SAVE_STATE,
|
||||
MENU_SETTING_ACTION_LOADSTATE, 0, 0);
|
||||
|
||||
menu_entries_append_enum(info->list,
|
||||
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_CORE_OPTIONS),
|
||||
msg_hash_to_str(MENU_ENUM_LABEL_CORE_OPTIONS),
|
||||
MENU_ENUM_LABEL_CORE_OPTIONS,
|
||||
MENU_SETTING_ACTION, 0, 0);
|
||||
|
||||
if (core_has_set_input_descriptor())
|
||||
#ifdef HAVE_KIOSK
|
||||
if (!hide_entries)
|
||||
#endif
|
||||
{
|
||||
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_CORE_INPUT_REMAPPING_OPTIONS),
|
||||
MENU_ENUM_LABEL_CORE_INPUT_REMAPPING_OPTIONS,
|
||||
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_CORE_OPTIONS),
|
||||
msg_hash_to_str(MENU_ENUM_LABEL_CORE_OPTIONS),
|
||||
MENU_ENUM_LABEL_CORE_OPTIONS,
|
||||
MENU_SETTING_ACTION, 0, 0);
|
||||
|
||||
if (core_has_set_input_descriptor())
|
||||
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_CORE_INPUT_REMAPPING_OPTIONS),
|
||||
MENU_ENUM_LABEL_CORE_INPUT_REMAPPING_OPTIONS,
|
||||
MENU_SETTING_ACTION, 0, 0);
|
||||
|
||||
menu_entries_append_enum(info->list,
|
||||
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_CORE_CHEAT_OPTIONS),
|
||||
msg_hash_to_str(MENU_ENUM_LABEL_CORE_CHEAT_OPTIONS),
|
||||
MENU_ENUM_LABEL_CORE_CHEAT_OPTIONS,
|
||||
MENU_SETTING_ACTION, 0, 0);
|
||||
if ( (!rarch_ctl(RARCH_CTL_IS_DUMMY_CORE, NULL))
|
||||
&& system && system->disk_control_cb.get_num_images)
|
||||
menu_entries_append_enum(info->list,
|
||||
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_DISK_OPTIONS),
|
||||
msg_hash_to_str(MENU_ENUM_LABEL_DISK_OPTIONS),
|
||||
MENU_ENUM_LABEL_DISK_OPTIONS,
|
||||
MENU_SETTING_ACTION_CORE_DISK_OPTIONS, 0, 0);
|
||||
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_CORE_CHEAT_OPTIONS),
|
||||
msg_hash_to_str(MENU_ENUM_LABEL_CORE_CHEAT_OPTIONS),
|
||||
MENU_ENUM_LABEL_CORE_CHEAT_OPTIONS,
|
||||
MENU_SETTING_ACTION, 0, 0);
|
||||
if ( (!rarch_ctl(RARCH_CTL_IS_DUMMY_CORE, NULL))
|
||||
&& system && system->disk_control_cb.get_num_images)
|
||||
menu_entries_append_enum(info->list,
|
||||
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_DISK_OPTIONS),
|
||||
msg_hash_to_str(MENU_ENUM_LABEL_DISK_OPTIONS),
|
||||
MENU_ENUM_LABEL_DISK_OPTIONS,
|
||||
MENU_SETTING_ACTION_CORE_DISK_OPTIONS, 0, 0);
|
||||
#ifdef HAVE_SHADER_MANAGER
|
||||
menu_entries_append_enum(info->list,
|
||||
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SHADER_OPTIONS),
|
||||
msg_hash_to_str(MENU_ENUM_LABEL_SHADER_OPTIONS),
|
||||
MENU_ENUM_LABEL_SHADER_OPTIONS,
|
||||
MENU_SETTING_ACTION, 0, 0);
|
||||
menu_entries_append_enum(info->list,
|
||||
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SHADER_OPTIONS),
|
||||
msg_hash_to_str(MENU_ENUM_LABEL_SHADER_OPTIONS),
|
||||
MENU_ENUM_LABEL_SHADER_OPTIONS,
|
||||
MENU_SETTING_ACTION, 0, 0);
|
||||
#endif
|
||||
}
|
||||
#ifdef HAVE_CHEEVOS
|
||||
if(settings->cheevos.enable)
|
||||
menu_entries_append_enum(info->list,
|
||||
@ -4654,6 +4669,39 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data)
|
||||
menu_displaylist_parse_settings_enum(menu, info,
|
||||
MENU_ENUM_LABEL_XMB_MENU_COLOR_THEME,
|
||||
PARSE_ONLY_UINT, false);
|
||||
#ifdef HAVE_XMB
|
||||
#ifdef HAVE_KIOSK
|
||||
menu_displaylist_parse_settings_enum(menu, info,
|
||||
MENU_ENUM_LABEL_XMB_NODE_POSITION_MAIN,
|
||||
PARSE_ONLY_UINT, false);
|
||||
#endif
|
||||
#if !defined(HAVE_XMB_REQUIRESETTINGS) || defined(HAVE_KIOSK)
|
||||
menu_displaylist_parse_settings_enum(menu, info,
|
||||
MENU_ENUM_LABEL_XMB_NODE_POSITION_SETTINGS,
|
||||
PARSE_ONLY_UINT, false);
|
||||
#endif
|
||||
#ifdef HAVE_IMAGEVIEWER
|
||||
menu_displaylist_parse_settings_enum(menu, info,
|
||||
MENU_ENUM_LABEL_XMB_NODE_POSITION_IMAGES,
|
||||
PARSE_ONLY_UINT, false);
|
||||
#endif
|
||||
#ifdef HAVE_FFMPEG
|
||||
menu_displaylist_parse_settings_enum(menu, info,
|
||||
MENU_ENUM_LABEL_XMB_NODE_POSITION_MUSIC,
|
||||
PARSE_ONLY_UINT, false);
|
||||
menu_displaylist_parse_settings_enum(menu, info,
|
||||
MENU_ENUM_LABEL_XMB_NODE_POSITION_VIDEO,
|
||||
PARSE_ONLY_UINT, false);
|
||||
#endif
|
||||
menu_displaylist_parse_settings_enum(menu, info,
|
||||
MENU_ENUM_LABEL_XMB_NODE_POSITION_HISTORY,
|
||||
PARSE_ONLY_UINT, false);
|
||||
#ifdef HAVE_LIBRETRODB
|
||||
menu_displaylist_parse_settings_enum(menu, info,
|
||||
MENU_ENUM_LABEL_XMB_NODE_POSITION_ADD,
|
||||
PARSE_ONLY_UINT, false);
|
||||
#endif
|
||||
#endif
|
||||
menu_displaylist_parse_settings_enum(menu, info,
|
||||
MENU_ENUM_LABEL_MATERIALUI_MENU_COLOR_THEME,
|
||||
PARSE_ONLY_UINT, false);
|
||||
|
@ -7020,6 +7020,121 @@ static bool setting_append_list(
|
||||
general_read_handler);
|
||||
menu_settings_list_current_add_range(list, list_info, 0, XMB_THEME_LAST-1, 1, true, true);
|
||||
menu_settings_list_current_add_enum_idx(list, list_info, MENU_ENUM_LABEL_XMB_MENU_COLOR_THEME);
|
||||
|
||||
#ifdef HAVE_KIOSK
|
||||
CONFIG_UINT(
|
||||
list, list_info,
|
||||
&settings->menu.xmb.node_position_main,
|
||||
msg_hash_to_str(MENU_ENUM_LABEL_XMB_NODE_POSITION_MAIN),
|
||||
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_XMB_NODE_POSITION_MAIN),
|
||||
XMB_NODE_POSITION_NORMAL,
|
||||
&group_info,
|
||||
&subgroup_info,
|
||||
parent_group,
|
||||
general_write_handler,
|
||||
general_read_handler);
|
||||
menu_settings_list_current_add_range(list, list_info, XMB_NODE_POSITION_HIDDEN, XMB_NODE_POSITION_END, 1, true, true);
|
||||
settings_data_list_current_add_flags(list, list_info, SD_FLAG_ADVANCED);
|
||||
menu_settings_list_current_add_enum_idx(list, list_info, MENU_ENUM_LABEL_XMB_NODE_POSITION_MAIN);
|
||||
#endif
|
||||
|
||||
#if !defined(HAVE_XMB_REQUIRESETTINGS) || defined(HAVE_KIOSK)
|
||||
CONFIG_UINT(
|
||||
list, list_info,
|
||||
&settings->menu.xmb.node_position_settings,
|
||||
msg_hash_to_str(MENU_ENUM_LABEL_XMB_NODE_POSITION_SETTINGS),
|
||||
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_XMB_NODE_POSITION_SETTINGS),
|
||||
XMB_NODE_POSITION_NORMAL,
|
||||
&group_info,
|
||||
&subgroup_info,
|
||||
parent_group,
|
||||
general_write_handler,
|
||||
general_read_handler);
|
||||
menu_settings_list_current_add_range(list, list_info, XMB_NODE_POSITION_HIDDEN, XMB_NODE_POSITION_END, 1, true, true);
|
||||
settings_data_list_current_add_flags(list, list_info, SD_FLAG_ADVANCED);
|
||||
menu_settings_list_current_add_enum_idx(list, list_info, MENU_ENUM_LABEL_XMB_NODE_POSITION_SETTINGS);
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_IMAGEVIEWER
|
||||
CONFIG_UINT(
|
||||
list, list_info,
|
||||
&settings->menu.xmb.node_position_images,
|
||||
msg_hash_to_str(MENU_ENUM_LABEL_XMB_NODE_POSITION_IMAGES),
|
||||
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_XMB_NODE_POSITION_IMAGES),
|
||||
XMB_NODE_POSITION_NORMAL,
|
||||
&group_info,
|
||||
&subgroup_info,
|
||||
parent_group,
|
||||
general_write_handler,
|
||||
general_read_handler);
|
||||
menu_settings_list_current_add_range(list, list_info, XMB_NODE_POSITION_HIDDEN, XMB_NODE_POSITION_END, 1, true, true);
|
||||
settings_data_list_current_add_flags(list, list_info, SD_FLAG_ADVANCED);
|
||||
menu_settings_list_current_add_enum_idx(list, list_info, MENU_ENUM_LABEL_XMB_NODE_POSITION_IMAGES);
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_FFMPEG
|
||||
CONFIG_UINT(
|
||||
list, list_info,
|
||||
&settings->menu.xmb.node_position_music,
|
||||
msg_hash_to_str(MENU_ENUM_LABEL_XMB_NODE_POSITION_MUSIC),
|
||||
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_XMB_NODE_POSITION_MUSIC),
|
||||
XMB_NODE_POSITION_NORMAL,
|
||||
&group_info,
|
||||
&subgroup_info,
|
||||
parent_group,
|
||||
general_write_handler,
|
||||
general_read_handler);
|
||||
menu_settings_list_current_add_range(list, list_info, XMB_NODE_POSITION_HIDDEN, XMB_NODE_POSITION_END, 1, true, true);
|
||||
settings_data_list_current_add_flags(list, list_info, SD_FLAG_ADVANCED);
|
||||
menu_settings_list_current_add_enum_idx(list, list_info, MENU_ENUM_LABEL_XMB_NODE_POSITION_MUSIC);
|
||||
|
||||
CONFIG_UINT(
|
||||
list, list_info,
|
||||
&settings->menu.xmb.node_position_video,
|
||||
msg_hash_to_str(MENU_ENUM_LABEL_XMB_NODE_POSITION_VIDEO),
|
||||
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_XMB_NODE_POSITION_VIDEO),
|
||||
XMB_NODE_POSITION_NORMAL,
|
||||
&group_info,
|
||||
&subgroup_info,
|
||||
parent_group,
|
||||
general_write_handler,
|
||||
general_read_handler);
|
||||
menu_settings_list_current_add_range(list, list_info, XMB_NODE_POSITION_HIDDEN, XMB_NODE_POSITION_END, 1, true, true);
|
||||
settings_data_list_current_add_flags(list, list_info, SD_FLAG_ADVANCED);
|
||||
menu_settings_list_current_add_enum_idx(list, list_info, MENU_ENUM_LABEL_XMB_NODE_POSITION_VIDEO);
|
||||
#endif
|
||||
|
||||
CONFIG_UINT(
|
||||
list, list_info,
|
||||
&settings->menu.xmb.node_position_history,
|
||||
msg_hash_to_str(MENU_ENUM_LABEL_XMB_NODE_POSITION_HISTORY),
|
||||
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_XMB_NODE_POSITION_HISTORY),
|
||||
XMB_NODE_POSITION_NORMAL,
|
||||
&group_info,
|
||||
&subgroup_info,
|
||||
parent_group,
|
||||
general_write_handler,
|
||||
general_read_handler);
|
||||
menu_settings_list_current_add_range(list, list_info, XMB_NODE_POSITION_HIDDEN, XMB_NODE_POSITION_END, 1, true, true);
|
||||
settings_data_list_current_add_flags(list, list_info, SD_FLAG_ADVANCED);
|
||||
menu_settings_list_current_add_enum_idx(list, list_info, MENU_ENUM_LABEL_XMB_NODE_POSITION_HISTORY);
|
||||
|
||||
#ifdef HAVE_LIBRETRODB
|
||||
CONFIG_UINT(
|
||||
list, list_info,
|
||||
&settings->menu.xmb.node_position_add,
|
||||
msg_hash_to_str(MENU_ENUM_LABEL_XMB_NODE_POSITION_ADD),
|
||||
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_XMB_NODE_POSITION_ADD),
|
||||
XMB_NODE_POSITION_NORMAL,
|
||||
&group_info,
|
||||
&subgroup_info,
|
||||
parent_group,
|
||||
general_write_handler,
|
||||
general_read_handler);
|
||||
menu_settings_list_current_add_range(list, list_info, XMB_NODE_POSITION_HIDDEN, XMB_NODE_POSITION_END, 1, true, true);
|
||||
settings_data_list_current_add_flags(list, list_info, SD_FLAG_ADVANCED);
|
||||
menu_settings_list_current_add_enum_idx(list, list_info, MENU_ENUM_LABEL_XMB_NODE_POSITION_ADD);
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
|
38
msg_hash.h
38
msg_hash.h
@ -322,6 +322,10 @@ enum msg_hash_enums
|
||||
MENU_ENUM_LABEL_VALUE_XMB_MENU_COLOR_THEME_VOLCANIC_RED,
|
||||
MENU_ENUM_LABEL_VALUE_XMB_MENU_COLOR_THEME_DARK,
|
||||
MENU_ENUM_LABEL_VALUE_XMB_MENU_COLOR_THEME_PLAIN,
|
||||
|
||||
#ifdef HAVE_XMB
|
||||
MENU_ENUM_LABEL_VALUE_XMB_MENU_NODE_POSITION_REORDERED,
|
||||
#endif
|
||||
|
||||
MENU_ENUM_LABEL_VALUE_SHADER_PIPELINE_RIBBON_SIMPLIFIED,
|
||||
MENU_ENUM_LABEL_VALUE_SHADER_PIPELINE_RIBBON,
|
||||
@ -561,6 +565,23 @@ enum msg_hash_enums
|
||||
MENU_ENUM_LABEL_XMB_FONT,
|
||||
MENU_ENUM_LABEL_XMB_THEME,
|
||||
MENU_ENUM_LABEL_XMB_MENU_COLOR_THEME,
|
||||
#ifdef HAVE_XMB
|
||||
#ifdef HAVE_KIOSK
|
||||
MENU_ENUM_LABEL_XMB_NODE_POSITION_MAIN,
|
||||
#endif
|
||||
MENU_ENUM_LABEL_XMB_NODE_POSITION_SETTINGS,
|
||||
#ifdef HAVE_IMAGEVIEWER
|
||||
MENU_ENUM_LABEL_XMB_NODE_POSITION_IMAGES,
|
||||
#endif
|
||||
#ifdef HAVE_FFMPEG
|
||||
MENU_ENUM_LABEL_XMB_NODE_POSITION_MUSIC,
|
||||
MENU_ENUM_LABEL_XMB_NODE_POSITION_VIDEO,
|
||||
#endif
|
||||
MENU_ENUM_LABEL_XMB_NODE_POSITION_HISTORY,
|
||||
#ifdef HAVE_LIBRETRODB
|
||||
MENU_ENUM_LABEL_XMB_NODE_POSITION_ADD,
|
||||
#endif
|
||||
#endif
|
||||
MENU_ENUM_LABEL_XMB_SHADOWS_ENABLE,
|
||||
MENU_ENUM_LABEL_XMB_RIBBON_ENABLE,
|
||||
MENU_ENUM_LABEL_THUMBNAILS,
|
||||
@ -583,6 +604,23 @@ enum msg_hash_enums
|
||||
MENU_ENUM_LABEL_VALUE_XMB_FONT,
|
||||
MENU_ENUM_LABEL_VALUE_XMB_THEME,
|
||||
MENU_ENUM_LABEL_VALUE_XMB_MENU_COLOR_THEME,
|
||||
#ifdef HAVE_XMB
|
||||
#ifdef HAVE_KIOSK
|
||||
MENU_ENUM_LABEL_VALUE_XMB_NODE_POSITION_MAIN,
|
||||
#endif
|
||||
MENU_ENUM_LABEL_VALUE_XMB_NODE_POSITION_SETTINGS,
|
||||
#ifdef HAVE_IMAGEVIEWER
|
||||
MENU_ENUM_LABEL_VALUE_XMB_NODE_POSITION_IMAGES,
|
||||
#endif
|
||||
#ifdef HAVE_FFMPEG
|
||||
MENU_ENUM_LABEL_VALUE_XMB_NODE_POSITION_MUSIC,
|
||||
MENU_ENUM_LABEL_VALUE_XMB_NODE_POSITION_VIDEO,
|
||||
#endif
|
||||
MENU_ENUM_LABEL_VALUE_XMB_NODE_POSITION_HISTORY,
|
||||
#ifdef HAVE_LIBRETRODB
|
||||
MENU_ENUM_LABEL_VALUE_XMB_NODE_POSITION_ADD,
|
||||
#endif
|
||||
#endif
|
||||
MENU_ENUM_LABEL_VALUE_XMB_SHADOWS_ENABLE,
|
||||
MENU_ENUM_LABEL_VALUE_XMB_RIBBON_ENABLE,
|
||||
MENU_ENUM_LABEL_VALUE_THUMBNAILS,
|
||||
|
Loading…
Reference in New Issue
Block a user