Example #1
0
        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;
        }
Example #2
0
 public void ShowPlugin(WaPlugin plugin)
 {
     if (plugin == null)
     {
         ShowPluginsForm();
     }
     else
     {
         PluginHelper.ShowWaPluginConfig(plugin);
     }
 }
Example #3
0
        /// <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);
        }