diff options
-rw-r--r-- | sway/ipc-json.c | 62 |
1 files changed, 32 insertions, 30 deletions
diff --git a/sway/ipc-json.c b/sway/ipc-json.c index 8357ae04..06121d62 100644 --- a/sway/ipc-json.c +++ b/sway/ipc-json.c | |||
@@ -245,20 +245,42 @@ static json_object *ipc_json_create_node(int id, const char* type, char *name, | |||
245 | static void ipc_json_describe_output(struct sway_output *output, | 245 | static void ipc_json_describe_output(struct sway_output *output, |
246 | json_object *object) { | 246 | json_object *object) { |
247 | struct wlr_output *wlr_output = output->wlr_output; | 247 | struct wlr_output *wlr_output = output->wlr_output; |
248 | json_object_object_add(object, "active", json_object_new_boolean(true)); | 248 | |
249 | json_object_object_add(object, "dpms", | ||
250 | json_object_new_boolean(wlr_output->enabled)); | ||
251 | json_object_object_add(object, "primary", json_object_new_boolean(false)); | 249 | json_object_object_add(object, "primary", json_object_new_boolean(false)); |
252 | json_object_object_add(object, "layout", json_object_new_string("output")); | ||
253 | json_object_object_add(object, "orientation", | ||
254 | json_object_new_string( | ||
255 | ipc_json_orientation_description(L_NONE))); | ||
256 | json_object_object_add(object, "make", | 250 | json_object_object_add(object, "make", |
257 | json_object_new_string(wlr_output->make)); | 251 | json_object_new_string(wlr_output->make)); |
258 | json_object_object_add(object, "model", | 252 | json_object_object_add(object, "model", |
259 | json_object_new_string(wlr_output->model)); | 253 | json_object_new_string(wlr_output->model)); |
260 | json_object_object_add(object, "serial", | 254 | json_object_object_add(object, "serial", |
261 | json_object_new_string(wlr_output->serial)); | 255 | json_object_new_string(wlr_output->serial)); |
256 | |||
257 | json_object *modes_array = json_object_new_array(); | ||
258 | struct wlr_output_mode *mode; | ||
259 | wl_list_for_each(mode, &wlr_output->modes, link) { | ||
260 | json_object *mode_object = json_object_new_object(); | ||
261 | json_object_object_add(mode_object, "width", | ||
262 | json_object_new_int(mode->width)); | ||
263 | json_object_object_add(mode_object, "height", | ||
264 | json_object_new_int(mode->height)); | ||
265 | json_object_object_add(mode_object, "refresh", | ||
266 | json_object_new_int(mode->refresh)); | ||
267 | json_object_array_add(modes_array, mode_object); | ||
268 | } | ||
269 | json_object_object_add(object, "modes", modes_array); | ||
270 | } | ||
271 | |||
272 | static void ipc_json_describe_enabled_output(struct sway_output *output, | ||
273 | json_object *object) { | ||
274 | ipc_json_describe_output(output, object); | ||
275 | |||
276 | struct wlr_output *wlr_output = output->wlr_output; | ||
277 | json_object_object_add(object, "active", json_object_new_boolean(true)); | ||
278 | json_object_object_add(object, "dpms", | ||
279 | json_object_new_boolean(wlr_output->enabled)); | ||
280 | json_object_object_add(object, "layout", json_object_new_string("output")); | ||
281 | json_object_object_add(object, "orientation", | ||
282 | json_object_new_string( | ||
283 | ipc_json_orientation_description(L_NONE))); | ||
262 | json_object_object_add(object, "scale", | 284 | json_object_object_add(object, "scale", |
263 | json_object_new_double(wlr_output->scale)); | 285 | json_object_new_double(wlr_output->scale)); |
264 | json_object_object_add(object, "scale_filter", | 286 | json_object_object_add(object, "scale_filter", |
@@ -325,33 +347,13 @@ json_object *ipc_json_describe_disabled_output(struct sway_output *output) { | |||
325 | 347 | ||
326 | json_object *object = json_object_new_object(); | 348 | json_object *object = json_object_new_object(); |
327 | 349 | ||
350 | ipc_json_describe_output(output, object); | ||
351 | |||
328 | json_object_object_add(object, "type", json_object_new_string("output")); | 352 | json_object_object_add(object, "type", json_object_new_string("output")); |
329 | json_object_object_add(object, "name", | 353 | json_object_object_add(object, "name", |
330 | json_object_new_string(wlr_output->name)); | 354 | json_object_new_string(wlr_output->name)); |
331 | json_object_object_add(object, "active", json_object_new_boolean(false)); | 355 | json_object_object_add(object, "active", json_object_new_boolean(false)); |
332 | json_object_object_add(object, "dpms", json_object_new_boolean(false)); | 356 | json_object_object_add(object, "dpms", json_object_new_boolean(false)); |
333 | json_object_object_add(object, "primary", json_object_new_boolean(false)); | ||
334 | json_object_object_add(object, "make", | ||
335 | json_object_new_string(wlr_output->make)); | ||
336 | json_object_object_add(object, "model", | ||
337 | json_object_new_string(wlr_output->model)); | ||
338 | json_object_object_add(object, "serial", | ||
339 | json_object_new_string(wlr_output->serial)); | ||
340 | |||
341 | json_object *modes_array = json_object_new_array(); | ||
342 | struct wlr_output_mode *mode; | ||
343 | wl_list_for_each(mode, &wlr_output->modes, link) { | ||
344 | json_object *mode_object = json_object_new_object(); | ||
345 | json_object_object_add(mode_object, "width", | ||
346 | json_object_new_int(mode->width)); | ||
347 | json_object_object_add(mode_object, "height", | ||
348 | json_object_new_int(mode->height)); | ||
349 | json_object_object_add(mode_object, "refresh", | ||
350 | json_object_new_int(mode->refresh)); | ||
351 | json_object_array_add(modes_array, mode_object); | ||
352 | } | ||
353 | |||
354 | json_object_object_add(object, "modes", modes_array); | ||
355 | 357 | ||
356 | json_object_object_add(object, "current_workspace", NULL); | 358 | json_object_object_add(object, "current_workspace", NULL); |
357 | 359 | ||
@@ -706,7 +708,7 @@ json_object *ipc_json_describe_node(struct sway_node *node) { | |||
706 | case N_ROOT: | 708 | case N_ROOT: |
707 | break; | 709 | break; |
708 | case N_OUTPUT: | 710 | case N_OUTPUT: |
709 | ipc_json_describe_output(node->sway_output, object); | 711 | ipc_json_describe_enabled_output(node->sway_output, object); |
710 | break; | 712 | break; |
711 | case N_CONTAINER: | 713 | case N_CONTAINER: |
712 | ipc_json_describe_container(node->sway_container, object); | 714 | ipc_json_describe_container(node->sway_container, object); |