diff options
author | Max Kellermann <max@duempel.org> | 2013-01-07 23:23:58 +0100 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2013-01-07 23:25:08 +0100 |
commit | 960b9a966450f4870a14c81170e3b625f9c13a8a (patch) | |
tree | 1066a84c6825aea6f61bf9db8fdf4e54c8f66144 /src/input | |
parent | acb45caa4205d6e07c46b14079a7ffe0a2141d3d (diff) | |
download | mpd-960b9a966450f4870a14c81170e3b625f9c13a8a.tar.gz mpd-960b9a966450f4870a14c81170e3b625f9c13a8a.tar.xz mpd-960b9a966450f4870a14c81170e3b625f9c13a8a.zip |
input_stream: add method _cheap_seeking()
Move code from the Vorbis decoder plugin.
Diffstat (limited to '')
-rw-r--r-- | src/input_stream.c | 7 | ||||
-rw-r--r-- | src/input_stream.h | 7 |
2 files changed, 14 insertions, 0 deletions
diff --git a/src/input_stream.c b/src/input_stream.c index e445dca6c..c82788f39 100644 --- a/src/input_stream.c +++ b/src/input_stream.c @@ -22,6 +22,7 @@ #include "input_registry.h" #include "input_plugin.h" #include "input/rewind_input_plugin.h" +#include "uri.h" #include <glib.h> #include <assert.h> @@ -115,6 +116,12 @@ input_stream_lock_wait_ready(struct input_stream *is) } bool +input_stream_cheap_seeking(const struct input_stream *is) +{ + return is->seekable && (is->uri == NULL || !uri_has_scheme(is->uri)); +} + +bool input_stream_seek(struct input_stream *is, goffset offset, int whence, GError **error_r) { diff --git a/src/input_stream.h b/src/input_stream.h index 3a29625af..d5b1dae2e 100644 --- a/src/input_stream.h +++ b/src/input_stream.h @@ -168,6 +168,13 @@ void input_stream_lock_wait_ready(struct input_stream *is); /** + * Determines whether seeking is cheap. This is true for local files. + */ +gcc_pure gcc_nonnull(1) +bool +input_stream_cheap_seeking(const struct input_stream *is); + +/** * Seeks to the specified position in the stream. This will most * likely fail if the "seekable" flag is false. * |