| Commit message (Collapse) | Author | Files | Lines |
|
|
|
Add enum InputResult which is a tri-state. Input plugins may now fail
and just become unavailable.
|
|
|
|
|
|
|
|
|
|
Decouple some more from GLib.
|
|
|
|
|
|
Replaces GLib's GError.
|
|
|
|
|
|
|
|
|
|
|
|
Add GMutex, GCond attributes which will be used by callers to
conditionally wait on the stream.
Remove the (now-useless) plugin method buffer(), wait on GCond
instead. Lock the input_stream before each method call. Do the same
with the playlist plugins.
|
|
To check for errors without reading. The decoder thread wants to do
that, before it passes the input stream to the plugin.
|
|
Update the struct attributes, important for facades like the "rewind"
plugin. To replace buffer().
|
|
These fixes were mostly generated with `codespell' [0] and manually
reviewed.
[0] http://git.profusion.mobi/cgit.cgi/lucas/codespell/
|
|
|
|
Major API redesign: don't let the caller allocate the input_stream
object. Let each input plugin allocate its own (derived/extended)
input_stream pointer. The "data" attribute can now be removed, and
all input plugins simply cast the input_stream pointer to their own
structure (with an "struct input_stream base" as the first attribute).
|
|
|
|
|
|
Not used by any plugin currently, but this eliminates the g_error()
call in input_plugin_config(), so it's worth it.
|
|
The "off_t" type may change when you enable or disable large file
support on 32 bit platforms. This caused severe ABI problems within
MPD when we enabled LFS for the first time: two sources included
config.h and sys/types.h in different order, and had different off_t
sizes - leading to memory corruption because of ABI incompatibility.
This patch attempts to get rid of all public "off_t" uses: it removes
"off_t" from the input_stream ABI/API, and switches to GLib's 64 bit
"goffset" type. This may hurt 32 bit embedded platforms a tiny bit,
but that's not even measurable.
|
|
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.
|
|
Allow input plugins to configure with an "input" block in mpd.conf.
Also allow the user to disable a plugin completely.
|
|
Instead of hard-coding the plugin global initialization in
input_stream_global_init(), make it walk the plugin list and
initialize all plugins.
|
|
Start to separate private from public input_stream API.
|
|
Added a small AIFF parser library, code copied from the RIFF parser
(big-endian integers). Look for an "ID3" chunk, and let libid3tag
parse it.
|
|
Added a small RIFF parser library. Look for an "id3" chunk, and let
libid3tag parse it.
|
|
Moved everything related to saving or loading the playlist from/to the
state file to playlist_state.c.
|
|
In generic PCM functions allowing all sample formats, pass a void
pointer instead of a char pointer.
|
|
Moved the software mixing code (used by crossfading) to a separate
library.
|
|
Don't use libc's rand() function, because it is slow. Our own trivial
linear congruential generator is good enough for dithering.
|
|
redirect_stdin() is a daemonization function, and disconnecting from
the standard input is always a good idea for MPD.
|
|
|
|
Prepare for the migration to the GLib option parser, which uses
gboolean for flags.
|
|
|
|
"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.
|
|
When there are standardized headers, use these instead of the bloated
os_compat.h.
|
|
Similar to decoder_control.c, output_control.c will provide functions
for controlling the output thread (which will be implemented later).
|
|
This function is declared, but is neither used nor implemented.
|
|
Instead of having to register each output plugin, store them
statically in an array. This eliminates the need for the List library
here, and saves some small allocations during startup.
|
|
Also rename AudioOutputPlugin to struct audio_output_plugin, and use
forward declarations to reduce include dependencies.
|
|
Just like decoder_api.h, output_api.h provides the audio output API
which is used by the plugins.
|
|
Get rid of CamelCase, and don't use a typedef, so we can
forward-declare it, and unclutter the include dependencies.
|
|
Getting rid of CamelCase; not having typedefs also allows us to
forward-declare the structures.
|
|
And again, convert arguments to const.
|
|
We want to expose the AudioFormat structure to plugins; remove some
clutter by moving its declaration to a separate header file.
|