diff options
| author | cooljqln <cooljqln@noreply.codeberg.org> | 2024-09-19 04:44:16 +0000 |
|---|---|---|
| committer | cooljqln <cooljqln@noreply.codeberg.org> | 2024-09-19 04:44:16 +0000 |
| commit | 1eddfe97d9398215d4512785c669cf7cc94b6223 (patch) | |
| tree | 6b7223e9c0e677705ec3ccfd5846f8fe0cdebeb1 /src/tangara/database/database.cpp | |
| parent | 9aa77ec5ad369cd7d5ca46d475df29d971416a73 (diff) | |
| parent | 7f43d4d1265ce7f456b36f51987c812d35bcd616 (diff) | |
| download | tangara-fw-1eddfe97d9398215d4512785c669cf7cc94b6223.tar.gz | |
Merge pull request 'daniel/persistent-positions' (#104) from daniel/persistent-positions into main
Reviewed-on: https://codeberg.org/cool-tech-zone/tangara-fw/pulls/104
Reviewed-by: cooljqln <cooljqln@noreply.codeberg.org>
Diffstat (limited to 'src/tangara/database/database.cpp')
| -rw-r--r-- | src/tangara/database/database.cpp | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/tangara/database/database.cpp b/src/tangara/database/database.cpp index 64451f48..9d0de695 100644 --- a/src/tangara/database/database.cpp +++ b/src/tangara/database/database.cpp @@ -44,6 +44,7 @@ #include "memory_resource.hpp" #include "result.hpp" #include "tasks.hpp" +#include "database.hpp" namespace database { @@ -269,6 +270,24 @@ auto Database::getTrack(TrackId id) -> std::shared_ptr<Track> { return std::make_shared<Track>(data, tags); } +auto Database::getTrackID(std::string path) -> std::optional<TrackId> { + std::string raw_data; + if (!db_->Get(leveldb::ReadOptions(), EncodePathKey(path), &raw_data).ok()) { + return {}; + } + return BytesToTrackId(raw_data); +} + +auto Database::setTrackData(TrackId id, const TrackData& data) -> void { + std::string key = EncodeDataKey(id); + std::string raw_val = EncodeDataValue(data); + + auto res = db_->Put(leveldb::WriteOptions(), key, raw_val); + if (!res.ok()) { + ESP_LOGI(kTag, "Updating track data failed for track ID: %lu", id); + } +} + auto Database::getIndexes() -> std::vector<IndexInfo> { // TODO(jacqueline): This probably needs to be async? When we have runtime // configurable indexes, they will need to come from somewhere. |
