コード例 #1
0
        /// <summary>
        /// Called when any parameter managed by this instance has changed the <see cref="IActivatable.IsActive"/> property.
        /// </summary>
        /// <param name="parameter">Must not be null.</param>
        protected virtual void HandleParameterActivityChanged(VstParameter parameter)
        {
            if (parameter == ActiveParameter && !parameter.IsActive)
            {
                ActiveParameter = null;
                ChangeValue(ParameterInfo.NullValue);
            }

            if (ActiveParameter == null && parameter.IsActive)
            {
                ActiveParameter = parameter;
                ChangeValue(parameter.Value);
            }
        }
コード例 #2
0
        private void Parameter_PropertyChanged(object sender, PropertyChangedEventArgs e)
        {
            VstParameter currentParameter = sender as VstParameter;

            switch (e.PropertyName)
            {
            case VstParameter.ValuePropertyName:
                HandleParameterValueChanged(currentParameter);
                break;

            case VstParameter.IsActivePropertyName:
                HandleParameterActivityChanged(currentParameter);
                break;
            }
        }
コード例 #3
0
        /// <summary>
        /// Subscribes to the events of the <paramref name="parameter"/>.
        /// </summary>
        /// <param name="parameter">Must not be null.</param>
        public void SubscribeTo(VstParameter parameter)
        {
            Throw.IfArgumentIsNull(parameter, "parameter");

            parameter.PropertyChanged += new PropertyChangedEventHandler(Parameter_PropertyChanged);
        }