17b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin## -*- coding: utf-8 -*- 27b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin/* 37b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin * Copyright (C) 2012 The Android Open Source Project 47b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin * 57b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin * Licensed under the Apache License, Version 2.0 (the "License"); 67b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin * you may not use this file except in compliance with the License. 77b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin * You may obtain a copy of the License at 87b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin * 97b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin * http://www.apache.org/licenses/LICENSE-2.0 107b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin * 117b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin * Unless required by applicable law or agreed to in writing, software 127b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin * distributed under the License is distributed on an "AS IS" BASIS, 137b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 147b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin * See the License for the specific language governing permissions and 157b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin * limitations under the License. 167b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin */ 177b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin 187b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin/** 197b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin * !! Do not include this file directly !! 207b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin * 217b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin * Include camera_metadata.h instead. 227b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin */ 237b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin 247b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin/** 257b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin * ! Do not edit this file directly ! 267b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin * 277b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin * Generated automatically from camera_metadata_tags.mako 287b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin */ 297b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin 30f384f0a06cf156c51c4ca584a4323e132c15f64fEino-Ville Talvala<%! 31f384f0a06cf156c51c4ca584a4323e132c15f64fEino-Ville Talvala def annotated_type(entry): 32f384f0a06cf156c51c4ca584a4323e132c15f64fEino-Ville Talvala if entry.enum: 33f384f0a06cf156c51c4ca584a4323e132c15f64fEino-Ville Talvala type = 'enum' 34f384f0a06cf156c51c4ca584a4323e132c15f64fEino-Ville Talvala else: 35f384f0a06cf156c51c4ca584a4323e132c15f64fEino-Ville Talvala type = entry.type 36f384f0a06cf156c51c4ca584a4323e132c15f64fEino-Ville Talvala if entry.container == 'array': 37f384f0a06cf156c51c4ca584a4323e132c15f64fEino-Ville Talvala type += '[]' 38f384f0a06cf156c51c4ca584a4323e132c15f64fEino-Ville Talvala 39f384f0a06cf156c51c4ca584a4323e132c15f64fEino-Ville Talvala return type 40f384f0a06cf156c51c4ca584a4323e132c15f64fEino-Ville Talvala%>\ 41f384f0a06cf156c51c4ca584a4323e132c15f64fEino-Ville Talvala\ 427b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin/** TODO: Nearly every enum in this file needs a description */ 437b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin 447b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin/** 457b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin * Top level hierarchy definitions for camera metadata. *_INFO sections are for 467b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin * the static metadata that can be retrived without opening the camera device. 477b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin * New sections must be added right before ANDROID_SECTION_COUNT to maintain 487b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin * existing enumerations. 497b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin */ 507b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkintypedef enum camera_metadata_section { 517b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin % for i in find_all_sections(metadata): 527b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin ${path_name(i) | csym}, 537b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin % endfor 547b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin ANDROID_SECTION_COUNT, 557b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin 567b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin VENDOR_SECTION = 0x8000 577b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin} camera_metadata_section_t; 587b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin 597b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin/** 607b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin * Hierarchy positions in enum space. All vendor extension tags must be 617b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin * defined with tag >= VENDOR_SECTION_START 627b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin */ 637b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkintypedef enum camera_metadata_section_start { 647b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin % for i in find_all_sections(metadata): 65da1c314e080d33eb6b93a1d3da070c99b41e7b22Igor Murashkin ${path_name(i) + '.start' | csym,ljust(30)} = ${path_name(i) | csym,pad(64)} << 16, 667b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin % endfor 677b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin VENDOR_SECTION_START = VENDOR_SECTION << 16 687b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin} camera_metadata_section_start_t; 697b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin 707b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin/** 717b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin * Main enum for defining camera metadata tags. New entries must always go 727b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin * before the section _END tag to preserve existing enumeration values. In 737b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin * addition, the name and type of the tag needs to be added to 747b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin * system/media/camera/src/camera_metadata_tag_info.c 757b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin */ 76e6b664671e35984156e06e17531311a09864ac8bIgor Murashkintypedef enum camera_metadata_tag { 777b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin % for sec in find_all_sections(metadata): 786c936c18e02b122baaa3d5056b0555b6cff256f8Igor Murashkin % for idx,entry in enumerate(remove_synthetic(find_unique_entries(sec))): 797b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin % if idx == 0: 80dafa653b90c8ffff1a14202ee045c6374d737babEino-Ville Talvala ${entry.name + " = " | csym,ljust(50)}// ${annotated_type(entry) | ljust(12)} | ${entry.applied_visibility | ljust(12)} | HIDL v${entry.hal_major_version}.${entry.hal_minor_version} 81f384f0a06cf156c51c4ca584a4323e132c15f64fEino-Ville Talvala ${path_name(find_parent_section(entry)) | csym}_START, 827b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin % else: 83dafa653b90c8ffff1a14202ee045c6374d737babEino-Ville Talvala ${entry.name + "," | csym,ljust(50)}// ${annotated_type(entry) | ljust(12)} | ${entry.applied_visibility | ljust(12)} | HIDL v${entry.hal_major_version}.${entry.hal_minor_version} 847b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin % endif 857b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin % endfor 867b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin ${path_name(sec) | csym}_END, 877b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin 887b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin %endfor 897b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin} camera_metadata_tag_t; 907b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin 917b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin/** 927b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin * Enumeration definitions for the various entries that need them 937b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin */ 947b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin 957b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin% for sec in find_all_sections(metadata): 966c936c18e02b122baaa3d5056b0555b6cff256f8Igor Murashkin % for entry in remove_synthetic(find_unique_entries(sec)): 97b556bc47068d816cb319a5d0e2f6841b007b38f2Igor Murashkin % if entry.enum: 987b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin// ${entry.name | csym} 997b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkintypedef enum camera_metadata_enum_${csym(entry.name).lower()} { 1007b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin % for val in entry.enum.values: 1017b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin % if val.id is None: 10263674ffbc0e519fdbbcd669ef0ffbff2c1991552Eino-Ville Talvala ${entry.name | csym}_${val.name | pad(70)}, // HIDL v${val.hal_major_version}.${val.hal_minor_version} 1037b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin % else: 10463674ffbc0e519fdbbcd669ef0ffbff2c1991552Eino-Ville Talvala ${'%s_%s'%(csym(entry.name), val.name) | pad(70)} = ${val.id}, // HIDL v${val.hal_major_version}.${val.hal_minor_version} 1057b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin % endif 1067b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin % endfor 1077b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin} camera_metadata_enum_${csym(entry.name).lower()}_t; 1087b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin 1097b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin % endif 1107b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin % endfor 1117b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin 1127b9a2dccf20bac314258708e55d8c75b2ecf892aIgor Murashkin%endfor 113