| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
Use jack_set_info_function() to install an info callback. Don't let
libjack print them to stderr.
|
|
|
|
| |
Return false from mpd_jack_play(), let the MPD core close the device.
|
|
|
|
| |
Don't leave uninitialized bytes in the jack_data struct.
|
|
|
|
| |
When MPD stops playback, close the JACK client connection.
|
|
|
|
| |
The "bps" attribute is calculated, but never used.
|
|
|
|
| |
Return true/false instead of 1/-1.
|
|
|
|
|
|
|
| |
Preparation for supporting other channel numbers than stereo: use
loops instead of duplicating code for the second channel. Most
likely, gcc will unroll these loops, so the binary won't be any
different.
|
|
|
|
|
| |
When jack_get_ports() returns NULL, we cannot have any ports to
connect to, and the device cannot play anything.
|
|
|
|
|
| |
libjack's jack_port_name() function returns the effective port name,
we don't need to do it manually.
|
|
|
|
|
| |
Do the global libjack initialization in the global plugin
initialization function.
|
|
|
|
|
|
|
|
|
|
| |
When waiting for free space in the ring buffer, the JACK plugin
sleeped 10ms until there is enough space. This delay was too large
for low-latency setups (<10ms), and created a lot of xruns. Work
around that by reducing the sleep time to 1ms.
A proper solution for this would be to use an event based approach,
and we will do it, just not now.
|
|
|
|
|
|
|
| |
When the connection failed once, you had to restart MPD, because it
never cleared the jack_data.shutdown flag. Instead, it refused to
play anything "because there is no client thread" (which is wrong at
that point).
|
|
|
|
|
| |
If the ring buffers are allocated after jack_activate(),
mpd_jack_process() might segfault because it attempts to access them.
|
|
|
|
| |
Call jack_port_register() before jack_activate().
|
|
|
|
|
|
| |
On some platforms, g_free() must be used for memory allocated by
GLib. This patch intends to correct a lot of occurrences, but is
probably not complete.
|
|
|
|
|
|
|
|
| |
Return the default value in the conf_get_block_*() functions when
param==NULL was passed.
This simplifies a lot of code, because all initialization can be done
in one code path, regardless whether configuration is present.
|
|
|
|
|
| |
All config_get_block_*() functions should accept constant config_param
pointers.
|
|
|
|
| |
Eliminate some more getBlockParam() invocations.
|
|
|
|
| |
This replaces lots of getBlockParam() invocations.
|
|
|
|
| |
Don't modify the configured string.
|
|
|
|
|
| |
Determine the audio output name with audio_output_get_name() instead
of obtaining the name from the configuration again.
|
|
|
|
| |
Renamed functions, types, variables.
|
| |
|
|
|
|
|
|
|
|
|
| |
JACK documentation states: "The caller is responsible for calling
free(3) any non-NULL returned value."
This does not seem to include the array elements. Duplicate them
after jack_get_ports(), and free only the array. Convert
JackData.output_ports to non-const.
|
|
|
|
| |
Use GLib's G_GNUC_UNUSED instead of gcc.h's mpd_unused.
|
| |
|
|
|
|
|
| |
Make the pointers "device" and "name" non-const, so we don't need the
xfree() hack. The default value is expressed as NULL.
|
|
|
|
|
| |
Don't return 0/-1 on success/error, but true/false. Instead of int,
use bool for storing flags.
|
|
|
|
| |
Don't compile the sources of disabled output plugins at all.
|
|
Again, no CamelCase in the directory name.
|