using System.Collections.Generic; using System.IO; using System.Threading; using System.Threading.Tasks; namespace MediaBrowser.Controller.LiveTv { /// /// Represents a single live tv back end (next pvr, media portal, etc). /// public interface ILiveTvService { /// /// Gets the name. /// /// The name. string Name { get; } /// /// Gets the channels async. /// /// The cancellation token. /// Task{IEnumerable{ChannelInfo}}. Task> GetChannelsAsync(CancellationToken cancellationToken); /// /// Cancels the timer asynchronous. /// /// The timer identifier. /// The cancellation token. /// Task. Task CancelTimerAsync(string timerId, CancellationToken cancellationToken); /// /// Cancels the series timer asynchronous. /// /// The timer identifier. /// The cancellation token. /// Task. Task CancelSeriesTimerAsync(string timerId, CancellationToken cancellationToken); /// /// Deletes the recording asynchronous. /// /// The recording identifier. /// The cancellation token. /// Task. Task DeleteRecordingAsync(string recordingId, CancellationToken cancellationToken); /// /// Creates the timer asynchronous. /// /// The information. /// The cancellation token. /// Task. Task CreateTimerAsync(TimerInfo info, CancellationToken cancellationToken); /// /// Creates the series timer asynchronous. /// /// The information. /// The cancellation token. /// Task. Task CreateSeriesTimerAsync(SeriesTimerInfo info, CancellationToken cancellationToken); /// /// Updates the timer asynchronous. /// /// The information. /// The cancellation token. /// Task. Task UpdateTimerAsync(TimerInfo info, CancellationToken cancellationToken); /// /// Updates the series timer asynchronous. /// /// The information. /// The cancellation token. /// Task. Task UpdateSeriesTimerAsync(SeriesTimerInfo info, CancellationToken cancellationToken); /// /// Gets the channel image asynchronous. This only needs to be implemented if an image path or url cannot be supplied to ChannelInfo /// /// The channel identifier. /// The cancellation token. /// Task{Stream}. Task GetChannelImageAsync(string channelId, CancellationToken cancellationToken); /// /// Gets the recording image asynchronous. This only needs to be implemented if an image path or url cannot be supplied to RecordingInfo /// /// The recording identifier. /// The cancellation token. /// Task{ImageResponseInfo}. Task GetRecordingImageAsync(string recordingId, CancellationToken cancellationToken); /// /// Gets the program image asynchronous. This only needs to be implemented if an image path or url cannot be supplied to ProgramInfo /// /// The program identifier. /// The channel identifier. /// The cancellation token. /// Task{ImageResponseInfo}. Task GetProgramImageAsync(string programId, string channelId, CancellationToken cancellationToken); /// /// Gets the recordings asynchronous. /// /// The cancellation token. /// Task{IEnumerable{RecordingInfo}}. Task> GetRecordingsAsync(CancellationToken cancellationToken); /// /// Gets the recordings asynchronous. /// /// The cancellation token. /// Task{IEnumerable{RecordingInfo}}. Task> GetTimersAsync(CancellationToken cancellationToken); /// /// Gets the timer defaults asynchronous. /// /// The cancellation token. /// Task{TimerInfo}. Task GetNewTimerDefaultsAsync(CancellationToken cancellationToken); /// /// Gets the series timers asynchronous. /// /// The cancellation token. /// Task{IEnumerable{SeriesTimerInfo}}. Task> GetSeriesTimersAsync(CancellationToken cancellationToken); /// /// Gets the programs asynchronous. /// /// The channel identifier. /// The cancellation token. /// Task{IEnumerable{ProgramInfo}}. Task> GetProgramsAsync(string channelId, CancellationToken cancellationToken); /// /// Gets the recording stream. /// /// The recording identifier. /// The cancellation token. /// Task{Stream}. Task GetRecordingStream(string recordingId, CancellationToken cancellationToken); /// /// Gets the channel stream. /// /// The recording identifier. /// The cancellation token. /// Task{Stream}. Task GetChannelStream(string recordingId, CancellationToken cancellationToken); } }