| Commit message (Collapse) | Author | Files | Lines |
|
Implement a "bulk" edit mode that postpones both UpdateQueuedSong()
and OnModified(). This way, the playlist version gets incremented
only once. More importantly: when adding multiple songs to a queue
that consists of only one song, the first song that got added will
always be played next. By postponing this choice, all newly added
songs get a chance to become the next song. Fixes the second (and
last) part of Mantis ticket 0004005.
|
|
Don't restore the current song after shufflung when MPD is stopped
(but still remembers the current song internally). Fixes the first
part of Mantis ticket 0004005.
|
|
|
|
Fixes regression from commit e96779d.
|
|
Leave that to the caller, allowing it to modify multiple items at a
time.
|
|
Finally restores an important feature that has been broken for several
months when the PlayerThread started working with Song copies instead
of pointers to the Queue's Song instances (commit e96779d).
|
|
|
|
|
|
Prepare to migrate away from GLib. Currently, we're still using GLib
as a backend.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Move the configuration lookup to Main.cxx.
|
|
|
|
|
|
|
|
This commit reimplements the core of the "single" mode. Instead of
doing the detection in the playlist code from the outside, it is moved
to the player thread, which gets a new option called "border_pause".
It will now pause playback exactly at the beginning of the new song,
making the feature more reliable.
Now that the player thread knows what will happen, it can suppress
cross-fading.
Fixes mantis tickets 0003055 and 0003166.
|
|
Make sure the player "owns" the next_song object, so nobody else can
free it.
|
|
|
|
|
|
|
|
|
|
|
|
Allocate a player_control object where needed, and pass it around.
Each "client" object is associated with a "player_control" instance.
This prepares multi-player support.
|
|
|
|
The check was meant to fix an assertion failure, but it was the wrong
way around. This broke cross-fading most of the time.
|
|
Workaround for an assertion failure.
|
|
|
|
Rename the function to playlist_song_started(), which gets only called
if the song has actually started.
|
|
|
|
|
|
With single+repeat enabled, it is expected that MPD repeats the
current song over andd over. With random mode also enabled, this
didn't work, because the song order was shuffled internally. This
patch adds a special check for this case.
|
|
|
|
After we've been hit by Large File Support problems several times in
the past week (which only occur on 32 bit platforms, which I don't
have), this is yet another attempt to fix the issue.
|
|
|
|
No more CD player emulation. The current behaviour of "previous" is
difficult for a client to predict, because it does not definitely know
the current position within the song. If a client wants to restart
the current song, it can always send "playid".
|
|
Renamed all playlist functions to non-CamelCase.
|
|
|
|
To determine whether to rewind the current song or to go to the
previous song, use a GTimer instead of manually diffing time(NULL).
|
|
Consume mode removes each song played
|
|
When single mode is enabled, after current song it stops playback,
or it replay same song if repeat mode is activated.
|
|
The smartstop feature is a way to tell mpd to stop playing after
current song.
This patche provides:
- 'state' command returns 'smartstop' state (1 or 0)
- 'smartstop' can activate or not the smartstop state
- when song is terminated, mpd stops playing and smartstop is set to 0
|
|
This updates the copyright header to all be the same, which is
pretty much an update of where to mail request for a copy of the GPL
and the years of the MPD project. This also puts all committers under
'The Music Player Project' umbrella. These entries should go
individually in the AUTHORS file, for consistancy.
|
|
When MPD is not playing, it may still remember which is the "current"
song. When you switch to "random" mode, MPD will always start playing
exactly this song. This defies the goal of "random" mode a little.
Clear the "current" song when MPD is not playing during the "random"
mode switch.
|