diff options
author | Max Kellermann <max@duempel.org> | 2010-06-25 22:37:20 +0200 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2010-06-25 22:37:34 +0200 |
commit | 68f75955d8ac31cab5c0e687ac4d7157926b0360 (patch) | |
tree | e89185020941f6f64bae645949c91582457e81f2 /src | |
parent | cd21cfc115c429ae69f368efeecc67c30da8ef4a (diff) | |
download | mpd-68f75955d8ac31cab5c0e687ac4d7157926b0360.tar.gz mpd-68f75955d8ac31cab5c0e687ac4d7157926b0360.tar.xz mpd-68f75955d8ac31cab5c0e687ac4d7157926b0360.zip |
playlist_list: moved input_stream.ready loop to calling function
Merged both loops into playlist_list_open_stream(). This is needed
because playlist_list_open_stream() needs to know the MIME type, which
is only known after the stream has become "ready".
Diffstat (limited to 'src')
-rw-r--r-- | src/playlist_list.c | 33 |
1 files changed, 11 insertions, 22 deletions
diff --git a/src/playlist_list.c b/src/playlist_list.c index 5220de63e..35c04d533 100644 --- a/src/playlist_list.c +++ b/src/playlist_list.c @@ -192,22 +192,11 @@ playlist_list_open_uri(const char *uri) static struct playlist_provider * playlist_list_open_stream_mime(struct input_stream *is) { - GError* error = NULL; struct playlist_provider *playlist; assert(is != NULL); assert(is->mime != NULL); - while (!is->ready) { - int ret = input_stream_buffer(is, &error); - if (ret < 0) { - input_stream_close(is); - g_warning("%s", error->message); - g_error_free(error); - return NULL; - } - } - for (unsigned i = 0; playlist_plugins[i] != NULL; ++i) { const struct playlist_plugin *plugin = playlist_plugins[i]; @@ -231,22 +220,11 @@ playlist_list_open_stream_mime(struct input_stream *is) static struct playlist_provider * playlist_list_open_stream_suffix(struct input_stream *is, const char *suffix) { - GError* error = NULL; struct playlist_provider *playlist; assert(is != NULL); assert(suffix != NULL); - while (!is->ready) { - int ret = input_stream_buffer(is, &error); - if (ret < 0) { - input_stream_close(is); - g_warning("%s", error->message); - g_error_free(error); - return NULL; - } - } - for (unsigned i = 0; playlist_plugins[i] != NULL; ++i) { const struct playlist_plugin *plugin = playlist_plugins[i]; @@ -273,6 +251,17 @@ playlist_list_open_stream(struct input_stream *is, const char *uri) const char *suffix; struct playlist_provider *playlist; + GError *error = NULL; + while (!is->ready) { + int ret = input_stream_buffer(is, &error); + if (ret < 0) { + input_stream_close(is); + g_warning("%s", error->message); + g_error_free(error); + return NULL; + } + } + if (is->mime != NULL) { playlist = playlist_list_open_stream_mime(is); if (playlist != NULL) |