From 44d848ac660ab8471af868a036ad41b369514868 Mon Sep 17 00:00:00 2001 From: Hailey Somerville Date: Mon, 5 Feb 2024 22:32:33 +1100 Subject: [PATCH 1/3] define database::kCurrentDbVersion publicly --- src/database/database.cpp | 1 - src/database/include/database.hpp | 2 ++ 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/database/database.cpp b/src/database/database.cpp index 15e7060d..b596063c 100644 --- a/src/database/database.cpp +++ b/src/database/database.cpp @@ -56,7 +56,6 @@ static SingletonEnv sEnv; static const char kDbPath[] = "/.tangara-db"; static const char kKeyDbVersion[] = "schema_version"; -static const uint8_t kCurrentDbVersion = 5; static const char kKeyCustom[] = "U\0"; static const char kKeyCollator[] = "collator"; diff --git a/src/database/include/database.hpp b/src/database/include/database.hpp index 783d3872..0aec4c44 100644 --- a/src/database/include/database.hpp +++ b/src/database/include/database.hpp @@ -35,6 +35,8 @@ namespace database { +const uint8_t kCurrentDbVersion = 5; + struct SearchKey; class Record; class Iterator; From bf761e034cf27ed3f6f4e1bb1470478095e14852 Mon Sep 17 00:00:00 2001 From: Hailey Somerville Date: Mon, 5 Feb 2024 22:32:49 +1100 Subject: [PATCH 2/3] add version console command --- src/app_console/app_console.cpp | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/app_console/app_console.cpp b/src/app_console/app_console.cpp index 4b755c67..053cb356 100644 --- a/src/app_console/app_console.cpp +++ b/src/app_console/app_console.cpp @@ -24,6 +24,7 @@ #include "audio_events.hpp" #include "audio_fsm.hpp" #include "database.hpp" +#include "esp_app_desc.h" #include "esp_console.h" #include "esp_err.h" #include "esp_heap_caps.h" @@ -49,6 +50,23 @@ namespace console { std::shared_ptr AppConsole::sServices; +int CmdVersion(int argc, char** argv) { + std::cout << "firmware-version=" << esp_app_get_description()->version << std::endl; + std::cout << "samd-version=" << AppConsole::sServices->samd().Version() << std::endl; + std::cout << "collation=" << AppConsole::sServices->collator().Describe().value_or("") << std::endl; + std::cout << "database-schema=" << database::kCurrentDbVersion << std::endl; + return 0; +} + +void RegisterVersion() { + esp_console_cmd_t cmd{.command = "version", + .help = "Displays firmware version information", + .hint = NULL, + .func = &CmdVersion, + .argtable = NULL}; + esp_console_cmd_register(&cmd); +} + int CmdListDir(int argc, char** argv) { auto db = AppConsole::sServices->database().lock(); if (!db) { @@ -639,6 +657,7 @@ void RegisterLua() { } auto AppConsole::RegisterExtraComponents() -> void { + RegisterVersion(); RegisterListDir(); RegisterPlayFile(); /* From d78bbccdab6a0bc51e35e08379d4ac950917a61d Mon Sep 17 00:00:00 2001 From: Hailey Somerville Date: Tue, 6 Feb 2024 09:26:46 +1100 Subject: [PATCH 3/3] convert kCurrentDbVersion to a type of integer that gets stringified --- src/app_console/app_console.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app_console/app_console.cpp b/src/app_console/app_console.cpp index 053cb356..9c69ab6f 100644 --- a/src/app_console/app_console.cpp +++ b/src/app_console/app_console.cpp @@ -54,7 +54,7 @@ int CmdVersion(int argc, char** argv) { std::cout << "firmware-version=" << esp_app_get_description()->version << std::endl; std::cout << "samd-version=" << AppConsole::sServices->samd().Version() << std::endl; std::cout << "collation=" << AppConsole::sServices->collator().Describe().value_or("") << std::endl; - std::cout << "database-schema=" << database::kCurrentDbVersion << std::endl; + std::cout << "database-schema=" << uint32_t(database::kCurrentDbVersion) << std::endl; return 0; }