Example #1
0
        /// <summary>
        /// Get default name of plug-in file.
        /// </summary>
        /// <param name="plugin"></param>
        /// <returns></returns>
        public static String GetPluginName(this BassPlugin plugin)
        {
            switch (plugin)
            {
            case BassPlugin.BassFlac:
                return("bassflac.dll");

            case BassPlugin.BassApe:
                return("bass_ape.dll");

            case BassPlugin.BassWma:
                return("basswma.dll");

            case BassPlugin.BassAac:
                return("bass_aac.dll");

            case BassPlugin.BassAlac:
                return("bassalac.dll");

            case BassPlugin.BassTta:
                return("bass_tta.dll");

            default:
                return(null);
            }
        }
Example #2
0
 internal Plugin(String pluginPath, BassPlugin plugin)
 {
     using (AutoFreeGCHandle pathHandle = InteropHelper.StringToPtr(pluginPath))
     {
         Handle      = PluginModule.PluginLoadFunction.CheckResult(PluginModule.PluginLoadFunction.Delegate(pathHandle.Handle, PluginLoadConfig.Unicode));
         PluginPath  = pluginPath;
         PluginType  = plugin;
         IsAvailable = true;
         PluginManager.AddPlugin(this);
     }
 }
Example #3
0
 internal Plugin(String pluginPath, BassPlugin plugin)
 {
     using (AutoFreeGCHandle pathHandle = InteropHelper.StringToPtr(pluginPath))
     {
         Handle = PluginModule.PluginLoadFunction.CheckResult(PluginModule.PluginLoadFunction.Delegate(pathHandle.Handle, PluginLoadConfig.Unicode));
         PluginPath = pluginPath;
         PluginType = plugin;
         IsAvailable = true;
         PluginManager.AddPlugin(this);
     }
 }
Example #4
0
        /// <summary>
        ///     Load a bass plug-in, it will auto find plug-in DLL file.
        /// </summary>
        /// <param name="plugin">Plug-in type.</param>
        /// <returns>Bass plug-in object.</returns>
        public static Plugin LoadPlugin(BassPlugin plugin)
        {
            var files = Directory.GetFiles(BassManager.BassLibraryDirectory, plugin.GetPluginName());

            if (files.Length != 0)
            {
                return LoadPlugin(plugin, files[0]);
            }

            files = Directory.GetFiles(Directory.GetCurrentDirectory(), plugin.GetPluginName());

            if (files.Length != 0)
            {
                return LoadPlugin(plugin, files[0]);
            }

            throw new BassPluginNotFoundException(BassManager.BassLibraryDirectory, plugin);
        }
Example #5
0
        /// <summary>
        ///     Load a bass plug-in, it will auto find plug-in DLL file.
        /// </summary>
        /// <param name="plugin">Plug-in type.</param>
        /// <returns>Bass plug-in object.</returns>
        public static Plugin LoadPlugin(BassPlugin plugin)
        {
            var files = Directory.GetFiles(BassManager.BassLibraryDirectory, plugin.GetPluginName());

            if (files.Length != 0)
            {
                return(LoadPlugin(plugin, files[0]));
            }

            files = Directory.GetFiles(Directory.GetCurrentDirectory(), plugin.GetPluginName());

            if (files.Length != 0)
            {
                return(LoadPlugin(plugin, files[0]));
            }

            throw new BassPluginNotFoundException(BassManager.BassLibraryDirectory, plugin);
        }
Example #6
0
        /// <summary>
        ///     Load a bass plug-in with a DLL path or directory.
        /// </summary>
        /// <param name="plugin">Plug-in type.</param>
        /// <param name="path">Plug-in DLL path or directory.</param>
        /// <returns>Bass plug-in object.</returns>
        public static Plugin LoadPlugin(BassPlugin plugin, string path)
        {
            if (File.Exists(path))
            {
                return(new Plugin(path, plugin));
            }

            if (Directory.Exists(path))
            {
                var files = Directory.GetFiles(path, plugin.GetPluginName());

                if (files.Length != 0)
                {
                    return(new Plugin(files[0], plugin));
                }
            }

            throw new BassPluginNotFoundException(BassManager.BassLibraryDirectory, plugin);
        }
Example #7
0
        /// <summary>
        ///     Load a bass plug-in with a DLL path or directory.
        /// </summary>
        /// <param name="plugin">Plug-in type.</param>
        /// <param name="path">Plug-in DLL path or directory.</param>
        /// <returns>Bass plug-in object.</returns>
        public static Plugin LoadPlugin(BassPlugin plugin, string path)
        {
            if (File.Exists(path))
            {
                return new Plugin(path, plugin);
            }

            if (Directory.Exists(path))
            {
                var files = Directory.GetFiles(path, plugin.GetPluginName());

                if (files.Length != 0)
                {
                    return new Plugin(files[0], plugin);
                }
            }

            throw new BassPluginNotFoundException(BassManager.BassLibraryDirectory, plugin);
        }
 /// <summary>
 ///     Create a <see cref="BassPluginAttribute" /> with a plug-in type.
 /// </summary>
 /// <param name="plugin"></param>
 public BassPluginAttribute(BassPlugin plugin)
 {
     Plugin = plugin;
 }
Example #9
0
 /// <summary>
 ///     Create a <see cref="BassPluginAttribute" /> with a plug-in type.
 /// </summary>
 /// <param name="plugin"></param>
 public BassPluginAttribute(BassPlugin plugin)
 {
     Plugin = plugin;
 }
Example #10
0
 /// <summary>
 ///     Free a Bass plug-in.
 /// </summary>
 /// <param name="plugin">Bass plug-in object.</param>
 public static void FreePlugin(BassPlugin plugin)
 {
     FreePlugin(GetPlugin(plugin));
 }
Example #11
0
 /// <summary>
 ///     Find a loaded plug-in, if it not loaded, null will be returned.
 /// </summary>
 /// <param name="plugin">Plug-in type.</param>
 /// <returns>Bass plug-in object.</returns>
 public static Plugin GetPlugin(BassPlugin plugin)
 {
     return(_loadedPlugins.FirstOrDefault(p => p.PluginType == plugin));
 }
Example #12
0
 /// <summary>
 ///     Get a bool value to check a plug-in is loaded or not.
 /// </summary>
 /// <param name="plugin">Plug-in type.</param>
 /// <returns>Plug-in is loaded or not.</returns>
 public static bool IsPluginLoaded(BassPlugin plugin)
 {
     return _loadedPlugins.Exists(p => p.PluginType == plugin);
 }
Example #13
0
 public PluginEventArgs(BassPlugin plugin)
 {
     Plugin = plugin;
 }
Example #14
0
 /// <summary>
 ///     Create a <see cref="xZune.Bass.BassLibraryNotFoundException" /> with Bass library directory path.
 /// </summary>
 public BassPluginNotFoundException(string bassPluginDirectory, BassPlugin plugin)
     : base($"Can't find plug-in DLL, make sure there are {plugin} DLL in \"{bassPluginDirectory}\".")
 {
     BassPluginDirectory = bassPluginDirectory;
     Plugin = plugin;
 }
Example #15
0
 /// <summary>
 ///     Create a <see cref="PluginNotLoadedException" />.
 /// </summary>
 public PluginNotLoadedException(BassPlugin requestedPluginType)
     : base($"Plug-in not loaded, you should load \"{requestedPluginType}\" plug-in to use those functions.")
 {
     RequestedPluginType = requestedPluginType;
 }
Example #16
0
 /// <summary>
 ///     Free a Bass plug-in.
 /// </summary>
 /// <param name="plugin">Bass plug-in object.</param>
 public static void FreePlugin(BassPlugin plugin)
 {
     FreePlugin(GetPlugin(plugin));
 }
Example #17
0
 /// <summary>
 ///     Find a loaded plug-in, if it not loaded, null will be returned.
 /// </summary>
 /// <param name="plugin">Plug-in type.</param>
 /// <returns>Bass plug-in object.</returns>
 public static Plugin GetPlugin(BassPlugin plugin)
 {
     return _loadedPlugins.FirstOrDefault(p => p.PluginType == plugin);
 }
Example #18
0
 /// <summary>
 ///     Create a <see cref="xZune.Bass.BassLibraryNotFoundException" /> with Bass library directory path.
 /// </summary>
 public BassPluginNotFoundException(string bassPluginDirectory, BassPlugin plugin)
     : base($"Can't find plug-in DLL, make sure there are {plugin} DLL in \"{bassPluginDirectory}\".")
 {
     BassPluginDirectory = bassPluginDirectory;
     Plugin = plugin;
 }
Example #19
0
 /// <summary>
 ///     Get a bool value to check a plug-in is loaded or not.
 /// </summary>
 /// <param name="plugin">Plug-in type.</param>
 /// <returns>Plug-in is loaded or not.</returns>
 public static bool IsPluginLoaded(BassPlugin plugin)
 {
     return(_loadedPlugins.Exists(p => p.PluginType == plugin));
 }
Example #20
0
 /// <summary>
 ///     Create a <see cref="PluginNotLoadedException" />.
 /// </summary>
 public PluginNotLoadedException(BassPlugin requestedPluginType)
     : base($"Plug-in not loaded, you should load \"{requestedPluginType}\" plug-in to use those functions.")
 {
     RequestedPluginType = requestedPluginType;
 }
Example #21
0
 public PluginEventArgs(BassPlugin plugin)
 {
     Plugin = plugin;
 }