using System; using System.Collections.Generic; using System.Threading.Tasks; using MediaBrowser.Controller.Entities; using MediaBrowser.Model.Entities; namespace MediaBrowser.Controller.LiveTv; /// /// Service responsible for managing LiveTV recordings. /// public interface IRecordingsManager { /// /// Gets the path for the provided timer id. /// /// The timer id. /// The recording path, or null if none exists. string? GetActiveRecordingPath(string id); /// /// Gets the information for an active recording. /// /// The recording path. /// The , or null if none exists. ActiveRecordingInfo? GetActiveRecordingInfo(string path); /// /// Gets the recording folders. /// /// The for each recording folder. IEnumerable GetRecordingFolders(); /// /// Ensures that the recording folders all exist, and removes unused folders. /// /// Task. Task CreateRecordingFolders(); /// /// Cancels the recording with the provided timer id, if one is active. /// /// The timer id. /// The timer. void CancelRecording(string timerId, TimerInfo? timer); /// /// Records a stream. /// /// The recording info. /// The channel associated with the recording timer. /// The time to stop recording. /// Task representing the recording process. Task RecordStream(ActiveRecordingInfo recordingInfo, BaseItem channel, DateTime recordingEndDate); }