Commit message (Collapse) | Author | Files | Lines | ||
---|---|---|---|---|---|
2014-01-24 | Config*: move to config/ | Max Kellermann | 1 | -3/+3 | |
2014-01-23 | output/*: move to output/plugins/ | Max Kellermann | 1 | -0/+0 | |
2014-01-13 | copyright year 2014 | Max Kellermann | 1 | -1/+1 | |
2013-12-03 | OutputAll: use new[]/delete[] instead of g_new()/g_free() | Max Kellermann | 1 | -4/+2 | |
2013-11-25 | Volume, Output: use new class PeriodClock instead of GTimer | Max Kellermann | 1 | -4/+1 | |
2013-10-30 | *: update copyright year to 2013 | Max Kellermann | 1 | -1/+1 | |
2013-10-28 | player_control: rename to PlayerControl | Max Kellermann | 1 | -2/+2 | |
2013-10-25 | ReplayGainInfo: use CamelCase for struct name | Max Kellermann | 1 | -1/+1 | |
2013-10-19 | *: use references instead of pointers | Max Kellermann | 1 | -6/+6 | |
2013-10-19 | *: use nullptr instead of NULL | Max Kellermann | 1 | -33/+33 | |
2013-10-17 | Thread/Thread: replacement library for GThread | Max Kellermann | 1 | -0/+2 | |
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-27 | OutputAll: add pure/const attributes | Max Kellermann | 1 | -0/+1 | |
2013-09-26 | MusicBuffer: expose the C++ API | Max Kellermann | 1 | -10/+9 | |
2013-09-26 | MusicPipe: expose the C++ API | Max Kellermann | 1 | -19/+18 | |
2013-09-05 | conf.h: remove obsolete header | Max Kellermann | 1 | -1/+3 | |
Use only ConfigData.hxx in plugin sources to reduce header dependencies. | |||||
2013-09-04 | util/Error: new error passing library | Max Kellermann | 1 | -11/+10 | |
Replaces GLib's GError. | |||||
2013-08-07 | Makefile.am: move sources to libsystem.a | Max Kellermann | 1 | -1/+1 | |
2013-08-07 | FatalError: new library to replace mpd_error.h | Max Kellermann | 1 | -6/+6 | |
2013-08-04 | *: use gcc.h macros instead of GLib | Max Kellermann | 1 | -1/+1 | |
2013-08-04 | OutputPlugin: pass config_param reference | Max Kellermann | 1 | -3/+10 | |
2013-08-03 | audio_format: convert to C++ | Max Kellermann | 1 | -10/+8 | |
2013-04-17 | OutputInternal: use Mutex instead of GMutex | Max Kellermann | 1 | -22/+12 | |
2013-04-17 | output: convert to C++ | Max Kellermann | 1 | -5/+1 | |
2013-01-20 | PlayerControl: move functions into the class | Max Kellermann | 1 | -4/+4 | |
2013-01-10 | notify: convert to C++ | Max Kellermann | 1 | -9/+2 | |
2013-01-07 | decoder_api.h, ...: add "extern C" | Max Kellermann | 1 | -1/+1 | |
2013-01-07 | mixer_all: convert to C++ | Max Kellermann | 1 | -1/+1 | |
2013-01-05 | filter/ReplayGain: add method _set_mode() | Max Kellermann | 1 | -0/+7 | |
Push the new mode to the filter instead of accessing global variables through replay_gain_get_real_mode(). | |||||
2013-01-04 | player_control.h: convert header to C++ | Max Kellermann | 1 | -1/+1 | |
2013-01-04 | MusicChunk: move functions to methods | Max Kellermann | 1 | -1/+1 | |
2013-01-04 | buffer, pipe: convert to C++ | Max Kellermann | 1 | -7/+3 | |
2013-01-04 | output_*: convert to C++ | Max Kellermann | 1 | -5/+12 | |
2012-08-08 | output_all: add basic GError support | Max Kellermann | 1 | -4/+15 | |
2011-09-19 | output_plugin: the plugin allocates the audio_output object | Max Kellermann | 1 | -24/+28 | |
Pass audio_output objects around instead of void pointers. This will give some more control to the plugin, and prepares for non-blocking audio outputs. | |||||
2011-09-01 | output_all: move _lock_signal() to output_control.c | Max Kellermann | 1 | -19/+3 | |
Better name, better documentation. | |||||
2011-09-01 | output_thread: reimplement CANCEL synchronization | Max Kellermann | 1 | -2/+5 | |
The output thread could hang indefinitely after finishing CANCEL, because it could have missed the signal while the output was not unlocked in ao_command_finished(). This patch removes the wait() call after CANCEL, and adds the flag "allow_play" instead. While this flag is set, playback is skipped. With this flag, there will not be any excess wait() call after the pipe has been cleared. This patch fixes a bug that causes mpd to discontinue playback after seeking, due to the race condition described above. | |||||
2011-01-29 | copyright year 2011 | Max Kellermann | 1 | -1/+1 | |
2011-01-10 | include cleanup | Max Kellermann | 1 | -0/+1 | |
2011-01-10 | player_control: removed the global variable "pc" | Max Kellermann | 1 | -7/+7 | |
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 | pipe: add helper function music_pipe_empty() | Max Kellermann | 1 | -2/+2 | |
2010-10-05 | output_all: disable outputs on shutdown | Max Kellermann | 1 | -0/+1 | |
Call output_plugin.disable() before output_plugin.finish(). This ensures that all outputs are properly cleaned up, to make valgrind happy. | |||||
2010-09-28 | mpd_error: more correct MPD_ERROR implementation | Denis Krjuchkov | 1 | -1/+1 | |
Original implementation does not handle if (...) MPD_ERROR("die"); else ... case well. This change fixes handling of such cases. | |||||
2010-09-25 | eliminate g_error() usage | Thomas Jansen | 1 | -5/+6 | |
Replaced all occurrences of g_error() with MPD_ERROR() located in a new header file 'mpd_error.h'. This macro uses g_critical() to print the error message and then exits gracefully in contrast to g_error() which would internally call abort() to produce a core dump. The macro name is distinctive and allows to find all places with dubious error handling. The long-term goal is to get rid of MPD_ERROR() altogether. To facilitate the eventual removal of this macro it was added in a new header file rather than to an existing header file. This fixes #2995 and #3007. | |||||
2010-03-10 | output: added option "always_on" for radio stations | Max Kellermann | 1 | -0/+23 | |
Did you ever accidently click "stop" while feeding a radio station? This option sets the output device to "pause" to disable the "close" method. It falls back to "pause" then, which is specific to the plugin. Some plugins implement it by feeding silence. | |||||
2010-01-02 | output_all: reset elapsed_time at song border | Max Kellermann | 1 | -0/+8 | |
Another quirk fixed: after the last chunk of a song has been played, the "elapsed_time" variable is set to the chunk's time stamp. When the client receives the PLAYER idle event and asks MPD for the current time stamp, MPD will return the last time stamp of the previous song when it hasn't played the first chunk of the current song yet. | |||||
2009-12-31 | Update copyright notices. | Avuton Olrich | 1 | -1/+1 | |
2009-11-12 | player_thread: initialize chunk->times in silence generator | Max Kellermann | 1 | -1/+4 | |
When waiting for the decoder to provide more data, the player thread generates silence chunks if needed. However, it forgot to initialize the chunk.times attribute, which had now an undefined value. This patch sets it to -1.0, meaning "value is undefined". Add a ">= 0.0" check to audio_output_all_check(). This fixes spurious relative seeking errors, because sometimes, the "elapsed" value falls back to 0.0. | |||||
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-09 | output_thread: added command DRAIN | Max Kellermann | 1 | -0/+9 | |
This command manually drains the hardware buffer. This is useful when the player thread want to make sure that everything has been played. |