blob: 27504a24369618f88f5997d1da3be6b4e2f60103 [file] [log] [blame]
/*
* 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<Size> getSupportedPictureSizes(int imageFormat);
/**
* Gets the supported preview sizes.
*/
public List<Size> 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<FaceDetectMode> 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<Float> 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();
}