Ejemplo n.º 1
0
        internal static string SaveEventsToFile(IEnumerable <ProtobufGenerated.InputEvent> inputEventList, string name)
        {
            var saveFileDialog = new SaveFileDialog
            {
                FileName = name,
                Filter   = MacroFilesFilter,
            };

            if (saveFileDialog.ShowDialog() != true)
            {
                return(null);
            }

            var serializedEvents = MacroViewModel.SerializeEventsToByteArray(inputEventList);

            File.WriteAllBytes(saveFileDialog.FileName, serializedEvents);
            return(saveFileDialog.SafeFileName);
        }
Ejemplo n.º 2
0
        internal static IEnumerable <ProtobufGenerated.InputEvent> LoadEventsFromFile(out string name)
        {
            var openFileDialog = new OpenFileDialog()
            {
                Filter = MacroFilesFilter,
            };

            if (openFileDialog.ShowDialog() != true)
            {
                name = null;
                return(null);
            }

            var serializedEvents   = File.ReadAllBytes(openFileDialog.FileName);
            var deserializedEvents = MacroViewModel.DeserializeEventsFromByteArray(serializedEvents);

            name = openFileDialog.SafeFileName;
            return(deserializedEvents);
        }
Ejemplo n.º 3
0
        public static bool IsDirty(this MacroViewModel currentMacro)
        {
            if (currentMacro == null)
            {
                return(false);
            }

            if (currentMacro.IsChanged)
            {
                return(currentMacro.IsChanged);
            }

            var stack = new Stack <IChangeTracking>();

            foreach (var ag in currentMacro.ViewModelList)
            {
                stack.Push(ag);
            }

            bool isDirty = false;

            while (!isDirty && stack.Count > 0)
            {
                var current = stack.Pop();

                if (current.IsChanged)
                {
                    isDirty = true;
                    continue;
                }

                if (current is ActionGroupViewModel agvm)
                {
                    foreach (var a in agvm.ViewModelList)
                    {
                        stack.Push(a);
                    }
                }
            }

            return(isDirty);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Convert the resolution of the passed in macro
        /// </summary>
        /// <param name="oldMacro">The macro to convert</param>
        /// <param name="newX">new resolution in the X axis, can not be 0</param>
        /// <param name="newY">new resolution in the Y axis, can not be 0</param>
        /// <returns>return null if can not convert</returns>
        public MacroViewModel ConvertResolution(MacroViewModel oldMacro, int newX, int newY, MidpointRounding roundMode = MidpointRounding.ToEven)
        {
            //check for invalid input
            if (oldMacro == null || newX <= 0 || newY <= 0)
            {
                return(null);
            }

            //make copy
            var newMacro = modelFactory.NewMacroViewModel();

            newMacro.PopulateProperties(oldMacro.ConvertBack());

            //convert
            double scaleX = (double)newX / oldMacro.OriginalX;
            double scaleY = (double)newY / oldMacro.OriginalY;

            newMacro.ViewModelList = new ObservableCollection <IActionViewModel>(oldMacro.ViewModelList.Select(i => i.ChangeResolution(scaleX, scaleY, roundMode)));

            return(newMacro);
        }
        public IActionResult Index(MacroViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View("MacroCalculator"));
            }
            var macro          = _mapper.Map <MacroViewModel, Macro>(model);
            var macroResult    = Calculator.MacroCalculator(macro);
            var macroNutrients = Calculator.CalculateMacronutrients(macro, macro.Carb, macro.Protein, macro.Fat);

            if (macroNutrients == null)
            {
                ViewBag.ErrorMessage = "Macronutrient sum must be 100";
                return(View("MacroCalculator"));
            }
            ViewBag.Result   = Convert.ToInt32(macroResult);
            ViewBag.Carbs    = Convert.ToInt32(macroNutrients["carbs"]);
            ViewBag.Proteins = Convert.ToInt32(macroNutrients["proteins"]);
            ViewBag.Fats     = Convert.ToInt32(macroNutrients["fats"]);

            return(View("MacroCalculator"));
        }
Ejemplo n.º 6
0
        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();
        }