Add basic API functions
This commit is contained in:
parent
05d93409dc
commit
a6b55e2478
1 changed files with 15 additions and 1 deletions
|
@ -1,6 +1,7 @@
|
||||||
use crate::display::{Display, DisplayDriver};
|
use crate::display::{Display, DisplayDriver};
|
||||||
use crate::{Color, Obj, Widget};
|
use crate::{Color, Obj, Widget};
|
||||||
use core::ptr::NonNull;
|
use core::ptr::NonNull;
|
||||||
|
use core::time::Duration;
|
||||||
use core::{ptr, result};
|
use core::{ptr, result};
|
||||||
use embedded_graphics::prelude::*;
|
use embedded_graphics::prelude::*;
|
||||||
|
|
||||||
|
@ -16,7 +17,7 @@ type Result<T> = result::Result<T, CoreError>;
|
||||||
pub fn disp_drv_register<C: PixelColor + From<Color>, T: DrawTarget<C>>(
|
pub fn disp_drv_register<C: PixelColor + From<Color>, T: DrawTarget<C>>(
|
||||||
disp_drv: &mut DisplayDriver<T, C>,
|
disp_drv: &mut DisplayDriver<T, C>,
|
||||||
) -> Result<Display> {
|
) -> Result<Display> {
|
||||||
let disp_ptr = unsafe { lvgl_sys::lv_disp_drv_register(disp_drv.disp_drv.as_mut() as *mut _) };
|
let disp_ptr = unsafe { lvgl_sys::lv_disp_drv_register(&mut disp_drv.disp_drv as *mut _) };
|
||||||
Ok(Display::from_raw(
|
Ok(Display::from_raw(
|
||||||
NonNull::new(disp_ptr).ok_or(CoreError::OperationFailed)?,
|
NonNull::new(disp_ptr).ok_or(CoreError::OperationFailed)?,
|
||||||
))
|
))
|
||||||
|
@ -40,3 +41,16 @@ pub(crate) fn get_str_act(disp: Option<&Display>) -> Result<Obj> {
|
||||||
NonNull::new(scr_ptr).ok_or(CoreError::ResourceNotAvailable)?,
|
NonNull::new(scr_ptr).ok_or(CoreError::ResourceNotAvailable)?,
|
||||||
))
|
))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn tick_inc(tick_period: Duration) {
|
||||||
|
unsafe {
|
||||||
|
lvgl_sys::lv_tick_inc(tick_period.as_millis() as u32);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Call it periodically to handle tasks.
|
||||||
|
/// Returns the duration after which it must be called again.
|
||||||
|
pub fn task_handler() -> Option<Duration> {
|
||||||
|
let next_call_at = unsafe { lvgl_sys::lv_task_handler() };
|
||||||
|
Some(Duration::from_secs(next_call_at as u64))
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue