Example #1
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);
                }
            }
        }