1
0
forked from Clones/Controlify

Battery level warning + update SDL with macOS ARM support

This commit is contained in:
isXander
2023-05-11 16:43:13 +01:00
parent 0e8bf0cc9b
commit 71c7e26587
19 changed files with 283 additions and 69 deletions

View File

@ -1,5 +1,6 @@
package dev.isxander.controlify.driver;
import com.google.common.collect.Sets;
import dev.isxander.controlify.Controlify;
import dev.isxander.controlify.controller.sdl2.SDL2NativesManager;
import dev.isxander.controlify.debug.DebugProperties;
@ -7,19 +8,20 @@ import org.hid4java.HidDevice;
import java.util.*;
public record GamepadDrivers(BasicGamepadInputDriver basicGamepadInputDriver, GyroDriver gyroDriver, RumbleDriver rumbleDriver) {
public record GamepadDrivers(BasicGamepadInputDriver basicGamepadInputDriver, GyroDriver gyroDriver, RumbleDriver rumbleDriver, BatteryDriver batteryDriver) {
public Set<Driver> getUniqueDrivers() {
Set<Driver> drivers = Collections.newSetFromMap(new IdentityHashMap<>());
drivers.addAll(List.of(basicGamepadInputDriver, gyroDriver, rumbleDriver));
Set<Driver> drivers = Sets.newIdentityHashSet();
drivers.addAll(List.of(basicGamepadInputDriver, gyroDriver, rumbleDriver, batteryDriver));
return drivers;
}
public void printDrivers() {
if (DebugProperties.PRINT_DRIVER) {
Controlify.LOGGER.info("Drivers in use: Basic Input = '{}', Gyro = '{}', Rumble = '{}'",
Controlify.LOGGER.info("Drivers in use: Basic Input = '{}', Gyro = '{}', Rumble = '{}', Battery = '{}'",
basicGamepadInputDriver.getBasicGamepadDetails(),
gyroDriver.getGyroDetails(),
rumbleDriver.getRumbleDetails()
rumbleDriver.getRumbleDetails(),
batteryDriver.getBatteryDriverDetails()
);
}
}
@ -28,11 +30,13 @@ public record GamepadDrivers(BasicGamepadInputDriver basicGamepadInputDriver, Gy
BasicGamepadInputDriver basicGamepadInputDriver = new GLFWGamepadDriver(jid);
GyroDriver gyroDriver = GyroDriver.UNSUPPORTED;
RumbleDriver rumbleDriver = RumbleDriver.UNSUPPORTED;
BatteryDriver batteryDriver = BatteryDriver.UNSUPPORTED;
if (SDL2NativesManager.isLoaded()) {
SDL2GamepadDriver sdl2Driver = new SDL2GamepadDriver(jid);
gyroDriver = sdl2Driver;
rumbleDriver = sdl2Driver;
batteryDriver = sdl2Driver;
}
// broken
@ -40,6 +44,6 @@ public record GamepadDrivers(BasicGamepadInputDriver basicGamepadInputDriver, Gy
gyroDriver = new SteamDeckDriver(hid.get());
}
return new GamepadDrivers(basicGamepadInputDriver, gyroDriver, rumbleDriver);
return new GamepadDrivers(basicGamepadInputDriver, gyroDriver, rumbleDriver, batteryDriver);
}
}