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.

50 lines
1.9 KiB

  1. //
  2. // SCFeatureProvider.h
  3. // SCCamera
  4. //
  5. // Created by Kristian Bauer on 1/4/18.
  6. //
  7. #import <SCCamera/AVCameraViewEnums.h>
  8. #import <Foundation/Foundation.h>
  9. @class SCFeatureSettingsManager, SCCapturerToken, SCUserSession;
  10. @protocol SCFeature
  11. , SCCapturer, SCFeatureFlash, SCFeatureHandsFree, SCFeatureLensSideButton, SCFeatureLensButtonZ, SCFeatureMemories,
  12. SCFeatureNightMode, SCFeatureSnapKit, SCFeatureTapToFocusAndExposure, SCFeatureToggleCamera, SCFeatureShazam,
  13. SCFeatureImageCapture, SCFeatureScanning, SCFeatureZooming;
  14. /**
  15. * Provides single location for creating and configuring SCFeatures.
  16. */
  17. @protocol SCFeatureProvider <NSObject>
  18. @property (nonatomic) AVCameraViewType cameraViewType;
  19. @property (nonatomic, readonly) id<SCCapturer> capturer;
  20. @property (nonatomic, strong, readwrite) SCCapturerToken *token;
  21. @property (nonatomic, readonly) SCUserSession *userSession;
  22. // TODO: We should not be reusing AVCameraViewController so eventually the
  23. // context should be removed.
  24. @property (nonatomic, readonly) AVCameraViewControllerContext context;
  25. @property (nonatomic) id<SCFeatureHandsFree> handsFreeRecording;
  26. @property (nonatomic) id<SCFeatureSnapKit> snapKit;
  27. @property (nonatomic) id<SCFeatureTapToFocusAndExposure> tapToFocusAndExposure;
  28. @property (nonatomic) id<SCFeatureMemories> memories;
  29. @property (nonatomic) id<SCFeatureFlash> flash;
  30. @property (nonatomic) id<SCFeatureLensSideButton> lensSideButton;
  31. @property (nonatomic) id<SCFeatureLensButtonZ> lensZButton;
  32. @property (nonatomic) id<SCFeatureNightMode> nightMode;
  33. @property (nonatomic) id<SCFeatureToggleCamera> toggleCamera;
  34. @property (nonatomic) id<SCFeatureShazam> shazam;
  35. @property (nonatomic) id<SCFeatureScanning> scanning;
  36. @property (nonatomic) id<SCFeatureImageCapture> imageCapture;
  37. @property (nonatomic) id<SCFeatureZooming> zooming;
  38. @property (nonatomic, readonly) NSArray<id<SCFeature>> *supportedFeatures;
  39. - (void)resetInstances;
  40. @end