mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-07-18 01:01:11 +00:00
77 lines
3.0 KiB
Objective-C
77 lines
3.0 KiB
Objective-C
#import <SSignalKit/SSignalKit.h>
|
|
#import <CoreMedia/CoreMedia.h>
|
|
#import <UIKit/UIKit.h>
|
|
|
|
@class TGMediaAsset;
|
|
@class AVPlayerItem;
|
|
@class AVAsset;
|
|
|
|
typedef enum
|
|
{
|
|
TGMediaAssetImageTypeUndefined = 0,
|
|
TGMediaAssetImageTypeThumbnail,
|
|
TGMediaAssetImageTypeAspectRatioThumbnail,
|
|
TGMediaAssetImageTypeScreen,
|
|
TGMediaAssetImageTypeFastScreen,
|
|
TGMediaAssetImageTypeLargeThumbnail,
|
|
TGMediaAssetImageTypeFastLargeThumbnail,
|
|
TGMediaAssetImageTypeFullSize
|
|
} TGMediaAssetImageType;
|
|
|
|
@interface TGMediaAssetImageData : NSObject
|
|
|
|
@property (nonatomic, strong) NSURL *fileURL;
|
|
@property (nonatomic, strong) NSString *fileName;
|
|
@property (nonatomic, strong) NSString *fileUTI;
|
|
@property (nonatomic, strong) NSData *imageData;
|
|
|
|
@end
|
|
|
|
|
|
@interface TGMediaAssetImageFileAttributes : NSObject
|
|
|
|
@property (nonatomic, strong) NSString *fileName;
|
|
@property (nonatomic, strong) NSString *fileUTI;
|
|
@property (nonatomic, assign) CGSize dimensions;
|
|
@property (nonatomic, assign) NSUInteger fileSize;
|
|
|
|
@end
|
|
|
|
|
|
@interface TGMediaAssetImageSignals : NSObject
|
|
|
|
+ (SSignal *)imageForAsset:(TGMediaAsset *)asset imageType:(TGMediaAssetImageType)imageType size:(CGSize)size;
|
|
+ (SSignal *)imageForAsset:(TGMediaAsset *)asset imageType:(TGMediaAssetImageType)imageType size:(CGSize)size allowNetworkAccess:(bool)allowNetworkAccess;
|
|
|
|
+ (SSignal *)livePhotoForAsset:(TGMediaAsset *)asset;
|
|
+ (SSignal *)livePhotoForAsset:(TGMediaAsset *)asset allowNetworkAccess:(bool)allowNetworkAccess;
|
|
|
|
+ (SSignal *)imageDataForAsset:(TGMediaAsset *)asset;
|
|
+ (SSignal *)imageDataForAsset:(TGMediaAsset *)asset allowNetworkAccess:(bool)allowNetworkAccess;
|
|
|
|
+ (SSignal *)imageMetadataForAsset:(TGMediaAsset *)asset;
|
|
+ (SSignal *)fileAttributesForAsset:(TGMediaAsset *)asset;
|
|
|
|
+ (void)startCachingImagesForAssets:(NSArray *)assets imageType:(TGMediaAssetImageType)imageType size:(CGSize)size;
|
|
+ (void)stopCachingImagesForAssets:(NSArray *)assets imageType:(TGMediaAssetImageType)imageType size:(CGSize)size;
|
|
+ (void)stopCachingImagesForAllAssets;
|
|
|
|
+ (SSignal *)videoThumbnailsForAsset:(TGMediaAsset *)asset size:(CGSize)size timestamps:(NSArray *)timestamps;
|
|
+ (SSignal *)videoThumbnailsForAVAsset:(AVAsset *)avAsset size:(CGSize)size timestamps:(NSArray *)timestamps;
|
|
+ (SSignal *)videoThumbnailForAsset:(TGMediaAsset *)asset size:(CGSize)size timestamp:(CMTime)timestamp;
|
|
+ (SSignal *)videoThumbnailForAVAsset:(AVAsset *)avAsset size:(CGSize)size timestamp:(CMTime)timestamp;
|
|
|
|
+ (SSignal *)saveUncompressedVideoForAsset:(TGMediaAsset *)asset toPath:(NSString *)path;
|
|
+ (SSignal *)saveUncompressedVideoForAsset:(TGMediaAsset *)asset toPath:(NSString *)path allowNetworkAccess:(bool)allowNetworkAccess;
|
|
|
|
+ (SSignal *)playerItemForVideoAsset:(TGMediaAsset *)asset;
|
|
+ (SSignal *)avAssetForVideoAsset:(TGMediaAsset *)asset;
|
|
+ (SSignal *)avAssetForVideoAsset:(TGMediaAsset *)asset allowNetworkAccess:(bool)allowNetworkAccess;
|
|
+ (UIImageOrientation)videoOrientationOfAVAsset:(AVAsset *)avAsset;
|
|
|
|
+ (bool)usesPhotoFramework;
|
|
|
|
@end
|
|
|
|
extern const CGSize TGMediaAssetImageLegacySizeLimit;
|