diff --git a/Makefile.pc b/Makefile.pc index 1e28197..78a9870 100644 --- a/Makefile.pc +++ b/Makefile.pc @@ -26,7 +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/charging_icon.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 $@ @@ -90,12 +90,7 @@ 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 +build_pc/charging_icon.bin.o : data/charging_icon.bin mkdir -p $(dir $@) @echo $(notdir $<) @$(bin2o) diff --git a/common/common.h b/common/common.h index 77e277f..3f5c9c7 100644 --- a/common/common.h +++ b/common/common.h @@ -58,6 +58,7 @@ typedef union { #include "math.h" #include "theme.h" #include "message-box.h" +#include "power.h" void menuStartupPath(void); void menuStartup(void); diff --git a/common/menu.c b/common/menu.c index 92ea8f4..95a1f2c 100644 --- a/common/menu.c +++ b/common/menu.c @@ -6,8 +6,7 @@ #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" +#include "charging_icon_bin.h" char rootPathBase[PATH_MAX]; char rootPath[PATH_MAX+8]; @@ -109,6 +108,21 @@ static void drawImage(int x, int y, int width, int height, const uint8_t *image, } } +//Draws an RGBA8888 image masked by the passed color. +static void drawIcon(int x, int y, int width, int height, const uint8_t *image, color_t color) { + int tmpx, tmpy; + int pos; + color_t current_color; + + for (tmpy=0; tmpy 100) ? 100 : batteryCharge; - #ifdef __SWITCH__ - if (psmInitialized) - { - psmGetBatteryChargePercentage(&batteryCharge); - psmGetChargerType(&chargeType); - } - #else - batteryCharge = 100; - #endif - - sprintf(chargeString, "%d%%", (int)batteryCharge); + sprintf(chargeString, "%d%%", batteryCharge); int tmpX = GetTextXCoordinate(interuiregular14, 1180, chargeString, 'r'); DrawText(interuiregular14, tmpX, 0 + 47 + 10 + 21, themeCurrent.textColor, chargeString); - - if (chargeType > (ChargerType)ChargerType_None) - drawImage(tmpX - 20, 0 + 47 + 10 + 5, 9, 15, charging_icon_small, IMAGE_MODE_RGBA32); + if (isCharging) + drawIcon(tmpX - 20, 0 + 47 + 10 + 5, 9, 15, charging_icon_small, themeCurrent.textColor); } void drawBackBtn(menu_s* menu, bool emptyDir) { diff --git a/common/power.h b/common/power.h new file mode 100644 index 0000000..1815f0c --- /dev/null +++ b/common/power.h @@ -0,0 +1,8 @@ +#pragma once +#include "common.h" + +void powerInit(void); + +void powerGetDetails(uint32_t *batteryCharge, bool *isCharging); + +void powerExit(void); \ No newline at end of file diff --git a/data/charging_icon_black.bin b/data/charging_icon.bin similarity index 100% rename from data/charging_icon_black.bin rename to data/charging_icon.bin diff --git a/data/charging_icon_white.bin b/data/charging_icon_white.bin deleted file mode 100644 index 2275e8a..0000000 Binary files a/data/charging_icon_white.bin and /dev/null differ diff --git a/nx_main/main.c b/nx_main/main.c index 7a9a932..f78fc64 100644 --- a/nx_main/main.c +++ b/nx_main/main.c @@ -45,6 +45,7 @@ int main(int argc, char **argv) themeStartup((ThemePreset)theme); textInit(); + powerInit(); menuStartup(); launchInit(); @@ -101,7 +102,7 @@ int main(int argc, char **argv) fontExit(); launchExit(); - menuExit(); + powerExit(); plExit(); setsysExit(); diff --git a/nx_main/nx_power.c b/nx_main/nx_power.c new file mode 100644 index 0000000..b50ddc0 --- /dev/null +++ b/nx_main/nx_power.c @@ -0,0 +1,38 @@ +#include +#include "../common/common.h" + +static bool psmInitialized; + + +void powerGetDetails(uint32_t *batteryCharge, bool *isCharging) { + ChargerType charger = ChargerType_None; + + *isCharging = false; + *batteryCharge = 0; + + if (psmInitialized) + { + psmGetBatteryChargePercentage(batteryCharge); + psmGetChargerType(&charger); + *isCharging = (charger > ChargerType_None); + } +} + +void powerInit(void) { + if (!psmInitialized) + { + Result rc = psmInitialize(); + if (R_SUCCEEDED(rc)) + { + psmInitialized = true; + } + } +} + +void powerExit(void) { + if (psmInitialized) + { + psmExit(); + psmInitialized = false; + } +} \ No newline at end of file diff --git a/pc_main/pc_power.c b/pc_main/pc_power.c new file mode 100644 index 0000000..42aa0e4 --- /dev/null +++ b/pc_main/pc_power.c @@ -0,0 +1,15 @@ +#include "../common/common.h" + + +void powerInit(void) { + +} + +void powerExit(void) { + +} + +void powerGetDetails(uint32_t *batteryCharge, bool *isCharging) + *isCharging = false; + *batteryCharge = 100; +} \ No newline at end of file diff --git a/resources/charging_icon_black.png b/resources/charging_icon.png similarity index 100% rename from resources/charging_icon_black.png rename to resources/charging_icon.png diff --git a/resources/charging_icon_white.png b/resources/charging_icon_white.png deleted file mode 100644 index f46c33c..0000000 Binary files a/resources/charging_icon_white.png and /dev/null differ