aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorarnova <arnova@void.org>2013-04-29 14:38:48 +0200
committerarnova <arnova@void.org>2013-04-29 18:40:55 +0200
commitd487ead0ccc1a8adbdfaaa01a3845ca86ecf50be (patch)
tree0df3a81d41accf77de07f86d7b3688f3bbc40b7b
parentbb79b32b87c4324208b8d5e4953cbe7522fb6554 (diff)
fixed: Freezing when player fails to queue the next song (fixes #14297 #14231 #14229 #13919)
-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;