using MediaBrowser.Controller.Entities; using MediaBrowser.Model.Channels; using MediaBrowser.Model.Dto; using MediaBrowser.Model.Querying; using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; namespace MediaBrowser.Controller.Channels { public interface IChannelManager { /// /// Adds the parts. /// /// The channels. /// The factories. void AddParts(IEnumerable channels, IEnumerable factories); /// /// Gets the channel download path. /// /// The channel download path. string ChannelDownloadPath { get; } /// /// Gets the channel features. /// /// The identifier. /// ChannelFeatures. ChannelFeatures GetChannelFeatures(string id); /// /// Gets all channel features. /// /// IEnumerable{ChannelFeatures}. IEnumerable GetAllChannelFeatures(); /// /// Gets the channel. /// /// The identifier. /// Channel. Channel GetChannel(string id); /// /// Gets the channels. /// /// The query. /// The cancellation token. /// Task{QueryResult{BaseItemDto}}. Task> GetChannels(ChannelQuery query, CancellationToken cancellationToken); /// /// Gets all media. /// /// The query. /// The cancellation token. /// Task{QueryResult{BaseItemDto}}. Task> GetAllMedia(AllChannelMediaQuery query, CancellationToken cancellationToken); /// /// Gets the channel items. /// /// The query. /// The cancellation token. /// Task{QueryResult{BaseItemDto}}. Task> GetChannelItems(ChannelItemQuery query, CancellationToken cancellationToken); /// /// Gets the cached channel item media sources. /// /// The identifier. /// IEnumerable{MediaSourceInfo}. IEnumerable GetCachedChannelItemMediaSources(string id); /// /// Gets the channel item media sources. /// /// The identifier. /// The cancellation token. /// Task{IEnumerable{MediaSourceInfo}}. Task> GetChannelItemMediaSources(string id, CancellationToken cancellationToken); /// /// Gets the channel folder. /// /// The user identifier. /// The cancellation token. /// BaseItemDto. Task GetInternalChannelFolder(string userId, CancellationToken cancellationToken); /// /// Gets the channel folder. /// /// The user identifier. /// The cancellation token. /// BaseItemDto. Task GetChannelFolder(string userId, CancellationToken cancellationToken); } }