summaryrefslogtreecommitdiff
path: root/src/database
diff options
context:
space:
mode:
authorjacqueline <me@jacqueline.id.au>2024-03-06 13:59:33 +1100
committerjacqueline <me@jacqueline.id.au>2024-03-06 13:59:33 +1100
commit14552881900bb3ed0e9ed2d4a732e4104b32ccfa (patch)
tree37c1a0e361e7ec8a5209241ed989a7329f6345c9 /src/database
parent53c4ea7805f1af6a4d2969fc8eabbc8ae26ac5ca (diff)
downloadtangara-fw-14552881900bb3ed0e9ed2d4a732e4104b32ccfa.tar.gz
Restore the previous track position when booting
Diffstat (limited to 'src/database')
-rw-r--r--src/database/database.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/database/database.cpp b/src/database/database.cpp
index ec11455b..ca92cf6b 100644
--- a/src/database/database.cpp
+++ b/src/database/database.cpp
@@ -229,13 +229,17 @@ auto Database::sizeOnDiskBytes() -> size_t {
}
auto Database::put(const std::string& key, const std::string& val) -> void {
- db_->Put(leveldb::WriteOptions{}, kKeyCustom + key, val);
+ if (val.empty()) {
+ db_->Delete(leveldb::WriteOptions{}, kKeyCustom + key);
+ } else {
+ db_->Put(leveldb::WriteOptions{}, kKeyCustom + key, val);
+ }
}
auto Database::get(const std::string& key) -> std::optional<std::string> {
std::string val;
auto res = db_->Get(leveldb::ReadOptions{}, kKeyCustom + key, &val);
- if (!res.ok()) {
+ if (!res.ok() || val.empty()) {
return {};
}
return val;