Clementine-audio-player-Mac.../src/core
Jim Broadus 6240fd3d0a player: Fix crash on UrlHandler error.
In a case where a playlist is composed entirely of unresolvable
internet service URLs and the playlist is set to repeat, playing an
item will result in an infinite (until crash) recursive condition.
HandleLoadResult is called with a NoMoreTracks result. It then calls
NextItem, which calls PlayAt for the next item, which, again, calls
HandleLoadResult.

This can be reproduced by logging into a subsonic server, adding items
to an empty playlist, then signing out.

To solve this, separate the error condition from the NoMoreTracks
result. Handle URL resolution errors the same way that media playback
errors are handled, where an error count is incremented and the player
stops if a limit is reached. The common code also notifies the playlist
of the error and provides user feedback by graying out the item.
2021-06-21 12:52:25 +01:00
..
appearance.cpp More copyright info fixes 2014-11-05 17:48:04 +01:00
appearance.h Fix copyright notices inside src/core 2014-11-05 17:48:03 +01:00
application.cpp application: Add splash during initialization 2021-02-21 14:18:54 +00:00
application.h application: Add splash during initialization 2021-02-21 14:18:54 +00:00
backgroundstreams.cpp Fix copyright notices inside src/core 2014-11-05 17:48:03 +01:00
backgroundstreams.h Fix some problems 2014-11-05 17:48:03 +01:00
cachedlist.h Reformat all C++ 2020-09-22 14:56:06 +01:00
commandlineoptions.cpp add CLI play-playlist option, to play given playlist name. 2020-11-28 20:24:56 +00:00
commandlineoptions.h add CLI play-playlist option, to play given playlist name. 2020-11-28 20:24:56 +00:00
crashreporting.cpp Replace qrand usage with QRandomGenerator 2021-04-20 10:31:07 +01:00
crashreporting.h Reformat all C++ 2020-09-22 14:56:06 +01:00
database.cpp Reformat all C++ 2020-09-22 14:56:06 +01:00
database.h Reformat all C++ 2020-09-22 14:56:06 +01:00
deletefiles.cpp Reformat all C++ 2020-09-22 14:56:06 +01:00
deletefiles.h Reformat all C++ 2020-09-22 14:56:06 +01:00
filesystemmusicstorage.cpp Reformat all C++ 2020-09-22 14:56:06 +01:00
filesystemmusicstorage.h More copyright info fixes 2014-11-05 17:48:04 +01:00
filesystemwatcherinterface.cpp More copyright info fixes 2014-11-05 17:48:04 +01:00
filesystemwatcherinterface.h Return boolean from FileSystemWatcherInterface::AddPath to indicate success. 2020-01-16 21:06:11 -08:00
globalshortcutbackend.cpp More copyright info fixes 2014-11-05 17:48:04 +01:00
globalshortcutbackend.h More copyright info fixes 2014-11-05 17:48:04 +01:00
globalshortcuts.cpp Add a shortcut to go to next album 2021-06-03 17:06:48 +01:00
globalshortcuts.h Add a shortcut to go to next album 2021-06-03 17:06:48 +01:00
gnomeglobalshortcutbackend.cpp Reformat all C++ 2020-09-22 14:56:06 +01:00
gnomeglobalshortcutbackend.h Fix global shortcuts using GSD D-Bus backend (#6251) 2019-01-09 04:11:28 +00:00
kglobalaccelglobalshortcutbackend.cpp Reformat all C++ 2020-09-22 14:56:06 +01:00
kglobalaccelglobalshortcutbackend.h Reformat all C++ 2020-09-22 14:56:06 +01:00
mac_delegate.h Reformat all C++ 2020-09-22 14:56:06 +01:00
mac_startup.h More copyright info fixes 2014-11-05 17:48:04 +01:00
mac_startup.mm Reformat all C++ 2020-09-22 14:56:06 +01:00
mac_utilities.h Reformat all C++ 2020-09-22 14:56:06 +01:00
macfslistener.h Return boolean from FileSystemWatcherInterface::AddPath to indicate success. 2020-01-16 21:06:11 -08:00
macfslistener.mm Reformat all C++ 2020-09-22 14:56:06 +01:00
macglobalshortcutbackend.h Reformat all C++ 2020-09-22 14:56:06 +01:00
macglobalshortcutbackend.mm Reformat all C++ 2020-09-22 14:56:06 +01:00
mergedproxymodel.cpp Fix hang during internet model reset 2020-12-22 20:40:05 +00:00
mergedproxymodel.h Fix hang during internet model reset 2020-12-22 20:40:05 +00:00
metatypes.cpp Removed dirty hack in InternetModel; added "radiobrowser:" url handler; rework station play callback 2021-03-16 11:03:00 +00:00
metatypes.h More copyright info fixes 2014-11-05 17:48:04 +01:00
mimedata.h All changes for ClemRemote v1.0 (in one go) 2020-12-17 12:23:30 +00:00
mpris.cpp Reformat all C++ 2020-09-22 14:56:06 +01:00
mpris.h Fix some problems 2014-11-05 17:48:04 +01:00
mpris2.cpp Reformat all C++ 2020-09-22 14:56:06 +01:00
mpris2.h Reformat all C++ 2020-09-22 14:56:06 +01:00
mpris_common.h More copyright info fixes 2014-11-05 17:48:04 +01:00
multisortfilterproxy.cpp Reformat all C++ 2020-09-22 14:56:06 +01:00
multisortfilterproxy.h More copyright info fixes 2014-11-05 17:48:04 +01:00
musicstorage.cpp More copyright info fixes 2014-11-05 17:48:04 +01:00
musicstorage.h Reformat all C++ 2020-09-22 14:56:06 +01:00
network.cpp Reformat all C++ 2020-09-22 14:56:06 +01:00
network.h Add a timeout option to NetworkAccessManager. 2019-12-25 23:53:45 -08:00
networkproxyfactory.cpp Reformat all C++ 2020-09-22 14:56:06 +01:00
networkproxyfactory.h Reformat all C++ 2020-09-22 14:56:06 +01:00
organise.cpp Reformat all C++ 2020-09-22 14:56:06 +01:00
organise.h Reformat all C++ 2020-09-22 14:56:06 +01:00
organiseformat.cpp organise: Add a tag override mechanism to OrganiseFormat 2020-06-07 14:45:50 +01:00
organiseformat.h Reformat all C++ 2020-09-22 14:56:06 +01:00
player.cpp player: Fix crash on UrlHandler error. 2021-06-21 12:52:25 +01:00
player.h player: Fix crash on UrlHandler error. 2021-06-21 12:52:25 +01:00
potranslator.h Update non optionnals sources to qt5 2015-04-11 23:24:07 +02:00
qtfslistener.cpp Return boolean from FileSystemWatcherInterface::AddPath to indicate success. 2020-01-16 21:06:11 -08:00
qtfslistener.h Reformat all C++ 2020-09-22 14:56:06 +01:00
qxtglobalshortcutbackend.cpp Reformat all C++ 2020-09-22 14:56:06 +01:00
qxtglobalshortcutbackend.h Update non optionnals sources to qt5 2015-04-11 23:24:07 +02:00
scoped_cftyperef.h Some more NULL -> nullptr conversions. 2014-02-21 17:30:46 +01:00
scoped_nsobject.h Reformat all non-3rd-party C/C++/Objective-C++. 2014-02-07 16:34:20 +01:00
scopedgobject.h More copyright info fixes 2014-11-05 17:48:04 +01:00
scopedtransaction.cpp Reformat all C++ 2020-09-22 14:56:06 +01:00
scopedtransaction.h More copyright info fixes 2014-11-05 17:48:04 +01:00
settingsprovider.cpp More copyright info fixes 2014-11-05 17:48:04 +01:00
settingsprovider.h Reformat all C++ 2020-09-22 14:56:06 +01:00
signalchecker.cpp Reformat all C++ 2020-09-22 14:56:06 +01:00
signalchecker.h disconnect GVolumeMonitor signals from GioLister before destroying it 2016-05-11 17:58:12 +03:00
simpletreeitem.h Reformat all C++ 2020-09-22 14:56:06 +01:00
simpletreemodel.h Fix some problems 2014-11-05 17:48:04 +01:00
song.cpp protobuf: Fix namespace conflict 2021-02-21 14:17:26 +00:00
song.h protobuf: Fix namespace conflict 2021-02-21 14:17:26 +00:00
songloader.cpp Changed to const reference 2021-04-28 21:51:12 +01:00
songloader.h Optimization to avoid save+delete of remote playlists to temporary file 2021-04-28 21:51:12 +01:00
songpathparser.cpp tagreader: Relocate artist/album/title guessing code 2021-05-17 13:20:34 +01:00
songpathparser.h tagreader: Relocate artist/album/title guessing code 2021-05-17 13:20:34 +01:00
stylesheetloader.cpp Reformat all C++ 2020-09-22 14:56:06 +01:00
stylesheetloader.h Reformat all C++ 2020-09-22 14:56:06 +01:00
tagreaderclient.cpp settings: Add option to guess song metadata 2021-05-24 15:23:05 +01:00
tagreaderclient.h settings: Add option to guess song metadata 2021-05-24 15:23:05 +01:00
taskmanager.cpp More copyright info fixes 2014-11-05 17:48:04 +01:00
taskmanager.h Remove extra ';' 2019-11-10 00:30:18 +01:00
thread.cpp Don't set thread priority in LibraryWatcher constructor, as this is executed in the main thread. 2015-02-28 16:44:32 +01:00
thread.h Reformat all C++ 2020-09-22 14:56:06 +01:00
ubuntuunityhack.cpp Reformat all C++ 2020-09-22 14:56:06 +01:00
ubuntuunityhack.h More copyright info fixes 2014-11-05 17:48:04 +01:00
urlhandler.cpp More copyright info fixes 2014-11-05 17:48:04 +01:00
urlhandler.h player: Fix crash on UrlHandler error. 2021-06-21 12:52:25 +01:00
utilities.cpp Replace qrand usage with QRandomGenerator 2021-04-20 10:31:07 +01:00
utilities.h utilities: Add common method for bug report URL generation 2021-02-03 00:32:00 +00:00