- Added `tt::hal::Device` and functions (de)register devices and search for them. - Refactored apps: `Power` and `Display` settings apps now use the device API to find devices. - Implemented the new API for all existing drivers for all devices, including the simulator. - Updated HAL Configuration to return `std::shared_ptr` instead of raw pointers. - Added test project for headless tests and implemented tests for the new code.
48 lines
975 B
C++
48 lines
975 B
C++
#pragma once
|
|
|
|
#include "Device.h"
|
|
|
|
#include <Tactility/TactilityCore.h>
|
|
|
|
namespace tt::hal {
|
|
|
|
#define TT_SDCARD_MOUNT_NAME "sdcard"
|
|
#define TT_SDCARD_MOUNT_POINT "/sdcard"
|
|
|
|
class SdCard : public Device {
|
|
|
|
public:
|
|
|
|
enum class State {
|
|
Mounted,
|
|
Unmounted,
|
|
Error,
|
|
Unknown
|
|
};
|
|
|
|
enum class MountBehaviour {
|
|
AtBoot, /** Only mount at boot */
|
|
Anytime /** Mount/dismount any time */
|
|
};
|
|
|
|
private:
|
|
|
|
MountBehaviour mountBehaviour;
|
|
|
|
public:
|
|
|
|
explicit SdCard(MountBehaviour mountBehaviour) : mountBehaviour(mountBehaviour) {}
|
|
virtual ~SdCard() override = default;
|
|
|
|
Type getType() const final { return Type::SdCard; };
|
|
|
|
virtual bool mount(const char* mountPath) = 0;
|
|
virtual bool unmount() = 0;
|
|
virtual State getState() const = 0;
|
|
|
|
virtual MountBehaviour getMountBehaviour() const { return mountBehaviour; }
|
|
bool isMounted() const { return getState() == State::Mounted; }
|
|
};
|
|
|
|
} // namespace
|