//
//  RTCXMediaDownloadInterface.h
//  RTCXMedia
//
//  Created by Apple on 2025/7/29.
//

#import <Foundation/Foundation.h>
#import <RTCXMedia/RTCXMediaDownloadConfig.h>
NS_ASSUME_NONNULL_BEGIN
@class RTCXMediaDownload;

typedef NS_ENUM(NSInteger, RTCXLogoWatermarkPosition) {
    RTCXLogoWatermarkPosition_DefaultPos,   //logo水印默认位置
    RTCXLogoWatermarkPosition_LeftTop,      //logo水印位于左上角
    RTCXLogoWatermarkPosition_RightTop,     //logo水印位于右上角
    RTCXLogoWatermarkPosition_RightBottom,  //logo水印位于右下角
    RTCXLogoWatermarkPosition_LeftBottom,   //logo水印位于左下角
};

@protocol RTCXMediaDownloadDelegate <NSObject>

@optional
/**
 @brief 下载进度回调
 
 @param mediaDownload 下载实例
 @param progress 下载时间进度（单位：毫秒）
 @param completed 下载是否完成
 */
- (void)mediaDownload:(RTCXMediaDownload *)mediaDownload downloadProgress:(int)progress completed:(BOOL)completed;

/**
 @brief  下载文件路径回调
 
 @param mediaDownload 下载实例
 @param filePath 下载文件路径
 */
- (void)mediaDownload:(RTCXMediaDownload *)mediaDownload downloadFilePath:(NSString *)filePath;

/**
 @brief 下载错误回调
 
 @param mediaDownload 下载实例
 @param error 错误error
 */
- (void)mediaDownload:(RTCXMediaDownload *)mediaDownload downloadFileError:(NSError *)error;

@end

@protocol RTCXMediaDownloadDataSource <NSObject>

@optional
/**
 设置时间水印字体本地文件路径
 
 @return 水印字体文件路径
 */
- (NSString *)fontPath;
/**
 设置logo水印本地路径
 
 @return logo水印本地路径
 */
- (NSString *)logoWatermarkPath;
/**
 设置logo水印位置
 
 @return logo水印位置
 */
- (RTCXLogoWatermarkPosition)logoWatermarkPosition;
/**
 设置视频分辨率尺寸
 
 @return CGSize 如：（1280.0，720.0）
 */
- (CGSize)resolutionSize;

@end

@protocol RTCXMediaDownloadInterface <NSObject>
/**
 @brief 开始下载（目前只对云端视频下载有效，并且一次下载视频长度最多5分钟）

 @param config 下载参数对象
 */
- (void)startDownloadWithConfig:(RTCXMediaDownloadConfig *)config;
/**
 @brief 结束下载，下载完成时，必须调用此接口，保存的视频才能正常播放，可通过下载进度回调判断是否完成

 */
- (void)stopDownload;
@end

NS_ASSUME_NONNULL_END
