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/** 19*b9df5ad1SAndroid Build Coastguard Worker * ! Do not edit this file directly ! 20*b9df5ad1SAndroid Build Coastguard Worker * 21*b9df5ad1SAndroid Build Coastguard Worker * Generated automatically from camera_metadata_asserts.mako 22*b9df5ad1SAndroid Build Coastguard Worker */ 23*b9df5ad1SAndroid Build Coastguard Worker<% 24*b9df5ad1SAndroid Build Coastguard Workerdef annotated_enum_type(entry): 25*b9df5ad1SAndroid Build Coastguard Worker if entry.type == 'int64' and entry.container == 'array': 26*b9df5ad1SAndroid Build Coastguard Worker type = 'int64_t' 27*b9df5ad1SAndroid Build Coastguard Worker else: 28*b9df5ad1SAndroid Build Coastguard Worker type = 'int32_t' 29*b9df5ad1SAndroid Build Coastguard Worker return type 30*b9df5ad1SAndroid Build Coastguard Worker 31*b9df5ad1SAndroid Build Coastguard Workerdef aidl_namespace(path): 32*b9df5ad1SAndroid Build Coastguard Worker return "::aidl::android::hardware::camera::metadata::" + path 33*b9df5ad1SAndroid Build Coastguard Worker 34*b9df5ad1SAndroid Build Coastguard Workerdef aidl_camera_metadata_section(id): 35*b9df5ad1SAndroid Build Coastguard Worker return aidl_namespace("CameraMetadataSection::" + id) 36*b9df5ad1SAndroid Build Coastguard Worker 37*b9df5ad1SAndroid Build Coastguard Workerdef aidl_camera_metadata_section_start(id): 38*b9df5ad1SAndroid Build Coastguard Worker return aidl_namespace("CameraMetadataSectionStart::" + id) 39*b9df5ad1SAndroid Build Coastguard Worker 40*b9df5ad1SAndroid Build Coastguard Workerdef aidl_camera_metadata_tag(id): 41*b9df5ad1SAndroid Build Coastguard Worker return aidl_namespace("CameraMetadataTag::" + id) 42*b9df5ad1SAndroid Build Coastguard Worker 43*b9df5ad1SAndroid Build Coastguard Workerdef aidl_enum_name(entry): 44*b9df5ad1SAndroid Build Coastguard Worker enum_name = entry.name.removeprefix("android.") 45*b9df5ad1SAndroid Build Coastguard Worker s = enum_name.split(".") 46*b9df5ad1SAndroid Build Coastguard Worker s = [x[0].capitalize() + x[1:] for x in s] 47*b9df5ad1SAndroid Build Coastguard Worker return ''.join(s) 48*b9df5ad1SAndroid Build Coastguard Worker%> 49*b9df5ad1SAndroid Build Coastguard Worker#include <aidl/android/hardware/camera/metadata/CameraMetadataSection.h> 50*b9df5ad1SAndroid Build Coastguard Worker#include <aidl/android/hardware/camera/metadata/CameraMetadataSectionStart.h> 51*b9df5ad1SAndroid Build Coastguard Worker#include <aidl/android/hardware/camera/metadata/CameraMetadataTag.h> 52*b9df5ad1SAndroid Build Coastguard Worker% for sec in find_all_sections_filtered(metadata, ('extension')): 53*b9df5ad1SAndroid Build Coastguard Worker % for entry in remove_hal_non_visible(find_unique_entries(sec)): 54*b9df5ad1SAndroid Build Coastguard Worker % if entry.enum: 55*b9df5ad1SAndroid Build Coastguard Worker#include <aidl/android/hardware/camera/metadata/${aidl_enum_name(entry)}.h> 56*b9df5ad1SAndroid Build Coastguard Worker % endif 57*b9df5ad1SAndroid Build Coastguard Worker % endfor 58*b9df5ad1SAndroid Build Coastguard Worker% endfor 59*b9df5ad1SAndroid Build Coastguard Worker 60*b9df5ad1SAndroid Build Coastguard Worker#include <system/camera_metadata_tags.h> 61*b9df5ad1SAndroid Build Coastguard Worker 62*b9df5ad1SAndroid Build Coastguard Worker% for sec in find_all_sections_filtered(metadata, ('extension')): 63*b9df5ad1SAndroid Build Coastguard Workerstatic_assert(static_cast<int>(${path_name(sec) | csym}) 64*b9df5ad1SAndroid Build Coastguard Worker == static_cast<int>(${aidl_camera_metadata_section(csym(path_name(sec)))})); 65*b9df5ad1SAndroid Build Coastguard Worker% endfor 66*b9df5ad1SAndroid Build Coastguard Workerstatic_assert(static_cast<int>(VENDOR_SECTION) 67*b9df5ad1SAndroid Build Coastguard Worker == static_cast<int>(${aidl_camera_metadata_section("VENDOR_SECTION")})); 68*b9df5ad1SAndroid Build Coastguard Worker 69*b9df5ad1SAndroid Build Coastguard Worker% for sec in find_all_sections_filtered(metadata, ('extension')): 70*b9df5ad1SAndroid Build Coastguard Workerstatic_assert(static_cast<int>(${path_name(sec) + '.start' | csym}) 71*b9df5ad1SAndroid Build Coastguard Worker == static_cast<int>(${aidl_camera_metadata_section_start(csym(path_name(sec) + '.start'))})); 72*b9df5ad1SAndroid Build Coastguard Worker% endfor 73*b9df5ad1SAndroid Build Coastguard Workerstatic_assert(static_cast<int>(VENDOR_SECTION_START) 74*b9df5ad1SAndroid Build Coastguard Worker == static_cast<int>(${aidl_camera_metadata_section_start("VENDOR_SECTION_START")})); 75*b9df5ad1SAndroid Build Coastguard Worker 76*b9df5ad1SAndroid Build Coastguard Worker% for sec in find_all_sections_filtered(metadata, ('extension')): 77*b9df5ad1SAndroid Build Coastguard Worker % for idx,entry in enumerate(remove_hal_non_visible(find_unique_entries(sec))): 78*b9df5ad1SAndroid Build Coastguard Workerstatic_assert(static_cast<int>(${csym(entry.name)}) 79*b9df5ad1SAndroid Build Coastguard Worker == static_cast<int>(${aidl_camera_metadata_tag(csym(entry.name))})); 80*b9df5ad1SAndroid Build Coastguard Worker % endfor 81*b9df5ad1SAndroid Build Coastguard Worker% endfor 82*b9df5ad1SAndroid Build Coastguard Worker% for sec in find_all_sections_filtered(metadata, ('extension')): 83*b9df5ad1SAndroid Build Coastguard Worker % for entry in remove_hal_non_visible(find_unique_entries(sec)): 84*b9df5ad1SAndroid Build Coastguard Worker % if entry.enum: 85*b9df5ad1SAndroid Build Coastguard Worker 86*b9df5ad1SAndroid Build Coastguard Worker % for val in aidl_enum_values(entry): 87*b9df5ad1SAndroid Build Coastguard Workerstatic_assert(static_cast<${annotated_enum_type(entry)}>(${csym(entry.name)}_${val.name}) 88*b9df5ad1SAndroid Build Coastguard Worker == static_cast<${annotated_enum_type(entry)}>(${aidl_namespace(aidl_enum_name(entry) + "::" + aidl_enum_value_name(csym(entry.name) + "_" + val.name))})); 89*b9df5ad1SAndroid Build Coastguard Worker % endfor 90*b9df5ad1SAndroid Build Coastguard Worker % endif 91*b9df5ad1SAndroid Build Coastguard Worker % endfor 92*b9df5ad1SAndroid Build Coastguard Worker% endfor