2014 snapchat source code
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
//
// SCManagedCaptureSession.h
// Snapchat
//
// Created by Derek Wang on 02/03/2018.
//
#import <SCBase/SCMacros.h>
#import <AVFoundation/AVFoundation.h>
#import <Foundation/Foundation.h>
/**
`SCManagedCaptureSession` is a wrapper class of `AVCaptureSession`. The purpose of this class is to provide additional functionalities to `AVCaptureSession`. For example, for black camera detection, we need to monitor when some method is called. Another example is that we can treat it as a more stable version of `AVCaptureSession` by moving some `AVCaptureSession` fixing logic to this class, and it provides reliable interfaces to the outside. That would be the next step. It also tries to mimic the `AVCaptureSession` by implmenting some methods in `AVCaptureSession`. The original methods in `AVCaptureSession` should not be used anymore */
@class SCBlackCameraDetector;
NS_ASSUME_NONNULL_BEGIN @interface SCManagedCaptureSession : NSObject
/**
Expose avSession property */ @property (nonatomic, strong, readonly) AVCaptureSession *avSession;
/**
Expose avSession isRunning property for convenience. */ @property (nonatomic, readonly, assign) BOOL isRunning;
/**
Wrap [AVCaptureSession startRunning] method. Monitor startRunning method. [AVCaptureSession startRunning] should not be called */ - (void)startRunning; /**
Wrap [AVCaptureSession stopRunning] method. Monitor stopRunning method. [AVCaptureSession stopRunning] should not be called */ - (void)stopRunning;
/**
Wrap [AVCaptureSession beginConfiguration]. Monitor beginConfiguration method */ - (void)beginConfiguration; /**
Wrap [AVCaptureSession commitConfiguration]. Monitor commitConfiguration method */ - (void)commitConfiguration; /**
Configurate internal AVCaptureSession with block @params block. configuration block with AVCaptureSession as parameter */ - (void)performConfiguration:(void (^)(void))block;
- (instancetype)initWithBlackCameraDetector:(SCBlackCameraDetector *)detector NS_DESIGNATED_INITIALIZER; SC_INIT_AND_NEW_UNAVAILABLE
@end NS_ASSUME_NONNULL_END
|