//* Copyright 2017 The NXT Authors //* //* Licensed under the Apache License, Version 2.0 (the "License"); //* you may not use this file except in compliance with the License. //* You may obtain a copy of the License at //* //* http://www.apache.org/licenses/LICENSE-2.0 //* //* Unless required by applicable law or agreed to in writing, software //* distributed under the License is distributed on an "AS IS" BASIS, //* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. //* See the License for the specific language governing permissions and //* limitations under the License. typedef unsigned long uint32_t; {% macro idlType(type) -%} {%- if type.category == "object" -%} NXT{{type.name.CamelCase()}} {%- else -%} {{as_cType(type.name)}} {%- endif -%} {%- endmacro %} interface {{as_idlType(type.name)}} { {% if type.name.canonical_case() == "device" %} {% for type in by_category["enum"] + by_category["bitmask"] %} {% for value in type.values %} const uint32_t {{type.name.SNAKE_CASE()}}_{{value.name.SNAKE_CASE()}} = 0x{{format(value.value, "08X")}}; {% endfor %} {% endfor %} {% endif %} {% for method in type.methods %} {% if method.return_type.name.concatcase() == "void" %} {{as_idlType(type.name)}} {%- else %} {{as_idlType(method.return_type.name)}} {%- endif -%} {{" "}}{{method.name.camelCase()}}( {%- for arg in method.arguments -%} {%- if not loop.first %}, {% endif -%} {%- if arg.annotation == "value" -%} {{as_idlType(arg.type.name)}} {{as_varName(arg.name)}} {%- elif arg.annotation == "const*" and arg.length == "strlen" -%} String {{as_varName(arg.name)}} {%- else -%} {{as_idlType(arg.type.name)}}[] {{as_varName(arg.name)}} {%- endif -%} {%- endfor -%} ); {% endfor %} };