Tab5 camera + other stuff (#558)

* Tab5 camera + other stuff

Tab5 camera driver - SC2356
Custom SliderBox widget - slider with plus and minus buttons + value label and snapping
Rtc Time service + rtc api
Sdk release - only include drivers built for that specific target, eg: sc2356 driver is mipi / p4 only.
No more hardcoded manual sdk cmakelists
New function to find device by compatible string match. no more static cast bool wildness when trying to match a single device (like M5Stack PaperS3 for example)

* feedback + fixes

Fixed external app user data path.
fix(gui): block app teardown until onHide() completes, preventing ELF unload racing a still-running app
added camera device type and api

* drain the snake sssem

---------

Co-authored-by: Ken Van Hoeylandt <git@kenvanhoeylandt.net>
This commit is contained in:
Shadowtrance
2026-07-10 16:45:03 +10:00
committed by GitHub
parent 16a61a087c
commit 7a7f09be35
47 changed files with 1894 additions and 83 deletions
+9 -4
View File
@@ -78,7 +78,7 @@ static error_t stop(Device* device) {
extern "C" {
error_t rx8130ce_get_datetime(Device* device, Rx8130ceDateTime* dt) {
error_t rx8130ce_get_datetime(Device* device, RtcDateTime* dt) {
auto* i2c_controller = device_get_parent(device);
auto address = GET_CONFIG(device)->address;
@@ -107,7 +107,7 @@ error_t rx8130ce_get_datetime(Device* device, Rx8130ceDateTime* dt) {
return ERROR_NONE;
}
error_t rx8130ce_set_datetime(Device* device, const Rx8130ceDateTime* dt) {
error_t rx8130ce_set_datetime(Device* device, const RtcDateTime* dt) {
if (dt->month < 1 || dt->month > 12 ||
dt->day < 1 || dt->day > 31 ||
dt->hour > 23 || dt->minute > 59 || dt->second > 59) {
@@ -151,13 +151,18 @@ error_t rx8130ce_set_datetime(Device* device, const Rx8130ceDateTime* dt) {
return error;
}
RtcApi rx8130ce_rtc_api = {
.get_time = rx8130ce_get_datetime,
.set_time = rx8130ce_set_datetime
};
Driver rx8130ce_driver = {
.name = "rx8130ce",
.compatible = (const char*[]) { "epson,rx8130ce", nullptr },
.start_device = start,
.stop_device = stop,
.api = nullptr,
.device_type = nullptr,
.api = &rx8130ce_rtc_api,
.device_type = &RTC_TYPE,
.owner = &rx8130ce_module,
.internal = nullptr
};