diff options
author | arnova <arnova@void.org> | 2013-04-29 14:38:48 +0200 |
---|---|---|
committer | arnova <arnova@void.org> | 2013-04-29 18:40:55 +0200 |
commit | d487ead0ccc1a8adbdfaaa01a3845ca86ecf50be (patch) | |
tree | 0df3a81d41accf77de07f86d7b3688f3bbc40b7b | |
parent | bb79b32b87c4324208b8d5e4953cbe7522fb6554 (diff) |
fixed: Freezing when player fails to queue the next song (fixes #14297 #14231 #14229 #13919)
-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; |