import { CameraCapturedPicture, CameraPictureOptions } from './Camera.types'; import CameraModule from './CameraModule/CameraModule'; import { canGetUserMedia } from './CameraModule/UserMediaManager'; import ExponentCamera from './ExponentCamera.web'; export default { get name(): string { return 'ExponentCameraManager'; }, get Type() { return { back: 'back', front: 'front', }; }, get FlashMode() { return { on: 'on', off: 'off', auto: 'auto', torch: 'torch', }; }, get AutoFocus() { return { on: 'on', off: 'off', auto: 'auto', singleShot: 'singleShot', }; }, get WhiteBalance() { return { auto: 'auto', continuous: 'continuous', manual: 'manual', }; }, get VideoQuality() { return {}; }, async isAvailableAsync(): Promise { return canGetUserMedia(); }, // TODO: Bacon: Is video possible? // record(options): Promise // stopRecording(): Promise async takePicture( options: CameraPictureOptions, camera: ExponentCamera ): Promise { return await camera.takePicture(options); }, async pausePreview(camera: ExponentCamera): Promise { await camera.pausePreview(); }, async resumePreview(camera: ExponentCamera): Promise { return await camera.resumePreview(); }, async getAvailableCameraTypesAsync(): Promise { return await CameraModule.getAvailableCameraTypesAsync(); }, async getAvailablePictureSizes(ratio: string, camera: ExponentCamera): Promise { return await camera.getAvailablePictureSizes(ratio); }, };