private void OnRemoveJoyCon(IJoyCon joyCon) { Logger.Info("Removed JoyCon " + joyCon); if (joyCon.IsAcquired) { joyCon.Unacquire(); } joyCon.DataUpdated -= OnJoyConDataUpdate; Console.WriteLine($"JoyCon State: {joyCon.IsAcquired}"); _virtualJoystickDict[joyCon].Dispose(); _virtualJoystickDict.Remove(joyCon); }
private void OnNewJoyCon(IJoyCon joyCon) { Logger.Info("New JoyCon " + joyCon); JoyConPlayer?player = JoyConPlayer.First; while (player != null) { if (_virtualJoystickDict.Values.Any(vjoy => vjoy.DeviceId == (uint)player)) { player = player.Value.Next(); continue; } var virtualJoystick = new VirtualJoystick((uint)player.Value, joyCon is JoyCon ? VJoyDeviceProfile.Small : VJoyDeviceProfile.Full); if (virtualJoystick.UsageState != UsageState.Free) { virtualJoystick.Dispose(); player = player.Value.Next(); continue; } Logger.Debug(">>> Register JoyCon as " + (uint)player.Value); joyCon.DataUpdated += OnJoyConDataUpdate; joyCon.Acquire(player.Value); virtualJoystick.Aquire(); _virtualJoystickDict.Add(joyCon, virtualJoystick); break; } if (player == null) { Logger.Warn(">>> Cannot register JoyCon: Not enought VJoy Controller found (max. 4)"); joyCon.SetupLeds(JoyConSingleLed.Flash, JoyConSingleLed.Off, JoyConSingleLed.Off, JoyConSingleLed.Flash); } }
public static VirtualJoystickData ToVirtualJoystickData(this JoyConState joyConState, IJoyCon joyCon) { var data = new VirtualJoystickData(); if (joyCon is JoyConPair) { HandleJoyConPair(joyConState, (JoyConPair)joyCon, ref data); } else { HandleJoyCon(joyConState, ref data); } return(data); }
public JoyConDataUpdateEventArgs(IJoyCon joyConSource, JoyConState joyConState) { JoyConSource = joyConSource; JoyConState = joyConState; }
public JoyConUpdateEventArgs(IJoyCon joyCon, JoyConUpdateType type) { JoyCon = joyCon; Type = type; }