diff --git a/Boards/Simulator/Source/hal/Configuration.cpp b/Boards/Simulator/Source/hal/Configuration.cpp index cfe48175..dea0172d 100644 --- a/Boards/Simulator/Source/hal/Configuration.cpp +++ b/Boards/Simulator/Source/hal/Configuration.cpp @@ -1,3 +1,4 @@ +#include "Tactility.h" #include "hal/Configuration.h" #include "hal/SimulatorPower.h" #include "LvglTask.h" @@ -7,6 +8,8 @@ #define TAG "hardware" +extern const tt::hal::sdcard::SdCard simulatorSdcard; + static bool initBoot() { lv_init(); lvgl_task_start(); @@ -28,7 +31,7 @@ extern const tt::hal::Configuration hardware = { .initBoot = initBoot, .createDisplay = createDisplay, .createKeyboard = createKeyboard, - .sdcard = nullptr, + .sdcard = &simulatorSdcard, .power = simulatorPower, .i2c = { tt::hal::i2c::Configuration { diff --git a/Boards/Simulator/Source/hal/SimulatorSdcard.cpp b/Boards/Simulator/Source/hal/SimulatorSdcard.cpp new file mode 100644 index 00000000..42de03fa --- /dev/null +++ b/Boards/Simulator/Source/hal/SimulatorSdcard.cpp @@ -0,0 +1,26 @@ +#include "Tactility.h" +#include "hal/sdcard/Sdcard.h" + +static uint32_t fake_handle = 0; + +static void* _Nullable sdcard_mount(TT_UNUSED const char* mount_point) { + return &fake_handle; +} + +static void* sdcard_init_and_mount(TT_UNUSED const char* mount_point) { + return &fake_handle; +} + +static void sdcard_unmount(TT_UNUSED void* context) { +} + +static bool sdcard_is_mounted(TT_UNUSED void* context) { + return TT_SCREENSHOT_MODE; +} + +extern const tt::hal::sdcard::SdCard simulatorSdcard = { + .mount = &sdcard_init_and_mount, + .unmount = &sdcard_unmount, + .is_mounted = &sdcard_is_mounted, + .mount_behaviour = tt::hal::sdcard::MountBehaviourAtBoot +}; diff --git a/COPYRIGHT.md b/COPYRIGHT.md index a51d614a..8cc6ed4e 100644 --- a/COPYRIGHT.md +++ b/COPYRIGHT.md @@ -1,10 +1,12 @@ -## Tactility +# Tactility The Tactility logo copyrights are owned by Ken Van Hoeylandt. Firmwares built from [the original repository](https://github.com/ByteWelder/Tactility) can be redistributed with the Tactility logo. For other usages, [contact me](https://kenvanhoeylandt.net). -The Tactility firmware and code are published under [GPL License Version 3](./LICENSE.md). +The Tactility project is published under [GPL License Version 3](./LICENSE.md). + +The TactilitySDK project is published under an [MIT License](./LICENSE.md). # Dependencies diff --git a/Documentation/pics/screenshot-AppList.png b/Documentation/pics/screenshot-AppList.png index dfa444c4..76900e52 100644 Binary files a/Documentation/pics/screenshot-AppList.png and b/Documentation/pics/screenshot-AppList.png differ diff --git a/Documentation/pics/screenshot-Desktop.png b/Documentation/pics/screenshot-Desktop.png index d46e3dc1..f123585c 100644 Binary files a/Documentation/pics/screenshot-Desktop.png and b/Documentation/pics/screenshot-Desktop.png differ diff --git a/Documentation/pics/screenshot-Files.png b/Documentation/pics/screenshot-Files.png index ff869c02..0e126925 100644 Binary files a/Documentation/pics/screenshot-Files.png and b/Documentation/pics/screenshot-Files.png differ diff --git a/Documentation/pics/screenshot-HelloWorld.png b/Documentation/pics/screenshot-HelloWorld.png new file mode 100644 index 00000000..4942beeb Binary files /dev/null and b/Documentation/pics/screenshot-HelloWorld.png differ diff --git a/Documentation/pics/screenshot-Settings.png b/Documentation/pics/screenshot-Settings.png index 4577b372..bf665858 100644 Binary files a/Documentation/pics/screenshot-Settings.png and b/Documentation/pics/screenshot-Settings.png differ diff --git a/Documentation/pics/screenshot-WifiConnect.png b/Documentation/pics/screenshot-WifiConnect.png deleted file mode 100644 index c7194c01..00000000 Binary files a/Documentation/pics/screenshot-WifiConnect.png and /dev/null differ diff --git a/Documentation/pics/screenshot-WifiManage.png b/Documentation/pics/screenshot-WifiManage.png index e33cf5fb..5d0785ff 100644 Binary files a/Documentation/pics/screenshot-WifiManage.png and b/Documentation/pics/screenshot-WifiManage.png differ diff --git a/Tactility/Source/TactilityConfig.h b/Tactility/Source/TactilityConfig.h index 65bce9d9..00f7ac0e 100644 --- a/Tactility/Source/TactilityConfig.h +++ b/Tactility/Source/TactilityConfig.h @@ -3,4 +3,5 @@ #include "TactilityHeadlessConfig.h" #define TT_CONFIG_APPS_LIMIT 32 -#define TT_CONFIG_FORCE_ONSCREEN_KEYBOARD false \ No newline at end of file +#define TT_CONFIG_FORCE_ONSCREEN_KEYBOARD false // for development/debug purposes +#define TT_SCREENSHOT_MODE false // for taking screenshots (e.g. forces SD card presence and Files tree on simulator) diff --git a/Tactility/Source/app/files/FilesData.cpp b/Tactility/Source/app/files/FilesData.cpp index 6761c852..eb0ef50a 100644 --- a/Tactility/Source/app/files/FilesData.cpp +++ b/Tactility/Source/app/files/FilesData.cpp @@ -1,7 +1,7 @@ #include "FilesData.h" #include "FileUtils.h" #include "StringUtils.h" -#include "TactilityCore.h" +#include "Tactility.h" namespace tt::app::files { @@ -42,19 +42,24 @@ bool data_set_entries_for_path(std::shared_ptr data, const char* path) { * ESP32 does not have a root directory, so we have to create it manually. * We'll add the NVS Flash partitions and the binding for the sdcard. */ - if (kernel::getPlatform() == kernel::PlatformEsp && strcmp(path, "/") == 0) { +#if TT_SCREENSHOT_MODE + bool show_custom_root = true; +#else + bool show_custom_root = (kernel::getPlatform() == kernel::PlatformEsp && strcmp(path, "/") == 0); +#endif + if (show_custom_root) { int dir_entries_count = 3; - auto** dir_entries = static_cast(malloc(sizeof(struct dirent*) * 3)); + auto** dir_entries = (dirent**)malloc(sizeof(struct dirent*) * 3); - dir_entries[0] = static_cast(malloc(sizeof(struct dirent))); + dir_entries[0] = (dirent*)malloc(sizeof(struct dirent)); dir_entries[0]->d_type = TT_DT_DIR; strcpy(dir_entries[0]->d_name, "assets"); - dir_entries[1] = static_cast(malloc(sizeof(struct dirent))); + dir_entries[1] = (dirent*)malloc(sizeof(struct dirent)); dir_entries[1]->d_type = TT_DT_DIR; strcpy(dir_entries[1]->d_name, "config"); - dir_entries[2] = static_cast(malloc(sizeof(struct dirent))); + dir_entries[2] = (dirent*)malloc(sizeof(struct dirent)); dir_entries[2]->d_type = TT_DT_DIR; strcpy(dir_entries[2]->d_name, "sdcard");