- 01 Jan, 2010 1 commit
-
-
Avuton Olrich authored
-
- 29 Oct, 2009 1 commit
-
-
Max Kellermann authored
drain() is the opposite of cancel(): it waits until all data in the buffer has finished playing. Instead of implicitly draining in the close() method like the ALSA plugin has been doing it forever, let the output thread decide whether to drain or to cancel.
-
- 23 Oct, 2009 1 commit
-
-
Max Kellermann authored
With these methods, an output plugin can allocate some global resources only if it is actually enabled. The method enable() is called after daemonization, which allows for more sophisticated resource allocation during that method.
-
- 26 Mar, 2009 1 commit
-
-
Max Kellermann authored
The mixer core library is now responsible for creating and managing the mixer object. This removes duplicated code from the output plugins.
-
- 13 Mar, 2009 1 commit
-
-
Avuton Olrich authored
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.
-
- 26 Feb, 2009 1 commit
-
-
Max Kellermann authored
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.
-
- 25 Feb, 2009 1 commit
-
-
Max Kellermann authored
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.
-
- 23 Feb, 2009 2 commits
-
-
Max Kellermann authored
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.
-
Max Kellermann authored
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.
-
- 16 Feb, 2009 4 commits
-
-
Max Kellermann authored
The output plugin shouldn't know any specifics of the mixer API. Make it return the mixer object, and let the caller deal with it.
-
Max Kellermann authored
Similar to the decoder plugin API: added wrapper functions to increase code readability.
-
Max Kellermann authored
Initialization and deinitialization first, then tag functions, then play/cancel/pause.
-
Max Kellermann authored
If we move the plugin struct to a separate header, we don't have to include the big fat output_api.h everywhere.
-
- 15 Feb, 2009 1 commit
-
-
Max Kellermann authored
Now that the output_command enum isn't exposed to output plugins anymore, we can hide its definition within output_internal.h.
-
- 09 Feb, 2009 1 commit
-
-
Max Kellermann authored
Including "../config.h" breaks on some systems.
-
- 30 Jan, 2009 3 commits
-
-
Max Kellermann authored
Move the "while" loop which checks for commands to the caller ao_pause(). This simplifies the pause() method, and lets us remove audio_output_is_pending().
-
Max Kellermann authored
The macro is unused.
-
Max Kellermann authored
The function is only used by the MVP output plugin, and this one call is wrong.
-
- 25 Jan, 2009 2 commits
-
-
Max Kellermann authored
Those have been superseded by the new legacy configuration code.
-
Max Kellermann authored
All config_get_block_*() functions should accept constant config_param pointers.
-
- 17 Jan, 2009 1 commit
-
-
Max Kellermann authored
Renamed functions, types, variables.
-
- 31 Dec, 2008 1 commit
-
-
Viliam Mateicka authored
-
- 25 Nov, 2008 1 commit
-
-
Max Kellermann authored
-
- 31 Oct, 2008 1 commit
-
-
Max Kellermann authored
"LOG_H" is a macro which is also used by ffmpeg/log.h. This is ffmpeg's fault, because short macros should be reserved for applications, but since it's always a good idea to choose prefixed macro names, even for applications, we are going to do that in MPD.
-
- 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.
-
- 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 2 commits
-
-
Max Kellermann authored
pause() puts the audio output into pause mode: if supported, it may perform a special action, which keeps the device open, but does not play anything. Output plugins like "shout" might want to play silence during pause, so their clients won't be disconnected. Plugins which do not support pausing will simply be closed, and have to be reopened when unpaused. This pach includes an implementation for the shout plugin, which sends silence chunks.
-
Max Kellermann authored
The function audio_output_is_pending() returns whether there is a pending command. This is useful for output plugins as a break condition for longer loops.
-
- 24 Sep, 2008 6 commits
-
-
Max Kellermann authored
-
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
Reduce direct accesses to the audio_output struct from the plugins: this time, eliminate all accesses to audio_output.name. The name is required by some plugins for log messages.
-
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.
-
Max Kellermann authored
To keep I/O nastiness and latencies away from the core, move the audio output code to a separate thread, one per output. The thread is created on demand, and currently runs until mpd exits.
-
- 11 Sep, 2008 2 commits
-
-
Max Kellermann authored
Eliminate sameInAndOutFormats and check with audio_format_equals() each time it this information is needed. Another 4 bytes saved.
-
Max Kellermann authored
Instead of checking convertAudioFormat, we can simply check if reqAudioFormat is defined. This saves 4 bytes in the struct.
-
- 09 Sep, 2008 1 commit
-
-
Max Kellermann authored
No CamelCase. Also don't declare typedefs for the methods.
-
- 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 2 commits
-
-
Max Kellermann authored
Instead of copying all that stuff from the audio output plugin to the audio output structure, store a pointer to the plugin.
-
Max Kellermann authored
Also rename AudioOutputPlugin to struct audio_output_plugin, and use forward declarations to reduce include dependencies.
-