xref: /aosp_15_r20/system/media/camera/docs/aidl/CameraMetadataEnum.mako (revision b9df5ad1c9ac98a7fefaac271a55f7ae3db05414)
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