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); }
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); } }