From 8c587d6defaf73c1ddbe50d88f6fdd7360b63507 Mon Sep 17 00:00:00 2001 From: Marcus Fritzsch Date: Fri, 7 Jul 2017 14:32:25 +0200 Subject: [PATCH] main: imeplemented dummy register_surface with reply Signed-off-by: Marcus Fritzsch --- src/main.cpp | 39 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/src/main.cpp b/src/main.cpp index 4adf2f8..ba0ff4e 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -227,6 +227,41 @@ void debug_layers(afb_req req) { afb_req_success(req, to_json(g_wayland->controller->layers), "layers"); } +// Dummy register_surface implementation +void register_surface(afb_req req) { + AFB_DEBUG("register_surface"); + + auto jo = afb_req_json(req); + json_object *jappid; + if (! json_object_object_get_ex(jo, "appid", &jappid)) { + afb_req_fail(req, "failed", "register_surface needs 'appid' integer argument"); + return; + } + + json_object *jsurfid; + if (! json_object_object_get_ex(jo, "surfaceid", &jsurfid)) { + afb_req_fail(req, "failed", "register_surface needs 'surfaceid' integer argument"); + return; + } + + int32_t appid = json_object_get_int(jappid); + int32_t surfid = json_object_get_int(jsurfid); + + if (appid < 0 || appid > 0xff) { + afb_req_fail(req, "failed", "invalid appid"); + return; + } + + if (surfid < 0 || surfid > 0xffff) { + afb_req_fail(req, "failed", "invalid surfaceid"); + return; + } + + lognotice("register_surface, got appid %d and surfaceid %d", appid, surfid); + + afb_req_success(req, json_object_new_int((appid << 16) + surfid), "success"); +} + #define WRAP(F) \ [](afb_req req) noexcept { \ if (g_wayland == nullptr) { \ @@ -245,7 +280,9 @@ const struct afb_verb_v2 verbs[] = { {"debug::status", WRAP(debug_status), NULL, NULL, AFB_SESSION_NONE_V2}, {"debug::layers", WRAP(debug_layers), NULL, NULL, AFB_SESSION_NONE_V2}, {"debug::surfaces", WRAP(debug_surfaces), NULL, NULL, AFB_SESSION_NONE_V2}, - {}, + + {"register_surface", WRAP(register_surface), NULL, NULL, AFB_SESSION_NONE_V2}, + {} }; } // namespace -- 2.16.6