diff options
author | Nicholas Tay <nick@windblume.net> | 2022-05-17 18:57:48 +1000 |
---|---|---|
committer | Nicholas Tay <nick@windblume.net> | 2022-05-17 19:06:25 +1000 |
commit | d3ea90f183a1742fe205f06ec6543f65869a6799 (patch) | |
tree | 5d38f0e9e2dd794fcdfaaeae9895c0bd101dd175 /board | |
parent | 2fee408d6fe0964e245dc0bae90027baa13b159a (diff) | |
download | clak-d3ea90f183a1742fe205f06ec6543f65869a6799.tar.gz clak-d3ea90f183a1742fe205f06ec6543f65869a6799.tar.bz2 clak-d3ea90f183a1742fe205f06ec6543f65869a6799.zip |
Add Linux support
Oh boy this was a bit of a hassle lol - dynamic loading was the easiest
part... but then came both sound and x11
Using SDL for now but I'd really like to change it for even lower layer,
but then I might have to make my own mixer... oh no.
Diffstat (limited to 'board')
-rw-r--r-- | board/Makefile | 3 | ||||
-rw-r--r-- | board/board.h | 4 | ||||
-rw-r--r-- | board/simple_board.h | 9 |
3 files changed, 10 insertions, 6 deletions
diff --git a/board/Makefile b/board/Makefile index 24cb10c..03449cc 100644 --- a/board/Makefile +++ b/board/Makefile @@ -7,6 +7,7 @@ ifeq ($(OS),Windows_NT) OUTEXT = dll else OUTEXT = so + CFLAGS += -fPIC endif default: all @@ -29,4 +30,4 @@ clean: rm -f *.o rm -f *.dll rm -f *.so - rm -f */sound.h
\ No newline at end of file + rm -f */sound.h diff --git a/board/board.h b/board/board.h index c7dfc1f..36d39fb 100644 --- a/board/board.h +++ b/board/board.h @@ -8,9 +8,9 @@ struct board { }; struct board_data { - void (*sound_play)(unsigned char *buffer); + void (*sound_play)(unsigned char *buffer, unsigned int buffer_len); }; typedef struct board *(*fn_board_init)(struct board_data data); -#endif /* CLAK_BOARD_H_ */
\ No newline at end of file +#endif /* CLAK_BOARD_H_ */ diff --git a/board/simple_board.h b/board/simple_board.h index 9d9836b..f0997c7 100644 --- a/board/simple_board.h +++ b/board/simple_board.h @@ -2,17 +2,20 @@ static struct board_data board_data; +#define WAV_LEN(W) PREPROC_CONCAT(W,_len) +#define PREPROC_CONCAT(A, B) A ## B + void board_on_down(void) { #ifdef BOARD_DOWN_WAV - board_data.sound_play(BOARD_DOWN_WAV); + board_data.sound_play(BOARD_DOWN_WAV, WAV_LEN(BOARD_DOWN_WAV)); #endif } void board_on_up(void) { #ifdef BOARD_UP_WAV - board_data.sound_play(BOARD_UP_WAV); + board_data.sound_play(BOARD_UP_WAV, WAV_LEN(BOARD_UP_WAV)); #endif } @@ -30,4 +33,4 @@ struct board *board_init(struct board_data data) { board_data = data; return &board; -}
\ No newline at end of file +} |