diff options
author | Jakob Kaivo <jakob@kaivo.net> | 2018-11-12 12:11:40 -0500 |
---|---|---|
committer | Jakob Kaivo <jakob@kaivo.net> | 2018-11-12 12:11:40 -0500 |
commit | 3ad51d2711741a9a04cf66bd1422da952f7229da (patch) | |
tree | acbb31710c50bfc624cc93a5bdda460bf9fa3979 | |
parent | b5a6d445b12bf1d2ea5b0fcd482aa916dec417b8 (diff) |
attempt to react to button presses with framebuffer actions
-rw-r--r-- | freeonebook.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/freeonebook.c b/freeonebook.c index a1a09c4..13f970a 100644 --- a/freeonebook.c +++ b/freeonebook.c @@ -12,9 +12,10 @@ void halt(void) { - char *halt[] = { "shutdown", "-h", "now", NULL }; fflush(NULL); sync(); + + char *halt[] = { "shutdown", "-h", "now", NULL }; execvp(halt[0], halt); } @@ -30,6 +31,8 @@ void poweroff(int reason) if (reason == GPIO_LOWBATTERY) { printf("low battery\n"); + } else { + fb_blank(); } exit(0); @@ -56,15 +59,20 @@ void buttonpress(int button) case BUTTON_PREVPAGE: printf("previous page\n"); + fb_loadimage(SDPATH "/right-screen.dat"); break; case BUTTON_NEXTPAGE: printf("next page\n"); + fb_loadimage(SDPATH "/left-screen.dat"); break; default: printf("button %d pressed\n", button); } + + fflush(NULL); + sync(); } int main(int argc, char *argv[]) @@ -75,8 +83,8 @@ int main(int argc, char *argv[]) atexit(halt); printf("adding watchers\n"); - gpio_watch(GPIO_LOWBATTERY, poweroff); - gpio_watch(GPIO_SHUTDOWN, poweroff); + //gpio_watch(GPIO_LOWBATTERY, poweroff); + //gpio_watch(GPIO_SHUTDOWN, poweroff); gpio_watch(BUTTON_SPECIAL, buttonpress); gpio_watch(BUTTON_PREVBOOK, buttonpress); gpio_watch(BUTTON_PREVPAGE, buttonpress); @@ -86,6 +94,7 @@ int main(int argc, char *argv[]) printf("initializing framebuffer\n"); fb_init(); + fb_blank(); for (;;) { sleep(INT_MAX); |