public void Acquire(JoyConPlayer player) { //lock (this) { if (IsDisposed) { throw new InvalidOperationException("Already disposed"); } if (IsAcquired) { throw new InvalidOperationException("Already acquired"); } Logger.Info("Acquire JoyCon " + Guid); _device.OpenDevice(DeviceMode.NonOverlapped, DeviceMode.NonOverlapped, ShareMode.ShareRead | ShareMode.ShareWrite); Player = player; SetupLeds(player.ToJoyConLed()); _cts = new CancellationTokenSource(); _pollingTask = Task.Run(() => PollingTask(), _cts.Token); } }
public static JoyConPlayer?Next(this JoyConPlayer player) { switch (player) { case JoyConPlayer.First: return(JoyConPlayer.Second); case JoyConPlayer.Second: return(JoyConPlayer.Third); case JoyConPlayer.Third: return(JoyConPlayer.Fourth); case JoyConPlayer.Fourth: return(null); default: throw new NotImplementedException(); } }
public static JoyConLed ToJoyConLed(this JoyConPlayer player) { return(ToJoyConLed((JoyConPlayer?)player)); }
public void Acquire(JoyConPlayer player) { LeftJoyCon.Acquire(player); RightJoyCon.Acquire(player); }