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; } }
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(); }); }
private void var_ValueChanged(TodoVariable var, AbstractTodoInput source) { //if (source != null) //{ this.invalidatevalue = true; //} }
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; }
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; } }
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; } }
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>"); }
private void Engine_VariableRegistered(TodoVariable var, bool gui) { BeginInvoke((MethodInvoker) delegate() { //this.AddVariable(var); this.ucFilter.Reset(); }); }
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; } }
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; } }
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); } }
private void var_ValueChanged(TodoVariable var, AbstractTodoInput source) { if (source != null) { if (var.Value > 0.5) { this.varindex = vars.IndexOf(var); this.invalidatevalue = true; } } }
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; } }
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); } }
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; } }
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); } } } }
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 { } } } }
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); }
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; }
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; } }
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 }
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); }
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(); }); } }
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>"); }
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 { } } } }
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); } }