aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--xbmc/Application.cpp19
1 files changed, 15 insertions, 4 deletions
diff --git a/xbmc/Application.cpp b/xbmc/Application.cpp
index d99703a731..fdb442f730 100644
--- a/xbmc/Application.cpp
+++ b/xbmc/Application.cpp
@@ -5001,11 +5001,22 @@ bool CApplication::OnMessage(CGUIMessage& message)
}
#endif
- // ok - send the file to the player if it wants it
- if (m_pPlayer && m_pPlayer->QueueNextFile(file))
- { // player wants the next file
- m_nextPlaylistItem = iNext;
+ // ok - send the file to the player, if it accepts it
+ if (m_pPlayer)
+ {
+ if (m_pPlayer->QueueNextFile(file))
+ {
+ // player accepted the next file
+ m_nextPlaylistItem = iNext;
+ }
+ else
+ {
+ /* Player didn't accept next file: *ALWAYS* advance playlist in this case so the player can
+ queue the next (if it wants to) and it doesn't keep looping on this song */
+ g_playlistPlayer.SetCurrentSong(iNext);
+ }
}
+
return true;
}
break;