mirror of
https://github.com/Relintai/sdl2_frt.git
synced 2024-12-20 22:16:49 +01:00
Added support for controller battery status on iOS 14
This commit is contained in:
parent
1b31e9f6dc
commit
6b62494ee4
@ -768,6 +768,40 @@ IOS_MFIJoystickUpdate(SDL_Joystick * joystick)
|
|||||||
}
|
}
|
||||||
joystick->hwdata->num_pause_presses = 0;
|
joystick->hwdata->num_pause_presses = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (@available(iOS 14.0, tvOS 14.0, *)) {
|
||||||
|
GCDeviceBattery *battery = controller.battery;
|
||||||
|
if (battery) {
|
||||||
|
SDL_JoystickPowerLevel ePowerLevel = SDL_JOYSTICK_POWER_UNKNOWN;
|
||||||
|
|
||||||
|
switch (battery.batteryState) {
|
||||||
|
case GCDeviceBatteryStateDischarging:
|
||||||
|
{
|
||||||
|
float power_level = battery.batteryLevel;
|
||||||
|
if (power_level <= 0.05f) {
|
||||||
|
ePowerLevel = SDL_JOYSTICK_POWER_EMPTY;
|
||||||
|
} else if (power_level <= 0.20f) {
|
||||||
|
ePowerLevel = SDL_JOYSTICK_POWER_LOW;
|
||||||
|
} else if (power_level <= 0.70f) {
|
||||||
|
ePowerLevel = SDL_JOYSTICK_POWER_MEDIUM;
|
||||||
|
} else {
|
||||||
|
ePowerLevel = SDL_JOYSTICK_POWER_FULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case GCDeviceBatteryStateCharging:
|
||||||
|
ePowerLevel = SDL_JOYSTICK_POWER_WIRED;
|
||||||
|
break;
|
||||||
|
case GCDeviceBatteryStateFull:
|
||||||
|
ePowerLevel = SDL_JOYSTICK_POWER_FULL;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
SDL_PrivateJoystickBatteryLevel(joystick, ePowerLevel);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#endif /* SDL_JOYSTICK_MFI */
|
#endif /* SDL_JOYSTICK_MFI */
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user