Exemplo n.º 1
0
 public DesktopGamesEditor(
     GameDatabase database,
     GameControllerFactory controllerFactory,
     PlayniteSettings appSettings,
     IDialogsFactory dialogs,
     ExtensionFactory extensions,
     PlayniteApplication app) : base(
         database,
         controllerFactory,
         appSettings,
         dialogs,
         extensions,
         app)
 {
 }
Exemplo n.º 2
0
        public XInputDevice(InputManager input, PlayniteApplication app)
        {
            inputManager = input;
            application  = app;
            context      = SynchronizationContext.Current;

            Task.Run(async() =>
            {
                while (true)
                {
                    if (app.IsActive != true)
                    {
                        await Task.Delay(pollingRate);
                        continue;
                    }

                    var state = GamePad.GetState(PlayerIndex.One);
                    if (state.IsConnected)
                    {
                        ProcessState(state);
                        await Task.Delay(pollingRate);
                    }

                    state = GamePad.GetState(PlayerIndex.Two);
                    if (state.IsConnected)
                    {
                        ProcessState(state);
                        await Task.Delay(pollingRate);
                    }

                    state = GamePad.GetState(PlayerIndex.Three);
                    if (state.IsConnected)
                    {
                        ProcessState(state);
                        await Task.Delay(pollingRate);
                    }

                    state = GamePad.GetState(PlayerIndex.Four);
                    if (state.IsConnected)
                    {
                        ProcessState(state);
                        await Task.Delay(pollingRate);
                    }

                    await Task.Delay(pollingRate);
                }
            });
        }
Exemplo n.º 3
0
        public XInputDevice(InputManager input, PlayniteApplication app)
        {
            foreach (PlayerIndex index in Enum.GetValues(typeof(PlayerIndex)))
            {
                prevStates.Add(index, new Dictionary <XInputButton, ButtonState>()
                {
                    { XInputButton.A, ButtonState.Released },
                    { XInputButton.B, ButtonState.Released },
                    { XInputButton.Back, ButtonState.Released },
                    { XInputButton.DPadDown, ButtonState.Released },
                    { XInputButton.DPadLeft, ButtonState.Released },
                    { XInputButton.DPadRight, ButtonState.Released },
                    { XInputButton.DPadUp, ButtonState.Released },
                    { XInputButton.Guide, ButtonState.Released },
                    { XInputButton.LeftShoulder, ButtonState.Released },
                    { XInputButton.LeftStick, ButtonState.Released },
                    { XInputButton.LeftStickDown, ButtonState.Released },
                    { XInputButton.LeftStickLeft, ButtonState.Released },
                    { XInputButton.LeftStickRight, ButtonState.Released },
                    { XInputButton.LeftStickUp, ButtonState.Released },
                    { XInputButton.RightShoulder, ButtonState.Released },
                    { XInputButton.RightStick, ButtonState.Released },
                    { XInputButton.RightStickDown, ButtonState.Released },
                    { XInputButton.RightStickLeft, ButtonState.Released },
                    { XInputButton.RightStickRight, ButtonState.Released },
                    { XInputButton.RightStickUp, ButtonState.Released },
                    { XInputButton.Start, ButtonState.Released },
                    { XInputButton.TriggerLeft, ButtonState.Released },
                    { XInputButton.TriggerRight, ButtonState.Released },
                    { XInputButton.X, ButtonState.Released },
                    { XInputButton.Y, ButtonState.Released }
                });
            }

            inputManager = input;
            application  = app;
            context      = SynchronizationContext.Current;

            Task.Run(async() =>
            {
                while (true)
                {
                    if (isDisposed)
                    {
                        return;
                    }

                    if (app.IsActive != true)
                    {
                        await Task.Delay(pollingRate);
                        continue;
                    }

                    var state = GamePad.GetState(PlayerIndex.One);
                    if (state.IsConnected)
                    {
                        ProcessState(state, PlayerIndex.One);
                        await Task.Delay(pollingRate);
                    }

                    state = GamePad.GetState(PlayerIndex.Two);
                    if (state.IsConnected)
                    {
                        ProcessState(state, PlayerIndex.Two);
                        await Task.Delay(pollingRate);
                    }

                    state = GamePad.GetState(PlayerIndex.Three);
                    if (state.IsConnected)
                    {
                        ProcessState(state, PlayerIndex.Three);
                        await Task.Delay(pollingRate);
                    }

                    state = GamePad.GetState(PlayerIndex.Four);
                    if (state.IsConnected)
                    {
                        ProcessState(state, PlayerIndex.Four);
                        await Task.Delay(pollingRate);
                    }

                    await Task.Delay(pollingRate);
                }
            });
        }