| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
The lastfm input plugin enables MPD to play lastfm:// URLs. This
plugin is not complete yet: it plays only the first song in the
last.fm playlist, and the playlist parser isn't even implemented
properly.
|
|
|
|
|
| |
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.
|