--- a/src/avtransport.cxx
+++ b/src/avtransport.cxx
@@ -240,21 +240,25 @@
// MPD may have switched to the next track, or may be playing
// something else altogether if some other client told it to
- if (!uri.compare(m_nextUri)) {
- m_uri = m_nextUri;
- m_curMetadata = m_nextMetadata;
- m_nextUri.clear();
- m_nextMetadata.clear();
- } else if (uri.compare(m_uri)) {
- // Someone else is controlling mpd. Maybe our own ohplaylist.
- m_nextMetadata.clear();
- m_nextUri.clear();
- m_uri = uri;
- if (!m_ohp || !m_ohp->cacheFind(uri, m_curMetadata)) {
- m_curMetadata = didlmake(mpds.currentsong);
- }
- }
-
+ if (m_dev->radioPlaying()) {
+ m_curMetadata = didlmake(mpds.currentsong);
+ } else {
+ if (!uri.compare(m_nextUri)) {
+ m_uri = m_nextUri;
+ m_curMetadata = m_nextMetadata;
+ m_nextUri.clear();
+ m_nextMetadata.clear();
+ } else if (uri.compare(m_uri)) {
+ // Someone else is controlling mpd. Maybe our own ohplaylist.
+ m_nextMetadata.clear();
+ m_nextUri.clear();
+ m_uri = uri;
+ if (!m_ohp || !m_ohp->cacheFind(uri, m_curMetadata)) {
+ m_curMetadata = didlmake(mpds.currentsong);
+ }
+ }
+ }
+
status["CurrentTrack"] = "1";
status["CurrentTrackURI"] = uri;