- 07 Nov, 2009 22 commits
-
-
Max Kellermann authored
Added the "fd_util" library, which attempts to use the new thread-safe Linux system calls pipe2(), accept4() and the options O_CLOEXEC, SOCK_CLOEXEC. Without these, it falls back to FD_CLOEXEC, which is not thread safe. This is particularly important for the "pipe" output plugin (and others, such as JACK/PulseAudio), because we were heavily leaking file descriptors to child processes.
-
Max Kellermann authored
An input_stream_close() call was missing after today's code reorganization.
-
Max Kellermann authored
Don't hold a file descriptor on root's tty when syslog is used for logging.
-
Max Kellermann authored
-
Max Kellermann authored
When an output's enable() method has failed, and playback starts, retry to enable it. Without this, the user may be confused, because he sees the device is "enabled" but cannot use it, and currently there is no error message in the log.
-
Max Kellermann authored
-
Max Kellermann authored
GLib's version of fnmatch() is more portable.
-
Max Kellermann authored
-
Max Kellermann authored
Check ferror() instead of the fprintf() return value.
-
Max Kellermann authored
-
Max Kellermann authored
This command prints a list of decoder plugins and their suffixes / MIME types.
-
Max Kellermann authored
Export the decoder_plugins array. The function decoder_plugin_print_all_decoders() it is UI specific and should not live in this backend library.
-
Max Kellermann authored
Before calling the plugin's decode method, we should ensure that we didn't receive a STOP command during initialization.
-
Max Kellermann authored
This function opens the stream and waits for it to become ready; meanwhile it checks for STOP commands. It is code moved from decoder_run_stream().
-
Max Kellermann authored
Simplify the expressions.
-
Max Kellermann authored
Make valgrind happy.
-
Max Kellermann authored
Remove the static integer hack, that's not thread safe and sucks.
-
Max Kellermann authored
-
Max Kellermann authored
A NULL terminated list is easier to iterate.
-
Max Kellermann authored
Moved the global input stream opener to decoder_run_stream(). decoder_run_file() now opens the input stream each time a plugin provides a stream decoder method.
-
Max Kellermann authored
Tame the large decoder_run_song() function.
-
Max Kellermann authored
Let gcc optimize a little bit more.
-
- 06 Nov, 2009 8 commits
-
-
Max Kellermann authored
No CamelCase. Use bool instead of int. Make both arguments mandatory.
-
Max Kellermann authored
Same as the previous patch: create up to 16 configured source ports. The plugin tries to do its best at guessing the right combination for the given input file, the number of source and destination ports.
-
Max Kellermann authored
Support up to 16 configured destination ports, that should really be enough for everybody.
-
Max Kellermann authored
Be more clear which kind of port should be configured here.
-
Max Kellermann authored
Use the same name as in the libjack API documentation.
-
Max Kellermann authored
This patch allows the client to load a playlist file from the playlist directory with a plugin. This can be used with the "load" command, but the client has to pass the file name including the suffix. We will probably use the music directory in the future, to support playlist files inside the music directory.
-
Max Kellermann authored
-
Max Kellermann authored
Added an interface for loading playlists from a local file.
-
- 05 Nov, 2009 10 commits
-
-
Max Kellermann authored
This new plugin parses extm3u files. Files without the "#EXTM3U" header are still parsed by the plain old "m3u" plugin.
-
Max Kellermann authored
The caller is responsible for verifying the song URI.
-
Max Kellermann authored
If one plugin has failed to open the playlist, it may have consumed a part of the stream already. This may lead to a failure in all following plugins. Fix: rewind the stream before each open() call.
-
Max Kellermann authored
Implement the methods enable() and disable(). Bind the HTTP port in the enable() method, but reject all incoming connections until the output is opened.
-
Max Kellermann authored
When MPD plays a mono song (audio_format.channel==1), connect only one source port to both destination ports.
-
Max Kellermann authored
After playback has stopped, the ring buffers may still contain samples. These will be played when playback is started the next time. We should clear the buffers each time.
-
Max Kellermann authored
jack_client_new() is deprecated. This requires libjack 0.100 (released nearly 5 years ago). We havn't been testing older libjack versions anyway. As a side effect, there is the new option "autostart".
-
Max Kellermann authored
-
Max Kellermann authored
Instead of using MPD's audio output name (setting "name"), use a separate configuration option. Change the default to "Music Player Daemon".
-
Max Kellermann authored
When a song's tags could not be loaded during database update, log this as a debug message. Same for a song being removed because its updated tag could not be read.
-