upiwin/src/main.c

89 lines
1.7 KiB
C
Raw Normal View History

2019-11-29 02:05:30 -07:00
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include "scode.h"
#include "config.h"
2019-11-29 02:05:30 -07:00
#include "gpio.h"
#include "log.h"
2019-12-01 18:53:54 -07:00
#include "fbinit.h"
#include "time_func.h"
#include "sysinput.h"
2019-11-29 02:05:30 -07:00
2019-12-01 20:57:36 -07:00
static void do_draw(void)
{
/*
tmp = (char *)Fb_Ptr;
memset(tmp, 0xFF, Fb_Info->screenbytes / 2);
memset(tmp + (Fb_Info->screenbytes / 2), 0x1B, Fb_Info->screenbytes / 2);
*/
UINT16 pixel = Fb_Info->green_mask;
unsigned npix = Fb_Info->screenbytes / sizeof(UINT16);
UINT16 *p = Fb_Ptr;
2019-12-01 20:57:36 -07:00
unsigned i;
for (i=0; i<npix; i++)
*p++ = pixel;
}
2019-11-29 02:05:30 -07:00
int main(int argc, char *argv[])
{
int running = 1;
MSG msg;
char *tmp;
2019-12-01 15:43:05 -07:00
Time_init();
if (FAILED(Config_setup()))
return EXIT_FAILURE;
if (FAILED(Fb_setup()))
2019-12-01 18:53:54 -07:00
return EXIT_FAILURE;
if (FAILED(Gpio_setup()))
2019-11-29 02:05:30 -07:00
return EXIT_FAILURE;
if (FAILED(Sys_enable_input()))
return EXIT_FAILURE;
Log(LINFO, "Pausing at startup.");
sleep(5); /* wait to show off splash screen */
2019-11-29 02:05:30 -07:00
Fb_clear();
/* temporary drawing here */
2019-12-01 20:57:36 -07:00
do_draw();
2019-11-29 02:18:02 -07:00
Log(LINFO, "System ready.");
2019-11-29 02:05:30 -07:00
while (running)
{
2019-12-01 15:43:05 -07:00
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]));
2019-12-01 14:34:57 -07:00
if (msg.attrs[0] == 1)
{
Log(LINFO, "Backlight ON.");
2019-12-01 15:45:46 -07:00
Gpio_set_backlight(GSB_BACKLIGHT_MAX);
2019-12-01 14:34:57 -07:00
}
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;
}
}
2019-11-29 02:05:30 -07:00
}
return EXIT_SUCCESS;
2019-11-29 02:05:30 -07:00
}