summaryrefslogtreecommitdiff
path: root/src/tangara/app_console/app_console.cpp
diff options
context:
space:
mode:
authorjacqueline <me@jacqueline.id.au>2024-07-17 13:39:14 +1000
committerjacqueline <me@jacqueline.id.au>2024-07-17 13:39:14 +1000
commita3f48074fb2870535184e90f8aeda2e98c19d24e (patch)
treef5174d12a42a89514315319f697e8d25700b12f3 /src/tangara/app_console/app_console.cpp
parentd8ce31e46b0dea356dd415b62f71c265bea54d2a (diff)
downloadtangara-fw-a3f48074fb2870535184e90f8aeda2e98c19d24e.tar.gz
Add a console command to dump a snapshot
Diffstat (limited to 'src/tangara/app_console/app_console.cpp')
-rw-r--r--src/tangara/app_console/app_console.cpp21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/tangara/app_console/app_console.cpp b/src/tangara/app_console/app_console.cpp
index af9061fe..11862143 100644
--- a/src/tangara/app_console/app_console.cpp
+++ b/src/tangara/app_console/app_console.cpp
@@ -683,6 +683,26 @@ void RegisterLua() {
esp_console_cmd_register(&cmd_luarun);
}
+int CmdSnapshot(int argc, char** argv) {
+ if (argc != 2) {
+ std::cout << "snapshot expects 1 argument" << std::endl;
+ return 1;
+ }
+
+ events::Ui().Dispatch(ui::Screenshot{.filename = argv[1]});
+ return 0;
+}
+
+void RegisterSnapshot() {
+ esp_console_cmd_t cmd_snapshot{
+ .command = "snapshot",
+ .help = "Saves a screenshot of the display to a file",
+ .hint = "filename",
+ .func = &CmdSnapshot,
+ .argtable = NULL};
+ esp_console_cmd_register(&cmd_snapshot);
+}
+
auto AppConsole::PrerunCallback() -> void {
Console::PrerunCallback();
esp_log_level_set("*", ESP_LOG_NONE);
@@ -713,6 +733,7 @@ auto AppConsole::RegisterExtraComponents() -> void {
RegisterHapticEffect();
RegisterLua();
+ RegisterSnapshot();
}
} // namespace console