public void ClearWaPlugin() { if (WaPlugin == null) { return; } // DebugHelper.WriteLine("Unload plug-in" + WaPlugin.Name); try { BassWaDsp.BASS_WADSP_Stop(WaPlugin.Id); Thread.Sleep(20); BassWaDsp.BASS_WADSP_ChannelRemoveDSP(WaPlugin.Id); Thread.Sleep(20); BassWaDsp.BASS_WADSP_FreeDSP(WaPlugin.Id); Thread.Sleep(20); } catch { // ignored } WaPlugin = null; }
public void ShowPlugin(WaPlugin plugin) { if (plugin == null) { ShowPluginsForm(); } else { PluginHelper.ShowWaPluginConfig(plugin); } }
/// <summary> /// Loads a WinAmp DSP plug-in and applies it to the mixer /// </summary> /// <param name="location">The file location of the WinAmp DSP DLL</param> public WaPlugin LoadWaPlugin(string location) { if (location == "") { return(null); } if (WaPlugin != null && WaPlugin.Location == location) { return(WaPlugin); } if (!File.Exists(location)) { return(null); } BassMix.BASS_Mixer_ChannelPause(ChannelId); if (!_waDspLoaded) { StartWaDspEngine(); } // DebugHelper.WriteLine("Load WAPlugin " + location); var id = BassWaDsp.BASS_WADSP_Load(location, 10, 10, 300, 300, null); Thread.Sleep(20); var plugin = new WaPlugin { Id = id, Module = 0 }; plugin.Name = BassWaDsp.BASS_WADSP_GetName(plugin.Id); Thread.Sleep(20); plugin.Location = location; BassWaDsp.BASS_WADSP_Start(plugin.Id, plugin.Module, ChannelId); Thread.Sleep(20); BassWaDsp.BASS_WADSP_ChannelSetDSP(plugin.Id, ChannelId, 1); Thread.Sleep(20); WaPlugin = plugin; BassMix.BASS_Mixer_ChannelPlay(ChannelId); Thread.Sleep(20); return(plugin); }