diff --git a/Makefile.pc b/Makefile.pc index 1d5dc2f..1e28197 100644 --- a/Makefile.pc +++ b/Makefile.pc @@ -26,6 +26,7 @@ test : pc_main/main.cpp pc_main/pc_launch.c \ build_pc/invalid_icon.bin.o build_pc/folder_icon.bin.o \ build_pc/hbmenu_logo_light.bin.o build_pc/hbmenu_logo_dark.bin.o \ build_pc/theme_icon_dark.bin.o build_pc/theme_icon_light.bin.o \ + build_pc/charging_icon_black.bin.o build_pc/charging_icon_white.bin.o \ #build_pc/tahoma24.o build_pc/tahoma12.o build_pc/interuimedium20.o build_pc/interuimedium30.o build_pc/interuiregular14.o build_pc/interuiregular18.o gcc -Wall -O2 -g -DVERSION=\"v$(APP_VERSION)\" $(EXTRA_CFLAGS) `pkg-config freetype2 --cflags` $^ -lsfml-graphics -lsfml-window -lsfml-system -lstdc++ `pkg-config freetype2 --libs` -lm -lz -lconfig -lturbojpeg $(EXTRA_LDFLAGS) -I. -iquote $(DEVKITPRO)/libnx/include -Ibuild_pc -g -o $@ @@ -89,6 +90,16 @@ build_pc/theme_icon_dark.bin.o : data/theme_icon_dark.bin @echo $(notdir $<) @$(bin2o) +build_pc/charging_icon_black.bin.o : data/charging_icon_black.bin + mkdir -p $(dir $@) + @echo $(notdir $<) + @$(bin2o) + +build_pc/charging_icon_white.bin.o : data/charging_icon_white.bin + mkdir -p $(dir $@) + @echo $(notdir $<) + @$(bin2o) + clean: rm -rf build_pc/ test test.* diff --git a/common/common.h b/common/common.h index fa11c5e..77e277f 100644 --- a/common/common.h +++ b/common/common.h @@ -63,6 +63,7 @@ void menuStartupPath(void); void menuStartup(void); void themeMenuStartup(void); void menuLoop(void); +void menuExit(void); static inline uint8_t BlendColor(uint32_t src, uint32_t dst, uint8_t alpha) { diff --git a/common/menu.c b/common/menu.c index d9970d6..eff5790 100644 --- a/common/menu.c +++ b/common/menu.c @@ -6,6 +6,8 @@ #include "folder_icon_bin.h" #include "theme_icon_dark_bin.h" #include "theme_icon_light_bin.h" +#include "charging_icon_black_bin.h" +#include "charging_icon_white_bin.h" char rootPathBase[PATH_MAX]; char rootPath[PATH_MAX+8]; @@ -320,17 +322,49 @@ void menuStartupPath(void) { } } +uint8_t *charging_icon_small; +#ifdef __SWITCH__ +static bool psmInitialized = false; +#endif + void menuStartup(void) { menuScan(rootPath); folder_icon_small = downscaleImg(folder_icon_bin, 256, 256, 140, 140, IMAGE_MODE_RGB24); invalid_icon_small = downscaleImg(invalid_icon_bin, 256, 256, 140, 140, IMAGE_MODE_RGB24); if(themeGlobalPreset == THEME_PRESET_DARK) + { theme_icon_small = downscaleImg(theme_icon_dark_bin, 256, 256, 140, 140, IMAGE_MODE_RGB24); + charging_icon_small = downscaleImg(charging_icon_white_bin, 155, 256, 14, 23, IMAGE_MODE_RGBA32); + } else + { theme_icon_small = downscaleImg(theme_icon_light_bin, 256, 256, 140, 140, IMAGE_MODE_RGB24); + charging_icon_small = downscaleImg(charging_icon_black_bin, 155, 256, 14, 23, IMAGE_MODE_RGBA32); + } computeFrontGradient(themeCurrent.frontWaveColor, 280); //menuCreateMsgBox(780, 300, "This is a test"); + + #ifdef __SWITCH__ + if (!psmInitialized) + { + Result rc = psmInitialize(); + if (R_SUCCEEDED(rc)) + { + psmInitialized = true; + } + } + #endif + +} + +void menuExit(void) { + #ifdef __SWITCH__ + if (psmInitialized) + { + psmExit(); + } + #endif } void themeMenuStartup(void) { @@ -406,6 +440,33 @@ void drawTime() { } +void drawCharge() { + + char chargeString[5]; + + uint32_t batteryCharge; + ChargerType chargeType = 0; + + #ifdef __SWITCH__ + psmGetBatteryChargePercentage(&batteryCharge); + #else + batteryCharge = 100; + #endif + + sprintf(chargeString, "%d%%", (int)batteryCharge); + + int tmpX = GetTextXCoordinate(interuimedium20, 1180, chargeString, 'r'); + + DrawText(interuimedium20, tmpX, 0 + 47 + 10 + 32, themeCurrent.textColor, chargeString); + + #ifdef __SWITCH__ + psmGetChargerType(&chargeType); + #endif + + if (chargeType > (ChargerType)ChargerType_None) + drawImage(tmpX - 20, 0 + 47 + 10 + 9, 14, 23, charging_icon_small, IMAGE_MODE_RGBA32); +} + void drawBackBtn(menu_s* menu, bool emptyDir) { int x_image = 1280 - 252 - 30 - 32; int x_text = 1280 - 216 - 30 - 32; @@ -462,6 +523,7 @@ void menuLoop(void) { #endif drawTime(); + drawCharge(); if (menu->nEntries==0 || hbmenu_state == HBMENU_NETLOADER_ACTIVE) { diff --git a/data/charging_icon_black.bin b/data/charging_icon_black.bin new file mode 100644 index 0000000..ea98019 Binary files /dev/null and b/data/charging_icon_black.bin differ diff --git a/data/charging_icon_white.bin b/data/charging_icon_white.bin new file mode 100644 index 0000000..2275e8a Binary files /dev/null and b/data/charging_icon_white.bin differ diff --git a/nx_main/main.c b/nx_main/main.c index 0ccbd42..7a9a932 100644 --- a/nx_main/main.c +++ b/nx_main/main.c @@ -101,6 +101,7 @@ int main(int argc, char **argv) fontExit(); launchExit(); + menuExit(); plExit(); setsysExit(); diff --git a/resources/charging_icon_black.png b/resources/charging_icon_black.png new file mode 100644 index 0000000..279b089 Binary files /dev/null and b/resources/charging_icon_black.png differ diff --git a/resources/charging_icon_white.png b/resources/charging_icon_white.png new file mode 100644 index 0000000..f46c33c Binary files /dev/null and b/resources/charging_icon_white.png differ