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 psmGetBatteryChargePercentage(u32 *out);
|
||||||
Result psmGetChargerType(ChargerType *out);
|
Result psmGetChargerType(ChargerType *out);
|
||||||
Result psmGetBatteryVoltageState(PsmBatteryVoltageState *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.
|
* @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);
|
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) {
|
static Result _psmCmdNoInOutU32(Service* srv, u32 *out, u32 cmd_id) {
|
||||||
return serviceDispatchOut(srv, cmd_id, *out);
|
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) {
|
Result psmGetBatteryChargePercentage(u32 *out) {
|
||||||
return _psmCmdNoInOutU32(&g_psmSrv, out, 0);
|
return _psmCmdNoInOutU32(&g_psmSrv, out, 0);
|
||||||
}
|
}
|
||||||
@ -69,6 +82,18 @@ Result psmGetBatteryVoltageState(PsmBatteryVoltageState *out) {
|
|||||||
return rc;
|
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) {
|
static Result _psmOpenSession(Service* srv_out) {
|
||||||
return serviceDispatch(&g_psmSrv, 7,
|
return serviceDispatch(&g_psmSrv, 7,
|
||||||
.out_num_objects = 1,
|
.out_num_objects = 1,
|
||||||
|
Loading…
Reference in New Issue
Block a user