public IDisposable BeginEditParameter(VstParameter parameter)
        {
            Throw.IfArgumentIsNull(parameter, "parameter");

            if (host.HostCommandStub.BeginEdit(parameter.Index))
                return new EditParameterScope(host, parameter.Index);

            return null;
        }
        /// <summary>
        /// Fills the <paramref name="parameters"/> collection with all parameters.
        /// </summary>
        /// <param name="parameters">Must not be null.</param>
        /// <remarks>A <see cref="VstParameter"/> instance is created and linked up for each
        /// <see cref="VstParameterInfo"/> instance found in the <see cref="ParameterInfos"/> collection.</remarks>
        public void CreateParameters(VstParameterCollection parameters)
        {
            foreach (VstParameterInfo paramInfo in ParameterInfos)
            {
                if (Categories.Count > 0 && paramInfo.Category == null)
                {
                    paramInfo.Category = Categories[0];
                }

                var param = new VstParameter(paramInfo);
                parameters.Add(param);
            }
        }
Beispiel #3
0
        /// <summary>
        ///     Listens to changes made to parameter values from the host and sends those changes to
        ///     MssParameters.
        /// </summary>
        /// <param name="sender">The VstParameter that changed.</param>
        private void VstParameter_Changed(object sender, PropertyChangedEventArgs e)
        {
            VstParameter   changedParam = (VstParameter)sender;
            MssParameterID paramID;

            //Gets the MssParameterID associated with the changed parameter.
            VstParameterManagerDict.TryGetLeftByRight(out paramID, changedParam.Info.ParameterManager);

            if (this.parametersBeingModified.Contains(paramID) == false)
            {
                if (e.PropertyName == VstParameter.ValuePropertyName)
                {
                    this.parametersBeingModified.Add(paramID);
                    //Notifies MssParameters of the change.
                    this.mssParameters.SetParameterRelativeValue(paramID, changedParam.Value);
                    this.parametersBeingModified.Remove(paramID);
                }
            }
        }
Beispiel #4
0
        /// <summary>
        /// Fills the <paramref name="parameters"/> collection with Parameters.
        /// </summary>
        /// <param name="parameters">Must not be null.</param>
        protected virtual void ReadParameters(VstParameterCollection parameters)
        {
            int count = ReadParameterHeader(parameters);

            for (int i = 0; i < count; i++)
            {
                string name  = Reader.ReadString();
                float  value = Reader.ReadSingle();

                if (parameters.Contains(name))
                {
                    VstParameter parameter = parameters[name];
                    parameter.Value = value;
                }
                else
                {
                    OnParameterNotFound(parameters, name, value);
                }
            }
        }
Beispiel #5
0
        // create one parameter
        private VstParameter CreateParameter(VstParameterInfo parameterInfo)
        {
            VstParameter parameter = new VstParameter(parameterInfo);

            return(parameter);
        }
Beispiel #6
0
        // create one parameter
        private VstParameter CreateParameter(VstParameterInfo parameterInfo)
        {
            VstParameter parameter = new VstParameter(parameterInfo);

            return parameter;
        }
Beispiel #7
0
 /// <summary>
 /// Writes the <paramref name="parameter"/> to the output stream.
 /// </summary>
 /// <param name="parameter">Must not be null.</param>
 protected virtual void Write(VstParameter parameter)
 {
     Writer.Write(parameter.Info.Name);
     Writer.Write(parameter.Value);
 }
        public void NotifyParameterValueChanged(VstParameter parameter)
        {
            Throw.IfArgumentIsNull(parameter, "parameter");

            host.HostCommandStub.SetParameterAutomated(parameter.Index, parameter.Value);
        }
Beispiel #9
0
        public void NotifyParameterValueChanged(VstParameter parameter)
        {
            Throw.IfArgumentIsNull(parameter, nameof(parameter));

            _commands.SetParameterAutomated(parameter.Index, parameter.Value);
        }
 /// <summary>
 /// Writes the <paramref name="parameter"/> to the output stream.
 /// </summary>
 /// <param name="parameter">Must not be null.</param>
 protected virtual void Write(VstParameter parameter)
 {
     Writer.Write(parameter.Info.Name);
     Writer.Write(parameter.Value);
 }
Beispiel #11
0
        public void NotifyParameterValueChanged(VstParameter parameter)
        {
            Throw.IfArgumentIsNull(parameter, "parameter");

            _host.HostCommandStub.SetParameterAutomated(parameter.Index, parameter.Value);
        }