public ReverbPanel() { InitializeComponent(); var labels = new[] { labelDecayTime, labelDensity, labelDiffusion, labelEarlyDelay, labelEarlyLateMix, labelHFDecayRatio, labelHFReference, labelHighCut, labelLateDelay, labelLowShelfFreq, labelLowShelfGain, labelWetLevel }; foreach (var label in labels) { var sliderName = Regex.Replace(label.Name, "label", "slider"); var slider = (ColorSlider)Controls.Find(sliderName, true)[0]; slider.ValueChanged += (s, a) => label.Text = $"{slider.Value} {label.Tag}"; label.Text = $"{slider.Value} {label.Tag}"; slider.Scroll += Slider_Scroll; } var names = ReverbPresets.GetNames().ToArray(); for (var i = 0; i < names.Length; i++) { var radioName = $"radioButton{i + 1}"; var radio = (RadioButton)tableLayoutPresets.Controls.Find(radioName, false)[0]; radio.Text = names[i]; radio.Tag = i; radio.CheckedChanged += Radio_CheckedChanged; } }
/// <summary> /// Converts from presets enumeration to ReverbParameters type /// </summary> /// <param name="preset">Preset value</param> /// <returns>Returns the ReverbParameters type</returns> public static ReverbParameters Convert(ReverbPresets preset) { var reverbPreset = reverbPresetsList[(int)(preset)]; var reverbParams = (ReverbParameters)reverbPreset; return(reverbParams); }
private void Radio_CheckedChanged(object sender, EventArgs e) { var radio = (RadioButton)sender; var index = Convert.ToInt32(radio.Tag); var properties = ReverbPresets.FromIndex(index); UpdateProperties(properties); }
/// <summary> /// Sets the Reverb effect parameters from an existing preset. /// </summary> /// <param name="preset">The existing Reverb preset.</param> public void SetReverbEffectParameters(ReverbPresets preset) { DisposeGuard(); SetReverbEffectParameters((ReverbParameters)reverbPresets[(int)preset]); }