1## -*- coding: utf-8 -*- 2/* 3 * Copyright (C) 2012 The Android Open Source Project 4 * 5 * Licensed under the Apache License, Version 2.0 (the "License"); 6 * you may not use this file except in compliance with the License. 7 * You may obtain a copy of the License at 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 */ 17 18/** 19 * !! Do not include this file directly !! 20 * 21 * Include camera_metadata.h instead. 22 */ 23 24/** 25 * ! Do not edit this file directly ! 26 * 27 * Generated automatically from camera_metadata_tags.mako 28 */ 29 30<%! 31 def annotated_type(entry): 32 if entry.enum: 33 type = 'enum' 34 else: 35 type = entry.type 36 if entry.container == 'array': 37 type += '[]' 38 39 return type 40%>\ 41\ 42/** TODO: Nearly every enum in this file needs a description */ 43 44/** 45 * Top level hierarchy definitions for camera metadata. *_INFO sections are for 46 * the static metadata that can be retrived without opening the camera device. 47 * New sections must be added right before ANDROID_SECTION_COUNT to maintain 48 * existing enumerations. 49 */ 50typedef enum camera_metadata_section { 51 % for i in find_all_sections(metadata): 52 ${path_name(i) | csym}, 53 % endfor 54 ANDROID_SECTION_COUNT, 55 56 VENDOR_SECTION = 0x8000 57} camera_metadata_section_t; 58 59/** 60 * Hierarchy positions in enum space. All vendor extension tags must be 61 * defined with tag >= VENDOR_SECTION_START 62 */ 63typedef enum camera_metadata_section_start { 64 % for i in find_all_sections(metadata): 65 ${path_name(i) + '.start' | csym,ljust(30)} = ${path_name(i) | csym,pad(64)} << 16, 66 % endfor 67 VENDOR_SECTION_START = VENDOR_SECTION << 16 68} camera_metadata_section_start_t; 69 70/** 71 * Main enum for defining camera metadata tags. New entries must always go 72 * before the section _END tag to preserve existing enumeration values. In 73 * addition, the name and type of the tag needs to be added to 74 * system/media/camera/src/camera_metadata_tag_info.c 75 */ 76typedef enum camera_metadata_tag { 77 % for sec in find_all_sections(metadata): 78 % for idx,entry in enumerate(remove_synthetic(find_unique_entries(sec))): 79 % if idx == 0: 80 ${entry.name + " = " | csym,ljust(50)}// ${annotated_type(entry) | ljust(12)} | ${entry.applied_visibility} 81 ${path_name(find_parent_section(entry)) | csym}_START, 82 % else: 83 ${entry.name + "," | csym,ljust(50)}// ${annotated_type(entry) | ljust(12)} | ${entry.applied_visibility} 84 % endif 85 % endfor 86 ${path_name(sec) | csym}_END, 87 88 %endfor 89} camera_metadata_tag_t; 90 91/** 92 * Enumeration definitions for the various entries that need them 93 */ 94 95% for sec in find_all_sections(metadata): 96 % for entry in remove_synthetic(find_unique_entries(sec)): 97 % if entry.enum: 98// ${entry.name | csym} 99typedef enum camera_metadata_enum_${csym(entry.name).lower()} { 100 % for val in entry.enum.values: 101 % if val.id is None: 102 ${entry.name | csym}_${val.name}, 103 % else: 104 ${'%s_%s'%(csym(entry.name), val.name) | pad(65)} = ${val.id}, 105 % endif 106 % endfor 107} camera_metadata_enum_${csym(entry.name).lower()}_t; 108 109 % endif 110 % endfor 111 112%endfor 113