summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/bt.cc12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/bt.cc b/src/bt.cc
index 0f81590..cb47524 100644
--- a/src/bt.cc
+++ b/src/bt.cc
@@ -727,8 +727,18 @@ class MediaPlayerProxy : public BaseProxy, public Player {
case 1:
if (value.isEmpty()) {
track_ = MediaPlayerTrack{};
- } else {
+ } else if (value.containsValueOfType<MediaPlayerTrack>()) {
track_ = value.get<MediaPlayerTrack>();
+ } else if (value.containsValueOfType<std::vector<MediaPlayerTrack>>()) {
+ auto tracks = value.get<std::vector<MediaPlayerTrack>>();
+ if (tracks.empty()) {
+ track_ = MediaPlayerTrack{};
+ } else {
+ track_ = tracks.front();
+ }
+ } else {
+ manager_.logger().dbg(
+ std::format("Unexpected track type: {}", value.peekValueType()));
}
break;
case 2: