]> git.sur5r.net Git - i3/i3status/blobdiff - include/i3status.h
Added support for lemonbar
[i3/i3status] / include / i3status.h
index 44046d935239a32a54adc461d93c441229aba920..037e1545eda3e7df6af7595317fbf6493116bc66 100644 (file)
@@ -4,9 +4,12 @@
 enum { O_DZEN2,
        O_XMOBAR,
        O_I3BAR,
+       O_LEMONBAR,
        O_TERM,
        O_NONE } output_format;
 
+char *pct_mark;
+
 #include <stdbool.h>
 #include <confuse.h>
 #include <time.h>
@@ -14,10 +17,17 @@ enum { O_DZEN2,
 #include <yajl/yajl_version.h>
 #include <unistd.h>
 #include <string.h>
+#include <pthread.h>
+#include <stdint.h>
 
 #define BEGINS_WITH(haystack, needle) (strncmp(haystack, needle, strlen(needle)) == 0)
 #define max(a, b) ((a) > (b) ? (a) : (b))
 
+#define DEFAULT_SINK_INDEX UINT32_MAX
+#define COMPOSE_VOLUME_MUTE(vol, mute) ((vol) | ((mute) ? (1 << 30) : 0))
+#define DECOMPOSE_VOLUME(cvol) ((cvol) & ~(1 << 30))
+#define DECOMPOSE_MUTED(cvol) (((cvol) & (1 << 30)) != 0)
+
 #if defined(LINUX)
 
 #define THERMAL_ZONE "/sys/class/thermal/thermal_zone%d/temp"
@@ -49,7 +59,7 @@ enum { O_DZEN2,
 /* Allows for the definition of a variable without opening a new scope, thus
  * suited for usage in a macro. Idea from wmii. */
 #define with(type, var, init) \
-    for (type var = (type)-1; (var == (type)-1) && ((var = (init)) || 1);)
+    for (type var = (type)-1; (var == (type)-1) && ((var = (init)) || 1); var = (type)1)
 
 #define CASE_SEC(name)              \
     if (BEGINS_WITH(current, name)) \
@@ -187,14 +197,16 @@ void print_time(yajl_gen json_gen, char *buffer, const char *title, const char *
 void print_ddate(yajl_gen json_gen, char *buffer, const char *format, time_t t);
 const char *get_ip_addr(const char *interface);
 void print_wireless_info(yajl_gen json_gen, char *buffer, const char *interface, const char *format_up, const char *format_down);
-void print_run_watch(yajl_gen json_gen, char *buffer, const char *title, const char *pidfile, const char *format);
-void print_path_exists(yajl_gen json_gen, char *buffer, const char *title, const char *path, const char *format);
+void print_run_watch(yajl_gen json_gen, char *buffer, const char *title, const char *pidfile, const char *format, const char *format_down);
+void print_path_exists(yajl_gen json_gen, char *buffer, const char *title, const char *path, const char *format, const char *format_down);
 void print_cpu_temperature_info(yajl_gen json_gen, char *buffer, int zone, const char *path, const char *format, int);
 void print_cpu_usage(yajl_gen json_gen, char *buffer, const char *format);
 void print_eth_info(yajl_gen json_gen, char *buffer, const char *interface, const char *format_up, const char *format_down);
 void print_load(yajl_gen json_gen, char *buffer, const char *format, const float max_threshold);
 void print_volume(yajl_gen json_gen, char *buffer, const char *fmt, const char *fmt_muted, const char *device, const char *mixer, int mixer_idx);
 bool process_runs(const char *path);
+int volume_pulseaudio(uint32_t sink_idx);
+bool pulse_initialize(void);
 
 /* socket file descriptor for general purposes */
 extern int general_socket;
@@ -203,4 +215,7 @@ extern cfg_t *cfg, *cfg_general, *cfg_section;
 
 extern void **cur_instance;
 
+extern pthread_cond_t i3status_sleep_cond;
+extern pthread_mutex_t i3status_sleep_mutex;
+
 #endif