fake "poweroff" mode

This commit is contained in:
Babz 2021-09-02 19:07:14 +02:00
parent 6c2d82599f
commit 254d646c5b
1 changed files with 30 additions and 6 deletions

View File

@ -1,18 +1,20 @@
#include <gint/display.h>
#include <gint/gint.h>
#include <gint/keyboard.h>
#include <gint/timer.h>
#include "battery.h"
#include "term.h"
#include <gint/display.h>
#include <stdio.h>
#include "ui.h"
#include <stdio.h>
static char *LOREM_IPSUM =
"Lorem ipsum dolor sit amet, consectetur adipiscing elit.\nNam vitae purus dolor.\nPraesent in ex tempus, auctor velit at, "
"vulputate sapien.\nAenean semper, dui vitae iaculis mattis, odio libero aliquet elit, nec tempor nisl turpis vel arcu.\n"
"Vestibulum eleifend maximus enim at sollicitudin.\nNulla eu commodo justo.\nUt vitae pellentesque erat.\nDuis magna nisl, "
"eleifend ac massa at, blandit sollicitudin ipsum.\nInterdum et malesuada fames ac ante ipsum primis in faucibus.\n"
"eleifend ac massa at, blandit sollicitudin ipsum.\nIntegint_world_swrdum et malesuada fames ac ante ipsum primis in "
"faucibus.\n"
"Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.\nUt at libero in turpis porttitor "
"viverra.\nUt eu pellentesque purus.\nVestibulum aliquet facilisis ante, eget volutpat metus.\nCras semper lacus ac mauris "
"imperdiet, vel egestas est luctus.\nAliquam elit enim, dignissim nec enim vel, consequat ullamcorper libero.\nPellentesque "
@ -31,26 +33,48 @@ static int callback_keypoll(void) {
}
int main(void) {
const int timer = timer_configure(TIMER_ANY, 15625, GINT_CALL(callback_keypoll));
int tick_ctr = 0;
int shift_state = 0;
int alpha_state = 0;
int off_state = 0;
set_statusbar(tick_ctr, shift_state, alpha_state);
set_statusbar(tick_ctr, shift_state, alpha_state, get_battery_voltage());
set_menubar();
tgrid_display();
while (1) {
const int timer = timer_configure(TIMER_ANY, 20000, GINT_CALL(callback_keypoll));
key_poll_timeout = 1;
key_event_t kev = getkey_opt(GETKEY_NONE, &key_poll_timeout);
timer_start(timer);
if (kev.type == KEYEV_DOWN) {
if (off_state) {
if (kev.key == KEY_ACON) {
off_state = 0;
} else {
continue;
}
}
if (kev.key == KEY_SHIFT)
shift_state = !shift_state;
if (kev.key == KEY_ALPHA)
alpha_state = !alpha_state;
if (kev.key == KEY_ACON && shift_state) {
off_state = 1;
dclear(C_BLACK);
dupdate();
shift_state = 0;
alpha_state = 0;
continue;
}
if (kev.key == KEY_MENU && !shift_state && !alpha_state) {
// TODO: print pause menu
gint_osmenu();