From df2ee009e10b146f58fd517b9a7ebab45e0f1c1b Mon Sep 17 00:00:00 2001 From: James Edwards-Jones Date: Wed, 24 Jul 2019 15:59:40 +0100 Subject: [PATCH] Use sd_bus_message_append shorthand for screenshot --- include/xdpw.h | 6 ++++++ screenshot.c | 46 +++------------------------------------------- 2 files changed, 9 insertions(+), 43 deletions(-) diff --git a/include/xdpw.h b/include/xdpw.h index c5b5512..54c290a 100644 --- a/include/xdpw.h +++ b/include/xdpw.h @@ -8,6 +8,12 @@ struct xdpw_request { sd_bus_slot *slot; }; +enum { + PORTAL_RESPONSE_SUCCESS = 0, + PORTAL_RESPONSE_CANCELLED = 1, + PORTAL_RESPONSE_ENDED = 2 +}; + int init_screenshot(sd_bus *bus); struct xdpw_request *request_create(sd_bus *bus, const char *object_path); diff --git a/screenshot.c b/screenshot.c index e6d620a..22bfdcc 100644 --- a/screenshot.c +++ b/screenshot.c @@ -54,37 +54,6 @@ static int method_screenshot(sd_bus_message *msg, void *data, return -ENOMEM; } - sd_bus_message *reply = NULL; - ret = sd_bus_message_new_method_return(msg, &reply); - if (ret < 0) { - return ret; - } - - ret = sd_bus_message_append(reply, "u", 0); - if (ret < 0) { - return ret; - } - - ret = sd_bus_message_open_container(reply, 'a', "{sv}"); - if (ret < 0) { - return ret; - } - - ret = sd_bus_message_open_container(reply, 'e', "sv"); - if (ret < 0) { - return ret; - } - - ret = sd_bus_message_append_basic(reply, 's', "uri"); - if (ret < 0) { - return ret; - } - - ret = sd_bus_message_open_container(reply, 'v', "s"); - if (ret < 0) { - return ret; - } - // TODO: choose a better path const char path[] = "/tmp/out.png"; if (!exec_screenshooter(path)) { @@ -95,22 +64,13 @@ static int method_screenshot(sd_bus_message *msg, void *data, char uri[strlen(path) + strlen(uri_prefix) + 1]; snprintf(uri, sizeof(uri), "%s%s", uri_prefix, path); - ret = sd_bus_message_append_basic(reply, 's', uri); + sd_bus_message *reply = NULL; + ret = sd_bus_message_new_method_return(msg, &reply); if (ret < 0) { return ret; } - ret = sd_bus_message_close_container(reply); - if (ret < 0) { - return ret; - } - - ret = sd_bus_message_close_container(reply); - if (ret < 0) { - return ret; - } - - ret = sd_bus_message_close_container(reply); + ret = sd_bus_message_append(reply, "ua{sv}", PORTAL_RESPONSE_SUCCESS, 1, "uri", "s", uri); if (ret < 0) { return ret; }