mirror of
https://github.com/ByteWelder/Tactility.git
synced 2026-02-18 10:53:17 +00:00
- Lots of changes for migrating C code to C++ - Improved `Lockable` in several ways like adding `withLock()` (+ tests) - Improved `Semaphore` a bit for improved readability, and also added some tests - Upgrade Linux machine in GitHub Actions so that we can compile with a newer GCC - Simplification of WiFi connection - Updated funding options - (and more)
41 lines
1.3 KiB
C++
41 lines
1.3 KiB
C++
#pragma once
|
|
|
|
#include "app/AppManifest.h"
|
|
#include "hal/Configuration.h"
|
|
#include "service/ServiceManifest.h"
|
|
#include "TactilityConfig.h"
|
|
|
|
namespace tt {
|
|
|
|
namespace app::launcher { extern const app::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 = {};
|
|
/** Optional app to start automatically after the splash screen. */
|
|
const std::string launcherAppId = app::launcher::manifest.id;
|
|
/** Optional app to start automatically after the splash screen. */
|
|
const std::string autoStartAppId = {};
|
|
};
|
|
|
|
/**
|
|
* 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();
|
|
|
|
} // namespace
|