diff options
-rw-r--r-- | xbmc/Application.cpp | 19 |
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; |