- Add app path get() functions to `TactilityC` - Improved `Dispatcher` and `DispatcherThread` - Improved `PubSub` (type safety) - Created test for `DispatcherThread` and `PubSub` - Save properties files on app exit (various apps) by posting it to the main dispatcher (fixes UI hanging briefly on app exit) - Fixed bug with `SystemSettings` being read from the wrong file path. - `loadPropertiesFile()` now uses `file::readLines()` instead of doing that manually - Increased timer task stack size (required due to issues when reading a properties file for the very first time) - General cleanup - Created `EstimatedPower` driver that uses an ADC pin to measure voltage and estimate the battery charge that is left. - Cleanup of T-Deck board (updated to new style)
45 lines
1.1 KiB
C++
45 lines
1.1 KiB
C++
#pragma once
|
|
|
|
#include "Tactility/app/AppManifest.h"
|
|
|
|
#include <Tactility/Bundle.h>
|
|
#include <Tactility/PubSub.h>
|
|
|
|
#include <memory>
|
|
|
|
namespace tt::service::loader {
|
|
|
|
// region LoaderEvent for PubSub
|
|
|
|
enum class LoaderEvent{
|
|
ApplicationStarted,
|
|
ApplicationShowing,
|
|
ApplicationHiding,
|
|
ApplicationStopped
|
|
};
|
|
|
|
// endregion LoaderEvent for PubSub
|
|
|
|
/**
|
|
* @brief Start an app
|
|
* @param[in] id application name or id
|
|
* @param[in] parameters optional parameters to pass onto the application
|
|
*/
|
|
app::LaunchId startApp(const std::string& id, std::shared_ptr<const Bundle> _Nullable parameters = nullptr);
|
|
|
|
/** @brief Stop the currently showing app. Show the previous app if any app was still running. */
|
|
void stopApp();
|
|
|
|
/** @return the currently running app context (it is only ever null before the splash screen is shown) */
|
|
std::shared_ptr<app::AppContext> _Nullable getCurrentAppContext();
|
|
|
|
/** @return the currently running app (it is only ever null before the splash screen is shown) */
|
|
std::shared_ptr<app::App> _Nullable getCurrentApp();
|
|
|
|
/**
|
|
* @brief PubSub for LoaderEvent
|
|
*/
|
|
std::shared_ptr<PubSub<LoaderEvent>> getPubsub();
|
|
|
|
} // namespace
|