From 30547ed47ab653586073ae87d0c986c14ddaf241 Mon Sep 17 00:00:00 2001 From: Nicholas Tay Date: Thu, 28 Apr 2022 21:54:45 +1000 Subject: Iterate boards in C --- Makefile | 4 +++- clak.c | 18 ++++++++++++++++-- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 2635da2..c2a94a6 100644 --- a/Makefile +++ b/Makefile @@ -17,7 +17,9 @@ $(NAME): $(NAME).c $(BOARD_FILES) board/boards.h board/boards.h: printf "#ifndef BOARD_DEFAULTS_H\n#define BOARD_DEFAULTS_H\n\n" > board/boards.h for board in $(BOARDS); do echo "#include \"$$board/board.h\"" >> board/boards.h; done - printf "\n#endif /* BOARD_DEFAULTS_H */" >> board/boards.h + printf "\n#define BOARDS " >> board/boards.h + for board in $(BOARDS); do printf "BOARD(\"$$board\", board_$${board}_board_down_wav) " >> board/boards.h; done + printf "\n\n#endif /* BOARD_DEFAULTS_H */" >> board/boards.h $(BOARD_FILES): %.h: %_down.wav xxd -i "$<" "$@" diff --git a/clak.c b/clak.c index 3a0c5bf..5e947e9 100644 --- a/clak.c +++ b/clak.c @@ -3,15 +3,29 @@ #include #include "board/boards.h" +#define BOARD(str, buf) { .name = str, .wav = buf }, + +typedef struct { + char *name; + unsigned char* wav; +} Board; + +Board boards[] = { + BOARDS +}; +int const boards_n = sizeof(boards) / sizeof(boards[0]); int main(void) { float volume = 0.05; DWORD channel_volume = volume * 0xFFFF; waveOutSetVolume(NULL, (channel_volume << 16) | channel_volume); - while (1) { - PlaySound((const char *) board_mxblue_board_down_wav, NULL, SND_MEMORY | SND_SYNC | SND_NODEFAULT); + + for (int i = 0; i < boards_n; ++i) { + printf("name: %s\n", boards[i].name); + PlaySound((const char *) boards[i].wav, NULL, SND_MEMORY | SND_SYNC | SND_NODEFAULT); Sleep(500); } + return 0; } \ No newline at end of file -- cgit