private void ProcessSetMessage(OSCMessage msg)
        {
            string[] tester = msg.Address.Split('/');

            if (tester.Length == 5 && msg.Values.Count > 0)
            {
                if (tester[1] == "todomap")
                {
                    if (tester[2] == "variable")
                    {
                        TodoVariable var = this.engine.GetVariableByName(tester[3]);

                        if (var != null)
                        {
                            if (tester[4] == "set")
                            {
                                if (msg.Values[0] is float)
                                {
                                    var.SetValue(null, (float)msg.Values[0]);
                                }
                            }
                        }
                    }
                }
            }
        }
 public void Evaluate(int SpreadMax)
 {
     if (this.FInEngine.PluginIO.IsConnected)
     {
         this.FOutCanSend.SliceCount = SpreadMax;
         for (int i = 0; i < SpreadMax; i++)
         {
             this.FOutCanSend[i] = false;
             if (this.FInDoSend[i])
             {
                 TodoVariable var = this.FInEngine[0].GetVariableByName(this.FInVariableName[i]);
                 if (var != null && this.FInDevice[i] != "")
                 {
                     this.FInEngine[0].Midi.CustomFeedBack(this.FInDevice[i], var, this.FInValue[i]);
                     this.FOutCanSend[i] = true;
                 }
             }
             //this.FInEngine[0].Midi.FeedBack(
         }
     }
     else
     {
         this.FOutCanSend.SliceCount = 1;
         this.FOutCanSend[0]         = false;
     }
 }
        public void Evaluate(int SpreadMax)
        {
            if (this.FInEngine.PluginIO.IsConnected)
            {
                this.FOutIsFound.SliceCount = this.FInVarName.SliceCount;

                for (int i = 0; i < this.FInVarName.SliceCount; i++)
                {
                    if (this.FInDoDelete[i])
                    {
                        TodoVariable var = this.FInEngine[0].GetVariableByName(this.FInVarName[i]);
                        if (var == null)
                        {
                            this.FOutIsFound[i] = false;
                        }
                        else
                        {
                            this.FInEngine[0].DeleteVariable(var, false);
                            this.FOutIsFound[i] = true;
                        }
                    }
                    else
                    {
                        this.FOutIsFound[i] = false;
                    }
                }
            }
            else
            {
                this.FOutIsFound.SliceCount = 0;
            }
        }
Exemple #4
0
        private static void LoadVariable(TodoEngine engine, XmlNode node, List <TodoPreset> varnames)
        {
            TodoPreset preset = new TodoPreset();

            foreach (XmlNode child in node.ChildNodes)
            {
                if (child.Name == "Name")
                {
                    preset.Name = child.InnerText;
                }
                if (child.Name == "Category")
                {
                    preset.Category = child.InnerText;
                }
                if (child.Name == "Value")
                {
                    preset.Value = double.Parse(child.InnerText);
                }
            }

            TodoVariable var = engine.GetVariableByName(preset.Name);

            if (var != null)
            {
                var.SetValue(null, preset.Value);
                varnames.Add(preset);
            }
        }
 void engine_VariableDeleted(TodoVariable var, bool gui)
 {
     BeginInvoke((MethodInvoker) delegate()
     {
         this.ucFilter.Reset();
     });
 }
Exemple #6
0
 private void var_ValueChanged(TodoVariable var, AbstractTodoInput source)
 {
     //if (source != null)
     //{
     this.invalidatevalue = true;
     //}
 }
Exemple #7
0
        public TodoHdeEnumVariable(INode2 node, TodoEngine engine, string varname)
        {
            this.node = node;
            //this.var = var;

            this.valuepin = this.node.FindPin("Input Enum");

            enumname = this.valuepin.SubType.Split(",".ToCharArray())[1].Trim();

            int ecnt = EnumManager.GetEnumEntryCount(enumname);

            for (int i = 0; i < ecnt; i++)
            {
                string eval = EnumManager.GetEnumEntryString(enumname, i);
                string vn   = varname + "-" + eval;

                TodoVariable var = engine.GetVariableByName(vn);
                if (var == null)
                {
                    var          = new TodoVariable(vn);
                    var.Category = "Global";
                    engine.RegisterVariable(var, false);
                }

                var.ValueChanged += var_ValueChanged;
                vars.Add(var);
            }
            //this.valuepin.
            //this.valuepin.Type

            //var.ValueChanged += var_ValueChanged;
            //var.VariableUpdated += var_VariableUpdated;
        }
Exemple #8
0
 public void Evaluate(int SpreadMax)
 {
     if (this.FInEngine.PluginIO.IsConnected)
     {
         TodoVariable var = this.FInEngine[0].SelectedVariable;
         if (var != null)
         {
             if (this.FInDoDelete[0])
             {
                 AbstractTodoInput input = var.Inputs[this.FInMappingIdx[0] % var.Inputs.Count];
                 this.FInEngine[0].RemoveInput(input);
                 this.FOutIsFound[0] = true;
             }
             else
             {
                 this.FOutIsFound[0] = false;
             }
         }
         else
         {
             this.FOutIsFound[0] = false;
         }
     }
     else
     {
         this.FOutIsFound[0] = false;
     }
 }
Exemple #9
0
 void TodoValueChangedNode_VariableValueChangedExtended(TodoVariable var, AbstractTodoInput source)
 {
     if (this.varnames.Contains(var.Name))
     {
         this.changed[this.varnames.IndexOf(var.Name)]    = true;
         this.nullsource[this.varnames.IndexOf(var.Name)] = source == null;
     }
 }
Exemple #10
0
 private static void PersistVariable(StringBuilder sb, TodoVariable var)
 {
     sb.AppendLine("<TodoVariable>");
     sb.AppendLine("<Name>" + var.Name + "</Name>");
     sb.AppendLine("<Category>" + var.Category + "</Category>");
     sb.AppendLine("<Value>" + var.ValueRaw.ToString() + "</Value>");
     sb.AppendLine("</TodoVariable>");
 }
Exemple #11
0
 private void Engine_VariableRegistered(TodoVariable var, bool gui)
 {
     BeginInvoke((MethodInvoker) delegate()
     {
         //this.AddVariable(var);
         this.ucFilter.Reset();
     });
 }
Exemple #12
0
        void var_VariableCategoryChanged(TodoVariable var, string oldcat)
        {
            TreeNode node = this.vardic[var];

            node.Parent.Nodes.Remove(node);

            this.GetCategoryNode(var.Category).Nodes.Add(node);
        }
        public void Evaluate(int SpreadMax)
        {
            if (this.FInEngine.PluginIO.IsConnected)
            {
                this.FOutIsSet.SliceCount = this.FInVarName.SliceCount;

                for (int i = 0; i < this.FInVarName.SliceCount; i++)
                {
                    if (this.FInSetCategory[i] || this.FInSetAll[i] || this.FInSetDefault[i] ||
                        this.FInSetMinimum[i] || this.FInSetMaximum[i] ||
                        this.FInSetTweenMode[i] || this.FInSetEaseMode[i] ||
                        this.FInSetTOMode[i] || this.FInSetAllowFeedback[i])
                    {
                        TodoVariable var = this.FInEngine[0].GetVariableByName(this.FInVarName[i]);

                        if (this.FInSetCategory[i] || this.FInSetAll[i])
                        {
                            var.Category = this.FInCategory[i];
                        }
                        if (this.FInSetDefault[i] || this.FInSetAll[i])
                        {
                            var.Default = this.FInDefault[i];
                        }
                        if (this.FInSetMinimum[i] || this.FInSetAll[i])
                        {
                            var.Mapper.MinValue = this.FInMinimum[i];
                        }
                        if (this.FInSetMaximum[i] || this.FInSetAll[i])
                        {
                            var.Mapper.MaxValue = this.FInMaximum[i];
                        }
                        if (this.FInSetTweenMode[i] || this.FInSetAll[i])
                        {
                            var.Mapper.TweenMode = this.FInTweenMode[i];
                        }
                        if (this.FInSetEaseMode[i] || this.FInSetAll[i])
                        {
                            var.Mapper.EaseMode = this.FInEaseMode[i];
                        }
                        if (this.FInSetTOMode[i] || this.FInSetAll[i])
                        {
                            var.TakeOverMode = this.FInTakeOverMode[i];
                        }
                        if (this.FInSetAllowFeedback[i] || this.FInSetAll[i])
                        {
                            var.AllowFeedBack = this.FInAllowFeedBack[i];
                        }


                        var.MarkForUpdate(false);
                    }
                }
            }
            else
            {
                this.FOutIsSet.SliceCount = 0;
            }
        }
Exemple #14
0
        public void Evaluate(int SpreadMax)
        {
            if (this.FInvalidateConnect)
            {
                if (this.FInEngine.PluginIO.IsConnected)
                {
                    this.FInEngine[0].VariableValueChanged += TodoGetValueNode_VariableValueChanged;
                    this.FInEngine[0].OnReset += TodoGetValueNode_OnReset;
                    this.FInvalidate           = true;
                }
                else
                {
                    this.FInEngine[0].VariableValueChanged -= TodoGetValueNode_VariableValueChanged;
                    this.FInEngine[0].OnReset -= TodoGetValueNode_OnReset;
                    this.FInvalidate           = true;
                }
                this.FInvalidateConnect = false;
            }

            if (this.FInEngine.PluginIO.IsConnected)
            {
                this.FOutIsFound.SliceCount = Math.Max(this.FInVarName.SliceCount, this.FInSetValue.SliceCount);
                this.FOutIsSet.SliceCount   = this.FOutIsFound.SliceCount;
                for (int i = 0; i < this.FOutIsFound.SliceCount; i++)
                {
                    TodoVariable var = this.FInEngine[0].GetVariableByName(this.FInVarName[i]);
                    if (var == null)
                    {
                        this.FOutIsFound[i] = false;
                        this.FOutIsSet[i]   = false;
                    }
                    else
                    {
                        this.FOutIsFound[i] = true;
                        if (this.FInSetValue[i])
                        {
                            double val = Math.Min(this.FInput[i], 1.0);
                            val = Math.Max(0.0, val);

                            var.SetValue(null, val);
                            this.FOutIsSet[i] = true;
                        }
                        else
                        {
                            this.FOutIsSet[i] = false;
                        }
                    }
                }
            }
            else
            {
                this.FOutIsSet.SliceCount   = 0;
                this.FOutIsFound.SliceCount = 0;
            }
        }
Exemple #15
0
        private void lblnewVar_Click(object sender, EventArgs e)
        {
            if (this.tbvarname.Text.Trim().Length > 0)
            {
                string       cat = this.cmbCatFilter.Text.Trim().Length == 0 ? "Global" : this.cmbCatFilter.Text.Trim();
                TodoVariable var = new TodoVariable(this.tbvarname.Text);
                var.Category = cat;

                this.engine.RegisterVariable(var, true);
            }
        }
Exemple #16
0
 private void var_ValueChanged(TodoVariable var, AbstractTodoInput source)
 {
     if (source != null)
     {
         if (var.Value > 0.5)
         {
             this.varindex        = vars.IndexOf(var);
             this.invalidatevalue = true;
         }
     }
 }
Exemple #17
0
        public void Evaluate(int SpreadMax)
        {
            if (this.FInEngine.PluginIO.IsConnected)
            {
                this.FOutIsFound.SliceCount = SpreadMax;
                for (int i = 0; i < SpreadMax; i++)
                {

                    TodoVariable var = this.FInEngine[i].GetVariableByName(this.FInName[i]);
                    if (var != null)
                    {
                        if (this.FInDoCreate[i])
                        {
                            bool found = true;
                            TodoMidiInput item = null;
                            foreach (AbstractTodoInput input in var.Inputs)
                            {
                                if (input is TodoMidiInput)
                                {
                                    TodoMidiInput midi = (TodoMidiInput)input;
                                    if (midi.Device == this.FInDevice[i] || midi.ControlValue == 
                                    //if (osc.Message == this.FInMessage[i]) { item = osc; found = true; }
                                }
                            }
                            if (item == null)
                            {
                                TodoMidiInput input = new TodoMidiInput(var);
                                input.Device = this.FInDevice[i];
                                input.MidiChannel = this.FInChannel[i];
                                input.ControlValue = this.FInMsg[i];
                               // input.Message = this.FInMessage[i];
                            }
                            item.FeedBackMode = this.FInFeedBack[i];
                            item.TakeOverMode = this.FinTakeOver[i];

                            this.FOutIsFound[i] = !found;
                        }
                        else
                        {
                            this.FOutIsFound[i] = false;
                        }
                    }
                    else
                    {
                        this.FOutIsFound[i] = false;
                    }
                }
            }
            else
            {
                this.FOutIsFound[0] = false;
            }

        }
Exemple #18
0
        protected override void DoFeedBack(TodoVariable var, TodoOscInput source)
        {
            if (this.enableOutput)
            {
                OSCMessage msg = new OSCMessage(source.Message);
                msg.Append(Convert.ToSingle(var.Value));

                OSCTransmitter tr = new OSCTransmitter(this.remoteip, this.remoteport);
                tr.Send(msg);
            }
        }
Exemple #19
0
        private void BuildMappings(TodoVariable var)
        {
            TreeNode node = this.vardic[var];

            node.Nodes.Clear();
            //node.TreeView.e
            foreach (AbstractTodoInput input in var.Inputs)
            {
                TreeNode inode = node.Nodes.Add(input.InputType + " : " + input.InputMap);
                inode.ImageIndex         = 2;
                inode.SelectedImageIndex = 2;
            }
        }
Exemple #20
0
 public void FeedBack(TodoVariable var, AbstractTodoInput source)
 {
     foreach (AbstractTodoInput input in var.Inputs)
     {
         if (input.IsFeedBackAllowed && input != source)
         {
             if (input is T)
             {
                 this.DoFeedBack(var, input as T);
             }
         }
     }
 }
Exemple #21
0
        public void CustomFeedBack(string devname, TodoVariable var, double value)
        {
            int idx = this.outputdevname.IndexOf(devname);

            //Need to find device and have it started
            if (idx > -1)
            {
                if (this.outputstatus[idx] == eTodoMidiStatus.Started)
                {
                    try
                    {
                        OutputDevice dev = this.outdevs[idx];
                        foreach (AbstractTodoInput ti in var.Inputs)
                        {
                            if (ti is TodoMidiInput)
                            {
                                TodoMidiInput mi = (TodoMidiInput)ti;

                                if (mi.Device == devname || mi.Device == "Any")
                                {
                                    ChannelCommand cmd = ChannelCommand.Controller;
                                    if (mi.ControlType == eTodoMidiType.Controller)
                                    {
                                        cmd = ChannelCommand.Controller;
                                    }
                                    else
                                    {
                                        if (mi.ControlType == eTodoMidiType.Note)
                                        {
                                            if (value == 0.0)
                                            {
                                                cmd = ChannelCommand.NoteOff;
                                            }
                                            else
                                            {
                                                cmd = ChannelCommand.NoteOn;
                                            }
                                        }
                                    }
                                    ChannelMessage msg = new ChannelMessage(cmd, mi.MidiChannel, mi.ControlValue, Convert.ToInt32(value * 127.0));
                                    dev.Send(msg);
                                }
                            }
                        }
                    }
                    catch
                    {
                    }
                }
            }
        }
Exemple #22
0
        private void AddVariable(TodoVariable var)
        {
            TreeNode catnode = this.GetCategoryNode(var.Category);

            TreeNode varnode = catnode.Nodes.Add(var.Name);

            varnode.Tag                = var;
            varnode.ImageIndex         = 1;
            varnode.SelectedImageIndex = 1;

            this.vardic.Add(var, varnode);

            this.BuildMappings(var);

            var.VariableCategoryChanged += new TodoVariableCategoryChangedDelegate(var_VariableCategoryChanged);
        }
Exemple #23
0
        public TodoHdeVariable(INode2 node, TodoEngine engine, string varname)
        {
            this.node = node;

            this.valuepin = this.node.FindPin("Y Input Value");
            if (this.valuepin.SliceCount == 1)
            {
                TodoVariable var = engine.GetVariableByName(varname);
                if (var == null)
                {
                    var          = new TodoVariable(varname);
                    var.Category = "Global";
                    engine.RegisterVariable(var, false);
                }

                var.ValueChanged    += var_ValueChanged;
                var.VariableUpdated += var_VariableUpdated;

                this.vars.Add(var);
            }
            else if (this.valuepin.SliceCount > 1)
            {
                for (int i = 0; i < this.valuepin.SliceCount; i++)
                {
                    string vn = varname + "-" + i.ToString();

                    TodoVariable var = engine.GetVariableByName(vn);
                    if (var == null)
                    {
                        var          = new TodoVariable(vn);
                        var.Category = "Global";
                        engine.RegisterVariable(var, false);
                    }

                    var.ValueChanged    += var_ValueChanged;
                    var.VariableUpdated += var_VariableUpdated;

                    this.vars.Add(var);
                }
            }

            this.minpin = this.node.FindPin("Minimum");
            this.maxpin = this.node.FindPin("Maximum");

            this.minpin.Changed += minpin_Changed;
            this.maxpin.Changed += maxpin_Changed;
        }
Exemple #24
0
        public void Evaluate(int SpreadMax)
        {
            if (this.FInEngine.PluginIO.IsConnected)
            {
                TodoVariable var = this.FInEngine[0].SelectedVariable;

                if (var != oldvar || first)
                {
                    if (var != null)
                    {
                        this.FOutType.SliceCount     = var.Inputs.Count;
                        this.FOutMapping.SliceCount  = var.Inputs.Count;
                        this.FOutDevice.SliceCount   = var.Inputs.Count;
                        this.FOutFeedBack.SliceCount = var.Inputs.Count;
                        this.FOutTakeOver.SliceCount = var.Inputs.Count;

                        for (int i = 0; i < var.Inputs.Count; i++)
                        {
                            AbstractTodoInput input = var.Inputs[i];
                            this.FOutType[i]     = input.InputType;
                            this.FOutMapping[i]  = input.InputMap;
                            this.FOutDevice[i]   = input.Device;
                            this.FOutFeedBack[i] = input.FeedBackMode;
                            this.FOutTakeOver[i] = input.TakeOverMode;
                        }
                    }
                    else
                    {
                        this.FOutType.SliceCount     = 0;
                        this.FOutMapping.SliceCount  = 0;
                        this.FOutDevice.SliceCount   = 0;
                        this.FOutFeedBack.SliceCount = 0;
                        this.FOutTakeOver.SliceCount = 0;
                    }
                    first = false;
                }
            }
            else
            {
                this.FOutType.SliceCount     = 0;
                this.FOutMapping.SliceCount  = 0;
                this.FOutDevice.SliceCount   = 0;
                this.FOutFeedBack.SliceCount = 0;
                this.FOutTakeOver.SliceCount = 0;
            }
        }
Exemple #25
0
        private void AddVariable(TodoVariable var)
        {
            ListViewItem lv = this.lvVariables.Items.Add(var.Category);

            lv.Tag = var.Name;
            lv.SubItems.Add(var.Name);
            lv.SubItems.Add(var.Default.ToString());
            lv.SubItems.Add(var.Mapper.MinValue.ToString());
            lv.SubItems.Add(var.Mapper.MaxValue.ToString());
            lv.SubItems.Add(var.Mapper.Reverse.ToStringEnglish());
            lv.SubItems.Add(var.Mapper.TweenMode.ToString());
            lv.SubItems.Add(var.Mapper.EaseMode.ToString());
            lv.SubItems.Add(var.TakeOverMode.ToString());
            lv.SubItems.Add(var.AllowFeedBack.ToStringEnglish());

            //Preserve selected var
            //if (this.lvVariables.a
        }
Exemple #26
0
        void lvVariables_SubItemEndEditing(object sender, ListViewEx.SubItemEndEditingEventArgs e)
        {
            TodoVariable    tv     = this.engine.GetVariableByName(e.Item.SubItems[1].Text);
            TodoTweenMapper mapper = tv.Mapper;

            if (e.SubItem == 0)
            {
                tv.Category = e.DisplayText;
            }
            if (e.SubItem == 2)
            {
                try { tv.Default = Convert.ToDouble(e.DisplayText); } catch { e.Cancel = true; }
            }
            if (e.SubItem == 3)
            {
                try { mapper.MinValue = Convert.ToDouble(e.DisplayText); } catch { e.Cancel = true; }
            }
            if (e.SubItem == 4)
            {
                try { mapper.MaxValue = Convert.ToDouble(e.DisplayText); } catch { e.Cancel = true; }
            }
            if (e.SubItem == 5)
            {
                tv.Mapper.Reverse = BoolExtension.ParseEnglish(e.DisplayText);
            }
            if (e.SubItem == 6)
            {
                mapper.TweenMode = (eTweenMode)Enum.Parse(typeof(eTweenMode), e.DisplayText);
            }
            if (e.SubItem == 7)
            {
                mapper.EaseMode = (eTweenEaseMode)Enum.Parse(typeof(eTweenEaseMode), e.DisplayText);
            }
            if (e.SubItem == 8)
            {
                tv.TakeOverMode = (eTodoGlobalTakeOverMode)Enum.Parse(typeof(eTodoGlobalTakeOverMode), e.DisplayText);
            }
            if (e.SubItem == 9)
            {
                tv.AllowFeedBack = BoolExtension.ParseEnglish(e.DisplayText);
            }
            tv.MarkForUpdate(true);
        }
Exemple #27
0
 private void engine_VariableChanged(TodoVariable var, bool gui)
 {
     if (!gui)
     {
         BeginInvoke((MethodInvoker) delegate()
         {
             int idx             = this.engine.Variables.IndexOf(var);
             ListViewItem lv     = this.lvVariables.Items[idx];
             lv.SubItems[0].Text = var.Category;
             lv.SubItems[2].Text = var.Default.ToString();
             lv.SubItems[3].Text = var.Mapper.MinValue.ToString();
             lv.SubItems[4].Text = var.Mapper.MaxValue.ToString();
             lv.SubItems[6].Text = var.Mapper.TweenMode.ToString();
             lv.SubItems[7].Text = var.Mapper.EaseMode.ToString();
             lv.SubItems[8].Text = var.TakeOverMode.ToString();
             lv.SubItems[9].Text = var.AllowFeedBack.ToString();
         });
     }
 }
Exemple #28
0
 private static void PersistVariable(StringBuilder sb, TodoVariable var)
 {
     sb.AppendLine("<TodoVariable>");
     sb.AppendLine("<Name>" + var.Name + "</Name>");
     sb.AppendLine("<Category>" + var.Category + "</Category>");
     sb.AppendLine("<AllowFeedBack>" + var.AllowFeedBack.ToStringEnglish() + "</AllowFeedBack>");
     sb.AppendLine("<TakeOverMode>" + var.TakeOverMode.ToString() + "</TakeOverMode>");
     sb.AppendLine("<Default>" + var.Default.ToString(CultureInfo.InvariantCulture) + "</Default>");
     sb.AppendLine("<MinValue>" + var.Mapper.MinValue.ToString(CultureInfo.InvariantCulture) + "</MinValue>");
     sb.AppendLine("<MaxValue>" + var.Mapper.MaxValue.ToString(CultureInfo.InvariantCulture) + "</MaxValue>");
     sb.AppendLine("<TweenMode>" + var.Mapper.TweenMode + "</TweenMode>");
     sb.AppendLine("<EaseMode>" + var.Mapper.EaseMode + "</EaseMode>");
     sb.AppendLine("<TodoInputs>");
     foreach (AbstractTodoInput input in var.Inputs)
     {
         PersistInput(sb, input);
     }
     sb.AppendLine("</TodoInputs>");
     sb.AppendLine("</TodoVariable>");
 }
Exemple #29
0
        protected override void DoFeedBack(TodoVariable var, TodoMidiInput source)
        {
            for (int i = 0; i < this.outputstatus.Count; i++)
            {
                if (this.outputstatus[i] == eTodoMidiStatus.Started)
                {
                    try
                    {
                        OutputDevice   dev = this.outdevs[i];
                        ChannelCommand cmd = ChannelCommand.Controller;
                        if (source.ControlType == eTodoMidiType.Controller)
                        {
                            cmd = ChannelCommand.Controller;
                        }
                        else
                        {
                            if (source.ControlType == eTodoMidiType.Note)
                            {
                                if (var.ValueRaw == 0.0)
                                {
                                    cmd = ChannelCommand.NoteOff;
                                }
                                else
                                {
                                    cmd = ChannelCommand.NoteOn;
                                }
                            }
                        }

                        ChannelMessage msg = new ChannelMessage(cmd, source.MidiChannel, source.ControlValue, Convert.ToInt32(var.ValueRaw * 127.0));
                        dev.Send(msg);
                    }
                    catch
                    {
                    }
                }
            }
        }
Exemple #30
0
 private void lblnewVar_Click(object sender, EventArgs e)
 {
     if (this.tbvarname.Text.Trim().Length > 0)
     {
         TodoVariable var = new TodoVariable(this.tbvarname.Text);
         if (this.cmbCatFilter.Items.Count > 0)
         {
             if (this.cmbCatFilter.SelectedIndex == 0)
             {
                 var.Category = "Global";
             }
             else
             {
                 var.Category = this.cmbCatFilter.SelectedItem.ToString();
             }
         }
         else
         {
             var.Category = "Global";
         }
         this.engine.RegisterVariable(var, true);
     }
 }