#include #include #include #include "scode.h" #include "config.h" #include "gpio.h" #include "log.h" #include "fbinit.h" #include "fbprimitive.h" #include "time_func.h" #include "sysinput.h" static void do_draw(void) { Fb_filled_rectangle(10, 10, 50, 50, FBPRIMCLR_RED, FALSE); Fb_filled_rectangle(60, 10, 100, 50, FBPRIMCLR_GREEN, FALSE); Fb_filled_rectangle(110, 10, 160, 50, FBPRIMCLR_BLUE, FALSE); Fb_filled_rectangle(10, 60, 50, 100, FBPRIMCLR_CYAN, FALSE); Fb_filled_rectangle(60, 60, 100, 100, FBPRIMCLR_MAGENTA, FALSE); Fb_filled_rectangle(110, 60, 160, 100, FBPRIMCLR_YELLOW, FALSE); } int main(int argc, char *argv[]) { HRESULT hr; int running = 1; MSG msg; char *tmp; Time_init(); hr = Config_setup(argc, argv); if (FAILED(hr)) return EXIT_FAILURE; else if (hr != S_OK) return EXIT_SUCCESS; if (FAILED(Fb_setup())) return EXIT_FAILURE; if (FAILED(Gpio_setup())) return EXIT_FAILURE; if (FAILED(Sys_enable_input())) return EXIT_FAILURE; Log(LINFO, "Pausing at startup."); sleep(5); /* wait to show off splash screen */ Fb_clear(); /* temporary drawing here */ do_draw(); 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; }