1*b9df5ad1SAndroid Build Coastguard Worker## -*- coding: utf-8 -*- 2*b9df5ad1SAndroid Build Coastguard Worker/* 3*b9df5ad1SAndroid Build Coastguard Worker * Copyright (C) ${copyright_year()} The Android Open Source Project 4*b9df5ad1SAndroid Build Coastguard Worker * 5*b9df5ad1SAndroid Build Coastguard Worker * Licensed under the Apache License, Version 2.0 (the "License"); 6*b9df5ad1SAndroid Build Coastguard Worker * you may not use this file except in compliance with the License. 7*b9df5ad1SAndroid Build Coastguard Worker * You may obtain a copy of the License at 8*b9df5ad1SAndroid Build Coastguard Worker * 9*b9df5ad1SAndroid Build Coastguard Worker * http://www.apache.org/licenses/LICENSE-2.0 10*b9df5ad1SAndroid Build Coastguard Worker * 11*b9df5ad1SAndroid Build Coastguard Worker * Unless required by applicable law or agreed to in writing, software 12*b9df5ad1SAndroid Build Coastguard Worker * distributed under the License is distributed on an "AS IS" BASIS, 13*b9df5ad1SAndroid Build Coastguard Worker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14*b9df5ad1SAndroid Build Coastguard Worker * See the License for the specific language governing permissions and 15*b9df5ad1SAndroid Build Coastguard Worker * limitations under the License. 16*b9df5ad1SAndroid Build Coastguard Worker */ 17*b9df5ad1SAndroid Build Coastguard Worker<%! 18*b9df5ad1SAndroid Build Coastguard Worker def annotated_type(entry): 19*b9df5ad1SAndroid Build Coastguard Worker if entry.enum: 20*b9df5ad1SAndroid Build Coastguard Worker type = 'enum' 21*b9df5ad1SAndroid Build Coastguard Worker else: 22*b9df5ad1SAndroid Build Coastguard Worker type = entry.type 23*b9df5ad1SAndroid Build Coastguard Worker if entry.container == 'array': 24*b9df5ad1SAndroid Build Coastguard Worker type += '[]' 25*b9df5ad1SAndroid Build Coastguard Worker 26*b9df5ad1SAndroid Build Coastguard Worker return type 27*b9df5ad1SAndroid Build Coastguard Worker 28*b9df5ad1SAndroid Build Coastguard Worker def annotated_enum_type(entry): 29*b9df5ad1SAndroid Build Coastguard Worker if entry.type == 'int64' and entry.container == 'array': 30*b9df5ad1SAndroid Build Coastguard Worker type = 'long' 31*b9df5ad1SAndroid Build Coastguard Worker else: 32*b9df5ad1SAndroid Build Coastguard Worker type = 'int' 33*b9df5ad1SAndroid Build Coastguard Worker 34*b9df5ad1SAndroid Build Coastguard Worker return type 35*b9df5ad1SAndroid Build Coastguard Worker 36*b9df5ad1SAndroid Build Coastguard Worker def val_id_to_literal(entry, id): 37*b9df5ad1SAndroid Build Coastguard Worker if entry.type == 'int64' and entry.container == 'array': 38*b9df5ad1SAndroid Build Coastguard Worker return "%sL" % id 39*b9df5ad1SAndroid Build Coastguard Worker else: 40*b9df5ad1SAndroid Build Coastguard Worker return id 41*b9df5ad1SAndroid Build Coastguard Worker%>\ 42*b9df5ad1SAndroid Build Coastguard Worker 43*b9df5ad1SAndroid Build Coastguard Worker/* 44*b9df5ad1SAndroid Build Coastguard Worker * Autogenerated from camera metadata definitions in 45*b9df5ad1SAndroid Build Coastguard Worker * /system/media/camera/docs/metadata_definitions.xml 46*b9df5ad1SAndroid Build Coastguard Worker * *** DO NOT EDIT BY HAND *** 47*b9df5ad1SAndroid Build Coastguard Worker */ 48*b9df5ad1SAndroid Build Coastguard Worker 49*b9df5ad1SAndroid Build Coastguard Workerpackage android.hardware.camera.metadata; 50*b9df5ad1SAndroid Build Coastguard Worker<% 51*b9df5ad1SAndroid Build Coastguard Worker _entry = None 52*b9df5ad1SAndroid Build Coastguard Worker _enum_name = None 53*b9df5ad1SAndroid Build Coastguard Worker for sec in find_all_sections(metadata): 54*b9df5ad1SAndroid Build Coastguard Worker for entry in remove_hal_non_visible(find_unique_entries(sec)): 55*b9df5ad1SAndroid Build Coastguard Worker if entry.name == enum(): 56*b9df5ad1SAndroid Build Coastguard Worker _entry = entry 57*b9df5ad1SAndroid Build Coastguard Worker _enum_name = entry.name.removeprefix("android.") 58*b9df5ad1SAndroid Build Coastguard Worker s = _enum_name.split(".") 59*b9df5ad1SAndroid Build Coastguard Worker s = [x[0].capitalize() + x[1:] for x in s] 60*b9df5ad1SAndroid Build Coastguard Worker _enum_name = ''.join(s) 61*b9df5ad1SAndroid Build Coastguard Worker%>\ 62*b9df5ad1SAndroid Build Coastguard Worker 63*b9df5ad1SAndroid Build Coastguard Worker/** 64*b9df5ad1SAndroid Build Coastguard Worker * ${_entry.name} enumeration values 65*b9df5ad1SAndroid Build Coastguard Worker * @see ${_entry.name | csym} 66*b9df5ad1SAndroid Build Coastguard Worker * See system/media/camera/docs/metadata_definitions.xml for details. 67*b9df5ad1SAndroid Build Coastguard Worker */ 68*b9df5ad1SAndroid Build Coastguard Worker@VintfStability 69*b9df5ad1SAndroid Build Coastguard Worker@Backing(type="${annotated_enum_type(_entry)}") 70*b9df5ad1SAndroid Build Coastguard Workerenum ${_enum_name} { 71*b9df5ad1SAndroid Build Coastguard Worker % for val in aidl_enum_values(_entry): 72*b9df5ad1SAndroid Build Coastguard Worker % if val.id is None: 73*b9df5ad1SAndroid Build Coastguard Worker ${aidl_enum_value_name('%s_%s'%(csym(_entry.name), val.name))}, 74*b9df5ad1SAndroid Build Coastguard Worker % else: 75*b9df5ad1SAndroid Build Coastguard Worker ${aidl_enum_value_name('%s_%s'%(csym(_entry.name), val.name))} = ${val_id_to_literal(_entry, val.id)}, 76*b9df5ad1SAndroid Build Coastguard Worker % endif 77*b9df5ad1SAndroid Build Coastguard Worker % endfor 78*b9df5ad1SAndroid Build Coastguard Worker} 79