| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
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.
|
|
|
|
| |
Create a sub directory for input plugins.
|
|
|
|
| |
Start to separate private from public input_stream API.
|
|
|
|
|
|
| |
Make those two methods optional to implement, and let input_stream.c
provide fallbacks. The buffer() method will be removed one day, and
there is now only one implementation left (input_curl.c).
|
|
|
|
| |
This way, plugins can manipulate the plugin pointer during open().
|
|
|
|
|
|
|
| |
This patch implements the MMS protocol, by using libmms. It is quite
experimental: it does not support seeking yet, and it is currently
using synchronous I/O, which causes MPD to hang while waiting for the
server.
|
|
|
|
|
| |
The tag() method reads a tag from the stream. This replaces the
meta_name and meta_title attributes.
|
|
|
|
|
| |
When there are no archive plugins, we do not need the archive API at
all. Drop all its overhead.
|
| |
|
|
|
|
|
|
| |
Define the special value "-1" as "unknown size". Previously, there
was no indicator for streams with unknown size, which might confuse
some decoders.
|
|
|
|
|
| |
When the caller passes length==0, decoder_read() entered an endless
loop. Check that condition before entering the "while" loop.
|
| |
|
|
|
|
|
|
| |
size_t and long aren't 64 bit safe (i.e. files larger than 2 GB on a
32 bit OS). Use off_t instead, which is a 64 bit integer if compiled
with large file support.
|
|
|
|
| |
g_free() allows passing the NULL pointer.
|
|
|
|
|
| |
For boolean values and success flags, use bool instead of integer (1/0
for true/false, 0/-1 for success/failure).
|
|
|
|
| |
close() shouldn't fail with read-only streams.
|
|
|
|
|
|
|
| |
Instead of managing a set of method pointers in each input_stream
struct, move these into the new input_plugin struct. Each
input_stream has only a pointer to the plugin struct. Pointers to all
implementations are kept in the array "input_plugins".
|
|
|
|
| |
Renamed all functions and variables.
|
|
|
|
| |
The global constructor is empty, and can be removed.
|
|
Renamed inputStream.c and inputStream_file.c.
|