aboutsummaryrefslogtreecommitdiff
path: root/board
diff options
context:
space:
mode:
authorNicholas Tay <nick@windblume.net>2022-05-17 18:57:48 +1000
committerNicholas Tay <nick@windblume.net>2022-05-17 19:06:25 +1000
commitd3ea90f183a1742fe205f06ec6543f65869a6799 (patch)
tree5d38f0e9e2dd794fcdfaaeae9895c0bd101dd175 /board
parent2fee408d6fe0964e245dc0bae90027baa13b159a (diff)
downloadclak-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 '')
-rw-r--r--board/Makefile3
-rw-r--r--board/board.h4
-rw-r--r--board/simple_board.h9
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
+}