mirror of
https://github.com/hyprwm/xdg-desktop-portal-hyprland.git
synced 2024-11-24 15:15:58 +01:00
Use sd_bus_message_append shorthand for screenshot
This commit is contained in:
parent
74ee43cf37
commit
df2ee009e1
2 changed files with 9 additions and 43 deletions
|
@ -8,6 +8,12 @@ struct xdpw_request {
|
||||||
sd_bus_slot *slot;
|
sd_bus_slot *slot;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum {
|
||||||
|
PORTAL_RESPONSE_SUCCESS = 0,
|
||||||
|
PORTAL_RESPONSE_CANCELLED = 1,
|
||||||
|
PORTAL_RESPONSE_ENDED = 2
|
||||||
|
};
|
||||||
|
|
||||||
int init_screenshot(sd_bus *bus);
|
int init_screenshot(sd_bus *bus);
|
||||||
|
|
||||||
struct xdpw_request *request_create(sd_bus *bus, const char *object_path);
|
struct xdpw_request *request_create(sd_bus *bus, const char *object_path);
|
||||||
|
|
46
screenshot.c
46
screenshot.c
|
@ -54,37 +54,6 @@ static int method_screenshot(sd_bus_message *msg, void *data,
|
||||||
return -ENOMEM;
|
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
|
// TODO: choose a better path
|
||||||
const char path[] = "/tmp/out.png";
|
const char path[] = "/tmp/out.png";
|
||||||
if (!exec_screenshooter(path)) {
|
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];
|
char uri[strlen(path) + strlen(uri_prefix) + 1];
|
||||||
snprintf(uri, sizeof(uri), "%s%s", uri_prefix, path);
|
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) {
|
if (ret < 0) {
|
||||||
return ret;
|
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;
|
|
||||||
}
|
|
||||||
|
|
||||||
ret = sd_bus_message_close_container(reply);
|
|
||||||
if (ret < 0) {
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
ret = sd_bus_message_close_container(reply);
|
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue