Eino-Ville Talvala | dafa653 | 2017-11-17 14:48:20 -0800 | [diff] [blame] | 1 | ## -*- coding: utf-8 -*- |
| 2 | /* |
| 3 | * Copyright (C) 2017 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 | */ |
Eino-Ville Talvala | dafa653 | 2017-11-17 14:48:20 -0800 | [diff] [blame] | 17 | <%! |
| 18 | def annotated_type(entry): |
| 19 | if entry.enum: |
| 20 | type = 'enum' |
| 21 | else: |
| 22 | type = entry.type |
| 23 | if entry.container == 'array': |
| 24 | type += '[]' |
| 25 | |
| 26 | return type |
| 27 | %>\ |
| 28 | |
Eino-Ville Talvala | 63674ff | 2017-12-07 13:06:05 -0800 | [diff] [blame] | 29 | /* |
| 30 | * Autogenerated from camera metadata definitions in |
| 31 | * /system/media/camera/docs/metadata_definitions.xml |
| 32 | * *** DO NOT EDIT BY HAND *** |
| 33 | */ |
| 34 | |
Eino-Ville Talvala | dafa653 | 2017-11-17 14:48:20 -0800 | [diff] [blame] | 35 | package android.hardware.camera.metadata@${hal_major_version()}.${hal_minor_version()}; |
| 36 | |
| 37 | % if first_hal_minor_version(hal_major_version()) != hal_minor_version(): |
Eino-Ville Talvala | dafa653 | 2017-11-17 14:48:20 -0800 | [diff] [blame] | 38 | % for i in range(first_hal_minor_version(hal_major_version()),hal_minor_version()): |
| 39 | import android.hardware.camera.metadata@${hal_major_version()}.${i}; |
| 40 | % endfor |
| 41 | |
| 42 | % endif |
Eino-Ville Talvala | 63674ff | 2017-12-07 13:06:05 -0800 | [diff] [blame] | 43 | <% gotSections = False %>\ |
Eino-Ville Talvala | d4c0fe3 | 2018-03-13 19:46:57 -0700 | [diff] [blame] | 44 | <% gotFirstNewSection = False %>\ |
Eino-Ville Talvala | 63674ff | 2017-12-07 13:06:05 -0800 | [diff] [blame] | 45 | % for idx, section in enumerate(find_all_sections_added_in_hal(metadata, hal_major_version(), hal_minor_version())): |
| 46 | % if idx == 0: |
| 47 | <% gotSections = True %>\ |
Eino-Ville Talvala | dafa653 | 2017-11-17 14:48:20 -0800 | [diff] [blame] | 48 | /** |
| 49 | * Top level hierarchy definitions for camera metadata. *_INFO sections are for |
| 50 | * the static metadata that can be retrived without opening the camera device. |
| 51 | */ |
Shuzhen Wang | 5fb920e | 2017-12-28 13:35:32 -0800 | [diff] [blame] | 52 | enum CameraMetadataSection : ${'uint32_t' if first_hal_minor_version(hal_major_version()) == hal_minor_version() else '@%d.%d::CameraMetadataSection' % (hal_major_version(), hal_minor_version()-1)} { |
Eino-Ville Talvala | 63674ff | 2017-12-07 13:06:05 -0800 | [diff] [blame] | 53 | % endif |
Eino-Ville Talvala | d4c0fe3 | 2018-03-13 19:46:57 -0700 | [diff] [blame] | 54 | % if first_hal_minor_version(hal_major_version()) != hal_minor_version() and not gotFirstNewSection: |
Eino-Ville Talvala | dafa653 | 2017-11-17 14:48:20 -0800 | [diff] [blame] | 55 | ${path_name(section) | csym} = |
Shuzhen Wang | 5fb920e | 2017-12-28 13:35:32 -0800 | [diff] [blame] | 56 | android.hardware.camera.metadata@${hal_major_version()}.${hal_minor_version()-1}::CameraMetadataSection:ANDROID_SECTION_COUNT, |
Eino-Ville Talvala | d4c0fe3 | 2018-03-13 19:46:57 -0700 | [diff] [blame] | 57 | <% gotFirstNewSection = True %>\ |
Eino-Ville Talvala | dafa653 | 2017-11-17 14:48:20 -0800 | [diff] [blame] | 58 | % else: |
| 59 | ${path_name(section) | csym}, |
| 60 | % endif |
| 61 | |
| 62 | % endfor |
Eino-Ville Talvala | 63674ff | 2017-12-07 13:06:05 -0800 | [diff] [blame] | 63 | % if gotSections: |
Shuzhen Wang | 5fb920e | 2017-12-28 13:35:32 -0800 | [diff] [blame] | 64 | ANDROID_SECTION_COUNT${'' if first_hal_minor_version(hal_major_version()) == hal_minor_version() else '_%d_%d' % (hal_major_version(),hal_minor_version())}, |
Eino-Ville Talvala | dafa653 | 2017-11-17 14:48:20 -0800 | [diff] [blame] | 65 | |
Shuzhen Wang | 5fb920e | 2017-12-28 13:35:32 -0800 | [diff] [blame] | 66 | VENDOR_SECTION${'' if first_hal_minor_version(hal_major_version()) == hal_minor_version() else '_%d_%d' % (hal_major_version(),hal_minor_version())} = 0x8000, |
Eino-Ville Talvala | dafa653 | 2017-11-17 14:48:20 -0800 | [diff] [blame] | 67 | |
| 68 | }; |
| 69 | |
| 70 | /** |
| 71 | * Hierarchy positions in enum space. All vendor extension sections must be |
| 72 | * defined with tag >= VENDOR_SECTION_START |
| 73 | */ |
| 74 | enum CameraMetadataSectionStart : ${'uint32_t' if first_hal_minor_version(hal_major_version()) == hal_minor_version() else 'android.hardware.camera.metadata@%d.%d::CameraMetadataSectionStart' % (hal_major_version(), hal_minor_version()-1)} { |
| 75 | % for i in find_all_sections_added_in_hal(metadata, hal_major_version(), hal_minor_version()): |
| 76 | ${path_name(i) + '.start' | csym} = CameraMetadataSection:${path_name(i) | csym} << 16, |
| 77 | |
| 78 | % endfor |
Shuzhen Wang | 5fb920e | 2017-12-28 13:35:32 -0800 | [diff] [blame] | 79 | % if first_hal_minor_version(hal_major_version()) != hal_minor_version() : |
| 80 | VENDOR_SECTION_START${'_%d_%d' % (hal_major_version(),hal_minor_version())} = CameraMetadataSection:VENDOR_SECTION${'_%d_%d' % (hal_major_version(),hal_minor_version())} << 16, |
| 81 | % else: |
Eino-Ville Talvala | dafa653 | 2017-11-17 14:48:20 -0800 | [diff] [blame] | 82 | VENDOR_SECTION_START = CameraMetadataSection:VENDOR_SECTION << 16, |
Shuzhen Wang | 5fb920e | 2017-12-28 13:35:32 -0800 | [diff] [blame] | 83 | % endif |
Eino-Ville Talvala | dafa653 | 2017-11-17 14:48:20 -0800 | [diff] [blame] | 84 | |
| 85 | }; |
| 86 | |
Eino-Ville Talvala | 63674ff | 2017-12-07 13:06:05 -0800 | [diff] [blame] | 87 | % else: |
| 88 | // No new metadata sections added in this revision |
| 89 | |
| 90 | % endif |
Eino-Ville Talvala | dafa653 | 2017-11-17 14:48:20 -0800 | [diff] [blame] | 91 | /** |
Eino-Ville Talvala | 63674ff | 2017-12-07 13:06:05 -0800 | [diff] [blame] | 92 | * Main enumeration for defining camera metadata tags added in this revision |
| 93 | * |
| 94 | * <p>Partial documentation is included for each tag; for complete documentation, reference |
| 95 | * '/system/media/camera/docs/docs.html' in the corresponding Android source tree.</p> |
Eino-Ville Talvala | dafa653 | 2017-11-17 14:48:20 -0800 | [diff] [blame] | 96 | */ |
Eino-Ville Talvala | 63674ff | 2017-12-07 13:06:05 -0800 | [diff] [blame] | 97 | enum CameraMetadataTag : ${'uint32_t' if first_hal_minor_version(hal_major_version()) == hal_minor_version() else '@%d.%d::CameraMetadataTag' % (hal_major_version(), hal_minor_version()-1)} { |
Eino-Ville Talvala | dafa653 | 2017-11-17 14:48:20 -0800 | [diff] [blame] | 98 | % for sec in find_all_sections(metadata): |
| 99 | <% gotEntries = False %>\ |
| 100 | % for idx,entry in enumerate(filter_added_in_hal_version(remove_synthetic(find_unique_entries(sec)), hal_major_version(), hal_minor_version())): |
| 101 | <% gotEntries = True %>\ |
Eino-Ville Talvala | 63674ff | 2017-12-07 13:06:05 -0800 | [diff] [blame] | 102 | /** ${entry.name} [${entry.kind}, ${annotated_type(entry)}, ${entry.applied_visibility}] |
| 103 | % if entry.description: |
| 104 | * |
| 105 | ${entry.description | hidldoc(metadata)}\ |
| 106 | % endif |
| 107 | */ |
Eino-Ville Talvala | dafa653 | 2017-11-17 14:48:20 -0800 | [diff] [blame] | 108 | % if idx == 0: |
Eino-Ville Talvala | dafa653 | 2017-11-17 14:48:20 -0800 | [diff] [blame] | 109 | % if find_first_older_used_hal_version(sec, hal_major_version(), hal_minor_version()) == (0, 0): |
Eino-Ville Talvala | 63674ff | 2017-12-07 13:06:05 -0800 | [diff] [blame] | 110 | ${entry.name + " =" | csym} CameraMetadataSectionStart:${path_name(find_parent_section(entry)) | csym}_START, |
Eino-Ville Talvala | dafa653 | 2017-11-17 14:48:20 -0800 | [diff] [blame] | 111 | % else: |
Eino-Ville Talvala | 63674ff | 2017-12-07 13:06:05 -0800 | [diff] [blame] | 112 | <% prevVersion = find_first_older_used_hal_version(sec, hal_major_version(), hal_minor_version()) %>\ |
Shuzhen Wang | d7a23bf | 2018-11-19 12:15:18 -0800 | [diff] [blame] | 113 | ${entry.name + " =" | csym} ${'android.hardware.camera.metadata@%d.%d' % prevVersion}::CameraMetadataTag:${path_name(find_parent_section(entry)) | csym}${'_END' if prevVersion[1] == first_hal_minor_version(hal_major_version()) else '_END_%d_%d' % prevVersion}, |
Eino-Ville Talvala | dafa653 | 2017-11-17 14:48:20 -0800 | [diff] [blame] | 114 | % endif |
| 115 | % else: |
Eino-Ville Talvala | 63674ff | 2017-12-07 13:06:05 -0800 | [diff] [blame] | 116 | ${entry.name + "," | csym} |
Eino-Ville Talvala | dafa653 | 2017-11-17 14:48:20 -0800 | [diff] [blame] | 117 | % endif |
Eino-Ville Talvala | 63674ff | 2017-12-07 13:06:05 -0800 | [diff] [blame] | 118 | |
Eino-Ville Talvala | dafa653 | 2017-11-17 14:48:20 -0800 | [diff] [blame] | 119 | % endfor |
| 120 | % if gotEntries: |
Eino-Ville Talvala | 63674ff | 2017-12-07 13:06:05 -0800 | [diff] [blame] | 121 | ${path_name(sec) | csym}${'_END' if first_hal_minor_version(hal_major_version()) == hal_minor_version() else '_END_%d_%d' % (hal_major_version(),hal_minor_version())}, |
Eino-Ville Talvala | dafa653 | 2017-11-17 14:48:20 -0800 | [diff] [blame] | 122 | |
| 123 | % endif |
| 124 | %endfor |
| 125 | }; |
| 126 | |
Eino-Ville Talvala | 63674ff | 2017-12-07 13:06:05 -0800 | [diff] [blame] | 127 | /* |
Eino-Ville Talvala | dafa653 | 2017-11-17 14:48:20 -0800 | [diff] [blame] | 128 | * Enumeration definitions for the various entries that need them |
| 129 | */ |
| 130 | % for sec in find_all_sections(metadata): |
Eino-Ville Talvala | 63674ff | 2017-12-07 13:06:05 -0800 | [diff] [blame] | 131 | % for entry in filter_has_enum_values_added_in_hal_version(remove_synthetic(find_unique_entries(sec)), hal_major_version(), hal_minor_version()): |
Eino-Ville Talvala | dafa653 | 2017-11-17 14:48:20 -0800 | [diff] [blame] | 132 | % if entry.enum: |
Eino-Ville Talvala | 63674ff | 2017-12-07 13:06:05 -0800 | [diff] [blame] | 133 | |
| 134 | <% isFirstValue = True %>\ |
| 135 | <% prevValue = None %>\ |
Eino-Ville Talvala | dafa653 | 2017-11-17 14:48:20 -0800 | [diff] [blame] | 136 | % for val in entry.enum.values: |
Eino-Ville Talvala | 63674ff | 2017-12-07 13:06:05 -0800 | [diff] [blame] | 137 | % if val.hal_major_version == hal_major_version() and val.hal_minor_version == hal_minor_version(): |
| 138 | % if isFirstValue: |
| 139 | % if prevValue is None: |
| 140 | /** ${entry.name} enumeration values |
| 141 | % else: |
| 142 | /** ${entry.name} enumeration values added since v${prevValue.hal_major_version}.${prevValue.hal_minor_version} |
| 143 | % endif |
| 144 | * @see ${entry.name | csym} |
| 145 | */ |
| 146 | enum CameraMetadataEnum${entry.name | pascal_case} :${' uint32_t' if prevValue is None else '\n @%d.%d::CameraMetadataEnum%s' % (prevValue.hal_major_version, prevValue.hal_minor_version, pascal_case(entry.name))} { |
| 147 | % endif |
| 148 | % if val.id is None: |
Eino-Ville Talvala | dafa653 | 2017-11-17 14:48:20 -0800 | [diff] [blame] | 149 | ${entry.name | csym}_${val.name}, |
Eino-Ville Talvala | 63674ff | 2017-12-07 13:06:05 -0800 | [diff] [blame] | 150 | % else: |
Eino-Ville Talvala | dafa653 | 2017-11-17 14:48:20 -0800 | [diff] [blame] | 151 | ${'%s_%s'%(csym(entry.name), val.name) | pad(65)} = ${val.id}, |
Eino-Ville Talvala | 63674ff | 2017-12-07 13:06:05 -0800 | [diff] [blame] | 152 | % endif |
| 153 | <% isFirstValue = False %>\ |
| 154 | % else: |
| 155 | <% prevValue = val %>\ |
Eino-Ville Talvala | dafa653 | 2017-11-17 14:48:20 -0800 | [diff] [blame] | 156 | % endif |
| 157 | % endfor |
| 158 | }; |
Eino-Ville Talvala | dafa653 | 2017-11-17 14:48:20 -0800 | [diff] [blame] | 159 | % endif |
| 160 | % endfor |
Shuzhen Wang | 5fb920e | 2017-12-28 13:35:32 -0800 | [diff] [blame] | 161 | % endfor |