diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/screen.c | 28 |
1 files changed, 23 insertions, 5 deletions
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 <curses.h> #include <stdbool.h> #include <stdlib.h> +#include <unistd.h> #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; } |