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