1 // Copyright 2015-present 650 Industries. All rights reserved.
2 
3 #import <ExpoModulesCore/EXModuleRegistry.h>
4 #import <ExpoModulesCore/EXLegacyExpoViewProtocol.h>
5 
6 #import <EXAV/EXAVObject.h>
7 #import <EXAV/EXVideoPlayerViewControllerDelegate.h>
8 
9 @interface EXVideoView : UIView <EXVideoPlayerViewControllerDelegate, AVPlayerViewControllerDelegate, EXAVObject, EXLegacyExpoViewProtocol>
10 
11 typedef NS_OPTIONS(NSUInteger, EXVideoFullscreenUpdate)
12 {
13   EXVideoFullscreenUpdatePlayerWillPresent = 0,
14   EXVideoFullscreenUpdatePlayerDidPresent  = 1,
15   EXVideoFullscreenUpdatePlayerWillDismiss = 2,
16   EXVideoFullscreenUpdatePlayerDidDismiss  = 3,
17 };
18 
19 @property (nonatomic, strong, getter=getStatus) NSDictionary *status;
20 @property (nonatomic, strong) NSDictionary *source;
21 @property (nonatomic, assign) BOOL useNativeControls;
22 @property (nonatomic, strong) NSString *nativeResizeMode;
23 @property (nonatomic, copy) EXDirectEventBlock onLoadStart;
24 @property (nonatomic, copy) EXDirectEventBlock onLoad;
25 @property (nonatomic, copy) EXDirectEventBlock onError;
26 @property (nonatomic, copy) EXDirectEventBlock onStatusUpdate;
27 @property (nonatomic, copy) EXDirectEventBlock onReadyForDisplay;
28 @property (nonatomic, copy) EXDirectEventBlock onFullscreenUpdate;
29 
30 - (instancetype)initWithModuleRegistry:(nullable EXModuleRegistry *)moduleRegistry;
31 
32 - (void)setStatus:(NSDictionary *)status
33          resolver:(EXPromiseResolveBlock)resolve
34          rejecter:(EXPromiseRejectBlock)reject;
35 
36 - (void)replayWithStatus:(NSDictionary *)status
37                 resolver:(EXPromiseResolveBlock)resolve
38                 rejecter:(EXPromiseRejectBlock)reject;
39 
40 - (void)setSource:(NSDictionary *)source
41        withStatus:(NSDictionary *)initialStatus
42          resolver:(EXPromiseResolveBlock)resolve
43          rejecter:(EXPromiseRejectBlock)reject;
44 
45 - (void)setFullscreen:(BOOL)value
46              resolver:(EXPromiseResolveBlock)resolve
47              rejecter:(EXPromiseRejectBlock)reject;
48 
49 - (void)setStatusFromPlaybackAPI:(NSDictionary *)status
50                         resolver:(EXPromiseResolveBlock)resolve
51                         rejecter:(EXPromiseRejectBlock)reject;
52 
53 @end
54