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.h41
1 files changed, 20 insertions, 21 deletions
diff --git a/src/input_stream.h b/src/input_stream.h
index 056d008a7..2901f6ea6 100644
--- a/src/input_stream.h
+++ b/src/input_stream.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2003-2010 The Music Player Daemon Project
+ * Copyright (C) 2003-2011 The Music Player Daemon Project
* http://www.musicpd.org
*
* This program is free software; you can redistribute it and/or modify
@@ -21,6 +21,7 @@
#define MPD_INPUT_STREAM_H
#include "check.h"
+#include "gcc.h"
#include <glib.h>
@@ -71,42 +72,33 @@ struct input_stream {
char *mime;
};
-static inline void
-input_stream_init(struct input_stream *is, const struct input_plugin *plugin,
- const char *uri)
-{
- is->plugin = plugin;
- is->uri = g_strdup(uri);
- is->ready = false;
- is->seekable = false;
- is->size = -1;
- is->offset = 0;
- is->mime = NULL;
-}
-
-static inline void
-input_stream_deinit(struct input_stream *is)
-{
- g_free(is->uri);
- g_free(is->mime);
-}
-
/**
* Opens a new input stream. You may not access it until the "ready"
* flag is set.
*
* @return an #input_stream object on success, NULL on error
*/
+gcc_nonnull(1)
+G_GNUC_MALLOC
struct input_stream *
input_stream_open(const char *uri, GError **error_r);
/**
* Close the input stream and free resources.
*/
+gcc_nonnull(1)
void
input_stream_close(struct input_stream *is);
/**
+ * Update the public attributes. Call before accessing attributes
+ * such as "ready" or "offset".
+ */
+gcc_nonnull(1)
+void
+input_stream_update(struct input_stream *is);
+
+/**
* Seeks to the specified position in the stream. This will most
* likely fail if the "seekable" flag is false.
*
@@ -114,6 +106,7 @@ input_stream_close(struct input_stream *is);
* @param offset the relative offset
* @param whence the base of the seek, one of SEEK_SET, SEEK_CUR, SEEK_END
*/
+gcc_nonnull(1)
bool
input_stream_seek(struct input_stream *is, goffset offset, int whence,
GError **error_r);
@@ -121,6 +114,8 @@ input_stream_seek(struct input_stream *is, goffset offset, int whence,
/**
* Returns true if the stream has reached end-of-file.
*/
+gcc_nonnull(1)
+G_GNUC_PURE
bool input_stream_eof(struct input_stream *is);
/**
@@ -129,6 +124,8 @@ bool input_stream_eof(struct input_stream *is);
* @return a tag object which must be freed with tag_free(), or NULL
* if the tag has not changed since the last call
*/
+gcc_nonnull(1)
+G_GNUC_MALLOC
struct tag *
input_stream_tag(struct input_stream *is);
@@ -140,6 +137,7 @@ input_stream_tag(struct input_stream *is);
* The semantics of this function are not well-defined, and it will
* eventually be removed.
*/
+gcc_nonnull(1)
int input_stream_buffer(struct input_stream *is, GError **error_r);
/**
@@ -151,6 +149,7 @@ int input_stream_buffer(struct input_stream *is, GError **error_r);
* @param size the maximum number of bytes to read
* @return the number of bytes read
*/
+gcc_nonnull(1, 2)
size_t
input_stream_read(struct input_stream *is, void *ptr, size_t size,
GError **error_r);