1*b9df5ad1SAndroid Build Coastguard Worker## -*- coding: utf-8 -*- 2*b9df5ad1SAndroid Build Coastguard Worker<!DOCTYPE html> 3*b9df5ad1SAndroid Build Coastguard Worker<html> 4*b9df5ad1SAndroid Build Coastguard Worker<!-- Copyright (C) 2012 The Android Open Source Project 5*b9df5ad1SAndroid Build Coastguard Worker 6*b9df5ad1SAndroid Build Coastguard Worker Licensed under the Apache License, Version 2.0 (the "License"); 7*b9df5ad1SAndroid Build Coastguard Worker you may not use this file except in compliance with the License. 8*b9df5ad1SAndroid Build Coastguard Worker You may obtain a copy of the License at 9*b9df5ad1SAndroid Build Coastguard Worker 10*b9df5ad1SAndroid Build Coastguard Worker http://www.apache.org/licenses/LICENSE-2.0 11*b9df5ad1SAndroid Build Coastguard Worker 12*b9df5ad1SAndroid Build Coastguard Worker Unless required by applicable law or agreed to in writing, software 13*b9df5ad1SAndroid Build Coastguard Worker distributed under the License is distributed on an "AS IS" BASIS, 14*b9df5ad1SAndroid Build Coastguard Worker WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15*b9df5ad1SAndroid Build Coastguard Worker See the License for the specific language governing permissions and 16*b9df5ad1SAndroid Build Coastguard Worker limitations under the License. 17*b9df5ad1SAndroid Build Coastguard Worker--> 18*b9df5ad1SAndroid Build Coastguard Worker<head> 19*b9df5ad1SAndroid Build Coastguard Worker <!-- automatically generated from html.mako. do NOT edit directly --> 20*b9df5ad1SAndroid Build Coastguard Worker <meta charset="utf-8" /> 21*b9df5ad1SAndroid Build Coastguard Worker <title>Android Camera HAL3.4 Properties</title> 22*b9df5ad1SAndroid Build Coastguard Worker <style type="text/css"> 23*b9df5ad1SAndroid Build Coastguard Worker body { background-color: #f7f7f7; font-family: Roboto, sans-serif;} 24*b9df5ad1SAndroid Build Coastguard Worker h1 { color: #333333; } 25*b9df5ad1SAndroid Build Coastguard Worker h2 { color: #333333; } 26*b9df5ad1SAndroid Build Coastguard Worker a:link { color: #258aaf; text-decoration: none} 27*b9df5ad1SAndroid Build Coastguard Worker a:hover { color: #459aaf; text-decoration: underline } 28*b9df5ad1SAndroid Build Coastguard Worker a:visited { color: #154a5f; text-decoration: none} 29*b9df5ad1SAndroid Build Coastguard Worker .section { color: #eeeeee; font-size: 1.5em; font-weight: bold; background-color: #888888; padding: 0.5em 0em 0.5em 0.5em; border-width: thick thin thin thin; border-color: #111111 #777777 #777777 #777777} 30*b9df5ad1SAndroid Build Coastguard Worker .kind { color: #eeeeee; font-size: 1.2em; font-weight: bold; padding-left: 1.5em; background-color: #aaaaaa } 31*b9df5ad1SAndroid Build Coastguard Worker .entry { background-color: #f0f0f0 } 32*b9df5ad1SAndroid Build Coastguard Worker .entry_cont { background-color: #f0f0f0 } 33*b9df5ad1SAndroid Build Coastguard Worker .entries_header { background-color: #dddddd; text-align: center} 34*b9df5ad1SAndroid Build Coastguard Worker 35*b9df5ad1SAndroid Build Coastguard Worker /* toc style */ 36*b9df5ad1SAndroid Build Coastguard Worker .toc_section_header { font-size:1.3em; } 37*b9df5ad1SAndroid Build Coastguard Worker .toc_kind_header { font-size:1.2em; } 38*b9df5ad1SAndroid Build Coastguard Worker .toc_deprecated { text-decoration:line-through; } 39*b9df5ad1SAndroid Build Coastguard Worker 40*b9df5ad1SAndroid Build Coastguard Worker /* table column sizes */ 41*b9df5ad1SAndroid Build Coastguard Worker table { border-collapse:collapse; table-layout: fixed; width: 100%; word-wrap: break-word } 42*b9df5ad1SAndroid Build Coastguard Worker td,th { border: 1px solid; border-color: #aaaaaa; padding-left: 0.5em; padding-right: 0.5em } 43*b9df5ad1SAndroid Build Coastguard Worker .th_name { width: 20% } 44*b9df5ad1SAndroid Build Coastguard Worker .th_units { width: 10% } 45*b9df5ad1SAndroid Build Coastguard Worker .th_tags { width: 5% } 46*b9df5ad1SAndroid Build Coastguard Worker .th_details { width: 25% } 47*b9df5ad1SAndroid Build Coastguard Worker .th_type { width: 17% } 48*b9df5ad1SAndroid Build Coastguard Worker .th_description { width: 20% } 49*b9df5ad1SAndroid Build Coastguard Worker .th_range { width: 8% } 50*b9df5ad1SAndroid Build Coastguard Worker .th_hal_version { width: 5% } 51*b9df5ad1SAndroid Build Coastguard Worker td { font-size: 0.9em; } 52*b9df5ad1SAndroid Build Coastguard Worker 53*b9df5ad1SAndroid Build Coastguard Worker /* hide the first thead, we need it there only to enforce column sizes */ 54*b9df5ad1SAndroid Build Coastguard Worker .thead_dummy { visibility: hidden; } 55*b9df5ad1SAndroid Build Coastguard Worker 56*b9df5ad1SAndroid Build Coastguard Worker /* Entry flair */ 57*b9df5ad1SAndroid Build Coastguard Worker .entry_name { color: #333333; padding-left:1.0em; font-size:1.1em; font-family: monospace; vertical-align:top; } 58*b9df5ad1SAndroid Build Coastguard Worker .entry_name_deprecated { text-decoration:line-through; } 59*b9df5ad1SAndroid Build Coastguard Worker 60*b9df5ad1SAndroid Build Coastguard Worker /* Entry type flair */ 61*b9df5ad1SAndroid Build Coastguard Worker .entry_type_name { font-size:1.1em; color: #669900; font-weight: bold;} 62*b9df5ad1SAndroid Build Coastguard Worker .entry_type_name_enum:after { color: #669900; font-weight: bold; content:" (enum)" } 63*b9df5ad1SAndroid Build Coastguard Worker .entry_type_visibility { font-weight: bolder; padding-left:1em} 64*b9df5ad1SAndroid Build Coastguard Worker .entry_type_synthetic { font-weight: bolder; color: #996600; } 65*b9df5ad1SAndroid Build Coastguard Worker .entry_type_hwlevel { font-weight: bolder; color: #000066; } 66*b9df5ad1SAndroid Build Coastguard Worker .entry_type_deprecated { font-weight: bolder; color: #4D4D4D; } 67*b9df5ad1SAndroid Build Coastguard Worker .entry_type_enum_name { font-family: monospace; font-weight: bolder; } 68*b9df5ad1SAndroid Build Coastguard Worker .entry_type_enum_notes:before { content:" - " } 69*b9df5ad1SAndroid Build Coastguard Worker .entry_type_enum_notes>p:first-child { display:inline; } 70*b9df5ad1SAndroid Build Coastguard Worker .entry_type_enum_value:before { content:" = " } 71*b9df5ad1SAndroid Build Coastguard Worker .entry_type_enum_value { font-family: monospace; } 72*b9df5ad1SAndroid Build Coastguard Worker .entry ul { margin: 0 0 0 0; list-style-position: inside; padding-left: 0.5em; } 73*b9df5ad1SAndroid Build Coastguard Worker .entry ul li { padding: 0 0 0 0; margin: 0 0 0 0;} 74*b9df5ad1SAndroid Build Coastguard Worker .entry_range_deprecated { font-weight: bolder; } 75*b9df5ad1SAndroid Build Coastguard Worker 76*b9df5ad1SAndroid Build Coastguard Worker /* Entry tags flair */ 77*b9df5ad1SAndroid Build Coastguard Worker .entry_tags ul { list-style-type: none; } 78*b9df5ad1SAndroid Build Coastguard Worker 79*b9df5ad1SAndroid Build Coastguard Worker /* Entry details (full docs) flair */ 80*b9df5ad1SAndroid Build Coastguard Worker .entry_details_header { font-weight: bold; background-color: #dddddd; 81*b9df5ad1SAndroid Build Coastguard Worker text-align: center; font-size: 1.1em; margin-left: 0em; margin-right: 0em; } 82*b9df5ad1SAndroid Build Coastguard Worker 83*b9df5ad1SAndroid Build Coastguard Worker /* Entry spacer flair */ 84*b9df5ad1SAndroid Build Coastguard Worker .entry_spacer { background-color: transparent; border-style: none; height: 0.5em; } 85*b9df5ad1SAndroid Build Coastguard Worker 86*b9df5ad1SAndroid Build Coastguard Worker /* TODO: generate abbr element for each tag link? */ 87*b9df5ad1SAndroid Build Coastguard Worker /* TODO for each x.y.z try to link it to the entry */ 88*b9df5ad1SAndroid Build Coastguard Worker 89*b9df5ad1SAndroid Build Coastguard Worker </style> 90*b9df5ad1SAndroid Build Coastguard Worker 91*b9df5ad1SAndroid Build Coastguard Worker <style> 92*b9df5ad1SAndroid Build Coastguard Worker 93*b9df5ad1SAndroid Build Coastguard Worker { 94*b9df5ad1SAndroid Build Coastguard Worker /* broken... 95*b9df5ad1SAndroid Build Coastguard Worker supposedly there is a bug in chrome that it lays out tables before 96*b9df5ad1SAndroid Build Coastguard Worker it knows its being printed, so the page-break-* styles are ignored 97*b9df5ad1SAndroid Build Coastguard Worker */ 98*b9df5ad1SAndroid Build Coastguard Worker tr { page-break-after: always; page-break-inside: avoid; } 99*b9df5ad1SAndroid Build Coastguard Worker } 100*b9df5ad1SAndroid Build Coastguard Worker 101*b9df5ad1SAndroid Build Coastguard Worker </style> 102*b9df5ad1SAndroid Build Coastguard Worker</head> 103*b9df5ad1SAndroid Build Coastguard Worker 104*b9df5ad1SAndroid Build Coastguard Worker<%! 105*b9df5ad1SAndroid Build Coastguard Worker import re 106*b9df5ad1SAndroid Build Coastguard Worker from metadata_helpers import md 107*b9df5ad1SAndroid Build Coastguard Worker from metadata_helpers import IMAGE_SRC_METADATA 108*b9df5ad1SAndroid Build Coastguard Worker from metadata_helpers import filter_tags 109*b9df5ad1SAndroid Build Coastguard Worker from metadata_helpers import filter_links 110*b9df5ad1SAndroid Build Coastguard Worker from metadata_helpers import wbr 111*b9df5ad1SAndroid Build Coastguard Worker 112*b9df5ad1SAndroid Build Coastguard Worker # insert line breaks after every two \n\n 113*b9df5ad1SAndroid Build Coastguard Worker def br(text): 114*b9df5ad1SAndroid Build Coastguard Worker return re.sub(r"(\r?\n)(\r?\n)", r"\1<br>\2<br>", text) 115*b9df5ad1SAndroid Build Coastguard Worker 116*b9df5ad1SAndroid Build Coastguard Worker # Convert node name "x.y.z" of kind w to an HTML anchor of form 117*b9df5ad1SAndroid Build Coastguard Worker # <a href="#w_x.y.z">x.y.z</a> 118*b9df5ad1SAndroid Build Coastguard Worker def html_anchor(node): 119*b9df5ad1SAndroid Build Coastguard Worker return '<a href="#%s_%s">%s</a>' % (node.kind, node.name, node.name) 120*b9df5ad1SAndroid Build Coastguard Worker 121*b9df5ad1SAndroid Build Coastguard Worker # Convert target "xxx.yyy#zzz" to a HTML reference to Android public developer 122*b9df5ad1SAndroid Build Coastguard Worker # docs with link name from shortname. 123*b9df5ad1SAndroid Build Coastguard Worker def html_link(target, target_ndk, shortname): 124*b9df5ad1SAndroid Build Coastguard Worker if shortname == '': 125*b9df5ad1SAndroid Build Coastguard Worker lastdot = target.rfind('.') 126*b9df5ad1SAndroid Build Coastguard Worker if lastdot == -1: 127*b9df5ad1SAndroid Build Coastguard Worker shortname = target 128*b9df5ad1SAndroid Build Coastguard Worker else: 129*b9df5ad1SAndroid Build Coastguard Worker shortname = target[lastdot + 1:] 130*b9df5ad1SAndroid Build Coastguard Worker 131*b9df5ad1SAndroid Build Coastguard Worker target = target.replace('.','/') 132*b9df5ad1SAndroid Build Coastguard Worker if target.find('#') != -1: 133*b9df5ad1SAndroid Build Coastguard Worker target = target.replace('#','.html#') 134*b9df5ad1SAndroid Build Coastguard Worker else: 135*b9df5ad1SAndroid Build Coastguard Worker target = target + '.html' 136*b9df5ad1SAndroid Build Coastguard Worker 137*b9df5ad1SAndroid Build Coastguard Worker # Work around html links with inner classes. 138*b9df5ad1SAndroid Build Coastguard Worker target = target.replace('CaptureRequest/Builder', 'CaptureRequest.Builder') 139*b9df5ad1SAndroid Build Coastguard Worker target = target.replace('Build/VERSION', 'Build.VERSION') 140*b9df5ad1SAndroid Build Coastguard Worker 141*b9df5ad1SAndroid Build Coastguard Worker return '<a href="https://developer.android.com/reference/%s">%s</a>' % (target, shortname) 142*b9df5ad1SAndroid Build Coastguard Worker 143*b9df5ad1SAndroid Build Coastguard Worker # Render as markdown, and do HTML-doc-specific rewrites 144*b9df5ad1SAndroid Build Coastguard Worker def md_html(text): 145*b9df5ad1SAndroid Build Coastguard Worker return md(text, IMAGE_SRC_METADATA) 146*b9df5ad1SAndroid Build Coastguard Worker 147*b9df5ad1SAndroid Build Coastguard Worker # linkify tag names such as "android.x.y.z" into html anchors 148*b9df5ad1SAndroid Build Coastguard Worker def linkify_tags(metadata): 149*b9df5ad1SAndroid Build Coastguard Worker def linkify_filter(text): 150*b9df5ad1SAndroid Build Coastguard Worker tagged_text = filter_tags(text, metadata, html_anchor) 151*b9df5ad1SAndroid Build Coastguard Worker return filter_links(tagged_text, html_link) 152*b9df5ad1SAndroid Build Coastguard Worker return linkify_filter 153*b9df5ad1SAndroid Build Coastguard Worker 154*b9df5ad1SAndroid Build Coastguard Worker # Number of rows an entry will span 155*b9df5ad1SAndroid Build Coastguard Worker def entry_cols(prop): 156*b9df5ad1SAndroid Build Coastguard Worker cols = 1 157*b9df5ad1SAndroid Build Coastguard Worker if prop.details: cols = cols + 2 158*b9df5ad1SAndroid Build Coastguard Worker if prop.hal_details: cols = cols + 2 159*b9df5ad1SAndroid Build Coastguard Worker return cols 160*b9df5ad1SAndroid Build Coastguard Worker%> 161*b9df5ad1SAndroid Build Coastguard Worker 162*b9df5ad1SAndroid Build Coastguard Worker<body> 163*b9df5ad1SAndroid Build Coastguard Worker <h1>Android Camera HAL3.2 Properties</h1> 164*b9df5ad1SAndroid Build Coastguard Worker\ 165*b9df5ad1SAndroid Build Coastguard Worker<%def name="insert_toc_body(node)"> 166*b9df5ad1SAndroid Build Coastguard Worker % for nested in node.namespaces: 167*b9df5ad1SAndroid Build Coastguard Worker${ insert_toc_body(nested)} 168*b9df5ad1SAndroid Build Coastguard Worker % endfor 169*b9df5ad1SAndroid Build Coastguard Worker % for entry in node.merged_entries: 170*b9df5ad1SAndroid Build Coastguard Worker <li 171*b9df5ad1SAndroid Build Coastguard Worker % if entry.deprecated: 172*b9df5ad1SAndroid Build Coastguard Worker class="toc_deprecated" 173*b9df5ad1SAndroid Build Coastguard Worker % endif 174*b9df5ad1SAndroid Build Coastguard Worker >${html_anchor(entry)}</li> 175*b9df5ad1SAndroid Build Coastguard Worker % endfor 176*b9df5ad1SAndroid Build Coastguard Worker</%def> 177*b9df5ad1SAndroid Build Coastguard Worker 178*b9df5ad1SAndroid Build Coastguard Worker <h2>Table of Contents</h2> 179*b9df5ad1SAndroid Build Coastguard Worker <ul class="toc"> 180*b9df5ad1SAndroid Build Coastguard Worker <li><a href="#tag_index" class="toc_section_header">Tags</a></li> 181*b9df5ad1SAndroid Build Coastguard Worker% for root in metadata.outer_namespaces: 182*b9df5ad1SAndroid Build Coastguard Worker % for section in root.sections: 183*b9df5ad1SAndroid Build Coastguard Worker <li> 184*b9df5ad1SAndroid Build Coastguard Worker <span class="toc_section_header"><a href="#section_${section.name}">${section.name}</a></span> 185*b9df5ad1SAndroid Build Coastguard Worker <ul class="toc_section"> 186*b9df5ad1SAndroid Build Coastguard Worker % for kind in section.merged_kinds: # dynamic,static,controls 187*b9df5ad1SAndroid Build Coastguard Worker <li> 188*b9df5ad1SAndroid Build Coastguard Worker <span class="toc_kind_header">${kind.name}</span> 189*b9df5ad1SAndroid Build Coastguard Worker <ul class="toc_section">\ 190*b9df5ad1SAndroid Build Coastguard Worker${ insert_toc_body(kind)}\ 191*b9df5ad1SAndroid Build Coastguard Worker </ul> 192*b9df5ad1SAndroid Build Coastguard Worker </li> 193*b9df5ad1SAndroid Build Coastguard Worker % endfor 194*b9df5ad1SAndroid Build Coastguard Worker </ul> <!-- toc_section --> 195*b9df5ad1SAndroid Build Coastguard Worker </li> 196*b9df5ad1SAndroid Build Coastguard Worker % endfor 197*b9df5ad1SAndroid Build Coastguard Worker% endfor 198*b9df5ad1SAndroid Build Coastguard Worker </ul> 199*b9df5ad1SAndroid Build Coastguard Worker 200*b9df5ad1SAndroid Build Coastguard Worker 201*b9df5ad1SAndroid Build Coastguard Worker <h1>Properties</h1> 202*b9df5ad1SAndroid Build Coastguard Worker <table class="properties"> 203*b9df5ad1SAndroid Build Coastguard Worker 204*b9df5ad1SAndroid Build Coastguard Worker <thead class="thead_dummy"> 205*b9df5ad1SAndroid Build Coastguard Worker <tr> 206*b9df5ad1SAndroid Build Coastguard Worker <th class="th_name">Property Name</th> 207*b9df5ad1SAndroid Build Coastguard Worker <th class="th_type">Type</th> 208*b9df5ad1SAndroid Build Coastguard Worker <th class="th_description">Description</th> 209*b9df5ad1SAndroid Build Coastguard Worker <th class="th_units">Units</th> 210*b9df5ad1SAndroid Build Coastguard Worker <th class="th_range">Range</th> 211*b9df5ad1SAndroid Build Coastguard Worker <th class="th_hal_version">HIDL HAL version</th> 212*b9df5ad1SAndroid Build Coastguard Worker <th class="th_tags">Tags</th> 213*b9df5ad1SAndroid Build Coastguard Worker </tr> 214*b9df5ad1SAndroid Build Coastguard Worker </thead> <!-- so that the first occurrence of thead is not 215*b9df5ad1SAndroid Build Coastguard Worker above the first occurrence of tr --> 216*b9df5ad1SAndroid Build Coastguard Worker% for root in metadata.outer_namespaces: 217*b9df5ad1SAndroid Build Coastguard Worker<!-- <namespace name="${root.name}"> --> 218*b9df5ad1SAndroid Build Coastguard Worker % for section in root.sections: 219*b9df5ad1SAndroid Build Coastguard Worker <tr><td colspan="7" id="section_${section.name}" class="section">${section.name}</td></tr> 220*b9df5ad1SAndroid Build Coastguard Worker 221*b9df5ad1SAndroid Build Coastguard Worker % if section.description is not None: 222*b9df5ad1SAndroid Build Coastguard Worker <tr class="description"><td>${section.description}</td></tr> 223*b9df5ad1SAndroid Build Coastguard Worker % endif 224*b9df5ad1SAndroid Build Coastguard Worker 225*b9df5ad1SAndroid Build Coastguard Worker % for kind in section.merged_kinds: # dynamic,static,controls 226*b9df5ad1SAndroid Build Coastguard Worker <tr><td colspan="7" class="kind">${kind.name}</td></tr> 227*b9df5ad1SAndroid Build Coastguard Worker 228*b9df5ad1SAndroid Build Coastguard Worker <thead class="entries_header"> 229*b9df5ad1SAndroid Build Coastguard Worker <tr> 230*b9df5ad1SAndroid Build Coastguard Worker <th class="th_name">Property Name</th> 231*b9df5ad1SAndroid Build Coastguard Worker <th class="th_type">Type</th> 232*b9df5ad1SAndroid Build Coastguard Worker <th class="th_description">Description</th> 233*b9df5ad1SAndroid Build Coastguard Worker <th class="th_units">Units</th> 234*b9df5ad1SAndroid Build Coastguard Worker <th class="th_range">Range</th> 235*b9df5ad1SAndroid Build Coastguard Worker <th class="th_hal_version">Initial HIDL HAL version</th> 236*b9df5ad1SAndroid Build Coastguard Worker <th class="th_tags">Tags</th> 237*b9df5ad1SAndroid Build Coastguard Worker </tr> 238*b9df5ad1SAndroid Build Coastguard Worker </thead> 239*b9df5ad1SAndroid Build Coastguard Worker 240*b9df5ad1SAndroid Build Coastguard Worker <tbody> 241*b9df5ad1SAndroid Build Coastguard Worker 242*b9df5ad1SAndroid Build Coastguard Worker <%def name="insert_body(node)"> 243*b9df5ad1SAndroid Build Coastguard Worker % for nested in node.namespaces: 244*b9df5ad1SAndroid Build Coastguard Worker ${insert_namespace(nested)} 245*b9df5ad1SAndroid Build Coastguard Worker % endfor 246*b9df5ad1SAndroid Build Coastguard Worker 247*b9df5ad1SAndroid Build Coastguard Worker % for entry in node.merged_entries: 248*b9df5ad1SAndroid Build Coastguard Worker ${insert_entry(entry)} 249*b9df5ad1SAndroid Build Coastguard Worker % endfor 250*b9df5ad1SAndroid Build Coastguard Worker </%def> 251*b9df5ad1SAndroid Build Coastguard Worker 252*b9df5ad1SAndroid Build Coastguard Worker <%def name="insert_namespace(namespace)"> 253*b9df5ad1SAndroid Build Coastguard Worker ${insert_body(namespace)} 254*b9df5ad1SAndroid Build Coastguard Worker </%def> 255*b9df5ad1SAndroid Build Coastguard Worker 256*b9df5ad1SAndroid Build Coastguard Worker <%def name="insert_entry(prop)"> 257*b9df5ad1SAndroid Build Coastguard Worker <tr class="entry" id="${prop.kind}_${prop.name}"> 258*b9df5ad1SAndroid Build Coastguard Worker <td class="entry_name 259*b9df5ad1SAndroid Build Coastguard Worker % if prop.deprecated: 260*b9df5ad1SAndroid Build Coastguard Worker entry_name_deprecated 261*b9df5ad1SAndroid Build Coastguard Worker % endif 262*b9df5ad1SAndroid Build Coastguard Worker " rowspan="${entry_cols(prop)}"> 263*b9df5ad1SAndroid Build Coastguard Worker ${prop.name | wbr} 264*b9df5ad1SAndroid Build Coastguard Worker </td> 265*b9df5ad1SAndroid Build Coastguard Worker <td class="entry_type"> 266*b9df5ad1SAndroid Build Coastguard Worker % if prop.enum: 267*b9df5ad1SAndroid Build Coastguard Worker <span class="entry_type_name entry_type_name_enum">${prop.type}</span> 268*b9df5ad1SAndroid Build Coastguard Worker % else: 269*b9df5ad1SAndroid Build Coastguard Worker <span class="entry_type_name">${prop.type}</span> 270*b9df5ad1SAndroid Build Coastguard Worker % endif 271*b9df5ad1SAndroid Build Coastguard Worker % if prop.container is not None: 272*b9df5ad1SAndroid Build Coastguard Worker <span class="entry_type_container">x</span> 273*b9df5ad1SAndroid Build Coastguard Worker % endif 274*b9df5ad1SAndroid Build Coastguard Worker 275*b9df5ad1SAndroid Build Coastguard Worker % if prop.container == 'array': 276*b9df5ad1SAndroid Build Coastguard Worker <span class="entry_type_array"> 277*b9df5ad1SAndroid Build Coastguard Worker ${" x ".join(prop.container_sizes)} 278*b9df5ad1SAndroid Build Coastguard Worker </span> 279*b9df5ad1SAndroid Build Coastguard Worker % elif prop.container == 'tuple': 280*b9df5ad1SAndroid Build Coastguard Worker <ul class="entry_type_tuple"> 281*b9df5ad1SAndroid Build Coastguard Worker % for val in prop.tuple_values: 282*b9df5ad1SAndroid Build Coastguard Worker <li>${val}</li> 283*b9df5ad1SAndroid Build Coastguard Worker % endfor 284*b9df5ad1SAndroid Build Coastguard Worker </ul> 285*b9df5ad1SAndroid Build Coastguard Worker % endif 286*b9df5ad1SAndroid Build Coastguard Worker <span class="entry_type_visibility"> [${prop.applied_visibility}${" as %s" %prop.typedef.name if prop.typedef else ""}]</span> 287*b9df5ad1SAndroid Build Coastguard Worker 288*b9df5ad1SAndroid Build Coastguard Worker % if prop.synthetic: 289*b9df5ad1SAndroid Build Coastguard Worker <span class="entry_type_synthetic">[synthetic] </span> 290*b9df5ad1SAndroid Build Coastguard Worker % endif 291*b9df5ad1SAndroid Build Coastguard Worker 292*b9df5ad1SAndroid Build Coastguard Worker % if prop.hwlevel: 293*b9df5ad1SAndroid Build Coastguard Worker <span class="entry_type_hwlevel">[${prop.hwlevel}] </span> 294*b9df5ad1SAndroid Build Coastguard Worker % endif 295*b9df5ad1SAndroid Build Coastguard Worker 296*b9df5ad1SAndroid Build Coastguard Worker % if prop.deprecated: 297*b9df5ad1SAndroid Build Coastguard Worker <span class="entry_type_deprecated">[deprecated] </span> 298*b9df5ad1SAndroid Build Coastguard Worker % endif 299*b9df5ad1SAndroid Build Coastguard Worker 300*b9df5ad1SAndroid Build Coastguard Worker % if prop.type_notes is not None: 301*b9df5ad1SAndroid Build Coastguard Worker <div class="entry_type_notes">${prop.type_notes | wbr}</div> 302*b9df5ad1SAndroid Build Coastguard Worker % endif 303*b9df5ad1SAndroid Build Coastguard Worker 304*b9df5ad1SAndroid Build Coastguard Worker % if prop.enum: 305*b9df5ad1SAndroid Build Coastguard Worker <ul class="entry_type_enum"> 306*b9df5ad1SAndroid Build Coastguard Worker % for value in prop.enum.values: 307*b9df5ad1SAndroid Build Coastguard Worker <li> 308*b9df5ad1SAndroid Build Coastguard Worker <span class="entry_type_enum_name">${value.name} (v${value.hal_major_version}.${value.hal_minor_version})</span> 309*b9df5ad1SAndroid Build Coastguard Worker % if value.deprecated: 310*b9df5ad1SAndroid Build Coastguard Worker <span class="entry_type_enum_deprecated">[deprecated]</span> 311*b9df5ad1SAndroid Build Coastguard Worker % endif: 312*b9df5ad1SAndroid Build Coastguard Worker % if value.optional: 313*b9df5ad1SAndroid Build Coastguard Worker <span class="entry_type_enum_optional">[optional]</span> 314*b9df5ad1SAndroid Build Coastguard Worker % endif: 315*b9df5ad1SAndroid Build Coastguard Worker % if value.applied_visibility != 'public': 316*b9df5ad1SAndroid Build Coastguard Worker <span class="entry_type_enum_hidden">[${value.visibility}]</span> 317*b9df5ad1SAndroid Build Coastguard Worker % endif: 318*b9df5ad1SAndroid Build Coastguard Worker % if value.id is not None: 319*b9df5ad1SAndroid Build Coastguard Worker <span class="entry_type_enum_value">${value.id}</span> 320*b9df5ad1SAndroid Build Coastguard Worker % endif 321*b9df5ad1SAndroid Build Coastguard Worker % if value.notes is not None: 322*b9df5ad1SAndroid Build Coastguard Worker <span class="entry_type_enum_notes">${value.notes | md_html, linkify_tags(metadata), wbr}</span> 323*b9df5ad1SAndroid Build Coastguard Worker % endif 324*b9df5ad1SAndroid Build Coastguard Worker </li> 325*b9df5ad1SAndroid Build Coastguard Worker % endfor 326*b9df5ad1SAndroid Build Coastguard Worker </ul> 327*b9df5ad1SAndroid Build Coastguard Worker % endif 328*b9df5ad1SAndroid Build Coastguard Worker 329*b9df5ad1SAndroid Build Coastguard Worker </td> <!-- entry_type --> 330*b9df5ad1SAndroid Build Coastguard Worker 331*b9df5ad1SAndroid Build Coastguard Worker <td class="entry_description"> 332*b9df5ad1SAndroid Build Coastguard Worker % if prop.description is not None: 333*b9df5ad1SAndroid Build Coastguard Worker ${prop.description | md_html, linkify_tags(metadata), wbr} 334*b9df5ad1SAndroid Build Coastguard Worker % endif 335*b9df5ad1SAndroid Build Coastguard Worker </td> 336*b9df5ad1SAndroid Build Coastguard Worker 337*b9df5ad1SAndroid Build Coastguard Worker <td class="entry_units"> 338*b9df5ad1SAndroid Build Coastguard Worker % if prop.units is not None: 339*b9df5ad1SAndroid Build Coastguard Worker ${prop.units | wbr} 340*b9df5ad1SAndroid Build Coastguard Worker % endif 341*b9df5ad1SAndroid Build Coastguard Worker </td> 342*b9df5ad1SAndroid Build Coastguard Worker 343*b9df5ad1SAndroid Build Coastguard Worker <td class="entry_range"> 344*b9df5ad1SAndroid Build Coastguard Worker % if prop.deprecated: 345*b9df5ad1SAndroid Build Coastguard Worker <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p> 346*b9df5ad1SAndroid Build Coastguard Worker % endif 347*b9df5ad1SAndroid Build Coastguard Worker % if prop.range is not None: 348*b9df5ad1SAndroid Build Coastguard Worker ${prop.range | md_html, linkify_tags(metadata), wbr} 349*b9df5ad1SAndroid Build Coastguard Worker % endif 350*b9df5ad1SAndroid Build Coastguard Worker </td> 351*b9df5ad1SAndroid Build Coastguard Worker 352*b9df5ad1SAndroid Build Coastguard Worker <td class="entry_hal_version"> 353*b9df5ad1SAndroid Build Coastguard Worker ${"%d.%d" % (prop.hal_major_version, prop.hal_minor_version) | md_html, linkify_tags(metadata), wbr} 354*b9df5ad1SAndroid Build Coastguard Worker </td> 355*b9df5ad1SAndroid Build Coastguard Worker 356*b9df5ad1SAndroid Build Coastguard Worker <td class="entry_tags"> 357*b9df5ad1SAndroid Build Coastguard Worker % if next(prop.tags, None): 358*b9df5ad1SAndroid Build Coastguard Worker <ul class="entry_tags"> 359*b9df5ad1SAndroid Build Coastguard Worker % for tag in prop.tags: 360*b9df5ad1SAndroid Build Coastguard Worker <li><a href="#tag_${tag.id}">${tag.id}</a></li> 361*b9df5ad1SAndroid Build Coastguard Worker % endfor 362*b9df5ad1SAndroid Build Coastguard Worker </ul> 363*b9df5ad1SAndroid Build Coastguard Worker % endif 364*b9df5ad1SAndroid Build Coastguard Worker </td> 365*b9df5ad1SAndroid Build Coastguard Worker 366*b9df5ad1SAndroid Build Coastguard Worker </tr> 367*b9df5ad1SAndroid Build Coastguard Worker % if prop.details is not None: 368*b9df5ad1SAndroid Build Coastguard Worker <tr class="entries_header"> 369*b9df5ad1SAndroid Build Coastguard Worker <th class="th_details" colspan="6">Details</th> 370*b9df5ad1SAndroid Build Coastguard Worker </tr> 371*b9df5ad1SAndroid Build Coastguard Worker <tr class="entry_cont"> 372*b9df5ad1SAndroid Build Coastguard Worker <td class="entry_details" colspan="6"> 373*b9df5ad1SAndroid Build Coastguard Worker ${prop.details | md_html, linkify_tags(metadata), wbr} 374*b9df5ad1SAndroid Build Coastguard Worker </td> 375*b9df5ad1SAndroid Build Coastguard Worker </tr> 376*b9df5ad1SAndroid Build Coastguard Worker % endif 377*b9df5ad1SAndroid Build Coastguard Worker 378*b9df5ad1SAndroid Build Coastguard Worker % if prop.hal_details is not None: 379*b9df5ad1SAndroid Build Coastguard Worker <tr class="entries_header"> 380*b9df5ad1SAndroid Build Coastguard Worker <th class="th_details" colspan="6">HAL Implementation Details</th> 381*b9df5ad1SAndroid Build Coastguard Worker </tr> 382*b9df5ad1SAndroid Build Coastguard Worker <tr class="entry_cont"> 383*b9df5ad1SAndroid Build Coastguard Worker <td class="entry_details" colspan="6"> 384*b9df5ad1SAndroid Build Coastguard Worker ${prop.hal_details | md_html, linkify_tags(metadata), wbr} 385*b9df5ad1SAndroid Build Coastguard Worker </td> 386*b9df5ad1SAndroid Build Coastguard Worker </tr> 387*b9df5ad1SAndroid Build Coastguard Worker % endif 388*b9df5ad1SAndroid Build Coastguard Worker 389*b9df5ad1SAndroid Build Coastguard Worker <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr> 390*b9df5ad1SAndroid Build Coastguard Worker <!-- end of entry --> 391*b9df5ad1SAndroid Build Coastguard Worker </%def> 392*b9df5ad1SAndroid Build Coastguard Worker 393*b9df5ad1SAndroid Build Coastguard Worker ${insert_body(kind)} 394*b9df5ad1SAndroid Build Coastguard Worker 395*b9df5ad1SAndroid Build Coastguard Worker <!-- end of kind --> 396*b9df5ad1SAndroid Build Coastguard Worker </tbody> 397*b9df5ad1SAndroid Build Coastguard Worker % endfor # for each kind 398*b9df5ad1SAndroid Build Coastguard Worker 399*b9df5ad1SAndroid Build Coastguard Worker <!-- end of section --> 400*b9df5ad1SAndroid Build Coastguard Worker % endfor 401*b9df5ad1SAndroid Build Coastguard Worker<!-- </namespace> --> 402*b9df5ad1SAndroid Build Coastguard Worker% endfor 403*b9df5ad1SAndroid Build Coastguard Worker </table> 404*b9df5ad1SAndroid Build Coastguard Worker 405*b9df5ad1SAndroid Build Coastguard Worker <div class="tags" id="tag_index"> 406*b9df5ad1SAndroid Build Coastguard Worker <h2>Tags</h2> 407*b9df5ad1SAndroid Build Coastguard Worker <ul> 408*b9df5ad1SAndroid Build Coastguard Worker % for tag in metadata.tags: 409*b9df5ad1SAndroid Build Coastguard Worker <li id="tag_${tag.id}">${tag.id} - ${tag.description} 410*b9df5ad1SAndroid Build Coastguard Worker <ul class="tags_entries"> 411*b9df5ad1SAndroid Build Coastguard Worker % for prop in tag.entries: 412*b9df5ad1SAndroid Build Coastguard Worker <li>${html_anchor(prop)} (${prop.kind})</li> 413*b9df5ad1SAndroid Build Coastguard Worker % endfor 414*b9df5ad1SAndroid Build Coastguard Worker </ul> 415*b9df5ad1SAndroid Build Coastguard Worker </li> <!-- tag_${tag.id} --> 416*b9df5ad1SAndroid Build Coastguard Worker % endfor 417*b9df5ad1SAndroid Build Coastguard Worker </ul> 418*b9df5ad1SAndroid Build Coastguard Worker </div> 419*b9df5ad1SAndroid Build Coastguard Worker 420*b9df5ad1SAndroid Build Coastguard Worker [ <a href="#">top</a> ] 421*b9df5ad1SAndroid Build Coastguard Worker 422*b9df5ad1SAndroid Build Coastguard Worker</body> 423*b9df5ad1SAndroid Build Coastguard Worker</html> 424