2022-02-16 03:15:41 +01:00
|
|
|
|
using System;
|
|
|
|
|
|
using System.ComponentModel;
|
|
|
|
|
|
using System.Threading;
|
|
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
|
using VDownload.Core.Enums;
|
2022-03-07 14:59:11 +01:00
|
|
|
|
using VDownload.Core.Structs;
|
2022-02-16 03:15:41 +01:00
|
|
|
|
using Windows.Storage;
|
|
|
|
|
|
|
|
|
|
|
|
namespace VDownload.Core.Interfaces
|
|
|
|
|
|
{
|
|
|
|
|
|
public interface IVideoService
|
|
|
|
|
|
{
|
2022-02-19 01:38:37 +01:00
|
|
|
|
#region PROPERTIES
|
2022-02-16 03:15:41 +01:00
|
|
|
|
|
2022-02-26 14:32:34 +01:00
|
|
|
|
// VIDEO PROPERTIES
|
2022-02-16 03:15:41 +01:00
|
|
|
|
string ID { get; }
|
2022-02-26 14:32:34 +01:00
|
|
|
|
Uri VideoUrl { get; }
|
2022-03-07 14:59:11 +01:00
|
|
|
|
Metadata Metadata { get; }
|
|
|
|
|
|
BaseStream[] BaseStreams { get; }
|
2022-02-16 03:15:41 +01:00
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#region METHODS
|
|
|
|
|
|
|
|
|
|
|
|
// GET VIDEO METADATA
|
2022-02-26 14:32:34 +01:00
|
|
|
|
Task GetMetadataAsync(CancellationToken cancellationToken = default);
|
2022-02-16 03:15:41 +01:00
|
|
|
|
|
|
|
|
|
|
// GET VIDEO STREAMS
|
2022-02-26 14:32:34 +01:00
|
|
|
|
Task GetStreamsAsync(CancellationToken cancellationToken = default);
|
2022-02-16 03:15:41 +01:00
|
|
|
|
|
|
|
|
|
|
// DOWNLOAD VIDEO
|
2022-03-07 14:59:11 +01:00
|
|
|
|
Task<StorageFile> DownloadAndTranscodeAsync(StorageFolder downloadingFolder, BaseStream baseStream, MediaFileExtension extension, MediaType mediaType, TimeSpan trimStart, TimeSpan trimEnd, CancellationToken cancellationToken = default);
|
2022-02-16 03:15:41 +01:00
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#region EVENT HANDLERS
|
|
|
|
|
|
|
2022-03-07 14:59:11 +01:00
|
|
|
|
event EventHandler<EventArgs.ProgressChangedEventArgs> DownloadingProgressChanged;
|
|
|
|
|
|
event EventHandler<EventArgs.ProgressChangedEventArgs> ProcessingProgressChanged;
|
2022-02-16 03:15:41 +01:00
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|