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/records.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/records.cpp')
| -rw-r--r-- | src/tangara/database/records.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/tangara/database/records.cpp b/src/tangara/database/records.cpp index 17009cd8..012cda64 100644 --- a/src/tangara/database/records.cpp +++ b/src/tangara/database/records.cpp @@ -93,6 +93,7 @@ auto EncodeDataValue(const TrackData& track) -> std::string { cppbor::Uint{track.modified_at.first}, cppbor::Uint{track.modified_at.second}, tag_hashes, + cppbor::Uint{track.last_position}, }; return val.toString(); } @@ -104,13 +105,14 @@ auto ParseDataValue(const leveldb::Slice& slice) -> std::shared_ptr<TrackData> { return nullptr; } auto vals = item->asArray(); - if (vals->size() != 7 || vals->get(0)->type() != cppbor::UINT || + if (vals->size() != 8 || vals->get(0)->type() != cppbor::UINT || vals->get(1)->type() != cppbor::TSTR || vals->get(2)->type() != cppbor::UINT || vals->get(3)->type() != cppbor::SIMPLE || vals->get(4)->type() != cppbor::UINT || vals->get(5)->type() != cppbor::UINT || - vals->get(6)->type() != cppbor::MAP) { + vals->get(6)->type() != cppbor::MAP || + vals->get(7)->type() != cppbor::UINT) { return {}; } auto res = std::make_shared<TrackData>(); @@ -127,6 +129,9 @@ auto ParseDataValue(const leveldb::Slice& slice) -> std::shared_ptr<TrackData> { auto tag = static_cast<Tag>(entry.first->asUint()->unsignedValue()); res->individual_tag_hashes[tag] = entry.second->asUint()->unsignedValue(); } + + res->last_position = vals->get(7)->asUint()->unsignedValue(); + return res; } |
