Inspired by @jschlatow’s “System Info” component, I am playing a little bit with LVGL. Following the System Info example, I was able to build a minimal component. Very nice!
Before continuing too much further, I have a few questions:
Where is the canonical version of the “LVGL” and “LVGL_Support” components (e.g., “jschlataw/goa-projects/ports”)?
In the “Lvgl.Config” struct, there are only callback slots for Resize and Timer. Do we need to add the other callbacks for Events, etc.? (The README mentions limited support for interaction.)
If any required enhancements are simple enough, I might finally be able to contribute something to the community.
Events are injected into LVGL, thus you should be able to use LVGL’s event handling mechanisms. The support is merely not tested in practice very well as far as I know. Maybe @jws has some interactive LVGL-based application running that I don’t know of as he originally created the port.
Thus, no, there is not required enhancement that I’m currently aware of other than experimenting with it and building useful LVGL applications
To be honest I haven’t played around with LVGL on Genode for quite a while now.
That being said, the support for interactive applications was enough for formular-like stuff, e.g., a minimal UI for fetchurl where URLs could be entered via keyboard and clipboard. That was one of the prototypes I developed the lvgl_support library with.
Thus, no, there is not required enhancement that I’m currently aware of other than experimenting with it and building useful LVGL applications
Thanks to both of you for the quick responses! I did a quick button test, and it worked fine.
Quick question about function naming - I noticed that a few of the function names were shortened from the LVGL names (e.g., “lv_scr_act()” vs. “lv_screen_active()”, “lv_btn_create()” vs. “lv_button_create()”). Was there a specific reason for that?
Quick question about function naming - I noticed that a few of the function names were shortened from the LVGL names (e.g., “lv_scr_act()” vs. “lv_screen_active()”, “lv_btn_create()” vs. “lv_button_create()”). Was there a specific reason for that?
The port is using an older version of LVGL, 8.3.x, and that’s its API naming.
Judging by the website 9.6.0 is current by now - perhaps an update of the port would be in order?
Thanks! I made a quick attempt at using “goa import” to pull in and build the 9.6.0 version, but there were enough changes that it doesn’t look trivial (to me, at least).
In any case, 8.3.x seems like a stable release, and should support all my foreseeable needs.
So far, so good with the elementary testing I’ve done so far, and it looks like a pleasant framework to work with. We’ll see what follows…
I am able to run my minimal LVGL test app on the PC and PinePhone using goa-testbed - very nice!
I notice that touches on the PinePhone don’t generate click or press events in LVGL. (I haven’t tested touch on the PC yet.) Is there a configuration change needed for this, or is it a current limitation?
I notice that touches on the PinePhone don’t generate click or press events in LVGL. (I haven’t tested touch on the PC yet.) Is there a configuration change needed for this, or is it a current limitation?
FWIW, I added rudimentary touch support a few years back for fooling around with LVGL on the PinePhone. The branch jsoentgen/genode-world/lvgl-2023-12-21 contains the commit.