mirror of
https://github.com/trezor/trezor-firmware.git
synced 2025-07-03 21:32:33 +00:00
feat(core/rust): expose touch processing functions to rust
This commit is contained in:
parent
633c5b04b4
commit
ec2a38105b
@ -337,7 +337,16 @@ fn generate_trezorhal_bindings() {
|
||||
.allowlist_var("text_buffer_height")
|
||||
.allowlist_var("buffer_width")
|
||||
//usb
|
||||
.allowlist_function("usb_configured");
|
||||
.allowlist_function("usb_configured")
|
||||
// touch
|
||||
.allowlist_function("touch_read")
|
||||
// button
|
||||
.allowlist_function("button_read")
|
||||
.allowlist_var("BTN_EVT_DOWN")
|
||||
.allowlist_var("BTN_EVT_UP")
|
||||
.allowlist_var("BTN_RIGHT")
|
||||
.allowlist_var("BTN_LEFT");
|
||||
|
||||
// Write the bindings to a file in the OUR_DIR.
|
||||
bindings
|
||||
.generate()
|
||||
|
14
core/embed/rust/src/trezorhal/io.rs
Normal file
14
core/embed/rust/src/trezorhal/io.rs
Normal file
@ -0,0 +1,14 @@
|
||||
use super::ffi;
|
||||
|
||||
#[cfg(feature = "buttons")]
|
||||
pub use super::ffi::{BTN_EVT_DOWN, BTN_EVT_UP, BTN_LEFT, BTN_RIGHT};
|
||||
|
||||
#[cfg(feature = "touch")]
|
||||
pub fn io_touch_read() -> u32 {
|
||||
unsafe { ffi::touch_read() }
|
||||
}
|
||||
|
||||
#[cfg(feature = "buttons")]
|
||||
pub fn io_button_read() -> u32 {
|
||||
unsafe { ffi::button_read() }
|
||||
}
|
@ -7,6 +7,7 @@ pub mod display;
|
||||
#[cfg(feature = "dma2d")]
|
||||
pub mod dma2d;
|
||||
mod ffi;
|
||||
pub mod io;
|
||||
pub mod qr;
|
||||
pub mod random;
|
||||
#[cfg(feature = "model_tr")]
|
||||
|
@ -1,5 +1,6 @@
|
||||
#include TREZOR_BOARD
|
||||
#include "buffers.h"
|
||||
#include "button.h"
|
||||
#include "common.h"
|
||||
#include "display.h"
|
||||
#include "display_interface.h"
|
||||
@ -9,6 +10,7 @@
|
||||
#include "rgb_led.h"
|
||||
#include "secbool.h"
|
||||
#include "storage.h"
|
||||
#include "touch.h"
|
||||
#include "usb.h"
|
||||
|
||||
#include "bip39.h"
|
||||
|
@ -378,3 +378,6 @@ uint32_t touch_click(void) {
|
||||
// return last touch coordinate
|
||||
return r;
|
||||
}
|
||||
|
||||
uint16_t touch_unpack_x(uint32_t evt) { return (evt >> 12) & 0xFFF; }
|
||||
uint16_t touch_unpack_y(uint32_t evt) { return (evt >> 0) & 0xFFF; }
|
||||
|
@ -33,12 +33,9 @@ void touch_sensitivity(uint8_t value);
|
||||
uint32_t touch_read(void);
|
||||
uint32_t touch_click(void);
|
||||
uint32_t touch_is_detected(void);
|
||||
static inline uint16_t touch_unpack_x(uint32_t evt) {
|
||||
return (evt >> 12) & 0xFFF;
|
||||
}
|
||||
static inline uint16_t touch_unpack_y(uint32_t evt) {
|
||||
return (evt >> 0) & 0xFFF;
|
||||
}
|
||||
uint16_t touch_unpack_x(uint32_t evt);
|
||||
uint16_t touch_unpack_y(uint32_t evt);
|
||||
|
||||
static inline uint32_t touch_pack_xy(uint16_t x, uint16_t y) {
|
||||
return ((x & 0xFFF) << 12) | (y & 0xFFF);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user