From 0c52d3b1404fcb359d91d5757227ad4f3cc73406 Mon Sep 17 00:00:00 2001 From: Patrick McDermott Date: Sun, 13 Oct 2019 21:28:18 -0400 Subject: screen_main(): Implement basic event loop --- diff --git a/src/screen.c b/src/screen.c index 762b0bb..771e6b1 100644 --- a/src/screen.c +++ b/src/screen.c @@ -25,6 +25,7 @@ #include #include #include +#include #include "clock.h" #include "speech.h" @@ -63,14 +64,31 @@ screen_new(void) bool screen_main(struct screen *screen, struct speech *speech) { + bool play; + assert(screen); assert(speech); - clock_draw(screen->clock); - - refresh(); - - speech_play_time(speech); + for (;;) { + switch (wgetch(screen->win)) { + case ERR: + break; + case 'q': + return true; + default: + play = true; + } + + clock_draw(screen->clock); + refresh(); + + if (play) { + speech_play_time(speech); + play = false; + } else { + sleep(1); + } + } return true; } -- cgit v0.9.1