diff --git a/Makefile b/Makefile index 22e236b..3038220 100644 --- a/Makefile +++ b/Makefile @@ -5,7 +5,8 @@ CCARGS=-Isrc/include -Wall -pedantic MODULES= \ modules/clock.dim \ modules/battery.dim \ - modules/timesince.dim + modules/timesince.dim \ + modules/volume.dim all: $(BIN) $(MODULES) compile_commands.json @@ -16,7 +17,7 @@ $(BIN): src/main.c src/plug.c src/socket.c src/util.c modules/%.dim: src/modules/%.c mkdir -p $(dir $@) - $(CC) -o $@ $^ -rdynamic -shared -fPIC $(CCARGS) + $(CC) -o $@ $^ -rdynamic -shared -fPIC $(CCARGS) -lasound compile_commands.json: compiledb -n make diff --git a/src/include/plug.h b/src/include/plug.h index dec072f..ef0c3b1 100644 --- a/src/include/plug.h +++ b/src/include/plug.h @@ -5,6 +5,7 @@ #include #include + typedef void* (*plug_init_f) (void); typedef void* (*plug_pre_reload_f) (void); typedef void (*plug_post_reload_f) (void*); @@ -31,5 +32,6 @@ char* poll_plugins(char* sep); void free_plugins(void); void reload_plugins(void); + #endif diff --git a/src/include/plug_utils.h b/src/include/plug_utils.h new file mode 100644 index 0000000..f014837 --- /dev/null +++ b/src/include/plug_utils.h @@ -0,0 +1,36 @@ + +#ifndef _H_PLUG_UTILS +#define _H_PLUG_UTILS + +#include +#include +#include +#include + +void* make_result_val(void* v, int size) { + void* v2 = malloc(size); + memcpy(v2, v, size); + return v2; +} + +#define make_result(is_ok, v) ((Result){ \ + .is_ok = (is_ok), \ + .val = make_result_val((v), sizeof((v))) \ +}) + +#define Ok(v) make_result(true, v) +#define Ok(v) make_result(true, v) + + +typedef struct Result { + bool is_ok; + void* val; +} Result; + +void* res_unwrap(Result r) { + if (!r.is_ok) assert(0); + return r.val; +} + + +#endif diff --git a/src/main.c b/src/main.c index a332738..c1457d6 100644 --- a/src/main.c +++ b/src/main.c @@ -8,6 +8,16 @@ #include "plug.h" #include "socket.h" +// TODO: Modules to add: +// - Sound level +// - cpu % +// - ram % +// - weather +// - cpu temp +// - uptime +// - storage usage +// - Network name + strength + void interrupt_handler(int); void print_help(void); diff --git a/src/modules/timesince.c b/src/modules/timesince.c index 7f8aac3..d8997f3 100644 --- a/src/modules/timesince.c +++ b/src/modules/timesince.c @@ -36,7 +36,7 @@ void plug_poll(char* buf, size_t len) { time_t diff = difftime(time(0), mktime(&t)) / (60 * 60 * 24); - snprintf(buf, len, " %ld days <3", diff); + snprintf(buf, len, "%ld days <3", diff); } void plug_free(void) {