Refactor app access (#205)

- Use `tt::app::` functions to start/stop apps and get current app(context) instead of using loader everywhere
- Removed `tt_service_loader.*` from TactilityC
- Created `tt_app_stop()` for TactilityC
- Bumped version to 0.3.0 to prepare for upcoming release
This commit is contained in:
Ken Van Hoeylandt
2025-02-05 21:57:27 +01:00
committed by GitHub
parent 68e34ca740
commit 6337458992
21 changed files with 58 additions and 145 deletions
+3
View File
@@ -29,6 +29,9 @@ bool tt_app_has_result(AppHandle handle);
*/
void tt_app_start(const char* appId);
/** Stop the currently running app */
void tt_app_stop();
/**
* Start an app by id and bundle.
* @param[in] appId the app manifest id
-33
View File
@@ -1,33 +0,0 @@
#pragma once
#include "tt_app.h"
#include "tt_bundle.h"
#ifdef __cplusplus
extern "C" {
#endif
/**
* Start an application providing a manifest id and an optional bundle.
* Execution is always deferred.
* This function generally returns immediately unless the scheduler is blocked.
* @param[in] id application manifest id
* @param[in] bundle an allocated bundle (or NULL) of which the memory ownership is handed over to this function
*/
void tt_service_loader_start_app(const char* id, BundleHandle _Nullable bundle);
/**
* Stop the currently active app.
* Execution is always deferred.
* This function generally returns immediately unless the scheduler is blocked.
*/
void tt_service_loader_stop_app();
/**
* Get the context handle of the app that is currently shown on the screen.
*/
AppHandle tt_service_loader_get_current_app();
#ifdef __cplusplus
}
#endif
+4
View File
@@ -27,4 +27,8 @@ void tt_app_start_with_bundle(const char* appId, BundleHandle parameters) {
tt::app::start(appId, std::shared_ptr<tt::Bundle>((tt::Bundle*)parameters));
}
void tt_app_stop() {
tt::app::stop();
}
}
-20
View File
@@ -1,20 +0,0 @@
#include "tt_service_loader.h"
#include <Tactility/Bundle.h>
#include <Tactility/service/loader/Loader.h>
extern "C" {
void tt_service_loader_start_app(const char* id, BundleHandle _Nullable bundle) {
auto shared_bundle = std::shared_ptr<tt::Bundle>((tt::Bundle*)bundle);
tt::service::loader::startApp(id, std::move(shared_bundle));
}
void tt_service_loader_stop_app() {
tt::service::loader::stopApp();
}
AppHandle tt_service_loader_get_current_app() {
return tt::service::loader::getCurrentAppContext().get();
}
}