Index: banshee/src/Core/Banshee.Base/Dap/Dap.cs =================================================================== --- banshee.orig/src/Core/Banshee.Base/Dap/Dap.cs 2007-03-03 21:33:42.000000000 -0500 +++ banshee/src/Core/Banshee.Base/Dap/Dap.cs 2007-03-03 21:35:43.000000000 -0500 @@ -552,6 +552,19 @@ return false; } + + private bool KnownSongFormat(string filename) + { + string ext = Path.GetExtension(filename).ToLower().Trim(); + + foreach(string vext in CodecType.GetAllExtensions()) { + if(ext == "." + vext) { + return true; + } + } + + return false; + } private string GetCachedSongFileName(SafeUri uri) { @@ -560,6 +573,10 @@ if(ValidSongFormat(filename)) { return filename; } + + if (!KnownSongFormat(filename)) { + return filename; + } string path = PathUtil.MakeFileNameKey(uri); string dir = Path.GetDirectoryName(path); Index: banshee/src/Core/Banshee.Base/Dap/DapMisc.cs =================================================================== --- banshee.orig/src/Core/Banshee.Base/Dap/DapMisc.cs 2007-03-03 21:33:42.000000000 -0500 +++ banshee/src/Core/Banshee.Base/Dap/DapMisc.cs 2007-03-03 21:35:43.000000000 -0500 @@ -27,6 +27,7 @@ */ using System; +using System.Collections; using System.Collections.Generic; using Banshee.Base; @@ -136,6 +137,22 @@ return null; } + + private static string [] all_extensions = null; + public static string [] GetAllExtensions() + { + if (all_extensions != null) + return all_extensions; + + ArrayList extensions = new ArrayList(); + foreach (string type in new string[] { Mp3, Mp4, Wma, Ogg, Wav, Flac }) { + foreach (string ext in GetExtensions(type)) { + extensions.Add(ext); + } + } + all_extensions = extensions.ToArray(typeof(string)) as string []; + return all_extensions; + } } [AttributeUsage(AttributeTargets.Class, AllowMultiple = false)]