summaryrefslogtreecommitdiffstats
path: root/swaybar/ipc.c
diff options
context:
space:
mode:
authorLibravatar Mikkel Oscar Lyderik <mikkeloscar@gmail.com>2016-01-24 02:34:20 +0100
committerLibravatar Mikkel Oscar Lyderik <mikkeloscar@gmail.com>2016-01-24 14:22:19 +0100
commitaa6ad09183d623647bc8fd5315721bd8b196cafa (patch)
treebeab8b4222dd5a5a97394a9da0b8704f1b6e5df8 /swaybar/ipc.c
parentswaybar: move core functionality to state.c (diff)
downloadsway-aa6ad09183d623647bc8fd5315721bd8b196cafa.tar.gz
sway-aa6ad09183d623647bc8fd5315721bd8b196cafa.tar.zst
sway-aa6ad09183d623647bc8fd5315721bd8b196cafa.zip
swaybar: rename state to bar
Diffstat (limited to 'swaybar/ipc.c')
-rw-r--r--swaybar/ipc.c46
1 files changed, 23 insertions, 23 deletions
diff --git a/swaybar/ipc.c b/swaybar/ipc.c
index 884d02ff..547041ce 100644
--- a/swaybar/ipc.c
+++ b/swaybar/ipc.c
@@ -7,14 +7,14 @@
7#include "config.h" 7#include "config.h"
8#include "ipc.h" 8#include "ipc.h"
9 9
10static void ipc_parse_config(struct swaybar_config *config, const char *payload) { 10static void ipc_parse_config(struct config *config, const char *payload) {
11 json_object *bar_config = json_tokener_parse(payload); 11 json_object *bar_config = json_tokener_parse(payload);
12 json_object *tray_output, *mode, *hidden_state, *position, *status_command; 12 json_object *tray_output, *mode, *hidden_bar, *position, *status_command;
13 json_object *font, *bar_height, *workspace_buttons, *strip_workspace_numbers; 13 json_object *font, *bar_height, *workspace_buttons, *strip_workspace_numbers;
14 json_object *binding_mode_indicator, *verbose, *colors, *sep_symbol; 14 json_object *binding_mode_indicator, *verbose, *colors, *sep_symbol;
15 json_object_object_get_ex(bar_config, "tray_output", &tray_output); 15 json_object_object_get_ex(bar_config, "tray_output", &tray_output);
16 json_object_object_get_ex(bar_config, "mode", &mode); 16 json_object_object_get_ex(bar_config, "mode", &mode);
17 json_object_object_get_ex(bar_config, "hidden_state", &hidden_state); 17 json_object_object_get_ex(bar_config, "hidden_bar", &hidden_bar);
18 json_object_object_get_ex(bar_config, "position", &position); 18 json_object_object_get_ex(bar_config, "position", &position);
19 json_object_object_get_ex(bar_config, "status_command", &status_command); 19 json_object_object_get_ex(bar_config, "status_command", &status_command);
20 json_object_object_get_ex(bar_config, "font", &font); 20 json_object_object_get_ex(bar_config, "font", &font);
@@ -150,14 +150,14 @@ static void ipc_parse_config(struct swaybar_config *config, const char *payload)
150 json_object_put(bar_config); 150 json_object_put(bar_config);
151} 151}
152 152
153static void ipc_update_workspaces(struct swaybar_state *state) { 153static void ipc_update_workspaces(struct bar *bar) {
154 if (state->output->workspaces) { 154 if (bar->output->workspaces) {
155 free_workspaces(state->output->workspaces); 155 free_workspaces(bar->output->workspaces);
156 } 156 }
157 state->output->workspaces = create_list(); 157 bar->output->workspaces = create_list();
158 158
159 uint32_t len = 0; 159 uint32_t len = 0;
160 char *res = ipc_single_command(state->ipc_socketfd, IPC_GET_WORKSPACES, NULL, &len); 160 char *res = ipc_single_command(bar->ipc_socketfd, IPC_GET_WORKSPACES, NULL, &len);
161 json_object *results = json_tokener_parse(res); 161 json_object *results = json_tokener_parse(res);
162 if (!results) { 162 if (!results) {
163 free(res); 163 free(res);
@@ -178,14 +178,14 @@ static void ipc_update_workspaces(struct swaybar_state *state) {
178 json_object_object_get_ex(ws_json, "output", &out); 178 json_object_object_get_ex(ws_json, "output", &out);
179 json_object_object_get_ex(ws_json, "urgent", &urgent); 179 json_object_object_get_ex(ws_json, "urgent", &urgent);
180 180
181 if (strcmp(json_object_get_string(out), state->output->name) == 0) { 181 if (strcmp(json_object_get_string(out), bar->output->name) == 0) {
182 struct workspace *ws = malloc(sizeof(struct workspace)); 182 struct workspace *ws = malloc(sizeof(struct workspace));
183 ws->num = json_object_get_int(num); 183 ws->num = json_object_get_int(num);
184 ws->name = strdup(json_object_get_string(name)); 184 ws->name = strdup(json_object_get_string(name));
185 ws->visible = json_object_get_boolean(visible); 185 ws->visible = json_object_get_boolean(visible);
186 ws->focused = json_object_get_boolean(focused); 186 ws->focused = json_object_get_boolean(focused);
187 ws->urgent = json_object_get_boolean(urgent); 187 ws->urgent = json_object_get_boolean(urgent);
188 list_add(state->output->workspaces, ws); 188 list_add(bar->output->workspaces, ws);
189 } 189 }
190 } 190 }
191 191
@@ -193,36 +193,36 @@ static void ipc_update_workspaces(struct swaybar_state *state) {
193 free(res); 193 free(res);
194} 194}
195 195
196void ipc_bar_init(struct swaybar_state *state, int outputi, const char *bar_id) { 196void ipc_bar_init(struct bar *bar, int outputi, const char *bar_id) {
197 uint32_t len = 0; 197 uint32_t len = 0;
198 char *res = ipc_single_command(state->ipc_socketfd, IPC_GET_OUTPUTS, NULL, &len); 198 char *res = ipc_single_command(bar->ipc_socketfd, IPC_GET_OUTPUTS, NULL, &len);
199 json_object *outputs = json_tokener_parse(res); 199 json_object *outputs = json_tokener_parse(res);
200 json_object *info = json_object_array_get_idx(outputs, outputi); 200 json_object *info = json_object_array_get_idx(outputs, outputi);
201 json_object *name; 201 json_object *name;
202 json_object_object_get_ex(info, "name", &name); 202 json_object_object_get_ex(info, "name", &name);
203 state->output->name = strdup(json_object_get_string(name)); 203 bar->output->name = strdup(json_object_get_string(name));
204 free(res); 204 free(res);
205 json_object_put(outputs); 205 json_object_put(outputs);
206 206
207 len = strlen(bar_id); 207 len = strlen(bar_id);
208 res = ipc_single_command(state->ipc_socketfd, IPC_GET_BAR_CONFIG, bar_id, &len); 208 res = ipc_single_command(bar->ipc_socketfd, IPC_GET_BAR_CONFIG, bar_id, &len);
209 209
210 ipc_parse_config(state->config, res); 210 ipc_parse_config(bar->config, res);
211 free(res); 211 free(res);
212 212
213 const char *subscribe_json = "[ \"workspace\", \"mode\" ]"; 213 const char *subscribe_json = "[ \"workspace\", \"mode\" ]";
214 len = strlen(subscribe_json); 214 len = strlen(subscribe_json);
215 res = ipc_single_command(state->ipc_event_socketfd, IPC_SUBSCRIBE, subscribe_json, &len); 215 res = ipc_single_command(bar->ipc_event_socketfd, IPC_SUBSCRIBE, subscribe_json, &len);
216 free(res); 216 free(res);
217 217
218 ipc_update_workspaces(state); 218 ipc_update_workspaces(bar);
219} 219}
220 220
221bool handle_ipc_event(struct swaybar_state *state) { 221bool handle_ipc_event(struct bar *bar) {
222 struct ipc_response *resp = ipc_recv_response(state->ipc_event_socketfd); 222 struct ipc_response *resp = ipc_recv_response(bar->ipc_event_socketfd);
223 switch (resp->type) { 223 switch (resp->type) {
224 case IPC_EVENT_WORKSPACE: 224 case IPC_EVENT_WORKSPACE:
225 ipc_update_workspaces(state); 225 ipc_update_workspaces(bar);
226 break; 226 break;
227 case IPC_EVENT_MODE: { 227 case IPC_EVENT_MODE: {
228 json_object *result = json_tokener_parse(resp->payload); 228 json_object *result = json_tokener_parse(resp->payload);
@@ -235,11 +235,11 @@ bool handle_ipc_event(struct swaybar_state *state) {
235 if (json_object_object_get_ex(result, "change", &json_change)) { 235 if (json_object_object_get_ex(result, "change", &json_change)) {
236 const char *change = json_object_get_string(json_change); 236 const char *change = json_object_get_string(json_change);
237 237
238 free(state->config->mode); 238 free(bar->config->mode);
239 if (strcmp(change, "default") == 0) { 239 if (strcmp(change, "default") == 0) {
240 state->config->mode = NULL; 240 bar->config->mode = NULL;
241 } else { 241 } else {
242 state->config->mode = strdup(change); 242 bar->config->mode = strdup(change);
243 } 243 }
244 } else { 244 } else {
245 sway_log(L_ERROR, "failed to parse response"); 245 sway_log(L_ERROR, "failed to parse response");