| {# Copyright 2013 The Chromium Authors. All rights reserved. |
| Use of this source code is governed by a BSD-style license that can be |
| found in the LICENSE file. -#} |
| |
| {% extends "base.template" %} |
| |
| {% macro optional_array_struct(type) %} |
| {%- if type | needs_optional_array %} |
| struct {{ type | ppapi_type(array=True, optional=True) }} { |
| {{ type | ppapi_type(array=True) }} value; |
| PP_Bool is_set; |
| }; |
| {% endif -%} |
| {% endmacro %} |
| |
| {% macro array_struct(type) %} |
| {%- if type | needs_array %} |
| struct {{ type | ppapi_type(array=True) }} { |
| uint32_t size; |
| [size_is(size)] {{ type | ppapi_type }}[] elements; |
| }; |
| {% endif -%} |
| {% endmacro %} |
| |
| {% macro optional_struct(type) %} |
| {%- if type | needs_optional %} |
| struct {{ type | ppapi_type(optional=True) }} { |
| {{ type | ppapi_type }} value; |
| PP_Bool is_set; |
| }; |
| {% endif -%} |
| {% endmacro %} |
| |
| {% block content -%} |
| {# TODO(sammc): Generate version information. -#} |
| label Chrome { |
| [channel=dev] M33 = 0.1 |
| }; |
| {% for type in enums %} |
| enum {{ type | ppapi_type }} { |
| {%- for value in type.enum_values %} |
| {{ value | enum_value(type) }}{% if not loop.last %},{% endif %} |
| {%- endfor %} |
| }; |
| {{ optional_struct(type) -}} |
| {{ array_struct(type) -}} |
| {{ optional_array_struct(type) -}} |
| {%- endfor %} |
| {%- for type in types %} |
| struct {{ type | ppapi_type }} { |
| {%- for member in type.properties.itervalues() %} |
| {{ member | format_param_type }} {{ member.unix_name}}; |
| {%- endfor %} |
| }; |
| {{ optional_struct(type) -}} |
| {{ array_struct(type) -}} |
| {{ optional_array_struct(type) -}} |
| {% endfor %} |
| {%- for event in events.itervalues() %} |
| typedef void {{ event | ppapi_type }}( |
| [in] uint32_t listener_id, |
| [inout] mem_t user_data{% if event.params %},{% endif %} |
| {%- for param in event.params %} |
| [in] {{ param | format_param_type }} {{ param.unix_name }} |
| {%- if not loop.last %},{% endif %} |
| {%- endfor -%} |
| ); |
| {% endfor %} |
| interface PPB_{{ name | classname }} { |
| {% for function in functions.itervalues() %} |
| {{ function | return_type }} {{ function.name | classname }}( |
| [in] PP_Instance instance |
| {%- if function.params or function.callback or function.returns %}, |
| {%- endif %} |
| {%- for param in function.params %} |
| [in] {{ param | format_param_type }} {{ param.unix_name }} |
| {%- if not loop.last or function.callback or function.returns %}, |
| {%- endif %} |
| {%- endfor -%} |
| {%- if function.returns %} |
| [out] {{ function.returns | ppapi_type }} result, |
| {%- endif %} |
| {%- for param in function.callback.params %} |
| [out] {{ param | format_param_type }} {{ param.unix_name }}, |
| {%- endfor %} |
| {%- if function.callback or function.returns %} |
| {%- if function | has_array_outs %} |
| [in] PP_ArrayOutput array_allocator, |
| {%- endif %} |
| [in] PP_CompletionCallback callback |
| {%- endif -%} |
| ); |
| {% endfor -%} |
| {% for event in events.itervalues() %} |
| uint32_t Add{{ event.name | classname }}Listener ( |
| [in] PP_Instance instance, |
| [in] {{ event | ppapi_type }} callback, |
| [inout] mem_t user_data); |
| {% endfor %} |
| }; |
| {% endblock %} |