App and Service improvements (#106)

This commit is contained in:
Ken Van Hoeylandt
2024-12-05 22:46:27 +01:00
committed by GitHub
parent e86a11b7e2
commit 50ee77d572
69 changed files with 692 additions and 596 deletions
+30 -30
View File
@@ -15,13 +15,13 @@ static const Configuration* config_instance = nullptr;
// region Default services
namespace service {
namespace gui { extern const Manifest manifest; }
namespace loader { extern const Manifest manifest; }
namespace screenshot { extern const Manifest manifest; }
namespace statusbar { extern const Manifest manifest; }
namespace gui { extern const ServiceManifest manifest; }
namespace loader { extern const ServiceManifest manifest; }
namespace screenshot { extern const ServiceManifest manifest; }
namespace statusbar { extern const ServiceManifest manifest; }
}
static const std::vector<const service::Manifest*> system_services = {
static const std::vector<const service::ServiceManifest*> system_services = {
&service::loader::manifest,
&service::gui::manifest, // depends on loader service
#ifndef ESP_PLATFORM // Screenshots don't work yet on ESP32
@@ -35,30 +35,30 @@ static const std::vector<const service::Manifest*> system_services = {
// region Default apps
namespace app {
namespace boot { extern const Manifest manifest; }
namespace desktop { extern const Manifest manifest; }
namespace files { extern const Manifest manifest; }
namespace gpio { extern const Manifest manifest; }
namespace imageviewer { extern const Manifest manifest; }
namespace screenshot { extern const Manifest manifest; }
namespace settings { extern const Manifest manifest; }
namespace display { extern const Manifest manifest; }
namespace i2cscanner { extern const Manifest manifest; }
namespace i2csettings { extern const Manifest manifest; }
namespace power { extern const Manifest manifest; }
namespace selectiondialog { extern const Manifest manifest; }
namespace systeminfo { extern const Manifest manifest; }
namespace textviewer { extern const Manifest manifest; }
namespace wifiapsettings { extern const Manifest manifest; }
namespace wificonnect { extern const Manifest manifest; }
namespace wifimanage { extern const Manifest manifest; }
namespace boot { extern const AppManifest manifest; }
namespace desktop { extern const AppManifest manifest; }
namespace files { extern const AppManifest manifest; }
namespace gpio { extern const AppManifest manifest; }
namespace imageviewer { extern const AppManifest manifest; }
namespace screenshot { extern const AppManifest manifest; }
namespace settings { extern const AppManifest manifest; }
namespace display { extern const AppManifest manifest; }
namespace i2cscanner { extern const AppManifest manifest; }
namespace i2csettings { extern const AppManifest manifest; }
namespace power { extern const AppManifest manifest; }
namespace selectiondialog { extern const AppManifest manifest; }
namespace systeminfo { extern const AppManifest manifest; }
namespace textviewer { extern const AppManifest manifest; }
namespace wifiapsettings { extern const AppManifest manifest; }
namespace wificonnect { extern const AppManifest manifest; }
namespace wifimanage { extern const AppManifest manifest; }
}
#ifndef ESP_PLATFORM
extern const app::Manifest screenshot_app;
extern const app::AppManifest screenshot_app;
#endif
static const std::vector<const app::Manifest*> system_apps = {
static const std::vector<const app::AppManifest*> system_apps = {
&app::boot::manifest,
&app::desktop::manifest,
&app::display::manifest,
@@ -92,10 +92,10 @@ static void register_system_apps() {
}
}
static void register_user_apps(const app::Manifest* const apps[TT_CONFIG_APPS_LIMIT]) {
static void register_user_apps(const app::AppManifest* const apps[TT_CONFIG_APPS_LIMIT]) {
TT_LOG_I(TAG, "Registering user apps");
for (size_t i = 0; i < TT_CONFIG_APPS_LIMIT; i++) {
const app::Manifest* manifest = apps[i];
const app::AppManifest* manifest = apps[i];
if (manifest != nullptr) {
addApp(manifest);
} else {
@@ -113,10 +113,10 @@ static void register_and_start_system_services() {
}
}
static void register_and_start_user_services(const service::Manifest* const services[TT_CONFIG_SERVICES_LIMIT]) {
static void register_and_start_user_services(const service::ServiceManifest* const services[TT_CONFIG_SERVICES_LIMIT]) {
TT_LOG_I(TAG, "Registering and starting user services");
for (size_t i = 0; i < TT_CONFIG_SERVICES_LIMIT; i++) {
const service::Manifest* manifest = services[i];
const service::ServiceManifest* manifest = services[i];
if (manifest != nullptr) {
addService(manifest);
tt_check(service::startService(manifest->id));
@@ -152,11 +152,11 @@ void init(const Configuration& config) {
register_user_apps(config.apps);
TT_LOG_I(TAG, "init starting desktop app");
service::loader::startApp(app::boot::manifest.id, true, Bundle());
service::loader::startApp(app::boot::manifest.id, true);
if (config.auto_start_app_id) {
TT_LOG_I(TAG, "init auto-starting %s", config.auto_start_app_id);
service::loader::startApp(config.auto_start_app_id, true, Bundle());
service::loader::startApp(config.auto_start_app_id, true);
}
TT_LOG_I(TAG, "init complete");