Ejemplo n.º 1
0
        public ConditionViewModel(IEnumerable <MappingViewModel> mappings, ConditionNumber number, ACondition condition)
        {
            _mappings  = mappings;
            _number    = number;
            _condition = condition;

            if (_condition != null)
            {
                _name = _condition.Name;

                // assignment
                var options = _condition.AssignmentOptions.Select(a => new ConditionAssignment {
                    Target = a.Key, Description = a.Value
                });
                _assignmentOptions = new ObservableCollection <ConditionAssignment>(options);
                _assignment        = AssignmentOptions.SingleOrDefault(a => a.Target == _condition.Assignment);

                // value
                var enumDict = _condition.GetValueOptions();
                _valueOptions = new ObservableCollection <ConditionValue>(enumDict.Select(e => new ConditionValue {
                    Value = e.Key, Description = e.Value
                }));
                _value = ValueOptions.SingleOrDefault(v => v.Value != null && v.Value.Equals(_condition.GetValue()));
            }
        }
Ejemplo n.º 2
0
        protected override Func <bool> GetOutValue()
        {
            _buffManagerValue = GetInputValue(nameof(_buffManagerValue), _buffManagerValue);
            Target            = GetInputValue(nameof(Target), Target);;

            var conditionType = Type.GetType(_conditionAQName);

            if (conditionType == null)
            {
                return(null);
            }

            _condition = (ACondition)this.DynamicInputCreateInstance(conditionType, _buffManagerValue);

            return(_execute);
        }
Ejemplo n.º 3
0
        private bool _execute()
        {
            _buffManagerValue = GetInputValue(nameof(_buffManagerValue), _buffManagerValue);
            Target            = GetInputValue(nameof(Target), Target);;

            var conditionType = Type.GetType(_conditionAQName);

            if (conditionType == null)
            {
                return(false);
            }

            _condition = (ACondition <IIcSkSEntity>) this.DynamicInputCreateInstance(conditionType, _buffManagerValue);

            return(_condition.Check(Target));
        }
Ejemplo n.º 4
0
        private void setCondition(ConditionNumber number, MenuItemViewModel item)
        {
            ConditionProxy proxy     = null;
            ACondition     condition = null;

            if (item.Tag is ConditionProxy)
            {
                proxy = item.Tag as ConditionProxy;
            }
            else if (item.Tag is ACondition)
            {
                condition = item.Tag as ACondition;
            }

            foreach (var mapping in _mappings)
            {
                if (proxy != null)
                {
                    mapping.SetCondition(number, proxy);
                }
                else if (condition != null)
                {
                    mapping.SetCondition(number, condition);
                }
                else
                {
                    mapping.SetCondition(number, condition); // clear condition with null value
                }
            }

            if (number == ConditionNumber.One)
            {
                _selectedC1Conditions = new List <ACondition> {
                    _mappings.First().Conditions.Condition1
                }
            }
            ;
            else
            {
                _selectedC2Conditions = new List <ACondition> {
                    _mappings.First().Conditions.Condition2
                }
            };

            update();
        }
Ejemplo n.º 5
0
        public void SetCondition(ConditionNumber number, ACondition condition)
        {
            var changed = _mapping.SetCondition(number, condition);

            if (changed)
            {
                if (number == ConditionNumber.One)
                {
                    raisePropertyChanged("Condition1");
                }
                else
                {
                    raisePropertyChanged("Condition2");
                }
                raisePropertyChanged("ConditionExpression");
                IsChanged = true;
            }
        }
Ejemplo n.º 6
0
        //[TestMethod]
        public void TestConditionCallback()
        {
            List <ACondition>    cdts = new List <ACondition>();
            ConditionInput <int> i    = 128;

            var intCdt = new ConditionEvaluator
            {
                Condition = ConditionEvaluator.CONDITION.MORE,
                Input     = 127
            };

            intCdt.SetRefOutput(i);
            //intCdt.Callback = () => intCdt.Input++;

            //cdts.Add(intCdt);

            Assert.IsTrue(ACondition.EvaluateSet(cdts), "1 Conditions are not satisfied");
            //intCdt.Callback();
            Assert.IsFalse(ACondition.EvaluateSet(cdts), "2 Conditions are not satisfied");
        }
Ejemplo n.º 7
0
        //[TestMethod]
        public void TestConditions()
        {
            List <ACondition>    cdts = new List <ACondition>();
            ConditionInput <int> i    = new ConditionInput <int>
            {
                Value = 42
            };

            var intCdt = new ConditionEvaluator
            {
                Condition = ConditionEvaluator.CONDITION.EQUAL,
                Input     = 42
            };

            intCdt.SetRefOutput(i);
            //cdts.Add(intCdt);

            Assert.IsTrue(ACondition.EvaluateSet(cdts), "1 Conditions are not satisfied");

            i.Value = 0;
            Assert.IsFalse(ACondition.EvaluateSet(cdts), "2 Conditions are not satisfied");
        }
Ejemplo n.º 8
0
 /// <summary>
 /// Set condition by another condition.
 /// </summary>
 /// <param name="number">Number of condition</param>
 /// <param name="condition">ACondition or null to reset condition.</param>
 /// <returns>True if condition was changed.</returns>
 public bool SetCondition(ConditionNumber number, ACondition condition)
 {
     return(_conditions.SetCondition(_rawMapping.Settings, number, condition));
 }
Ejemplo n.º 9
0
        // code based on conditionsEditorViewMode::setCondition()
        public void rotateModifierCondition(int which, int step)
        {
            ConditionNumber number;

            if (which == 1)
            {
                number = ConditionNumber.One;
            }
            else
            {
                number = ConditionNumber.Two;
            }

            var conditions_editor = this.ConditionsEditor;
            var conditions_list   = conditions_editor.Conditions;

            var modifier_list = conditions_list.Where(x => x.Text == "Modifier").First().Children;

            foreach (var mapping in _mappings)
            {
                ACondition cur_condition;
                if (which == 1)
                {
                    cur_condition = mapping.Conditions.Condition1;
                }
                else
                {
                    cur_condition = mapping.Conditions.Condition2;
                }

                if (cur_condition == null)
                {
                    continue;       // ignore no condition
                }
                KnownCommands id = (KnownCommands)cur_condition.Id;
                if (!((id >= KnownCommands.Modifier_Modifier1) &&
                      (id <= KnownCommands.Modifier_Modifier8)))
                {
                    continue;       // ignore non-modifiers
                }
                var cur_value = cur_condition.GetValue();

                ////
                int cur_modifier = id - KnownCommands.Modifier_Modifier1 + 1;
                int new_modifier = rotate_modifier_key_int(cur_modifier, step);

                MenuItemViewModel item          = modifier_list[new_modifier - 1];
                ConditionProxy    new_proxy     = null;
                ACondition        new_condition = null;

                if (item.Tag is ConditionProxy)
                {
                    new_proxy = item.Tag as ConditionProxy;
                }
                else if (item.Tag is ACondition)
                {
                    new_condition = item.Tag as ACondition;
                }

                if (new_proxy != null)
                {
                    mapping.SetCondition(number, new_proxy);
                }
                else if (new_condition != null)
                {
                    mapping.SetCondition(number, new_condition);
                }
                else
                {
                    mapping.SetCondition(number, new_condition); // clear condition with null value
                }
                cur_condition.SetValue(cur_value);
                mapping.UpdateConditionExpression();
            }
            conditions_editor.Refresh();
        }
Ejemplo n.º 10
0
        // fixme: changes to assigment change conditions as well
        public void try_rotate_condition_value(ACondition command, int step)
        {
            Type   type      = command.GetType();
            string type_name = type.FullName;

            //if (command.MappingType == MappingType.Out) {
            //    return;
            //}

            if (false)
            {
                // This is just a placeholder

                ////// Start of Auto generated code
            }
            else if (type_name.Contains("Enums.CaptureSource"))
            {
                var command2  = (EnumCondition <CaptureSource>)command;
                var cur_value = command2.Value;
                command2.Value = cur_value.EnumRotate(step);
            }
            else if (type_name.Contains("Enums.CueLoopMoveMode"))
            {
                var command2  = (EnumCondition <CueLoopMoveMode>)command;
                var cur_value = command2.Value;
                command2.Value = cur_value.EnumRotate(step);
            }
            else if (type_name.Contains("Enums.DeckFlavor"))
            {
                var command2  = (EnumCondition <DeckFlavor>)command;
                var cur_value = command2.Value;
                command2.Value = cur_value.EnumRotate(step);
            }
            else if (type_name.Contains("Enums.FXUnitMode"))
            {
                var command2  = (EnumCondition <FXUnitMode>)command;
                var cur_value = command2.Value;
                command2.Value = cur_value.EnumRotate(step);
            }
            else if (type_name.Contains("Enums.HotcueType"))
            {
                var command2  = (EnumCondition <HotcueType>)command;
                var cur_value = command2.Value;
                command2.Value = cur_value.EnumRotate(step);
            }
            else if (type_name.Contains("Enums.ModifierValue"))
            {
                var command2  = (EnumCondition <ModifierValue>)command;
                var cur_value = command2.Value;
                command2.Value = cur_value.EnumRotate(step);
            }
            else if (type_name.Contains("Enums.OnOff"))
            {
                var command2  = (EnumCondition <OnOff>)command;
                var cur_value = command2.Value;
                command2.Value = cur_value.EnumRotate(step);
            }
            else if (type_name.Contains("Enums.PlayMode"))
            {
                var command2  = (EnumCondition <PlayMode>)command;
                var cur_value = command2.Value;
                command2.Value = cur_value.EnumRotate(step);
            }
            else if (type_name.Contains("Enums.Sample"))
            {
                var command2  = (EnumCondition <Sample>)command;
                var cur_value = command2.Value;
                command2.Value = cur_value.EnumRotate(step);
            }
            else if (type_name.Contains("Enums.SamplePage"))
            {
                var command2  = (EnumCondition <SamplePage>)command;
                var cur_value = command2.Value;
                command2.Value = cur_value.EnumRotate(step);
            }
            else if (type_name.Contains("Enums.SlotCellState"))
            {
                var command2  = (EnumCondition <SlotCellState>)command;
                var cur_value = command2.Value;
                command2.Value = cur_value.EnumRotate(step);
            }
            else if (type_name.Contains("Enums.SlotState"))
            {
                var command2  = (EnumCondition <SlotState>)command;
                var cur_value = command2.Value;
                command2.Value = cur_value.EnumRotate(step);
            }
            else if (type_name.Contains("Enums.SlotTriggerType"))
            {
                var command2  = (EnumCondition <SlotTriggerType>)command;
                var cur_value = command2.Value;
                command2.Value = cur_value.EnumRotate(step);
            }
            else if (type_name.Contains("Enums.TempoRange"))
            {
                var command2  = (EnumCondition <TempoRange>)command;
                var cur_value = command2.Value;
                command2.Value = cur_value.EnumRotate(step);
            }
            ////// End of Auto generated code
        }
Ejemplo n.º 11
0
        // code was based on conditionsEditorViewMode::setCondition()
        public void rotateConditionItself(int which, int step)
        {
            ConditionNumber number;

            if (which == 1)
            {
                number = ConditionNumber.One;
            }
            else
            {
                number = ConditionNumber.Two;
            }

            var conditions_editor = this.ConditionsEditor;
            var conditions_list   = conditions_editor.Conditions;

            var first_modifier = conditions_list.FirstOrDefault(x => x.Text == "M1");

            // FIXME: this broken because of the tree removal
            if (first_modifier == null)
            {
                return;
            }
            ;

            int location      = conditions_list.IndexOf(first_modifier);
            var modifier_list = conditions_list.Skip(location).Take(8).ToList();

            foreach (var mapping in _mappings)
            {
                ACondition cur_condition;
                if (which == 1)
                {
                    cur_condition = mapping.Conditions.Condition1;
                }
                else
                {
                    cur_condition = mapping.Conditions.Condition2;
                }

                if (cur_condition == null)
                {
                    continue;       // ignore no condition
                }
                KnownCommands id = (KnownCommands)cur_condition.Id;
                if (!((id >= KnownCommands.Modifier_Modifier1) &&
                      (id <= KnownCommands.Modifier_Modifier8)))
                {
                    continue;       // ignore non-modifiers
                }
                var cur_value = cur_condition.GetValue();

                ////
                int cur_modifier = id - KnownCommands.Modifier_Modifier1 + 1;
                int new_modifier = rotate_modifier_key_int(cur_modifier, step, 1, 8);

                MenuItemViewModel item          = modifier_list[new_modifier - 1];
                ConditionProxy    new_proxy     = null;
                ACondition        new_condition = null;

                if (item.Tag is ConditionProxy)
                {
                    new_proxy = item.Tag as ConditionProxy;
                }
                else if (item.Tag is ACondition)
                {
                    new_condition = item.Tag as ACondition;
                }

                if (new_proxy != null)
                {
                    mapping.SetCondition(number, new_proxy);
                }
                else if (new_condition != null)
                {
                    mapping.SetCondition(number, new_condition);
                }
                else
                {
                    mapping.SetCondition(number, new_condition); // clear condition with null value
                }
                cur_condition.SetValue(cur_value);
                mapping.UpdateConditionExpression();
            }
            conditions_editor.Refresh();
        }