Make powerGetDetails return status, disable output on failure to read

-PC returns false always
-Switch returns if either charge or charge status fails
This commit is contained in:
Daniel Bernard 2018-10-08 20:45:14 -05:00
parent 233dfd2b2c
commit a8ce7c2a6b
5 changed files with 26 additions and 15 deletions

View File

@ -64,7 +64,6 @@ void menuStartupPath(void);
void menuStartup(void); void menuStartup(void);
void themeMenuStartup(void); void themeMenuStartup(void);
void menuLoop(void); void menuLoop(void);
void menuExit(void);
static inline uint8_t BlendColor(uint32_t src, uint32_t dst, uint8_t alpha) static inline uint8_t BlendColor(uint32_t src, uint32_t dst, uint8_t alpha)
{ {

View File

@ -427,8 +427,12 @@ void drawCharge() {
char chargeString[5]; char chargeString[5];
uint32_t batteryCharge; uint32_t batteryCharge;
bool isCharging; bool isCharging;
bool validPower;
powerGetDetails(&batteryCharge, &isCharging); validPower = powerGetDetails(&batteryCharge, &isCharging);
if (validPower)
{
batteryCharge = (batteryCharge > 100) ? 100 : batteryCharge; batteryCharge = (batteryCharge > 100) ? 100 : batteryCharge;
sprintf(chargeString, "%d%%", batteryCharge); sprintf(chargeString, "%d%%", batteryCharge);
@ -440,6 +444,7 @@ void drawCharge() {
if (isCharging) if (isCharging)
drawIcon(tmpX - 32, 0 + 47 + 10 + 6, 9, 15, charging_icon_bin, themeCurrent.textColor); drawIcon(tmpX - 32, 0 + 47 + 10 + 6, 9, 15, charging_icon_bin, themeCurrent.textColor);
} }
}
void drawBackBtn(menu_s* menu, bool emptyDir) { void drawBackBtn(menu_s* menu, bool emptyDir) {
int x_image = 1280 - 252 - 30 - 32; int x_image = 1280 - 252 - 30 - 32;

View File

@ -3,6 +3,6 @@
void powerInit(void); void powerInit(void);
void powerGetDetails(uint32_t *batteryCharge, bool *isCharging); bool powerGetDetails(uint32_t *batteryCharge, bool *isCharging);
void powerExit(void); void powerExit(void);

View File

@ -3,18 +3,24 @@
static bool psmInitialized; static bool psmInitialized;
void powerGetDetails(uint32_t *batteryCharge, bool *isCharging) { bool powerGetDetails(uint32_t *batteryCharge, bool *isCharging) {
ChargerType charger = ChargerType_None; ChargerType charger = ChargerType_None;
bool hwReadsSucceeded = false;
Result rc = 0;
*isCharging = false; *isCharging = false;
*batteryCharge = 0; *batteryCharge = 0;
if (psmInitialized) if (psmInitialized)
{ {
psmGetBatteryChargePercentage(batteryCharge); rc = psmGetBatteryChargePercentage(batteryCharge);
psmGetChargerType(&charger); hwReadsSucceeded = R_SUCCEEDED(rc);
rc = psmGetChargerType(&charger);
hwReadsSucceeded &= R_SUCCEEDED(rc);
*isCharging = (charger > ChargerType_None); *isCharging = (charger > ChargerType_None);
} }
return hwReadsSucceeded;
} }
void powerInit(void) { void powerInit(void) {

View File

@ -8,7 +8,8 @@ void powerExit(void) {
} }
void powerGetDetails(uint32_t *batteryCharge, bool *isCharging) bool powerGetDetails(uint32_t *batteryCharge, bool *isCharging)
*isCharging = false; *isCharging = false;
*batteryCharge = 100; *batteryCharge = 100;
return false;
} }