aboutsummaryrefslogtreecommitdiff
path: root/include/swaybar/status_line.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/swaybar/status_line.h')
-rw-r--r--include/swaybar/status_line.h32
1 files changed, 8 insertions, 24 deletions
diff --git a/include/swaybar/status_line.h b/include/swaybar/status_line.h
index 150267cd..d3eabdf6 100644
--- a/include/swaybar/status_line.h
+++ b/include/swaybar/status_line.h
@@ -1,5 +1,6 @@
#ifndef _SWAYBAR_STATUS_LINE_H
#define _SWAYBAR_STATUS_LINE_H
+#include <json-c/json.h>
#include <stdint.h>
#include <stdio.h>
#include <stdbool.h>
@@ -12,28 +13,6 @@ enum status_protocol {
PROTOCOL_I3BAR,
};
-struct text_protocol_state {
- char *buffer;
- size_t buffer_size;
-};
-
-enum json_node_type {
- JSON_NODE_UNKNOWN,
- JSON_NODE_ARRAY,
- JSON_NODE_STRING,
-};
-
-struct i3bar_protocol_state {
- bool click_events;
- char *buffer;
- size_t buffer_size;
- size_t buffer_index;
- const char *current_node;
- bool escape;
- size_t depth;
- enum json_node_type nodes[16];
-};
-
struct i3bar_block {
struct wl_list link;
int ref_count;
@@ -63,8 +42,13 @@ struct status_line {
const char *text;
struct wl_list blocks; // i3bar_block::link
- struct text_protocol_state text_state;
- struct i3bar_protocol_state i3bar_state;
+ bool click_events;
+ char *buffer;
+ size_t buffer_size;
+ size_t buffer_index;
+ bool started;
+ bool expecting_comma;
+ json_tokener *tokener;
};
struct status_line *status_line_init(char *cmd);