summaryrefslogtreecommitdiff
path: root/src/database/database.cpp
diff options
context:
space:
mode:
authorjacqueline <me@jacqueline.id.au>2023-06-19 08:51:34 +1000
committerjacqueline <me@jacqueline.id.au>2023-06-19 08:51:34 +1000
commit6ff8b5886ef91ed46dba08686900d519f6c9c62d (patch)
tree133daa91898e047fd93a5e83ba6990af2904e5a1 /src/database/database.cpp
parent4e5dba158367f9b8b440e6c5051c95d9c22b76d7 (diff)
downloadtangara-fw-6ff8b5886ef91ed46dba08686900d519f6c9c62d.tar.gz
Support playing tracks by track id
Diffstat (limited to 'src/database/database.cpp')
-rw-r--r--src/database/database.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/database/database.cpp b/src/database/database.cpp
index a96b3eab..ac5e4873 100644
--- a/src/database/database.cpp
+++ b/src/database/database.cpp
@@ -229,6 +229,18 @@ auto Database::Update() -> std::future<void> {
});
}
+auto Database::GetTrackPath(TrackId id)
+ -> std::future<std::optional<std::string>> {
+ return worker_task_->Dispatch<std::optional<std::string>>(
+ [=, this]() -> std::optional<std::string> {
+ auto track_data = dbGetTrackData(id);
+ if (track_data) {
+ return track_data->filepath();
+ }
+ return {};
+ });
+}
+
auto Database::GetTracks(std::size_t page_size) -> std::future<Result<Track>*> {
return worker_task_->Dispatch<Result<Track>*>([=, this]() -> Result<Track>* {
Continuation<Track> c{.iterator = nullptr,