Commit message (Collapse) | Author | Files | Lines | ||
---|---|---|---|---|---|
2015-01-01 | Copyright year 2015 | Max Kellermann | 1 | -1/+1 | |
2014-08-29 | DecoderControl: use SignedSongTime for the song duration | Max Kellermann | 1 | -1/+1 | |
2014-08-28 | DecoderControl: use std::chrono::duration for start_ms and end_ms | Max Kellermann | 1 | -10/+9 | |
2014-08-28 | DecoderControl: update API documentation | Max Kellermann | 1 | -3/+3 | |
2014-08-27 | DecoderControl: use std::chrono::duration for Seek() | Max Kellermann | 1 | -2/+3 | |
2014-08-12 | MusicChunk: rename struct to MusicChunk | Max Kellermann | 1 | -1/+1 | |
2014-01-24 | decoder/*: move to decoder/plugins/ | Max Kellermann | 1 | -0/+0 | |
2014-01-13 | copyright year 2014 | Max Kellermann | 1 | -1/+1 | |
2014-01-09 | DetachedSong: fork of struct Song | Max Kellermann | 1 | -5/+5 | |
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-06 | DecoderControl: reduce the number of PlayerThread wakeups | Max Kellermann | 1 | -3/+11 | |
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 | -3/+14 | |
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 | -6/+6 | |
2013-10-26 | DecoderControl: move code/attributes to new class MixRampInfo | Max Kellermann | 1 | -8/+9 | |
2013-10-26 | DecoderThread: move code to DecoderControl::CycleMixRamp() | Max Kellermann | 1 | -1/+6 | |
2013-10-26 | DecoderControl: add MixRamp getters | Max Kellermann | 1 | -0/+12 | |
2013-10-21 | Song: pass reference to song_equals() | Max Kellermann | 1 | -2/+2 | |
2013-10-17 | Thread/Thread: replacement library for GThread | Max Kellermann | 1 | -4/+5 | |
2013-09-27 | DecoderControl: use GLib forward declarations | Max Kellermann | 1 | -2/+1 | |
2013-09-27 | DecoderControl: convert "enum decoder_state" to strictly-typed enum | Max Kellermann | 1 | -16/+22 | |
2013-09-27 | DecoderCommand: convert to strictly-typed enum | Max Kellermann | 1 | -8/+8 | |
2013-09-27 | DecoderControl: convert functions to methods | Max Kellermann | 1 | -0/+47 | |
2013-09-26 | MusicBuffer: expose the C++ API | Max Kellermann | 1 | -2/+3 | |
2013-09-26 | MusicPipe: expose the C++ API | Max Kellermann | 1 | -2/+3 | |
2013-09-04 | util/Error: new error passing library | Max Kellermann | 1 | -12/+16 | |
Replaces GLib's GError. | |||||
2013-08-03 | audio_format: convert to C++ | Max Kellermann | 1 | -3/+3 | |
2013-07-28 | song: convert header to C++ | Max Kellermann | 1 | -4/+6 | |
2013-07-28 | decoder_api: convert to C++ | Max Kellermann | 1 | -1/+1 | |
2013-01-27 | DecoderControl, InputStream: use Mutex/Cond instead of GMutex/GCond | Max Kellermann | 1 | -8/+10 | |
2013-01-21 | DecoderControl: move functions into the class | Max Kellermann | 1 | -188/+135 | |
2013-01-20 | PlayerControl: move functions into the class | Max Kellermann | 1 | -0/+9 | |
2013-01-10 | DecoderControl: take ownership of client_cond | Max Kellermann | 1 | -1/+1 | |
Don't let the "client" pass its own GCond. This was not used consistently. | |||||
2013-01-04 | decoder_*: convert to C++ | Max Kellermann | 1 | -3/+3 | |
2012-08-15 | decoder_control: duplicate the song object | Max Kellermann | 1 | -2/+6 | |
Make sure the decoder "owns" the song object, so nobody else can free it. | |||||
2012-08-15 | decoder_control: add function _is_current_song() | Max Kellermann | 1 | -14/+20 | |
Replaces _current_song(). | |||||
2012-08-15 | decoder_control: add assertion to dc_get_error() | Max Kellermann | 1 | -0/+1 | |
2012-08-08 | decoder_control: add GError attribute | Max Kellermann | 1 | -0/+51 | |
2011-10-05 | decoder_control: add attributes start_ms, end_ms | Max Kellermann | 1 | -0/+20 | |
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 | -9/+7 | |
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 | -3/+0 | |
Only dc_command_wait_locked() is really being used. | |||||
2011-01-10 | decoder_control: replace dc_init() with dc_new() | Max Kellermann | 1 | -3/+4 | |
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 | -1/+9 | |
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 | -2/+2 | |
More abstraction for decoder_control.pipe. | |||||
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/+13 | |
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-03 | decoder_control: pass pipe and buffer to dc_start() | Max Kellermann | 1 | -2/+14 | |
Don't access decoder_control attributes directly. | |||||
2009-11-03 | decoder_control: don't check command in decoder_is_starting() | Max Kellermann | 1 | -5/+3 | |
Asynchronous decoder startup is gone, and we don't need to check command==DECODE_COMMAND_START anymore. | |||||
2009-11-03 | decoder_control: merge next_song and current_song | Max Kellermann | 1 | -3/+8 | |
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 | -3/+0 | |
The START command returns without blocking; we don't need the asynchronous decoder start anymore. |