- 16 Apr, 2013 1 commit
-
-
Max Kellermann authored
Fixes deprecation warnings.
-
- 25 Jan, 2013 1 commit
-
-
Max Kellermann authored
This fixes a deadlock bug introduced by 18076ac9. After all, the second Cond was necessary. The problem: two threads can wait for a signal at the same time. The player thread waits for the output thread to finish playback. The main thread waits for the player thread to complete a command. The output thread finishes playback, and sends a signal, which unfortunately does not wake up the player thread, but the main thread. The main thread sees that the command is still not finished, and waits again. The signal is lost forever, and MPD is deadlocked.
-
- 21 Jan, 2013 1 commit
-
-
Max Kellermann authored
-
- 20 Jan, 2013 1 commit
-
-
Max Kellermann authored
-
- 10 Jan, 2013 3 commits
-
-
Max Kellermann authored
-
Max Kellermann authored
The main_cond variable was completely unnecessary. The pc.cond object can be used for both main->pc and pc->main.
-
Max Kellermann authored
Don't let the "client" pass its own GCond. This was not used consistently.
-
- 09 Jan, 2013 3 commits
-
-
Max Kellermann authored
-
Max Kellermann authored
-
Max Kellermann authored
-
- 07 Jan, 2013 3 commits
-
-
Max Kellermann authored
Fixes build problems with mingw32.
-
Max Kellermann authored
-
Max Kellermann authored
-
- 04 Jan, 2013 5 commits
-
-
Max Kellermann authored
-
Max Kellermann authored
-
Max Kellermann authored
-
Max Kellermann authored
-
Max Kellermann authored
-
- 02 Jan, 2013 1 commit
-
-
Max Kellermann authored
-
- 27 Sep, 2012 1 commit
-
-
Max Kellermann authored
-
- 25 Aug, 2012 1 commit
-
-
Max Kellermann authored
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.
-
- 15 Aug, 2012 4 commits
-
-
Max Kellermann authored
Make sure the player "owns" the next_song object, so nobody else can free it.
-
Max Kellermann authored
Make sure the decoder "owns" the song object, so nobody else can free it.
-
Max Kellermann authored
Just in case "song" becomes invalid at some point.
-
Max Kellermann authored
Replaces _current_song().
-
- 08 Aug, 2012 4 commits
-
-
Max Kellermann authored
Rewrite of the pc_get_error_message() function, now using a GError object instead of the complicated "errored_song" attribute.
-
Max Kellermann authored
-
Max Kellermann authored
-
Max Kellermann authored
-
- 06 Oct, 2011 2 commits
-
-
Max Kellermann authored
Previously, the condition "defined(play_audio_format)" was used to see if an output device has been opened, but if the device had failed on startup, an assertion failure could occur. This patch adds a separate flag.
-
Max Kellermann authored
Common function that manages "player" attributes after audio_output_all_open() has returned.
-
- 05 Oct, 2011 2 commits
-
-
Max Kellermann authored
-
Max Kellermann authored
Don't read song.start_ms and song.end_ms, let the player thread manage this logic instead.
-
- 21 Sep, 2011 1 commit
-
-
Max Kellermann authored
When playing a CUE track, the player thread waited for the decoder to become ready, and then sent a SEEK command to the beginning of the CUE track. If that is near the start of the song file, and the track is short enough, the decoder could have finished decoding already at that point, and seeking fails. This commit makes this initial seek more robust: instead of letting the player thread deal with the difficult timings, let the decoder API emulate a SEEK command, and return it to the decoder plugin, as soon as the plugin finishes its initialization.
-
- 20 Jul, 2011 1 commit
-
-
Max Kellermann authored
-
- 31 Mar, 2011 1 commit
-
-
Jonathan Neuschäfer authored
These fixes were mostly generated with `codespell' [0] and manually reviewed. [0] http://git.profusion.mobi/cgit.cgi/lucas/codespell/
-
- 29 Jan, 2011 1 commit
-
-
Max Kellermann authored
-
- 10 Jan, 2011 3 commits
-
-
Max Kellermann authored
Remove the decoder dependency on player_control. All player_control was needed for is to signal the player thread, and we can do that with a simple GCond as well.
-
Max Kellermann authored
dc_new() allocates the object and returns it. dc_free() frees it (replaces dc_deinit()).
-
Max Kellermann authored
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.
-