mirror of
https://github.com/libretro/RetroArch
synced 2025-02-28 22:13:51 +00:00
Merge pull request #9214 from tmtvl/9107-playlist-name-sanitization
9107 playlist name sanitization
This commit is contained in:
commit
7ebee349ad
@ -259,7 +259,8 @@ OBJ += \
|
||||
$(LIBRETRO_COMM_DIR)/features/features_cpu.o \
|
||||
performance_counters.o \
|
||||
verbosity.o \
|
||||
midi/drivers/null_midi.o
|
||||
midi/drivers/null_midi.o \
|
||||
$(LIBRETRO_COMM_DIR)/playlists/label_sanitization.o
|
||||
|
||||
|
||||
ifeq ($(HAVE_AUDIOMIXER), 1)
|
||||
|
@ -1617,3 +1617,8 @@ SSL
|
||||
#ifdef HAVE_EASTEREGG
|
||||
#include "../cores/libretro-gong/gong.c"
|
||||
#endif
|
||||
|
||||
/*============================================================
|
||||
PLAYLIST NAME SANITIZATION
|
||||
============================================================ */
|
||||
#include "../libretro-common/playlists/label_sanitization.c"
|
||||
|
@ -1,4 +1,4 @@
|
||||
#if defined(_MSC_VER) && !defined(_XBOX) && (_MSC_VER >= 1500 && _MSC_VER < 1900)
|
||||
#if defined(_MSC_VER) && !defined(_XBOX) && (_MSC_VER >= 1500 && _MSC_VER < 1900)
|
||||
#if (_MSC_VER >= 1700)
|
||||
/* https://support.microsoft.com/en-us/kb/980263 */
|
||||
#pragma execution_character_set("utf-8")
|
||||
@ -1254,6 +1254,42 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_PLAYLIST_DIRECTORY,
|
||||
"قائمة التشغيل")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_PLAYLIST_SETTINGS,
|
||||
"قوائم التشغيل")
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE,
|
||||
"Label Display Mode"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE,
|
||||
"Change how the content labels are displayed in this playlist."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_DEFAULT,
|
||||
"Show full labels"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_REMOVE_PARENS,
|
||||
"Remove () content"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_REMOVE_BRACKETS,
|
||||
"Remove [] content"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_REMOVE_PARENS_AND_BRACKETS,
|
||||
"Remove () and []"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_KEEP_REGION,
|
||||
"Keep region"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_KEEP_DISC_INDEX,
|
||||
"Keep disc index"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_KEEP_REGION_AND_DISC_INDEX,
|
||||
"Keep region and disc index"
|
||||
)
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_POINTER_ENABLE,
|
||||
"Touch Support")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_PORT,
|
||||
|
@ -1,4 +1,4 @@
|
||||
#if defined(_MSC_VER) && !defined(_XBOX) && (_MSC_VER >= 1500 && _MSC_VER < 1900)
|
||||
#if defined(_MSC_VER) && !defined(_XBOX) && (_MSC_VER >= 1500 && _MSC_VER < 1900)
|
||||
#if (_MSC_VER >= 1700)
|
||||
/* https://support.microsoft.com/en-us/kb/980263 */
|
||||
#pragma execution_character_set("utf-8")
|
||||
@ -1270,6 +1270,42 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_PLAYLIST_DIRECTORY,
|
||||
"游戏列表文件夹")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_PLAYLIST_SETTINGS,
|
||||
"游戏列表")
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE,
|
||||
"Label Display Mode"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE,
|
||||
"Change how the content labels are displayed in this playlist."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_DEFAULT,
|
||||
"Show full labels"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_REMOVE_PARENS,
|
||||
"Remove () content"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_REMOVE_BRACKETS,
|
||||
"Remove [] content"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_REMOVE_PARENS_AND_BRACKETS,
|
||||
"Remove () and []"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_KEEP_REGION,
|
||||
"Keep region"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_KEEP_DISC_INDEX,
|
||||
"Keep disc index"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_KEEP_REGION_AND_DISC_INDEX,
|
||||
"Keep region and disc index"
|
||||
)
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_POINTER_ENABLE,
|
||||
"触摸支持")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_PORT,
|
||||
|
@ -1,4 +1,4 @@
|
||||
#if defined(_MSC_VER) && !defined(_XBOX) && (_MSC_VER >= 1500 && _MSC_VER < 1900)
|
||||
#if defined(_MSC_VER) && !defined(_XBOX) && (_MSC_VER >= 1500 && _MSC_VER < 1900)
|
||||
#if (_MSC_VER >= 1700)
|
||||
/* https://support.microsoft.com/en-us/kb/980263 */
|
||||
#pragma execution_character_set("utf-8")
|
||||
@ -1156,6 +1156,42 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_PLAYLIST_DIRECTORY,
|
||||
"遊戲列表目錄")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_PLAYLIST_SETTINGS,
|
||||
"遊戲列表")
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE,
|
||||
"Label Display Mode"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE,
|
||||
"Change how the content labels are displayed in this playlist."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_DEFAULT,
|
||||
"Show full labels"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_REMOVE_PARENS,
|
||||
"Remove () content"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_REMOVE_BRACKETS,
|
||||
"Remove [] content"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_REMOVE_PARENS_AND_BRACKETS,
|
||||
"Remove () and []"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_KEEP_REGION,
|
||||
"Keep region"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_KEEP_DISC_INDEX,
|
||||
"Keep disc index"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_KEEP_REGION_AND_DISC_INDEX,
|
||||
"Keep region and disc index"
|
||||
)
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_POINTER_ENABLE,
|
||||
"觸控支援")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_PORT,
|
||||
|
@ -1,4 +1,4 @@
|
||||
#if defined(_MSC_VER) && !defined(_XBOX) && (_MSC_VER >= 1500 && _MSC_VER < 1900)
|
||||
#if defined(_MSC_VER) && !defined(_XBOX) && (_MSC_VER >= 1500 && _MSC_VER < 1900)
|
||||
/* https://support.microsoft.com/en-us/kb/980263 */
|
||||
#if (_MSC_VER >= 1700)
|
||||
#pragma execution_character_set("utf-8")
|
||||
@ -1205,6 +1205,42 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_PLAYLIST_DIRECTORY,
|
||||
"Playlists")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_PLAYLIST_SETTINGS,
|
||||
"Playlists")
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE,
|
||||
"Label Display Mode"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE,
|
||||
"Change how the content labels are displayed in this playlist."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_DEFAULT,
|
||||
"Show full labels"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_REMOVE_PARENS,
|
||||
"Remove () content"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_REMOVE_BRACKETS,
|
||||
"Remove [] content"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_REMOVE_PARENS_AND_BRACKETS,
|
||||
"Remove () and []"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_KEEP_REGION,
|
||||
"Keep region"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_KEEP_DISC_INDEX,
|
||||
"Keep disc index"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_KEEP_REGION_AND_DISC_INDEX,
|
||||
"Keep region and disc index"
|
||||
)
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_POINTER_ENABLE,
|
||||
"Touch-Unterstützung")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_PORT,
|
||||
|
@ -1,4 +1,4 @@
|
||||
#if defined(_MSC_VER) && !defined(_XBOX) && (_MSC_VER >= 1500 && _MSC_VER < 1900)
|
||||
#if defined(_MSC_VER) && !defined(_XBOX) && (_MSC_VER >= 1500 && _MSC_VER < 1900)
|
||||
#if (_MSC_VER >= 1700)
|
||||
/* https://support.microsoft.com/en-us/kb/980263 */
|
||||
#pragma execution_character_set("utf-8")
|
||||
@ -2006,6 +2006,42 @@ MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_SETTINGS,
|
||||
"Λίστες Αναπαραγωγής"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE,
|
||||
"Label Display Mode"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE,
|
||||
"Change how the content labels are displayed in this playlist."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_DEFAULT,
|
||||
"Show full labels"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_REMOVE_PARENS,
|
||||
"Remove () content"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_REMOVE_BRACKETS,
|
||||
"Remove [] content"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_REMOVE_PARENS_AND_BRACKETS,
|
||||
"Remove () and []"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_KEEP_REGION,
|
||||
"Keep region"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_KEEP_DISC_INDEX,
|
||||
"Keep disc index"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_KEEP_REGION_AND_DISC_INDEX,
|
||||
"Keep region and disc index"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_POINTER_ENABLE,
|
||||
"Υποστήριξη Αφής"
|
||||
|
@ -1,4 +1,4 @@
|
||||
#if defined(_MSC_VER) && !defined(_XBOX) && (_MSC_VER >= 1500 && _MSC_VER < 1900)
|
||||
#if defined(_MSC_VER) && !defined(_XBOX) && (_MSC_VER >= 1500 && _MSC_VER < 1900)
|
||||
#if (_MSC_VER >= 1700)
|
||||
/* https://support.microsoft.com/en-us/kb/980263 */
|
||||
#pragma execution_character_set("utf-8")
|
||||
@ -1063,6 +1063,42 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_PLAYLIST_DIRECTORY,
|
||||
"Playlists")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_PLAYLIST_SETTINGS,
|
||||
"Playlists")
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE,
|
||||
"Label Display Mode"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE,
|
||||
"Change how the content labels are displayed in this playlist."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_DEFAULT,
|
||||
"Show full labels"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_REMOVE_PARENS,
|
||||
"Remove () content"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_REMOVE_BRACKETS,
|
||||
"Remove [] content"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_REMOVE_PARENS_AND_BRACKETS,
|
||||
"Remove () and []"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_KEEP_REGION,
|
||||
"Keep region"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_KEEP_DISC_INDEX,
|
||||
"Keep disc index"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_KEEP_REGION_AND_DISC_INDEX,
|
||||
"Keep region and disc index"
|
||||
)
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_POINTER_ENABLE,
|
||||
"Touch Support")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_PORT,
|
||||
|
@ -1,4 +1,4 @@
|
||||
#if defined(_MSC_VER) && !defined(_XBOX) && (_MSC_VER >= 1500 && _MSC_VER < 1900)
|
||||
#if defined(_MSC_VER) && !defined(_XBOX) && (_MSC_VER >= 1500 && _MSC_VER < 1900)
|
||||
#if (_MSC_VER >= 1700)
|
||||
/* https://support.microsoft.com/en-us/kb/980263 */
|
||||
#pragma execution_character_set("utf-8")
|
||||
@ -2060,6 +2060,42 @@ MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_SETTINGS,
|
||||
"Listas de reproducción"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE,
|
||||
"Label Display Mode"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE,
|
||||
"Change how the content labels are displayed in this playlist."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_DEFAULT,
|
||||
"Show full labels"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_REMOVE_PARENS,
|
||||
"Remove () content"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_REMOVE_BRACKETS,
|
||||
"Remove [] content"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_REMOVE_PARENS_AND_BRACKETS,
|
||||
"Remove () and []"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_KEEP_REGION,
|
||||
"Keep region"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_KEEP_DISC_INDEX,
|
||||
"Keep disc index"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_KEEP_REGION_AND_DISC_INDEX,
|
||||
"Keep region and disc index"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_POINTER_ENABLE,
|
||||
"Soporte táctil"
|
||||
|
@ -1,4 +1,4 @@
|
||||
#if defined(_MSC_VER) && !defined(_XBOX) && (_MSC_VER >= 1500 && _MSC_VER < 1900)
|
||||
#if defined(_MSC_VER) && !defined(_XBOX) && (_MSC_VER >= 1500 && _MSC_VER < 1900)
|
||||
#if (_MSC_VER >= 1700)
|
||||
/* https://support.microsoft.com/en-us/kb/980263 */
|
||||
#pragma execution_character_set("utf-8")
|
||||
@ -2133,6 +2133,42 @@ MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_SETTINGS,
|
||||
"Listes de lecture"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE,
|
||||
"Label Display Mode"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE,
|
||||
"Change how the content labels are displayed in this playlist."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_DEFAULT,
|
||||
"Show full labels"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_REMOVE_PARENS,
|
||||
"Remove () content"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_REMOVE_BRACKETS,
|
||||
"Remove [] content"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_REMOVE_PARENS_AND_BRACKETS,
|
||||
"Remove () and []"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_KEEP_REGION,
|
||||
"Keep region"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_KEEP_DISC_INDEX,
|
||||
"Keep disc index"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_KEEP_REGION_AND_DISC_INDEX,
|
||||
"Keep region and disc index"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_POINTER_ENABLE,
|
||||
"Prise en charge du tactile"
|
||||
|
@ -1,4 +1,4 @@
|
||||
#if defined(_MSC_VER) && !defined(_XBOX) && (_MSC_VER >= 1500 && _MSC_VER < 1900)
|
||||
#if defined(_MSC_VER) && !defined(_XBOX) && (_MSC_VER >= 1500 && _MSC_VER < 1900)
|
||||
#if (_MSC_VER >= 1700)
|
||||
/* https://support.microsoft.com/en-us/kb/980263 */
|
||||
#pragma execution_character_set("utf-8")
|
||||
@ -1207,6 +1207,42 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_PLAYLIST_DIRECTORY,
|
||||
"Playlists")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_PLAYLIST_SETTINGS,
|
||||
"Playlists")
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE,
|
||||
"Label Display Mode"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE,
|
||||
"Change how the content labels are displayed in this playlist."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_DEFAULT,
|
||||
"Show full labels"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_REMOVE_PARENS,
|
||||
"Remove () content"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_REMOVE_BRACKETS,
|
||||
"Remove [] content"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_REMOVE_PARENS_AND_BRACKETS,
|
||||
"Remove () and []"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_KEEP_REGION,
|
||||
"Keep region"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_KEEP_DISC_INDEX,
|
||||
"Keep disc index"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_KEEP_REGION_AND_DISC_INDEX,
|
||||
"Keep region and disc index"
|
||||
)
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_POINTER_ENABLE,
|
||||
"Supporto touch")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_PORT,
|
||||
|
@ -1,4 +1,4 @@
|
||||
#if defined(_MSC_VER) && !defined(_XBOX) && (_MSC_VER >= 1500)
|
||||
#if defined(_MSC_VER) && !defined(_XBOX) && (_MSC_VER >= 1500)
|
||||
#if (_MSC_VER >= 1700 && _MSC_VER < 1910)
|
||||
/* https://support.microsoft.com/en-us/kb/980263 */
|
||||
#pragma execution_character_set("utf-8")
|
||||
@ -2171,6 +2171,42 @@ MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_SETTINGS,
|
||||
"プレイリスト"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE,
|
||||
"Label Display Mode"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE,
|
||||
"Change how the content labels are displayed in this playlist."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_DEFAULT,
|
||||
"Show full labels"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_REMOVE_PARENS,
|
||||
"Remove () content"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_REMOVE_BRACKETS,
|
||||
"Remove [] content"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_REMOVE_PARENS_AND_BRACKETS,
|
||||
"Remove () and []"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_KEEP_REGION,
|
||||
"Keep region"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_KEEP_DISC_INDEX,
|
||||
"Keep disc index"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_KEEP_REGION_AND_DISC_INDEX,
|
||||
"Keep region and disc index"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_POINTER_ENABLE,
|
||||
"タッチ対応"
|
||||
|
@ -1,4 +1,4 @@
|
||||
#if defined(_MSC_VER) && !defined(_XBOX) && (_MSC_VER >= 1500 && _MSC_VER < 1900)
|
||||
#if defined(_MSC_VER) && !defined(_XBOX) && (_MSC_VER >= 1500 && _MSC_VER < 1900)
|
||||
#if (_MSC_VER >= 1700)
|
||||
/* https://support.microsoft.com/en-us/kb/980263 */
|
||||
#pragma execution_character_set("utf-8")
|
||||
@ -2160,6 +2160,42 @@ MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_SETTINGS,
|
||||
"실행목록"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE,
|
||||
"Label Display Mode"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE,
|
||||
"Change how the content labels are displayed in this playlist."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_DEFAULT,
|
||||
"Show full labels"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_REMOVE_PARENS,
|
||||
"Remove () content"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_REMOVE_BRACKETS,
|
||||
"Remove [] content"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_REMOVE_PARENS_AND_BRACKETS,
|
||||
"Remove () and []"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_KEEP_REGION,
|
||||
"Keep region"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_KEEP_DISC_INDEX,
|
||||
"Keep disc index"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_KEEP_REGION_AND_DISC_INDEX,
|
||||
"Keep region and disc index"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_POINTER_ENABLE,
|
||||
"터치 지원"
|
||||
|
@ -273,6 +273,8 @@ MSG_HASH(MENU_ENUM_LABEL_DEFERRED_DROPDOWN_BOX_LIST_RESOLUTION,
|
||||
"deferred_dropdown_box_list_resolution")
|
||||
MSG_HASH(MENU_ENUM_LABEL_DEFERRED_DROPDOWN_BOX_LIST_PLAYLIST_DEFAULT_CORE,
|
||||
"deferred_dropdown_box_list_playlist_default_core")
|
||||
MSG_HASH(MENU_ENUM_LABEL_DEFERRED_DROPDOWN_BOX_LIST_PLAYLIST_LABEL_DISPLAY_MODE,
|
||||
"deferred_dropdown_box_list_playlist_label_display_mode")
|
||||
MSG_HASH(MENU_ENUM_LABEL_DEFERRED_CONFIGURATIONS_LIST,
|
||||
"deferred_configurations_list")
|
||||
MSG_HASH(MENU_ENUM_LABEL_DEFERRED_PLAYLIST_LIST,
|
||||
@ -887,6 +889,22 @@ MSG_HASH(MENU_ENUM_LABEL_PLAYLIST_MANAGER_DEFAULT_CORE,
|
||||
"playlist_manager_default_core")
|
||||
MSG_HASH(MENU_ENUM_LABEL_PLAYLIST_MANAGER_RESET_CORES,
|
||||
"playlist_manager_reset_cores")
|
||||
MSG_HASH(MENU_ENUM_LABEL_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE,
|
||||
"playlist_manager_label_display_mode")
|
||||
MSG_HASH(MENU_ENUM_LABEL_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_DEFAULT,
|
||||
"playlist_manager_label_display_mode_default")
|
||||
MSG_HASH(MENU_ENUM_LABEL_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_REMOVE_PARENS,
|
||||
"playlist_manager_label_display_mode_remove_parens")
|
||||
MSG_HASH(MENU_ENUM_LABEL_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_REMOVE_BRACKETS,
|
||||
"playlist_manager_label_display_mode_remove_brackets")
|
||||
MSG_HASH(MENU_ENUM_LABEL_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_REMOVE_PARENS_AND_BRACKETS,
|
||||
"playlist_manager_label_display_mode_remove_parens_and_brackets")
|
||||
MSG_HASH(MENU_ENUM_LABEL_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_KEEP_REGION,
|
||||
"playlist_manager_label_display_mode_keep_region")
|
||||
MSG_HASH(MENU_ENUM_LABEL_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_KEEP_DISC_INDEX,
|
||||
"playlist_manager_label_display_mode_keep_disc_index")
|
||||
MSG_HASH(MENU_ENUM_LABEL_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_KEEP_REGION_AND_DISC_INDEX,
|
||||
"playlist_manager_label_display_mode_keep_region_and_disc_index")
|
||||
MSG_HASH(MENU_ENUM_LABEL_PLAYLIST_SETTINGS_BEGIN,
|
||||
"playlist_settings_begin")
|
||||
MSG_HASH(MENU_ENUM_LABEL_POINTER_ENABLE,
|
||||
|
@ -1,4 +1,4 @@
|
||||
#if defined(_MSC_VER) && !defined(_XBOX) && (_MSC_VER >= 1500 && _MSC_VER < 1900)
|
||||
#if defined(_MSC_VER) && !defined(_XBOX) && (_MSC_VER >= 1500 && _MSC_VER < 1900)
|
||||
#if (_MSC_VER >= 1700)
|
||||
/* https://support.microsoft.com/en-us/kb/980263 */
|
||||
#pragma execution_character_set("utf-8")
|
||||
@ -1062,6 +1062,42 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_PLAYLIST_DIRECTORY,
|
||||
"Afspeellijsten")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_PLAYLIST_SETTINGS,
|
||||
"Afspeellijsten")
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE,
|
||||
"Label Display Mode"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE,
|
||||
"Change how the content labels are displayed in this playlist."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_DEFAULT,
|
||||
"Show full labels"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_REMOVE_PARENS,
|
||||
"Remove () content"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_REMOVE_BRACKETS,
|
||||
"Remove [] content"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_REMOVE_PARENS_AND_BRACKETS,
|
||||
"Remove () and []"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_KEEP_REGION,
|
||||
"Keep region"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_KEEP_DISC_INDEX,
|
||||
"Keep disc index"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_KEEP_REGION_AND_DISC_INDEX,
|
||||
"Keep region and disc index"
|
||||
)
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_POINTER_ENABLE,
|
||||
"Touch Ondersteuning")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_PORT,
|
||||
|
@ -1,4 +1,4 @@
|
||||
#if defined(_MSC_VER) && !defined(_XBOX) && (_MSC_VER >= 1500 && _MSC_VER < 1900)
|
||||
#if defined(_MSC_VER) && !defined(_XBOX) && (_MSC_VER >= 1500 && _MSC_VER < 1900)
|
||||
#if (_MSC_VER >= 1700)
|
||||
/* https://support.microsoft.com/en-us/kb/980263 */
|
||||
#pragma execution_character_set("utf-8")
|
||||
@ -1259,6 +1259,42 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_PLAYLIST_DIRECTORY,
|
||||
"Listy odtwarzania")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_PLAYLIST_SETTINGS,
|
||||
"Listy odtwarzania")
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE,
|
||||
"Label Display Mode"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE,
|
||||
"Change how the content labels are displayed in this playlist."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_DEFAULT,
|
||||
"Show full labels"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_REMOVE_PARENS,
|
||||
"Remove () content"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_REMOVE_BRACKETS,
|
||||
"Remove [] content"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_REMOVE_PARENS_AND_BRACKETS,
|
||||
"Remove () and []"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_KEEP_REGION,
|
||||
"Keep region"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_KEEP_DISC_INDEX,
|
||||
"Keep disc index"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_KEEP_REGION_AND_DISC_INDEX,
|
||||
"Keep region and disc index"
|
||||
)
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_POINTER_ENABLE,
|
||||
"Obsługa dotyku")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_PORT,
|
||||
|
@ -1,4 +1,4 @@
|
||||
#if defined(_MSC_VER) && !defined(_XBOX) && (_MSC_VER >= 1500 && _MSC_VER < 1900)
|
||||
#if defined(_MSC_VER) && !defined(_XBOX) && (_MSC_VER >= 1500 && _MSC_VER < 1900)
|
||||
#if (_MSC_VER >= 1700)
|
||||
/* https://support.microsoft.com/en-us/kb/980263 */
|
||||
#pragma execution_character_set("utf-8")
|
||||
@ -2172,6 +2172,42 @@ MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_SETTINGS,
|
||||
"Listas de Reprodução"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE,
|
||||
"Label Display Mode"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE,
|
||||
"Change how the content labels are displayed in this playlist."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_DEFAULT,
|
||||
"Show full labels"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_REMOVE_PARENS,
|
||||
"Remove () content"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_REMOVE_BRACKETS,
|
||||
"Remove [] content"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_REMOVE_PARENS_AND_BRACKETS,
|
||||
"Remove () and []"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_KEEP_REGION,
|
||||
"Keep region"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_KEEP_DISC_INDEX,
|
||||
"Keep disc index"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_KEEP_REGION_AND_DISC_INDEX,
|
||||
"Keep region and disc index"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LIST,
|
||||
"Gerenciamento de Listas de Reprodução"
|
||||
|
@ -1,4 +1,4 @@
|
||||
#if defined(_MSC_VER) && !defined(_XBOX) && (_MSC_VER >= 1500 && _MSC_VER < 1900)
|
||||
#if defined(_MSC_VER) && !defined(_XBOX) && (_MSC_VER >= 1500 && _MSC_VER < 1900)
|
||||
#if (_MSC_VER >= 1700)
|
||||
/* https://support.microsoft.com/en-us/kb/980263 */
|
||||
#pragma execution_character_set("utf-8")
|
||||
@ -1147,6 +1147,42 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_PLAYLIST_DIRECTORY,
|
||||
"Pasta de listas de reprodução")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_PLAYLIST_SETTINGS,
|
||||
"Definições de listas de reprodução")
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE,
|
||||
"Label Display Mode"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE,
|
||||
"Change how the content labels are displayed in this playlist."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_DEFAULT,
|
||||
"Show full labels"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_REMOVE_PARENS,
|
||||
"Remove () content"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_REMOVE_BRACKETS,
|
||||
"Remove [] content"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_REMOVE_PARENS_AND_BRACKETS,
|
||||
"Remove () and []"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_KEEP_REGION,
|
||||
"Keep region"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_KEEP_DISC_INDEX,
|
||||
"Keep disc index"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_KEEP_REGION_AND_DISC_INDEX,
|
||||
"Keep region and disc index"
|
||||
)
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_POINTER_ENABLE,
|
||||
"Suporte de ponteiros")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_PORT,
|
||||
|
@ -1,4 +1,4 @@
|
||||
#if defined(_MSC_VER) && !defined(_XBOX) && (_MSC_VER >= 1500 && _MSC_VER < 1900)
|
||||
#if defined(_MSC_VER) && !defined(_XBOX) && (_MSC_VER >= 1500 && _MSC_VER < 1900)
|
||||
#if (_MSC_VER >= 1700)
|
||||
/* https://support.microsoft.com/en-us/kb/980263 */
|
||||
#pragma execution_character_set("utf-8")
|
||||
@ -1171,6 +1171,42 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_PLAYLIST_DIRECTORY,
|
||||
"Плейлисты")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_PLAYLIST_SETTINGS,
|
||||
"Плейлисты")
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE,
|
||||
"Label Display Mode"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE,
|
||||
"Change how the content labels are displayed in this playlist."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_DEFAULT,
|
||||
"Show full labels"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_REMOVE_PARENS,
|
||||
"Remove () content"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_REMOVE_BRACKETS,
|
||||
"Remove [] content"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_REMOVE_PARENS_AND_BRACKETS,
|
||||
"Remove () and []"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_KEEP_REGION,
|
||||
"Keep region"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_KEEP_DISC_INDEX,
|
||||
"Keep disc index"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_KEEP_REGION_AND_DISC_INDEX,
|
||||
"Keep region and disc index"
|
||||
)
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_POINTER_ENABLE,
|
||||
"Поддержка Touch")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_PORT,
|
||||
|
@ -1,4 +1,4 @@
|
||||
#if defined(_MSC_VER) && !defined(_XBOX) && (_MSC_VER >= 1500 && _MSC_VER < 1900)
|
||||
#if defined(_MSC_VER) && !defined(_XBOX) && (_MSC_VER >= 1500 && _MSC_VER < 1900)
|
||||
#if (_MSC_VER >= 1700)
|
||||
/* https://support.microsoft.com/en-us/kb/980263 */
|
||||
#pragma execution_character_set("utf-8")
|
||||
@ -2128,6 +2128,42 @@ MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_SETTINGS,
|
||||
"Oynatma Listeleri"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE,
|
||||
"Label Display Mode"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE,
|
||||
"Change how the content labels are displayed in this playlist."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_DEFAULT,
|
||||
"Show full labels"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_REMOVE_PARENS,
|
||||
"Remove () content"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_REMOVE_BRACKETS,
|
||||
"Remove [] content"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_REMOVE_PARENS_AND_BRACKETS,
|
||||
"Remove () and []"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_KEEP_REGION,
|
||||
"Keep region"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_KEEP_DISC_INDEX,
|
||||
"Keep disc index"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_KEEP_REGION_AND_DISC_INDEX,
|
||||
"Keep region and disc index"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_POINTER_ENABLE,
|
||||
"Dokunmatik Desteği"
|
||||
|
@ -2196,6 +2196,42 @@ MSG_HASH(
|
||||
MSG_PLAYLIST_MANAGER_CORES_RESET,
|
||||
"Cores reset: "
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE,
|
||||
"Label Display Mode"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE,
|
||||
"Change how the content labels are displayed in this playlist."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_DEFAULT,
|
||||
"Show full labels"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_REMOVE_PARENS,
|
||||
"Remove () content"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_REMOVE_BRACKETS,
|
||||
"Remove [] content"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_REMOVE_PARENS_AND_BRACKETS,
|
||||
"Remove () and []"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_KEEP_REGION,
|
||||
"Keep region"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_KEEP_DISC_INDEX,
|
||||
"Keep disc index"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_KEEP_REGION_AND_DISC_INDEX,
|
||||
"Keep region and disc index"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_POINTER_ENABLE,
|
||||
"Touch Support"
|
||||
|
@ -1,4 +1,4 @@
|
||||
#if defined(_MSC_VER) && !defined(_XBOX) && (_MSC_VER >= 1500 && _MSC_VER < 1900)
|
||||
#if defined(_MSC_VER) && !defined(_XBOX) && (_MSC_VER >= 1500 && _MSC_VER < 1900)
|
||||
#if (_MSC_VER >= 1700)
|
||||
/* https://support.microsoft.com/en-us/kb/980263 */
|
||||
#pragma execution_character_set("utf-8")
|
||||
@ -1174,6 +1174,42 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_PLAYLIST_DIRECTORY,
|
||||
"Playlists Danh mục")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_PLAYLIST_SETTINGS,
|
||||
"Playlists")
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE,
|
||||
"Label Display Mode"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE,
|
||||
"Change how the content labels are displayed in this playlist."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_DEFAULT,
|
||||
"Show full labels"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_REMOVE_PARENS,
|
||||
"Remove () content"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_REMOVE_BRACKETS,
|
||||
"Remove [] content"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_REMOVE_PARENS_AND_BRACKETS,
|
||||
"Remove () and []"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_KEEP_REGION,
|
||||
"Keep region"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_KEEP_DISC_INDEX,
|
||||
"Keep disc index"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_KEEP_REGION_AND_DISC_INDEX,
|
||||
"Keep region and disc index"
|
||||
)
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_POINTER_ENABLE,
|
||||
"Touch Support")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_PORT,
|
||||
|
54
libretro-common/include/playlists/label_sanitization.h
Normal file
54
libretro-common/include/playlists/label_sanitization.h
Normal file
@ -0,0 +1,54 @@
|
||||
/* Copyright (C) 2010-2019 The RetroArch team
|
||||
*
|
||||
* ---------------------------------------------------------------------------------------
|
||||
* The following license statement only applies to this file (file_path.h).
|
||||
* ---------------------------------------------------------------------------------------
|
||||
*
|
||||
* Permission is hereby granted, free of charge,
|
||||
* to any person obtaining a copy of this software and associated documentation files (the "Software"),
|
||||
* to deal in the Software without restriction, including without limitation the rights to
|
||||
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
* and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
* INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
#include <stddef.h>
|
||||
#include <boolean.h>
|
||||
|
||||
void label_sanitize(char *label, bool (*left)(char*), bool (*right)(char*));
|
||||
|
||||
bool left_parens(char *left);
|
||||
bool right_parens(char *right);
|
||||
|
||||
bool left_brackets(char *left);
|
||||
bool right_brackets(char *right);
|
||||
|
||||
bool left_parens_or_brackets(char *left);
|
||||
bool right_parens_or_brackets(char *right);
|
||||
|
||||
bool left_exclusion(char *left, const char **strings, const size_t strings_count);
|
||||
|
||||
bool left_parens_or_brackets_excluding_region(char *left);
|
||||
|
||||
bool left_parens_or_brackets_excluding_disc(char *left);
|
||||
|
||||
bool left_parens_or_brackets_excluding_region_or_disc(char *left);
|
||||
|
||||
void label_remove_parens(char *label);
|
||||
|
||||
void label_remove_brackets(char *label);
|
||||
|
||||
void label_remove_parens_and_brackets(char *label);
|
||||
|
||||
void label_keep_region(char *label);
|
||||
|
||||
void label_keep_disc(char *label);
|
||||
|
||||
void label_keep_region_and_disc(char *label);
|
193
libretro-common/playlists/label_sanitization.c
Normal file
193
libretro-common/playlists/label_sanitization.c
Normal file
@ -0,0 +1,193 @@
|
||||
/* Copyright (C) 2010-2019 The RetroArch team
|
||||
*
|
||||
* ---------------------------------------------------------------------------------------
|
||||
* The following license statement only applies to this file (file_path.h).
|
||||
* ---------------------------------------------------------------------------------------
|
||||
*
|
||||
* Permission is hereby granted, free of charge,
|
||||
* to any person obtaining a copy of this software and associated documentation files (the "Software"),
|
||||
* to deal in the Software without restriction, including without limitation the rights to
|
||||
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
* and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
* INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#include <playlists/label_sanitization.h>
|
||||
#include <compat/strl.h>
|
||||
#include <retro_miscellaneous.h>
|
||||
#include <string/stdstring.h>
|
||||
#include <string.h>
|
||||
|
||||
const size_t disc_strings_length = 3;
|
||||
|
||||
const char *disc_strings[3] = {
|
||||
"(CD",
|
||||
"(Disc",
|
||||
"(Disk"
|
||||
};
|
||||
|
||||
const size_t region_strings_length = 20;
|
||||
|
||||
/*
|
||||
* We'll use the standard No-Intro regions for now.
|
||||
*/
|
||||
const char *region_strings[20] = {
|
||||
"(Australia)", /* Don’t use with Europe */
|
||||
"(Brazil)",
|
||||
"(Canada)", /* Don’t use with USA */
|
||||
"(China)",
|
||||
"(France)",
|
||||
"(Germany)",
|
||||
"(Hong Kong)",
|
||||
"(Italy)",
|
||||
"(Japan)",
|
||||
"(Korea)",
|
||||
"(Netherlands)",
|
||||
"(Spain)",
|
||||
"(Sweden)",
|
||||
"(USA)", /* Includes Canada */
|
||||
"(World)",
|
||||
"(Europe)", /* Includes Australia */
|
||||
"(Asia)",
|
||||
"(Japan, USA)",
|
||||
"(Japan, Europe)",
|
||||
"(USA, Europe)"
|
||||
};
|
||||
|
||||
/*
|
||||
* Does not work with nested blocks.
|
||||
*/
|
||||
void label_sanitize(char *label, bool (*left)(char*), bool (*right)(char*))
|
||||
{
|
||||
bool copy = true;
|
||||
int rindex = 0;
|
||||
int lindex = 0;
|
||||
char new_label[PATH_MAX_LENGTH];
|
||||
|
||||
for (; lindex < PATH_MAX_LENGTH && label[lindex] != '\0'; lindex++)
|
||||
{
|
||||
if (copy)
|
||||
{
|
||||
/* check for the start of the range */
|
||||
if ((*left)(&label[lindex]))
|
||||
copy = false;
|
||||
|
||||
if (copy)
|
||||
new_label[rindex++] = label[lindex];
|
||||
}
|
||||
else if ((*right)(&label[lindex]))
|
||||
copy = true;
|
||||
}
|
||||
|
||||
new_label[rindex] = '\0';
|
||||
|
||||
strlcpy(label, new_label, PATH_MAX_LENGTH);
|
||||
}
|
||||
|
||||
bool left_parens(char *left)
|
||||
{
|
||||
return left[0] == '(';
|
||||
}
|
||||
|
||||
bool right_parens(char *right)
|
||||
{
|
||||
return right[0] == ')';
|
||||
}
|
||||
|
||||
bool left_brackets(char *left)
|
||||
{
|
||||
return left[0] == '[';
|
||||
}
|
||||
|
||||
bool right_brackets(char *right)
|
||||
{
|
||||
return right[0] == ']';
|
||||
}
|
||||
|
||||
bool left_parens_or_brackets(char *left)
|
||||
{
|
||||
return left[0] == '(' || left[0] == '[';
|
||||
}
|
||||
|
||||
bool right_parens_or_brackets(char *right)
|
||||
{
|
||||
return right[0] == ')' || right[0] == ']';
|
||||
}
|
||||
|
||||
bool left_exclusion(char *left, const char **strings, const size_t strings_count)
|
||||
{
|
||||
int i;
|
||||
char exclusion_string[32];
|
||||
char comparison_string[32];
|
||||
|
||||
strlcpy(exclusion_string, left, 32);
|
||||
string_to_upper(exclusion_string);
|
||||
|
||||
for (i = 0; i < strings_count; i++)
|
||||
{
|
||||
strlcpy(comparison_string, strings[i], 32);
|
||||
string_to_upper(comparison_string);
|
||||
|
||||
if (string_is_equal_fast(exclusion_string, comparison_string, strlen(comparison_string)))
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
bool left_parens_or_brackets_excluding_region(char *left)
|
||||
{
|
||||
return left_parens_or_brackets(left)
|
||||
&& !left_exclusion(left, region_strings, region_strings_length);
|
||||
}
|
||||
|
||||
bool left_parens_or_brackets_excluding_disc(char *left)
|
||||
{
|
||||
return left_parens_or_brackets(left)
|
||||
&& !left_exclusion(left, disc_strings, disc_strings_length);
|
||||
}
|
||||
|
||||
bool left_parens_or_brackets_excluding_region_or_disc(char *left)
|
||||
{
|
||||
return left_parens_or_brackets(left)
|
||||
&& !left_exclusion(left, region_strings, region_strings_length)
|
||||
&& !left_exclusion(left, disc_strings, disc_strings_length);
|
||||
}
|
||||
|
||||
void label_remove_parens(char *label)
|
||||
{
|
||||
label_sanitize(label, left_parens, right_parens);
|
||||
}
|
||||
|
||||
void label_remove_brackets(char *label)
|
||||
{
|
||||
label_sanitize(label, left_brackets, right_brackets);
|
||||
}
|
||||
|
||||
void label_remove_parens_and_brackets(char *label)
|
||||
{
|
||||
label_sanitize(label, left_parens_or_brackets, right_parens_or_brackets);
|
||||
}
|
||||
|
||||
void label_keep_region(char *label)
|
||||
{
|
||||
label_sanitize(label, left_parens_or_brackets_excluding_region, right_parens_or_brackets);
|
||||
}
|
||||
|
||||
void label_keep_disc(char *label)
|
||||
{
|
||||
label_sanitize(label, left_parens_or_brackets_excluding_disc, right_parens_or_brackets);
|
||||
}
|
||||
|
||||
void label_keep_region_and_disc(char *label)
|
||||
{
|
||||
label_sanitize(label, left_parens_or_brackets_excluding_region_or_disc, right_parens_or_brackets);
|
||||
}
|
@ -640,6 +640,7 @@ generic_deferred_push_clear_general(deferred_push_dropdown_box_list, PUSH_DEFAUL
|
||||
generic_deferred_push_clear_general(deferred_push_dropdown_box_list_special, PUSH_DEFAULT, DISPLAYLIST_DROPDOWN_LIST_SPECIAL)
|
||||
generic_deferred_push_clear_general(deferred_push_dropdown_box_list_resolution, PUSH_DEFAULT, DISPLAYLIST_DROPDOWN_LIST_RESOLUTION)
|
||||
generic_deferred_push_clear_general(deferred_push_dropdown_box_list_playlist_default_core, PUSH_DEFAULT, DISPLAYLIST_DROPDOWN_LIST_PLAYLIST_DEFAULT_CORE)
|
||||
generic_deferred_push_clear_general(deferred_push_dropdown_box_list_playlist_label_display_mode, PUSH_DEFAULT, DISPLAYLIST_DROPDOWN_LIST_PLAYLIST_LABEL_DISPLAY_MODE)
|
||||
|
||||
static int menu_cbs_init_bind_deferred_push_compare_label(
|
||||
menu_file_list_cbs_t *cbs,
|
||||
@ -680,6 +681,11 @@ static int menu_cbs_init_bind_deferred_push_compare_label(
|
||||
BIND_ACTION_DEFERRED_PUSH(cbs, deferred_push_dropdown_box_list_playlist_default_core);
|
||||
return 0;
|
||||
}
|
||||
else if (string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_DROPDOWN_BOX_LIST_PLAYLIST_LABEL_DISPLAY_MODE)))
|
||||
{
|
||||
BIND_ACTION_DEFERRED_PUSH(cbs, deferred_push_dropdown_box_list_playlist_label_display_mode);
|
||||
return 0;
|
||||
}
|
||||
else if (string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_BROWSE_URL_LIST)))
|
||||
{
|
||||
BIND_ACTION_DEFERRED_PUSH(cbs, deferred_push_browse_url_list);
|
||||
|
@ -1098,6 +1098,52 @@ static void menu_action_setting_disp_set_label_playlist_associations(file_list_t
|
||||
strlcpy(s, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NOT_AVAILABLE), len);
|
||||
}
|
||||
|
||||
static void menu_action_setting_disp_set_label_playlist_label_display_mode(
|
||||
file_list_t* list,
|
||||
unsigned *w, unsigned type, unsigned i,
|
||||
const char *label,
|
||||
char *s, size_t len,
|
||||
const char *path,
|
||||
char *s2, size_t len2)
|
||||
{
|
||||
enum playlist_label_display_mode label_display_mode;
|
||||
int msg_index;
|
||||
playlist_t *playlist = playlist_get_cached();
|
||||
|
||||
if (!playlist)
|
||||
return;
|
||||
|
||||
label_display_mode = playlist_get_label_display_mode(playlist);
|
||||
|
||||
*w = 19;
|
||||
|
||||
strlcpy(s2, path, len2);
|
||||
|
||||
switch (label_display_mode)
|
||||
{
|
||||
case LABEL_DISPLAY_MODE_REMOVE_PARENTHESES :
|
||||
strlcpy(s, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_REMOVE_PARENS), len);
|
||||
break;
|
||||
case LABEL_DISPLAY_MODE_REMOVE_BRACKETS :
|
||||
strlcpy(s, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_REMOVE_BRACKETS), len);
|
||||
break;
|
||||
case LABEL_DISPLAY_MODE_REMOVE_PARENTHESES_AND_BRACKETS :
|
||||
strlcpy(s, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_REMOVE_PARENS_AND_BRACKETS), len);
|
||||
break;
|
||||
case LABEL_DISPLAY_MODE_KEEP_DISC_INDEX :
|
||||
strlcpy(s, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_KEEP_DISC_INDEX), len);
|
||||
break;
|
||||
case LABEL_DISPLAY_MODE_KEEP_REGION :
|
||||
strlcpy(s, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_KEEP_REGION), len);
|
||||
break;
|
||||
case LABEL_DISPLAY_MODE_KEEP_REGION_AND_DISC_INDEX :
|
||||
strlcpy(s, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_KEEP_REGION_AND_DISC_INDEX), len);
|
||||
break;
|
||||
default:
|
||||
strlcpy(s, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_DEFAULT), len);
|
||||
}
|
||||
}
|
||||
|
||||
static void menu_action_setting_disp_set_label_core_options(file_list_t* list,
|
||||
unsigned *w, unsigned type, unsigned i,
|
||||
const char *label,
|
||||
@ -1345,6 +1391,10 @@ static int menu_cbs_init_bind_get_string_representation_compare_label(
|
||||
BIND_ACTION_GET_VALUE(cbs,
|
||||
menu_action_setting_disp_set_label_playlist_associations);
|
||||
break;
|
||||
case MENU_ENUM_LABEL_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE:
|
||||
BIND_ACTION_GET_VALUE(cbs,
|
||||
menu_action_setting_disp_set_label_playlist_label_display_mode);
|
||||
break;
|
||||
default:
|
||||
return - 1;
|
||||
}
|
||||
|
@ -247,7 +247,7 @@ static int action_left_mainmenu(unsigned type, const char *label,
|
||||
file_list_t *menu_stack = menu_entries_get_menu_stack_ptr(0);
|
||||
file_list_t *selection_buf = menu_entries_get_selection_buf_ptr(0);
|
||||
size_t selection = menu_navigation_get_selection();
|
||||
menu_file_list_cbs_t *cbs = selection_buf ?
|
||||
menu_file_list_cbs_t *cbs = selection_buf ?
|
||||
(menu_file_list_cbs_t*)
|
||||
selection_buf->list[selection].actiondata : NULL;
|
||||
|
||||
@ -434,6 +434,28 @@ static int playlist_association_left(unsigned type, const char *label,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int playlist_label_display_mode_left(unsigned type, const char *label,
|
||||
bool wraparound)
|
||||
{
|
||||
enum playlist_label_display_mode label_display_mode;
|
||||
playlist_t *playlist = playlist_get_cached();
|
||||
|
||||
if (!playlist)
|
||||
return -1;
|
||||
|
||||
label_display_mode = playlist_get_label_display_mode(playlist);
|
||||
|
||||
if (label_display_mode != LABEL_DISPLAY_MODE_DEFAULT)
|
||||
label_display_mode = (enum playlist_label_display_mode)((int)label_display_mode - 1);
|
||||
else if (wraparound)
|
||||
label_display_mode = LABEL_DISPLAY_MODE_KEEP_REGION_AND_DISC_INDEX;
|
||||
|
||||
playlist_set_label_display_mode(playlist, label_display_mode);
|
||||
playlist_write_file(playlist);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int core_setting_left(unsigned type, const char *label,
|
||||
bool wraparound)
|
||||
{
|
||||
@ -676,6 +698,9 @@ static int menu_cbs_init_bind_left_compare_label(menu_file_list_cbs_t *cbs,
|
||||
case MENU_ENUM_LABEL_PLAYLIST_MANAGER_DEFAULT_CORE:
|
||||
BIND_ACTION_LEFT(cbs, playlist_association_left);
|
||||
break;
|
||||
case MENU_ENUM_LABEL_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE:
|
||||
BIND_ACTION_LEFT(cbs, playlist_label_display_mode_left);
|
||||
break;
|
||||
default:
|
||||
return -1;
|
||||
}
|
||||
|
@ -177,6 +177,8 @@ static enum msg_hash_enums action_ok_dl_to_enum(unsigned lbl)
|
||||
return MENU_ENUM_LABEL_DEFERRED_DROPDOWN_BOX_LIST_RESOLUTION;
|
||||
case ACTION_OK_DL_DROPDOWN_BOX_LIST_PLAYLIST_DEFAULT_CORE:
|
||||
return MENU_ENUM_LABEL_DEFERRED_DROPDOWN_BOX_LIST_PLAYLIST_DEFAULT_CORE;
|
||||
case ACTION_OK_DL_DROPDOWN_BOX_LIST_PLAYLIST_LABEL_DISPLAY_MODE:
|
||||
return MENU_ENUM_LABEL_DEFERRED_DROPDOWN_BOX_LIST_PLAYLIST_LABEL_DISPLAY_MODE;
|
||||
case ACTION_OK_DL_MIXER_STREAM_SETTINGS_LIST:
|
||||
return MENU_ENUM_LABEL_DEFERRED_MIXER_STREAM_SETTINGS_LIST;
|
||||
case ACTION_OK_DL_ACCOUNTS_LIST:
|
||||
@ -390,6 +392,15 @@ int generic_action_ok_displaylist_push(const char *path,
|
||||
info.enum_idx = MENU_ENUM_LABEL_DEFERRED_DROPDOWN_BOX_LIST_PLAYLIST_DEFAULT_CORE;
|
||||
dl_type = DISPLAYLIST_GENERIC;
|
||||
break;
|
||||
case ACTION_OK_DL_DROPDOWN_BOX_LIST_PLAYLIST_LABEL_DISPLAY_MODE:
|
||||
info.type = type;
|
||||
info.directory_ptr = idx;
|
||||
info_path = path;
|
||||
info_label = msg_hash_to_str(
|
||||
MENU_ENUM_LABEL_DEFERRED_DROPDOWN_BOX_LIST_PLAYLIST_LABEL_DISPLAY_MODE);
|
||||
info.enum_idx = MENU_ENUM_LABEL_DEFERRED_DROPDOWN_BOX_LIST_PLAYLIST_LABEL_DISPLAY_MODE;
|
||||
dl_type = DISPLAYLIST_GENERIC;
|
||||
break;
|
||||
case ACTION_OK_DL_USER_BINDS_LIST:
|
||||
info.type = type;
|
||||
info.directory_ptr = idx;
|
||||
@ -2908,7 +2919,7 @@ static int action_ok_core_deferred_set(const char *new_core_path,
|
||||
strlcpy(resolved_core_path, new_core_path, sizeof(resolved_core_path));
|
||||
playlist_resolve_path(PLAYLIST_SAVE, resolved_core_path, sizeof(resolved_core_path));
|
||||
|
||||
/* the update function reads our entry
|
||||
/* the update function reads our entry
|
||||
* as const, so these casts are safe */
|
||||
entry.core_path = (char*)resolved_core_path;
|
||||
entry.core_name = core_display_name;
|
||||
@ -5359,6 +5370,19 @@ static int action_ok_push_dropdown_item_playlist_default_core(const char *path,
|
||||
return action_cancel_pop_default(NULL, NULL, 0, 0);
|
||||
}
|
||||
|
||||
static int action_ok_push_dropdown_item_playlist_label_display_mode(const char *path,
|
||||
const char *label, unsigned type, size_t idx, size_t entry_idx)
|
||||
{
|
||||
playlist_t *playlist = playlist_get_cached();
|
||||
|
||||
playlist_set_label_display_mode(playlist, (enum playlist_label_display_mode)idx);
|
||||
|
||||
/* In all cases, update file on disk */
|
||||
playlist_write_file(playlist);
|
||||
|
||||
return action_cancel_pop_default(NULL, NULL, 0, 0);
|
||||
}
|
||||
|
||||
static int action_ok_push_default(const char *path,
|
||||
const char *label, unsigned type, size_t idx, size_t entry_idx)
|
||||
{
|
||||
@ -5547,6 +5571,16 @@ static int action_ok_playlist_default_core(const char *path,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int action_ok_playlist_label_display_mode(const char *path,
|
||||
const char *label, unsigned type, size_t idx, size_t entry_idx)
|
||||
{
|
||||
generic_action_ok_displaylist_push(
|
||||
NULL,
|
||||
NULL, NULL, 0, 0, 0,
|
||||
ACTION_OK_DL_DROPDOWN_BOX_LIST_PLAYLIST_LABEL_DISPLAY_MODE);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int action_ok_netplay_enable_host(const char *path,
|
||||
const char *label, unsigned type, size_t idx, size_t entry_idx)
|
||||
{
|
||||
@ -6364,6 +6398,9 @@ static int menu_cbs_init_bind_ok_compare_label(menu_file_list_cbs_t *cbs,
|
||||
case MENU_ENUM_LABEL_PLAYLIST_MANAGER_DEFAULT_CORE:
|
||||
BIND_ACTION_OK(cbs, action_ok_playlist_default_core);
|
||||
break;
|
||||
case MENU_ENUM_LABEL_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE:
|
||||
BIND_ACTION_OK(cbs, action_ok_playlist_label_display_mode);
|
||||
break;
|
||||
case MENU_ENUM_LABEL_UPDATE_ASSETS:
|
||||
BIND_ACTION_OK(cbs, action_ok_update_assets);
|
||||
break;
|
||||
@ -6530,6 +6567,9 @@ static int menu_cbs_init_bind_ok_compare_label(menu_file_list_cbs_t *cbs,
|
||||
case MENU_LABEL_PLAYLIST_MANAGER_DEFAULT_CORE:
|
||||
BIND_ACTION_OK(cbs, action_ok_playlist_default_core);
|
||||
break;
|
||||
case MENU_LABEL_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE:
|
||||
BIND_ACTION_OK(cbs, action_ok_playlist_label_display_mode);
|
||||
break;
|
||||
default:
|
||||
return -1;
|
||||
}
|
||||
@ -6653,6 +6693,9 @@ static int menu_cbs_init_bind_ok_compare_type(menu_file_list_cbs_t *cbs,
|
||||
case MENU_SETTING_DROPDOWN_ITEM_PLAYLIST_DEFAULT_CORE:
|
||||
BIND_ACTION_OK(cbs, action_ok_push_dropdown_item_playlist_default_core);
|
||||
break;
|
||||
case MENU_SETTING_DROPDOWN_ITEM_PLAYLIST_LABEL_DISPLAY_MODE:
|
||||
BIND_ACTION_OK(cbs, action_ok_push_dropdown_item_playlist_label_display_mode);
|
||||
break;
|
||||
case MENU_SETTING_ACTION_CORE_DISK_OPTIONS:
|
||||
BIND_ACTION_OK(cbs, action_ok_push_default);
|
||||
break;
|
||||
|
@ -547,6 +547,28 @@ static int playlist_association_right(unsigned type, const char *label,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int playlist_label_display_mode_right(unsigned type, const char *label,
|
||||
bool wraparound)
|
||||
{
|
||||
enum playlist_label_display_mode label_display_mode;
|
||||
playlist_t *playlist = playlist_get_cached();
|
||||
|
||||
if (!playlist)
|
||||
return -1;
|
||||
|
||||
label_display_mode = playlist_get_label_display_mode(playlist);
|
||||
|
||||
if (label_display_mode != LABEL_DISPLAY_MODE_KEEP_REGION_AND_DISC_INDEX)
|
||||
label_display_mode = (enum playlist_label_display_mode)((int)label_display_mode + 1);
|
||||
else if (wraparound)
|
||||
label_display_mode = LABEL_DISPLAY_MODE_DEFAULT;
|
||||
|
||||
playlist_set_label_display_mode(playlist, label_display_mode);
|
||||
playlist_write_file(playlist);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int core_setting_right(unsigned type, const char *label,
|
||||
bool wraparound)
|
||||
{
|
||||
@ -825,6 +847,9 @@ static int menu_cbs_init_bind_right_compare_label(menu_file_list_cbs_t *cbs,
|
||||
case MENU_ENUM_LABEL_PLAYLIST_MANAGER_DEFAULT_CORE:
|
||||
BIND_ACTION_RIGHT(cbs, playlist_association_right);
|
||||
break;
|
||||
case MENU_ENUM_LABEL_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE:
|
||||
BIND_ACTION_RIGHT(cbs, playlist_label_display_mode_right);
|
||||
break;
|
||||
default:
|
||||
return -1;
|
||||
}
|
||||
|
@ -242,6 +242,20 @@ static int action_start_playlist_association(unsigned type, const char *label)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int action_start_playlist_label_display_mode(unsigned type, const char *label)
|
||||
{
|
||||
playlist_t *playlist = playlist_get_cached();
|
||||
|
||||
if (!playlist)
|
||||
return -1;
|
||||
|
||||
/* Set label display mode to the default */
|
||||
playlist_set_label_display_mode(playlist, LABEL_DISPLAY_MODE_DEFAULT);
|
||||
playlist_write_file(playlist);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int action_start_video_resolution(unsigned type, const char *label)
|
||||
{
|
||||
unsigned width = 0, height = 0;
|
||||
@ -319,6 +333,9 @@ static int menu_cbs_init_bind_start_compare_label(menu_file_list_cbs_t *cbs)
|
||||
case MENU_ENUM_LABEL_PLAYLIST_MANAGER_DEFAULT_CORE:
|
||||
BIND_ACTION_START(cbs, action_start_playlist_association);
|
||||
break;
|
||||
case MENU_ENUM_LABEL_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE:
|
||||
BIND_ACTION_START(cbs, action_start_playlist_label_display_mode);
|
||||
break;
|
||||
default:
|
||||
return -1;
|
||||
}
|
||||
|
@ -1366,6 +1366,12 @@ int menu_cbs_init_bind_title(menu_file_list_cbs_t *cbs,
|
||||
BIND_ACTION_GET_TITLE(cbs, action_get_title_dropdown_item);
|
||||
return 0;
|
||||
}
|
||||
if (string_is_equal(label,
|
||||
msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_DROPDOWN_BOX_LIST_PLAYLIST_LABEL_DISPLAY_MODE)))
|
||||
{
|
||||
BIND_ACTION_GET_TITLE(cbs, action_get_title_dropdown_item);
|
||||
return 0;
|
||||
}
|
||||
if (string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_RPL_ENTRY_ACTIONS)))
|
||||
{
|
||||
BIND_ACTION_GET_TITLE(cbs, action_get_quick_menu_views_settings_list);
|
||||
|
@ -49,6 +49,7 @@ enum
|
||||
ACTION_OK_DL_DROPDOWN_BOX_LIST_SPECIAL,
|
||||
ACTION_OK_DL_DROPDOWN_BOX_LIST_RESOLUTION,
|
||||
ACTION_OK_DL_DROPDOWN_BOX_LIST_PLAYLIST_DEFAULT_CORE,
|
||||
ACTION_OK_DL_DROPDOWN_BOX_LIST_PLAYLIST_LABEL_DISPLAY_MODE,
|
||||
ACTION_OK_DL_OPEN_ARCHIVE,
|
||||
ACTION_OK_DL_OPEN_ARCHIVE_DETECT_CORE,
|
||||
ACTION_OK_DL_MUSIC,
|
||||
|
@ -25,6 +25,7 @@
|
||||
#include <lists/dir_list.h>
|
||||
#include <file/file_path.h>
|
||||
#include <file/archive_file.h>
|
||||
#include <playlists/label_sanitization.h>
|
||||
#include <string/stdstring.h>
|
||||
#include <streams/file_stream.h>
|
||||
#include <features/features_cpu.h>
|
||||
@ -849,6 +850,7 @@ static int menu_displaylist_parse_playlist(menu_displaylist_info_t *info,
|
||||
size_t list_size = playlist_size(playlist);
|
||||
settings_t *settings = config_get_ptr();
|
||||
bool show_inline_core_name = false;
|
||||
void (*sanitization)(char*);
|
||||
|
||||
label_spacer[0] = '\0';
|
||||
|
||||
@ -905,6 +907,30 @@ static int menu_displaylist_parse_playlist(menu_displaylist_info_t *info,
|
||||
/* Preallocate the file list */
|
||||
file_list_reserve(info->list, list_size);
|
||||
|
||||
switch (playlist_get_label_display_mode(playlist))
|
||||
{
|
||||
case LABEL_DISPLAY_MODE_REMOVE_PARENTHESES :
|
||||
sanitization = &label_remove_parens;
|
||||
break;
|
||||
case LABEL_DISPLAY_MODE_REMOVE_BRACKETS :
|
||||
sanitization = &label_remove_brackets;
|
||||
break;
|
||||
case LABEL_DISPLAY_MODE_REMOVE_PARENTHESES_AND_BRACKETS :
|
||||
sanitization = &label_remove_parens_and_brackets;
|
||||
break;
|
||||
case LABEL_DISPLAY_MODE_KEEP_DISC_INDEX :
|
||||
sanitization = &label_keep_disc;
|
||||
break;
|
||||
case LABEL_DISPLAY_MODE_KEEP_REGION :
|
||||
sanitization = &label_keep_region;
|
||||
break;
|
||||
case LABEL_DISPLAY_MODE_KEEP_REGION_AND_DISC_INDEX :
|
||||
sanitization = &label_keep_region_and_disc;
|
||||
break;
|
||||
default :
|
||||
sanitization = NULL;
|
||||
}
|
||||
|
||||
for (i = 0; i < list_size; i++)
|
||||
{
|
||||
char menu_entry_label[PATH_MAX_LENGTH];
|
||||
@ -926,7 +952,11 @@ static int menu_displaylist_parse_playlist(menu_displaylist_info_t *info,
|
||||
if (string_is_empty(entry->label))
|
||||
fill_short_pathname_representation(menu_entry_label, entry->path, sizeof(menu_entry_label));
|
||||
else
|
||||
{
|
||||
strlcpy(menu_entry_label, entry->label, sizeof(menu_entry_label));
|
||||
if (sanitization)
|
||||
(*sanitization)(menu_entry_label);
|
||||
}
|
||||
|
||||
if (show_inline_core_name)
|
||||
{
|
||||
@ -2697,6 +2727,13 @@ static bool menu_displaylist_parse_playlist_manager_settings(
|
||||
MENU_ENUM_LABEL_PLAYLIST_MANAGER_RESET_CORES,
|
||||
FILE_TYPE_PLAYLIST_ENTRY, 0, 0);
|
||||
|
||||
/* Label display mode */
|
||||
menu_entries_append_enum(info->list,
|
||||
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE),
|
||||
msg_hash_to_str(MENU_ENUM_LABEL_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE),
|
||||
MENU_ENUM_LABEL_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE,
|
||||
MENU_SETTING_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE, 0, 0);
|
||||
|
||||
/* TODO: Add
|
||||
* - Remove invalid entries */
|
||||
|
||||
@ -2710,10 +2747,10 @@ static unsigned menu_displaylist_parse_pl_thumbnail_download_list(
|
||||
settings_t *settings = config_get_ptr();
|
||||
unsigned count = 0;
|
||||
struct string_list *str_list = NULL;
|
||||
|
||||
|
||||
if (!settings)
|
||||
return count;
|
||||
|
||||
|
||||
str_list = dir_list_new_special(
|
||||
settings->paths.directory_playlist,
|
||||
DIR_LIST_COLLECTIONS, NULL);
|
||||
@ -3476,13 +3513,13 @@ bool menu_displaylist_setting(menu_displaylist_ctx_parse_entry_t *entry)
|
||||
typedef struct menu_displaylist_build_info {
|
||||
enum msg_hash_enums enum_idx;
|
||||
enum menu_displaylist_parse_type parse_type;
|
||||
} menu_displaylist_build_info_t;
|
||||
} menu_displaylist_build_info_t;
|
||||
|
||||
typedef struct menu_displaylist_build_info_selective {
|
||||
enum msg_hash_enums enum_idx;
|
||||
enum menu_displaylist_parse_type parse_type;
|
||||
bool checked;
|
||||
} menu_displaylist_build_info_selective_t;
|
||||
} menu_displaylist_build_info_selective_t;
|
||||
|
||||
unsigned menu_displaylist_build_list(file_list_t *list, enum menu_displaylist_ctl_state type)
|
||||
{
|
||||
@ -3706,19 +3743,87 @@ unsigned menu_displaylist_build_list(file_list_t *list, enum menu_displaylist_ct
|
||||
}
|
||||
}
|
||||
break;
|
||||
case DISPLAYLIST_DROPDOWN_LIST_PLAYLIST_LABEL_DISPLAY_MODE:
|
||||
{
|
||||
playlist_t *playlist = playlist_get_cached();
|
||||
|
||||
if (playlist)
|
||||
{
|
||||
enum playlist_label_display_mode label_display_mode = playlist_get_label_display_mode(playlist);
|
||||
|
||||
if (menu_entries_append_enum(list,
|
||||
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_DEFAULT),
|
||||
"",
|
||||
MENU_ENUM_LABEL_NO_ITEMS,
|
||||
MENU_SETTING_DROPDOWN_ITEM_PLAYLIST_LABEL_DISPLAY_MODE,
|
||||
0, 0))
|
||||
count++;
|
||||
|
||||
if (menu_entries_append_enum(list,
|
||||
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_REMOVE_PARENS),
|
||||
"",
|
||||
MENU_ENUM_LABEL_NO_ITEMS,
|
||||
MENU_SETTING_DROPDOWN_ITEM_PLAYLIST_LABEL_DISPLAY_MODE,
|
||||
0, 0))
|
||||
count++;
|
||||
|
||||
if (menu_entries_append_enum(list,
|
||||
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_REMOVE_BRACKETS),
|
||||
"",
|
||||
MENU_ENUM_LABEL_NO_ITEMS,
|
||||
MENU_SETTING_DROPDOWN_ITEM_PLAYLIST_LABEL_DISPLAY_MODE,
|
||||
0, 0))
|
||||
count++;
|
||||
|
||||
if (menu_entries_append_enum(list,
|
||||
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_REMOVE_PARENS_AND_BRACKETS),
|
||||
"",
|
||||
MENU_ENUM_LABEL_NO_ITEMS,
|
||||
MENU_SETTING_DROPDOWN_ITEM_PLAYLIST_LABEL_DISPLAY_MODE,
|
||||
0, 0))
|
||||
count++;
|
||||
|
||||
if (menu_entries_append_enum(list,
|
||||
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_KEEP_REGION),
|
||||
"",
|
||||
MENU_ENUM_LABEL_NO_ITEMS,
|
||||
MENU_SETTING_DROPDOWN_ITEM_PLAYLIST_LABEL_DISPLAY_MODE,
|
||||
0, 0))
|
||||
count++;
|
||||
|
||||
if (menu_entries_append_enum(list,
|
||||
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_KEEP_DISC_INDEX),
|
||||
"",
|
||||
MENU_ENUM_LABEL_NO_ITEMS,
|
||||
MENU_SETTING_DROPDOWN_ITEM_PLAYLIST_LABEL_DISPLAY_MODE,
|
||||
0, 0))
|
||||
count++;
|
||||
|
||||
if (menu_entries_append_enum(list,
|
||||
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_KEEP_REGION_AND_DISC_INDEX),
|
||||
"",
|
||||
MENU_ENUM_LABEL_NO_ITEMS,
|
||||
MENU_SETTING_DROPDOWN_ITEM_PLAYLIST_LABEL_DISPLAY_MODE,
|
||||
0, 0))
|
||||
count++;
|
||||
|
||||
menu_entries_set_checked(list, label_display_mode, true);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case DISPLAYLIST_PERFCOUNTERS_CORE:
|
||||
case DISPLAYLIST_PERFCOUNTERS_FRONTEND:
|
||||
{
|
||||
unsigned i;
|
||||
struct retro_perf_counter **counters =
|
||||
struct retro_perf_counter **counters =
|
||||
(type == DISPLAYLIST_PERFCOUNTERS_CORE)
|
||||
? retro_get_perf_counter_libretro()
|
||||
: retro_get_perf_counter_rarch();
|
||||
unsigned num =
|
||||
unsigned num =
|
||||
(type == DISPLAYLIST_PERFCOUNTERS_CORE)
|
||||
? retro_get_perf_count_libretro()
|
||||
: retro_get_perf_count_rarch();
|
||||
unsigned id =
|
||||
unsigned id =
|
||||
(type == DISPLAYLIST_PERFCOUNTERS_CORE)
|
||||
? MENU_SETTINGS_LIBRETRO_PERF_COUNTERS_BEGIN
|
||||
: MENU_SETTINGS_PERF_COUNTERS_BEGIN;
|
||||
@ -4135,7 +4240,7 @@ unsigned menu_displaylist_build_list(file_list_t *list, enum menu_displaylist_ct
|
||||
for (i = 0; i < ARRAY_SIZE(build_list); i++)
|
||||
{
|
||||
bool parse_setting = true;
|
||||
if (build_list[i].checked &&
|
||||
if (build_list[i].checked &&
|
||||
string_is_equal(ui_companion_driver_get_ident(), "null"))
|
||||
parse_setting = false;
|
||||
if (parse_setting &&
|
||||
@ -6609,6 +6714,7 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type,
|
||||
case DISPLAYLIST_NETWORK_INFO:
|
||||
case DISPLAYLIST_DROPDOWN_LIST_RESOLUTION:
|
||||
case DISPLAYLIST_DROPDOWN_LIST_PLAYLIST_DEFAULT_CORE:
|
||||
case DISPLAYLIST_DROPDOWN_LIST_PLAYLIST_LABEL_DISPLAY_MODE:
|
||||
case DISPLAYLIST_PERFCOUNTERS_CORE:
|
||||
case DISPLAYLIST_PERFCOUNTERS_FRONTEND:
|
||||
case DISPLAYLIST_MENU_SETTINGS_LIST:
|
||||
@ -6629,6 +6735,7 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type,
|
||||
break;
|
||||
case DISPLAYLIST_DROPDOWN_LIST_RESOLUTION:
|
||||
case DISPLAYLIST_DROPDOWN_LIST_PLAYLIST_DEFAULT_CORE:
|
||||
case DISPLAYLIST_DROPDOWN_LIST_PLAYLIST_LABEL_DISPLAY_MODE:
|
||||
menu_entries_append_enum(info->list,
|
||||
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NO_ENTRIES_TO_DISPLAY),
|
||||
msg_hash_to_str(MENU_ENUM_LABEL_NO_ENTRIES_TO_DISPLAY),
|
||||
@ -7555,9 +7662,9 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type,
|
||||
{
|
||||
char desc_label[400];
|
||||
char descriptor[300];
|
||||
const struct retro_keybind *keybind =
|
||||
const struct retro_keybind *keybind =
|
||||
&input_config_binds[p][retro_id];
|
||||
const struct retro_keybind *auto_bind =
|
||||
const struct retro_keybind *auto_bind =
|
||||
(const struct retro_keybind*)
|
||||
input_config_get_bind_auto(p, retro_id);
|
||||
|
||||
@ -7577,7 +7684,7 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type,
|
||||
/* Add user index when display driver == rgui and sublabels
|
||||
* are disabled, but only if there is more than one user */
|
||||
if ( (is_rgui)
|
||||
&& (max_users > 1)
|
||||
&& (max_users > 1)
|
||||
&& !settings->bools.menu_show_sublabels)
|
||||
{
|
||||
snprintf(desc_label, sizeof(desc_label),
|
||||
@ -7598,9 +7705,9 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type,
|
||||
{
|
||||
char desc_label[400];
|
||||
char descriptor[300];
|
||||
const struct retro_keybind *keybind =
|
||||
const struct retro_keybind *keybind =
|
||||
&input_config_binds[p][retro_id];
|
||||
const struct retro_keybind *auto_bind =
|
||||
const struct retro_keybind *auto_bind =
|
||||
(const struct retro_keybind*)
|
||||
input_config_get_bind_auto(p, retro_id);
|
||||
|
||||
@ -7619,7 +7726,7 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type,
|
||||
/* Add user index when display driver == rgui and sublabels
|
||||
* are disabled, but only if there is more than one user */
|
||||
if ( (is_rgui)
|
||||
&& (max_users > 1)
|
||||
&& (max_users > 1)
|
||||
&& !settings->bools.menu_show_sublabels)
|
||||
{
|
||||
snprintf(desc_label, sizeof(desc_label),
|
||||
@ -7766,7 +7873,7 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type,
|
||||
if (settings->bools.menu_show_load_content)
|
||||
{
|
||||
const struct retro_subsystem_info* subsystem = subsystem_data;
|
||||
/* Core not loaded completely, use the data we
|
||||
/* Core not loaded completely, use the data we
|
||||
* peeked on load core */
|
||||
|
||||
if (menu_displaylist_parse_settings_enum(info->list,
|
||||
@ -8094,7 +8201,7 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type,
|
||||
new_exts[0] = '\0';
|
||||
|
||||
filebrowser_clear_type();
|
||||
|
||||
|
||||
if (type == DISPLAYLIST_SHADER_PRESET)
|
||||
info->type_default = FILE_TYPE_SHADER_PRESET;
|
||||
else if (type == DISPLAYLIST_SHADER_PASS)
|
||||
@ -8107,7 +8214,7 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type,
|
||||
else if (type == DISPLAYLIST_SHADER_PASS)
|
||||
string_list_append(str_list, "cg", attr);
|
||||
}
|
||||
|
||||
|
||||
if (video_shader_is_supported(RARCH_SHADER_GLSL))
|
||||
{
|
||||
if (type == DISPLAYLIST_SHADER_PRESET)
|
||||
@ -8115,7 +8222,7 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type,
|
||||
else if (type == DISPLAYLIST_SHADER_PASS)
|
||||
string_list_append(str_list, "glsl", attr);
|
||||
}
|
||||
|
||||
|
||||
if (video_shader_is_supported(RARCH_SHADER_SLANG))
|
||||
{
|
||||
if (type == DISPLAYLIST_SHADER_PRESET)
|
||||
@ -8314,7 +8421,7 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type,
|
||||
case DISPLAYLIST_DATABASE_PLAYLISTS:
|
||||
case DISPLAYLIST_DATABASE_PLAYLISTS_HORIZONTAL:
|
||||
{
|
||||
bool is_horizontal =
|
||||
bool is_horizontal =
|
||||
(type == DISPLAYLIST_DATABASE_PLAYLISTS_HORIZONTAL);
|
||||
|
||||
menu_entries_ctl(MENU_ENTRIES_CTL_CLEAR, info->list);
|
||||
|
@ -61,6 +61,7 @@ enum menu_displaylist_ctl_state
|
||||
DISPLAYLIST_DROPDOWN_LIST_SPECIAL,
|
||||
DISPLAYLIST_DROPDOWN_LIST_RESOLUTION,
|
||||
DISPLAYLIST_DROPDOWN_LIST_PLAYLIST_DEFAULT_CORE,
|
||||
DISPLAYLIST_DROPDOWN_LIST_PLAYLIST_LABEL_DISPLAY_MODE,
|
||||
DISPLAYLIST_CDROM_DETAIL_INFO,
|
||||
DISPLAYLIST_INFO,
|
||||
DISPLAYLIST_HELP,
|
||||
|
@ -87,6 +87,7 @@ enum menu_settings_type
|
||||
MENU_SETTING_DROPDOWN_ITEM,
|
||||
MENU_SETTING_DROPDOWN_ITEM_RESOLUTION,
|
||||
MENU_SETTING_DROPDOWN_ITEM_PLAYLIST_DEFAULT_CORE,
|
||||
MENU_SETTING_DROPDOWN_ITEM_PLAYLIST_LABEL_DISPLAY_MODE,
|
||||
MENU_SETTING_DROPDOWN_SETTING_CORE_OPTIONS_ITEM,
|
||||
MENU_SETTING_DROPDOWN_SETTING_STRING_OPTIONS_ITEM,
|
||||
MENU_SETTING_DROPDOWN_SETTING_FLOAT_ITEM,
|
||||
@ -121,6 +122,7 @@ enum menu_settings_type
|
||||
MENU_SETTING_ACTION_PAUSE_ACHIEVEMENTS,
|
||||
MENU_SETTING_ACTION_RESUME_ACHIEVEMENTS,
|
||||
MENU_SETTING_PLAYLIST_MANAGER_DEFAULT_CORE,
|
||||
MENU_SETTING_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE,
|
||||
MENU_WIFI,
|
||||
MENU_ROOM,
|
||||
MENU_ROOM_LAN,
|
||||
|
13
msg_hash.h
13
msg_hash.h
@ -1148,6 +1148,7 @@ enum msg_hash_enums
|
||||
MENU_ENUM_LABEL_DEFERRED_DROPDOWN_BOX_LIST_SPECIAL,
|
||||
MENU_ENUM_LABEL_DEFERRED_DROPDOWN_BOX_LIST_RESOLUTION,
|
||||
MENU_ENUM_LABEL_DEFERRED_DROPDOWN_BOX_LIST_PLAYLIST_DEFAULT_CORE,
|
||||
MENU_ENUM_LABEL_DEFERRED_DROPDOWN_BOX_LIST_PLAYLIST_LABEL_DISPLAY_MODE,
|
||||
MENU_ENUM_LABEL_DEFERRED_MIXER_STREAM_SETTINGS_LIST,
|
||||
MENU_ENUM_LABEL_DEFERRED_CONFIGURATIONS_LIST,
|
||||
MENU_ENUM_LABEL_DEFERRED_FAVORITES_LIST,
|
||||
@ -1833,6 +1834,16 @@ enum msg_hash_enums
|
||||
MSG_PLAYLIST_MANAGER_RESETTING_CORES,
|
||||
MSG_PLAYLIST_MANAGER_CORES_RESET,
|
||||
|
||||
MENU_LABEL(PLAYLIST_MANAGER_LABEL_DISPLAY_MODE),
|
||||
|
||||
MENU_LABEL(PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_DEFAULT),
|
||||
MENU_LABEL(PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_REMOVE_PARENS),
|
||||
MENU_LABEL(PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_REMOVE_BRACKETS),
|
||||
MENU_LABEL(PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_REMOVE_PARENS_AND_BRACKETS),
|
||||
MENU_LABEL(PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_KEEP_REGION),
|
||||
MENU_LABEL(PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_KEEP_DISC_INDEX),
|
||||
MENU_LABEL(PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_KEEP_REGION_AND_DISC_INDEX),
|
||||
|
||||
MENU_LABEL(CORE_UPDATER_SETTINGS),
|
||||
MENU_LABEL(LAKKA_SERVICES),
|
||||
MENU_LABEL(SHADER_APPLY_CHANGES),
|
||||
@ -2534,6 +2545,8 @@ enum msg_hash_enums
|
||||
|
||||
#define MENU_LABEL_PLAYLIST_MANAGER_DEFAULT_CORE 0x86EDE19DU
|
||||
|
||||
#define MENU_LABEL_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE 0xE0E1CD5BU
|
||||
|
||||
/* Menu settings */
|
||||
#define MENU_LABEL_XMB_FONT 0x0ECA56CA2
|
||||
|
||||
|
157
playlist.c
157
playlist.c
@ -43,6 +43,7 @@
|
||||
struct content_playlist
|
||||
{
|
||||
bool modified;
|
||||
enum playlist_label_display_mode label_display_mode;
|
||||
size_t size;
|
||||
size_t cap;
|
||||
|
||||
@ -67,6 +68,7 @@ typedef struct
|
||||
struct string_list **current_entry_string_list_val;
|
||||
char *current_meta_string;
|
||||
char **current_meta_val;
|
||||
int *current_meta_int_val;
|
||||
char *current_items_string;
|
||||
bool in_items;
|
||||
bool in_subsystem_roms;
|
||||
@ -224,6 +226,13 @@ char *playlist_get_conf_path(playlist_t *playlist)
|
||||
return playlist->conf_path;
|
||||
}
|
||||
|
||||
enum playlist_label_display_mode playlist_get_label_display_mode(playlist_t *playlist)
|
||||
{
|
||||
if (!playlist)
|
||||
return LABEL_DISPLAY_MODE_DEFAULT;
|
||||
return playlist->label_display_mode;
|
||||
}
|
||||
|
||||
/**
|
||||
* playlist_get_index:
|
||||
* @playlist : Playlist handle.
|
||||
@ -743,29 +752,29 @@ bool playlist_push(playlist_t *playlist,
|
||||
if (!playlist_core_path_equal(real_core_path, playlist->entries[i].core_path))
|
||||
continue;
|
||||
|
||||
if ( !string_is_empty(entry->subsystem_ident)
|
||||
&& !string_is_empty(playlist->entries[i].subsystem_ident)
|
||||
if ( !string_is_empty(entry->subsystem_ident)
|
||||
&& !string_is_empty(playlist->entries[i].subsystem_ident)
|
||||
&& !string_is_equal(playlist->entries[i].subsystem_ident, entry->subsystem_ident))
|
||||
continue;
|
||||
|
||||
if ( string_is_empty(entry->subsystem_ident)
|
||||
if ( string_is_empty(entry->subsystem_ident)
|
||||
&& !string_is_empty(playlist->entries[i].subsystem_ident))
|
||||
continue;
|
||||
|
||||
if ( !string_is_empty(entry->subsystem_ident)
|
||||
if ( !string_is_empty(entry->subsystem_ident)
|
||||
&& string_is_empty(playlist->entries[i].subsystem_ident))
|
||||
continue;
|
||||
|
||||
if ( !string_is_empty(entry->subsystem_name)
|
||||
&& !string_is_empty(playlist->entries[i].subsystem_name)
|
||||
if ( !string_is_empty(entry->subsystem_name)
|
||||
&& !string_is_empty(playlist->entries[i].subsystem_name)
|
||||
&& !string_is_equal(playlist->entries[i].subsystem_name, entry->subsystem_name))
|
||||
continue;
|
||||
|
||||
if ( string_is_empty(entry->subsystem_name)
|
||||
if ( string_is_empty(entry->subsystem_name)
|
||||
&& !string_is_empty(playlist->entries[i].subsystem_name))
|
||||
continue;
|
||||
|
||||
if ( !string_is_empty(entry->subsystem_name)
|
||||
if ( !string_is_empty(entry->subsystem_name)
|
||||
&& string_is_empty(playlist->entries[i].subsystem_name))
|
||||
continue;
|
||||
|
||||
@ -842,7 +851,7 @@ bool playlist_push(playlist_t *playlist,
|
||||
|
||||
if (playlist->size == playlist->cap)
|
||||
{
|
||||
struct playlist_entry *last_entry =
|
||||
struct playlist_entry *last_entry =
|
||||
&playlist->entries[playlist->cap - 1];
|
||||
|
||||
if (last_entry)
|
||||
@ -1000,11 +1009,11 @@ void playlist_write_runtime_file(playlist_t *playlist)
|
||||
JSON_Writer_WriteColon(context.writer);
|
||||
JSON_Writer_WriteSpace(context.writer, 1);
|
||||
JSON_Writer_WriteString(context.writer,
|
||||
playlist->entries[i].path
|
||||
? playlist->entries[i].path
|
||||
playlist->entries[i].path
|
||||
? playlist->entries[i].path
|
||||
: "",
|
||||
playlist->entries[i].path
|
||||
? strlen(playlist->entries[i].path)
|
||||
playlist->entries[i].path
|
||||
? strlen(playlist->entries[i].path)
|
||||
: 0,
|
||||
JSON_UTF8);
|
||||
JSON_Writer_WriteComma(context.writer);
|
||||
@ -1203,15 +1212,17 @@ void playlist_write_file(playlist_t *playlist)
|
||||
if (!string_is_empty(playlist->default_core_path) &&
|
||||
!string_is_empty(playlist->default_core_name))
|
||||
{
|
||||
filestream_printf(file, "default_core_path = \"%s\"\ndefault_core_name = \"%s\"\n",
|
||||
filestream_printf(file, "default_core_path = \"%s\"\ndefault_core_name = \"%s\"\nlabel_display_mode = \"%d\"\n",
|
||||
playlist->default_core_path,
|
||||
playlist->default_core_name
|
||||
playlist->default_core_name,
|
||||
playlist->label_display_mode
|
||||
);
|
||||
}
|
||||
}
|
||||
else
|
||||
#endif
|
||||
{
|
||||
char label_display_mode[4] = {0};
|
||||
JSONContext context = {0};
|
||||
context.writer = JSON_Writer_Create(NULL);
|
||||
context.file = file;
|
||||
@ -1234,8 +1245,8 @@ void playlist_write_file(playlist_t *playlist)
|
||||
STRLEN_CONST("version"), JSON_UTF8);
|
||||
JSON_Writer_WriteColon(context.writer);
|
||||
JSON_Writer_WriteSpace(context.writer, 1);
|
||||
JSON_Writer_WriteString(context.writer, "1.1",
|
||||
STRLEN_CONST("1.1"), JSON_UTF8);
|
||||
JSON_Writer_WriteString(context.writer, "1.2",
|
||||
STRLEN_CONST("1.2"), JSON_UTF8);
|
||||
JSON_Writer_WriteComma(context.writer);
|
||||
JSON_Writer_WriteNewLine(context.writer);
|
||||
|
||||
@ -1271,6 +1282,18 @@ void playlist_write_file(playlist_t *playlist)
|
||||
JSON_Writer_WriteComma(context.writer);
|
||||
JSON_Writer_WriteNewLine(context.writer);
|
||||
|
||||
snprintf(label_display_mode, sizeof(label_display_mode), "%u", playlist->label_display_mode);
|
||||
|
||||
JSON_Writer_WriteSpace(context.writer, 2);
|
||||
JSON_Writer_WriteString(context.writer, "label_display_mode",
|
||||
STRLEN_CONST("label_display_mode"), JSON_UTF8);
|
||||
JSON_Writer_WriteColon(context.writer);
|
||||
JSON_Writer_WriteSpace(context.writer, 1);
|
||||
JSON_Writer_WriteNumber(context.writer, label_display_mode,
|
||||
strlen(label_display_mode), JSON_UTF8);
|
||||
JSON_Writer_WriteComma(context.writer);
|
||||
JSON_Writer_WriteNewLine(context.writer);
|
||||
|
||||
JSON_Writer_WriteSpace(context.writer, 2);
|
||||
JSON_Writer_WriteString(context.writer, "items",
|
||||
STRLEN_CONST("items"), JSON_UTF8);
|
||||
@ -1291,11 +1314,11 @@ void playlist_write_file(playlist_t *playlist)
|
||||
JSON_Writer_WriteColon(context.writer);
|
||||
JSON_Writer_WriteSpace(context.writer, 1);
|
||||
JSON_Writer_WriteString(context.writer,
|
||||
playlist->entries[i].path
|
||||
? playlist->entries[i].path
|
||||
playlist->entries[i].path
|
||||
? playlist->entries[i].path
|
||||
: "",
|
||||
playlist->entries[i].path
|
||||
? strlen(playlist->entries[i].path)
|
||||
playlist->entries[i].path
|
||||
? strlen(playlist->entries[i].path)
|
||||
: 0,
|
||||
JSON_UTF8);
|
||||
JSON_Writer_WriteComma(context.writer);
|
||||
@ -1307,11 +1330,11 @@ void playlist_write_file(playlist_t *playlist)
|
||||
JSON_Writer_WriteColon(context.writer);
|
||||
JSON_Writer_WriteSpace(context.writer, 1);
|
||||
JSON_Writer_WriteString(context.writer,
|
||||
playlist->entries[i].label
|
||||
? playlist->entries[i].label
|
||||
playlist->entries[i].label
|
||||
? playlist->entries[i].label
|
||||
: "",
|
||||
playlist->entries[i].label
|
||||
? strlen(playlist->entries[i].label)
|
||||
playlist->entries[i].label
|
||||
? strlen(playlist->entries[i].label)
|
||||
: 0,
|
||||
JSON_UTF8);
|
||||
JSON_Writer_WriteComma(context.writer);
|
||||
@ -1345,8 +1368,8 @@ void playlist_write_file(playlist_t *playlist)
|
||||
JSON_Writer_WriteColon(context.writer);
|
||||
JSON_Writer_WriteSpace(context.writer, 1);
|
||||
JSON_Writer_WriteString(context.writer, playlist->entries[i].crc32 ? playlist->entries[i].crc32 : "",
|
||||
playlist->entries[i].crc32
|
||||
? strlen(playlist->entries[i].crc32)
|
||||
playlist->entries[i].crc32
|
||||
? strlen(playlist->entries[i].crc32)
|
||||
: 0,
|
||||
JSON_UTF8);
|
||||
JSON_Writer_WriteComma(context.writer);
|
||||
@ -1358,8 +1381,8 @@ void playlist_write_file(playlist_t *playlist)
|
||||
JSON_Writer_WriteColon(context.writer);
|
||||
JSON_Writer_WriteSpace(context.writer, 1);
|
||||
JSON_Writer_WriteString(context.writer, playlist->entries[i].db_name ? playlist->entries[i].db_name : "",
|
||||
playlist->entries[i].db_name
|
||||
? strlen(playlist->entries[i].db_name)
|
||||
playlist->entries[i].db_name
|
||||
? strlen(playlist->entries[i].db_name)
|
||||
: 0,
|
||||
JSON_UTF8);
|
||||
|
||||
@ -1373,8 +1396,8 @@ void playlist_write_file(playlist_t *playlist)
|
||||
JSON_Writer_WriteColon(context.writer);
|
||||
JSON_Writer_WriteSpace(context.writer, 1);
|
||||
JSON_Writer_WriteString(context.writer, playlist->entries[i].subsystem_ident ? playlist->entries[i].subsystem_ident : "",
|
||||
playlist->entries[i].subsystem_ident
|
||||
? strlen(playlist->entries[i].subsystem_ident)
|
||||
playlist->entries[i].subsystem_ident
|
||||
? strlen(playlist->entries[i].subsystem_ident)
|
||||
: 0,
|
||||
JSON_UTF8);
|
||||
}
|
||||
@ -1389,15 +1412,15 @@ void playlist_write_file(playlist_t *playlist)
|
||||
JSON_Writer_WriteColon(context.writer);
|
||||
JSON_Writer_WriteSpace(context.writer, 1);
|
||||
JSON_Writer_WriteString(context.writer,
|
||||
playlist->entries[i].subsystem_name
|
||||
? playlist->entries[i].subsystem_name
|
||||
playlist->entries[i].subsystem_name
|
||||
? playlist->entries[i].subsystem_name
|
||||
: "",
|
||||
playlist->entries[i].subsystem_name
|
||||
? strlen(playlist->entries[i].subsystem_name)
|
||||
playlist->entries[i].subsystem_name
|
||||
? strlen(playlist->entries[i].subsystem_name)
|
||||
: 0, JSON_UTF8);
|
||||
}
|
||||
|
||||
if ( playlist->entries[i].subsystem_roms &&
|
||||
if ( playlist->entries[i].subsystem_roms &&
|
||||
playlist->entries[i].subsystem_roms->size > 0)
|
||||
{
|
||||
unsigned j;
|
||||
@ -1417,11 +1440,11 @@ void playlist_write_file(playlist_t *playlist)
|
||||
const struct string_list *roms = playlist->entries[i].subsystem_roms;
|
||||
JSON_Writer_WriteSpace(context.writer, 8);
|
||||
JSON_Writer_WriteString(context.writer,
|
||||
!string_is_empty(roms->elems[j].data)
|
||||
? roms->elems[j].data
|
||||
!string_is_empty(roms->elems[j].data)
|
||||
? roms->elems[j].data
|
||||
: "",
|
||||
!string_is_empty(roms->elems[j].data)
|
||||
? strlen(roms->elems[j].data)
|
||||
!string_is_empty(roms->elems[j].data)
|
||||
? strlen(roms->elems[j].data)
|
||||
: 0,
|
||||
JSON_UTF8);
|
||||
|
||||
@ -1721,6 +1744,8 @@ static JSON_Parser_HandlerResult JSONNumberHandler(JSON_Parser parser, char *pVa
|
||||
|
||||
free(pCtx->current_meta_string);
|
||||
pCtx->current_meta_string = NULL;
|
||||
|
||||
*pCtx->current_meta_int_val = (int)strtoul(pValue, NULL, 10);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1820,6 +1845,8 @@ static JSON_Parser_HandlerResult JSONObjectMemberHandler(JSON_Parser parser, cha
|
||||
pCtx->current_meta_val = &pCtx->playlist->default_core_path;
|
||||
else if (string_is_equal(pValue, "default_core_name"))
|
||||
pCtx->current_meta_val = &pCtx->playlist->default_core_name;
|
||||
else if (string_is_equal(pValue, "label_display_mode"))
|
||||
pCtx->current_meta_int_val = (int*)&pCtx->playlist->label_display_mode;
|
||||
else
|
||||
{
|
||||
/* ignore unknown members */
|
||||
@ -2009,8 +2036,8 @@ json_cleanup:
|
||||
metadata_char = filestream_getc(file);
|
||||
}
|
||||
|
||||
/* Search backwards for the next two newlines */
|
||||
while (metadata_counter < 2)
|
||||
/* Search backwards for the next three newlines */
|
||||
while (metadata_counter < 3)
|
||||
{
|
||||
filestream_seek(file, -2, SEEK_CUR);
|
||||
if (filestream_error(file))
|
||||
@ -2041,6 +2068,26 @@ json_cleanup:
|
||||
get_old_format_metadata_value(
|
||||
metadata_line, default_core_name, sizeof(default_core_name));
|
||||
|
||||
/* > Get label_display_mode */
|
||||
if (!filestream_gets(file, metadata_line, sizeof(metadata_line)))
|
||||
goto end;
|
||||
|
||||
if (strncmp("label_display_mode",
|
||||
metadata_line,
|
||||
STRLEN_CONST("label_display_mode")) == 0)
|
||||
{
|
||||
char *start = NULL;
|
||||
start = strchr(metadata_line, '\"');
|
||||
|
||||
if (start)
|
||||
{
|
||||
start++;
|
||||
|
||||
if (*start >= '0' && *start <= '9')
|
||||
playlist->label_display_mode = (enum playlist_label_display_mode)(*start - '0');
|
||||
}
|
||||
}
|
||||
|
||||
/* > Populate playlist fields, if required */
|
||||
if (!string_is_empty(default_core_path) &&
|
||||
!string_is_empty(default_core_name))
|
||||
@ -2146,13 +2193,14 @@ playlist_t *playlist_init(const char *path, size_t size)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
playlist->modified = false;
|
||||
playlist->size = 0;
|
||||
playlist->cap = size;
|
||||
playlist->conf_path = strdup(path);
|
||||
playlist->default_core_name = NULL;
|
||||
playlist->default_core_path = NULL;
|
||||
playlist->entries = entries;
|
||||
playlist->modified = false;
|
||||
playlist->size = 0;
|
||||
playlist->cap = size;
|
||||
playlist->conf_path = strdup(path);
|
||||
playlist->default_core_name = NULL;
|
||||
playlist->default_core_path = NULL;
|
||||
playlist->entries = entries;
|
||||
playlist->label_display_mode = LABEL_DISPLAY_MODE_DEFAULT;
|
||||
|
||||
playlist_read_file(playlist, path);
|
||||
|
||||
@ -2378,3 +2426,14 @@ void playlist_set_default_core_name(playlist_t *playlist, const char *core_name)
|
||||
playlist->modified = true;
|
||||
}
|
||||
}
|
||||
|
||||
void playlist_set_label_display_mode(playlist_t *playlist, enum playlist_label_display_mode label_display_mode)
|
||||
{
|
||||
if (!playlist)
|
||||
return;
|
||||
|
||||
if (playlist->label_display_mode != label_display_mode) {
|
||||
playlist->label_display_mode = label_display_mode;
|
||||
playlist->modified = true;
|
||||
}
|
||||
}
|
||||
|
13
playlist.h
13
playlist.h
@ -41,6 +41,17 @@ enum playlist_file_mode
|
||||
PLAYLIST_SAVE
|
||||
};
|
||||
|
||||
enum playlist_label_display_mode
|
||||
{
|
||||
LABEL_DISPLAY_MODE_DEFAULT = 0,
|
||||
LABEL_DISPLAY_MODE_REMOVE_PARENTHESES,
|
||||
LABEL_DISPLAY_MODE_REMOVE_BRACKETS,
|
||||
LABEL_DISPLAY_MODE_REMOVE_PARENTHESES_AND_BRACKETS,
|
||||
LABEL_DISPLAY_MODE_KEEP_REGION,
|
||||
LABEL_DISPLAY_MODE_KEEP_DISC_INDEX,
|
||||
LABEL_DISPLAY_MODE_KEEP_REGION_AND_DISC_INDEX
|
||||
};
|
||||
|
||||
struct playlist_entry
|
||||
{
|
||||
char *path;
|
||||
@ -213,9 +224,11 @@ void playlist_get_db_name(playlist_t *playlist, size_t idx,
|
||||
|
||||
char *playlist_get_default_core_path(playlist_t *playlist);
|
||||
char *playlist_get_default_core_name(playlist_t *playlist);
|
||||
enum playlist_label_display_mode playlist_get_label_display_mode(playlist_t *playlist);
|
||||
|
||||
void playlist_set_default_core_path(playlist_t *playlist, const char *core_path);
|
||||
void playlist_set_default_core_name(playlist_t *playlist, const char *core_name);
|
||||
void playlist_set_label_display_mode(playlist_t *playlist, enum playlist_label_display_mode label_display_mode);
|
||||
|
||||
RETRO_END_DECLS
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user