private bool CheckActionValid(DS4Windows.SpecialAction action, DS4Windows.SpecialAction.ActionTypeId typeId) { bool valid = false; switch (typeId) { case DS4Windows.SpecialAction.ActionTypeId.Macro: valid = macroActVM.IsValid(action); break; case DS4Windows.SpecialAction.ActionTypeId.Program: valid = launchProgVM.IsValid(action); break; case DS4Windows.SpecialAction.ActionTypeId.Profile: valid = loadProfileVM.IsValid(action); break; case DS4Windows.SpecialAction.ActionTypeId.Key: valid = pressKeyVM.IsValid(action); break; case DS4Windows.SpecialAction.ActionTypeId.DisconnectBT: valid = disconnectBtVM.IsValid(action); break; case DS4Windows.SpecialAction.ActionTypeId.BatteryCheck: valid = checkBatteryVM.IsValid(action); break; case DS4Windows.SpecialAction.ActionTypeId.MultiAction: valid = multiActButtonVM.IsValid(action); break; case DS4Windows.SpecialAction.ActionTypeId.SASteeringWheelEmulationCalibrate: valid = saSteeringWheelVM.IsValid(action); break; } return(valid); }
public SpecialActionEditor(int deviceNum, ProfileList profileList, DS4Windows.SpecialAction specialAction = null) { InitializeComponent(); triggerBoxes = new List <CheckBox>() { crossTrigCk, circleTrigCk, squareTrigCk, triangleTrigCk, optionsTrigCk, shareTrigCk, upTrigCk, downTrigCk, leftTrigCk, rightTrigCk, psTrigCk, l1TrigCk, r1TrigCk, l2TrigCk, r2TrigCk, l3TrigCk, r3TrigCk, leftTouchTrigCk, upperTouchTrigCk, multitouchTrigCk, rightTouchTrigCk, lsuTrigCk, lsdTrigCk, lslTrigCk, lsrTrigCk, rsuTrigCk, rsdTrigCk, rslTrigCk, rsrTrigCk, swipeUpTrigCk, swipeDownTrigCk, swipeLeftTrigCk, swipeRightTrigCk, tiltUpTrigCk, tiltDownTrigCk, tiltLeftTrigCk, tiltRightTrigCk, }; unloadTriggerBoxes = new List <CheckBox>() { unloadCrossTrigCk, unloadCircleTrigCk, unloadSquareTrigCk, unloadTriangleTrigCk, unloadOptionsTrigCk, unloadShareTrigCk, unloadUpTrigCk, unloadDownTrigCk, unloadLeftTrigCk, unloadRightTrigCk, unloadPsTrigCk, unloadL1TrigCk, unloadR1TrigCk, unloadL2TrigCk, unloadR2TrigCk, unloadL3TrigCk, unloadR3TrigCk, unloadLeftTouchTrigCk, unloadUpperTouchTrigCk, unloadMultitouchTrigCk, unloadRightTouchTrigCk, unloadLsuTrigCk, unloadLsdTrigCk, unloadLslTrigCk, unloadLsrTrigCk, unloadRsuTrigCk, unloadRsdTrigCk, unloadRslTrigCk, unloadRsrTrigCk, unloadSwipeUpTrigCk, unloadSwipeDownTrigCk, unloadSwipeLeftTrigCk, unloadSwipeRightTrigCk, unloadTiltUpTrigCk, unloadTiltDownTrigCk, unloadTiltLeftTrigCk, unloadTiltRightTrigCk, }; specialActVM = new SpecialActEditorViewModel(deviceNum, specialAction); macroActVM = new MacroViewModel(); launchProgVM = new LaunchProgramViewModel(); loadProfileVM = new LoadProfileViewModel(profileList); pressKeyVM = new PressKeyViewModel(); disconnectBtVM = new DisconnectBTViewModel(); checkBatteryVM = new CheckBatteryViewModel(); multiActButtonVM = new MultiActButtonViewModel(); saSteeringWheelVM = new SASteeringWheelViewModel(); // Hide tab headers. Tab content will still be visible blankActTab.Visibility = Visibility.Collapsed; macroActTab.Visibility = Visibility.Collapsed; launchProgActTab.Visibility = Visibility.Collapsed; loadProfileTab.Visibility = Visibility.Collapsed; pressKetActTab.Visibility = Visibility.Collapsed; disconnectBTTab.Visibility = Visibility.Collapsed; checkBatteryTab.Visibility = Visibility.Collapsed; multiActTab.Visibility = Visibility.Collapsed; sixaxisWheelCalibrateTab.Visibility = Visibility.Collapsed; if (specialAction != null) { LoadAction(specialAction); } actionTypeTabControl.DataContext = specialActVM; actionTypeCombo.DataContext = specialActVM; actionNameTxt.DataContext = specialActVM; triggersListView.DataContext = specialActVM; macroActTab.DataContext = macroActVM; launchProgActTab.DataContext = launchProgVM; loadProfileTab.DataContext = loadProfileVM; pressKetActTab.DataContext = pressKeyVM; disconnectBTTab.DataContext = disconnectBtVM; checkBatteryTab.DataContext = checkBatteryVM; multiActTab.DataContext = multiActButtonVM; sixaxisWheelCalibrateTab.DataContext = saSteeringWheelVM; SetupLateEvents(); }
private void LoadAction(DS4Windows.SpecialAction specialAction) { specialActVM.LoadAction(specialAction); string[] tempTriggers = specialActVM.ControlTriggerList.ToArray(); foreach (string control in tempTriggers) { bool found = false; foreach (CheckBox box in triggerBoxes) { if (box.Tag.ToString() == control) { box.IsChecked = true; found = true; break; } } if (!found) { specialActVM.ControlTriggerList.Remove(control); } } tempTriggers = specialActVM.ControlUnloadTriggerList.ToArray(); foreach (string control in tempTriggers) { bool found = false; foreach (CheckBox box in unloadTriggerBoxes) { if (box.Tag.ToString() == control) { box.IsChecked = true; found = true; break; } } if (!found) { specialActVM.ControlUnloadTriggerList.Remove(control); } } switch (specialAction.typeID) { case DS4Windows.SpecialAction.ActionTypeId.Macro: macroActVM.LoadAction(specialAction); break; case DS4Windows.SpecialAction.ActionTypeId.Program: launchProgVM.LoadAction(specialAction); break; case DS4Windows.SpecialAction.ActionTypeId.Profile: loadProfileVM.LoadAction(specialAction); break; case DS4Windows.SpecialAction.ActionTypeId.Key: pressKeyVM.LoadAction(specialAction); break; case DS4Windows.SpecialAction.ActionTypeId.DisconnectBT: disconnectBtVM.LoadAction(specialAction); break; case DS4Windows.SpecialAction.ActionTypeId.BatteryCheck: checkBatteryVM.LoadAction(specialAction); break; case DS4Windows.SpecialAction.ActionTypeId.MultiAction: multiActButtonVM.LoadAction(specialAction); break; case DS4Windows.SpecialAction.ActionTypeId.SASteeringWheelEmulationCalibrate: saSteeringWheelVM.LoadAction(specialAction); break; } }
private void SaveBtn_Click(object sender, RoutedEventArgs e) { DS4Windows.SpecialAction.ActionTypeId typeId = specialActVM.TypeAssoc[specialActVM.ActionTypeIndex]; DS4Windows.SpecialAction tempAct = new DS4Windows.SpecialAction("null", "null", "null", "null"); bool valid = specialActVM.IsValid(tempAct); if (valid) { specialActVM.SetAction(tempAct); valid = CheckActionValid(tempAct, typeId); } else if (specialActVM.ExistingName) { MessageBox.Show(Properties.Resources.ActionExists); } if (valid) { bool editMode = specialActVM.EditMode; if (editMode && specialActVM.SavedAction.name != specialActVM.ActionName) { DS4Windows.Global.RemoveAction(specialActVM.SavedAction.name); editMode = false; } switch (typeId) { case DS4Windows.SpecialAction.ActionTypeId.Macro: macroActVM.SaveAction(tempAct, editMode); break; case DS4Windows.SpecialAction.ActionTypeId.Program: launchProgVM.SaveAction(tempAct, editMode); break; case DS4Windows.SpecialAction.ActionTypeId.Profile: loadProfileVM.SaveAction(tempAct, editMode); break; case DS4Windows.SpecialAction.ActionTypeId.Key: pressKeyVM.SaveAction(tempAct, editMode); break; case DS4Windows.SpecialAction.ActionTypeId.DisconnectBT: disconnectBtVM.SaveAction(tempAct, editMode); break; case DS4Windows.SpecialAction.ActionTypeId.BatteryCheck: checkBatteryVM.SaveAction(tempAct, editMode); break; case DS4Windows.SpecialAction.ActionTypeId.MultiAction: multiActButtonVM.SaveAction(tempAct, editMode); break; case DS4Windows.SpecialAction.ActionTypeId.SASteeringWheelEmulationCalibrate: saSteeringWheelVM.SaveAction(tempAct, editMode); break; } Saved?.Invoke(this, tempAct.name); } }
public abstract bool IsValid(DS4Windows.SpecialAction action);