Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | pcm_buffer, output_plugin, ...: include config.h | Max Kellermann | 2011-12-13 | 2 | -0/+2 |
| | |||||
* | pcm_volume: "length" is a "size_t", not "int" | Max Kellermann | 2011-10-20 | 3 | -3/+3 |
| | |||||
* | test: add GLib testing compatibility header | Max Kellermann | 2011-10-19 | 6 | -0/+62 |
| | | | | Didn't compile on GLib < 2.16. | ||||
* | pcm_dither: pass an "end" pointer instead of a sample count | Max Kellermann | 2011-10-10 | 1 | -2/+2 |
| | | | | | This is easier and more efficient to loop on, because only two variables get modified (src and dest). | ||||
* | pcm_pack: pass an "end" pointer instead of a sample count | Max Kellermann | 2011-10-10 | 1 | -2/+2 |
| | |||||
* | pcm_{mix,volume}: pass only sample_format to pcm_mix() | Max Kellermann | 2011-10-10 | 4 | -4/+4 |
| | | | | The other audio_format attributes are not used. | ||||
* | test: add unit test for the PCM library | Max Kellermann | 2011-10-10 | 6 | -0/+415 |
| | |||||
* | don't define WINVER in *.c files | Max Kellermann | 2011-10-09 | 3 | -3/+0 |
| | | | | | In a C file, that is too late, because _mingw.h defaults to 0x0502, and ours would be illegal redefintion. | ||||
* | test/run_decoder: initialize GThread | Max Kellermann | 2011-10-03 | 1 | -0/+1 |
| | | | | Needed for the I/O thread. | ||||
* | tcp_connect: generic library for establishing TCP connections | Max Kellermann | 2011-09-20 | 1 | -0/+165 |
| | |||||
* | resolver: add function resolve_host_port() | Max Kellermann | 2011-09-20 | 1 | -0/+67 |
| | |||||
* | output_plugin: the plugin allocates the audio_output object | Max Kellermann | 2011-09-19 | 1 | -14/+14 |
| | | | | | | 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. | ||||
* | output/pulse: don't expose internal struct in public header | Max Kellermann | 2011-09-17 | 1 | -0/+10 |
| | | | | | Provide _lock() and _unlock() to wrap all accesses from the mixer plugin. | ||||
* | output/roar: export volume methods | Max Kellermann | 2011-09-17 | 1 | -0/+18 |
| | | | | Use these instead of exposing the internal roar_t struct. | ||||
* | input_stream: non-blocking I/O | Max Kellermann | 2011-09-16 | 4 | -31/+45 |
| | | | | | | | | | Add GMutex, GCond attributes which will be used by callers to conditionally wait on the stream. Remove the (now-useless) plugin method buffer(), wait on GCond instead. Lock the input_stream before each method call. Do the same with the playlist plugins. | ||||
* | input_plugin: add method check() | Max Kellermann | 2011-09-16 | 1 | -0/+6 |
| | | | | | To check for errors without reading. The decoder thread wants to do that, before it passes the input stream to the plugin. | ||||
* | test/test_queue_priority: work around "set but not used" warning | Max Kellermann | 2011-09-16 | 1 | -0/+1 |
| | |||||
* | test/read_tags: initialize the tag_pool library | Max Kellermann | 2011-09-13 | 1 | -0/+5 |
| | |||||
* | test/read_tags: call g_thread_init() | Max Kellermann | 2011-09-13 | 1 | -0/+1 |
| | | | | Needed for the I/O thread. | ||||
* | conf: move duplicate check to _read_name_value() | Max Kellermann | 2011-09-09 | 1 | -1/+1 |
| | | | | config_add_block_param() cannot fail, which makes it easier to use. | ||||
* | output_control: move code to audio_output_destruct() | Max Kellermann | 2011-08-30 | 1 | -2/+1 |
| | | | | .. and destruct the output object properly in test/run_output. | ||||
* | test/run_output: clean up after open failure | Max Kellermann | 2011-08-30 | 1 | -50/+61 |
| | |||||
* | ntp_server: move code to udp_server.c | Max Kellermann | 2011-08-30 | 1 | -78/+5 |
| | |||||
* | ntp_server: use the I/O thread | Max Kellermann | 2011-08-29 | 2 | -12/+20 |
| | |||||
* | test/run_ntp_server: quit on SIGINT or SIGTERM | Max Kellermann | 2011-08-29 | 3 | -1/+103 |
| | | | | Clean up the process before exiting. | ||||
* | ntp_server: add debug program "run_ntp_server" | Max Kellermann | 2011-08-29 | 1 | -0/+137 |
| | |||||
* | input/soup: new input plugin based on libsoup | Max Kellermann | 2011-08-24 | 4 | -0/+42 |
| | | | | | | | | To demonstrate the new I/O thread. libsoup is well-integrated into the GLib main loop, which made this plugin pretty easy to write. As a side effect, we have to initialize the I/O thread in all debug programs that use the input API. | ||||
* | output/raop: consistently use GError | Max Kellermann | 2011-08-24 | 1 | -1/+2 |
| | |||||
* | queue: implement song "priorities" | Max Kellermann | 2011-07-19 | 1 | -0/+174 |
| | | | | | Sorts remaining songs by priority. This can be used for the much-demanded "queue feature". | ||||
* | Merge branch 'v0.16.x' | Max Kellermann | 2011-07-19 | 2 | -13/+8 |
|\ | | | | | | | | | | | Conflicts: NEWS configure.ac | ||||
| * | test/run_filter: remove unused variable "frame_size" | Max Kellermann | 2011-07-03 | 1 | -3/+0 |
| | | |||||
| * | test/read_conf: make variables more local | Max Kellermann | 2011-07-03 | 1 | -9/+7 |
| | | |||||
| * | test/read_conf: fix -Wunused-but-set-variable | Max Kellermann | 2011-07-03 | 1 | -1/+1 |
| | | |||||
* | | test/read_mixer: add workaround for missing RAOP symbols | Max Kellermann | 2011-01-29 | 1 | -0/+18 |
| | | |||||
* | | copyright year 2011 | Max Kellermann | 2011-01-29 | 14 | -14/+14 |
| | | |||||
* | | player_control: removed the global variable "pc" | Max Kellermann | 2011-01-10 | 1 | -1/+4 |
|/ | | | | | | | 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. | ||||
* | test/run_decoder: dump replay gain | Max Kellermann | 2010-07-20 | 1 | -1/+12 |
| | |||||
* | test/dump_playlist: print open-ended range | Max Kellermann | 2010-06-25 | 1 | -1/+5 |
| | |||||
* | test: added debug program "run_inotify" | Max Kellermann | 2010-05-30 | 1 | -0/+93 |
| | |||||
* | test: enable binary mode on stdin/stdout | Max Kellermann | 2010-05-20 | 9 | -0/+37 |
| | | | | | Declaring the global variable _CRT_fmode is a documented hack. What an ugly platform! | ||||
* | mixramp: Adjust MixRamp threshold to account for ReplayGain. | Tim Phipps | 2010-05-08 | 2 | -2/+6 |
| | |||||
* | replay_gain: added mode "auto" | Daniel Seuthe | 2010-04-25 | 2 | -0/+6 |
| | |||||
* | Add support for MixRamp tags | Tim Phipps | 2010-03-21 | 2 | -0/+16 |
| | | | | | Adds mixrampdb and mixrampdelay commands. Reads MIXRAP_START and MIXRAMP_END tags from FLAC files and overlaps instead of crossfading. | ||||
* | replay_gain: optionally use hardware mixer to apply replay gain | Max Kellermann | 2010-02-17 | 1 | -0/+8 |
| | | | | | | | | | | Add an option for each audio output which enables the use of the hardware mixer, instead of the software volume code. This is hardware specific, and assumes linear volume control. This is not the case for hardware mixers which were tested, making this patch somewhat useless, but we will use it to experiment with the settings, to find a good solution. | ||||
* | replay_gain: reimplement as a filter plugin | Max Kellermann | 2010-02-17 | 2 | -0/+12 |
| | | | | | | | Apply the replay gain in the output thread. This means a new setting will be active instantly, without going through the whole music pipe. And we might have different replay gain settings for each audio output device. | ||||
* | decoder_api: removed function decoder_get_uri() | Max Kellermann | 2010-01-18 | 2 | -10/+0 |
| | | | | Use input_stream.uri. | ||||
* | test/run_convert: implement a GLib log callback | Max Kellermann | 2010-01-16 | 1 | -0/+12 |
| | | | | | Log to stderr instead of the default stdout. We need a pristine stdout for the conversion result. | ||||
* | test/run_convert: use fifo_buffer to adapt to odd sample sizes | Max Kellermann | 2010-01-16 | 1 | -3/+26 |
| | | | | | Ensure that the pcm_convert() length argument is aligned to the sample size. | ||||
* | decoder_api: added function decoder_replay_gain() | Max Kellermann | 2010-01-04 | 2 | -4/+14 |
| | | | | | | This function replaces the replay_gain_info parameter for decoder_data(). This allows the decoder to announce replay gain changes, instead of having to pass the same object over and over. | ||||
* | input_stream: return allocated input_stream objects | Max Kellermann | 2010-01-01 | 4 | -27/+23 |
| | | | | | | | | Major API redesign: don't let the caller allocate the input_stream object. Let each input plugin allocate its own (derived/extended) input_stream pointer. The "data" attribute can now be removed, and all input plugins simply cast the input_stream pointer to their own structure (with an "struct input_stream base" as the first attribute). |