summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPatrick McDermott <patrick.mcdermott@libiquity.com>2019-10-13 21:09:47 (EDT)
committer Patrick McDermott <patrick.mcdermott@libiquity.com>2019-10-13 21:09:47 (EDT)
commit2cfd5cc3f2a9615943b798b782b8287b2b1fd3ea (patch)
tree3d58a164df4d717e924eb4b55c2aed05ab844182
parent351ba155fdf7db739f45f9d4381f0b979d9037ab (diff)
downloadtimeteller-2cfd5cc3f2a9615943b798b782b8287b2b1fd3ea.zip
timeteller-2cfd5cc3f2a9615943b798b782b8287b2b1fd3ea.tar.gz
timeteller-2cfd5cc3f2a9615943b798b782b8287b2b1fd3ea.tar.bz2
screen_draw(): Rename to screen_main()
-rw-r--r--src/main.c10
-rw-r--r--src/screen.c13
-rw-r--r--src/screen.h8
3 files changed, 23 insertions, 8 deletions
diff --git a/src/main.c b/src/main.c
index a3118db..49d7e6a 100644
--- a/src/main.c
+++ b/src/main.c
@@ -56,6 +56,7 @@ main(int argc, char **argv)
{
struct speech *speech;
struct screen *screen;
+ int ret;
set_program_name(argv[0]);
@@ -67,11 +68,14 @@ main(int argc, char **argv)
screen = screen_new();
- screen_draw(screen);
- speech_play_time(speech);
+ if (screen_main(screen, speech)) {
+ ret = EXIT_SUCCESS;
+ } else {
+ ret = EXIT_FAILURE;
+ }
screen_destroy(&screen);
speech_destroy(&speech);
- return EXIT_SUCCESS;
+ return ret;
}
diff --git a/src/screen.c b/src/screen.c
index f705701..762b0bb 100644
--- a/src/screen.c
+++ b/src/screen.c
@@ -23,9 +23,11 @@
#include <assert.h>
#include <curses.h>
+#include <stdbool.h>
#include <stdlib.h>
#include "clock.h"
+#include "speech.h"
struct screen {
WINDOW *win;
@@ -43,7 +45,7 @@ screen_new(void)
}
screen->win = initscr(); /* On failure, does not return. */
- if (noecho() == ERR || raw() == ERR) {
+ if (noecho() == ERR || raw() == ERR || nodelay(screen->win, TRUE)) {
free(screen);
return NULL;
}
@@ -58,14 +60,19 @@ screen_new(void)
return screen;
}
-void
-screen_draw(struct screen *screen)
+bool
+screen_main(struct screen *screen, struct speech *speech)
{
assert(screen);
+ assert(speech);
clock_draw(screen->clock);
refresh();
+
+ speech_play_time(speech);
+
+ return true;
}
struct screen *
diff --git a/src/screen.h b/src/screen.h
index 6eaf430..8d16428 100644
--- a/src/screen.h
+++ b/src/screen.h
@@ -22,13 +22,17 @@
#ifndef SCREEN_H_
#define SCREEN_H_
+#include <stdbool.h>
+
+#include "speech.h"
+
struct screen;
struct screen *
screen_new(void);
-void
-screen_draw(struct screen *screen);
+bool
+screen_main(struct screen *screen, struct speech *speech);
struct screen *
screen_destroy(struct screen **screen_p);