예제 #1
0
        //////////
        public void rotateModifierValue(int step)
        {
            foreach (var m in _mappings)
            {
                var           command = m.Command;
                KnownCommands cur_id  = (KnownCommands)m.Command.Id;

                if (!(
                        (cur_id >= KnownCommands.Modifier_Modifier1) &&
                        (cur_id <= KnownCommands.Modifier_Modifier8)
                        ))
                {
                    continue;
                }

                var           command2      = (cmdr.TsiLib.Commands.EnumInCommand <cmdr.TsiLib.Enums.ModifierValue>)command;
                ModifierValue cur_value     = (ModifierValue)command2.Value;
                int           cur_value_int = cur_value - ModifierValue._0;
                int           new_value_int = rotate_modifier_value_int(cur_value_int, step);
                var           new_value     = ModifierValue._0 + new_value_int;
                command2.Value = new_value;

                m.UpdateInteraction();
            }
        }
예제 #2
0
        //////////
        public void rotateModifierCommand(int step)
        {
            foreach (var m in _mappings)
            {
                var           command = m.Command;
                KnownCommands cur_id  = (KnownCommands)m.Command.Id;

                if (!(
                        (cur_id >= KnownCommands.Modifier_Modifier1) &&
                        (cur_id <= KnownCommands.Modifier_Modifier8)
                        ))
                {
                    continue;
                }


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


                KnownCommands new_id   = KnownCommands.Modifier_Modifier1 + new_modifier - 1;
                string        new_name = String.Format("Modifier #{0}", new_modifier);


                // pestrela: this is a bit fragile, and should be improved
                m.Command.hack_modifier(new_id, new_name);
                m.hack_modifier(new_id);

                // would this be the proper way?
                //    var _rawMapping = m._mapping.RawMapping;
                //    ACommand Command = Commands.All.GetCommandProxy(_rawMapping.TraktorControlId, _rawMapping.Type).Create(_rawMapping.Settings);

                m.UpdateInteraction();
            }
        }
예제 #3
0
 public static KnownCommands Setup(this KnownCommands knownCommands)
 {
     knownCommands.Register(new StartSpanCommand());
     knownCommands.Register(new LogCommand());
     knownCommands.Register(new SetTagCommand());
     knownCommands.Register(new FinishSpanCommand());
     //batch save
     knownCommands.Register(new SaveSpansCommand());
     return(knownCommands);
 }
예제 #4
0
        public BattlePlayer()
        {
            EntityType = EntityTypes.Player;

            KnownCommands.Add(BattleCommand.BattleActions.Attack, new AttackCommand());
            KnownCommands.Add(BattleCommand.BattleActions.Defend, new DefendCommand());
            KnownCommands.Add(BattleCommand.BattleActions.Item, new ItemCommand());
            KnownCommands.Add(BattleCommand.BattleActions.Magic, new SpellCommand());
            //AttackAnim = new LoopAnimation(LoopAnimation.CONTINOUS_LOOP, new Texture(Constants.ContentPath + "CecilK.png"), 5f,
            //new IntRect(5, 83, 16, 23), new IntRect(25, 82, 16, 24), new IntRect(45, 82, 16, 24));
        }
예제 #5
0
        // pestrela: To recode!
        public void hack_modifier(KnownCommands new_id, String new_name)
        {
            Id = (int)new_id;

            Name = new_name;

            updateAssignmentOptions();
            updateControlTypeOptions();
            updateControlInteractionOptions();
            updateControl();
        }
예제 #6
0
        public void rotateModifierConditionValue(int which, int step)
        {
            var conditions_editor = this.ConditionsEditor;
            var conditions_list   = conditions_editor.Conditions;
            var modifier_list     = conditions_list[2].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
                }
                ModifierValue cur_value     = (ModifierValue)cur_condition.GetValue();
                int           cur_value_int = cur_value - ModifierValue._0;

                int new_value_int = rotate_modifier_value_int(cur_value_int, step);
                var new_value     = ModifierValue._0 + new_value_int;
                cur_condition.SetValue(new_value);

                mapping.UpdateConditionExpression();
            }
            conditions_editor.Refresh();
        }
예제 #7
0
        public void hack_modifier(KnownCommands new_id)
        {
            var b = this._mapping;

            b.hack_modifier(new_id);
        }
예제 #8
0
 public void hack_modifier(KnownCommands new_id)
 {
     RawMapping.TraktorControlId = (int)new_id;
 }
예제 #9
0
 /// <summary>
 /// Creates a new <see cref="ViewModel"/> instance.
 /// </summary>
 public ViewModel()
 {
     // add all matching commands found with reflection
     AddCommands(KnownCommands.Where(cmd => cmd.GetType().HasGenericTypeArgument(GetType())).ToArray());
 }
예제 #10
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();
        }
예제 #11
0
        public void try_rotate_command(MappingViewModel m, int step, KnownCommands start_c, KnownCommands end_c)
        {
            var           command = m.Command;
            KnownCommands cur_id  = (KnownCommands)m.Command.Id;

            if (!is_range_id(cur_id, start_c, end_c))
            {
                //return;
            }

            int cur_modifier = cur_id - start_c + 1;

            int start_i = 1;
            int end_i;

            switch (end_c)
            {
            case KnownCommands.FXUnit_Button3:
            case KnownCommands.FXUnit_Effect3Selector:
            case KnownCommands.FXUnit_Knob3:
                end_i = 3;
                break;

            case KnownCommands.Mixer_FXUnit4On:
                end_i = 4;
                break;

            case KnownCommands.Global_MidiControls_Buttons_MidiButton8:
            case KnownCommands.Global_MidiControls_Knobs_MidiFader8:
            case KnownCommands.Global_MidiControls_Knobs_MidiKnob8:
            case KnownCommands.Modifier_Modifier8:
            case KnownCommands.TrackDeck_Cue_Hotcue8Type:
                end_i = 8;
                break;

            case KnownCommands.RemixDeck_StepSequencer_EnableStep16:
            case KnownCommands.DeckCommon_FreezeMode_SliceTrigger16:
                // needs bugfix?
                //return;

                end_i = 16;
                break;

            default:
                MessageBoxHelper.ShowError(String.Format("Rotating command - unknown command: {0}", end_c));
                return;
            }

            int distance_id = end_c - start_c + 1;

            if (distance_id != end_i)
            {
                MessageBoxHelper.ShowError(String.Format("Rotating command {0} has id_diff of {1}, but expected {2}", end_c, distance_id, end_i));
                return;
            }

            if (!is_range_id(cur_id, start_c, end_c))
            {
                return;
            }

            int new_modifier = rotate_modifier_key_int(cur_modifier, step, start_i, end_i);

            string new_name = patch_command_name(command.Name, new_modifier);

            KnownCommands new_id = start_c + new_modifier - 1;

            // pestrela: this is a bit fragile, and should be improved
            m.Command.hack_modifier(new_id, new_name);
            m.hack_modifier(new_id);

            // would this be the proper way?
            //    var _rawMapping = m._mapping.RawMapping;
            //    ACommand Command = Commands.All.GetCommandProxy(_rawMapping.TraktorControlId, _rawMapping.Type).Create(_rawMapping.Settings);

            m.UpdateInteraction();
        }
예제 #12
0
        public bool try_rotate_command_exceptions(MappingViewModel m, int step)
        // returns: handled
        {
            var           command = m.Command;
            KnownCommands cur_id  = (KnownCommands)m.Command.Id;

            int cur_modifier;

            switch (cur_id)
            {
            case KnownCommands.Mixer_FXUnit1On:
                cur_modifier = 1;
                break;

            case KnownCommands.Mixer_FXUnit2On:
                cur_modifier = 2;
                break;

            case KnownCommands.Mixer_FXUnit3On:
                cur_modifier = 3;
                break;

            case KnownCommands.Mixer_FXUnit4On:
                cur_modifier = 4;
                break;

            default:
                return(false);
            }

            int start_i = 1;
            int end_i   = 4;

            int new_modifier = rotate_modifier_key_int(cur_modifier, step, start_i, end_i);

            string new_name = patch_command_name(command.Name, new_modifier);

            KnownCommands new_id;

            switch (new_modifier)
            {
            case 1:
                new_id = KnownCommands.Mixer_FXUnit1On;
                break;

            case 2:
                new_id = KnownCommands.Mixer_FXUnit2On;
                break;

            case 3:
                new_id = KnownCommands.Mixer_FXUnit3On;
                break;

            case 4:
                new_id = KnownCommands.Mixer_FXUnit4On;
                break;

            default:
                return(false);
            }
            ;

            // pestrela: this is a bit fragile, and should be improved
            m.Command.hack_modifier(new_id, new_name);
            m.hack_modifier(new_id);

            m.UpdateInteraction();

            return(true);
        }
예제 #13
0
 ///////////
 ///////////
 ///////////
 public bool is_range_id(KnownCommands cur_id, KnownCommands start, KnownCommands end)
 {
     return((cur_id >= start) &&
            (cur_id <= end)
            );
 }
예제 #14
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();
        }
예제 #15
0
        public void try_rotate(MappingViewModel m, int step, KnownCommands start_c, KnownCommands end_c)
        {
            var           command = m.Command;
            KnownCommands cur_id  = (KnownCommands)m.Command.Id;

            if (!is_range_id(cur_id, start_c, end_c))
            {
                return;
            }


            int cur_modifier = cur_id - start_c + 1;

            int start_i = 1;
            int end_i   = 8;

            switch (end_c)
            {
            case KnownCommands.FXUnit_Button3:
            case KnownCommands.FXUnit_Effect3Selector:
            case KnownCommands.FXUnit_Knob3:
                end_i = 3;
                break;


            case KnownCommands.Global_MidiControls_Buttons_MidiButton8:
            case KnownCommands.Global_MidiControls_Knobs_MidiFader8:
            case KnownCommands.Global_MidiControls_Knobs_MidiKnob8:
            case KnownCommands.Modifier_Modifier8:
            case KnownCommands.TrackDeck_Cue_Hotcue8Type:
                end_i = 8;
                break;

            case KnownCommands.Mixer_FXUnit4On:
                end_i = 4;
                break;

            case KnownCommands.RemixDeck_StepSequencer_EnableStep16:
                // needs bugfix
                return;

                end_i = 16;
                break;
            }

            int new_modifier = rotate_modifier_key_int(cur_modifier, step, start_i, end_i);

            string new_name = patch_command_name(command.Name, new_modifier);

            KnownCommands new_id = start_c + new_modifier - 1;

            // pestrela: this is a bit fragile, and should be improved
            m.Command.hack_modifier(new_id, new_name);
            m.hack_modifier(new_id);

            // would this be the proper way?
            //    var _rawMapping = m._mapping.RawMapping;
            //    ACommand Command = Commands.All.GetCommandProxy(_rawMapping.TraktorControlId, _rawMapping.Type).Create(_rawMapping.Settings);

            m.UpdateInteraction();
        }