Files
VDownload/VDownload.Core/Interfaces/IVideoService.cs

56 lines
1.5 KiB
C#
Raw Normal View History

using System;
using System.ComponentModel;
using System.Threading;
using System.Threading.Tasks;
using VDownload.Core.Enums;
using Windows.Storage;
namespace VDownload.Core.Interfaces
{
public interface IVideoService
{
#region PROPERTIES
2022-02-26 14:32:34 +01:00
// VIDEO PROPERTIES
string ID { get; }
2022-02-26 14:32:34 +01:00
Uri VideoUrl { get; }
string Title { get; }
string Author { get; }
DateTime Date { get; }
TimeSpan Duration { get; }
long Views { get; }
Uri Thumbnail { get; }
2022-03-02 22:13:28 +01:00
IBaseStream[] BaseStreams { get; }
#endregion
#region METHODS
// GET VIDEO METADATA
2022-02-26 14:32:34 +01:00
Task GetMetadataAsync(CancellationToken cancellationToken = default);
// GET VIDEO STREAMS
2022-02-26 14:32:34 +01:00
Task GetStreamsAsync(CancellationToken cancellationToken = default);
// DOWNLOAD VIDEO
2022-03-02 22:13:28 +01:00
Task<StorageFile> DownloadAndTranscodeAsync(StorageFolder downloadingFolder, IBaseStream baseStream, MediaFileExtension extension, MediaType mediaType, TimeSpan trimStart, TimeSpan trimEnd, CancellationToken cancellationToken = default);
#endregion
#region EVENT HANDLERS
event EventHandler DownloadingStarted;
event EventHandler<ProgressChangedEventArgs> DownloadingProgressChanged;
event EventHandler DownloadingCompleted;
event EventHandler ProcessingStarted;
event EventHandler<ProgressChangedEventArgs> ProcessingProgressChanged;
event EventHandler ProcessingCompleted;
#endregion
}
}