mirror of
https://github.com/switchbrew/libnx.git
synced 2025-06-21 12:32:40 +02:00
psm: Add more battery functions
This commit is contained in:
parent
f01fb21da5
commit
4afec4016d
@ -40,6 +40,9 @@ Service* psmGetServiceSession(void);
|
||||
Result psmGetBatteryChargePercentage(u32 *out);
|
||||
Result psmGetChargerType(ChargerType *out);
|
||||
Result psmGetBatteryVoltageState(PsmBatteryVoltageState *out);
|
||||
Result psmGetRawBatteryChargePercentage(double *out);
|
||||
Result psmIsEnoughPowerSupplied(bool *out);
|
||||
Result psmGetBatteryAgePercentage(double *out);
|
||||
|
||||
/**
|
||||
* @brief Wrapper func which opens a PsmSession and handles event setup.
|
||||
|
@ -50,10 +50,23 @@ static Result _psmCmdInBoolNoOut(Service* srv, bool inval, u32 cmd_id) {
|
||||
return _psmCmdInU8NoOut(srv, inval!=0, cmd_id);
|
||||
}
|
||||
|
||||
static Result _psmCmdNoInOutBool(Service* srv, bool *out, u32 cmd_id) {
|
||||
u8 outval = 0;
|
||||
Result rc = serviceDispatchOut(srv, cmd_id, outval);
|
||||
if (R_SUCCEEDED(rc)) {
|
||||
if (out) *out = outval & 1;
|
||||
}
|
||||
return rc;
|
||||
}
|
||||
|
||||
static Result _psmCmdNoInOutU32(Service* srv, u32 *out, u32 cmd_id) {
|
||||
return serviceDispatchOut(srv, cmd_id, *out);
|
||||
}
|
||||
|
||||
static Result _psmCmdNoInOutDouble(Service* srv, double *out, u32 cmd_id) {
|
||||
return serviceDispatchOut(srv, cmd_id, *out);
|
||||
}
|
||||
|
||||
Result psmGetBatteryChargePercentage(u32 *out) {
|
||||
return _psmCmdNoInOutU32(&g_psmSrv, out, 0);
|
||||
}
|
||||
@ -69,6 +82,18 @@ Result psmGetBatteryVoltageState(PsmBatteryVoltageState *out) {
|
||||
return rc;
|
||||
}
|
||||
|
||||
Result psmGetRawBatteryChargePercentage(double *out) {
|
||||
return _psmCmdNoInOutDouble(&g_psmSrv, out, 13);
|
||||
}
|
||||
|
||||
Result psmIsEnoughPowerSupplied(bool *out) {
|
||||
return _psmCmdNoInOutBool(&g_psmSrv, out, 14);
|
||||
}
|
||||
|
||||
Result psmGetBatteryAgePercentage(double *out) {
|
||||
return _psmCmdNoInOutDouble(&g_psmSrv, out, 15);
|
||||
}
|
||||
|
||||
static Result _psmOpenSession(Service* srv_out) {
|
||||
return serviceDispatch(&g_psmSrv, 7,
|
||||
.out_num_objects = 1,
|
||||
|
Loading…
Reference in New Issue
Block a user