public AxisAssignWindow(InGameAxAssgn axisAssign, object sender)
        {
            InitializeComponent();

            this.axisAssign = axisAssign;
            whoCalledWindow = ((System.Windows.Controls.Button)sender).Name;

            devNumTmp   = axisAssign.GetDeviceNumber();
            phyAxNumTmp = axisAssign.GetPhysicalNumber();

            MouseWheel += Detect_MouseWheel;
        }
コード例 #2
0
        public void Reset()
        {
            AxisValueProgress.Value = CommonConstants.AXISMIN;

            axisAssign = (InGameAxAssgn)MainWindow.inGameAxis[whoCalledWindow];

            if (axisAssign.GetDeviceNumber() > -1 | axisAssign.GetDeviceNumber() == -2)
            {
                status           = Status.ShowAxisStatus;
                Retry.Content    = "CLEAR";
                Retry.Visibility = Visibility.Visible;
                if (whoCalledWindow == "Throttle")
                {
                    SetAB.Visibility = Visibility.Visible;
                    Idle.Visibility  = Visibility.Visible;

                    if (((InGameAxAssgn)MainWindow.inGameAxis[whoCalledWindow]).GetDeviceNumber() >= 0)
                    {
                        AB   = MainWindow.deviceControl.joyAssign[((InGameAxAssgn)MainWindow.inGameAxis[whoCalledWindow]).GetDeviceNumber()].detentPosition.GetAB();
                        IDLE = MainWindow.deviceControl.joyAssign[((InGameAxAssgn)MainWindow.inGameAxis[whoCalledWindow]).GetDeviceNumber()].detentPosition.GetIDLE();
                    }
                }
            }

            Saturation.SelectedIndex = (int)axisAssign.GetSaturation();
            DeadZone.SelectedIndex   = (int)axisAssign.GetDeadzone();
            Invert.IsChecked         = axisAssign.GetInvert();

            devNumTmp   = axisAssign.GetDeviceNumber();
            phyAxNumTmp = axisAssign.GetPhysicalNumber();

            Joynum = new JoyAxisNeutralValue[MainWindow.deviceControl.joyAssign.Length];
            for (int i = 0; i < MainWindow.deviceControl.joyAssign.Length; i++)
            {
                Joynum[i] = new JoyAxisNeutralValue();
            }

            for (int i = 0; i < MainWindow.deviceControl.joyAssign.Length; i++)
            {
                for (int ii = 0; ii < 8; ii++)
                {
                    Joynum[i].NeutralValue[ii] = MainWindow.deviceControl.joyAssign[i].JoyAxisState(ii);
                }
            }
        }
コード例 #3
0
        /// <summary>
        /// Callback When clicked "Assign" Button. Opens AxisAssignWindow.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Assign_Click(object sender, RoutedEventArgs e)
        {
            AxisMovingTimer.Stop();
            NewDeviceDetectTimer.Stop();

            string whocalledwindow = ((System.Windows.Controls.Button)sender).Name;

            InGameAxAssgn axisAssign = AxisAssignWindow.ShowAxisAssignWindow(this, (InGameAxAssgn)inGameAxis[whocalledwindow], sender);

            // Reset PhysicalAxis previously assigned to same axis
            // In case of axis has been unassigned and saved.
            for (int i = 0; i < deviceControl.joyAssign.Length; i++)
            {
                deviceControl.joyAssign[i].ResetPreviousAxis(whocalledwindow);
            }
            if (deviceControl.mouse.GetMouseAxis().GetAxisName() == whocalledwindow)
            {
                deviceControl.mouse.LoadAx(new AxAssgn());
            }

            // When axis has been assigned.
            if (axisAssign.GetDeviceNumber() > -1)
            {
                deviceControl.joyAssign[axisAssign.GetDeviceNumber()].axis[axisAssign.GetPhysicalNumber()]
                    = new AxAssgn(whocalledwindow, axisAssign);
            }
            if (axisAssign.GetDeviceNumber() == -2)
            {
                wheelValue = 0;
                deviceControl.mouse.LoadAx(new AxAssgn(whocalledwindow, axisAssign));
            }

            joyAssign_2_inGameAxis();
            ResetAssgnWindow();

            NewDeviceDetectTimer.Start();
            AxisMovingTimer.Start();
        }