From: Marcus Fritzsch Date: Fri, 7 Jul 2017 12:32:25 +0000 (+0200) Subject: main: imeplemented dummy register_surface with reply X-Git-Tag: 4.99.1~255 X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=commitdiff_plain;h=8c587d6defaf73c1ddbe50d88f6fdd7360b63507;p=staging%2Fwindowmanager.git main: imeplemented dummy register_surface with reply Signed-off-by: Marcus Fritzsch --- 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