emplates\generators\ipc\utils - libcamera/jmondi/libcamera.git - Jacopo Mondi's clone of libcamera
summaryrefslogtreecommitdiff
path: root/utils/ipc/generators/libcamera_templates/definition_functions.tmpl
blob: cdd75f89e3844af689ff19b48874b35e1309e892 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
{#-
 # SPDX-License-Identifier: LGPL-2.1-or-later
 # Copyright (C) 2020, Google Inc.
-#}

{#
 # \brief Generate enum definition
 #
 # \param enum Enum object whose definition is to be generated
 #}
{%- macro define_enum(enum) -%}
enum {{enum.mojom_name}} {
{%- for field in enum.fields %}
	{{field.mojom_name}} = {{field.numeric_value}},
{%- endfor %}
};
{%- endmacro -%}

{#
 # \brief Generate struct definition
 #
 # \param struct Struct object whose definition is to be generated
 #}
{%- macro define_struct(struct) -%}
struct {{struct.mojom_name}}
{
public:
	{{struct.mojom_name}}() {%- if struct|has_default_fields %}
		:{% endif %}
{%- for field in struct.fields|with_default_values -%}
{{" " if loop.first}}{{field.mojom_name}}({{field|default_value}}){{", " if not loop.last}}
{%- endfor %}
	{
	}

	{{struct.mojom_name}}(
{%- for field in struct.fields -%}
{{"const " if not field|is_pod}}{{field|name}} {{"&" if not field|is_pod}}_{{field.mojom_name}}{{", " if not loop.last}}
{%- endfor -%}
)
		:
{%- for field in struct.fields -%}
{{" " if loop.first}}{{field.mojom_name}}(_{{field.mojom_name}}){{", " if not loop.last}}
{%- endfor %}
	{
	}
{% for field in struct.fields %}
	{{field|name}} {{field.mojom_name}};
{%- endfor %}
};
{%- endmacro -%}