Exemple #1
0
 private void HandleMouseWheel(object sender, MouseEventArgs e)
 {
     // we only want mouse wheel events when remote play is foreground application
     if (ProcessUtil.IsRemotePlayInForeground())
     {
         MouseWheelQueue.Enqueue(e);
     }
 }
Exemple #2
0
        public DualShockState GetState()
        {
            string screenWidth  = Screen.PrimaryScreen.Bounds.Width.ToString();
            string screenHeight = Screen.PrimaryScreen.Bounds.Height.ToString();

            Log.Verbose("GamepadProcessor.GetState screen width={0} height={1}", screenWidth, screenHeight);

            RequestsPerSecondCounter++;
            if (RequestsPerSecondTimer.ElapsedMilliseconds >= 1000)
            {
                Log.Verbose("GamepadProcessor.GetState  RequestsPerSecondCounter={0}", RequestsPerSecondCounter);
                RequestsPerSecondTimer.Restart();
                RequestsPerSecondCounter = 0;
            }

            Guid uuid = Guid.NewGuid();

            // Log.Verbose(uuid + " GamepadProcessor.GetState in a");

            // Create the default state to modify
            if (true)//CurrentState == null)
            {
                CurrentState = new DualShockState()
                {
                    Battery = 255
                };
            }

            if (!ProcessUtil.IsRemotePlayInForeground())
            {
                Log.Verbose(uuid + "GamepadProcessor.GetState return null");
                Utility.ShowCursor(true);
                return(null);
            }

            //Stopwatch OnReceiveDataTimer = new Stopwatch();
            //OnReceiveDataTimer.Start();

            // Log.Verbose(uuid + " GamepadProcessor.GetState in b");

            HandleButtonPressed();

            HandleAimToggle();
            HandleMouseCursor();
            MouseWheelProcessor.Process(CurrentState);

            //Log.Verbose(uuid + " GamepadProcessor.GetState out " + DualShockStateToString(ref CurrentState));

            //Log.Verbose(uuid + " GamepadProcessor.GetState OnReceiveDataTimer {0} ms ", + OnReceiveDataTimer.ElapsedMilliseconds);
            //OnReceiveDataTimer.Stop();

            Log.Verbose(uuid + "GamepadProcessor.GetState return THING");
            return(CurrentState);
        }
Exemple #3
0
        public void HandleMouseCursor()
        {
            bool EnableMouseInput = InstanceSettings.EnableMouseInput && ProcessUtil.IsRemotePlayInForeground();

            if (EnableMouseInput)
            {
                Utility.ShowCursor(false);

                // mouse displacement relative to the anchor
                MouseDirection = FeedMouseCoords();
                // Log.Verbose("GamepadProcessor.HandleMouseCursor rawX={0}, rawY={1}", MouseDirection.X, MouseDirection.Y);

                if (IsAimingWithAimSpecificSensitivity())
                {
                    // Log.Verbose("GamepadProcessor.HandleMouseCursor MouseXAxisSensitivity_AIM_Modifier " + UserSettings.MouseXAxisSensitivityAimModifier);
                    MouseDirection = new Vector2i(
                        (int)(MouseDirection.X * UserSettings.MouseXAxisSensitivityAimModifier),
                        (int)(MouseDirection.Y * UserSettings.MouseYAxisSensitivityAimModifier));
                }
                else
                {
                    // Log.Verbose("GamepadProcessor.HandleMouseCursor MouseXAxisSensitivity_LOOK_Modifier " + UserSettings.MouseXAxisSensitivityLookModifier);
                    MouseDirection = new Vector2i(
                        (int)(MouseDirection.X * UserSettings.MouseXAxisSensitivityLookModifier),
                        (int)(MouseDirection.Y * UserSettings.MouseYAxisSensitivityLookModifier));
                }
                // Log.Verbose("GamepadProcessor.HandleMouseCursor modifiedX={0}, modifiedY={1}", MouseDirection.X, MouseDirection.Y);


                Vector2 direction = new Vector2(MouseDirection.X, MouseDirection.Y);

                // Cap length to fit range.

                double normalizedLength = Utility.mapcap(direction.Length(),
                                                         UserSettings.MouseDistanceLowerRange, UserSettings.MouseDistanceUpperRange,
                                                         UserSettings.AnalogStickLowerRange / 100f, UserSettings.AnalogStickUpperRange / 100f);

                direction = Vector2.Normalize(direction);


                // L3R3 center is 127,
                // full left/up is 0
                // full right/down is 255
                byte scaledX = (byte)Utility.map(direction.X * normalizedLength, -1, 1, 0, 255);
                byte scaledY = (byte)Utility.map(direction.Y * normalizedLength, -1, 1, 0, 255);

                direction.X *= (float)UserSettings.XYRatio;
                direction    = Vector2.Normalize(direction);

                if (float.IsNaN(direction.X) && float.IsNaN(direction.Y))
                {
                    scaledX = 127;
                    scaledY = 127;
                }

                if (scaledX != 127 && scaledX != 128 && scaledY != 127 && scaledY != 128)
                {
                    // Log.Verbose("GamepadProcessor.HandleMouseCursor scaledX={0} scaledY={1}", scaledX, scaledY);
                }

                if (UserSettings.MouseControlsL3)
                {
                    CurrentState.LX = scaledX;
                    CurrentState.LY = scaledY;
                }

                if (UserSettings.MouseControlsR3)
                {
                    CurrentState.RX = scaledX;
                    CurrentState.RY = scaledY;
                }
            }
        }