## -*- coding: utf-8 -*- Android Camera HAL3.2 Properties <%! import re from metadata_helpers import md from metadata_helpers import IMAGE_SRC_METADATA from metadata_helpers import filter_tags from metadata_helpers import wbr # insert line breaks after every two \n\n def br(text): return re.sub(r"(\r?\n)(\r?\n)", r"\1
\2
", text) # Convert node name "x.y.z" of kind w to an HTML anchor of form # x.y.z def html_anchor(node): return '%s' % (node.kind, node.name, node.name) # Render as markdown, and do HTML-doc-specific rewrites def md_html(text): return md(text, IMAGE_SRC_METADATA) # linkify tag names such as "android.x.y.z" into html anchors def linkify_tags(metadata): def linkify_filter(text): return filter_tags(text, metadata, html_anchor) return linkify_filter # Number of rows an entry will span def entry_cols(prop): cols = 1 if prop.details: cols = cols + 2 if prop.hal_details: cols = cols + 2 return cols %>

Android Camera HAL3.2 Properties

\ <%def name="insert_toc_body(node)"> % for nested in node.namespaces: ${ insert_toc_body(nested)} % endfor % for entry in node.merged_entries:
  • ${html_anchor(entry)}
  • % endfor

    Table of Contents

    Properties

    % for root in metadata.outer_namespaces: % for section in root.sections: % if section.description is not None: % endif % for kind in section.merged_kinds: # dynamic,static,controls <%def name="insert_body(node)"> % for nested in node.namespaces: ${insert_namespace(nested)} % endfor % for entry in node.merged_entries: ${insert_entry(entry)} % endfor <%def name="insert_namespace(namespace)"> ${insert_body(namespace)} <%def name="insert_entry(prop)"> % if prop.details is not None: % endif % if prop.hal_details is not None: % endif ${insert_body(kind)} % endfor # for each kind % endfor % endfor
    Property Name Type Description Units Range Tags
    ${section.name}
    ${section.description}
    ${kind.name}
    Property Name Type Description Units Range Tags
    ${prop.name | wbr} % if prop.enum: ${prop.type} % else: ${prop.type} % endif % if prop.container is not None: x % endif % if prop.container == 'array': ${" x ".join(prop.container_sizes)} % elif prop.container == 'tuple':
      % for val in prop.tuple_values:
    • ${val}
    • % endfor
    % endif [${prop.applied_visibility}${" as %s" %prop.typedef.name if prop.typedef else ""}] % if prop.synthetic: [synthetic] % endif % if prop.hwlevel: [${prop.hwlevel}] % endif % if prop.deprecated: [deprecated] % endif % if prop.type_notes is not None:
    ${prop.type_notes | wbr}
    % endif % if prop.enum:
      % for value in prop.enum.values:
    • ${value.name} % if value.optional: [optional] % endif: % if value.hidden: [hidden] % endif: % if value.id is not None: ${value.id} % endif % if value.notes is not None: ${value.notes | md_html, linkify_tags(metadata), wbr} % endif
    • % endfor
    % endif
    % if prop.description is not None: ${prop.description | md_html, linkify_tags(metadata), wbr} % endif % if prop.units is not None: ${prop.units | wbr} % endif % if prop.deprecated:

    Deprecated. Do not use.

    % endif % if prop.range is not None: ${prop.range | md_html, linkify_tags(metadata), wbr} % endif
    Details
    ${prop.details | md_html, linkify_tags(metadata), wbr}
    HAL Implementation Details
    ${prop.hal_details | md_html, linkify_tags(metadata), wbr}

    Tags

    [ top ]