示例#1
0
        private void updateMouser(PSMoveSharpState state)
        {
            UInt16 just_pressed;
            UInt16 just_released;
            {
                UInt16 changed_buttons = Convert.ToUInt16(state.gemStates[0].pad.digitalbuttons ^ last_buttons);
                just_pressed = Convert.ToUInt16(changed_buttons & state.gemStates[0].pad.digitalbuttons);
                just_released = Convert.ToUInt16(changed_buttons & ~state.gemStates[0].pad.digitalbuttons);
                last_buttons = state.gemStates[0].pad.digitalbuttons;
            }

            checkBoxCalibrated.Checked = (state.positionPointerStates[0].valid == 1);
            checkBoxEnabled.Checked = fake_mouse_events;
            labelMovePosValX.Text = (state.positionPointerStates[0].valid == 1) ? state.positionPointerStates[0].normalized_x.ToString("N3") : "N/A";
            labelMovePosValY.Text = (state.positionPointerStates[0].valid == 1) ? state.positionPointerStates[0].normalized_y.ToString("N3") : "N/A";
            buttonEnable.Text = fake_mouse_events ? "Disable" : "Enable";

            if (state.positionPointerStates[0].valid == 1)
            {
                if ((just_pressed & PSMoveSharpConstants.ctrlSelect) == PSMoveSharpConstants.ctrlSelect)
                {
                    MouserProgram.moveClient.SendRequestPacket(PSMoveClient.ClientRequest.PSMoveClientRequestPositionPointerDisable, 0);
                    Console.WriteLine("Disabling pointer");
                    calibration_step = 0;
                }

                if (fake_mouse_events)
                {
                    if ((just_pressed & PSMoveSharpConstants.ctrlCross) == PSMoveSharpConstants.ctrlCross)
                    {
                        MouserRecenter(state.positionPointerStates[0].normalized_x, state.positionPointerStates[0].normalized_y);
                    }
                    else
                    {
                        MouserMove(state.positionPointerStates[0].normalized_x, state.positionPointerStates[0].normalized_y);
                    }

                    if (((just_pressed & PSMoveSharpConstants.ctrlTick) == PSMoveSharpConstants.ctrlTick))
                    {
                        SimulateMouseClickEvent(MOUSEEVENTF_LEFTDOWN);
                    }
                    else if (((just_released & PSMoveSharpConstants.ctrlTick) == PSMoveSharpConstants.ctrlTick))
                    {
                        SimulateMouseClickEvent(MOUSEEVENTF_LEFTUP);
                    }

                    if (((just_pressed & PSMoveSharpConstants.ctrlCircle) == PSMoveSharpConstants.ctrlCircle))
                    {
                        SimulateMouseClickEvent(MOUSEEVENTF_RIGHTDOWN);
                    }
                    else if (((just_released & PSMoveSharpConstants.ctrlCircle) == PSMoveSharpConstants.ctrlCircle))
                    {
                        SimulateMouseClickEvent(MOUSEEVENTF_RIGHTUP);
                    }
                }
            }
            else if (((just_pressed & PSMoveSharpConstants.ctrlTick) == PSMoveSharpConstants.ctrlTick) &&
                    ((last_buttons & PSMoveSharpConstants.ctrlTrigger) == PSMoveSharpConstants.ctrlTrigger))
            {
                switch (calibration_step)
                {
                    case ClientCalibrationStep.Left:
                        MouserProgram.moveClient.SendRequestPacket(PSMoveClient.ClientRequest.PSMoveClientRequestPositionPointerSetLeft, 0);
                        break;
                    case ClientCalibrationStep.Right:
                        MouserProgram.moveClient.SendRequestPacket(PSMoveClient.ClientRequest.PSMoveClientRequestPositionPointerSetRight, 0);
                        break;
                    case ClientCalibrationStep.Bottom:
                        MouserProgram.moveClient.SendRequestPacket(PSMoveClient.ClientRequest.PSMoveClientRequestPositionPointerSetBottom, 0);
                        break;
                    case ClientCalibrationStep.Top:
                        MouserProgram.moveClient.SendRequestPacket(PSMoveClient.ClientRequest.PSMoveClientRequestPositionPointerSetTop, 0);
                        break;
                }

                Console.WriteLine("Calibration tick");
                calibration_step++;

                if (calibration_step == ClientCalibrationStep.Done)
                {
                    MouserProgram.moveClient.SendRequestPacket(PSMoveClient.ClientRequest.PSMoveClientRequestPositionPointerEnable, 0);
                    Console.WriteLine("Enabling pointer");
                }
            }
        }
示例#2
0
        private void updateMouser(PSMoveSharpState state)
        {
            UInt16 just_pressed;
            UInt16 just_released;

            {
                UInt16 changed_buttons = Convert.ToUInt16(state.gemStates[0].pad.digitalbuttons ^ last_buttons);
                just_pressed  = Convert.ToUInt16(changed_buttons & state.gemStates[0].pad.digitalbuttons);
                just_released = Convert.ToUInt16(changed_buttons & ~state.gemStates[0].pad.digitalbuttons);
                last_buttons  = state.gemStates[0].pad.digitalbuttons;
            }

            checkBoxCalibrated.Checked = (state.positionPointerStates[0].valid == 1);
            checkBoxEnabled.Checked    = fake_mouse_events;
            labelMovePosValX.Text      = (state.positionPointerStates[0].valid == 1) ? state.positionPointerStates[0].normalized_x.ToString("N3") : "N/A";
            labelMovePosValY.Text      = (state.positionPointerStates[0].valid == 1) ? state.positionPointerStates[0].normalized_y.ToString("N3") : "N/A";
            buttonEnable.Text          = fake_mouse_events ? "Disable" : "Enable";

            if (state.positionPointerStates[0].valid == 1)
            {
                if ((just_pressed & PSMoveSharpConstants.ctrlSelect) == PSMoveSharpConstants.ctrlSelect)
                {
                    MouserProgram.moveClient.SendRequestPacket(PSMoveClient.ClientRequest.PSMoveClientRequestPositionPointerDisable, 0);
                    Console.WriteLine("Disabling pointer");
                    calibration_step = 0;
                }

                if (fake_mouse_events)
                {
                    if ((just_pressed & PSMoveSharpConstants.ctrlCross) == PSMoveSharpConstants.ctrlCross)
                    {
                        MouserRecenter(state.positionPointerStates[0].normalized_x, state.positionPointerStates[0].normalized_y);
                    }
                    else
                    {
                        MouserMove(state.positionPointerStates[0].normalized_x, state.positionPointerStates[0].normalized_y);
                    }

                    if (((just_pressed & PSMoveSharpConstants.ctrlTick) == PSMoveSharpConstants.ctrlTick))
                    {
                        SimulateMouseClickEvent(MOUSEEVENTF_LEFTDOWN);
                    }
                    else if (((just_released & PSMoveSharpConstants.ctrlTick) == PSMoveSharpConstants.ctrlTick))
                    {
                        SimulateMouseClickEvent(MOUSEEVENTF_LEFTUP);
                    }

                    if (((just_pressed & PSMoveSharpConstants.ctrlCircle) == PSMoveSharpConstants.ctrlCircle))
                    {
                        SimulateMouseClickEvent(MOUSEEVENTF_RIGHTDOWN);
                    }
                    else if (((just_released & PSMoveSharpConstants.ctrlCircle) == PSMoveSharpConstants.ctrlCircle))
                    {
                        SimulateMouseClickEvent(MOUSEEVENTF_RIGHTUP);
                    }
                }
            }
            else if (((just_pressed & PSMoveSharpConstants.ctrlTick) == PSMoveSharpConstants.ctrlTick) &&
                     ((last_buttons & PSMoveSharpConstants.ctrlTrigger) == PSMoveSharpConstants.ctrlTrigger))
            {
                switch (calibration_step)
                {
                case ClientCalibrationStep.Left:
                    MouserProgram.moveClient.SendRequestPacket(PSMoveClient.ClientRequest.PSMoveClientRequestPositionPointerSetLeft, 0);
                    break;

                case ClientCalibrationStep.Right:
                    MouserProgram.moveClient.SendRequestPacket(PSMoveClient.ClientRequest.PSMoveClientRequestPositionPointerSetRight, 0);
                    break;

                case ClientCalibrationStep.Bottom:
                    MouserProgram.moveClient.SendRequestPacket(PSMoveClient.ClientRequest.PSMoveClientRequestPositionPointerSetBottom, 0);
                    break;

                case ClientCalibrationStep.Top:
                    MouserProgram.moveClient.SendRequestPacket(PSMoveClient.ClientRequest.PSMoveClientRequestPositionPointerSetTop, 0);
                    break;
                }

                Console.WriteLine("Calibration tick");
                calibration_step++;

                if (calibration_step == ClientCalibrationStep.Done)
                {
                    MouserProgram.moveClient.SendRequestPacket(PSMoveClient.ClientRequest.PSMoveClientRequestPositionPointerEnable, 0);
                    Console.WriteLine("Enabling pointer");
                }
            }
        }