diff options
author | Nicholas Tay <nick@windblume.net> | 2022-05-08 01:35:55 +1000 |
---|---|---|
committer | Nicholas Tay <nick@windblume.net> | 2022-05-08 01:35:55 +1000 |
commit | 5270088f730a7e30155a642dcd5c4e9a80055d7a (patch) | |
tree | 021a97b39cfe8cb68ae6a21c353a90cb731380eb /clak.c | |
parent | 047544a5af9100ec269e9222213385bc7794f619 (diff) | |
download | clak-5270088f730a7e30155a642dcd5c4e9a80055d7a.tar.gz clak-5270088f730a7e30155a642dcd5c4e9a80055d7a.tar.bz2 clak-5270088f730a7e30155a642dcd5c4e9a80055d7a.zip |
More messing around with plugin system
Just more attempts, but I think I'm gonna switch over to dynamic
.so/.dll loading. That would be pretty fun to check out.
Diffstat (limited to 'clak.c')
-rw-r--r-- | clak.c | 14 |
1 files changed, 8 insertions, 6 deletions
@@ -6,14 +6,15 @@ #define VOLUME 0.15 -#include "board/boards.h" -#define BOARD(str, buf) { .name = str, .wav = buf }, +#define BOARD(x) { .name = #x, .on_down = x ## _on_down, .on_up = x ## _on_up }, +#include "boards.h" #include "platform/platform.h" typedef struct { char *name; - unsigned char* wav; + void (*on_down)(void); + void (*on_up)(void); } Board; Board boards[] = { @@ -44,13 +45,14 @@ void keyboard_on_down(void) { if (board == NULL) return; - sound_play(board->wav); + board->on_down(); } void keyboard_on_up(void) { - // if (board == NULL) - // return; + if (board == NULL) + return; + board->on_up(); } int main(int argc, char **argv) |