summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorLibravatar Drew DeVault <sir@cmpwn.com>2016-01-03 15:37:35 -0500
committerLibravatar Drew DeVault <sir@cmpwn.com>2016-01-03 15:37:35 -0500
commitf2d519d0bac03b9d69221d3c6c59feb39b9ccf4f (patch)
treed05543b4061aa883248ffbcc4bede68ab7bba1c7 /include
parentMerge pull request #425 from mikkeloscar/bar-strip-ws-num (diff)
parentAdd type to returned response. (diff)
downloadsway-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.h19
-rw-r--r--include/ipc.h7
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 */
10struct 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 */
9char *get_socketpath(void); 19char *get_socketpath(void);
@@ -17,9 +27,12 @@ int ipc_open_socket(const char *socket_path);
17 */ 27 */
18char *ipc_single_command(int socketfd, uint32_t type, const char *payload, uint32_t *len); 28char *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 */
32struct ipc_response *ipc_recv_response(int socketfd);
33/**
34 * Free ipc_response struct
22 */ 35 */
23char *ipc_recv_response(int socketfd, uint32_t *len); 36void 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