2012-07-26 02:33:11 +00:00
|
|
|
|
using System.ComponentModel.Composition;
|
|
|
|
|
using System.IO;
|
2012-07-12 06:55:27 +00:00
|
|
|
|
using MediaBrowser.Controller.Events;
|
|
|
|
|
using MediaBrowser.Model.Entities;
|
|
|
|
|
|
|
|
|
|
namespace MediaBrowser.Controller.Resolvers
|
|
|
|
|
{
|
2012-07-26 02:33:11 +00:00
|
|
|
|
[Export(typeof(IBaseItemResolver))]
|
2012-07-12 06:55:27 +00:00
|
|
|
|
public class AudioResolver : BaseItemResolver<Audio>
|
|
|
|
|
{
|
2012-08-20 15:55:05 +00:00
|
|
|
|
public override ResolverPriority Priority
|
|
|
|
|
{
|
|
|
|
|
get { return ResolverPriority.Last; }
|
|
|
|
|
}
|
|
|
|
|
|
2012-07-12 06:55:27 +00:00
|
|
|
|
protected override Audio Resolve(ItemResolveEventArgs args)
|
|
|
|
|
{
|
2012-07-20 02:22:44 +00:00
|
|
|
|
// Return audio if the path is a file and has a matching extension
|
|
|
|
|
|
2012-08-21 14:42:40 +00:00
|
|
|
|
if (!args.IsDirectory)
|
2012-07-12 06:55:27 +00:00
|
|
|
|
{
|
|
|
|
|
if (IsAudioFile(args.Path))
|
|
|
|
|
{
|
|
|
|
|
return new Audio();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
|
2012-08-11 19:49:58 +00:00
|
|
|
|
private static bool IsAudioFile(string path)
|
2012-07-12 06:55:27 +00:00
|
|
|
|
{
|
|
|
|
|
string extension = Path.GetExtension(path).ToLower();
|
|
|
|
|
|
|
|
|
|
switch (extension)
|
|
|
|
|
{
|
|
|
|
|
case ".mp3":
|
|
|
|
|
case ".wma":
|
|
|
|
|
case ".acc":
|
|
|
|
|
case ".flac":
|
|
|
|
|
case ".m4a":
|
|
|
|
|
case ".m4b":
|
|
|
|
|
case ".wav":
|
|
|
|
|
case ".ape":
|
|
|
|
|
return true;
|
|
|
|
|
|
|
|
|
|
default:
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|