Commit Graph

16 Commits

Author SHA1 Message Date
Marcus Müller 8e47ab59e5 internet services: consistently use 'override'
Signed-off-by: Marcus Müller <marcus_clementine@baseband.digital>
2023-09-17 12:43:13 +01:00
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
Fabio Bas 058fe6f4be fall back to url if url_resolved is empty 2021-06-02 22:40:13 +01:00
Fabio Bas 38ac0d3ccb Radiobrowser.info: use the url_resolved field for radio stations 2021-06-02 22:40:13 +01:00
Fabio Bas 354f6a23e0 snake_case for variable names; reworked url resolution signals 2021-04-07 14:22:15 +01:00
Fabio Bas 91e1e5880d Fix compilation on older Qt, use Player::SongChangeRequestProcessed() signal to handle station play count 2021-04-07 14:22:15 +01:00
Fabio Bas cd561af516 radiobrowser url handler: emit metadata for radio stations 2021-04-07 14:22:15 +01:00
Jim Broadus c394d7d2dd settings: Don't connect service-specific signals to every page
Wii and notifications signals are currently connected for every settings
page. Move the signals from the base SettingsPage class into the derived
classes and connect the signals for only those objects.
2021-03-24 10:31:52 +00:00
Jim Broadus 5ebd6d1e6b internet/core: Move context_menu_ to base class
Every internet service class has a context_menu_ member. Moving this to
the base class will allow the consolidation of common menu functionality.
2021-03-18 11:16:14 +00:00
Fabio Bas 89e9b20df1 Use smart pointers for menus; move static vars and most private methods to an anonymous namespace 2021-03-16 11:03:00 +00:00
Fabio Bas 3ba2c811f4 Different context menu for service and stations; "add to your radio streams" action for stations; reworked server error handling 2021-03-16 11:03:00 +00:00
Fabio Bas 6a45edaa34 Removed dirty hack in InternetModel; added "radiobrowser:" url handler; rework station play callback 2021-03-16 11:03:00 +00:00
Fabio Bas cd062f1d8b Added settings page 2021-03-16 11:03:00 +00:00
Fabio Bas cc0cedc5bd added station art 2021-03-16 11:03:00 +00:00
Fabio Bas 3e31094227 Initial RadioBrowser support: implemented search, groups by category, top 100 2021-03-16 11:03:00 +00:00
Fabio Bas e7768948e0 Initial radio-browser.info support 2021-03-16 11:03:00 +00:00