diff options
Diffstat (limited to 'src/input_stream.h')
-rw-r--r-- | src/input_stream.h | 41 |
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); |