/* * Copyright (C) 2014 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.camera.one; import android.graphics.ImageFormat; import android.graphics.Rect; import android.hardware.camera2.CameraCharacteristics; import com.android.camera.ui.motion.LinearScale; import com.android.camera.util.Size; import java.util.List; /** * The properties describing a OneCamera device. These properties are fixed for * a given OneCamera device. */ public interface OneCameraCharacteristics { public enum SupportedHardwareLevel { FULL, LIMITED, LEGACY } public enum FaceDetectMode { FULL, SIMPLE, NONE } /** * Gets the supported picture sizes for the given image format. * * @param imageFormat The specific image format listed on * {@link ImageFormat}. */ public List getSupportedPictureSizes(int imageFormat); /** * Gets the supported preview sizes. */ public List getSupportedPreviewSizes(); /** * @See {@link CameraCharacteristics#SENSOR_ORIENTATION} */ public int getSensorOrientation(); /** * @Return The direction of the camera */ public OneCamera.Facing getCameraDirection(); /** * @See {@link CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE} */ public Rect getSensorInfoActiveArraySize(); /** * @See {@link CameraCharacteristics#SCALER_AVAILABLE_MAX_DIGITAL_ZOOM} */ public float getAvailableMaxDigitalZoom(); /** * @return If flash is supported for this camera. */ public boolean isFlashSupported(); /** * @return If Scene-mode HDR is supported. */ public boolean isHdrSceneSupported(); /** * @return The supported hardware level. */ public SupportedHardwareLevel getSupportedHardwareLevel(); /** * @return The supported face detection modes. */ public List getSupportedFaceDetectModes(); /** * A converter from the physical focus range of the camera to a ratio. */ public LinearScale getLensFocusRange(); /** * @return A List of available focal lengths for this camera. */ public List getAvailableFocalLengths(); /** * Whether exposure compensation is supported for this camera. * * @return true if exposure compensation is supported for this camera. */ public boolean isExposureCompensationSupported(); /** * @return The min exposure compensation index. The EV is the compensation * index multiplied by the step value. If {@link * #isExposureCompensationSupported()} is false, return -1. */ public int getMinExposureCompensation(); /** * @return The max exposure compensation index. The EV is the compensation * index multiplied by the step value. If {@link * #isExposureCompensationSupported()} is false, return -1. */ public int getMaxExposureCompensation(); /** * @return The exposure compensation step. The EV is the compensation index * multiplied by the step value. If {@link * #isExposureCompensationSupported()} is false, return -1. */ public float getExposureCompensationStep(); /** * @return true if this camera supports custom AutoFocus regions. */ public boolean isAutoFocusSupported(); /** * @return true if this camera supports continuous picture autofocus. */ public boolean isContinuousPictureAutoFocusSupported(); /** * @return true if this camera supports custom AutoExposure regions. */ public boolean isAutoExposureSupported(); }