1b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala/*
2b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala * Copyright (C) 2013 The Android Open Source Project
3b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala *
4b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala * Licensed under the Apache License, Version 2.0 (the "License");
5b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala * you may not use this file except in compliance with the License.
6b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala * You may obtain a copy of the License at
7b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala *
8b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala *      http://www.apache.org/licenses/LICENSE-2.0
9b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala *
10b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala * Unless required by applicable law or agreed to in writing, software
11b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala * distributed under the License is distributed on an "AS IS" BASIS,
12b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala * See the License for the specific language governing permissions and
14b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala * limitations under the License.
15b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala */
16b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala
172f1a2e423e0fbb64467d6fcfa4e82c6384f31210Eino-Ville Talvalapackage android.hardware.camera2;
18b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala
1970c2207c34cf0e6b3b383b1b1500ff5385aa51a6Eino-Ville Talvalaimport android.hardware.camera2.impl.CameraMetadataNative;
2070c2207c34cf0e6b3b383b1b1500ff5385aa51a6Eino-Ville Talvala
217a36a0fbb0a5f14047a3680668da954beca05dcbIgor Murashkinimport java.util.Collections;
227a36a0fbb0a5f14047a3680668da954beca05dcbIgor Murashkinimport java.util.List;
237a36a0fbb0a5f14047a3680668da954beca05dcbIgor Murashkin
24b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala/**
25b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala * <p>The properties describing a
26b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala * {@link CameraDevice CameraDevice}.</p>
27b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala *
28b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala * <p>These properties are fixed for a given CameraDevice, and can be queried
29b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala * through the {@link CameraManager CameraManager}
30b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala * interface in addition to through the CameraDevice interface.</p>
31b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala *
32b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala * @see CameraDevice
33b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala * @see CameraManager
34b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala */
3568f40066c914aefc1f88819dd46dd1135fb9f5bcIgor Murashkinpublic final class CameraCharacteristics extends CameraMetadata {
365a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala
3770c2207c34cf0e6b3b383b1b1500ff5385aa51a6Eino-Ville Talvala    private final CameraMetadataNative mProperties;
387a36a0fbb0a5f14047a3680668da954beca05dcbIgor Murashkin    private List<Key<?>> mAvailableRequestKeys;
397a36a0fbb0a5f14047a3680668da954beca05dcbIgor Murashkin    private List<Key<?>> mAvailableResultKeys;
4070c2207c34cf0e6b3b383b1b1500ff5385aa51a6Eino-Ville Talvala
4170c2207c34cf0e6b3b383b1b1500ff5385aa51a6Eino-Ville Talvala    /**
4270c2207c34cf0e6b3b383b1b1500ff5385aa51a6Eino-Ville Talvala     * Takes ownership of the passed-in properties object
4370c2207c34cf0e6b3b383b1b1500ff5385aa51a6Eino-Ville Talvala     * @hide
4470c2207c34cf0e6b3b383b1b1500ff5385aa51a6Eino-Ville Talvala     */
4568f40066c914aefc1f88819dd46dd1135fb9f5bcIgor Murashkin    public CameraCharacteristics(CameraMetadataNative properties) {
4670c2207c34cf0e6b3b383b1b1500ff5385aa51a6Eino-Ville Talvala        mProperties = properties;
4770c2207c34cf0e6b3b383b1b1500ff5385aa51a6Eino-Ville Talvala    }
4870c2207c34cf0e6b3b383b1b1500ff5385aa51a6Eino-Ville Talvala
4970c2207c34cf0e6b3b383b1b1500ff5385aa51a6Eino-Ville Talvala    @Override
5070c2207c34cf0e6b3b383b1b1500ff5385aa51a6Eino-Ville Talvala    public <T> T get(Key<T> key) {
5170c2207c34cf0e6b3b383b1b1500ff5385aa51a6Eino-Ville Talvala        return mProperties.get(key);
5270c2207c34cf0e6b3b383b1b1500ff5385aa51a6Eino-Ville Talvala    }
5370c2207c34cf0e6b3b383b1b1500ff5385aa51a6Eino-Ville Talvala
547a36a0fbb0a5f14047a3680668da954beca05dcbIgor Murashkin    /**
557a36a0fbb0a5f14047a3680668da954beca05dcbIgor Murashkin     * Returns the list of keys supported by this {@link CameraDevice} for querying
567a36a0fbb0a5f14047a3680668da954beca05dcbIgor Murashkin     * with a {@link CaptureRequest}.
577a36a0fbb0a5f14047a3680668da954beca05dcbIgor Murashkin     *
587a36a0fbb0a5f14047a3680668da954beca05dcbIgor Murashkin     * <p>The list returned is not modifiable, so any attempts to modify it will throw
597a36a0fbb0a5f14047a3680668da954beca05dcbIgor Murashkin     * a {@code UnsupportedOperationException}.</p>
607a36a0fbb0a5f14047a3680668da954beca05dcbIgor Murashkin     *
617a36a0fbb0a5f14047a3680668da954beca05dcbIgor Murashkin     * <p>Each key is only listed once in the list. The order of the keys is undefined.</p>
627a36a0fbb0a5f14047a3680668da954beca05dcbIgor Murashkin     *
6368f40066c914aefc1f88819dd46dd1135fb9f5bcIgor Murashkin     * <p>Note that there is no {@code getAvailableCameraCharacteristicsKeys()} -- use
647a36a0fbb0a5f14047a3680668da954beca05dcbIgor Murashkin     * {@link #getKeys()} instead.</p>
657a36a0fbb0a5f14047a3680668da954beca05dcbIgor Murashkin     *
667a36a0fbb0a5f14047a3680668da954beca05dcbIgor Murashkin     * @return List of keys supported by this CameraDevice for CaptureRequests.
677a36a0fbb0a5f14047a3680668da954beca05dcbIgor Murashkin     */
687a36a0fbb0a5f14047a3680668da954beca05dcbIgor Murashkin    public List<Key<?>> getAvailableCaptureRequestKeys() {
697a36a0fbb0a5f14047a3680668da954beca05dcbIgor Murashkin        if (mAvailableRequestKeys == null) {
707a36a0fbb0a5f14047a3680668da954beca05dcbIgor Murashkin            mAvailableRequestKeys = getAvailableKeyList(CaptureRequest.class);
717a36a0fbb0a5f14047a3680668da954beca05dcbIgor Murashkin        }
727a36a0fbb0a5f14047a3680668da954beca05dcbIgor Murashkin        return mAvailableRequestKeys;
737a36a0fbb0a5f14047a3680668da954beca05dcbIgor Murashkin    }
747a36a0fbb0a5f14047a3680668da954beca05dcbIgor Murashkin
757a36a0fbb0a5f14047a3680668da954beca05dcbIgor Murashkin    /**
767a36a0fbb0a5f14047a3680668da954beca05dcbIgor Murashkin     * Returns the list of keys supported by this {@link CameraDevice} for querying
777a36a0fbb0a5f14047a3680668da954beca05dcbIgor Murashkin     * with a {@link CaptureResult}.
787a36a0fbb0a5f14047a3680668da954beca05dcbIgor Murashkin     *
797a36a0fbb0a5f14047a3680668da954beca05dcbIgor Murashkin     * <p>The list returned is not modifiable, so any attempts to modify it will throw
807a36a0fbb0a5f14047a3680668da954beca05dcbIgor Murashkin     * a {@code UnsupportedOperationException}.</p>
817a36a0fbb0a5f14047a3680668da954beca05dcbIgor Murashkin     *
827a36a0fbb0a5f14047a3680668da954beca05dcbIgor Murashkin     * <p>Each key is only listed once in the list. The order of the keys is undefined.</p>
837a36a0fbb0a5f14047a3680668da954beca05dcbIgor Murashkin     *
8468f40066c914aefc1f88819dd46dd1135fb9f5bcIgor Murashkin     * <p>Note that there is no {@code getAvailableCameraCharacteristicsKeys()} -- use
857a36a0fbb0a5f14047a3680668da954beca05dcbIgor Murashkin     * {@link #getKeys()} instead.</p>
867a36a0fbb0a5f14047a3680668da954beca05dcbIgor Murashkin     *
877a36a0fbb0a5f14047a3680668da954beca05dcbIgor Murashkin     * @return List of keys supported by this CameraDevice for CaptureResults.
887a36a0fbb0a5f14047a3680668da954beca05dcbIgor Murashkin     */
897a36a0fbb0a5f14047a3680668da954beca05dcbIgor Murashkin    public List<Key<?>> getAvailableCaptureResultKeys() {
907a36a0fbb0a5f14047a3680668da954beca05dcbIgor Murashkin        if (mAvailableResultKeys == null) {
917a36a0fbb0a5f14047a3680668da954beca05dcbIgor Murashkin            mAvailableResultKeys = getAvailableKeyList(CaptureResult.class);
927a36a0fbb0a5f14047a3680668da954beca05dcbIgor Murashkin        }
937a36a0fbb0a5f14047a3680668da954beca05dcbIgor Murashkin        return mAvailableResultKeys;
947a36a0fbb0a5f14047a3680668da954beca05dcbIgor Murashkin    }
957a36a0fbb0a5f14047a3680668da954beca05dcbIgor Murashkin
967a36a0fbb0a5f14047a3680668da954beca05dcbIgor Murashkin    /**
977a36a0fbb0a5f14047a3680668da954beca05dcbIgor Murashkin     * Returns the list of keys supported by this {@link CameraDevice} by metadataClass.
987a36a0fbb0a5f14047a3680668da954beca05dcbIgor Murashkin     *
997a36a0fbb0a5f14047a3680668da954beca05dcbIgor Murashkin     * <p>The list returned is not modifiable, so any attempts to modify it will throw
1007a36a0fbb0a5f14047a3680668da954beca05dcbIgor Murashkin     * a {@code UnsupportedOperationException}.</p>
1017a36a0fbb0a5f14047a3680668da954beca05dcbIgor Murashkin     *
1027a36a0fbb0a5f14047a3680668da954beca05dcbIgor Murashkin     * <p>Each key is only listed once in the list. The order of the keys is undefined.</p>
1037a36a0fbb0a5f14047a3680668da954beca05dcbIgor Murashkin     *
1047a36a0fbb0a5f14047a3680668da954beca05dcbIgor Murashkin     * @param metadataClass The subclass of CameraMetadata that you want to get the keys for.
1057a36a0fbb0a5f14047a3680668da954beca05dcbIgor Murashkin     *
1067a36a0fbb0a5f14047a3680668da954beca05dcbIgor Murashkin     * @return List of keys supported by this CameraDevice for metadataClass.
1077a36a0fbb0a5f14047a3680668da954beca05dcbIgor Murashkin     *
1087a36a0fbb0a5f14047a3680668da954beca05dcbIgor Murashkin     * @throws IllegalArgumentException if metadataClass is not a subclass of CameraMetadata
1097a36a0fbb0a5f14047a3680668da954beca05dcbIgor Murashkin     */
1107a36a0fbb0a5f14047a3680668da954beca05dcbIgor Murashkin    private <T extends CameraMetadata> List<Key<?>> getAvailableKeyList(Class<T> metadataClass) {
1117a36a0fbb0a5f14047a3680668da954beca05dcbIgor Murashkin
1127a36a0fbb0a5f14047a3680668da954beca05dcbIgor Murashkin        if (metadataClass.equals(CameraMetadata.class)) {
1137a36a0fbb0a5f14047a3680668da954beca05dcbIgor Murashkin            throw new AssertionError(
1147a36a0fbb0a5f14047a3680668da954beca05dcbIgor Murashkin                    "metadataClass must be a strict subclass of CameraMetadata");
1157a36a0fbb0a5f14047a3680668da954beca05dcbIgor Murashkin        } else if (!CameraMetadata.class.isAssignableFrom(metadataClass)) {
1167a36a0fbb0a5f14047a3680668da954beca05dcbIgor Murashkin            throw new AssertionError(
1177a36a0fbb0a5f14047a3680668da954beca05dcbIgor Murashkin                    "metadataClass must be a subclass of CameraMetadata");
1187a36a0fbb0a5f14047a3680668da954beca05dcbIgor Murashkin        }
1197a36a0fbb0a5f14047a3680668da954beca05dcbIgor Murashkin
1207a36a0fbb0a5f14047a3680668da954beca05dcbIgor Murashkin        return Collections.unmodifiableList(getKeysStatic(metadataClass, /*instance*/null));
1217a36a0fbb0a5f14047a3680668da954beca05dcbIgor Murashkin    }
1227a36a0fbb0a5f14047a3680668da954beca05dcbIgor Murashkin
1235a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala    /*@O~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~
1245a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * The key entries below this point are generated from metadata
1255a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * definitions in /system/media/camera/docs. Do not modify by hand or
1265a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * modify the comment blocks at the start or end.
1275a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     *~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~*/
1285a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala
129b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala    /**
1305a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * <p>
1315a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * Which set of antibanding modes are
1325a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * supported
1335a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * </p>
134b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala     */
1355a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala    public static final Key<byte[]> CONTROL_AE_AVAILABLE_ANTIBANDING_MODES =
1365a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala            new Key<byte[]>("android.control.aeAvailableAntibandingModes", byte[].class);
137b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala
138b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala    /**
1395a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * <p>
1405a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * List of frame rate ranges supported by the
1415a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * AE algorithm/hardware
1425a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * </p>
143b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala     */
1445a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala    public static final Key<int[]> CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES =
1455a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala            new Key<int[]>("android.control.aeAvailableTargetFpsRanges", int[].class);
146b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala
147b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala    /**
1485a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * <p>
1495a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * Maximum and minimum exposure compensation
1505a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * setting, in counts of
1515a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * android.control.aeCompensationStepSize
1525a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * </p>
153b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala     */
1545a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala    public static final Key<int[]> CONTROL_AE_COMPENSATION_RANGE =
1555a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala            new Key<int[]>("android.control.aeCompensationRange", int[].class);
156b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala
157b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala    /**
1585a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * <p>
1595a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * Smallest step by which exposure compensation
1605a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * can be changed
1615a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * </p>
162b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala     */
1635a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala    public static final Key<Rational> CONTROL_AE_COMPENSATION_STEP =
1645a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala            new Key<Rational>("android.control.aeCompensationStep", Rational.class);
165b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala
166b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala    /**
1675a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * <p>
1685a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * List of AF modes that can be
1695a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * selected
1705a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * </p>
171b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala     */
1725a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala    public static final Key<byte[]> CONTROL_AF_AVAILABLE_MODES =
1735a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala            new Key<byte[]>("android.control.afAvailableModes", byte[].class);
174b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala
175b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala    /**
1765a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * <p>
1775a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * what subset of the full color effect enum
1785a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * list is supported
1795a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * </p>
180b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala     */
1815a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala    public static final Key<byte[]> CONTROL_AVAILABLE_EFFECTS =
1825a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala            new Key<byte[]>("android.control.availableEffects", byte[].class);
183b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala
184b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala    /**
1855a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * <p>
1865a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * what subset of the scene mode enum list is
1875a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * supported.
1885a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * </p>
1895a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     */
1905a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala    public static final Key<byte[]> CONTROL_AVAILABLE_SCENE_MODES =
1915a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala            new Key<byte[]>("android.control.availableSceneModes", byte[].class);
1925a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala
1935a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala    /**
1945a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * <p>
1955a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * List of video stabilization modes that can
1965a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * be supported
1975a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * </p>
1985a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     */
1995a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala    public static final Key<byte[]> CONTROL_AVAILABLE_VIDEO_STABILIZATION_MODES =
2005a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala            new Key<byte[]>("android.control.availableVideoStabilizationModes", byte[].class);
2015a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala
2025a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala    /**
2035a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     */
2045a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala    public static final Key<byte[]> CONTROL_AWB_AVAILABLE_MODES =
2055a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala            new Key<byte[]>("android.control.awbAvailableModes", byte[].class);
2065a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala
2075a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala    /**
2085a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * <p>
2095a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * For AE, AWB, and AF, how many individual
2105a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * regions can be listed for metering?
2115a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * </p>
2125a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     */
2135a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala    public static final Key<Integer> CONTROL_MAX_REGIONS =
2145a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala            new Key<Integer>("android.control.maxRegions", int.class);
2155a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala
2165a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala    /**
2175a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * <p>
2185a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * Whether this camera has a
2195a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * flash
2205a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * </p>
2215a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * <p>
2225a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * If no flash, none of the flash controls do
2235a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * anything. All other metadata should return 0
2245a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * </p>
2255a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     */
2265a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala    public static final Key<Byte> FLASH_INFO_AVAILABLE =
2275a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala            new Key<Byte>("android.flash.info.available", byte.class);
2285a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala
2295a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala    /**
2305a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * <p>
2315a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * Supported resolutions for the JPEG
2325a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * thumbnail
2335a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * </p>
2345a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     */
2355a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala    public static final Key<android.hardware.camera2.Size[]> JPEG_AVAILABLE_THUMBNAIL_SIZES =
2365a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala            new Key<android.hardware.camera2.Size[]>("android.jpeg.availableThumbnailSizes", android.hardware.camera2.Size[].class);
2375a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala
2385a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala    /**
2395a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * <p>
2405a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * List of supported aperture
2415a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * values
2425a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * </p>
2435a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * <p>
2445a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * If variable aperture not available, only setting
2455a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * should be for the fixed aperture
2465a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * </p>
2475a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     */
2485a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala    public static final Key<float[]> LENS_INFO_AVAILABLE_APERTURES =
2495a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala            new Key<float[]>("android.lens.info.availableApertures", float[].class);
2505a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala
2515a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala    /**
2525a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * <p>
2535a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * List of supported ND filter
2545a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * values
2555a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * </p>
2565a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * <p>
2575a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * If not available, only setting is 0. Otherwise,
2585a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * lists the available exposure index values for dimming
2595a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * (2 would mean the filter is set to reduce incoming
2605a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * light by two stops)
2615a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * </p>
2625a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     */
2635a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala    public static final Key<float[]> LENS_INFO_AVAILABLE_FILTER_DENSITIES =
2645a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala            new Key<float[]>("android.lens.info.availableFilterDensities", float[].class);
2655a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala
2665a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala    /**
2675a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * <p>
2685a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * If fitted with optical zoom, what focal
2695a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * lengths are available. If not, the static focal
2705a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * length
2715a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * </p>
2725a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * <p>
2735a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * If optical zoom not supported, only one value
2745a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * should be reported
2755a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * </p>
2765a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     */
2775a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala    public static final Key<float[]> LENS_INFO_AVAILABLE_FOCAL_LENGTHS =
2785a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala            new Key<float[]>("android.lens.info.availableFocalLengths", float[].class);
2795a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala
2805a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala    /**
2815a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * <p>
2825a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * List of supported optical image
2835a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * stabilization modes
2845a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * </p>
2855a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     */
2865a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala    public static final Key<byte[]> LENS_INFO_AVAILABLE_OPTICAL_STABILIZATION =
2875a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala            new Key<byte[]>("android.lens.info.availableOpticalStabilization", byte[].class);
2885a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala
2895a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala    /**
2905a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * <p>
2915a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * Hyperfocal distance for this lens; set to
2925a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * 0 if fixed focus
2935a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * </p>
2945a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * <p>
2955a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * The hyperfocal distance is used for the old
2965a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * API's 'fixed' setting
2975a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * </p>
2985a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     */
2995a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala    public static final Key<Float> LENS_INFO_HYPERFOCAL_DISTANCE =
3005a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala            new Key<Float>("android.lens.info.hyperfocalDistance", float.class);
3015a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala
3025a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala    /**
3035a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * <p>
3045a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * Shortest distance from frontmost surface
3055a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * of the lens that can be focused correctly
3065a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * </p>
3075a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * <p>
3085a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * If the lens is fixed-focus, this should be
3095a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * 0
3105a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * </p>
3115a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     */
3125a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala    public static final Key<Float> LENS_INFO_MINIMUM_FOCUS_DISTANCE =
3135a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala            new Key<Float>("android.lens.info.minimumFocusDistance", float.class);
3145a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala
3155a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala    /**
3165a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * <p>
3175a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * Dimensions of lens shading
3185a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * map
3195a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * </p>
3205a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     */
3215a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala    public static final Key<android.hardware.camera2.Size> LENS_INFO_SHADING_MAP_SIZE =
3225a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala            new Key<android.hardware.camera2.Size>("android.lens.info.shadingMapSize", android.hardware.camera2.Size.class);
3235a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala
3245a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala    /**
3255a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * <p>
3265a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * Direction the camera faces relative to
3275a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * device screen
3285a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * </p>
3295a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * @see #LENS_FACING_FRONT
3305a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * @see #LENS_FACING_BACK
3315a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     */
3325a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala    public static final Key<Integer> LENS_FACING =
3335a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala            new Key<Integer>("android.lens.facing", int.class);
3345a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala
3355a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala    /**
3365a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * <p>
3377a31310439b8ac6a9dca9e81dd3366221bbb1057Eino-Ville Talvala     * If set to 1, the HAL will always split result
3387a31310439b8ac6a9dca9e81dd3366221bbb1057Eino-Ville Talvala     * metadata for a single capture into multiple buffers,
3397a31310439b8ac6a9dca9e81dd3366221bbb1057Eino-Ville Talvala     * returned using multiple process_capture_result calls.
3407a31310439b8ac6a9dca9e81dd3366221bbb1057Eino-Ville Talvala     * </p>
3417a31310439b8ac6a9dca9e81dd3366221bbb1057Eino-Ville Talvala     * <p>
3427a31310439b8ac6a9dca9e81dd3366221bbb1057Eino-Ville Talvala     * Does not need to be listed in static
3437a31310439b8ac6a9dca9e81dd3366221bbb1057Eino-Ville Talvala     * metadata. Support for partial results will be reworked in
3447a31310439b8ac6a9dca9e81dd3366221bbb1057Eino-Ville Talvala     * future versions of camera service. This quirk will stop
3457a31310439b8ac6a9dca9e81dd3366221bbb1057Eino-Ville Talvala     * working at that point; DO NOT USE without careful
3467a31310439b8ac6a9dca9e81dd3366221bbb1057Eino-Ville Talvala     * consideration of future support.
3477a31310439b8ac6a9dca9e81dd3366221bbb1057Eino-Ville Talvala     * </p>
3487a31310439b8ac6a9dca9e81dd3366221bbb1057Eino-Ville Talvala     *
3497a31310439b8ac6a9dca9e81dd3366221bbb1057Eino-Ville Talvala     * <b>Optional</b> - This value may be null on some devices.
3507a31310439b8ac6a9dca9e81dd3366221bbb1057Eino-Ville Talvala     *
3517a31310439b8ac6a9dca9e81dd3366221bbb1057Eino-Ville Talvala     * @hide
3527a31310439b8ac6a9dca9e81dd3366221bbb1057Eino-Ville Talvala     */
3537a31310439b8ac6a9dca9e81dd3366221bbb1057Eino-Ville Talvala    public static final Key<Byte> QUIRKS_USE_PARTIAL_RESULT =
3547a31310439b8ac6a9dca9e81dd3366221bbb1057Eino-Ville Talvala            new Key<Byte>("android.quirks.usePartialResult", byte.class);
3557a31310439b8ac6a9dca9e81dd3366221bbb1057Eino-Ville Talvala
3567a31310439b8ac6a9dca9e81dd3366221bbb1057Eino-Ville Talvala    /**
3577a31310439b8ac6a9dca9e81dd3366221bbb1057Eino-Ville Talvala     * <p>
3585a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * How many output streams can be allocated at
3595a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * the same time for each type of stream
3605a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * </p>
3615a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * <p>
3625a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * Video snapshot with preview callbacks requires 3
3635a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * processed streams (preview, record, app callbacks) and
3645a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * one JPEG stream (snapshot)
3655a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * </p>
3665a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     */
3675a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala    public static final Key<int[]> REQUEST_MAX_NUM_OUTPUT_STREAMS =
3685a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala            new Key<int[]>("android.request.maxNumOutputStreams", int[].class);
3695a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala
3705a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala    /**
3715a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * <p>
3725a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * List of app-visible formats
3735a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * </p>
374b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala     */
375b519cc52ecba8f44da31173c9fc90a7b66d52b79Igor Murashkin    public static final Key<int[]> SCALER_AVAILABLE_FORMATS =
376b519cc52ecba8f44da31173c9fc90a7b66d52b79Igor Murashkin            new Key<int[]>("android.scaler.availableFormats", int[].class);
377b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala
378b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala    /**
3795a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * <p>
3805a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * The minimum frame duration that is supported
3815a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * for each resolution in availableJpegSizes. Should
3825a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * correspond to the frame duration when only that JPEG
3835a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * stream is active and captured in a burst, with all
3845a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * processing set to FAST
3855a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * </p>
3865a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * <p>
3875a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * When multiple streams are configured, the minimum
3885a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * frame duration will be >= max(individual stream min
3895a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * durations)
3905a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * </p>
391b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala     */
3925a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala    public static final Key<long[]> SCALER_AVAILABLE_JPEG_MIN_DURATIONS =
3935a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala            new Key<long[]>("android.scaler.availableJpegMinDurations", long[].class);
394b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala
395b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala    /**
3965a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * <p>
3975a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * The resolutions available for output from
3985a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * the JPEG block. Listed as width x height
3995a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * </p>
400b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala     */
4015a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala    public static final Key<android.hardware.camera2.Size[]> SCALER_AVAILABLE_JPEG_SIZES =
4025a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala            new Key<android.hardware.camera2.Size[]>("android.scaler.availableJpegSizes", android.hardware.camera2.Size[].class);
403b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala
404b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala    /**
4055a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * <p>
4065a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * The maximum ratio between active area width
4075a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * and crop region width, or between active area height and
4085a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * crop region height, if the crop region height is larger
4095a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * than width
4105a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * </p>
4115a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     */
4125a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala    public static final Key<Float> SCALER_AVAILABLE_MAX_DIGITAL_ZOOM =
4135a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala            new Key<Float>("android.scaler.availableMaxDigitalZoom", float.class);
4145a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala
4155a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala    /**
4165a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * <p>
4175a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * The minimum frame duration that is supported
4185a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * for each resolution in availableProcessedSizes. Should
4195a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * correspond to the frame duration when only that processed
4205a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * stream is active, with all processing set to
4215a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * FAST
4225a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * </p>
4235a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * <p>
4245a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * When multiple streams are configured, the minimum
4255a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * frame duration will be >= max(individual stream min
4265a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * durations)
4275a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * </p>
4285a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     */
4295a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala    public static final Key<long[]> SCALER_AVAILABLE_PROCESSED_MIN_DURATIONS =
4305a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala            new Key<long[]>("android.scaler.availableProcessedMinDurations", long[].class);
4315a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala
4325a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala    /**
4335a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * <p>
4345a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * The resolutions available for use with
4355a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * processed output streams, such as YV12, NV12, and
4365a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * platform opaque YUV/RGB streams to the GPU or video
4375a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * encoders. Listed as width, height
4385a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * </p>
4394e1921fa3d093867001188646f63b23e7149bf33Zhijun He     * <p>
4404e1921fa3d093867001188646f63b23e7149bf33Zhijun He     * The actual supported resolution list may be limited by
4414e1921fa3d093867001188646f63b23e7149bf33Zhijun He     * consumer end points for different use cases. For example, for
4424e1921fa3d093867001188646f63b23e7149bf33Zhijun He     * recording use case, the largest supported resolution may be
4434e1921fa3d093867001188646f63b23e7149bf33Zhijun He     * limited by max supported size from encoder, for preview use
4444e1921fa3d093867001188646f63b23e7149bf33Zhijun He     * case, the largest supported resolution may be limited by max
4454e1921fa3d093867001188646f63b23e7149bf33Zhijun He     * resolution SurfaceTexture/SurfaceView can support.
4464e1921fa3d093867001188646f63b23e7149bf33Zhijun He     * </p>
4475a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     */
4485a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala    public static final Key<android.hardware.camera2.Size[]> SCALER_AVAILABLE_PROCESSED_SIZES =
4495a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala            new Key<android.hardware.camera2.Size[]>("android.scaler.availableProcessedSizes", android.hardware.camera2.Size[].class);
4505a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala
4515a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala    /**
4525a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * <p>
4535a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * Area of raw data which corresponds to only
4545a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * active pixels; smaller or equal to
4555a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * pixelArraySize.
4565a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * </p>
4575a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     */
4585a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala    public static final Key<android.graphics.Rect> SENSOR_INFO_ACTIVE_ARRAY_SIZE =
4595a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala            new Key<android.graphics.Rect>("android.sensor.info.activeArraySize", android.graphics.Rect.class);
4605a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala
4615a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala    /**
4625a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * <p>
4635a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * Range of valid sensitivities
4645a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * </p>
4655a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     */
4665a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala    public static final Key<int[]> SENSOR_INFO_SENSITIVITY_RANGE =
4675a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala            new Key<int[]>("android.sensor.info.sensitivityRange", int[].class);
4685a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala
4695a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala    /**
4705a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * <p>
4715a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * Range of valid exposure
4725a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * times
4735a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * </p>
4745a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     */
4755a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala    public static final Key<long[]> SENSOR_INFO_EXPOSURE_TIME_RANGE =
4765a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala            new Key<long[]>("android.sensor.info.exposureTimeRange", long[].class);
4775a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala
4785a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala    /**
4795a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * <p>
4805a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * Maximum possible frame duration (minimum frame
4815a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * rate)
4825a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * </p>
4835a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * <p>
4845a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * Minimum duration is a function of resolution,
4855a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * processing settings. See
4865a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * android.scaler.availableProcessedMinDurations
4875a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * android.scaler.availableJpegMinDurations
4885a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * android.scaler.availableRawMinDurations
4895a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * </p>
4905a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     */
4915a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala    public static final Key<Long> SENSOR_INFO_MAX_FRAME_DURATION =
4925a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala            new Key<Long>("android.sensor.info.maxFrameDuration", long.class);
4935a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala
4945a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala    /**
4955a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * <p>
4965a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * The physical dimensions of the full pixel
4975a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * array
4985a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * </p>
4995a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * <p>
5005a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * Needed for FOV calculation for old API
5015a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * </p>
5025a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     */
5033ffd70554f85bd1ee54354f2d5c44e1bc0878227Zhijun He    public static final Key<float[]> SENSOR_INFO_PHYSICAL_SIZE =
5043ffd70554f85bd1ee54354f2d5c44e1bc0878227Zhijun He            new Key<float[]>("android.sensor.info.physicalSize", float[].class);
5055a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala
5065a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala    /**
5075a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * <p>
5085a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * Gain factor from electrons to raw units when
5095a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * ISO=100
5105a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * </p>
511e83c4ebc62f10b06139bd4cf6109a1d0f3521032Alex Ray     *
512e83c4ebc62f10b06139bd4cf6109a1d0f3521032Alex Ray     * <b>Optional</b> - This value may be null on some devices.
513e83c4ebc62f10b06139bd4cf6109a1d0f3521032Alex Ray     *
514e83c4ebc62f10b06139bd4cf6109a1d0f3521032Alex Ray     * <b>{@link CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL_FULL HARDWARE_LEVEL_FULL}</b> -
515e83c4ebc62f10b06139bd4cf6109a1d0f3521032Alex Ray     * Present on all devices that report being FULL level hardware devices in the
516e83c4ebc62f10b06139bd4cf6109a1d0f3521032Alex Ray     * {@link CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL HARDWARE_LEVEL} key.
5175a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     */
5185a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala    public static final Key<Rational> SENSOR_BASE_GAIN_FACTOR =
5195a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala            new Key<Rational>("android.sensor.baseGainFactor", Rational.class);
5205a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala
5215a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala    /**
5225a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * <p>
5235a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * Maximum sensitivity that is implemented
5245a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * purely through analog gain
5255a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * </p>
5265a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * <p>
5275a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * For android.sensor.sensitivity values less than or
5285a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * equal to this, all applied gain must be analog. For
5295a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * values above this, it can be a mix of analog and
5305a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * digital
5315a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * </p>
532e83c4ebc62f10b06139bd4cf6109a1d0f3521032Alex Ray     *
533e83c4ebc62f10b06139bd4cf6109a1d0f3521032Alex Ray     * <b>Optional</b> - This value may be null on some devices.
534e83c4ebc62f10b06139bd4cf6109a1d0f3521032Alex Ray     *
535e83c4ebc62f10b06139bd4cf6109a1d0f3521032Alex Ray     * <b>{@link CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL_FULL HARDWARE_LEVEL_FULL}</b> -
536e83c4ebc62f10b06139bd4cf6109a1d0f3521032Alex Ray     * Present on all devices that report being FULL level hardware devices in the
537e83c4ebc62f10b06139bd4cf6109a1d0f3521032Alex Ray     * {@link CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL HARDWARE_LEVEL} key.
5385a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     */
5395a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala    public static final Key<Integer> SENSOR_MAX_ANALOG_SENSITIVITY =
5405a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala            new Key<Integer>("android.sensor.maxAnalogSensitivity", int.class);
5415a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala
5425a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala    /**
5435a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * <p>
5445a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * Clockwise angle through which the output
5455a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * image needs to be rotated to be upright on the device
5465a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * screen in its native orientation. Also defines the
5475a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * direction of rolling shutter readout, which is from top
5485a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * to bottom in the sensor's coordinate system
5495a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * </p>
550b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala     */
5515a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala    public static final Key<Integer> SENSOR_ORIENTATION =
5525a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala            new Key<Integer>("android.sensor.orientation", int.class);
553b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala
554b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala    /**
5555a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * <p>
5565a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * Which face detection modes are available,
5575a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * if any
5585a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * </p>
5595a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * <p>
5605a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * OFF means face detection is disabled, it must
5615a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * be included in the list.
5625a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * </p><p>
5635a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * SIMPLE means the device supports the
5645a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * android.statistics.faceRectangles and
5655a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * android.statistics.faceScores outputs.
5665a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * </p><p>
5675a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * FULL means the device additionally supports the
5685a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * android.statistics.faceIds and
5695a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * android.statistics.faceLandmarks outputs.
5705a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * </p>
571b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala     */
5725a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala    public static final Key<byte[]> STATISTICS_INFO_AVAILABLE_FACE_DETECT_MODES =
5735a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala            new Key<byte[]>("android.statistics.info.availableFaceDetectModes", byte[].class);
574b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala
5755a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala    /**
5765a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * <p>
5775a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * Maximum number of simultaneously detectable
5785a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * faces
5795a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * </p>
5805a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     */
5815a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala    public static final Key<Integer> STATISTICS_INFO_MAX_FACE_COUNT =
5825a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala            new Key<Integer>("android.statistics.info.maxFaceCount", int.class);
5835a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala
5845a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala    /**
5855a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * <p>
5865a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * Maximum number of supported points in the
5875a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * tonemap curve
5885a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * </p>
5895a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     */
5905a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala    public static final Key<Integer> TONEMAP_MAX_CURVE_POINTS =
5915a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala            new Key<Integer>("android.tonemap.maxCurvePoints", int.class);
5925a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala
5935a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala    /**
5945a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * <p>
5955a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * A list of camera LEDs that are available on this system.
5965a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * </p>
5975a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * @see #LED_AVAILABLE_LEDS_TRANSMIT
5985a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     *
5995a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * @hide
6005a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     */
6015a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala    public static final Key<int[]> LED_AVAILABLE_LEDS =
6025a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala            new Key<int[]>("android.led.availableLeds", int[].class);
6035a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala
6045a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala    /**
6055a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * <p>
6065a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * The camera 3 HAL device can implement one of two possible
6075a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * operational modes; limited and full. Full support is
6085a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * expected from new higher-end devices. Limited mode has
6095a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * hardware requirements roughly in line with those for a
6105a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * camera HAL device v1 implementation, and is expected from
6115a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * older or inexpensive devices. Full is a strict superset of
6125a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * limited, and they share the same essential operational flow.
6135a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * </p><p>
6145a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * For full details refer to "S3. Operational Modes" in camera3.h
6155a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * </p>
6165a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * @see #INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED
6175a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * @see #INFO_SUPPORTED_HARDWARE_LEVEL_FULL
6185a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     */
6195a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala    public static final Key<Integer> INFO_SUPPORTED_HARDWARE_LEVEL =
6205a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala            new Key<Integer>("android.info.supportedHardwareLevel", int.class);
621b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala
6225a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala    /*~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~
6235a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     * End generated code
6245a32b20ccc34fd7d4f048de05c427a7a96786531Eino-Ville Talvala     *~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~O@*/
625b2675542c2f414154125b534767ae0903fba581eEino-Ville Talvala}
626