Commit Graph

71 Commits

Author SHA1 Message Date
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
Jim Broadus 2339404852 player: Send request when reporting playback status
Modify the signals emitted by the engine when a url is determined to be
valid or invalid to send the entire request. This will allow additional
metadata to be added to the request, providing a mechanism to better
identify the request source.
2021-03-12 15:20:42 +00:00
Maarten Jacobs cb88954a3b Changed usage of boolean to enumeration
Changed the NextInternal() and NextItem() methods to use a enumerated value to track whether "next track" or "next album" is desired
2021-01-26 23:35:10 +00:00
Maarten Jacobs 8fcdbd5114 Adding a "play next album" function, in addition to "play next
track".

Changed shortcut key for Next Album from "space" to F9

Fixed indentation in player.cpp

Fixed spacing in player.cpp.

Updated player.cpp to ensure while loop takes into consideration the last
song on the playlist.

Fixed lint formatting error in player.cpp

Additional changes to player.cpp to make sure next album search reacts properly to the given repeat mode.

Updated player.cpp to address cpplint issues.

Fixing formatting issues.

Fixing formatting errors.

Finished formatting updates.

Final formatting...

Final formatting

Really final formatting...

Addressed issues from code review.

Added functionality to disable Next Album option when repeat mode is "repeat track".

Added commentary to recent changes.

Disable Next Album action also when Repeat Mode is Repeat_Album

In addition to disabling this action for the Next_Track repeat mode, the same applies to the Next_Album repeat mode.
2021-01-26 23:35:10 +00:00
NicolasToussaint ee72b974bf add CLI play-playlist option, to play given playlist name. 2020-11-28 20:24:56 +00:00
John Maguire 341dc7326f Reformat all C++ 2020-09-22 14:56:06 +01:00
vaterlangen fcf96cb6ff Queue size and duration is now displayed in queue manager && Album Cover Popup fixes (#6086) 2018-06-18 14:21:44 +01:00
Eduardo Sánchez Muñoz f6fc7035ac mpris: Fix track not restarting when playing the first track on the playlist and menu_previousmode setting is PreviousBehaviour_Restart. 2015-07-17 20:01:02 +02:00
Eduardo Sánchez Muñoz 75e94a64d1 Add option to change the time step when seeking using the keyboard. 2015-07-03 20:54:17 +02:00
Mark Furneaux f4b7c22bc2 Revert "Revert "Add track intro mode""
This reverts commit ece262f7f4.
2015-06-15 16:27:40 -04:00
John Maguire ece262f7f4 Revert "Add track intro mode" 2015-06-15 15:49:08 -04:00
Mark Furneaux b57cebbf2d Add track intro mode
This repeat mode plays the beginning of each track, good for quickly getting a feel for a new album for example.
2015-06-14 13:32:58 -04:00
Krzysztof Sobiecki 24b6fbf36c Add ability to parse more of "innovative" datetime formats. close #4760 2015-02-27 02:11:53 +01:00
Arnaud Bienner 43768d4af8 Small modifications to previous pull request:
- remove reference to iPod, as this is not iPod specific IMO
- make comment clearer
2015-01-19 15:01:33 +01:00
Andre Siviero e4df00050d Includes in alphabetical order, moved Player ReloadSettings() to Player init 2015-01-08 01:10:35 -02:00
Andre Siviero 1120f97844 Added iPod-like behavior to previous button 2015-01-06 02:36:08 -02:00
Krzysztof Sobiecki 6efb5d05b7 Fix some problems 2014-11-05 17:48:04 +01:00
Krzysztof Sobiecki c0614dbe09 Fix copyright notices inside src/core 2014-11-05 17:48:03 +01:00
Krzysztof Sobiecki 0af1470cce Clean up src/core 2014-11-05 17:48:03 +01:00
Mark Furneaux f793d09d8e Fix play bleeding into next track after auto stop
If "fade out on stop" is enabled, the "stop after this track" feature
would stop not stop the on current track, but instead start playing
the next track and fade out on that immediately. This patch disables
fadeout when the engine is stopped by HandleStopAfter().
2014-04-26 00:58:08 -04:00
John Maguire 4ab4bbc23f Remove Last.fm radio support.
Fixes #4259
2014-03-28 14:55:04 +01:00
John Maguire 192b60d965 Use nullptr as parent parameter default everywhere 2014-02-10 16:03:54 +01:00
John Maguire bebd781fdf Reformat all non-3rd-party C/C++/Objective-C++.
Command line:
find src ext -regex '.*\.\(h\|cpp\|mm\)' -exec clang-format -i
 -style='{BasedOnStyle: Google, DerivePointerBinding: false}' {} \;
2014-02-07 16:34:20 +01:00
John Maguire d309d4ab27 Use c++11 instead of boost where possible. 2014-02-06 16:51:39 +01:00
Arnaud Bienner 7084697aa3 Prevent Clementine to loop forever when trying to play a song with repeat enabled in a playlist which contains only unavailable songs 2014-02-04 22:08:32 +01:00
Andreas 1e4819f2df Add stop after current track feature to network remote. 2013-07-20 19:38:37 +02:00
Kevin Cox 7381f381e6 Added --restart-or-previous option.
Fixes bug #3524.
2013-05-29 15:27:07 -04:00
Anand 1aec4a4c7f When pressing the Previous button in Repeat Track mode, go to the previous track instead of repeating the current one. Fixes issue 2897 2012-08-26 13:11:28 +01:00
David Sansome 48f15c9fc7 Refactoring: instead of passing individual pointers to useful core classes (like TaskManager or LibraryBackend) to each class that uses them, pass one singleton-like Application instance everywhere. 2012-02-26 14:40:51 +00:00
David Sansome 0335d57a0f Improve pipeline buffering: on an underrun event playback will now pause until the buffer is completely full. Fixes audio stuttering on when listening to radio streams on slow networks. 2012-01-23 15:01:39 +00:00
John Maguire bcf9475f2b Add a source column to the playlist view with appropriate icons. 2012-01-04 11:56:09 +00:00
David Sansome 53e175e503 When stopping due to "Stop after this track", set the current song to the one after, so when the user presses Play it plays the next song instead of the last one again. 2011-09-27 23:31:15 +01:00
David Sansome 9fadf57acc Revert "Move TaskManager::Task and UrlHandler::LoadResult structs out of their parent classes - PythonQt doesn't understand nested structs."
This reverts commit 5234798a7f.
2011-07-23 15:32:12 +01:00
Andrea Decorte 527171fadb Toggle visibility for Pretty OSD by command line and global shortcut.
Fixes issue 1344
2011-06-05 08:21:17 +00:00
David Sansome 5234798a7f Move TaskManager::Task and UrlHandler::LoadResult structs out of their parent classes - PythonQt doesn't understand nested structs. 2011-05-21 10:43:25 +00:00
David Sansome 06852aaeb7 Show spotify search results in a separate playlist tab rather than in a tree in the sidebar. 2011-04-28 17:50:45 +00:00
David Sansome 255682b057 Remove the special load behaviour from Playlist Items and instead add URL Handlers that do the same job but for all playlist item types. 2011-04-28 15:10:28 +00:00
Paweł Bara 032b5f7e48 initial commit of "multiple covers providers" feature:
- simple API for cover providers (both C++ and SIP)
- a new "package" for cover related code
2011-04-02 13:34:06 +00:00
David Sansome cb275f318f Add an option to disable automatic crossfading between tracks on the same album or from the same cuesheet. Fixes issue 1479 2011-03-13 18:37:46 +00:00
Paweł Bara 8722e00103 Clementine now skips songs that don't exist anymore (updates issue #250) 2011-03-10 18:01:35 +00:00
David Sansome f801252e3d Refactor Player and PlaylistManagers to have interfaces and add more MPRIS1 tests 2011-02-13 18:37:45 +00:00
David Sansome e18409ebf4 Factor out a PlayerInterface from Player, and use it in MPRIS1 and MPRIS2 2011-02-13 18:36:29 +00:00
Paweł Bara 1c1d9551bb fixes issue #553 ('seek forward' and 'seek backward' hotkeys worked wrong) 2011-01-19 16:05:16 +00:00
Paweł Bara 9f95909848 exterminating a deceiving parameter name 2011-01-06 21:53:50 +00:00
Paweł Bara 55683887c0 implemented Seeked signal for MPRIS 2 2011-01-06 21:08:11 +00:00
John Maguire bde7902686 Refactor some initial setup out of MainWindow::MainWindow(). 2011-01-04 11:33:22 +00:00
David Sansome 35242f740e Fix dbus 2010-12-26 17:24:44 +00:00
David Sansome e3a9bd7b26 Make DBUS bits optional on Linux. Thanks Nickollai. Fixes issue #1177 2010-12-26 13:38:35 +00:00
David Sansome 6737b8a5c2 Always use the gstreamer engine, remove xine, vlc and phonon engines. 2010-12-26 13:01:35 +00:00
David Sansome 28fdb147d8 Make last.fm optional. Thanks volkov0aa. Fixes issue #49 2010-12-18 17:28:02 +00:00