diff --git a/Makefile.pc b/Makefile.pc index dd65b1f..20c7cbc 100644 --- a/Makefile.pc +++ b/Makefile.pc @@ -9,7 +9,7 @@ EXTRA_CFLAGS="-D__USE_MINGW_ANSI_STDIO" EXTRA_LDFLAGS="-lws2_32" endif -test : pc_main/main.cpp pc_main/pc_launch.c pc_main/pc_power.c \ +test : pc_main/main.cpp pc_main/pc_launch.c pc_main/pc_power.c pc_main/pc_netstatus.c \ common/menu.c common/font.c common/language.c common/launch.c common/worker.c \ common/menu-entry.c common/menu-list.c common/message-box.c common/text.c \ common/ui.c common/assets.c common/math.c common/theme.c \ diff --git a/assets/airplane_icon.bin b/assets/airplane_icon.bin new file mode 100644 index 0000000..6ec4682 Binary files /dev/null and b/assets/airplane_icon.bin differ diff --git a/assets/battery_icon.bin b/assets/battery_icon.bin index 75936fa..99bfdc8 100644 Binary files a/assets/battery_icon.bin and b/assets/battery_icon.bin differ diff --git a/assets/charging_icon.bin b/assets/charging_icon.bin index 634fb12..b0ccb8a 100644 Binary files a/assets/charging_icon.bin and b/assets/charging_icon.bin differ diff --git a/assets/eth_icon.bin b/assets/eth_icon.bin new file mode 100644 index 0000000..effa46a Binary files /dev/null and b/assets/eth_icon.bin differ diff --git a/assets/eth_none_icon.bin b/assets/eth_none_icon.bin new file mode 100644 index 0000000..e06357b Binary files /dev/null and b/assets/eth_none_icon.bin differ diff --git a/assets/wifi1_icon.bin b/assets/wifi1_icon.bin new file mode 100644 index 0000000..03f842f Binary files /dev/null and b/assets/wifi1_icon.bin differ diff --git a/assets/wifi2_icon.bin b/assets/wifi2_icon.bin new file mode 100644 index 0000000..7480e6e Binary files /dev/null and b/assets/wifi2_icon.bin differ diff --git a/assets/wifi3_icon.bin b/assets/wifi3_icon.bin new file mode 100644 index 0000000..a6df67c Binary files /dev/null and b/assets/wifi3_icon.bin differ diff --git a/assets/wifi_none_icon.bin b/assets/wifi_none_icon.bin new file mode 100644 index 0000000..696bf6f Binary files /dev/null and b/assets/wifi_none_icon.bin differ diff --git a/common/assets.c b/common/assets.c index c7c3a06..e3cc541 100644 --- a/common/assets.c +++ b/common/assets.c @@ -20,6 +20,13 @@ assetsDataEntry g_assetsDataList[AssetId_Max] = { GENASSET("hbmenu_logo_light.bin"), GENASSET("theme_icon_dark.bin"), GENASSET("theme_icon_light.bin"), + GENASSET("airplane_icon.bin"), + GENASSET("wifi_none_icon.bin"), + GENASSET("wifi1_icon.bin"), + GENASSET("wifi2_icon.bin"), + GENASSET("wifi3_icon.bin"), + GENASSET("eth_icon.bin"), + GENASSET("eth_none_icon.bin"), }; static void assetsClearEntry(assetsDataEntry *entry) { diff --git a/common/assets.h b/common/assets.h index 797f957..6eb23e2 100644 --- a/common/assets.h +++ b/common/assets.h @@ -10,6 +10,13 @@ typedef enum { AssetId_hbmenu_logo_light, AssetId_theme_icon_dark, AssetId_theme_icon_light, + AssetId_airplane_icon, + AssetId_wifi_none_icon, + AssetId_wifi1_icon, + AssetId_wifi2_icon, + AssetId_wifi3_icon, + AssetId_eth_icon, + AssetId_eth_none_icon, AssetId_Max } AssetId; diff --git a/common/common.h b/common/common.h index 37ad0e4..484bc51 100644 --- a/common/common.h +++ b/common/common.h @@ -64,6 +64,7 @@ typedef union { #include "message-box.h" #include "power.h" #include "netloader.h" +#include "netstatus.h" void menuStartupPath(void); void menuStartup(void); diff --git a/common/menu.c b/common/menu.c index cc00267..b12654d 100644 --- a/common/menu.c +++ b/common/menu.c @@ -414,7 +414,36 @@ void drawWave(int id, float timer, color_t color, int height, float phase, float } } -void drawTime() { +void drawCharge() { + char chargeString[5]; + uint32_t batteryCharge; + bool isCharging; + bool validPower; + + validPower = powerGetDetails(&batteryCharge, &isCharging); + + if (validPower) + { + batteryCharge = (batteryCharge > 100) ? 100 : batteryCharge; + + sprintf(chargeString, "%d%%", batteryCharge); + + int tmpX = GetTextXCoordinate(interuiregular14, 1180 - 10, chargeString, 'r'); + + DrawText(interuiregular14, tmpX - 17, 0 + 47 + 10 + 21 + 4, themeCurrent.textColor, chargeString); + drawIcon(1180 - 16 - 8, 0 + 47 + 10 + 6, 24, 24, assetsGetDataBuffer(AssetId_battery_icon), themeCurrent.textColor); + if (isCharging) + drawIcon(tmpX - 32 - 10, 0 + 47 + 10 + 6, 24, 24, assetsGetDataBuffer(AssetId_charging_icon), themeCurrent.textColor); + } +} + +void drawNetwork(int tmpX) { + AssetId id; + if (netstatusGetDetails(&id)) + drawIcon(tmpX + 5, 0 + 47 + 10 + 3, 24, 24, assetsGetDataBuffer(id), themeCurrent.textColor); +} + +void drawStatus() { char timeString[9]; @@ -431,29 +460,8 @@ void drawTime() { DrawText(interuimedium20, tmpX, 0 + 47 + 10, themeCurrent.textColor, timeString); -} - -void drawCharge() { - char chargeString[5]; - uint32_t batteryCharge; - bool isCharging; - bool validPower; - - validPower = powerGetDetails(&batteryCharge, &isCharging); - - if (validPower) - { - batteryCharge = (batteryCharge > 100) ? 100 : batteryCharge; - - sprintf(chargeString, "%d%%", batteryCharge); - - int tmpX = GetTextXCoordinate(interuiregular14, 1180, chargeString, 'r'); - - DrawText(interuiregular14, tmpX - 15, 0 + 47 + 10 + 21, themeCurrent.textColor, chargeString); - drawIcon(1180 - 11, 0 + 47 + 10 + 6, 10, 15, assetsGetDataBuffer(AssetId_battery_icon), themeCurrent.textColor); - if (isCharging) - drawIcon(tmpX - 32, 0 + 47 + 10 + 6, 9, 15, assetsGetDataBuffer(AssetId_charging_icon), themeCurrent.textColor); - } + drawCharge(); + drawNetwork(tmpX); } void drawButtons(menu_s* menu, bool emptyDir, int *x_image_out) { @@ -553,8 +561,7 @@ void menuLoop(void) { DrawText(interuiregular14, 180 + 256, 46 + 16 + 18, themeCurrent.textColor, tmpstr); #endif - drawTime(); - drawCharge(); + drawStatus(); memset(&netloader_state, 0, sizeof(netloader_state)); netloaderGetState(&netloader_state); diff --git a/resources/airplane_icon.png b/resources/airplane_icon.png new file mode 100644 index 0000000..7808f33 Binary files /dev/null and b/resources/airplane_icon.png differ diff --git a/resources/battery_icon.png b/resources/battery_icon.png index 5c89f72..a0a53ff 100644 Binary files a/resources/battery_icon.png and b/resources/battery_icon.png differ diff --git a/resources/charging_icon.png b/resources/charging_icon.png index 2229590..88c47f2 100644 Binary files a/resources/charging_icon.png and b/resources/charging_icon.png differ diff --git a/resources/eth_icon.png b/resources/eth_icon.png new file mode 100644 index 0000000..82dc3fa Binary files /dev/null and b/resources/eth_icon.png differ diff --git a/resources/wifi1_icon.png b/resources/wifi1_icon.png new file mode 100644 index 0000000..f0fa3b5 Binary files /dev/null and b/resources/wifi1_icon.png differ diff --git a/resources/wifi2_icon.png b/resources/wifi2_icon.png new file mode 100644 index 0000000..e445672 Binary files /dev/null and b/resources/wifi2_icon.png differ diff --git a/resources/wifi3_icon.png b/resources/wifi3_icon.png new file mode 100644 index 0000000..52902be Binary files /dev/null and b/resources/wifi3_icon.png differ diff --git a/resources/wifi_none_icon.png b/resources/wifi_none_icon.png new file mode 100644 index 0000000..ee25978 Binary files /dev/null and b/resources/wifi_none_icon.png differ