From 04045059eafabc27f794a1ac64c91e50a8a87ee0 Mon Sep 17 00:00:00 2001 From: XorTroll Date: Thu, 4 Jul 2024 13:25:23 +0200 Subject: [PATCH] Fox font issues, change album icons again --- assets/default-theme/Main/EntryIcon/Album.xcf | Bin 13515 -> 12679 bytes assets/default-theme/Main/QuickIcon/Album.xcf | Bin 5947 -> 6095 bytes assets/orig/Album.png | Bin 0 -> 13788 bytes libs/Plutonium | 2 +- libs/uCommon/include/ul/ul_Include.hpp | 24 +++++- libs/uCommon/source/ul/cfg/cfg_Config.cpp | 3 + projects/uManager/source/main.cpp | 4 +- projects/uMenu/romfs/default/sound/BGM.json | 22 ----- .../romfs/default/ui/Main/EntryIcon/Album.png | Bin 5977 -> 5492 bytes .../romfs/default/ui/Main/QuickIcon/Album.png | Bin 6176 -> 14736 bytes projects/uMenu/source/main.cpp | 18 ++++- .../uMenu/source/ul/menu/ui/ui_EntryMenu.cpp | 1 - .../source/ul/menu/ui/ui_MenuApplication.cpp | 76 +++++++++--------- 13 files changed, 83 insertions(+), 67 deletions(-) create mode 100644 assets/orig/Album.png delete mode 100644 projects/uMenu/romfs/default/sound/BGM.json diff --git a/assets/default-theme/Main/EntryIcon/Album.xcf b/assets/default-theme/Main/EntryIcon/Album.xcf index edb8aec2f4e82382d37e1b08e4d388f589564652..1babb01c30a02cbe144f950c3d5fb34faaf83d9a 100644 GIT binary patch literal 12679 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 literal 13515 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 diff --git a/assets/default-theme/Main/QuickIcon/Album.xcf b/assets/default-theme/Main/QuickIcon/Album.xcf index 74e46cc95cfe33540c6cf40ab6e576e52d6a09b7..9b19f9733a5b6946e3e045df72df610f1cacd252 100644 GIT binary patch literal 6095 zcmc&&3viTGmj1ib>GXg5opc@yXu28kB~m>NhJ z5)hRUhljkwBN(0v!I@Ef%&cok5JV9K32}JIMiJx{SV+=&be<%n|FhriZpaVCl+IRd z?VtMY`OdlbzyCS+p8Mz&6;GS)ojqxach;EfYz5Ec7$mO(+EbA{KNQ(jQyEh(5*IC1zt%r2fX>YwBg zje4lKyzJ4!8Tkd%rcW&#o_oI+e>tPk^sm1XdGVhMONz>$9iE##X3P(1{;$Q8e^~2B zW)v5eloymEE_D7qT|ZWc*_^GGQMoo^pYZ3 zZIlHbGay$B13t;~UPg%(1xUMmRjwq-g-*FK6fxgTzlqkR?!QADm`v4CyHm!CC-F#B zrbu5S&*Q{zWo}O*zr%7H9 z$r0whDaGsJHPpQZOH7K_#Adv|8EqjQn|YIyc%#@XHo>}yH#o?;No>ToHrgo_(!J42 z_Kji#+}ps=hkzw*FszRw?fLc24Pw28CdA-hFV;Z={Od%Og~nI$tKd~amamGnr~~|K zMI{)JRmmiIW~H`*#2O1_tO-|Aj2TI+#@AN!8r$l)2v1urZM+8BDhs8qGLb5=lA$G| zG!w6ihm0q&Qd$y-E6gjQRbZeiFtjU873PSRRAD7vWUNRau>x_eu#<5`l)G1OWm?4Q zTEP`VNG!*wEFT(?j^(@zY#Byv*|3PTE#u{PkyvUW>r!5JH$6^Sv9#cKvfjp|zZ=7Q zkP?3e-j9O+GwTB|i4TDtal|$8J1{&ujHK1GYg*on#5$u%lz zJ8Nt^ktDl#HyVB9+J$I#+jb#GpgVW-E<5qZw%z=(C89gYx?Ai)%^u{+9`Pys|CB$$ z{70CZ#HV5}Y3?xp$atfIPNvDuIr;$6S`CBZ(Z&gTG&Y;KBo->BiCdh;{45@y{XW`p- zW-^1tlX{lVA*aqFr_Pw63uvBm$f>iYb7oR6@OcD>(n^N&+J*B-ri(CKv{U%Ii|3-6 z`yw|WwHh!`4SX4?bqRxci5rkom%%RcC9o?NvR~oLNUy6FvR&myq*o)-tC6qD^fI(% zv?md_WwoLVX0;%3f6=&V4gN^#nRX{6nsJq{x;DL?Kb$^MF>_MvO?Hjpl61(t{6c+ zz>pC_K0s0kvk#dD-70wpG9l#YFoci^p@a^Gl(v)(GbMCj*1?lIkOLueO!IUg2SO&) z%etfv4Ba&&T8K^r(TV8~b#_KIcPF=C`eAoDy^K@(%>TY+UtQf}7KNJ=x%cY2r}7?n z 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 diff --git a/assets/orig/Album.png b/assets/orig/Album.png new file mode 100644 index 0000000000000000000000000000000000000000..8c8ae589a32262206dcde4fd3b4b00058787658f GIT binary patch literal 13788 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 literal 0 HcmV?d00001 diff --git a/libs/Plutonium b/libs/Plutonium index 2af5676..64fa19f 160000 --- a/libs/Plutonium +++ b/libs/Plutonium @@ -1 +1 @@ -Subproject commit 2af5676542d83472c670a7e4973a220680d5d6af +Subproject commit 64fa19fd57f4696fa56fb8e24e037cc1a1af5527 diff --git a/libs/uCommon/include/ul/ul_Include.hpp b/libs/uCommon/include/ul/ul_Include.hpp index d12adb8..bfc57ba 100644 --- a/libs/uCommon/include/ul/ul_Include.hpp +++ b/libs/uCommon/include/ul/ul_Include.hpp @@ -26,8 +26,28 @@ namespace ul { constexpr const char ApplicationCachePath[] = "sdmc:/ulaunch/cache/app"; constexpr const char HomebrewCachePath[] = "sdmc:/ulaunch/cache/hb"; constexpr const char AccountCachePath[] = "sdmc:/ulaunch/cache/acc"; - constexpr const char ActiveThemeCachePath[] = "sdmc:/ulaunch/cache/theme"; - constexpr const char ThemePreviewCachePath[] = "sdmc:/ulaunch/cache/themepreview"; + constexpr const char ThemePreviewCachePath[] = "sdmc:/ulaunch/cache/preview"; + constexpr const char ActiveThemeCachePath[] = "sdmc:/ulaunch/cache/active"; + constexpr const char *ActiveThemeCacheSubfolderPaths[] = { + "sdmc:/ulaunch/cache/active/theme", + "sdmc:/ulaunch/cache/active/ui", + "sdmc:/ulaunch/cache/active/ui/Main", + "sdmc:/ulaunch/cache/active/ui/Main/EntryIcon", + "sdmc:/ulaunch/cache/active/ui/Main/OverIcon", + "sdmc:/ulaunch/cache/active/ui/Main/QuickIcon", + "sdmc:/ulaunch/cache/active/ui/Main/TopIcon", + "sdmc:/ulaunch/cache/active/ui/Main/TopIcon/Battery", + "sdmc:/ulaunch/cache/active/ui/Main/TopIcon/Connection", + "sdmc:/ulaunch/cache/active/ui/Main/TopMenuBackground", + "sdmc:/ulaunch/cache/active/ui/Startup" + "sdmc:/ulaunch/cache/active/ui/Themes", + "sdmc:/ulaunch/cache/active/ui/Settings", + "sdmc:/ulaunch/cache/active/sound", + "sdmc:/ulaunch/cache/active/sound/Main", + "sdmc:/ulaunch/cache/active/sound/Startup" + "sdmc:/ulaunch/cache/active/sound/Themes", + "sdmc:/ulaunch/cache/active/sound/Settings", + }; constexpr const char ManagerLanguagesPath[] = "sdmc:/ulaunch/lang/uManager"; diff --git a/libs/uCommon/source/ul/cfg/cfg_Config.cpp b/libs/uCommon/source/ul/cfg/cfg_Config.cpp index 125ad99..4314319 100644 --- a/libs/uCommon/source/ul/cfg/cfg_Config.cpp +++ b/libs/uCommon/source/ul/cfg/cfg_Config.cpp @@ -182,6 +182,9 @@ namespace ul::cfg { void RemoveActiveThemeCache() { fs::CleanDirectory(ActiveThemeCachePath); + for(u32 i = 0; i < std::size(ActiveThemeCacheSubfolderPaths); i++) { + fs::CreateDirectory(ActiveThemeCacheSubfolderPaths[i]); + } } void LoadLanguageJsons(const std::string &lang_base, util::JSON &lang, util::JSON &def) { diff --git a/projects/uManager/source/main.cpp b/projects/uManager/source/main.cpp index fc48941..8b82594 100644 --- a/projects/uManager/source/main.cpp +++ b/projects/uManager/source/main.cpp @@ -31,8 +31,8 @@ int main() { auto renderer_opts = pu::ui::render::RendererInitOptions(SDL_INIT_EVERYTHING, pu::ui::render::RendererHardwareFlags); renderer_opts.UseImage(pu::ui::render::IMGAllFlags); - renderer_opts.UseTTF(); - renderer_opts.SetExtraDefaultFontSize(35); + renderer_opts.AddDefaultAllSharedFonts(); + renderer_opts.AddExtraDefaultFontSize(35); renderer_opts.UseRomfs(); auto renderer = pu::ui::render::Renderer::New(renderer_opts); diff --git a/projects/uMenu/romfs/default/sound/BGM.json b/projects/uMenu/romfs/default/sound/BGM.json deleted file mode 100644 index c70b365..0000000 --- a/projects/uMenu/romfs/default/sound/BGM.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "main_menu": { - "bgm_loop": true, - "bgm_fade_in_ms": 1500, - "bgm_fade_out_ms": 500 - }, - "startup_menu": { - "bgm_loop": false, - "bgm_fade_in_ms": 1500, - "bgm_fade_out_ms": 500 - }, - "themes_menu": { - "bgm_loop": true, - "bgm_fade_in_ms": 1500, - "bgm_fade_out_ms": 500 - }, - "settings_menu": { - "bgm_loop": true, - "bgm_fade_in_ms": 1500, - "bgm_fade_out_ms": 500 - } -} \ No newline at end of file diff --git a/projects/uMenu/romfs/default/ui/Main/EntryIcon/Album.png b/projects/uMenu/romfs/default/ui/Main/EntryIcon/Album.png index fe4d1da5f230e556af39503ddf04188a44f9a0e3..6eaee43024eec1161f6a6a31e2e293dec60c459e 100644 GIT binary patch literal 5492 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.size()) { const auto &entry = this->cur_entries.at(idx); if(!entry.Is()) { diff --git a/projects/uMenu/source/ul/menu/ui/ui_MenuApplication.cpp b/projects/uMenu/source/ul/menu/ui/ui_MenuApplication.cpp index c9dd46b..c79684b 100644 --- a/projects/uMenu/source/ul/menu/ui/ui_MenuApplication.cpp +++ b/projects/uMenu/source/ul/menu/ui/ui_MenuApplication.cpp @@ -38,43 +38,47 @@ namespace ul::menu::ui { } this->bgm_json = ul::util::JSON::object(); - ul::util::LoadJSONFromFile(this->bgm_json, TryGetActiveThemeResource("sound/BGM.json")); - - #define _LOAD_MENU_BGM(menu, bgm_name) { \ - if(this->bgm_json.count(#menu)) { \ - const auto menu_json = this->bgm_json[#menu]; \ - this->menu##_bgm.bgm_loop = menu_json.value("bgm_loop", DefaultBgmLoop); \ - this->menu##_bgm.bgm_fade_in_ms = menu_json.value("bgm_fade_in_ms", DefaultBgmFadeInMs); \ - this->menu##_bgm.bgm_fade_in_ms = menu_json.value("bgm_fade_out_ms", DefaultBgmFadeOutMs); \ - this->menu##_bgm.bgm = nullptr; \ - this->menu##_bgm.bgm = pu::audio::OpenMusic(TryGetActiveThemeResource("sound/" bgm_name "/Bgm.mp3")); \ - } \ - } - _LOAD_MENU_BGM(main_menu, "Main") - _LOAD_MENU_BGM(startup_menu, "Startup") - _LOAD_MENU_BGM(themes_menu, "Themes") - _LOAD_MENU_BGM(settings_menu, "Settings") - - if(this->bgm_json.count("bgm_loop")) { - const auto global_loop = this->bgm_json.value("bgm_loop", DefaultBgmLoop); - this->main_menu_bgm.bgm_loop = global_loop; - this->startup_menu_bgm.bgm_loop = global_loop; - this->themes_menu_bgm.bgm_loop = global_loop; - this->settings_menu_bgm.bgm_loop = global_loop; - } - if(this->bgm_json.count("bgm_fade_in_ms")) { - const auto global_fade_in_ms = this->bgm_json.value("bgm_fade_in_ms", DefaultBgmFadeInMs); - this->main_menu_bgm.bgm_fade_in_ms = global_fade_in_ms; - this->startup_menu_bgm.bgm_fade_in_ms = global_fade_in_ms; - this->themes_menu_bgm.bgm_fade_in_ms = global_fade_in_ms; - this->settings_menu_bgm.bgm_fade_in_ms = global_fade_in_ms; + const auto rc = ul::util::LoadJSONFromFile(this->bgm_json, TryGetActiveThemeResource("sound/BGM.json")); + if(R_SUCCEEDED(rc)) { + #define _LOAD_MENU_BGM(menu, bgm_name) { \ + if(this->bgm_json.count(#menu)) { \ + const auto menu_json = this->bgm_json[#menu]; \ + this->menu##_bgm.bgm_loop = menu_json.value("bgm_loop", DefaultBgmLoop); \ + this->menu##_bgm.bgm_fade_in_ms = menu_json.value("bgm_fade_in_ms", DefaultBgmFadeInMs); \ + this->menu##_bgm.bgm_fade_in_ms = menu_json.value("bgm_fade_out_ms", DefaultBgmFadeOutMs); \ + this->menu##_bgm.bgm = nullptr; \ + this->menu##_bgm.bgm = pu::audio::OpenMusic(TryGetActiveThemeResource("sound/" bgm_name "/Bgm.mp3")); \ + } \ + } + _LOAD_MENU_BGM(main_menu, "Main") + _LOAD_MENU_BGM(startup_menu, "Startup") + _LOAD_MENU_BGM(themes_menu, "Themes") + _LOAD_MENU_BGM(settings_menu, "Settings") + + if(this->bgm_json.count("bgm_loop")) { + const auto global_loop = this->bgm_json.value("bgm_loop", DefaultBgmLoop); + this->main_menu_bgm.bgm_loop = global_loop; + this->startup_menu_bgm.bgm_loop = global_loop; + this->themes_menu_bgm.bgm_loop = global_loop; + this->settings_menu_bgm.bgm_loop = global_loop; + } + if(this->bgm_json.count("bgm_fade_in_ms")) { + const auto global_fade_in_ms = this->bgm_json.value("bgm_fade_in_ms", DefaultBgmFadeInMs); + this->main_menu_bgm.bgm_fade_in_ms = global_fade_in_ms; + this->startup_menu_bgm.bgm_fade_in_ms = global_fade_in_ms; + this->themes_menu_bgm.bgm_fade_in_ms = global_fade_in_ms; + this->settings_menu_bgm.bgm_fade_in_ms = global_fade_in_ms; + } + if(this->bgm_json.count("bgm_fade_out_ms")) { + const auto global_fade_out_ms = this->bgm_json.value("bgm_fade_out_ms", DefaultBgmFadeOutMs); + this->main_menu_bgm.bgm_fade_out_ms = global_fade_out_ms; + this->startup_menu_bgm.bgm_fade_out_ms = global_fade_out_ms; + this->themes_menu_bgm.bgm_fade_out_ms = global_fade_out_ms; + this->settings_menu_bgm.bgm_fade_out_ms = global_fade_out_ms; + } } - if(this->bgm_json.count("bgm_fade_out_ms")) { - const auto global_fade_out_ms = this->bgm_json.value("bgm_fade_out_ms", DefaultBgmFadeOutMs); - this->main_menu_bgm.bgm_fade_out_ms = global_fade_out_ms; - this->startup_menu_bgm.bgm_fade_out_ms = global_fade_out_ms; - this->themes_menu_bgm.bgm_fade_out_ms = global_fade_out_ms; - this->settings_menu_bgm.bgm_fade_out_ms = global_fade_out_ms; + else { + UL_LOG_WARN("Unable to load active theme sound settings (%s), theme might have no sound features", util::FormatResultDisplay(rc).c_str()); } // These UI values are required, we will assert otherwise (thus the error will be visible on our logs)