- 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)
40 lines
1.1 KiB
C++
40 lines
1.1 KiB
C++
#pragma once
|
|
|
|
#include <Tactility/app/AppManifest.h>
|
|
#include <Tactility/Dispatcher.h>
|
|
#include <Tactility/hal/Configuration.h>
|
|
#include <Tactility/service/ServiceManifest.h>
|
|
|
|
namespace tt {
|
|
|
|
namespace app::launcher { extern const AppManifest manifest; }
|
|
|
|
/** @brief The configuration for the operating system
|
|
* It contains the hardware configuration, apps and services
|
|
*/
|
|
struct Configuration {
|
|
/** HAL configuration (drivers) */
|
|
const hal::Configuration* hardware = nullptr;
|
|
/** List of user applications */
|
|
const std::vector<const app::AppManifest*> apps = {};
|
|
/** List of user services */
|
|
const std::vector<const service::ServiceManifest*> services = {};
|
|
};
|
|
|
|
/**
|
|
* Attempts to initialize Tactility and all configured hardware.
|
|
* @param[in] config
|
|
*/
|
|
void run(const Configuration& config);
|
|
|
|
/**
|
|
* While technically nullable, this instance is always set if tt_init() succeeds.
|
|
* @return the Configuration instance that was passed on to tt_init() if init is successful
|
|
*/
|
|
const Configuration* _Nullable getConfiguration();
|
|
|
|
|
|
Dispatcher& getMainDispatcher();
|
|
|
|
} // namespace
|