AndroidCameraSettings.java revision 8097973089420749dcd1ab4974a629c2466b31cc
18097973089420749dcd1ab4974a629c2466b31ccAngus Kongpackage com.android.ex.camera2.portability;
28097973089420749dcd1ab4974a629c2466b31ccAngus Kong
38097973089420749dcd1ab4974a629c2466b31ccAngus Kongimport android.hardware.Camera;
48097973089420749dcd1ab4974a629c2466b31ccAngus Kong
58097973089420749dcd1ab4974a629c2466b31ccAngus Kong/**
68097973089420749dcd1ab4974a629c2466b31ccAngus Kong * Created by shkong on 6/2/14.
78097973089420749dcd1ab4974a629c2466b31ccAngus Kong */
88097973089420749dcd1ab4974a629c2466b31ccAngus Kongpublic class AndroidCameraSettings extends CameraSettings {
98097973089420749dcd1ab4974a629c2466b31ccAngus Kong
108097973089420749dcd1ab4974a629c2466b31ccAngus Kong    public AndroidCameraSettings(CameraCapabilities capabilities, Camera.Parameters params) {
118097973089420749dcd1ab4974a629c2466b31ccAngus Kong        CameraCapabilities.Stringifier stringifier = capabilities.getStringifier();
128097973089420749dcd1ab4974a629c2466b31ccAngus Kong
138097973089420749dcd1ab4974a629c2466b31ccAngus Kong        // Preview
148097973089420749dcd1ab4974a629c2466b31ccAngus Kong        Camera.Size paramPreviewSize = params.getPreviewSize();
158097973089420749dcd1ab4974a629c2466b31ccAngus Kong        setPreviewSize(new Size(paramPreviewSize.width, paramPreviewSize.height));
168097973089420749dcd1ab4974a629c2466b31ccAngus Kong        setPreviewFrameRate(params.getPreviewFrameRate());
178097973089420749dcd1ab4974a629c2466b31ccAngus Kong        int[] previewFpsRange = new int[2];
188097973089420749dcd1ab4974a629c2466b31ccAngus Kong        params.getPreviewFpsRange(previewFpsRange);
198097973089420749dcd1ab4974a629c2466b31ccAngus Kong        setPreviewFpsRange(previewFpsRange[Camera.Parameters.PREVIEW_FPS_MIN_INDEX],
208097973089420749dcd1ab4974a629c2466b31ccAngus Kong                previewFpsRange[Camera.Parameters.PREVIEW_FPS_MAX_INDEX]);
218097973089420749dcd1ab4974a629c2466b31ccAngus Kong
228097973089420749dcd1ab4974a629c2466b31ccAngus Kong
238097973089420749dcd1ab4974a629c2466b31ccAngus Kong        // Capture: Focus, flash, zoom, exposure, scene mode.
248097973089420749dcd1ab4974a629c2466b31ccAngus Kong        if (capabilities.supports(CameraCapabilities.Feature.ZOOM)) {
258097973089420749dcd1ab4974a629c2466b31ccAngus Kong            setZoomRatio(params.getZoomRatios().get(params.getZoom()) / 100f);
268097973089420749dcd1ab4974a629c2466b31ccAngus Kong            setZoomIndex(params.getZoom());
278097973089420749dcd1ab4974a629c2466b31ccAngus Kong        } else {
288097973089420749dcd1ab4974a629c2466b31ccAngus Kong            setZoomRatio(1.0f);
298097973089420749dcd1ab4974a629c2466b31ccAngus Kong            setZoomIndex(0);
308097973089420749dcd1ab4974a629c2466b31ccAngus Kong        }
318097973089420749dcd1ab4974a629c2466b31ccAngus Kong        setExposureCompensationIndex(params.getExposureCompensation());
328097973089420749dcd1ab4974a629c2466b31ccAngus Kong        setFlashMode(stringifier.flashModeFromString(params.getFlashMode()));
338097973089420749dcd1ab4974a629c2466b31ccAngus Kong        setFocusMode(stringifier.focusModeFromString(params.getFocusMode()));
348097973089420749dcd1ab4974a629c2466b31ccAngus Kong        setSceneMode(stringifier.sceneModeFromString(params.getSceneMode()));
358097973089420749dcd1ab4974a629c2466b31ccAngus Kong
368097973089420749dcd1ab4974a629c2466b31ccAngus Kong        // Video capture.
378097973089420749dcd1ab4974a629c2466b31ccAngus Kong        if (capabilities.supports(CameraCapabilities.Feature.VIDEO_STABILIZATION)) {
388097973089420749dcd1ab4974a629c2466b31ccAngus Kong            setVideoStabilization(isVideoStabilizationEnabled());
398097973089420749dcd1ab4974a629c2466b31ccAngus Kong        }
408097973089420749dcd1ab4974a629c2466b31ccAngus Kong
418097973089420749dcd1ab4974a629c2466b31ccAngus Kong        // Output: Photo size, compression quality, rotation.
428097973089420749dcd1ab4974a629c2466b31ccAngus Kong        setPhotoRotationDegrees(0f);
438097973089420749dcd1ab4974a629c2466b31ccAngus Kong        setPhotoJpegCompressionQuality(params.getJpegQuality());
448097973089420749dcd1ab4974a629c2466b31ccAngus Kong        Camera.Size paramPictureSize = params.getPictureSize();
458097973089420749dcd1ab4974a629c2466b31ccAngus Kong        setPhotoSize(new Size(paramPictureSize.width, paramPictureSize.height));
468097973089420749dcd1ab4974a629c2466b31ccAngus Kong    }
478097973089420749dcd1ab4974a629c2466b31ccAngus Kong}
48