1{# Copyright 2013 The Chromium Authors. All rights reserved. 2Use of this source code is governed by a BSD-style license that can be 3found in the LICENSE file. -#} 4 5{% extends "base.template" %} 6 7{% macro optional_array_struct(type) %} 8{%- if type | needs_optional_array %} 9struct {{ type | ppapi_type(array=True, optional=True) }} { 10 {{ type | ppapi_type(array=True) }} value; 11 PP_Bool is_set; 12}; 13{% endif -%} 14{% endmacro %} 15 16{% macro array_struct(type) %} 17{%- if type | needs_array %} 18struct {{ type | ppapi_type(array=True) }} { 19 uint32_t size; 20 [size_is(size)] {{ type | ppapi_type }}[] elements; 21}; 22{% endif -%} 23{% endmacro %} 24 25{% macro optional_struct(type) %} 26{%- if type | needs_optional %} 27struct {{ type | ppapi_type(optional=True) }} { 28 {{ type | ppapi_type }} value; 29 PP_Bool is_set; 30}; 31{% endif -%} 32{% endmacro %} 33 34{% block content -%} 35{# TODO(sammc): Generate version information. -#} 36label Chrome { 37 [channel=dev] M33 = 0.1 38}; 39{% for type in enums %} 40enum {{ type | ppapi_type }} { 41 {%- for value in type.enum_values %} 42 {{ value | enum_value(type) }}{% if not loop.last %},{% endif %} 43 {%- endfor %} 44}; 45{{ optional_struct(type) -}} 46{{ array_struct(type) -}} 47{{ optional_array_struct(type) -}} 48{%- endfor %} 49{%- for type in types %} 50struct {{ type | ppapi_type }} { 51 {%- for member in type.properties.itervalues() %} 52 {{ member | format_param_type }} {{ member.unix_name}}; 53 {%- endfor %} 54}; 55{{ optional_struct(type) -}} 56{{ array_struct(type) -}} 57{{ optional_array_struct(type) -}} 58{% endfor %} 59{%- for event in events.itervalues() %} 60typedef void {{ event | ppapi_type }}( 61 [in] uint32_t listener_id, 62 [inout] mem_t user_data{% if event.params %},{% endif %} 63 {%- for param in event.params %} 64 [in] {{ param | format_param_type }} {{ param.unix_name }} 65 {%- if not loop.last %},{% endif %} 66 {%- endfor -%} 67); 68{% endfor %} 69interface PPB_{{ name | classname }} { 70{% for function in functions.itervalues() %} 71 {{ function | return_type }} {{ function.name | classname }}( 72 [in] PP_Instance instance 73 {%- if function.params or function.callback or function.returns %}, 74 {%- endif %} 75 {%- for param in function.params %} 76 [in] {{ param | format_param_type }} {{ param.unix_name }} 77 {%- if not loop.last or function.callback or function.returns %}, 78 {%- endif %} 79 {%- endfor -%} 80 {%- if function.returns %} 81 [out] {{ function.returns | ppapi_type }} result, 82 {%- endif %} 83 {%- for param in function.callback.params %} 84 [out] {{ param | format_param_type }} {{ param.unix_name }}, 85 {%- endfor %} 86 {%- if function.callback or function.returns %} 87 {%- if function | has_array_outs %} 88 [in] PP_ArrayOutput array_allocator, 89 {%- endif %} 90 [in] PP_CompletionCallback callback 91 {%- endif -%} 92 ); 93{% endfor -%} 94{% for event in events.itervalues() %} 95 uint32_t Add{{ event.name | classname }}Listener ( 96 [in] PP_Instance instance, 97 [in] {{ event | ppapi_type }} callback, 98 [inout] mem_t user_data); 99{% endfor %} 100}; 101{% endblock %} 102