- 18 Jan, 2009 4 commits
-
-
Max Kellermann authored
Eliminate some more getBlockParam() invocations.
-
Max Kellermann authored
This replaces lots of getBlockParam() invocations.
-
Max Kellermann authored
Don't modify the configured string.
-
Max Kellermann authored
Determine the audio output name with audio_output_get_name() instead of obtaining the name from the configuration again.
-
- 17 Jan, 2009 1 commit
-
-
Max Kellermann authored
Renamed functions, types, variables.
-
- 02 Jan, 2009 2 commits
-
-
Max Kellermann authored
-
Max Kellermann authored
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.
-
- 01 Jan, 2009 1 commit
-
-
Max Kellermann authored
Use GLib's G_GNUC_UNUSED instead of gcc.h's mpd_unused.
-
- 29 Dec, 2008 1 commit
-
-
Max Kellermann authored
-
- 01 Nov, 2008 1 commit
-
-
Max Kellermann authored
Make the pointers "device" and "name" non-const, so we don't need the xfree() hack. The default value is expressed as NULL.
-
- 29 Oct, 2008 1 commit
-
-
Max Kellermann authored
Don't return 0/-1 on success/error, but true/false. Instead of int, use bool for storing flags.
-
- 26 Oct, 2008 2 commits
-
-
Max Kellermann authored
Don't compile the sources of disabled output plugins at all.
-
Max Kellermann authored
Again, no CamelCase in the directory name.
-
- 24 Oct, 2008 9 commits
-
-
Max Kellermann authored
When the audio source provides 24 bit samples, don't bother to convert (lossily) them to 16 bit before jack's floating point conversion - go directly from 24 bit to float.
-
Max Kellermann authored
Move sample format dependent code to a separate function.
-
Max Kellermann authored
Renamed all variables and functions. Add the prefix "mpd_jack_" to function names.
-
Max Kellermann authored
We must never pass partial frames. Added assertions to debug this.
-
Max Kellermann authored
Merge the variables "avail_data" and "avail_frames" into "available". Both variables are never used at the same time.
-
Max Kellermann authored
The JACK documentation postulates that the process() callback must not block, therefore locking is forbidden. Anyway, the old code was racy. Remove all locks, and don't wait for more data to become available - just send to the port what is already in the buffer.
-
Max Kellermann authored
Don't wait until there is room for the full data chunk passed to jack_playAudio(). Try to incrementally send as much as possible into the ring buffer.
-
Max Kellermann authored
Don't hard-code a frame size of "4" (16 bit stereo), calculate the sample size from sizeof(*buffer), and create the constant "frame_size".
-
Max Kellermann authored
Indent with tabs.
-
- 10 Oct, 2008 1 commit
-
-
Max Kellermann authored
The last bit of CamelCase in audio_format.h. Additionally, rename a bunch of local variables.
-
- 08 Oct, 2008 1 commit
-
-
Max Kellermann authored
When there are standardized headers, use these instead of the bloated os_compat.h.
-
- 29 Sep, 2008 1 commit
-
-
Max Kellermann authored
The old struct initializers are error prone and don't allow moving elements around. Since we are going to overhaul some of the APIs soon, it's easier to have all implementations use C99 initializers.
-
- 24 Sep, 2008 4 commits
-
-
Max Kellermann authored
We have eliminated direct accesses to the audio_output struct from the all output plugins. Make it opaque for them, and move its real declaration to output_internal.h, similar to decoder_internal.h. Pass the opaque structure to plugin.init() only, which will return the plugin's data pointer on success, and NULL on failure. This data pointer will be passed to all other methods instead of the audio_output struct.
-
Max Kellermann authored
The JACK output plugin needs to reset its "opened" flag when the JACK server fails. To prevent it from accessing the audio_output struct directly introduce the API function audio_output_closed().
-
Max Kellermann authored
Since the output plugin returns a value indicating success or error, we can have the output core code assign the "open" flag.
-
Max Kellermann authored
Pass the globally configured audio_format as a const pointer to plugin.init(). plugin.open() gets a writable pointer which contains the audio_format requested by the plugin. Its initial value is either the configured audio_format or the input file's audio_format.
-
- 08 Sep, 2008 1 commit
-
-
Max Kellermann authored
Since the plugin struct is never modified, we should store it in constant locations.
-
- 07 Sep, 2008 4 commits
-
-
Max Kellermann authored
Also rename AudioOutputPlugin to struct audio_output_plugin, and use forward declarations to reduce include dependencies.
-
Max Kellermann authored
Just like decoder_api.h, output_api.h provides the audio output API which is used by the plugins.
-
Max Kellermann authored
Get rid of CamelCase, and don't use a typedef, so we can forward-declare it, and unclutter the include dependencies.
-
Max Kellermann authored
The previous patch enabled these warnings. In Eric's branch, they were worked around with a generic deconst_ptr() function. There are several places where we can add "const" to pointers, and in others, libraries want non-const strings. In the latter, convert string literals to "static char[]" variables - this takes the same space, and seems safer than deconsting a string literal.
-
- 26 Aug, 2008 6 commits
-
-
Max Kellermann authored
sample_size is a variable which is computed at compile time. Declare it "static const", so the compiler can optimize it away.
-
Max Kellermann authored
Storing local configuration in global (static) variables is obviously a bad idea. Move all those variables into the JackData struct, including the locks.
-
Max Kellermann authored
-
Max Kellermann authored
There is only one caller of freeJackData() left: jack_finishDriver(). This function is called by the mpd core, and is called exactly once for every successful jack_initDriver(). We do not need to clear audioOutput->data, since this variable is invalidated anyway.
-
Max Kellermann authored
Over the lifetime of the jack AudioOutput object, we want a single valid JackData object, so we can persistently store data there (configuration etc.). Allocate JackData in jack_initDriver(). After that, we can safely remove all audioOutput->data==NULL checks (and replace them with assertions).
-
Max Kellermann authored
No need to destroy the JackData object when an error occurs, since jack_finishDriver() already frees it. Only deinitialize the jack library, introduce freeJackClient() for that, and move code from freeJackData().
-