From 1783cfd9965c38d60cea3daff172c6657983719b Mon Sep 17 00:00:00 2001 From: Nicholas Tay Date: Thu, 28 Apr 2022 21:39:50 +1000 Subject: Initial working Windows playsound --- .gitignore | 4 ++++ Makefile | 29 +++++++++++++++++++++++++++++ board/mxblue/board_down.wav | Bin 0 -> 15404 bytes board/quack/board_down.wav | Bin 0 -> 46008 bytes clak.c | 17 +++++++++++++++++ 5 files changed, 50 insertions(+) create mode 100644 .gitignore create mode 100644 Makefile create mode 100644 board/mxblue/board_down.wav create mode 100644 board/quack/board_down.wav create mode 100644 clak.c diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5529293 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +clak +clak.exe +board/boards.h +board/*/board.h \ No newline at end of file diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..2635da2 --- /dev/null +++ b/Makefile @@ -0,0 +1,29 @@ +NAME = clak +PREFIX = $(HOME)/.local + +BOARDS = mxblue quack + +CC = gcc +CFLAGS += -std=c99 -Wall -Wextra -Wshadow -Werror -pedantic +LDLIBS = -lWinmm + +BOARD_FILES = $(addsuffix /board.h,$(addprefix board/,$(BOARDS))) + +default: $(NAME) + +$(NAME): $(NAME).c $(BOARD_FILES) board/boards.h + $(CC) $(CFLAGS) $(NAME).c $(LDLIBS) -o $(NAME) + +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 + +$(BOARD_FILES): %.h: %_down.wav + xxd -i "$<" "$@" + +clean: + rm -f *.o + rm -f $(NAME) + rm -f board/boards.h + rm -f $(BOARD_FILES) \ No newline at end of file diff --git a/board/mxblue/board_down.wav b/board/mxblue/board_down.wav new file mode 100644 index 0000000..91699d9 Binary files /dev/null and b/board/mxblue/board_down.wav differ diff --git a/board/quack/board_down.wav b/board/quack/board_down.wav new file mode 100644 index 0000000..6a4d167 Binary files /dev/null and b/board/quack/board_down.wav differ diff --git a/clak.c b/clak.c new file mode 100644 index 0000000..3a0c5bf --- /dev/null +++ b/clak.c @@ -0,0 +1,17 @@ +#include + +#include + +#include "board/boards.h" + +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); + Sleep(500); + } + return 0; +} \ No newline at end of file -- cgit