--- a/upqo/ohplaylist_qo.h
+++ b/upqo/ohplaylist_qo.h
@@ -70,6 +70,11 @@
emit currentTrackId(value);
} else if (!strcmp(nm, "TransportState")) {
emit tpStateChanged(value);
+ if (m_curtpstate == UPnPClient::OHPlaylist::TPS_Stopped &&
+ value == UPnPClient::OHPlaylist::TPS_Playing && m_curid != -1) {
+ emit currentTrackId(m_curid);
+ }
+ m_curtpstate = UPnPClient::OHPlaylist::TPState(value);
} else if (!strcmp(nm, "Shuffle")) {
emit shuffleChanged(value != 0);
} else if (!strcmp(nm, "Repeat")) {
@@ -252,6 +257,8 @@
std::vector<int> m_idsv;
std::unordered_map<int, UPnPClient::UPnPDirObject> m_metapool;
int m_curid;
+ UPnPClient::OHPlaylist::TPState m_curtpstate{
+ UPnPClient::OHPlaylist::TPS_Unknown};
bool m_forceUpdate;
bool m_discardArrayEvents;