//cons public VSTPanel(VSTRig _rig, int _plugNum) { InitializeComponent(); rig = _rig; audiwin = rig.controlPanel.auditwin; host = rig.controlPanel.host; midiDevices = rig.controlPanel.midiDevices; plugNum = _plugNum; this.lblPlugName.Text = plugName; plugPath = null; fileName = null; plugin = null; this.Size = new Size(PANELWIDTH, PANELHEIGHT); pluginInfoWnd = null; paramEditorWnd = null; editorWindow = null; midiInDevice = null; midiInUnit = null; midiOutDeviceNum = -1; audioOut = "no output"; }
//- panel management ---------------------------------------------------------- public bool loadPlugin(String _plugPath) { plugPath = _plugPath; fileName = Path.GetFileNameWithoutExtension(plugPath); plugin = host.loadPlugin(plugPath); if (plugin != null) { plugName = (plugin.name.Length > 0) ? plugin.name : fileName; lblPlugName.Text = plugName; editorWindowSize = new Size(plugin.editorWidth, plugin.editorHeight); if (plugin.programs != null) { cbxProgList.DisplayMember = "name"; cbxProgList.DataSource = plugin.programs; } else { cbxProgList.Items.Add("no programs"); cbxProgList.SelectedIndex = 0; cbxProgList.Enabled = false; btnPrevProg.Enabled = false; btnNextProg.Enabled = false; } return(true); } return(false); }
public PluginInfoWnd(VSTPanel _panel) { InitializeComponent(); this.BackColor = Color.FromArgb(0x3f, 0xff, 0x00); panel = _panel; plugin = panel.plugin; //flags String flags = ""; if ((plugin.flags & (1 << 0)) != 0) { flags += " Has editor\n"; } if ((plugin.flags & (1 << 4)) != 0) { flags += " Supports replacing processing\n"; } if ((plugin.flags & (1 << 5)) != 0) { flags += " Program data is handled in chunks\n"; } if ((plugin.flags & (1 << 8)) != 0) { flags += " Is a synth\n"; } if ((plugin.flags & (1 << 9)) != 0) { flags += " Does not produce sound when input is silent\n"; } if ((plugin.flags & (1 << 12)) != 0) { flags += " Supports double precision processing\n"; } //unique ID byte[] idbytes = BitConverter.GetBytes(plugin.uniqueID); String idstr = System.Text.Encoding.ASCII.GetString(idbytes); char[] idchars = idstr.ToCharArray(); Array.Reverse(idchars); idstr = new String(idchars); String infotext = plugin.name + "\n" + plugin.vendor + "\n\n" + //plugin.version + "\n" + plugin.numPrograms + " programs\n" + plugin.numParams + " parameters\n" + plugin.numInputs + " inputs\n" + plugin.numOutputs + " outputs\n\n" + "Flags : 0x" + plugin.flags.ToString("X4") + "\n" + flags + "Unique ID : " + idstr + "\n"; lblPlugInfo.Text = infotext; }
//cons public PluginSettingsWnd(VSTPanel _panel) { InitializeComponent(); panel = _panel; plugin = panel.plugin; waveDevices = panel.host.waveDevices; midiDevices = panel.midiDevices; cbxAudioIn.DataSource = waveDevices.getInDevNameList(); cbxAudioOut.DataSource = waveDevices.getOutDevNameList(); cbxMidiIn.DataSource = midiDevices.getInDevNameList(); cbxMidiIn.SelectedIndex = cbxMidiIn.FindString((panel.midiInDevice != null) ? panel.midiInDevice.devName : "no input"); cbxMidiOut.DataSource = midiDevices.getOutDevNameList(); }
/// <summary> /// Save Effects Settings /// </summary> public override void SaveSettings() { Settings.Instance.MusicDirectory = _initialMusicDirectory; // Settings for BASS DSP/FX Settings.Instance.BassEffects.Clear(); BassEffect basseffect; // Gain if (textBoxGainDBValue.Text != "0") { basseffect = new BassEffect(); basseffect.EffectName = "Gain"; basseffect.Parameter.Add(new BassEffectParm("Gain_dbV", textBoxGainDBValue.Text)); Settings.Instance.BassEffects.Add(basseffect); } // Dynamic Amplification if (checkBoxDAmp.Checked) { basseffect = new BassEffect(); basseffect.EffectName = "DynAmp"; basseffect.Parameter.Add(new BassEffectParm("Preset", comboBoxDynamicAmplification.SelectedIndex.ToString())); Settings.Instance.BassEffects.Add(basseffect); } // Compressor if (checkBoxCompressor.Checked) { basseffect = new BassEffect(); basseffect.EffectName = "Compressor"; basseffect.Parameter.Add(new BassEffectParm("Threshold", trackBarCompressor.Value.ToString())); Settings.Instance.BassEffects.Add(basseffect); } // Settings for VST Plugings Settings.Instance.VSTPlugins.Clear(); VSTPlugin vstplugin; foreach (string plugindll in _vstHandles.Keys) { vstplugin = new VSTPlugin(); vstplugin.PluginDll = plugindll; _vstHandle = _vstHandles[plugindll]; BASS_VST_PARAM_INFO paramInfo = new BASS_VST_PARAM_INFO(); for (int i = BassVst.BASS_VST_GetParamCount(_vstHandle) - 1; i >= 0; i--) { BassVst.BASS_VST_GetParamInfo(_vstHandle, i, paramInfo); float value = BassVst.BASS_VST_GetParam(_vstHandle, i); vstplugin.Parameter.Add(new VSTPluginParm(paramInfo.name, i, value.ToString())); } Settings.Instance.VSTPlugins.Add(vstplugin); } // Settings for WinAmpPlugins WinAmpPlugin winampplugin; // Clear all settings first Settings.Instance.WinAmpPlugins.Clear(); foreach (DSPPluginInfo pluginInfo in listBoxSelectedPlugins.Items) { if (pluginInfo.DSPPluginType == DSPPluginInfo.PluginType.Winamp) { winampplugin = new WinAmpPlugin(); winampplugin.PluginDll = pluginInfo.FilePath; Settings.Instance.WinAmpPlugins.Add(winampplugin); } } Settings.SaveSettings(); }
private void cbxPlugin_SelectedIndexChanged(object sender, EventArgs e) { VSTPlugin plugin = (plugins.Count > 0) ? plugins[cbxPlugin.SelectedIndex] : null; setSelectedPlugin(plugin); }
public void setSelectedPlugin(VSTPlugin plugin) { currentPlugin = plugin; currentPluginName = (plugin != null) ? plugin.name : null; }