1<%
2    def parameters():
3        return ",\n            ".\
4            join([ parameter(p) for p in signal.properties ])
5
6    def parameter(p):
7        r = "%s %s%s" % \
8            (p.cppTypeParam(interface.name), p.camelCase, default_value(p))
9        return r
10
11    def parameters_as_list():
12        return ", ".join([ p.camelCase for p in signal.properties ])
13
14    def default_value(p):
15        if p.defaultValue != None:
16            return " = " + str(p.defaultValue)
17        else:
18            return ""
19%>\
20    /** @brief Send signal '${signal.name}'
21     *
22     *  ${ signal.description.strip() }
23% if len(signal.properties) != 0:
24     *
25    % for p in signal.properties:
26     *  @param[in] ${p.camelCase} - ${p.description.strip()}
27    % endfor
28% endif
29     *
30     */
31    void ${signal.camelCase}(${parameters()})
32    {
33        auto m = _${interface.joinedName("_", "interface")}
34                     .new_signal(\
35"${signal.name}");
36
37        m.append(${parameters_as_list()});
38        m.signal_send();
39    }
40