21 #include "../../SDL_internal.h"
23 #ifndef SDL_POWER_DISABLED
26 #import <UIKit/UIKit.h>
30 #include "SDL_syspower.h"
34 static const int BATTERY_MONITORING_TIMEOUT = 3000;
35 static Uint32 SDL_UIKitLastPowerInfoQuery = 0;
38 SDL_UIKit_UpdateBatteryMonitoring(
void)
40 if (SDL_UIKitLastPowerInfoQuery) {
42 UIDevice *uidev = [UIDevice currentDevice];
43 SDL_assert([uidev isBatteryMonitoringEnabled] == YES);
44 [uidev setBatteryMonitoringEnabled:NO];
45 SDL_UIKitLastPowerInfoQuery = 0;
51 SDL_UIKit_UpdateBatteryMonitoring(
void)
66 UIDevice *uidev = [UIDevice currentDevice];
68 if (!SDL_UIKitLastPowerInfoQuery) {
69 SDL_assert(uidev.isBatteryMonitoringEnabled == NO);
70 uidev.batteryMonitoringEnabled = YES;
82 switch (uidev.batteryState) {
83 case UIDeviceBatteryStateCharging:
87 case UIDeviceBatteryStateFull:
91 case UIDeviceBatteryStateUnplugged:
95 case UIDeviceBatteryStateUnknown:
101 const float level = uidev.batteryLevel;
102 *percent = ( (
level < 0.0f) ? -1 : ((
int) ((
level * 100) + 0.5
f)) );
#define SDL_assert(condition)
SDL_PowerState
The basic state for the system's power supply.
@ SDL_POWERSTATE_NO_BATTERY
@ SDL_POWERSTATE_CHARGING
@ SDL_POWERSTATE_ON_BATTERY
SDL_bool SDL_GetPowerInfo_UIKit(SDL_PowerState *, int *, int *)
Uint32 SDL_GetTicks(void)
Get the number of milliseconds since the SDL library initialization.
#define SDL_TICKS_PASSED(A, B)
Compare SDL ticks values, and return true if A has passed B.