Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }
Exemple #4
0
 public JoyConDataUpdateEventArgs(IJoyCon joyConSource, JoyConState joyConState)
 {
     JoyConSource = joyConSource;
     JoyConState  = joyConState;
 }
Exemple #5
0
 public JoyConUpdateEventArgs(IJoyCon joyCon, JoyConUpdateType type)
 {
     JoyCon = joyCon;
     Type   = type;
 }