Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/actions/build-app/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ runs:
path: .
# The export reset prevents an error when building other targets
# The default environment variable is set to "esp32" by the GitHub Action
command: 'export IDF_TARGET= && python tactility.py Apps/${{ inputs.app_name }} build'
command: 'export IDF_TARGET= && python tactility.py build -p Apps/${{ inputs.app_name }}'
- name: 'Upload Artifact'
uses: actions/upload-artifact@v4
with:
Expand Down
6 changes: 3 additions & 3 deletions Apps/Brainfuck/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,6 @@ endif()
get_filename_component(TACTILITY_SDK_PATH "$ENV{TACTILITY_SDK_PATH}" ABSOLUTE)
include("${TACTILITY_SDK_PATH}/TactilitySDK.cmake")

tactility_project_pre(tactility.brainfuck)
project(tactility.brainfuck)
tactility_project_post(tactility.brainfuck)
tactility_project_pre(brainfuck)
project(brainfuck)
tactility_project_post(brainfuck)
15 changes: 9 additions & 6 deletions Apps/Brainfuck/manifest.properties
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
manifest.version=0.2
manifest.version=0.3
target.sdk=0.8.0-dev
target.platforms=esp32,esp32s3,esp32c6,esp32p4
app.id=tactility.brainfuck
app.version.name=0.11.0
app.version.code=11
app.name=Brainfuck interpreter
app.description=Brainfuck esoteric language interpreter
id=tactility.brainfuck
version.name=0.12.0
version.code=12
name=Brainfuck
description=Brainfuck esoteric language interpreter
app.0.id=tactility.brainfuck
app.0.name=Brainfuck interpreter
app.0.binary=brainfuck
6 changes: 3 additions & 3 deletions Apps/Breakout/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,6 @@ endif()
get_filename_component(TACTILITY_SDK_PATH "$ENV{TACTILITY_SDK_PATH}" ABSOLUTE)
include("${TACTILITY_SDK_PATH}/TactilitySDK.cmake")

tactility_project_pre(tactility.breakout)
project(tactility.breakout)
tactility_project_post(tactility.breakout)
tactility_project_pre(breakout)
project(breakout)
tactility_project_post(breakout)
15 changes: 9 additions & 6 deletions Apps/Breakout/manifest.properties
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
manifest.version=0.2
manifest.version=0.3
target.sdk=0.8.0-dev
target.platforms=esp32,esp32s3,esp32c6,esp32p4
app.id=tactility.breakout
app.version.name=0.14.0
app.version.code=14
app.name=Breakout
app.description=Classic brick-breaking arcade game
id=tactility.breakout
version.name=0.15.0
version.code=15
name=Breakout
description=Classic brick-breaking arcade game
app.0.id=tactility.breakout
app.0.name=Breakout
app.0.binary=breakout
6 changes: 3 additions & 3 deletions Apps/Calculator/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,6 @@ endif()
get_filename_component(TACTILITY_SDK_PATH "$ENV{TACTILITY_SDK_PATH}" ABSOLUTE)
include("${TACTILITY_SDK_PATH}/TactilitySDK.cmake")

tactility_project_pre(tactility.calculator)
project(tactility.calculator)
tactility_project_post(tactility.calculator)
tactility_project_pre(calculator)
project(calculator)
tactility_project_post(calculator)
13 changes: 8 additions & 5 deletions Apps/Calculator/manifest.properties
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
manifest.version=0.2
manifest.version=0.3
target.sdk=0.8.0-dev
target.platforms=esp32,esp32s3,esp32c6,esp32p4
app.id=tactility.calculator
app.version.name=0.12.0
app.version.code=12
app.name=Calculator
id=tactility.calculator
version.name=0.13.0
version.code=13
name=Calculator
app.0.id=tactility.calculator
app.0.name=Calculator
app.0.binary=calculator
13 changes: 13 additions & 0 deletions Apps/CoreUtils/date/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# tactility-cmakelists-version: 1
cmake_minimum_required(VERSION 3.20)

if (NOT DEFINED ENV{TACTILITY_SDK_PATH})
message(FATAL_ERROR "TACTILITY_SDK_PATH environment variable is not set")
endif()

get_filename_component(TACTILITY_SDK_PATH "$ENV{TACTILITY_SDK_PATH}" ABSOLUTE)
include("${TACTILITY_SDK_PATH}/TactilitySDK.cmake")

tactility_project_pre(coreutils.date)
project(coreutils.date)
tactility_project_post(coreutils.date)
4 changes: 4 additions & 0 deletions Apps/CoreUtils/date/main/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
include("$ENV{TACTILITY_SDK_PATH}/TactilitySDK.cmake")

file(GLOB_RECURSE SOURCE_FILES Source/*.c)
tactility_component_register(SRCS ${SOURCE_FILES})
12 changes: 12 additions & 0 deletions Apps/CoreUtils/date/main/Source/main.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
#include <stdio.h>
#include <time.h>

int main(int argc, char* argv[]) {
time_t now = time(NULL);
char buffer[64];
struct tm local_time;
localtime_r(&now, &local_time);
strftime(buffer, sizeof(buffer), "%a %b %e %H:%M:%S %Z %Y", &local_time);
printf("%s\n", buffer);
Comment thread
KenVanHoeylandt marked this conversation as resolved.
return 0;
}
13 changes: 13 additions & 0 deletions Apps/CoreUtils/echo/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# tactility-cmakelists-version: 1
cmake_minimum_required(VERSION 3.20)

if (NOT DEFINED ENV{TACTILITY_SDK_PATH})
message(FATAL_ERROR "TACTILITY_SDK_PATH environment variable is not set")
endif()

get_filename_component(TACTILITY_SDK_PATH "$ENV{TACTILITY_SDK_PATH}" ABSOLUTE)
include("${TACTILITY_SDK_PATH}/TactilitySDK.cmake")

tactility_project_pre(coreutils.echo)
project(coreutils.echo)
tactility_project_post(coreutils.echo)
4 changes: 4 additions & 0 deletions Apps/CoreUtils/echo/main/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
include("$ENV{TACTILITY_SDK_PATH}/TactilitySDK.cmake")

file(GLOB_RECURSE SOURCE_FILES Source/*.c)
tactility_component_register(SRCS ${SOURCE_FILES})
12 changes: 12 additions & 0 deletions Apps/CoreUtils/echo/main/Source/main.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
#include <stdio.h>

int main(int argc, char* argv[]) {
for (int i = 1; i < argc; i++) {
if (i > 1) {
printf(" ");
}
printf("%s", argv[i]);
}
printf("\n");
return 0;
}
16 changes: 16 additions & 0 deletions Apps/CoreUtils/manifest.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
manifest.version=0.3
target.sdk=0.8.0-dev
target.platforms=posix-x86_64,esp32s3
id=tactility.coreutils
version.name=0.2.0
version.code=2
name=CoreUtils
description=Commandline utilities
app.0.id=tactility.coreutils.echo
app.0.name=Echo
app.0.binary=echo
app.0.hidden=true
app.1.id=tactility.coreutils.date
app.1.name=Date
app.1.binary=date
app.1.hidden=true
6 changes: 3 additions & 3 deletions Apps/Diceware/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,6 @@ endif()
get_filename_component(TACTILITY_SDK_PATH "$ENV{TACTILITY_SDK_PATH}" ABSOLUTE)
include("${TACTILITY_SDK_PATH}/TactilitySDK.cmake")

tactility_project_pre(tactility.diceware)
project(tactility.diceware)
tactility_project_post(tactility.diceware)
tactility_project_pre(diceware)
project(diceware)
tactility_project_post(diceware)
4 changes: 2 additions & 2 deletions Apps/Diceware/main/Source/Diceware.cpp
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#include "Diceware.h"

#include <app/manager.h>
#include <app/start.h>
#include <app/paths.h>
#include <lvgl/lvgl.h>
#include <lvgl/widgets/toolbar.h>
Expand Down Expand Up @@ -115,7 +115,7 @@ static void onHelpClicked(lv_event_t* e) {
"The hardware random number generator can use the Wi-Fi radio to improve randomness. There's no need to connect to a Wi-Fi network for this to work.",
"OK",
};
app_manager_start_for_result("AlertDialog", ctx->appInstanceId, 3, argv, &ctx->pendingHelpDialogId);
app_start_for_result("AlertDialog", 3, argv, ctx->appInstanceId, &ctx->pendingHelpDialogId);
}

void dicewareCreateWidgets(lv_obj_t* parent, void* userData) {
Expand Down
14 changes: 9 additions & 5 deletions Apps/Diceware/manifest.properties
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
manifest.version=0.2
manifest.version=0.3
target.sdk=0.8.0-dev
target.platforms=esp32,esp32s3,esp32c6,esp32p4
app.id=tactility.diceware
app.version.name=0.14.0
app.version.code=14
app.name=Diceware
id=tactility.diceware
version.name=0.15.0
version.code=15
name=Diceware
description=Password generator
app.0.id=tactility.diceware
app.0.name=Diceware
app.0.binary=diceware
6 changes: 3 additions & 3 deletions Apps/Doom/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,6 @@ endif()
get_filename_component(TACTILITY_SDK_PATH "$ENV{TACTILITY_SDK_PATH}" ABSOLUTE)
include("${TACTILITY_SDK_PATH}/TactilitySDK.cmake")

tactility_project_pre(tactility.doom)
project(tactility.doom)
tactility_project_post(tactility.doom)
tactility_project_pre(doom)
project(doom)
tactility_project_post(doom)
3 changes: 2 additions & 1 deletion Apps/Doom/main/Source/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
#include <app/event.h>
#include <app/manager.h>
#include <app/scheduler.h>
#include <app/start.h>

#include <tactility/check.h>
#include <tactility/device.h>
Expand All @@ -22,7 +23,7 @@ constexpr auto* TAG = "Doom";
static void showErrorAndWait(AppInstanceId appInstanceId, const char* message) {
const char* argv[] = { "Error", message, "OK" };
uint32_t dialogInstanceId = 0;
app_manager_start_for_result("tactility.alertdialog", appInstanceId, 3, argv, &dialogInstanceId);
app_start_for_result("tactility.alertdialog", 3, argv, appInstanceId, &dialogInstanceId);
if (dialogInstanceId == 0) {
return;
}
Expand Down
15 changes: 9 additions & 6 deletions Apps/Doom/manifest.properties
Original file line number Diff line number Diff line change
@@ -1,9 +1,12 @@
manifest.version=0.2
manifest.version=0.3
target.sdk=0.8.0-dev
target.platforms=esp32p4
app.id=tactility.doom
app.version.name=0.5.0
app.version.code=5
app.name=Doom
app.description=Classic DOOM. Tab5 only, keyboard required to play.
id=tactility.doom
version.name=0.6.0
version.code=6
name=Doom
description=Classic DOOM. Tab5 only, keyboard required to play.
app.0.id=tactility.doom
app.0.name=Doom
app.0.binary=doom
requires.device.id=m5stack-tab5
6 changes: 3 additions & 3 deletions Apps/EpubReader/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,6 @@ endif()
get_filename_component(TACTILITY_SDK_PATH "$ENV{TACTILITY_SDK_PATH}" ABSOLUTE)
include("${TACTILITY_SDK_PATH}/TactilitySDK.cmake")

tactility_project_pre(tactility.epubreader)
project(tactility.epubreader)
tactility_project_post(tactility.epubreader)
tactility_project_pre(epubreader)
project(epubreader)
tactility_project_post(epubreader)
13 changes: 7 additions & 6 deletions Apps/EpubReader/main/Source/EpubReader.cpp
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
#include "EpubReader.h"
#include "HtmlStrip.h" // stripHtmlToText

#include <app/manager.h>
#include <app/paths.h>
#include <app/start.h>
#include <lvgl/widgets/toolbar.h>
#include <tactility/log.h>
#include <esp_heap_caps.h>
Expand Down Expand Up @@ -192,9 +192,10 @@ void openTocDialog(Context* ctx) {
for (const auto& item : toc) {
argv.push_back(item.title.c_str());
}
app_manager_start_for_result(
"SelectionDialog", ctx->appInstanceId,
(int)argv.size(), argv.data(), &ctx->tocDialogId_
app_start_for_result(
"SelectionDialog",
(int)argv.size(), argv.data(),
ctx->appInstanceId, &ctx->tocDialogId_
);
}

Expand All @@ -215,8 +216,8 @@ void epubReaderCreateWidgets(lv_obj_t* parent, void* userData) {
"Epub Reader requires a device with PSRAM and cannot run on this hardware.",
"OK",
};
app_manager_start_for_result(
"AlertDialog", ctx->appInstanceId, 3, argv, &ctx->psramAlertId_
app_start_for_result(
"AlertDialog", 3, argv, ctx->appInstanceId, &ctx->psramAlertId_
);
}
return;
Expand Down
15 changes: 9 additions & 6 deletions Apps/EpubReader/manifest.properties
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
manifest.version=0.2
manifest.version=0.3
target.sdk=0.8.0-dev
target.platforms=esp32s3,esp32p4
app.id=tactility.epubreader
app.version.name=0.11.0
app.version.code=11
app.name=Epub Reader
app.description=Epub and text file reader. Requires PSRAM!
id=tactility.epubreader
version.name=0.12.0
version.code=12
name=ePub Reader
description=ePub and text file reader. Requires PSRAM!
app.0.id=tactility.epubreader
app.0.name=ePub Reader
app.0.binary=epubreader
6 changes: 3 additions & 3 deletions Apps/EspNowBridge/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,6 @@ endif()
get_filename_component(TACTILITY_SDK_PATH "$ENV{TACTILITY_SDK_PATH}" ABSOLUTE)
include("${TACTILITY_SDK_PATH}/TactilitySDK.cmake")

tactility_project_pre(tactility.espnowbridge)
project(tactility.espnowbridge)
tactility_project_post(tactility.espnowbridge)
tactility_project_pre(espnowbridge)
project(espnowbridge)
tactility_project_post(espnowbridge)
9 changes: 2 additions & 7 deletions Apps/EspNowBridge/main/Source/EspNowBridge.cpp
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
#include "EspNowBridge.h"

#include <app/manager.h>
#include <app/paths.h>
#include <app/stream.h>
#include <app/start.h>
#include <tactility/device.h>
#include <tactility/drivers/wifi.h>
#include <tactility/wifi_auto_scan.h>
Expand Down Expand Up @@ -550,11 +550,6 @@ static void startUpdateTask(Context* ctx, const std::string& filePath) {
}
}

// Matches Tactility's own built-in file-selection system app (Tactility/Source/app/fileselection/
// FileSelection.cpp) - its manifest id and argv convention aren't part of any public app-module
// header (that app isn't generic app-module framework, just one particular app shipped by
// Tactility), so external apps reach it by calling app_manager_start_for_result_with_streams()
// against these directly, the same way Tactility's own built-in apps (e.g. Notes) do internally.
static constexpr auto* FILE_SELECTION_APP_ID = "tactility.fileselection";
static constexpr auto* FILE_SELECTION_MODE_EXISTING = "--existing";

Expand All @@ -578,7 +573,7 @@ static void onUpdateButtonClicked(lv_event_t* /*event*/) {
.event_group = ctx->eventGroup,
};
uint32_t instanceId = 0;
if (app_manager_start_for_result_with_streams(FILE_SELECTION_APP_ID, ctx->appInstanceId, 1, argv, &binding, 1, &instanceId) == ERROR_NONE) {
if (app_start_for_result_with_streams(FILE_SELECTION_APP_ID, 1, argv, &binding, 1, ctx->appInstanceId, &instanceId) == ERROR_NONE) {
ctx->pickFileLaunchId = instanceId;
}
}
Expand Down
15 changes: 9 additions & 6 deletions Apps/EspNowBridge/manifest.properties
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
manifest.version=0.2
manifest.version=0.3
target.sdk=0.8.0-dev
target.platforms=esp32p4
app.id=tactility.espnowbridge
app.version.name=0.9.0
app.version.code=9
app.name=ESP-NOW Bridge
app.description=Companion app for updating P4 device C6 co-processor firmware to enable ESP-NOW bridge support.
id=tactility.espnowbridge
version.name=0.10.0
version.code=10
name=ESP-NOW Bridge
description=Companion app for updating P4 device C6 co-processor firmware to enable ESP-NOW bridge support.
app.0.id=tactility.espnowbridge
app.0.name=ESP-NOW Bridge
app.0.binary=espnowbridge
6 changes: 3 additions & 3 deletions Apps/GPIO/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,6 @@ endif()
get_filename_component(TACTILITY_SDK_PATH "$ENV{TACTILITY_SDK_PATH}" ABSOLUTE)
include("${TACTILITY_SDK_PATH}/TactilitySDK.cmake")

tactility_project_pre(tactility.gpio)
project(tactility.gpio)
tactility_project_post(tactility.gpio)
tactility_project_pre(gpio)
project(gpio)
tactility_project_post(gpio)
Loading
Loading