mirror of
				https://github.com/jellyfin/jellyfin.git
				synced 2025-11-03 19:17:24 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			187 lines
		
	
	
		
			7.6 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			187 lines
		
	
	
		
			7.6 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
#pragma warning disable CS1591
 | 
						|
 | 
						|
using System;
 | 
						|
using System.Collections.Generic;
 | 
						|
using System.Threading;
 | 
						|
using System.Threading.Tasks;
 | 
						|
using MediaBrowser.Controller.Library;
 | 
						|
using MediaBrowser.Model.Dto;
 | 
						|
 | 
						|
namespace MediaBrowser.Controller.LiveTv
 | 
						|
{
 | 
						|
    /// <summary>
 | 
						|
    /// Represents a single live tv back end (next pvr, media portal, etc).
 | 
						|
    /// </summary>
 | 
						|
    public interface ILiveTvService
 | 
						|
    {
 | 
						|
        /// <summary>
 | 
						|
        /// Gets the name.
 | 
						|
        /// </summary>
 | 
						|
        /// <value>The name.</value>
 | 
						|
        string Name { get; }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Gets the home page URL.
 | 
						|
        /// </summary>
 | 
						|
        /// <value>The home page URL.</value>
 | 
						|
        string HomePageUrl { get; }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Gets the channels async.
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="cancellationToken">The cancellation token.</param>
 | 
						|
        /// <returns>Task{IEnumerable{ChannelInfo}}.</returns>
 | 
						|
        Task<IEnumerable<ChannelInfo>> GetChannelsAsync(CancellationToken cancellationToken);
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Cancels the timer asynchronous.
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="timerId">The timer identifier.</param>
 | 
						|
        /// <param name="cancellationToken">The cancellation token.</param>
 | 
						|
        /// <returns>Task.</returns>
 | 
						|
        Task CancelTimerAsync(string timerId, CancellationToken cancellationToken);
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Cancels the series timer asynchronous.
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="timerId">The timer identifier.</param>
 | 
						|
        /// <param name="cancellationToken">The cancellation token.</param>
 | 
						|
        /// <returns>Task.</returns>
 | 
						|
        Task CancelSeriesTimerAsync(string timerId, CancellationToken cancellationToken);
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Creates the timer asynchronous.
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="info">The information.</param>
 | 
						|
        /// <param name="cancellationToken">The cancellation token.</param>
 | 
						|
        /// <returns>Task.</returns>
 | 
						|
        Task CreateTimerAsync(TimerInfo info, CancellationToken cancellationToken);
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Creates the series timer asynchronous.
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="info">The information.</param>
 | 
						|
        /// <param name="cancellationToken">The cancellation token.</param>
 | 
						|
        /// <returns>Task.</returns>
 | 
						|
        Task CreateSeriesTimerAsync(SeriesTimerInfo info, CancellationToken cancellationToken);
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Updates the timer asynchronous.
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="info">The information.</param>
 | 
						|
        /// <param name="cancellationToken">The cancellation token.</param>
 | 
						|
        /// <returns>Task.</returns>
 | 
						|
        Task UpdateTimerAsync(TimerInfo info, CancellationToken cancellationToken);
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Updates the series timer asynchronous.
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="info">The information.</param>
 | 
						|
        /// <param name="cancellationToken">The cancellation token.</param>
 | 
						|
        /// <returns>Task.</returns>
 | 
						|
        Task UpdateSeriesTimerAsync(SeriesTimerInfo info, CancellationToken cancellationToken);
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Gets the recordings asynchronous.
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="cancellationToken">The cancellation token.</param>
 | 
						|
        /// <returns>Task{IEnumerable{RecordingInfo}}.</returns>
 | 
						|
        Task<IEnumerable<TimerInfo>> GetTimersAsync(CancellationToken cancellationToken);
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Gets the new timer defaults asynchronous.
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="cancellationToken">The cancellation token.</param>
 | 
						|
        /// <param name="program">The program.</param>
 | 
						|
        /// <returns>Task{SeriesTimerInfo}.</returns>
 | 
						|
        Task<SeriesTimerInfo> GetNewTimerDefaultsAsync(CancellationToken cancellationToken, ProgramInfo program = null);
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Gets the series timers asynchronous.
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="cancellationToken">The cancellation token.</param>
 | 
						|
        /// <returns>Task{IEnumerable{SeriesTimerInfo}}.</returns>
 | 
						|
        Task<IEnumerable<SeriesTimerInfo>> GetSeriesTimersAsync(CancellationToken cancellationToken);
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Gets the programs asynchronous.
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="channelId">The channel identifier.</param>
 | 
						|
        /// <param name="startDateUtc">The start date UTC.</param>
 | 
						|
        /// <param name="endDateUtc">The end date UTC.</param>
 | 
						|
        /// <param name="cancellationToken">The cancellation token.</param>
 | 
						|
        /// <returns>Task{IEnumerable{ProgramInfo}}.</returns>
 | 
						|
        Task<IEnumerable<ProgramInfo>> GetProgramsAsync(string channelId, DateTime startDateUtc, DateTime endDateUtc, CancellationToken cancellationToken);
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Gets the channel stream.
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="channelId">The channel identifier.</param>
 | 
						|
        /// <param name="streamId">The stream identifier.</param>
 | 
						|
        /// <param name="cancellationToken">The cancellation token.</param>
 | 
						|
        /// <returns>Task{Stream}.</returns>
 | 
						|
        Task<MediaSourceInfo> GetChannelStream(string channelId, string streamId, CancellationToken cancellationToken);
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Gets the channel stream media sources.
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="channelId">The channel identifier.</param>
 | 
						|
        /// <param name="cancellationToken">The cancellation token.</param>
 | 
						|
        /// <returns>Task<List<MediaSourceInfo>>.</returns>
 | 
						|
        Task<List<MediaSourceInfo>> GetChannelStreamMediaSources(string channelId, CancellationToken cancellationToken);
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Closes the live stream.
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="id">The identifier.</param>
 | 
						|
        /// <param name="cancellationToken">The cancellation token.</param>
 | 
						|
        /// <returns>Task.</returns>
 | 
						|
        Task CloseLiveStream(string id, CancellationToken cancellationToken);
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Records the live stream.
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="id">The identifier.</param>
 | 
						|
        /// <param name="cancellationToken">The cancellation token.</param>
 | 
						|
        /// <returns>Task.</returns>
 | 
						|
        Task RecordLiveStream(string id, CancellationToken cancellationToken);
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Resets the tuner.
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="id">The identifier.</param>
 | 
						|
        /// <param name="cancellationToken">The cancellation token.</param>
 | 
						|
        /// <returns>Task.</returns>
 | 
						|
        Task ResetTuner(string id, CancellationToken cancellationToken);
 | 
						|
    }
 | 
						|
 | 
						|
    public interface ISupportsNewTimerIds
 | 
						|
    {
 | 
						|
        /// <summary>
 | 
						|
        /// Creates the timer asynchronous.
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="info">The information.</param>
 | 
						|
        /// <param name="cancellationToken">The cancellation token.</param>
 | 
						|
        /// <returns>Task.</returns>
 | 
						|
        Task<string> CreateTimer(TimerInfo info, CancellationToken cancellationToken);
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Creates the series timer asynchronous.
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="info">The information.</param>
 | 
						|
        /// <param name="cancellationToken">The cancellation token.</param>
 | 
						|
        /// <returns>Task.</returns>
 | 
						|
        Task<string> CreateSeriesTimer(SeriesTimerInfo info, CancellationToken cancellationToken);
 | 
						|
    }
 | 
						|
 | 
						|
    public interface ISupportsDirectStreamProvider
 | 
						|
    {
 | 
						|
        Task<ILiveStream> GetChannelStreamWithDirectStreamProvider(string channelId, string streamId, List<ILiveStream> currentLiveStreams, CancellationToken cancellationToken);
 | 
						|
    }
 | 
						|
 | 
						|
    public interface ISupportsUpdatingDefaults
 | 
						|
    {
 | 
						|
        Task UpdateTimerDefaults(SeriesTimerInfo info, CancellationToken cancellationToken);
 | 
						|
    }
 | 
						|
}
 |