aboutsummaryrefslogtreecommitdiffstats
path: root/src/archive_plugin.h
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2009-12-30 23:27:37 +0100
committerMax Kellermann <max@duempel.org>2010-01-01 17:25:07 +0100
commitd3b763a48c09a60a0c0b5ccb6cccd9376875c470 (patch)
tree83b8794f78ef8941806cf5757888d8abf2eaa126 /src/archive_plugin.h
parent816b6ad4a71c3ade95e62b62396f2b0415c03f20 (diff)
downloadmpd-d3b763a48c09a60a0c0b5ccb6cccd9376875c470.tar.gz
mpd-d3b763a48c09a60a0c0b5ccb6cccd9376875c470.tar.xz
mpd-d3b763a48c09a60a0c0b5ccb6cccd9376875c470.zip
input_stream: return allocated input_stream objects
Major API redesign: don't let the caller allocate the input_stream object. Let each input plugin allocate its own (derived/extended) input_stream pointer. The "data" attribute can now be removed, and all input plugins simply cast the input_stream pointer to their own structure (with an "struct input_stream base" as the first attribute).
Diffstat (limited to 'src/archive_plugin.h')
-rw-r--r--src/archive_plugin.h9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/archive_plugin.h b/src/archive_plugin.h
index 254c81f66..b08c93389 100644
--- a/src/archive_plugin.h
+++ b/src/archive_plugin.h
@@ -71,8 +71,9 @@ struct archive_plugin {
* @param error_r location to store the error occuring, or
* NULL to ignore errors
*/
- bool (*open_stream)(struct archive_file *, struct input_stream *is,
- const char *path, GError **error_r);
+ struct input_stream *(*open_stream)(struct archive_file *af,
+ const char *path,
+ GError **error_r);
/**
* closes archive file.
@@ -99,8 +100,8 @@ archive_file_scan_reset(struct archive_file *file);
char *
archive_file_scan_next(struct archive_file *file);
-bool
-archive_file_open_stream(struct archive_file *file, struct input_stream *is,
+struct input_stream *
+archive_file_open_stream(struct archive_file *file,
const char *path, GError **error_r);
#endif