using System; using System.Collections.Generic; using System.IO; using System.Threading; using System.Threading.Tasks; using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Entities.Audio; using MediaBrowser.Model.Configuration; using MediaBrowser.Model.Lyrics; using MediaBrowser.Model.Providers; namespace MediaBrowser.Controller.Lyrics; /// /// Interface ILyricManager. /// public interface ILyricManager { /// /// Occurs when a lyric download fails. /// event EventHandler LyricDownloadFailure; /// /// Search for lyrics for the specified song. /// /// The song. /// Whether the request is automated. /// CancellationToken to use for the operation. /// The list of lyrics. Task> SearchLyricsAsync( Audio audio, bool isAutomated, CancellationToken cancellationToken); /// /// Search for lyrics. /// /// The search request. /// CancellationToken to use for the operation. /// The list of lyrics. Task> SearchLyricsAsync( LyricSearchRequest request, CancellationToken cancellationToken); /// /// Download the lyrics. /// /// The audio. /// The remote lyric id. /// CancellationToken to use for the operation. /// The downloaded lyrics. Task DownloadLyricsAsync( Audio audio, string lyricId, CancellationToken cancellationToken); /// /// Download the lyrics. /// /// The audio. /// The library options to use. /// The remote lyric id. /// CancellationToken to use for the operation. /// The downloaded lyrics. Task DownloadLyricsAsync( Audio audio, LibraryOptions libraryOptions, string lyricId, CancellationToken cancellationToken); /// /// Saves new lyrics. /// /// The audio file the lyrics belong to. /// The lyrics format. /// The lyrics. /// A representing the asynchronous operation. Task SaveLyricAsync(Audio audio, string format, string lyrics); /// /// Saves new lyrics. /// /// The audio file the lyrics belong to. /// The lyrics format. /// The lyrics. /// A representing the asynchronous operation. Task SaveLyricAsync(Audio audio, string format, Stream lyrics); /// /// Get the remote lyrics. /// /// The remote lyrics id. /// CancellationToken to use for the operation. /// The lyric response. Task GetRemoteLyricsAsync(string id, CancellationToken cancellationToken); /// /// Deletes the lyrics. /// /// The audio file to remove lyrics from. /// A representing the asynchronous operation. Task DeleteLyricsAsync(Audio audio); /// /// Get the list of lyric providers. /// /// The item. /// Lyric providers. IReadOnlyList GetSupportedProviders(BaseItem item); /// /// Get the existing lyric for the audio. /// /// The audio item. /// The cancellation token. /// The parsed lyric model. Task GetLyricsAsync(Audio audio, CancellationToken cancellationToken); }