/// <summary> /// Write Joy Assignment Status to KeyMappingGridCell. /// </summary> public string KeyMappingPreviewPOV(KeyAssgn keyAssign) { string result; result = ""; for (int i = 0; i < this.pov.Length; i++) { for (int ii = 0; ii < this.pov[i].direction.Length; ii++) { string direction = this.pov[i].GetDirection(ii); for (int iii = 0; iii < 2; iii++) { if (this.pov[i].direction[ii].GetCallback((Pinky)iii) == "SimDoNothing") { continue; } if (keyAssign.GetCallback() != this.pov[i].direction[ii].GetCallback((Pinky)iii)) { continue; } if (result != "") { result += "\n"; } result += " POV" + (i + 1) + "." + direction; if (iii == 1) //PRESS + SHIFT { result += " SHFT"; } } } } return(result); }
/// <summary> /// Unassign keyboard key or joystick button when double clicked a Datagrid cell. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void DataGrid_MouseButtonDoubleClick(object sender, MouseButtonEventArgs e) { KeyMappingTimer.Stop(); KeyAssgn selectedItem = (KeyAssgn)KeyMappingGrid.SelectedItem; if (selectedItem == null) { return; } if (KeyMappingGrid.CurrentColumn == null) { return; } if (selectedItem.GetVisibility() != "White") { return; } if (selectedItem.GetCallback() == "SimDoNothing") { return; } KeyMappingWindow.ShowKeyMappingWindow(selectedItem, keyFile, deviceControl, sender); KeyMappingGrid.Items.Refresh(); KeyMappingGrid.UnselectAllCells(); KeyMappingTimer.Start(); }
/// <summary> /// Write Joy Assignment Status to KeyMappingGridCell. /// </summary> public string KeyMappingPreviewDX(KeyAssgn keyAssign) { string result; result = ""; for (int i = 0; i < this.dx.Length; i++) { for (int ii = 0; ii < this.dx[i].assign.Length; ii++) { if (this.dx[i].assign[ii].GetCallback() == "SimDoNothing") { continue; } if (keyAssign.GetCallback() != this.dx[i].assign[ii].GetCallback()) { continue; } if (result != "") { result += "\n"; } result += " DX" + (i + 1); if (ii == 1) //PRESS + SHIFT { result += " SHFT"; } if (ii == 2) //RELEASE { result += " REL"; } if (ii == 3) //RELEASE + SHIFT { result += " REL SHFT"; } if (this.dx[i].assign[ii].GetInvoke() == Invoke.Down) { result += " INV: DN"; } if (this.dx[i].assign[ii].GetInvoke() == Invoke.Up) { result += " INV: UP"; } } } return(result); }
private void JoystickButtonMonitor() { for (int i = 0; i < deviceControl.devList.Count; i++) { byte[] buttons; int[] povs; buttons = deviceControl.joyStick[i].CurrentJoystickState.GetButtons(); for (int ii = 0; ii < 32; ii++) { if (buttons[ii] == 128 && deviceControl.joyAssign[i].dx[ii].assign[0].GetCallback() == "SimHotasPinkyShift" && pressedByHand == false) { Select_PinkyShift.IsChecked = false; } if (buttons[ii] == 0 && deviceControl.joyAssign[i].dx[ii].assign[0].GetCallback() == "SimHotasPinkyShift" && pressedByHand == false) { Select_PinkyShift.IsChecked = true; } if (buttons[ii] == neutralButtons[i].buttons[ii]) { continue; } if (buttons[ii] == 0) { getNeutralPosition(); continue; } if (deviceControl.joyAssign[i].dx[ii].assign[0].GetCallback() == "SimHotasPinkyShift" && pressedByHand == false) { continue; } Pinky pinkyStatus = Pinky.UnShift; Behaviour behaviourStatus = Behaviour.Press; if (Select_PinkyShift.IsChecked == false) { pinkyStatus = Pinky.Shift; } if (Select_DX_Release.IsChecked == false) { behaviourStatus = Behaviour.Release; } // Construct DX button instance. if (tmpCallback.GetCallback() == "SimHotasPinkyShift") { tmpJoyStick[i].dx[ii].Assign(tmpCallback.GetCallback(), Pinky.UnShift, Behaviour.Press, Invoke.Default, 0); tmpJoyStick[i].dx[ii].Assign(tmpCallback.GetCallback(), Pinky.Shift, Behaviour.Press, Invoke.Default, 0); } else { tmpJoyStick[i].dx[ii].Assign(tmpCallback.GetCallback(), pinkyStatus, behaviourStatus, invokeStatus, 0); } //while (buttons[ii] != neutralButtons[i].buttons[ii]) //{ // buttons = deviceControl.joyStick[i].CurrentJoystickState.GetButtons(); //} getNeutralPosition(); return; } povs = deviceControl.joyStick[i].CurrentJoystickState.GetPointOfView(); buttons = deviceControl.joyStick[i].CurrentJoystickState.GetButtons(); for (int ii = 0; ii < 4; ii++) { if (povs[ii] == neutralButtons[i].povs[ii]) { continue; } if (povs[ii] == -1) { getNeutralPosition(); continue; } Pinky pinkyStatus = Pinky.UnShift; if (Select_PinkyShift.IsChecked == false) { pinkyStatus = Pinky.Shift; } // Construct POV button instance. tmpJoyStick[i].pov[ii].Assign(povs[ii], tmpCallback.GetCallback(), pinkyStatus, 0); //while (povs[ii] != neutralButtons[i].povs[ii]) //{ // povs = deviceControl.joyStick[i].CurrentJoystickState.GetPointOfView(); //} getNeutralPosition(); return; } } }