aboutsummaryrefslogtreecommitdiffstats
path: root/src/output/JackOutputPlugin.cxx (unfollow)
Commit message (Collapse)AuthorFilesLines
2013-10-02Log: new logging library APIMax Kellermann1-14/+15
Prepare to migrate away from GLib. Currently, we're still using GLib as a backend.
2013-09-26*Plugin: remove redundant "line %i" from error messagesMax Kellermann1-8/+6
The MPD core will add this as a prefeix.
2013-09-04util/Error: new error passing libraryMax Kellermann1-47/+41
Replaces GLib's GError.
2013-08-04*: use gcc.h macros instead of GLibMax Kellermann1-1/+1
2013-08-04OutputPlugin: pass config_param referenceMax Kellermann1-14/+13
2013-08-03audio_format: convert to C++Max Kellermann1-14/+14
2013-08-03gcc.h: add macro gcc_unreachable()Max Kellermann1-0/+1
2013-07-30tag: convert to C++Max Kellermann1-0/+1
2013-07-30output_api: convert to C++Max Kellermann1-1/+1
2013-04-17output/jack: convert to C++Max Kellermann1-90/+110
2012-08-14output/jack: implement method delay()Max Kellermann1-4/+11
Eliminate the g_usleep() call.
2012-04-04output/jack: check for connection failure before starting playbackMax Kellermann1-0/+3
2012-04-04output/jack: workaround for libjack1 crash bugMax Kellermann1-0/+13
2011-09-19output_plugin: the plugin allocates the audio_output objectMax Kellermann1-20/+29
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-17output: per-plugin headerMax Kellermann1-0/+1
Move the "extern" declarations from output_list.c, for more type safety.
2011-01-29copyright year 2011Max Kellermann1-1/+1
2010-03-10output/jack: drain the ring buffers during pauseMax Kellermann1-0/+7
If we're not doing this, and a new song is played after pause ends, then you will hear the rest of the previous song.
2010-03-10output/jack: synchronize all channelsMax Kellermann1-9/+26
Always use the same number of samples from each channel's ring buffer. This ensures that all channels are kept in sync.
2009-12-31Update copyright notices.Avuton Olrich1-1/+1
2009-12-02audio_format: changed "bits" to "enum sample_format"Max Kellermann1-5/+6
This patch prepares support for floating point samples (and probably other formats). It changes the meaning of the "bits" attribute from a bit count to a symbolic value.
2009-11-12include config.h in all sourcesMax Kellermann1-1/+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-07output/jack: added option "server_name"Max Kellermann1-1/+8
2009-11-07output/jack: free source port names on exitMax Kellermann1-0/+3
Make valgrind happy.
2009-11-06output/jack: dynamic source port listMax Kellermann1-37/+74
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.
2009-11-06output/jack: dynamic destination port listMax Kellermann1-25/+71
Support up to 16 configured destination ports, that should really be enough for everybody.
2009-11-06output/jack: renamed option "ports" to "destination_ports"Max Kellermann1-1/+9
Be more clear which kind of port should be configured here.
2009-11-06output/jack: renamed "output ports" to "destination ports"Max Kellermann1-18/+20
Use the same name as in the libjack API documentation.
2009-11-05output/jack: support mono inputMax Kellermann1-13/+41
When MPD plays a mono song (audio_format.channel==1), connect only one source port to both destination ports.
2009-11-05output/jack: clear ring buffers before activatingMax Kellermann1-1/+6
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.
2009-11-05output/jack: use jack_client_open() instead of jack_client_new()Max Kellermann1-4/+23
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".
2009-11-05output/jack: added option "client_name"Max Kellermann1-3/+2
Instead of using MPD's audio output name (setting "name"), use a separate configuration option. Change the default to "Music Player Daemon".
2009-10-23output/jack: implement methods enable()/disable()Max Kellermann1-16/+24
Don't connect to JACK before MPD has daemonized.
2009-10-21output/jack: make ringbuffer_size a size_tMax Kellermann1-1/+1
2009-10-21output/jack: connect to server on MPD startupMax Kellermann1-69/+119
.. and keep up the JACK connection while MPD runs. Allocate the ring buffers on the first open, and free them at MPD exit.
2009-10-21output/jack: removed the empty "cancel" methodMax Kellermann1-6/+0
JACK doesn't need cancel() because it won't do much anyway. Buffers are small.
2009-10-21output/jack: renamed parameter "error" to "error_r"Max Kellermann1-12/+12
It's a double pointer.
2009-10-21output/jack: implement the "pause" methodMax Kellermann1-0/+41
Don't disconnect from JACK during pause.
2009-10-21output/jack: renamed source to jack_output_plugin.cMax Kellermann1-2/+2
2009-03-13all: Update copyright header.Avuton Olrich1-5/+7
This updates the copyright header to all be the same, which is pretty much an update of where to mail request for a copy of the GPL and the years of the MPD project. This also puts all committers under 'The Music Player Project' umbrella. These entries should go individually in the AUTHORS file, for consistancy.
2009-03-01output: removed duplicate debug messages from pluginsMax Kellermann1-1/+0
The MPD core logs the audio format of all audio outputs. Remove the duplicate message from the plugins.
2009-02-26output_plugin: report errors with GErrorMax Kellermann1-21/+40
Use GLib's GError library for reporting output device failures. Note that some init() methods don't clean up properly after a failure, but that's ok for now, because the MPD core will abort anyway.
2009-02-25output_plugin: don't pass audio_output object to method init()Max Kellermann1-2/+1
audio_output_get_name() has been removed, which was the only function left in output_api.h. The output plugin doesn't need the audio_output object at all, remove the parameter from the init() method.
2009-02-25output_api: removed audio_output_get_name()Max Kellermann1-10/+4
Use config_get_block_string("name") instead of audio_output_get_name().
2009-02-24jack: initialize local variable "space"Max Kellermann1-1/+1
Fix a gcc warning, initialize the "space" variable at the beginning of mpd_jack_play().
2009-02-23output: pass the music chunk pointer as void*, not char*Max Kellermann1-2/+2
The meaning of the chunk depends on the audio format; don't suggest a specific format by declaring the pointer as "char*", pass "void*" instead.
2009-02-23output_api: play() returns a lengthMax Kellermann1-18/+15
The old API required an output plugin to not return until all data passed to the play() method is consumed. Some output plugins have to loop to fulfill that requirement, and may block during that. Simplify these, by letting them consume only part of the buffer: make play() return the length of the consumed data.
2009-02-19utils: use g_usleep() instead of my_usleep()Max Kellermann1-2/+1
Now that I've found this nice function in the GLib docs, we can finally remove our custom sleep function. Still all those callers of g_usleep() have to be migrated one day to use events, instead of regular polling.
2009-02-16output_api: don't include config.hMax Kellermann1-0/+1
If an output plugin requires config.h, it should include it directly.
2009-01-30jack: don't override output_ports in connect()Max Kellermann1-10/+22
If no ports are configured, don't overwrite the (NULL) configuration with the port names of the first JACK server. If the server changes after a JACK reconnect, MPD won't attempt to auto-detect again.
2009-01-30jack: removed sample_rate callbackMax Kellermann1-20/+7
Currently, the JACK plugin manipulates the audio_format struct which was passed to the open() method. This is very likely to break, because the plugin must not permanently store this pointer. After this patch, MPD ignores sample rate changes. It looks like other software is doing the same, and I guess this is a non-issue. This patch converts the audio_format pointer within jack_data into a static audio_format struct.