Esempio n. 1
0
 public static void UpdateExposedState(VSTSignal signal, ParamPin pin, bool isExposed)
 {
     if (signal.PluginContext.PluginCommandStub.GetEffectName() == pin.PluginName)
     {
         signal.InfoForm.ChangeExposedState(pin.ParamIndex, isExposed);
     }
 }
Esempio n. 2
0
        void ParameterNamesConfig_Changed(IDiffSpread <string> spread)
        {
            //temp pin dictionary
            var prevPins = new Dictionary <string, ParamPin>(FParamPins);

            //create pin?
            foreach (var pinDefinitionString in spread)
            {
                if (string.IsNullOrWhiteSpace(pinDefinitionString))
                {
                    continue;
                }

                if (!prevPins.ContainsKey(pinDefinitionString))
                {
                    var paramPin = ParamPin.Parse(pinDefinitionString);

                    var oa = new InputAttribute(paramPin.ParamName);
                    //FLogger.Log(LogType.Debug, col.DataType.ToString());

                    paramPin.Pin = FHost.CreateValueInput(oa, typeof(float));
                    foreach (var signal in FInternalSignals)
                    {
                        UpdateExposedState(signal, paramPin, true);
                    }
                    FParamPins[pinDefinitionString] = paramPin;
                }
                else
                {
                    prevPins.Remove(pinDefinitionString);
                }
            }

            //any pin which is left over can be removed
            foreach (var pin in prevPins)
            {
                FHost.DeletePin(pin.Value.Pin);
                FParamPins.Remove(pin.Key);

                foreach (var signal in FInternalSignals)
                {
                    UpdateExposedState(signal, pin.Value, false);
                }
            }
        }