def emit_func(api, f):
p('void %(impl_name)s(afb_req req) noexcept {' % f)
+ p(' std::lock_guard<std::mutex> guard(binding_m);')
p(' if (g_afb_instance == nullptr) {',
' afb_req_fail(req, "failed", "Binding not initialized, did the compositor die?");',
' return;',
p('struct binding_api {')
p(' typedef wm::result<json_object *> result_type;')
p(' struct wm::App *app;')
+ p(' void send_event(char const *evname, char const *label);')
for f in api['functions']:
p(' result_type %(name)s(' % f + ', '.join(map(lambda x: '%(type)s %(name)s' % x, f.get('args', []))) + ');')
p('};', '')
{ 'name': 'drawing_name', 'type': 'char const*', 'jtype': 'string' },
],
},
+ {
+ 'name': 'deactivate_surface',
+ 'args': [
+ { 'name': 'drawing_name', 'type': 'char const*', 'jtype': 'string' },
+ ],
+ },
+ {
+ 'name': 'enddraw',
+ 'args': [
+ { 'name': 'drawing_name', 'type': 'char const*', 'jtype': 'string' },
+ ],
+ },
{ 'name': 'list_drawing_names', },
{
'name': 'demo_activate_surface',
'args': [ { 'name': 'surfaceid', 'type': 'uint32_t', 'jtype': 'int' } ]
},
+
{ 'name': 'demo_activate_all' },
+
{ 'name': 'debug_status', },
{ 'name': 'debug_layers', },
{ 'name': 'debug_surfaces', },