- Refactor `AppManifest`: add new fields and rename existing ones - Parse and validate the manifest from an app that is being installed. - Remove deprecated `scoped()` from `Lock` - Create `Tactility/Paths.h` - App loading at boot now properly parses the manifest files of external apps - Properly lock both source and destination locations during app install - Remove LVGL path variants from `AppPaths` and `ServicePaths` - Removed `xPath` base classes for apps and services. There's now `AppPaths` and `ServicePaths`. - Renamed app and service paths: "data" and "system" paths are now "user data" and "assets"
45 lines
1.1 KiB
C++
45 lines
1.1 KiB
C++
#pragma once
|
|
|
|
#include <string>
|
|
#include <memory>
|
|
|
|
namespace tt::service {
|
|
|
|
// Forward declarations
|
|
class ServiceManifest;
|
|
|
|
class ServicePaths {
|
|
|
|
std::shared_ptr<const ServiceManifest> manifest;
|
|
|
|
public:
|
|
|
|
explicit ServicePaths(std::shared_ptr<const ServiceManifest> manifest) : manifest(std::move(manifest)) {}
|
|
|
|
/**
|
|
* The user data directory is intended to survive OS upgrades.
|
|
* The path will not end with a "/".
|
|
*/
|
|
std::string getUserDataDirectory() const;
|
|
|
|
/**
|
|
* The user data directory is intended to survive OS upgrades.
|
|
* Configuration data should be stored here.
|
|
* @param[in] childPath the path without a "/" prefix
|
|
*/
|
|
std::string getUserDataPath(const std::string& childPath) const;
|
|
|
|
/**
|
|
* You should not store configuration data here.
|
|
* The path will not end with a "/".
|
|
*/
|
|
std::string getAssetsDirectory() const;
|
|
|
|
/**
|
|
* You should not store configuration data here.
|
|
* @param[in] childPath the path without a "/" prefix
|
|
*/
|
|
std::string getAssetsPath(const std::string& childPath) const;
|
|
};
|
|
|
|
} |