#include #include #include #include #include "clak.h" #include "platform/platform.h" #include "board/board.h" #define VOLUME 0.15 void do_exit(int code) { keyboard_unhook(); fprintf(stderr, "Goodbye.\n"); exit(code); } void on_clean_exit(void) { do_exit(0); } fn_board_on_down board_on_down; fn_board_on_up board_on_up; void keyboard_on_down(void) { board_on_down(); } void keyboard_on_up(void) { board_on_up(); } int main(int argc, char **argv) { fprintf(stderr, "Clak: This is Clak, Nicholas Tay, version: 0.1.0.\n"); if (argc < 2) { printf("ERROR: Please provide a board name.\n"); // TODO: List valid boards. return 1; } if (!load_board(argv[1], &board_on_down, &board_on_up)) { return 1; } fprintf(stderr, "Loaded board: %s\n", argv[1]); if (!sound_init(VOLUME)) { printf("ERROR: Could not initialise sound system.\n"); return 1; } if (!keyboard_hook()) { printf("ERROR: Could not set up keyboard hooks.\n"); return 1; } atexit(on_clean_exit); fprintf(stderr, "Hooks set up, enjoy your stay!\n"); enter_idle(); return 0; }