| Commit message (Collapse) | Author | Files | Lines |
|
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.
|
|
An '\n' was erroneously inserted in the line containing the state, e.g.
"state: \nplay" instead of "state: play".
Fix for bug #2992.
|
|
Use the functions song_save() and song_load() to use the same format
as in the database file for those songs which need the tags.
|
|
The only caller doesn't use its return value, and the value isn't
useful anyway.
|
|
Don't use a large stack buffer.
|
|
Let the C compiler concatenate string constants.
|
|
Adds mixrampdb and mixrampdelay commands. Reads MIXRAP_START and
MIXRAMP_END tags from FLAC files and overlaps instead of crossfading.
|
|
|
|
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.
|
|
With these methods, an output plugin can allocate some global
resources only if it is actually enabled. The method enable() is
called after daemonization, which allows for more sophisticated
resource allocation during that method.
|
|
|
|
The new player_status struct replaces a bunch of playerGetX()
functions. When we add proper locking to the player_control struct,
we will only need to lock once for the "status" command.
|
|
If nothing has changed since the last save, don't save the state
file. Saving will spin up the hard drive, which is undesirable on
hosts where MPD is idling in background.
|
|
Renamed all playlist functions to non-CamelCase.
|
|
Parse the state file line by line, let each subsystem probe a line.
Only the playlist_state code gets the FILE pointer to read the
following lines.
|
|
This patch fixes an assertion failure:
Assertion `order < queue->length' failed.
This happens when the state file is saved, when there is no "current"
song: current==-1, and queue_order_to_position(-1) is called.
|
|
At the moment mpd doesn't store or restore the current track to/from
its state file when the daemon is stopped/started while in 'stopped'
state. I believe the preferred behaviour would be to store and
restore the current track even when the daemon is in stopped state
when shutting down.
I made a small patch to adapt this behaviour. If you believe this is
not the preferred behaviour, maybe this should be realized as a
configuration option. I'm not sure how to do this, but made a small
comment, where one would have to put the option.
|
|
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
|
|
The functions playPlaylist() and seekSongInPlaylist() expect a song
position, not a song order number. Don't convert the "current"
variable with queue_position_to_order().
|
|
Don't start playback as soon as the "current" song is being loaded
from the state file. That is unclean, and leads to an obscure bug: in
repeat mode, when the song is started (which is yet the last song in
the list), the playlist code marked the very first song in the
playlist as "next" song, because the end of the playlist was wrapped.
It's easier to set up the playback after all songs have been loaded,
and after the random/repeat mode has been set.
|
|
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.
|
|
After the state file has been loaded, the playlist version is still
"1", and "plchanges 1" returns the whole playlist. Fix this by
increasing the playlist version after the state file has been loaded.
|
|
Export the "g_playlist" variable, and pass it to all playlist
functions. This way, we can split playlist.c easier into separate
parts. The code which initializes the singleton variable is moved to
playlist_global.c.
|
|
Moved everything related to saving or loading the playlist from/to the
state file to playlist_state.c.
|