#include #include #include "gpio.h" #include "log.h" #include "fbinit.h" #include "time_func.h" #include "sysinput.h" int main(int argc, char *argv[]) { int running = 1; MSG msg; char *tmp; Time_init(); if (Fb_setup() != 0) return EXIT_FAILURE; atexit(Fb_cleanup); if (Gpio_setup() != 0) return EXIT_FAILURE; atexit(Gpio_cleanup); if (Sys_enable_input() != 0) return EXIT_FAILURE; atexit(Sys_disable_input); /* temporary drawing here */ tmp = (char *)Fb_Ptr; memset(tmp, 0xFF, Fb_Info->screenbytes / 2); memset(tmp + (Fb_Info->screenbytes / 2), 0x1B, Fb_Info->screenbytes / 2); Log(LINFO, "System ready."); while (running) { if (Mq_peek(Sys_Queue, &msg, PEEK_REMOVE)) { switch (msg.message) { case WM_HWBUTTONDOWN: Log(LINFO, "Button %d was pressed.", (int)(msg.attrs[0])); break; case WM_HWBUTTONUP: Log(LINFO, "Button %d was released.", (int)(msg.attrs[0])); if (msg.attrs[0] == 1) { Log(LINFO, "Backlight ON."); Gpio_set_backlight(GSB_BACKLIGHT_MAX); } if (msg.attrs[0] == 2) { Log(LINFO, "Backlight OFF."); Gpio_set_backlight(0); } if (msg.attrs[0] == 4) { Log(LINFO, "Quitting the message loop."); running = 0; } break; default: break; } } } return EXIT_SUCCESS; }