Commit Graph

24 Commits

Author SHA1 Message Date
Max Kellermann
0103219f00 playlist_queue: add start/end_index parameters 2012-02-09 23:44:33 +01:00
Max Kellermann
754f26a97c input_stream: non-blocking I/O
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.
2011-09-16 21:22:13 +02:00
Max Kellermann
aede71b1dc playlist: move enum playlist_result to playlist_error.h
Reduce header dependencies.
2011-09-11 07:55:51 +02:00
Max Kellermann
c6cbcc2c25 copyright year 2011 2011-01-29 10:13:54 +01:00
Max Kellermann
b6995ca011 player_control: removed the global variable "pc"
Allocate a player_control object where needed, and pass it around.
Each "client" object is associated with a "player_control" instance.

This prepares multi-player support.
2011-01-10 19:46:23 +01:00
Max Kellermann
5274fee8a7 playlist_song: add flag "secure"
Optionally allow all local files.

"Insecure" mode is used for printing playlists.
2010-12-23 16:24:00 +01:00
Max Kellermann
373d1843a8 playlist_queue: use playlist_open_any() 2010-06-25 22:43:52 +02:00
Max Kellermann
fba13bd5d2 playlist_queue: simplify error handler
Return early on error, save one level of indent.
2010-06-25 22:37:34 +02:00
Max Kellermann
caf93d9a2c playlist_list: playlist_list_open_path() returns input_stream
Memory leak fix.  The input_stream object passed to
playlist_list_open_stream_suffix() must be closed by the caller - this
however never happens in playlist_list_open_path(), because it does
not return it to the caller.
2010-06-01 09:59:54 +02:00
Max Kellermann
7fbb856eee playlist_queue: moved code to playlist_mapper.c 2010-02-08 10:56:28 +01:00
Max Kellermann
bb2aa70ec6 playlist_queue: moved check_translate_song() to playlist_song.c 2010-02-08 10:28:12 +01:00
Max Kellermann
01c5cb985c playlist_queue: convert absolute paths
Accept absolute paths if they point into the music directory.
2010-01-06 08:00:35 +01:00
Max Kellermann
8a5d2c3c83 playlist_queue: use the "uri" variable earlier
Preparation for the next patch.
2010-01-06 08:00:02 +01:00
Max Kellermann
d3b763a48c input_stream: return allocated input_stream objects
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).
2010-01-01 17:25:07 +01:00
Avuton Olrich
9d3865cb95 Update copyright notices. 2009-12-31 20:58:43 -08:00
Max Kellermann
201316cd67 playlist_queue: resolve relative URIs, database lookup
Prepend the playlist's base URI to relative song URIs.  Look up songs
in the database (if the URI refers to a local song file).  Merge
existing database metadata with metadata from the playlist plugin.
2009-12-27 16:08:53 +01:00
Max Kellermann
cf38505d8f playlist_queue: load playlists from music directory
Try the playlist directory first, and if that file does not exist, try
the same relative path within the music directory.
2009-12-27 14:17:26 +01:00
Max Kellermann
627975e897 playlist_queue: pass const string to playlist_open_path_into_queue() 2009-12-27 14:17:13 +01:00
Max Kellermann
216dff98d2 playlist_queue: try open by URI first
If that fails, try opening the file as a stream.
2009-12-26 03:01:52 +01:00
Max Kellermann
228b03edf8 input_stream: return errors with GError 2009-12-15 23:12:11 +01:00
Max Kellermann
5b82ffc291 include config.h in all sources
After we've been hit by Large File Support problems several times in
the past week (which only occur on 32 bit platforms, which I don't
have), this is yet another attempt to fix the issue.
2009-11-12 09:17:03 +01:00
Max Kellermann
8cb9f9b070 playlist_queue: use playlist plugins to load from playlist_directory
This patch allows the client to load a playlist file from the playlist
directory with a plugin.  This can be used with the "load" command,
but the client has to pass the file name including the suffix.  We
will probably use the music directory in the future, to support
playlist files inside the music directory.
2009-11-06 01:09:21 +01:00
Max Kellermann
61cb5df842 playlist_queue: moved code to playlist_open_remote_into_queue() 2009-11-06 01:07:42 +01:00
Max Kellermann
a93ffdd1be command: "load" supports remote playlists (m3u, xspf, lastfm://)
This patch integrates the playlist plugin API to the MPD core.  We'll
be able to do much more in the future with that API, that's just the
beginning.
2009-10-13 18:53:33 +02:00