using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Entities.Audio; using MediaBrowser.Controller.Providers; using MediaBrowser.Controller.Resolvers; using MediaBrowser.Controller.Sorting; using MediaBrowser.Model.Entities; using System; using System.Collections.Generic; using System.IO; using System.Threading; using System.Threading.Tasks; namespace MediaBrowser.Controller.Library { /// /// Interface ILibraryManager /// public interface ILibraryManager { /// /// Resolves the item. /// /// The args. /// BaseItem. BaseItem ResolveItem(ItemResolveArgs args); /// /// Resolves a path into a BaseItem /// /// The file info. /// The directory service. /// The parent. /// BaseItem. /// BaseItem ResolvePath(FileSystemInfo fileInfo, IDirectoryService directoryService, Folder parent = null); /// /// Resolves the path. /// /// The file information. /// The parent. /// BaseItem. BaseItem ResolvePath(FileSystemInfo fileInfo, Folder parent = null); /// /// Resolves a set of files into a list of BaseItem /// /// /// The files. /// The directory service. /// The parent. /// List{``0}. List ResolvePaths(IEnumerable files, IDirectoryService directoryService, Folder parent) where T : BaseItem; /// /// Gets the root folder. /// /// The root folder. AggregateFolder RootFolder { get; } /// /// Gets a Person /// /// The name. /// Task{Person}. Person GetPerson(string name); /// /// Gets the artist. /// /// The name. /// Task{Artist}. MusicArtist GetArtist(string name); /// /// Gets a Studio /// /// The name. /// Task{Studio}. Studio GetStudio(string name); /// /// Gets a Genre /// /// The name. /// Task{Genre}. Genre GetGenre(string name); /// /// Gets the genre. /// /// The name. /// Task{MusicGenre}. MusicGenre GetMusicGenre(string name); /// /// Gets the game genre. /// /// The name. /// Task{GameGenre}. GameGenre GetGameGenre(string name); /// /// Gets a Year /// /// The value. /// Task{Year}. /// Year GetYear(int value); /// /// Validate and refresh the People sub-set of the IBN. /// The items are stored in the db but not loaded into memory until actually requested by an operation. /// /// The cancellation token. /// The progress. /// Task. Task ValidatePeople(CancellationToken cancellationToken, IProgress progress); /// /// Reloads the root media folder /// /// The progress. /// The cancellation token. /// Task. Task ValidateMediaLibrary(IProgress progress, CancellationToken cancellationToken); /// /// Queues the library scan. /// void QueueLibraryScan(); /// /// Gets the default view. /// /// IEnumerable{VirtualFolderInfo}. IEnumerable GetDefaultVirtualFolders(); /// /// Gets the view. /// /// The user. /// IEnumerable{VirtualFolderInfo}. IEnumerable GetVirtualFolders(User user); /// /// Gets the item by id. /// /// The id. /// BaseItem. BaseItem GetItemById(Guid id); /// /// Gets the intros. /// /// The item. /// The user. /// IEnumerable{System.String}. IEnumerable