using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.Resolvers;
using System;
using System.IO;
using System.Linq;
namespace MediaBrowser.Server.Implementations.Library.Resolvers.Audio
{
///
/// Class AudioResolver
///
public class AudioResolver : ItemResolver
{
///
/// Gets the priority.
///
/// The priority.
public override ResolverPriority Priority
{
get { return ResolverPriority.Last; }
}
///
/// Resolves the specified args.
///
/// The args.
/// Entities.Audio.Audio.
protected override Controller.Entities.Audio.Audio Resolve(ItemResolveArgs args)
{
// Return audio if the path is a file and has a matching extension
if (!args.IsDirectory)
{
if (IsAudioFile(args.Path))
{
return new Controller.Entities.Audio.Audio();
}
}
return null;
}
///
/// The audio file extensions
///
public static readonly string[] AudioFileExtensions = new[] {
".mp3",
".flac",
".wma",
".aac",
".acc",
".m4a",
".m4b",
".wav",
".ape",
".ogg",
".oga"
};
///
/// Determines whether [is audio file] [the specified args].
///
/// The path.
/// true if [is audio file] [the specified args]; otherwise, false.
public static bool IsAudioFile(string path)
{
return AudioFileExtensions.Contains(Path.GetExtension(path), StringComparer.OrdinalIgnoreCase);
}
}
}