diff options
author | Drew DeVault <sir@cmpwn.com> | 2016-01-03 15:37:35 -0500 |
---|---|---|
committer | Drew DeVault <sir@cmpwn.com> | 2016-01-03 15:37:35 -0500 |
commit | f2d519d0bac03b9d69221d3c6c59feb39b9ccf4f (patch) | |
tree | d05543b4061aa883248ffbcc4bede68ab7bba1c7 /include | |
parent | Merge pull request #425 from mikkeloscar/bar-strip-ws-num (diff) | |
parent | Add type to returned response. (diff) | |
download | sway-f2d519d0bac03b9d69221d3c6c59feb39b9ccf4f.tar.gz sway-f2d519d0bac03b9d69221d3c6c59feb39b9ccf4f.tar.zst sway-f2d519d0bac03b9d69221d3c6c59feb39b9ccf4f.zip |
Merge pull request #427 from mikkeloscar/ipc-update
Refactor IPC server/client
Diffstat (limited to 'include')
-rw-r--r-- | include/ipc-client.h | 19 | ||||
-rw-r--r-- | include/ipc.h | 7 |
2 files changed, 23 insertions, 3 deletions
diff --git a/include/ipc-client.h b/include/ipc-client.h index a4cfd87f..030c80b6 100644 --- a/include/ipc-client.h +++ b/include/ipc-client.h | |||
@@ -4,6 +4,16 @@ | |||
4 | #include "ipc.h" | 4 | #include "ipc.h" |
5 | 5 | ||
6 | /** | 6 | /** |
7 | * IPC response including type of IPC response, size of payload and the json | ||
8 | * encoded payload string. | ||
9 | */ | ||
10 | struct ipc_response { | ||
11 | uint32_t size; | ||
12 | uint32_t type; | ||
13 | char *payload; | ||
14 | }; | ||
15 | |||
16 | /** | ||
7 | * Gets the path to the IPC socket from sway. | 17 | * Gets the path to the IPC socket from sway. |
8 | */ | 18 | */ |
9 | char *get_socketpath(void); | 19 | char *get_socketpath(void); |
@@ -17,9 +27,12 @@ int ipc_open_socket(const char *socket_path); | |||
17 | */ | 27 | */ |
18 | char *ipc_single_command(int socketfd, uint32_t type, const char *payload, uint32_t *len); | 28 | char *ipc_single_command(int socketfd, uint32_t type, const char *payload, uint32_t *len); |
19 | /** | 29 | /** |
20 | * Receives a single IPC resposne and returns the buffer. len will be updated | 30 | * Receives a single IPC response and returns an ipc_response. |
21 | * with the length of the buffer returned from sway. | 31 | */ |
32 | struct ipc_response *ipc_recv_response(int socketfd); | ||
33 | /** | ||
34 | * Free ipc_response struct | ||
22 | */ | 35 | */ |
23 | char *ipc_recv_response(int socketfd, uint32_t *len); | 36 | void free_ipc_response(struct ipc_response *response); |
24 | 37 | ||
25 | #endif | 38 | #endif |
diff --git a/include/ipc.h b/include/ipc.h index 75be58a6..e0b3b736 100644 --- a/include/ipc.h +++ b/include/ipc.h | |||
@@ -10,6 +10,13 @@ enum ipc_command_type { | |||
10 | IPC_GET_MARKS = 5, | 10 | IPC_GET_MARKS = 5, |
11 | IPC_GET_BAR_CONFIG = 6, | 11 | IPC_GET_BAR_CONFIG = 6, |
12 | IPC_GET_VERSION = 7, | 12 | IPC_GET_VERSION = 7, |
13 | // Events send from sway to clients. Events have the higest bit set. | ||
14 | IPC_EVENT_WORKSPACE = (1 << 31 | 0), | ||
15 | IPC_EVENT_OUTPUT = (1 << 31 | 1), | ||
16 | IPC_EVENT_MODE = (1 << 31 | 2), | ||
17 | IPC_EVENT_WINDOW = (1 << 31 | 3), | ||
18 | IPC_EVENT_BARCONFIG_UPDATE = (1 << 31 | 4), | ||
19 | IPC_EVENT_BINDING = (1 << 31 | 5), | ||
13 | IPC_SWAY_GET_PIXELS = 0x81 | 20 | IPC_SWAY_GET_PIXELS = 0x81 |
14 | }; | 21 | }; |
15 | 22 | ||