• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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