summaryrefslogtreecommitdiff
path: root/src/tangara/database/records.cpp
diff options
context:
space:
mode:
authorjacqueline <me@jacqueline.id.au>2024-09-24 15:24:16 +1000
committerjacqueline <me@jacqueline.id.au>2024-09-24 15:24:16 +1000
commitfaddb229fcf1417dd283ae43fb26fbf5b3ceaf19 (patch)
tree80dd36ae8422d5625d92fb138bd090b2058fe3f2 /src/tangara/database/records.cpp
parent5e43b422182b300074a2d2e02736557d34434996 (diff)
downloadtangara-fw-faddb229fcf1417dd283ae43fb26fbf5b3ceaf19.tar.gz
Record play_count in TrackData, incrementing it when tracks finish
Diffstat (limited to 'src/tangara/database/records.cpp')
-rw-r--r--src/tangara/database/records.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/tangara/database/records.cpp b/src/tangara/database/records.cpp
index b93ed149..addcc13d 100644
--- a/src/tangara/database/records.cpp
+++ b/src/tangara/database/records.cpp
@@ -95,6 +95,7 @@ auto EncodeDataValue(const TrackData& track) -> std::string {
tag_hashes,
cppbor::Uint{track.last_position},
cppbor::Uint{static_cast<unsigned int>(track.type)},
+ cppbor::Uint{track.play_count},
};
return val.toString();
}
@@ -147,6 +148,10 @@ auto ParseDataValue(const leveldb::Slice& slice) -> std::shared_ptr<TrackData> {
}
}
+ if (vals->size() >= 10 && vals->get(9)->type() == cppbor::UINT) {
+ res->play_count = vals->get(9)->asUint()->unsignedValue();
+ }
+
return res;
}