#pragma warning disable CS1591 using System; using System.Threading; using System.Threading.Tasks; using MediaBrowser.Controller.Library; using MediaBrowser.Model.Dto; namespace Jellyfin.LiveTv.EmbyTV { public interface IRecorder : IDisposable { /// /// Records the specified media source. /// /// The direct stream provider, or null. /// The media source. /// The target file. /// The duration to record. /// An action to perform when recording starts. /// The cancellation token. /// A that represents the recording operation. Task Record(IDirectStreamProvider? directStreamProvider, MediaSourceInfo mediaSource, string targetFile, TimeSpan duration, Action onStarted, CancellationToken cancellationToken); string GetOutputPath(MediaSourceInfo mediaSource, string targetFile); } }