diff --git a/intl/msg_hash_ar.h b/intl/msg_hash_ar.h index aa390073be..1c99e0dc87 100644 --- a/intl/msg_hash_ar.h +++ b/intl/msg_hash_ar.h @@ -4082,3 +4082,33 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_AI_SERVICE_SPEECH_MODE, "Speech Mode" ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE, + "Remove ...") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE, + "Remove shader presets of a specific type.") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_GLOBAL, + "Remove Global Preset") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_GLOBAL, + "Remove the Global Preset, used by all content and all cores.") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_CORE, + "Remove Core Preset") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_CORE, + "Remove the Core Preset, used by all content ran with the currently loaded core.") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_PARENT, + "Remove Content Directory Preset") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_PARENT, + "Remove the Content Directory Preset, used by all content inside the current working directory.") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_GAME, + "Remove Game Preset") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_GAME, + "Remove the Game Preset, used only for the specific game in question.") diff --git a/intl/msg_hash_chs.h b/intl/msg_hash_chs.h index 4d1800012f..a40c51b62a 100644 --- a/intl/msg_hash_chs.h +++ b/intl/msg_hash_chs.h @@ -5100,3 +5100,33 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_AI_SERVICE_SPEECH_MODE, "Speech Mode" ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE, + "Remove ...") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE, + "Remove shader presets of a specific type.") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_GLOBAL, + "Remove Global Preset") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_GLOBAL, + "Remove the Global Preset, used by all content and all cores.") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_CORE, + "Remove Core Preset") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_CORE, + "Remove the Core Preset, used by all content ran with the currently loaded core.") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_PARENT, + "Remove Content Directory Preset") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_PARENT, + "Remove the Content Directory Preset, used by all content inside the current working directory.") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_GAME, + "Remove Game Preset") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_GAME, + "Remove the Game Preset, used only for the specific game in question.") diff --git a/intl/msg_hash_cht.h b/intl/msg_hash_cht.h index b0e2391af6..13ace0a207 100644 --- a/intl/msg_hash_cht.h +++ b/intl/msg_hash_cht.h @@ -3858,3 +3858,33 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_AI_SERVICE_SPEECH_MODE, "Speech Mode" ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE, + "Remove ...") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE, + "Remove shader presets of a specific type.") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_GLOBAL, + "Remove Global Preset") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_GLOBAL, + "Remove the Global Preset, used by all content and all cores.") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_CORE, + "Remove Core Preset") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_CORE, + "Remove the Core Preset, used by all content ran with the currently loaded core.") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_PARENT, + "Remove Content Directory Preset") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_PARENT, + "Remove the Content Directory Preset, used by all content inside the current working directory.") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_GAME, + "Remove Game Preset") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_GAME, + "Remove the Game Preset, used only for the specific game in question.") diff --git a/intl/msg_hash_de.h b/intl/msg_hash_de.h index 816c94bbfb..2a6d169b21 100644 --- a/intl/msg_hash_de.h +++ b/intl/msg_hash_de.h @@ -3987,3 +3987,33 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_AI_SERVICE_SPEECH_MODE, "Speech Mode" ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE, + "Remove ...") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE, + "Remove shader presets of a specific type.") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_GLOBAL, + "Remove Global Preset") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_GLOBAL, + "Remove the Global Preset, used by all content and all cores.") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_CORE, + "Remove Core Preset") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_CORE, + "Remove the Core Preset, used by all content ran with the currently loaded core.") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_PARENT, + "Remove Content Directory Preset") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_PARENT, + "Remove the Content Directory Preset, used by all content inside the current working directory.") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_GAME, + "Remove Game Preset") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_GAME, + "Remove the Game Preset, used only for the specific game in question.") diff --git a/intl/msg_hash_el.h b/intl/msg_hash_el.h index ced42baaca..e02473d8af 100644 --- a/intl/msg_hash_el.h +++ b/intl/msg_hash_el.h @@ -8064,3 +8064,33 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_AI_SERVICE_SPEECH_MODE, "Speech Mode" ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE, + "Remove ...") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE, + "Remove shader presets of a specific type.") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_GLOBAL, + "Remove Global Preset") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_GLOBAL, + "Remove the Global Preset, used by all content and all cores.") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_CORE, + "Remove Core Preset") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_CORE, + "Remove the Core Preset, used by all content ran with the currently loaded core.") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_PARENT, + "Remove Content Directory Preset") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_PARENT, + "Remove the Content Directory Preset, used by all content inside the current working directory.") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_GAME, + "Remove Game Preset") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_GAME, + "Remove the Game Preset, used only for the specific game in question.") diff --git a/intl/msg_hash_eo.h b/intl/msg_hash_eo.h index 56e9538432..4c458e103a 100644 --- a/intl/msg_hash_eo.h +++ b/intl/msg_hash_eo.h @@ -3746,3 +3746,33 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_AI_SERVICE_SPEECH_MODE, "Speech Mode" ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE, + "Remove ...") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE, + "Remove shader presets of a specific type.") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_GLOBAL, + "Remove Global Preset") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_GLOBAL, + "Remove the Global Preset, used by all content and all cores.") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_CORE, + "Remove Core Preset") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_CORE, + "Remove the Core Preset, used by all content ran with the currently loaded core.") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_PARENT, + "Remove Content Directory Preset") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_PARENT, + "Remove the Content Directory Preset, used by all content inside the current working directory.") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_GAME, + "Remove Game Preset") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_GAME, + "Remove the Game Preset, used only for the specific game in question.") diff --git a/intl/msg_hash_es.h b/intl/msg_hash_es.h index be671ed3e9..a6619e3ac1 100644 --- a/intl/msg_hash_es.h +++ b/intl/msg_hash_es.h @@ -8216,3 +8216,33 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_AI_SERVICE_SPEECH_MODE, "Speech Mode" ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE, + "Remove ...") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE, + "Remove shader presets of a specific type.") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_GLOBAL, + "Remove Global Preset") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_GLOBAL, + "Remove the Global Preset, used by all content and all cores.") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_CORE, + "Remove Core Preset") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_CORE, + "Remove the Core Preset, used by all content ran with the currently loaded core.") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_PARENT, + "Remove Content Directory Preset") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_PARENT, + "Remove the Content Directory Preset, used by all content inside the current working directory.") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_GAME, + "Remove Game Preset") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_GAME, + "Remove the Game Preset, used only for the specific game in question.") diff --git a/intl/msg_hash_fr.h b/intl/msg_hash_fr.h index 1f8c8f60da..00de2ae376 100644 --- a/intl/msg_hash_fr.h +++ b/intl/msg_hash_fr.h @@ -9004,3 +9004,33 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_AI_SERVICE_SPEECH_MODE, "Speech Mode" ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE, + "Remove ...") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE, + "Remove shader presets of a specific type.") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_GLOBAL, + "Remove Global Preset") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_GLOBAL, + "Remove the Global Preset, used by all content and all cores.") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_CORE, + "Remove Core Preset") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_CORE, + "Remove the Core Preset, used by all content ran with the currently loaded core.") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_PARENT, + "Remove Content Directory Preset") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_PARENT, + "Remove the Content Directory Preset, used by all content inside the current working directory.") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_GAME, + "Remove Game Preset") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_GAME, + "Remove the Game Preset, used only for the specific game in question.") diff --git a/intl/msg_hash_it.h b/intl/msg_hash_it.h index 6791dd7d73..d8c4323181 100644 --- a/intl/msg_hash_it.h +++ b/intl/msg_hash_it.h @@ -3967,3 +3967,33 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_AI_SERVICE_SPEECH_MODE, "Speech Mode" ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE, + "Remove ...") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE, + "Remove shader presets of a specific type.") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_GLOBAL, + "Remove Global Preset") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_GLOBAL, + "Remove the Global Preset, used by all content and all cores.") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_CORE, + "Remove Core Preset") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_CORE, + "Remove the Core Preset, used by all content ran with the currently loaded core.") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_PARENT, + "Remove Content Directory Preset") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_PARENT, + "Remove the Content Directory Preset, used by all content inside the current working directory.") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_GAME, + "Remove Game Preset") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_GAME, + "Remove the Game Preset, used only for the specific game in question.") diff --git a/intl/msg_hash_ja.h b/intl/msg_hash_ja.h index 08d78a39d8..e88a9fc418 100644 --- a/intl/msg_hash_ja.h +++ b/intl/msg_hash_ja.h @@ -9379,3 +9379,33 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_AI_SERVICE_SPEECH_MODE, "Speech Mode" ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE, + "Remove ...") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE, + "Remove shader presets of a specific type.") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_GLOBAL, + "Remove Global Preset") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_GLOBAL, + "Remove the Global Preset, used by all content and all cores.") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_CORE, + "Remove Core Preset") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_CORE, + "Remove the Core Preset, used by all content ran with the currently loaded core.") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_PARENT, + "Remove Content Directory Preset") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_PARENT, + "Remove the Content Directory Preset, used by all content inside the current working directory.") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_GAME, + "Remove Game Preset") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_GAME, + "Remove the Game Preset, used only for the specific game in question.") diff --git a/intl/msg_hash_ko.h b/intl/msg_hash_ko.h index efe9efec9b..05660d3a57 100644 --- a/intl/msg_hash_ko.h +++ b/intl/msg_hash_ko.h @@ -9211,3 +9211,33 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_AI_SERVICE_SPEECH_MODE, "Speech Mode" ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE, + "Remove ...") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE, + "Remove shader presets of a specific type.") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_GLOBAL, + "Remove Global Preset") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_GLOBAL, + "Remove the Global Preset, used by all content and all cores.") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_CORE, + "Remove Core Preset") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_CORE, + "Remove the Core Preset, used by all content ran with the currently loaded core.") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_PARENT, + "Remove Content Directory Preset") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_PARENT, + "Remove the Content Directory Preset, used by all content inside the current working directory.") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_GAME, + "Remove Game Preset") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_GAME, + "Remove the Game Preset, used only for the specific game in question.") diff --git a/intl/msg_hash_lbl.h b/intl/msg_hash_lbl.h index 7c4002b220..833641e9d8 100644 --- a/intl/msg_hash_lbl.h +++ b/intl/msg_hash_lbl.h @@ -265,6 +265,10 @@ MSG_HASH(MENU_ENUM_LABEL_DATABASE_MANAGER, "database_manager") MSG_HASH(MENU_ENUM_LABEL_DATABASE_MANAGER_LIST, "database_manager_list") +MSG_HASH(MENU_ENUM_LABEL_DEFERRED_VIDEO_SHADER_PRESET_REMOVE_LIST, + "deferred_video_shader_preset_remove_list") +MSG_HASH(MENU_ENUM_LABEL_DEFERRED_VIDEO_SHADER_PRESET_SAVE_LIST, + "deferred_video_shader_preset_save_list") MSG_HASH(MENU_ENUM_LABEL_DEFERRED_CDROM_INFO_LIST, "deferred_cdrom_info_list") MSG_HASH(MENU_ENUM_LABEL_DEFERRED_CDROM_INFO_DETAIL_LIST, @@ -1395,6 +1399,18 @@ MSG_HASH(MENU_ENUM_LABEL_VIDEO_SHADER_PRESET, "video_shader_preset") MSG_HASH(MENU_ENUM_LABEL_VIDEO_SHADER_PRESET_PARAMETERS, "video_shader_preset_parameters") +MSG_HASH(MENU_ENUM_LABEL_VIDEO_SHADER_PRESET_REMOVE, + "video_shader_preset_remove") +MSG_HASH(MENU_ENUM_LABEL_VIDEO_SHADER_PRESET_REMOVE_GLOBAL, + "video_shader_preset_remove_global") +MSG_HASH(MENU_ENUM_LABEL_VIDEO_SHADER_PRESET_REMOVE_CORE, + "video_shader_preset_remove_core") +MSG_HASH(MENU_ENUM_LABEL_VIDEO_SHADER_PRESET_REMOVE_PARENT, + "video_shader_preset_remove_parent") +MSG_HASH(MENU_ENUM_LABEL_VIDEO_SHADER_PRESET_REMOVE_GAME, + "video_shader_preset_remove_game") +MSG_HASH(MENU_ENUM_LABEL_VIDEO_SHADER_PRESET_SAVE, + "video_shader_preset_save") MSG_HASH(MENU_ENUM_LABEL_VIDEO_SHADER_PRESET_SAVE_AS, "video_shader_preset_save_as") MSG_HASH(MENU_ENUM_LABEL_VIDEO_SHADER_SCALE_PASS, diff --git a/intl/msg_hash_nl.h b/intl/msg_hash_nl.h index 7ac25236c3..bcdb9b36cc 100644 --- a/intl/msg_hash_nl.h +++ b/intl/msg_hash_nl.h @@ -3740,3 +3740,33 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_AI_SERVICE_SPEECH_MODE, "Speech Mode" ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE, + "Remove ...") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE, + "Remove shader presets of a specific type.") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_GLOBAL, + "Remove Global Preset") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_GLOBAL, + "Remove the Global Preset, used by all content and all cores.") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_CORE, + "Remove Core Preset") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_CORE, + "Remove the Core Preset, used by all content ran with the currently loaded core.") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_PARENT, + "Remove Content Directory Preset") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_PARENT, + "Remove the Content Directory Preset, used by all content inside the current working directory.") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_GAME, + "Remove Game Preset") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_GAME, + "Remove the Game Preset, used only for the specific game in question.") diff --git a/intl/msg_hash_pl.h b/intl/msg_hash_pl.h index a3b3462a57..ca2bb58f74 100644 --- a/intl/msg_hash_pl.h +++ b/intl/msg_hash_pl.h @@ -4531,3 +4531,33 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_AI_SERVICE_SPEECH_MODE, "Speech Mode" ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE, + "Remove ...") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE, + "Remove shader presets of a specific type.") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_GLOBAL, + "Remove Global Preset") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_GLOBAL, + "Remove the Global Preset, used by all content and all cores.") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_CORE, + "Remove Core Preset") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_CORE, + "Remove the Core Preset, used by all content ran with the currently loaded core.") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_PARENT, + "Remove Content Directory Preset") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_PARENT, + "Remove the Content Directory Preset, used by all content inside the current working directory.") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_GAME, + "Remove Game Preset") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_GAME, + "Remove the Game Preset, used only for the specific game in question.") diff --git a/intl/msg_hash_pt_br.h b/intl/msg_hash_pt_br.h index 422d7eae8d..90443cf109 100644 --- a/intl/msg_hash_pt_br.h +++ b/intl/msg_hash_pt_br.h @@ -9291,3 +9291,33 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_AI_SERVICE_SPEECH_MODE, "Speech Mode" ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE, + "Remove ...") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE, + "Remove shader presets of a specific type.") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_GLOBAL, + "Remove Global Preset") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_GLOBAL, + "Remove the Global Preset, used by all content and all cores.") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_CORE, + "Remove Core Preset") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_CORE, + "Remove the Core Preset, used by all content ran with the currently loaded core.") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_PARENT, + "Remove Content Directory Preset") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_PARENT, + "Remove the Content Directory Preset, used by all content inside the current working directory.") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_GAME, + "Remove Game Preset") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_GAME, + "Remove the Game Preset, used only for the specific game in question.") diff --git a/intl/msg_hash_pt_pt.h b/intl/msg_hash_pt_pt.h index 9d231c6cbc..0e7a4693ad 100644 --- a/intl/msg_hash_pt_pt.h +++ b/intl/msg_hash_pt_pt.h @@ -3812,3 +3812,33 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_AI_SERVICE_SPEECH_MODE, "Speech Mode" ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE, + "Remove ...") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE, + "Remove shader presets of a specific type.") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_GLOBAL, + "Remove Global Preset") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_GLOBAL, + "Remove the Global Preset, used by all content and all cores.") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_CORE, + "Remove Core Preset") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_CORE, + "Remove the Core Preset, used by all content ran with the currently loaded core.") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_PARENT, + "Remove Content Directory Preset") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_PARENT, + "Remove the Content Directory Preset, used by all content inside the current working directory.") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_GAME, + "Remove Game Preset") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_GAME, + "Remove the Game Preset, used only for the specific game in question.") diff --git a/intl/msg_hash_ru.h b/intl/msg_hash_ru.h index 2755ff93b4..76a3323490 100644 --- a/intl/msg_hash_ru.h +++ b/intl/msg_hash_ru.h @@ -4010,3 +4010,33 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_AI_SERVICE_SPEECH_MODE, "Speech Mode" ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE, + "Remove ...") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE, + "Remove shader presets of a specific type.") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_GLOBAL, + "Remove Global Preset") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_GLOBAL, + "Remove the Global Preset, used by all content and all cores.") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_CORE, + "Remove Core Preset") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_CORE, + "Remove the Core Preset, used by all content ran with the currently loaded core.") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_PARENT, + "Remove Content Directory Preset") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_PARENT, + "Remove the Content Directory Preset, used by all content inside the current working directory.") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_GAME, + "Remove Game Preset") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_GAME, + "Remove the Game Preset, used only for the specific game in question.") diff --git a/intl/msg_hash_tr.h b/intl/msg_hash_tr.h index a5691924fb..1029e02e72 100644 --- a/intl/msg_hash_tr.h +++ b/intl/msg_hash_tr.h @@ -9016,3 +9016,33 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_AI_SERVICE_SPEECH_MODE, "Speech Mode" ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE, + "Remove ...") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE, + "Remove shader presets of a specific type.") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_GLOBAL, + "Remove Global Preset") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_GLOBAL, + "Remove the Global Preset, used by all content and all cores.") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_CORE, + "Remove Core Preset") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_CORE, + "Remove the Core Preset, used by all content ran with the currently loaded core.") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_PARENT, + "Remove Content Directory Preset") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_PARENT, + "Remove the Content Directory Preset, used by all content inside the current working directory.") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_GAME, + "Remove Game Preset") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_GAME, + "Remove the Game Preset, used only for the specific game in question.") diff --git a/intl/msg_hash_us.h b/intl/msg_hash_us.h index 6b870852bb..de704e7557 100644 --- a/intl/msg_hash_us.h +++ b/intl/msg_hash_us.h @@ -3872,6 +3872,10 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET, "Load Shader Preset" ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_SAVE, + "Save ..." + ) MSG_HASH( MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_SAVE_AS, "Save Shader Preset As" @@ -6588,6 +6592,10 @@ MSG_HASH( MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET, "Load a shader preset. The shader pipeline will be automatically set-up." ) +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_SAVE, + "Save shader preset as ..." + ) MSG_HASH( MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_SAVE_AS, "Save the current shader settings as a new shader preset." @@ -9515,3 +9523,39 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_AI_SERVICE_SPEECH_MODE, "Speech Mode" ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE, + "Remove ...") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE, + "Remove shader presets of a specific type.") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_GLOBAL, + "Remove Global Preset") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_GLOBAL, + "Remove the Global Preset, used by all content and all cores.") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_CORE, + "Remove Core Preset") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_CORE, + "Remove the Core Preset, used by all content ran with the currently loaded core.") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_PARENT, + "Remove Content Directory Preset") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_PARENT, + "Remove the Content Directory Preset, used by all content inside the current working directory.") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_GAME, + "Remove Game Preset") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_GAME, + "Remove the Game Preset, used only for the specific game in question.") +MSG_HASH( + MSG_SHADER_PRESET_REMOVED_SUCCESSFULLY, + "Shader preset removed successfully.") +MSG_HASH( + MSG_ERROR_REMOVING_SHADER_PRESET, + "Error removing shader preset.") diff --git a/intl/msg_hash_vn.h b/intl/msg_hash_vn.h index c49c3d7c22..d759edaaa0 100644 --- a/intl/msg_hash_vn.h +++ b/intl/msg_hash_vn.h @@ -3902,3 +3902,33 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_AI_SERVICE_SPEECH_MODE, "Speech Mode" ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE, + "Remove ...") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE, + "Remove shader presets of a specific type.") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_GLOBAL, + "Remove Global Preset") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_GLOBAL, + "Remove the Global Preset, used by all content and all cores.") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_CORE, + "Remove Core Preset") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_CORE, + "Remove the Core Preset, used by all content ran with the currently loaded core.") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_PARENT, + "Remove Content Directory Preset") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_PARENT, + "Remove the Content Directory Preset, used by all content inside the current working directory.") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_GAME, + "Remove Game Preset") +MSG_HASH( + MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_GAME, + "Remove the Game Preset, used only for the specific game in question.") diff --git a/menu/cbs/menu_cbs_deferred_push.c b/menu/cbs/menu_cbs_deferred_push.c index d923da96e4..fab062a660 100644 --- a/menu/cbs/menu_cbs_deferred_push.c +++ b/menu/cbs/menu_cbs_deferred_push.c @@ -80,6 +80,8 @@ static int (name)(menu_displaylist_info_t *info) \ generic_deferred_push(deferred_push_video_shader_preset_parameters, DISPLAYLIST_SHADER_PARAMETERS_PRESET) generic_deferred_push(deferred_push_video_shader_parameters, DISPLAYLIST_SHADER_PARAMETERS) +generic_deferred_push(deferred_push_video_shader_preset_save, DISPLAYLIST_SHADER_PRESET_SAVE) +generic_deferred_push(deferred_push_video_shader_preset_remove, DISPLAYLIST_SHADER_PRESET_REMOVE) generic_deferred_push(deferred_push_settings, DISPLAYLIST_SETTINGS_ALL) generic_deferred_push(deferred_push_shader_options, DISPLAYLIST_OPTIONS_SHADERS) generic_deferred_push(deferred_push_quick_menu_override_options, DISPLAYLIST_OPTIONS_OVERRIDES) @@ -1099,6 +1101,16 @@ static int menu_cbs_init_bind_deferred_push_compare_label( { BIND_ACTION_DEFERRED_PUSH(cbs, deferred_push_accounts_twitch_list); } + else if (strstr(label, + msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_VIDEO_SHADER_PRESET_SAVE_LIST))) + { + BIND_ACTION_DEFERRED_PUSH(cbs, deferred_push_video_shader_preset_save); + } + else if (strstr(label, + msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_VIDEO_SHADER_PRESET_REMOVE_LIST))) + { + BIND_ACTION_DEFERRED_PUSH(cbs, deferred_push_video_shader_preset_remove); + } else { if (cbs->enum_idx != MSG_UNKNOWN) @@ -1595,6 +1607,9 @@ static int menu_cbs_init_bind_deferred_push_compare_label( case MENU_LABEL_VIDEO_SHADER_PARAMETERS: BIND_ACTION_DEFERRED_PUSH(cbs, deferred_push_video_shader_parameters); break; + case MENU_LABEL_VIDEO_SHADER_PRESET_SAVE: + BIND_ACTION_DEFERRED_PUSH(cbs, deferred_push_video_shader_preset_save); + break; case MENU_LABEL_CORE_CHEAT_OPTIONS: BIND_ACTION_DEFERRED_PUSH(cbs, deferred_push_core_cheat_options); break; diff --git a/menu/cbs/menu_cbs_get_value.c b/menu/cbs/menu_cbs_get_value.c index ea2c22c136..99221a13af 100644 --- a/menu/cbs/menu_cbs_get_value.c +++ b/menu/cbs/menu_cbs_get_value.c @@ -1437,6 +1437,7 @@ static int menu_cbs_init_bind_get_string_representation_compare_label( case MENU_ENUM_LABEL_SHADER_OPTIONS: case MENU_ENUM_LABEL_VIDEO_SHADER_PARAMETERS: case MENU_ENUM_LABEL_VIDEO_SHADER_PRESET_PARAMETERS: + case MENU_ENUM_LABEL_VIDEO_SHADER_PRESET_SAVE: case MENU_ENUM_LABEL_VIDEO_SHADER_PRESET_SAVE_AS: case MENU_ENUM_LABEL_CHEAT_FILE_SAVE_AS: case MENU_ENUM_LABEL_FRONTEND_COUNTERS: diff --git a/menu/cbs/menu_cbs_ok.c b/menu/cbs/menu_cbs_ok.c index abc50466bc..b1e09656f2 100644 --- a/menu/cbs/menu_cbs_ok.c +++ b/menu/cbs/menu_cbs_ok.c @@ -300,6 +300,10 @@ static enum msg_hash_enums action_ok_dl_to_enum(unsigned lbl) return MENU_ENUM_LABEL_DEFERRED_IMAGES_LIST; case ACTION_OK_DL_CDROM_INFO_DETAIL_LIST: return MENU_ENUM_LABEL_DEFERRED_CDROM_INFO_LIST; + case ACTION_OK_DL_SHADER_PRESET_SAVE: + return MENU_ENUM_LABEL_DEFERRED_VIDEO_SHADER_PRESET_SAVE_LIST; + case ACTION_OK_DL_SHADER_PRESET_REMOVE: + return MENU_ENUM_LABEL_DEFERRED_VIDEO_SHADER_PRESET_REMOVE_LIST; default: break; } @@ -1044,6 +1048,8 @@ int generic_action_ok_displaylist_push(const char *path, case ACTION_OK_DL_IMAGES_LIST: case ACTION_OK_DL_LOAD_DISC_LIST: case ACTION_OK_DL_DUMP_DISC_LIST: + case ACTION_OK_DL_SHADER_PRESET_REMOVE: + case ACTION_OK_DL_SHADER_PRESET_SAVE: case ACTION_OK_DL_CDROM_INFO_LIST: action_ok_dl_lbl(action_ok_dl_to_enum(action_type), DISPLAYLIST_GENERIC); break; @@ -2701,6 +2707,51 @@ enum ACTION_OK_SHADER_PRESET_SAVE_GAME }; +enum +{ + ACTION_OK_SHADER_PRESET_REMOVE_GLOBAL = 0, + ACTION_OK_SHADER_PRESET_REMOVE_CORE, + ACTION_OK_SHADER_PRESET_REMOVE_PARENT, + ACTION_OK_SHADER_PRESET_REMOVE_GAME +}; + +static int generic_action_ok_shader_preset_remove(const char *path, + const char *label, unsigned type, size_t idx, size_t entry_idx, + unsigned action_type) +{ + enum auto_shader_type preset_type; + switch (action_type) + { + case ACTION_OK_SHADER_PRESET_REMOVE_GLOBAL: + preset_type = SHADER_PRESET_GLOBAL; + break; + case ACTION_OK_SHADER_PRESET_REMOVE_CORE: + preset_type = SHADER_PRESET_CORE; + break; + case ACTION_OK_SHADER_PRESET_REMOVE_PARENT: + preset_type = SHADER_PRESET_PARENT; + break; + case ACTION_OK_SHADER_PRESET_REMOVE_GAME: + preset_type = SHADER_PRESET_GAME; + break; + default: + return 0; + } + + if (menu_shader_manager_remove_auto_preset(preset_type)) + runloop_msg_queue_push( + msg_hash_to_str(MSG_SHADER_PRESET_REMOVED_SUCCESSFULLY), + 1, 100, true, + NULL, MESSAGE_QUEUE_ICON_DEFAULT, MESSAGE_QUEUE_CATEGORY_INFO); + else + runloop_msg_queue_push( + msg_hash_to_str(MSG_ERROR_REMOVING_SHADER_PRESET), + 1, 100, true, + NULL, MESSAGE_QUEUE_ICON_DEFAULT, MESSAGE_QUEUE_CATEGORY_INFO); + + return 0; +} + static int generic_action_ok_shader_preset_save(const char *path, const char *label, unsigned type, size_t idx, size_t entry_idx, unsigned action_type) @@ -2765,6 +2816,34 @@ static int action_ok_shader_preset_save_game(const char *path, return generic_action_ok_shader_preset_save(path, label, type, idx, entry_idx, ACTION_OK_SHADER_PRESET_SAVE_GAME); } + +static int action_ok_shader_preset_remove_global(const char *path, + const char *label, unsigned type, size_t idx, size_t entry_idx) +{ + return generic_action_ok_shader_preset_remove(path, label, type, + idx, entry_idx, ACTION_OK_SHADER_PRESET_REMOVE_GLOBAL); +} + +static int action_ok_shader_preset_remove_core(const char *path, + const char *label, unsigned type, size_t idx, size_t entry_idx) +{ + return generic_action_ok_shader_preset_remove(path, label, type, + idx, entry_idx, ACTION_OK_SHADER_PRESET_REMOVE_CORE); +} + +static int action_ok_shader_preset_remove_parent(const char *path, + const char *label, unsigned type, size_t idx, size_t entry_idx) +{ + return generic_action_ok_shader_preset_remove(path, label, type, + idx, entry_idx, ACTION_OK_SHADER_PRESET_REMOVE_PARENT); +} + +static int action_ok_shader_preset_remove_game(const char *path, + const char *label, unsigned type, size_t idx, size_t entry_idx) +{ + return generic_action_ok_shader_preset_remove(path, label, type, + idx, entry_idx, ACTION_OK_SHADER_PRESET_REMOVE_GAME); +} #endif static int generic_action_ok_remap_file_operation(const char *path, @@ -4525,6 +4604,8 @@ default_action_ok_func(action_ok_cdrom_info_list, ACTION_OK_DL_CDROM_INFO_DETAIL default_action_ok_func(action_ok_goto_video, ACTION_OK_DL_VIDEO_LIST) default_action_ok_func(action_ok_goto_music, ACTION_OK_DL_MUSIC_LIST) #if defined(HAVE_CG) || defined(HAVE_GLSL) || defined(HAVE_SLANG) || defined(HAVE_HLSL) +default_action_ok_func(action_ok_shader_preset_save, ACTION_OK_DL_SHADER_PRESET_SAVE) +default_action_ok_func(action_ok_shader_preset_remove, ACTION_OK_DL_SHADER_PRESET_REMOVE) default_action_ok_func(action_ok_shader_parameters, ACTION_OK_DL_SHADER_PARAMETERS) #endif default_action_ok_func(action_ok_parent_directory_push, ACTION_OK_DL_PARENT_DIRECTORY_PUSH) @@ -6351,6 +6432,16 @@ static int menu_cbs_init_bind_ok_compare_label(menu_file_list_cbs_t *cbs, case MENU_ENUM_LABEL_CHEAT_APPLY_CHANGES: BIND_ACTION_OK(cbs, action_ok_cheat_apply_changes); break; + case MENU_ENUM_LABEL_VIDEO_SHADER_PRESET_REMOVE: +#if defined(HAVE_CG) || defined(HAVE_GLSL) || defined(HAVE_SLANG) || defined(HAVE_HLSL) + BIND_ACTION_OK(cbs, action_ok_shader_preset_remove); +#endif + break; + case MENU_ENUM_LABEL_VIDEO_SHADER_PRESET_SAVE: +#if defined(HAVE_CG) || defined(HAVE_GLSL) || defined(HAVE_SLANG) || defined(HAVE_HLSL) + BIND_ACTION_OK(cbs, action_ok_shader_preset_save); +#endif + break; case MENU_ENUM_LABEL_VIDEO_SHADER_PRESET_SAVE_AS: #if defined(HAVE_CG) || defined(HAVE_GLSL) || defined(HAVE_SLANG) || defined(HAVE_HLSL) BIND_ACTION_OK(cbs, action_ok_shader_preset_save_as); @@ -6374,6 +6465,26 @@ static int menu_cbs_init_bind_ok_compare_label(menu_file_list_cbs_t *cbs, case MENU_ENUM_LABEL_VIDEO_SHADER_PRESET_SAVE_GAME: #if defined(HAVE_CG) || defined(HAVE_GLSL) || defined(HAVE_SLANG) || defined(HAVE_HLSL) BIND_ACTION_OK(cbs, action_ok_shader_preset_save_game); +#endif + break; + case MENU_ENUM_LABEL_VIDEO_SHADER_PRESET_REMOVE_GLOBAL: +#if defined(HAVE_CG) || defined(HAVE_GLSL) || defined(HAVE_SLANG) || defined(HAVE_HLSL) + BIND_ACTION_OK(cbs, action_ok_shader_preset_remove_global); +#endif + break; + case MENU_ENUM_LABEL_VIDEO_SHADER_PRESET_REMOVE_CORE: +#if defined(HAVE_CG) || defined(HAVE_GLSL) || defined(HAVE_SLANG) || defined(HAVE_HLSL) + BIND_ACTION_OK(cbs, action_ok_shader_preset_remove_core); +#endif + break; + case MENU_ENUM_LABEL_VIDEO_SHADER_PRESET_REMOVE_PARENT: +#if defined(HAVE_CG) || defined(HAVE_GLSL) || defined(HAVE_SLANG) || defined(HAVE_HLSL) + BIND_ACTION_OK(cbs, action_ok_shader_preset_remove_parent); +#endif + break; + case MENU_ENUM_LABEL_VIDEO_SHADER_PRESET_REMOVE_GAME: +#if defined(HAVE_CG) || defined(HAVE_GLSL) || defined(HAVE_SLANG) || defined(HAVE_HLSL) + BIND_ACTION_OK(cbs, action_ok_shader_preset_remove_game); #endif break; case MENU_ENUM_LABEL_CHEAT_FILE_SAVE_AS: @@ -6635,6 +6746,11 @@ static int menu_cbs_init_bind_ok_compare_label(menu_file_list_cbs_t *cbs, case MENU_LABEL_UPDATE_LAKKA: BIND_ACTION_OK(cbs, action_ok_lakka_list); break; +#endif + case MENU_LABEL_VIDEO_SHADER_PRESET_SAVE: +#if defined(HAVE_CG) || defined(HAVE_GLSL) || defined(HAVE_SLANG) || defined(HAVE_HLSL) + BIND_ACTION_OK(cbs, action_ok_shader_preset_save); + break; #endif case MENU_LABEL_VIDEO_SHADER_PARAMETERS: case MENU_LABEL_VIDEO_SHADER_PRESET_PARAMETERS: diff --git a/menu/cbs/menu_cbs_sublabel.c b/menu/cbs/menu_cbs_sublabel.c index f3e16174c4..0481356cd5 100644 --- a/menu/cbs/menu_cbs_sublabel.c +++ b/menu/cbs/menu_cbs_sublabel.c @@ -587,11 +587,17 @@ default_sublabel_macro(action_bind_sublabel_shader_apply_changes, default_sublabel_macro(action_bind_sublabel_shader_watch_for_changes, MENU_ENUM_SUBLABEL_SHADER_WATCH_FOR_CHANGES) default_sublabel_macro(action_bind_sublabel_shader_num_passes, MENU_ENUM_SUBLABEL_VIDEO_SHADER_NUM_PASSES) default_sublabel_macro(action_bind_sublabel_shader_preset, MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET) +default_sublabel_macro(action_bind_sublabel_shader_preset_save, MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_SAVE) +default_sublabel_macro(action_bind_sublabel_shader_preset_remove, MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE) default_sublabel_macro(action_bind_sublabel_shader_preset_save_as, MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_SAVE_AS) default_sublabel_macro(action_bind_sublabel_shader_preset_save_global, MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_SAVE_GLOBAL) default_sublabel_macro(action_bind_sublabel_shader_preset_save_core, MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_SAVE_CORE) default_sublabel_macro(action_bind_sublabel_shader_preset_save_parent, MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_SAVE_PARENT) default_sublabel_macro(action_bind_sublabel_shader_preset_save_game, MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_SAVE_GAME) +default_sublabel_macro(action_bind_sublabel_shader_preset_remove_global, MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_GLOBAL) +default_sublabel_macro(action_bind_sublabel_shader_preset_remove_core, MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_CORE) +default_sublabel_macro(action_bind_sublabel_shader_preset_remove_parent, MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_PARENT) +default_sublabel_macro(action_bind_sublabel_shader_preset_remove_game, MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_GAME) default_sublabel_macro(action_bind_sublabel_shader_parameters, MENU_ENUM_SUBLABEL_VIDEO_SHADER_PARAMETERS) default_sublabel_macro(action_bind_sublabel_shader_preset_parameters, MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_PARAMETERS) default_sublabel_macro(action_bind_sublabel_cheat_apply_changes, MENU_ENUM_SUBLABEL_CHEAT_APPLY_CHANGES) @@ -1271,6 +1277,15 @@ int menu_cbs_init_bind_sublabel(menu_file_list_cbs_t *cbs, case MENU_ENUM_LABEL_VIDEO_SHADER_PRESET_PARAMETERS: BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_shader_preset_parameters); break; + case MENU_ENUM_LABEL_VIDEO_SHADER_PRESET_SAVE: + BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_shader_preset_save); + break; + case MENU_ENUM_LABEL_VIDEO_SHADER_PRESET_REMOVE: + BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_shader_preset_remove); + break; + case MENU_ENUM_LABEL_VIDEO_SHADER_PRESET_SAVE_AS: + BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_shader_preset_save_as); + break; case MENU_ENUM_LABEL_VIDEO_SHADER_PRESET_SAVE_GLOBAL: BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_shader_preset_save_global); break; @@ -1283,8 +1298,17 @@ int menu_cbs_init_bind_sublabel(menu_file_list_cbs_t *cbs, case MENU_ENUM_LABEL_VIDEO_SHADER_PRESET_SAVE_GAME: BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_shader_preset_save_game); break; - case MENU_ENUM_LABEL_VIDEO_SHADER_PRESET_SAVE_AS: - BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_shader_preset_save_as); + case MENU_ENUM_LABEL_VIDEO_SHADER_PRESET_REMOVE_GLOBAL: + BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_shader_preset_remove_global); + break; + case MENU_ENUM_LABEL_VIDEO_SHADER_PRESET_REMOVE_CORE: + BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_shader_preset_remove_core); + break; + case MENU_ENUM_LABEL_VIDEO_SHADER_PRESET_REMOVE_PARENT: + BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_shader_preset_remove_parent); + break; + case MENU_ENUM_LABEL_VIDEO_SHADER_PRESET_REMOVE_GAME: + BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_shader_preset_remove_game); break; case MENU_ENUM_LABEL_VIDEO_SHADER_PRESET: BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_shader_preset); diff --git a/menu/cbs/menu_cbs_title.c b/menu/cbs/menu_cbs_title.c index 7d5e9935a7..c671f27c80 100644 --- a/menu/cbs/menu_cbs_title.c +++ b/menu/cbs/menu_cbs_title.c @@ -268,6 +268,7 @@ default_title_copy_macro(action_get_title_input_settings, MENU_ENUM_LABE default_title_copy_macro(action_get_title_cheevos_list, MENU_ENUM_LABEL_VALUE_ACHIEVEMENT_LIST) default_title_copy_macro(action_get_title_video_shader_parameters,MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PARAMETERS) default_title_copy_macro(action_get_title_video_shader_preset_parameters,MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_PARAMETERS) +default_title_copy_macro(action_get_title_video_shader_preset_save,MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_SAVE) #if defined(HAVE_LAKKA_SWITCH) || defined(HAVE_LIBNX) default_title_macro(action_get_title_switch_cpu_profile, MENU_ENUM_LABEL_VALUE_SWITCH_CPU_PROFILE) @@ -948,6 +949,9 @@ static int menu_cbs_init_bind_title_compare_label(menu_file_list_cbs_t *cbs, case MENU_ENUM_LABEL_VIDEO_SHADER_PRESET_PARAMETERS: BIND_ACTION_GET_TITLE(cbs, action_get_title_action_generic); break; + case MENU_ENUM_LABEL_VIDEO_SHADER_PRESET_SAVE: + BIND_ACTION_GET_TITLE(cbs, action_get_title_action_generic); + break; case MENU_ENUM_LABEL_DISK_IMAGE_APPEND: BIND_ACTION_GET_TITLE(cbs, action_get_title_disk_image_append); break; @@ -1269,6 +1273,9 @@ static int menu_cbs_init_bind_title_compare_label(menu_file_list_cbs_t *cbs, case MENU_LABEL_VIDEO_SHADER_PRESET_PARAMETERS: BIND_ACTION_GET_TITLE(cbs, action_get_title_video_shader_preset_parameters); break; + case MENU_LABEL_VIDEO_SHADER_PRESET_SAVE: + BIND_ACTION_GET_TITLE(cbs, action_get_title_video_shader_preset_save); + break; case MENU_LABEL_MANAGEMENT: BIND_ACTION_GET_TITLE(cbs, action_get_title_action_generic); break; diff --git a/menu/drivers/ozone/ozone_texture.c b/menu/drivers/ozone/ozone_texture.c index 54875bcca3..fc3dc7a5f3 100644 --- a/menu/drivers/ozone/ozone_texture.c +++ b/menu/drivers/ozone/ozone_texture.c @@ -200,6 +200,7 @@ menu_texture_item ozone_entries_icon_get_texture(ozone_handle_t *ozone, case MENU_ENUM_LABEL_SAVE_CURRENT_CONFIG: case MENU_ENUM_LABEL_SAVE_NEW_CONFIG: case MENU_ENUM_LABEL_CONFIG_SAVE_ON_EXIT: + case MENU_ENUM_LABEL_VIDEO_SHADER_PRESET_SAVE: case MENU_ENUM_LABEL_VIDEO_SHADER_PRESET_SAVE_AS: case MENU_ENUM_LABEL_CHEAT_FILE_SAVE_AS: return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_SAVING]; diff --git a/menu/drivers/xmb.c b/menu/drivers/xmb.c index 710ddd9151..7accd1b49d 100644 --- a/menu/drivers/xmb.c +++ b/menu/drivers/xmb.c @@ -2500,6 +2500,7 @@ static uintptr_t xmb_icon_get_id(xmb_handle_t *xmb, case MENU_ENUM_LABEL_SAVE_CURRENT_CONFIG: case MENU_ENUM_LABEL_SAVE_NEW_CONFIG: case MENU_ENUM_LABEL_CONFIG_SAVE_ON_EXIT: + case MENU_ENUM_LABEL_VIDEO_SHADER_PRESET_SAVE: case MENU_ENUM_LABEL_VIDEO_SHADER_PRESET_SAVE_AS: case MENU_ENUM_LABEL_CHEAT_FILE_SAVE_AS: return xmb->textures.list[XMB_TEXTURE_SAVING]; diff --git a/menu/menu_cbs.h b/menu/menu_cbs.h index 800a846d9d..92b36da4c3 100644 --- a/menu/menu_cbs.h +++ b/menu/menu_cbs.h @@ -70,6 +70,8 @@ enum ACTION_OK_DL_MUSIC_LIST, ACTION_OK_DL_SHADER_PARAMETERS, ACTION_OK_DL_SHADER_PRESET, + ACTION_OK_DL_SHADER_PRESET_SAVE, + ACTION_OK_DL_SHADER_PRESET_REMOVE, ACTION_OK_DL_GENERIC, ACTION_OK_DL_PUSH_DEFAULT, ACTION_OK_DL_FILE_BROWSER_SELECT_FILE, diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index 983395d56c..b5055f51e6 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -6165,6 +6165,21 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, MENU_ENUM_LABEL_VIDEO_SHADER_PRESET, FILE_TYPE_PATH, 0, 0)) count++; + + if (menu_entries_append_enum(info->list, + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_SAVE), + msg_hash_to_str(MENU_ENUM_LABEL_VIDEO_SHADER_PRESET_SAVE), + MENU_ENUM_LABEL_VIDEO_SHADER_PRESET_SAVE, + MENU_SETTING_ACTION, 0, 0)) + count++; + + if (menu_entries_append_enum(info->list, + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE), + msg_hash_to_str(MENU_ENUM_LABEL_VIDEO_SHADER_PRESET_REMOVE), + MENU_ENUM_LABEL_VIDEO_SHADER_PRESET_REMOVE, + MENU_SETTING_ACTION, 0, 0)) + count++; + if (menu_entries_append_enum(info->list, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_SAVE_AS), msg_hash_to_str(MENU_ENUM_LABEL_VIDEO_SHADER_PRESET_SAVE_AS), @@ -8158,6 +8173,84 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, info->need_push = true; break; + case DISPLAYLIST_SHADER_PRESET_REMOVE: + menu_entries_ctl(MENU_ENTRIES_CTL_CLEAR, info->list); + { +#if defined(HAVE_CG) || defined(HAVE_GLSL) || defined(HAVE_SLANG) || defined(HAVE_HLSL) + if (menu_entries_append_enum(info->list, + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_GLOBAL), + msg_hash_to_str(MENU_ENUM_LABEL_VIDEO_SHADER_PRESET_REMOVE_GLOBAL), + MENU_ENUM_LABEL_VIDEO_SHADER_PRESET_REMOVE_GLOBAL, + MENU_SETTING_ACTION, 0, 0)) + count++; + + if (menu_entries_append_enum(info->list, + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_CORE), + msg_hash_to_str(MENU_ENUM_LABEL_VIDEO_SHADER_PRESET_REMOVE_CORE), + MENU_ENUM_LABEL_VIDEO_SHADER_PRESET_REMOVE_CORE, + MENU_SETTING_ACTION, 0, 0)) + count++; + + if (menu_entries_append_enum(info->list, + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_PARENT), + msg_hash_to_str(MENU_ENUM_LABEL_VIDEO_SHADER_PRESET_REMOVE_PARENT), + MENU_ENUM_LABEL_VIDEO_SHADER_PRESET_REMOVE_PARENT, + MENU_SETTING_ACTION, 0, 0)) + count++; + + if (menu_entries_append_enum(info->list, + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_GAME), + msg_hash_to_str(MENU_ENUM_LABEL_VIDEO_SHADER_PRESET_REMOVE_GAME), + MENU_ENUM_LABEL_VIDEO_SHADER_PRESET_REMOVE_GAME, + MENU_SETTING_ACTION, 0, 0)) + count++; +#endif + } + + ret = 0; + info->need_refresh = true; + info->need_push = true; + break; + case DISPLAYLIST_SHADER_PRESET_SAVE: + menu_entries_ctl(MENU_ENTRIES_CTL_CLEAR, info->list); + { +#if defined(HAVE_CG) || defined(HAVE_GLSL) || defined(HAVE_SLANG) || defined(HAVE_HLSL) + if (menu_entries_append_enum(info->list, + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_SAVE_AS), + msg_hash_to_str(MENU_ENUM_LABEL_VIDEO_SHADER_PRESET_SAVE_AS), + MENU_ENUM_LABEL_VIDEO_SHADER_PRESET_SAVE_AS, + MENU_SETTING_ACTION, 0, 0)) + count++; + if (menu_entries_append_enum(info->list, + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_SAVE_GLOBAL), + msg_hash_to_str(MENU_ENUM_LABEL_VIDEO_SHADER_PRESET_SAVE_GLOBAL), + MENU_ENUM_LABEL_VIDEO_SHADER_PRESET_SAVE_GLOBAL, + MENU_SETTING_ACTION, 0, 0)) + count++; + if (menu_entries_append_enum(info->list, + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_SAVE_CORE), + msg_hash_to_str(MENU_ENUM_LABEL_VIDEO_SHADER_PRESET_SAVE_CORE), + MENU_ENUM_LABEL_VIDEO_SHADER_PRESET_SAVE_CORE, + MENU_SETTING_ACTION, 0, 0)) + count++; + if (menu_entries_append_enum(info->list, + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_SAVE_PARENT), + msg_hash_to_str(MENU_ENUM_LABEL_VIDEO_SHADER_PRESET_SAVE_PARENT), + MENU_ENUM_LABEL_VIDEO_SHADER_PRESET_SAVE_PARENT, + MENU_SETTING_ACTION, 0, 0)) + count++; + if (menu_entries_append_enum(info->list, + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_SAVE_GAME), + msg_hash_to_str(MENU_ENUM_LABEL_VIDEO_SHADER_PRESET_SAVE_GAME), + MENU_ENUM_LABEL_VIDEO_SHADER_PRESET_SAVE_GAME, + MENU_SETTING_ACTION, 0, 0)) + count++; +#endif + } + ret = 0; + info->need_refresh = true; + info->need_push = true; + break; case DISPLAYLIST_SHADER_PARAMETERS: case DISPLAYLIST_SHADER_PARAMETERS_PRESET: menu_entries_ctl(MENU_ENTRIES_CTL_CLEAR, info->list); diff --git a/menu/menu_displaylist.h b/menu/menu_displaylist.h index 0bd3ca1628..8ee8e381ba 100644 --- a/menu/menu_displaylist.h +++ b/menu/menu_displaylist.h @@ -124,10 +124,12 @@ enum menu_displaylist_ctl_state #endif DISPLAYLIST_SHADER_PARAMETERS, DISPLAYLIST_SHADER_PARAMETERS_PRESET, + DISPLAYLIST_SHADER_PRESET_SAVE, + DISPLAYLIST_SHADER_PRESET_REMOVE, DISPLAYLIST_NETWORK_INFO, DISPLAYLIST_SYSTEM_INFO, DISPLAYLIST_ACHIEVEMENT_LIST, - DISPLAYLIST_USER_BINDS_LIST, + DISPLAYLIST_USER_BINDS_LIST, DISPLAYLIST_ACCOUNTS_LIST, DISPLAYLIST_MIXER_STREAM_SETTINGS_LIST, DISPLAYLIST_DRIVER_SETTINGS_LIST, diff --git a/menu/menu_shader.c b/menu/menu_shader.c index 4ebfd1eba4..399c9fbde6 100644 --- a/menu/menu_shader.c +++ b/menu/menu_shader.c @@ -316,22 +316,9 @@ static bool menu_shader_manager_save_preset_internal( return ret; } -/** - * menu_shader_manager_save_auto_preset: - * @shader : shader to save - * @type : type of shader preset which determines save path - * @apply : immediately set preset after saving - * - * Save a shader as an auto-shader to it's appropriate path: - * SHADER_PRESET_GLOBAL: /presets/global - * SHADER_PRESET_CORE: /presets// - * SHADER_PRESET_PARENT: /presets// - * SHADER_PRESET_GAME: /presets// - * Needs to be consistent with retroarch_load_shader_preset() - * Auto-shaders will be saved as a reference if possible - **/ -bool menu_shader_manager_save_auto_preset(const struct video_shader *shader, - enum auto_shader_type type, bool apply) +/** Saves or deletes an auto-shader, save = false requires no other parameters */ +static bool menu_shader_manager_operate_auto_preset(bool save, + const struct video_shader *shader, enum auto_shader_type type, bool apply) { char tmp[PATH_MAX_LENGTH]; char directory[PATH_MAX_LENGTH]; @@ -392,10 +379,61 @@ bool menu_shader_manager_save_auto_preset(const struct video_shader *shader, return false; } - if (!path_is_directory(directory)) - path_mkdir(directory); + if (save) + { + if (!path_is_directory(directory)) + path_mkdir(directory); - return menu_shader_manager_save_preset_internal(shader, file, apply, true); + return menu_shader_manager_save_preset_internal(shader, file, apply, true); + } + else + { + char *end = file + strlen(file); + size_t i; + bool success = false; + + static enum rarch_shader_type shader_types[] = + { + RARCH_SHADER_GLSL, RARCH_SHADER_SLANG, RARCH_SHADER_CG + }; + + /* remove all supported auto-shaders of given type */ + for (i = 0; i < ARRAY_SIZE(shader_types); i++) + { + const char *preset_ext; + + if (!video_shader_is_supported(shader_types[i])) + continue; + + preset_ext = video_shader_get_preset_extension(shader_types[i]); + strlcpy(end, preset_ext, sizeof(file) - (end-file)); + + if (!filestream_delete(file)) + success = true; + } + + return success; + } +} + +/** + * menu_shader_manager_save_auto_preset: + * @shader : shader to save + * @type : type of shader preset which determines save path + * @apply : immediately set preset after saving + * + * Save a shader as an auto-shader to it's appropriate path: + * SHADER_PRESET_GLOBAL: /presets/global + * SHADER_PRESET_CORE: /presets// + * SHADER_PRESET_PARENT: /presets// + * SHADER_PRESET_GAME: /presets// + * Needs to be consistent with retroarch_load_shader_preset() + * Auto-shaders will be saved as a reference if possible + **/ +bool menu_shader_manager_save_auto_preset(const struct video_shader *shader, + enum auto_shader_type type, bool apply) +{ + return menu_shader_manager_operate_auto_preset(true, shader, type, apply); } /** @@ -413,6 +451,17 @@ bool menu_shader_manager_save_preset(const struct video_shader *shader, return menu_shader_manager_save_preset_internal(shader, basename, apply, false); } +/** + * menu_shader_manager_remove_auto_preset: + * @type : type of shader preset to delete + * + * Deletes an auto-shader. + **/ +bool menu_shader_manager_remove_auto_preset(enum auto_shader_type type) +{ + return menu_shader_manager_operate_auto_preset(false, NULL, type, false); +} + int menu_shader_manager_clear_num_passes(struct video_shader *shader) { bool refresh = false; diff --git a/msg_hash.h b/msg_hash.h index 97476ca55f..ec67ab3b41 100644 --- a/msg_hash.h +++ b/msg_hash.h @@ -334,9 +334,11 @@ enum msg_hash_enums MSG_REMAP_FILE_SAVED_SUCCESSFULLY, MSG_REMAP_FILE_REMOVED_SUCCESSFULLY, MSG_SHADER_PRESET_SAVED_SUCCESSFULLY, + MSG_SHADER_PRESET_REMOVED_SUCCESSFULLY, MSG_ERROR_SAVING_REMAP_FILE, MSG_ERROR_REMOVING_REMAP_FILE, MSG_ERROR_SAVING_SHADER_PRESET, + MSG_ERROR_REMOVING_SHADER_PRESET, MSG_FAILED_TO_CREATE_THE_DIRECTORY, MSG_ERROR_SAVING_CORE_OPTIONS_FILE, MSG_CORE_OPTIONS_FILE_CREATED_SUCCESSFULLY, @@ -1171,6 +1173,8 @@ enum msg_hash_enums MENU_LABEL(BROWSE_URL), MENU_LABEL(BROWSE_START), /* Deferred */ + MENU_ENUM_LABEL_DEFERRED_VIDEO_SHADER_PRESET_REMOVE_LIST, + MENU_ENUM_LABEL_DEFERRED_VIDEO_SHADER_PRESET_SAVE_LIST, MENU_ENUM_LABEL_DEFERRED_CDROM_INFO_LIST, MENU_ENUM_LABEL_DEFERRED_CDROM_INFO_DETAIL_LIST, MENU_ENUM_LABEL_DEFERRED_LOAD_DISC_LIST, @@ -1939,6 +1943,12 @@ enum msg_hash_enums MENU_ENUM_LABEL_VALUE_UNABLE_TO_READ_COMPRESSED_FILE, + MENU_LABEL(VIDEO_SHADER_PRESET_REMOVE), + MENU_LABEL(VIDEO_SHADER_PRESET_REMOVE_GLOBAL), + MENU_LABEL(VIDEO_SHADER_PRESET_REMOVE_CORE), + MENU_LABEL(VIDEO_SHADER_PRESET_REMOVE_PARENT), + MENU_LABEL(VIDEO_SHADER_PRESET_REMOVE_GAME), + MENU_LABEL(VIDEO_SHADER_PRESET_SAVE), MENU_LABEL(VIDEO_SHADER_PRESET_SAVE_AS), MENU_LABEL(VIDEO_SHADER_PRESET_SAVE_GLOBAL), MENU_LABEL(VIDEO_SHADER_PRESET_SAVE_CORE), @@ -2663,6 +2673,7 @@ enum msg_hash_enums #define MENU_LABEL_VIDEO_SHADER_NUM_PASSES 0x79b2992fU #define MENU_LABEL_VIDEO_SHADER_PARAMETERS 0x9895c3e5U #define MENU_LABEL_VIDEO_SHADER_PRESET_PARAMETERS 0xd18158d7U +#define MENU_LABEL_VIDEO_SHADER_PRESET_SAVE 0xd18158d8U /* test */ #define MENU_LABEL_VIDEO_SHADER_PASS 0x4fa31028U #define MENU_LABEL_VIDEO_SHADER_PRESET 0xc5d3bae4U #ifdef HAVE_VIDEO_LAYOUT