void BeforeEvaluateCB() { if (FLoading) { SplitPanelContainer.SplitterDistance = FSplitterDistance; FLoading = false; } //validate all intputs //setting spreadcount on inputs int idx = 0; bool adjustpinpanels = false; foreach (TBasePin pin in FPluginHost.Inputs) { if (pin.Visibility != TPinVisibility.False) { if (pin.SliceCountIsChanged) { //update updown control FSliceCountControls[idx].Value = pin.SliceCount; adjustpinpanels = true; } else { int ctrlSC = (int)Math.Max(0, FSliceCountControls[idx].Value); if (pin.SliceCount != ctrlSC) { pin.SliceCount = ctrlSC; adjustpinpanels = true; } } idx++; } } if (adjustpinpanels) { AdjustInputsPanel(); AdjustOutputsPanel(); } InputsPanel.SetInputs(); }
private void PinCountChangedCB() { //slicecounts FSliceCountControls.Clear(); SliceCountsPanel.Controls.Clear(); NumericUpDown ud; int idx = 0; foreach (TBasePin pin in FPluginHost.Inputs) { if (pin.Visibility != TPinVisibility.False) { ud = new NumericUpDown(); ud.Width = FPinWidth; ud.Left = ud.Width * idx; ud.Minimum = 0; ud.Maximum = int.MaxValue; ud.Value = Math.Max(0, pin.SliceCount); ud.BorderStyle = BorderStyle.None; SliceCountsPanel.Controls.Add(ud); FSliceCountControls.Add(ud); idx++; } } InputsPanel.UpdateVisiblePinList(); OutputsPanel.UpdateVisiblePinList(); //adjust inputpins areas height AdjustInputsPanel(); //adjust outputpins areas height AdjustOutputsPanel(); //adjust plugin areas height AdjustPluginPanel(); }
void AfterEvaluateCB() { if (EnableOSCCheckBox.Checked) { //double time; //GetCurrentTime(out time); OSCBundle bundle = new OSCBundle(); //send outputs as OSC for (int i = 0; i < FPluginHost.Outputs.Count; i++) { string pinname = FPluginHost.Outputs[i].Name; // pinname = pinname.Replace(" ", "_"); OSCMessage message = new OSCMessage(FOSCAddress + "/" + pinname); if (FPluginHost.Outputs[i] is TValuePin) { double val; for (int j = 0; j < (FPluginHost.Outputs[i] as TValuePin).SliceCount; j++) { (FPluginHost.Outputs[i] as TValuePin).GetValue(j, out val); message.Append((float)val); } } else if (FPluginHost.Outputs[i] is TStringPin) { string str; for (int j = 0; j < (FPluginHost.Outputs[i] as TStringPin).SliceCount; j++) { (FPluginHost.Outputs[i] as TStringPin).GetString(j, out str); message.Append(str); } } else if (FPluginHost.Outputs[i] is TColorPin) { RGBAColor col; for (int j = 0; j < (FPluginHost.Outputs[i] as TColorPin).SliceCount; j++) { (FPluginHost.Outputs[i] as TColorPin).GetColor(j, out col); message.Append(col.ToString()); } } bundle.Append(message); } try { if (FOSCTransmitter != null) { FOSCTransmitter.Send(bundle); } } catch (Exception ex) { DebugLog.Items.Add("UDP: " + ex.Message); } } bool redraw = false; for (int i = 0; i < FPluginHost.Inputs.Count; i++) { redraw |= (FPluginHost.Inputs[i] as TBasePin).PinIsChanged; FPinsChanged |= (FPluginHost.Inputs[i] as TBasePin).SliceCountIsChanged; (FPluginHost.Inputs[i] as TBasePin).Invalidate(); } if (redraw) { InputsPanel.Invalidate(); } redraw = false; for (int i = 0; i < FPluginHost.Outputs.Count; i++) { redraw |= (FPluginHost.Outputs[i] as TBasePin).PinIsChanged; FPinsChanged |= (FPluginHost.Outputs[i] as TBasePin).SliceCountIsChanged; (FPluginHost.Outputs[i] as TBasePin).Invalidate(); } if (redraw) { OutputsPanel.Invalidate(); } }