Commit message (Collapse) | Author | Files | Lines | ||
---|---|---|---|---|---|
2014-01-13 | copyright year 2014 | Max Kellermann | 1 | -1/+1 | |
2014-01-09 | DetachedSong: fork of struct Song | Max Kellermann | 1 | -9/+6 | |
From now on, struct Song will be used by the database only, and DetachedSong will be used by everybody else. DetachedSong is easier to use, but Song has lower overhead. | |||||
2013-11-28 | include cleanup using iwyu | Max Kellermann | 1 | -2/+0 | |
2013-11-06 | DecoderControl: reduce the number of PlayerThread wakeups | Max Kellermann | 1 | -0/+13 | |
Wake up the PlayerThread only if it is really waiting for the decoder. This greatly reduces the number of system calls in the DecoderThread. | |||||
2013-10-28 | DecoderControl: convert mutex and client_cond to a reference | Max Kellermann | 1 | -2/+3 | |
Share the Mutex between the DecoderThread and the PlayerThread. This simplifies synchronization between the two threads and fixes a freeze problem: while the PlayerThread waits for the DeocderThread, it cannot answer requests from the main thread, and the main thread will block until the DecoderThread finishes. | |||||
2013-10-28 | decoder_control: rename to DecoderControl | Max Kellermann | 1 | -10/+10 | |
2013-10-26 | DecoderControl: move code/attributes to new class MixRampInfo | Max Kellermann | 1 | -26/+3 | |
2013-10-26 | DecoderThread: move code to DecoderControl::CycleMixRamp() | Max Kellermann | 1 | -2/+5 | |
2013-10-21 | Song: pass reference to song_equals() | Max Kellermann | 1 | -4/+2 | |
2013-10-19 | *: use nullptr instead of NULL | Max Kellermann | 1 | -3/+3 | |
2013-10-17 | Thread/Thread: replacement library for GThread | Max Kellermann | 1 | -5/+3 | |
2013-10-02 | Log: new logging library API | Max Kellermann | 1 | -3/+0 | |
Prepare to migrate away from GLib. Currently, we're still using GLib as a backend. | |||||
2013-09-30 | DecoderControl: lock the mutex in Seek() | Max Kellermann | 1 | -1/+1 | |
Use LockSynchronousCommand() instead of SynchronousCommandLocked(). Fixes regression from commit ef663810 (dead lock due to cond_wait with unlocked mutex). | |||||
2013-09-27 | DecoderControl: use GLib forward declarations | Max Kellermann | 1 | -0/+2 | |
2013-09-27 | DecoderControl: convert "enum decoder_state" to strictly-typed enum | Max Kellermann | 1 | -9/+9 | |
2013-09-27 | DecoderCommand: convert to strictly-typed enum | Max Kellermann | 1 | -7/+7 | |
2013-09-27 | DecoderControl: convert functions to methods | Max Kellermann | 1 | -40/+5 | |
2013-09-26 | MusicBuffer: expose the C++ API | Max Kellermann | 1 | -3/+2 | |
2013-09-26 | MusicPipe: expose the C++ API | Max Kellermann | 1 | -4/+3 | |
2013-08-03 | gcc.h: add macro gcc_unreachable() | Max Kellermann | 1 | -1/+1 | |
2013-07-28 | song: convert header to C++ | Max Kellermann | 1 | -5/+5 | |
2013-01-27 | DecoderControl, InputStream: use Mutex/Cond instead of GMutex/GCond | Max Kellermann | 1 | -6/+1 | |
2013-01-23 | DecoderControl: fix typo in assertion check | Max Kellermann | 1 | -3/+3 | |
2013-01-21 | DecoderControl: move functions into the class | Max Kellermann | 1 | -101/+75 | |
2013-01-10 | DecoderControl: take ownership of client_cond | Max Kellermann | 1 | -2/+3 | |
Don't let the "client" pass its own GCond. This was not used consistently. | |||||
2013-01-04 | buffer, pipe: convert to C++ | Max Kellermann | 1 | -4/+1 | |
2013-01-04 | decoder_*: convert to C++ | Max Kellermann | 1 | -3/+6 | |
2012-09-25 | decoder_control: remove MixRamp debug messages | Max Kellermann | 1 | -3/+0 | |
These are confusing, and since MixRamp development has ceased, not useful to anybody. | |||||
2012-08-15 | decoder_control: duplicate the song object | Max Kellermann | 1 | -0/+8 | |
Make sure the decoder "owns" the song object, so nobody else can free it. | |||||
2012-08-15 | Song: add function song_equals() | Max Kellermann | 1 | -1/+2 | |
decoder_is_current_song() now recognizes different instances of the same physical song. | |||||
2012-08-15 | decoder_control: add function _is_current_song() | Max Kellermann | 1 | -0/+21 | |
Replaces _current_song(). | |||||
2012-08-08 | decoder_control: add GError attribute | Max Kellermann | 1 | -0/+3 | |
2011-10-05 | decoder_control: add attributes start_ms, end_ms | Max Kellermann | 1 | -0/+3 | |
Don't read song.start_ms and song.end_ms, let the player thread manage this logic instead. | |||||
2011-01-29 | copyright year 2011 | Max Kellermann | 1 | -1/+1 | |
2011-01-10 | decoder_control: store GCond object, not a player_control | Max Kellermann | 1 | -4/+3 | |
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. | |||||
2011-01-10 | decoder_control: remove unused function dc_command_wait() | Max Kellermann | 1 | -8/+0 | |
Only dc_command_wait_locked() is really being used. | |||||
2011-01-10 | decoder_control: replace dc_init() with dc_new() | Max Kellermann | 1 | -6/+8 | |
dc_new() allocates the object and returns it. dc_free() frees it (replaces dc_deinit()). | |||||
2011-01-10 | player_control: removed the global variable "pc" | Max Kellermann | 1 | -2/+3 | |
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. | |||||
2010-11-05 | decoder_control: pass music_pipe to dc_start() | Max Kellermann | 1 | -4/+11 | |
More abstraction for decoder_control.pipe. | |||||
2010-09-23 | decoder_control: use g_free() to manage mixramp allocations | Max Kellermann | 1 | -13/+6 | |
Be consistent with the rest of MPD, and don't use the non-portable header "malloc.h". | |||||
2010-05-08 | mixramp: Adjust MixRamp threshold to account for ReplayGain. | Tim Phipps | 1 | -0/+2 | |
2010-03-21 | Add support for MixRamp tags | Tim Phipps | 1 | -0/+50 | |
Adds mixrampdb and mixrampdelay commands. Reads MIXRAP_START and MIXRAMP_END tags from FLAC files and overlaps instead of crossfading. | |||||
2009-12-31 | Update copyright notices. | Avuton Olrich | 1 | -1/+1 | |
2009-11-12 | include config.h in all sources | Max Kellermann | 1 | -0/+1 | |
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. | |||||
2009-11-03 | decoder_control: pass pipe and buffer to dc_start() | Max Kellermann | 1 | -2/+6 | |
Don't access decoder_control attributes directly. | |||||
2009-11-03 | decoder_control: merge next_song and current_song | Max Kellermann | 1 | -1/+1 | |
These two variables are redundant, we need only one of them. | |||||
2009-11-03 | player_thread: don't start the decoder asynchronously | Max Kellermann | 1 | -10/+0 | |
The START command returns without blocking; we don't need the asynchronous decoder start anymore. | |||||
2009-11-02 | {decoder,player}_control: removed duplicate wakeups | Max Kellermann | 1 | -3/+2 | |
Don't wake up the target thread in every iteration of the wait() loop. Waking it up once, right after the command has been set, must be enough. | |||||
2009-10-31 | decoder_control: removed the global variable "dc" | Max Kellermann | 1 | -59/+62 | |
Allocate a decoder_control object where needed, and pass it around. This will allow more than one decoder thread one day. | |||||
2009-10-31 | player_control: protect command, state, error with a mutex | Max Kellermann | 1 | -20/+16 | |
Use GMutex/GCond instead of the notify library. Manually lock the player_control object before accessing the protected attributes. Use the GCond object to notify the player thread and the main thread. |