/// <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); } }
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); } }
/// <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); }
/// <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); }
/// <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> /// 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; }
/// <summary> /// Free a Bass plug-in. /// </summary> /// <param name="plugin">Bass plug-in object.</param> public static void FreePlugin(BassPlugin plugin) { FreePlugin(GetPlugin(plugin)); }
/// <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)); }
/// <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); }
public PluginEventArgs(BassPlugin plugin) { Plugin = plugin; }
/// <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; }
/// <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; }
/// <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); }
/// <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)); }