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 | 22592505b1c27df641d25d9e3c4e155eb71a6109 (diff) | |
parent | 7298a9c67aed2d7a5c5c1df55bfa6052cac04d51 (diff) |
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 @@ #include "ipc.h" /** + * IPC response including type of IPC response, size of payload and the json + * encoded payload string. + */ +struct ipc_response { + uint32_t size; + uint32_t type; + char *payload; +}; + +/** * Gets the path to the IPC socket from sway. */ char *get_socketpath(void); @@ -17,9 +27,12 @@ int ipc_open_socket(const char *socket_path); */ char *ipc_single_command(int socketfd, uint32_t type, const char *payload, uint32_t *len); /** - * Receives a single IPC resposne and returns the buffer. len will be updated - * with the length of the buffer returned from sway. + * Receives a single IPC response and returns an ipc_response. + */ +struct ipc_response *ipc_recv_response(int socketfd); +/** + * Free ipc_response struct */ -char *ipc_recv_response(int socketfd, uint32_t *len); +void free_ipc_response(struct ipc_response *response); #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 { IPC_GET_MARKS = 5, IPC_GET_BAR_CONFIG = 6, IPC_GET_VERSION = 7, + // Events send from sway to clients. Events have the higest bit set. + IPC_EVENT_WORKSPACE = (1 << 31 | 0), + IPC_EVENT_OUTPUT = (1 << 31 | 1), + IPC_EVENT_MODE = (1 << 31 | 2), + IPC_EVENT_WINDOW = (1 << 31 | 3), + IPC_EVENT_BARCONFIG_UPDATE = (1 << 31 | 4), + IPC_EVENT_BINDING = (1 << 31 | 5), IPC_SWAY_GET_PIXELS = 0x81 }; |