gcDeviceBatteryState compatibility

This commit is contained in:
TrueZhuanjia
2025-07-02 11:17:39 +08:00
parent 6be5aa6507
commit 14a384436c
2 changed files with 10 additions and 3 deletions
+8 -1
View File
@@ -21,6 +21,13 @@ typedef struct {
float lastY;
} controller_touch_context_t;
typedef NS_ENUM(NSInteger, ControllerDeviceBatteryState) {
ControllerDeviceBatteryStateUnknown = -1,
ControllerDeviceBatteryStateDischarging,
ControllerDeviceBatteryStateCharging,
ControllerDeviceBatteryStateFull
};
@property (nullable, nonatomic, retain) GCController* gamepad;
@property (nonatomic) int playerIndex;
@property (nonatomic) int lastButtonFlags;
@@ -53,7 +60,7 @@ typedef struct {
#endif
@property (nonatomic) NSTimer* _Nullable batteryTimer;
@property (nonatomic) GCDeviceBatteryState lastBatteryState; // to be wrapped for compatibility
@property (nonatomic) ControllerDeviceBatteryState lastBatteryState; // self defined enum for compatibility
@property (nonatomic) float lastBatteryLevel;
@property (nonatomic) BOOL reportedArrival;
+2 -2
View File
@@ -569,7 +569,7 @@ static const double MOUSE_SPEED_DIVISOR = 1.25;
if (controller.gamepad.battery) {
// Poll for updated battery status every 30 seconds
controller.batteryTimer = [NSTimer scheduledTimerWithTimeInterval:30 repeats:YES block:^(NSTimer *timer) {
if (controller.lastBatteryState != controller.gamepad.battery.batteryState ||
if ((GCDeviceBatteryState)controller.lastBatteryState != controller.gamepad.battery.batteryState ||
controller.lastBatteryLevel != controller.gamepad.battery.batteryLevel) {
uint8_t batteryState;
@@ -591,7 +591,7 @@ static const double MOUSE_SPEED_DIVISOR = 1.25;
LiSendControllerBatteryEvent(controller.playerIndex, batteryState, (uint8_t)(controller.gamepad.battery.batteryLevel * 100));
controller.lastBatteryState = controller.gamepad.battery.batteryState;
controller.lastBatteryState = (ControllerDeviceBatteryState)controller.gamepad.battery.batteryState;
controller.lastBatteryLevel = controller.gamepad.battery.batteryLevel;
}
}];