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
+5 -13
View File
@@ -2,6 +2,7 @@
#pragma once
#include <stdint.h>
#include <tactility/drivers/rtc.h>
#include <tactility/error.h>
struct Device;
@@ -15,30 +16,21 @@ struct Bm8563Config {
uint8_t address;
};
struct Bm8563DateTime {
uint16_t year; // 20002199
uint8_t month; // 112
uint8_t day; // 131
uint8_t hour; // 023
uint8_t minute; // 059
uint8_t second; // 059
};
/**
* Read the current date and time from the RTC.
* @param[in] device bm8563 device
* @param[out] dt Pointer to Bm8563DateTime to populate
* @param[out] dt Pointer to RtcDateTime to populate
* @return ERROR_NONE on success
*/
error_t bm8563_get_datetime(struct Device* device, struct Bm8563DateTime* dt);
error_t bm8563_get_datetime(struct Device* device, struct RtcDateTime* dt);
/**
* Write the date and time to the RTC.
* @param[in] device bm8563 device
* @param[in] dt Pointer to Bm8563DateTime to write (year must be 20002199)
* @param[in] dt Pointer to RtcDateTime to write (year must be 20002199)
* @return ERROR_NONE on success, ERROR_INVALID_ARGUMENT if any field is out of range
*/
error_t bm8563_set_datetime(struct Device* device, const struct Bm8563DateTime* dt);
error_t bm8563_set_datetime(struct Device* device, const struct RtcDateTime* dt);
#ifdef __cplusplus
}