Commit graph

20 commits

Author SHA1 Message Date
bunnie
85ced42465 add automatic checks for backup/restore on boot 2022-07-13 04:44:44 +08:00
bunnie
ead5bd7dac enable gateware updates when no root keys are present 2022-06-30 22:58:54 +08:00
bunnie
a0217d9ffd debug logic and whitespace 2022-06-28 01:14:38 +08:00
Gianguido Sorà
1ebf3316e7 feat: wire keyboard backlight controls to main menu 2022-06-10 17:14:38 +02:00
Gianguido Sorà
4115c9b2cd feat: wire keyboard-backlight to status menu 2022-06-10 14:33:33 +02:00
bunnie
bd78ba94f1 refactor time setting modals into a separate thread
modals don't work when triggered in the status thread in hosted
mode (but they do, somehow, on real hardware). I think this
is an actual locking problem that would exhibit itself if
we had a true multiprocessor system, but since real hardware
is a single processor it doesn't show.
2022-03-28 15:25:43 +08:00
bunnie
ee4511c35d rework menu items and ordering
init for RTC shouldn't appear until keys are initialized and
PDDB has been mounted.
2022-03-27 16:45:22 +08:00
bunnie
340cd89661 update status to use the new RTC functions for time
Time is replaced with error messages that indicate either time has not
been set ("Set Time"), or the PDDB has not been mounted (it says
"Login?"), if there is an error. otherwise it displays time
in the local timezone.

Time setting is kind of awful in that you have to enter the time
as UTC. And then a timezone as an offset in hours from UTC. It's
very bare-iron.
2022-03-27 04:06:42 +08:00
bunnie
19b9b817a4 add a battery disconnect option to the main menu
this will disconnect the battery and put the device in a very low power
state, and you can only power it back on again by plugging it into
a power source briefly.
2022-03-17 03:37:34 +08:00
bunnie
3f6c2a6a5f fix a misplaced comment 2022-03-11 21:26:48 +08:00
bunnie
bbccf1c2a7 reached a reasonable integration point for tts until braille protos are in
tts is working fairly well and much more stably, menus and ui
elements are wired up for tts.

just waiting for the latest braille keyboard pcb to come in and
then we'll be able to fire off some prototypes...
2022-03-11 19:08:39 +08:00
bunnie
71d9cc38af fix (or at least improve) simultaneous tts initiation crash 2022-03-10 04:00:09 +08:00
bunnie
30910dbd4f add keyboard layout setting and retention
Keyboard setting is "the one and only" exception to user settings
that are saved without encryption. This is because you need your
keyboard layout to be set in order for you to type your password.
Thus, this needed a bit of a special-case to handle its storage record.

We decided to lop off 1 page from the loader and have it store
the keyboard layout code.

Let's hope we can have the discipline to really just store that
one word of information and not later be like "gee wally, you have
a whoooole 4092 unused bytes of space we can cram unencrypted
user settings in, sure would be a waste to not put those use those".
2022-02-03 02:46:37 +08:00
bunnie
a52f498edb change the menu order to make apps a bit easier to access 2022-01-24 17:38:02 +08:00
bunnie
d2a054ec33 laying in some framework for user applications
The first "app" is just going to be a whole-framebuffer
demo that gets raw keys and does some stuff on the screen.
It's the starting point if you wanted to eg. write a simple
video game or something for the device, but you didn't care
about much of the other UX sugar.
2022-01-23 15:52:17 +08:00
bunnie
2c711036a9 add a submenu for PDDB operations 2022-01-17 01:59:38 +08:00
bunnie
b7b0bdc852 convert menu infrastructure to the "menumatic" API call
hopefully this makes menus a bit easier
2022-01-16 17:30:32 +08:00
bunnie
700975ec63 disallow sleep while charging 2022-01-15 16:31:21 +08:00
bunnie
69eefb3e64 add a reboot command to the main menu 2022-01-12 14:00:31 +08:00
bunnie
4f638bb49a massive refactor to eliminate the RTC crate
Saves a bit on resources and the RTC crate doesn't need
to be stand-alone now that the modals crate is a thing;
we are able to split the UX routine to manage the RTC out
of the code that actually manages the hardware.

The hardware code ended up in LLIO, and the UX ended up in the status
routine.
2022-01-11 15:45:20 +08:00