]> git.sur5r.net Git - i3/i3status/blobdiff - include/i3status.h
PulseAudio muted volume support (fixes #27)
[i3/i3status] / include / i3status.h
index 44046d935239a32a54adc461d93c441229aba920..05827a9e73de640d371c5dae44f209d67e058aa5 100644 (file)
@@ -14,10 +14,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"
@@ -187,14 +194,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 +212,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