/*
 * Copyright (C) 2017 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.
 */

/*
 * Autogenerated from camera metadata definitions in
 * /system/media/camera/docs/metadata_definitions.xml
 * *** DO NOT EDIT BY HAND ***
 */

package android.hardware.camera.metadata@3.5;

import android.hardware.camera.metadata@3.2;
import android.hardware.camera.metadata@3.3;
import android.hardware.camera.metadata@3.4;

// No new metadata sections added in this revision

/**
 * Main enumeration for defining camera metadata tags added in this revision
 *
 * <p>Partial documentation is included for each tag; for complete documentation, reference
 * '/system/media/camera/docs/docs.html' in the corresponding Android source tree.</p>
 */
enum CameraMetadataTag : @3.4::CameraMetadataTag {
    /** android.control.availableExtendedSceneModeMaxSizes [static, int32[], ndk_public]
     *
     * <p>The list of extended scene modes for ANDROID_CONTROL_EXTENDED_SCENE_MODE that are supported
     * by this camera device, and each extended scene mode's maximum streaming (non-stall) size
     * with  effect.</p>
     *
     * @see ANDROID_CONTROL_EXTENDED_SCENE_MODE
     */
    ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_MAX_SIZES = android.hardware.camera.metadata@3.3::CameraMetadataTag:ANDROID_CONTROL_END_3_3,

    /** android.control.availableExtendedSceneModeZoomRatioRanges [static, float[], ndk_public]
     *
     * <p>The ranges of supported zoom ratio for non-DISABLED ANDROID_CONTROL_EXTENDED_SCENE_MODE.</p>
     *
     * @see ANDROID_CONTROL_EXTENDED_SCENE_MODE
     */
    ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_ZOOM_RATIO_RANGES,

    /** android.control.extendedSceneMode [dynamic, enum, public]
     *
     * <p>Whether extended scene mode is enabled for a particular capture request.</p>
     */
    ANDROID_CONTROL_EXTENDED_SCENE_MODE,

    /** android.control.zoomRatioRange [static, float[], public]
     *
     * <p>Minimum and maximum zoom ratios supported by this camera device.</p>
     */
    ANDROID_CONTROL_ZOOM_RATIO_RANGE,

    /** android.control.zoomRatio [dynamic, float, public]
     *
     * <p>The desired zoom ratio</p>
     */
    ANDROID_CONTROL_ZOOM_RATIO,

    ANDROID_CONTROL_END_3_5,

    /** android.scaler.availableRotateAndCropModes [static, byte[], public]
     *
     * <p>List of rotate-and-crop modes for ANDROID_SCALER_ROTATE_AND_CROP that are supported by this camera device.</p>
     *
     * @see ANDROID_SCALER_ROTATE_AND_CROP
     */
    ANDROID_SCALER_AVAILABLE_ROTATE_AND_CROP_MODES = android.hardware.camera.metadata@3.4::CameraMetadataTag:ANDROID_SCALER_END_3_4,

    /** android.scaler.rotateAndCrop [dynamic, enum, public]
     *
     * <p>Whether a rotation-and-crop operation is applied to processed
     * outputs from the camera.</p>
     */
    ANDROID_SCALER_ROTATE_AND_CROP,

    ANDROID_SCALER_END_3_5,

};

/*
 * Enumeration definitions for the various entries that need them
 */

/** android.control.mode enumeration values added since v3.2
 * @see ANDROID_CONTROL_MODE
 */
enum CameraMetadataEnumAndroidControlMode :
        @3.2::CameraMetadataEnumAndroidControlMode {
    ANDROID_CONTROL_MODE_USE_EXTENDED_SCENE_MODE,
};

/** android.control.extendedSceneMode enumeration values
 * @see ANDROID_CONTROL_EXTENDED_SCENE_MODE
 */
enum CameraMetadataEnumAndroidControlExtendedSceneMode : uint32_t {
    ANDROID_CONTROL_EXTENDED_SCENE_MODE_DISABLED                = 0,
    ANDROID_CONTROL_EXTENDED_SCENE_MODE_BOKEH_STILL_CAPTURE,
    ANDROID_CONTROL_EXTENDED_SCENE_MODE_BOKEH_CONTINUOUS,
    ANDROID_CONTROL_EXTENDED_SCENE_MODE_VENDOR_START            = 0x40,
};

/** android.lens.poseReference enumeration values added since v3.3
 * @see ANDROID_LENS_POSE_REFERENCE
 */
enum CameraMetadataEnumAndroidLensPoseReference :
        @3.3::CameraMetadataEnumAndroidLensPoseReference {
    ANDROID_LENS_POSE_REFERENCE_UNDEFINED,
};

/** android.request.availableCapabilities enumeration values added since v3.4
 * @see ANDROID_REQUEST_AVAILABLE_CAPABILITIES
 */
enum CameraMetadataEnumAndroidRequestAvailableCapabilities :
        @3.4::CameraMetadataEnumAndroidRequestAvailableCapabilities {
    ANDROID_REQUEST_AVAILABLE_CAPABILITIES_SYSTEM_CAMERA,
    ANDROID_REQUEST_AVAILABLE_CAPABILITIES_OFFLINE_PROCESSING,
};

/** android.scaler.rotateAndCrop enumeration values
 * @see ANDROID_SCALER_ROTATE_AND_CROP
 */
enum CameraMetadataEnumAndroidScalerRotateAndCrop : uint32_t {
    ANDROID_SCALER_ROTATE_AND_CROP_NONE,
    ANDROID_SCALER_ROTATE_AND_CROP_90,
    ANDROID_SCALER_ROTATE_AND_CROP_180,
    ANDROID_SCALER_ROTATE_AND_CROP_270,
    ANDROID_SCALER_ROTATE_AND_CROP_AUTO,
};
