using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Providers; using MediaBrowser.Model.Entities; using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; namespace MediaBrowser.Controller.Channels { public interface IChannel { /// /// Gets the name. /// /// The name. string Name { get; } /// /// Gets the data version. /// /// The data version. string DataVersion { get; } /// /// Gets the home page URL. /// /// The home page URL. string HomePageUrl { get; } /// /// Gets the channel information. /// /// ChannelFeatures. InternalChannelFeatures GetChannelFeatures(); /// /// Determines whether [is enabled for] [the specified user]. /// /// The user. /// true if [is enabled for] [the specified user]; otherwise, false. bool IsEnabledFor(User user); /// /// Searches the specified search term. /// /// The search information. /// The user. /// The cancellation token. /// Task{IEnumerable{ChannelItemInfo}}. Task> Search(ChannelSearchInfo searchInfo, User user, CancellationToken cancellationToken); /// /// Gets the channel items. /// /// The query. /// The cancellation token. /// Task{IEnumerable{ChannelItem}}. Task GetChannelItems(InternalChannelItemQuery query, CancellationToken cancellationToken); /// /// Gets the channel image. /// /// The type. /// The cancellation token. /// Task{DynamicImageInfo}. Task GetChannelImage(ImageType type, CancellationToken cancellationToken); /// /// Gets the supported channel images. /// /// IEnumerable{ImageType}. IEnumerable GetSupportedChannelImages(); } public interface IRequiresMediaInfoCallback { /// /// Gets the channel item media information. /// /// The identifier. /// The cancellation token. /// Task{IEnumerable{ChannelMediaInfo}}. Task> GetChannelItemMediaInfo(string id, CancellationToken cancellationToken); } }