We run a branch of minifb because we need the `set_key_state`
function, which is not available on the main branch. This
function is necessary to extract raw scan keycodes from the
keyboard so we can respond to e.g. menu and prediction emulation
keys (Home and Fn keys). The mainline minifb crate eats all
of those key events and does not pass them on.
Each Cargo.toml now includes a comment which remnids maintainers
of the dependency policy for Xous (that is, nail down every dependency
to the minor number).
Versions are pinned down to the minor number. Yes, this means that
we don't automatically pull in features and bug updates from crates.io,
but it also means we don't pull in new attack surfaces and code that
hasn't been tested or reviewed. I'd like this process to be very deliberate
and not automatic for Xous.
The `rand` crate is almost pinned down to a single version, except
for an odd dependency that's pulled in by hosted mode that depends
on rand 0.8.4 via a subordinate dependency via the `tempfile` crate.
Pondering if it's worth it to try and eliminate that, because the
0.8.4 version doesn't get compiled into any version that touches
real hardware. It just makes it harder to analyze the Cargo.lock
file, mostly. I think I'll leave it as-is.
- inverted text indicates a trusted message. policy is enforced in the GAM.
- we don't have a way to lock the USB port yet; but at least now it's communicated.
This rewrites the entire project so that most runnable projects now use
`xous-ipc` instead of `xous::String` where possible.
This also removes `rkyv` from the list of dependencies in `xous-rs`.
Signed-off-by: Sean Cross <sean@xobs.io>
Buffer keypresses so that keys are not lost. This improves
responsiveness, although there are still kernel plumbing issues.
Signed-off-by: Sean Cross <sean@xobs.io>
The graphics server has an issue where something upstream is activating
the "std" feature on "log", which prevents us from compiling anything
that includes the "log" crate. Which is everything.
Use resolver "2", which requires Rust 1.51 or newer.
Signed-off-by: Sean Cross <sean@xobs.io>
- remove redundant Rect/Rectangle implementations
- refactor Lines and Circles
- add DrawStyle to the message passing regimen
- depracate modal Styles; now every object has a DrawStyle shipped with it
- remove unused/redundant API calls