aboutsummaryrefslogtreecommitdiffstats
path: root/src/input_stream.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/input_stream.h')
-rw-r--r--src/input_stream.h37
1 files changed, 15 insertions, 22 deletions
diff --git a/src/input_stream.h b/src/input_stream.h
index 35b0d44fd..7d61b9d86 100644
--- a/src/input_stream.h
+++ b/src/input_stream.h
@@ -20,11 +20,17 @@
#ifndef MPD_INPUT_STREAM_H
#define MPD_INPUT_STREAM_H
+#include "check.h"
+
+#include <glib.h>
+
#include <stddef.h>
#include <stdbool.h>
#include <sys/types.h>
-struct input_stream;
+#if !GLIB_CHECK_VERSION(2,14,0)
+typedef gint64 goffset;
+#endif
struct input_stream {
/**
@@ -49,19 +55,14 @@ struct input_stream {
bool seekable;
/**
- * an optional errno error code, set to non-zero after an error occured
- */
- int error;
-
- /**
* the size of the resource, or -1 if unknown
*/
- off_t size;
+ goffset size;
/**
* the current offset within the stream
*/
- off_t offset;
+ goffset offset;
/**
* the MIME content type of the resource, or NULL if unknown
@@ -70,16 +71,6 @@ struct input_stream {
};
/**
- * Initializes this library and all input_stream implementations.
- */
-void input_stream_global_init(void);
-
-/**
- * Deinitializes this library and all input_stream implementations.
- */
-void input_stream_global_finish(void);
-
-/**
* Opens a new input stream. You may not access it until the "ready"
* flag is set.
*
@@ -87,7 +78,7 @@ void input_stream_global_finish(void);
* @return true on success
*/
bool
-input_stream_open(struct input_stream *is, const char *url);
+input_stream_open(struct input_stream *is, const char *url, GError **error_r);
/**
* Closes the input stream and free resources. This does not free the
@@ -106,7 +97,8 @@ input_stream_close(struct input_stream *is);
* @param whence the base of the seek, one of SEEK_SET, SEEK_CUR, SEEK_END
*/
bool
-input_stream_seek(struct input_stream *is, off_t offset, int whence);
+input_stream_seek(struct input_stream *is, goffset offset, int whence,
+ GError **error_r);
/**
* Returns true if the stream has reached end-of-file.
@@ -130,7 +122,7 @@ input_stream_tag(struct input_stream *is);
* The semantics of this function are not well-defined, and it will
* eventually be removed.
*/
-int input_stream_buffer(struct input_stream *is);
+int input_stream_buffer(struct input_stream *is, GError **error_r);
/**
* Reads data from the stream into the caller-supplied buffer.
@@ -142,6 +134,7 @@ int input_stream_buffer(struct input_stream *is);
* @return the number of bytes read
*/
size_t
-input_stream_read(struct input_stream *is, void *ptr, size_t size);
+input_stream_read(struct input_stream *is, void *ptr, size_t size,
+ GError **error_r);
#endif