public void removePanel(VSTPanel panel) { panel.unloadPlugin(); //disconnect panel & shut down plugin rack.removePanel(panel); panels.Remove(panel); foreach (Patch patch in patches) //add panel to each patch { patch.removePanel(panel); } hasChanged = true; controlPanel.rigPluginsChanged(); //broadcast rack change }
//--------------------------------------------------------------------- public static VSTRig loadFromFile(String path, ControlPanel controlPanel) { VSTRig rig = null; EnamlData rigData = EnamlData.loadFromFile(path); //load data from file if (rigData != null) { rig = new VSTRig(controlPanel); //load plugins List <String> plugs = rigData.getPathKeys("plugin-list"); Dictionary <String, VSTPanel> plugList = new Dictionary <string, VSTPanel>(); //temp dict for matching plugins to patches foreach (String plug in plugs) { String plugPath = rigData.getStringValue("plugin-list." + plug + ".path", ""); String plugAudioOut = rigData.getStringValue("plugin-list." + plug + ".audio-out", ""); String plugMidiIn = rigData.getStringValue("plugin-list." + plug + ".midi-in", ""); VSTPanel panel = rig.addPanel(plugPath); //panel.plugin.setAudioOut(plugAudioOut); panel.setMidiIn(plugMidiIn); plugList[plug] = panel; } //load patches List <String> pats = rigData.getPathKeys("patch-list"); foreach (String pat in pats) { String patchName = rigData.getStringValue("patch-list." + pat + ".name", ""); Patch patch = new Patch(patchName); foreach (String plug in plugs) { int patnum = rigData.getIntValue("patch-list." + pat + "." + plug, 0); patch.addPanel(plugList[plug], patnum); } rig.patches.Add(patch); } rig.setCurrentPatch(0); } return(rig); }
//- plugin management ------------------------------------------------------------ public VSTPanel addPanel(string pluginPath) { VSTPanel panel = new VSTPanel(this, panels.Count); bool result = panel.loadPlugin(pluginPath); if (!result) { return(null); } panels.Add(panel); rack.addPanel(panel); foreach (Patch patch in patches) //add panel to each patch { patch.addPanel(panel, 0); } hasChanged = true; controlPanel.rigPluginsChanged(); //broadcast rack change return(panel); }
public void removePanel(VSTPanel panel) { panels.Remove(panel); }
public void addPanel(VSTPanel panel, int patchNum) { panels.Add(panel, patchNum); }