xie
2024-11-23 3fdfdea0721fe7a36f6aaa509075f01a194f6748
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
/*
 * 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 custom AutoExposure regions.
     */
    public boolean isAutoExposureSupported();
}