From 8d36367fe2e593363ff941183da8804671fe9e3e Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Tue, 3 Sep 2013 09:18:30 +0200 Subject: input_stream.h: rename to InputLegacy.hxx --- src/DecoderAPI.hxx | 2 +- src/InputLegacy.hxx | 224 ++++++++++++++++++++++++++++ src/InputPlugin.hxx | 2 +- src/InputStream.hxx | 2 +- src/PlaylistAny.cxx | 2 +- src/PlaylistPrint.cxx | 2 +- src/PlaylistQueue.cxx | 2 +- src/PlaylistRegistry.cxx | 2 +- src/SongUpdate.cxx | 2 +- src/TagFile.cxx | 2 +- src/TextInputStream.cxx | 2 +- src/input_stream.h | 236 ------------------------------ src/playlist/AsxPlaylistPlugin.cxx | 2 +- src/playlist/CuePlaylistPlugin.cxx | 2 +- src/playlist/LastFMPlaylistPlugin.cxx | 2 +- src/playlist/PlsPlaylistPlugin.cxx | 2 +- src/playlist/RssPlaylistPlugin.cxx | 2 +- src/playlist/SoundCloudPlaylistPlugin.cxx | 2 +- src/playlist/XspfPlaylistPlugin.cxx | 2 +- 19 files changed, 241 insertions(+), 253 deletions(-) create mode 100644 src/InputLegacy.hxx delete mode 100644 src/input_stream.h (limited to 'src') diff --git a/src/DecoderAPI.hxx b/src/DecoderAPI.hxx index a5eb2f236..4890abfae 100644 --- a/src/DecoderAPI.hxx +++ b/src/DecoderAPI.hxx @@ -30,7 +30,7 @@ #include "check.h" #include "DecoderCommand.hxx" #include "DecoderPlugin.hxx" -#include "input_stream.h" +#include "InputLegacy.hxx" #include "replay_gain_info.h" #include "Tag.hxx" #include "AudioFormat.hxx" diff --git a/src/InputLegacy.hxx b/src/InputLegacy.hxx new file mode 100644 index 000000000..53fab3aae --- /dev/null +++ b/src/InputLegacy.hxx @@ -0,0 +1,224 @@ +/* + * Copyright (C) 2003-2013 The Music Player Daemon Project + * http://www.musicpd.org + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#ifndef MPD_INPUT_LEGACY_HXX +#define MPD_INPUT_LEGACY_HXX + +#include "check.h" +#include "thread/Mutex.hxx" +#include "thread/Cond.hxx" +#include "gcc.h" + +#include + +#include + +struct Tag; +struct input_stream; + +/** + * Opens a new input stream. You may not access it until the "ready" + * flag is set. + * + * @param mutex a mutex that is used to protect this object; must be + * locked before calling any of the public methods + * @param cond a cond that gets signalled when the state of + * this object changes; may be NULL if the caller doesn't want to get + * notifications + * @return an #input_stream object on success, NULL on error + */ +gcc_nonnull(1) +gcc_malloc +struct input_stream * +input_stream_open(const char *uri, + Mutex &mutex, Cond &cond, + GError **error_r); + +/** + * Close the input stream and free resources. + * + * The caller must not lock the mutex. + */ +gcc_nonnull(1) +void +input_stream_close(struct input_stream *is); + +/** + * Check for errors that may have occurred in the I/O thread. + * + * @return false on error + */ +gcc_nonnull(1) +bool +input_stream_check(struct input_stream *is, GError **error_r); + +/** + * Update the public attributes. Call before accessing attributes + * such as "ready" or "offset". + */ +gcc_nonnull(1) +void +input_stream_update(struct input_stream *is); + +/** + * Wait until the stream becomes ready. + * + * The caller must lock the mutex. + */ +gcc_nonnull(1) +void +input_stream_wait_ready(struct input_stream *is); + +/** + * Wrapper for input_stream_wait_locked() which locks and unlocks the + * mutex; the caller must not be holding it already. + */ +gcc_nonnull(1) +void +input_stream_lock_wait_ready(struct input_stream *is); + +gcc_nonnull_all gcc_pure +const char * +input_stream_get_mime_type(const struct input_stream *is); + +gcc_nonnull_all +void +input_stream_override_mime_type(struct input_stream *is, const char *mime); + +gcc_nonnull_all gcc_pure +goffset +input_stream_get_size(const struct input_stream *is); + +gcc_nonnull_all gcc_pure +goffset +input_stream_get_offset(const struct input_stream *is); + +gcc_nonnull_all gcc_pure +bool +input_stream_is_seekable(const 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. + * + * The caller must lock the mutex. + * + * @param is the input_stream object + * @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); + +/** + * Wrapper for input_stream_seek() which locks and unlocks the + * mutex; the caller must not be holding it already. + */ +gcc_nonnull(1) +bool +input_stream_lock_seek(struct input_stream *is, goffset offset, int whence, + GError **error_r); + +/** + * Returns true if the stream has reached end-of-file. + * + * The caller must lock the mutex. + */ +gcc_nonnull(1) +gcc_pure +bool input_stream_eof(struct input_stream *is); + +/** + * Wrapper for input_stream_eof() which locks and unlocks the mutex; + * the caller must not be holding it already. + */ +gcc_nonnull(1) +gcc_pure +bool +input_stream_lock_eof(struct input_stream *is); + +/** + * Reads the tag from the stream. + * + * The caller must lock the mutex. + * + * @return a tag object which must be freed by the caller, or nullptr + * if the tag has not changed since the last call + */ +gcc_nonnull(1) +gcc_malloc +Tag * +input_stream_tag(struct input_stream *is); + +/** + * Wrapper for input_stream_tag() which locks and unlocks the + * mutex; the caller must not be holding it already. + */ +gcc_nonnull(1) +gcc_malloc +Tag * +input_stream_lock_tag(struct input_stream *is); + +/** + * Returns true if the next read operation will not block: either data + * is available, or end-of-stream has been reached, or an error has + * occurred. + * + * The caller must lock the mutex. + */ +gcc_nonnull(1) +gcc_pure +bool +input_stream_available(struct input_stream *is); + +/** + * Reads data from the stream into the caller-supplied buffer. + * Returns 0 on error or eof (check with input_stream_eof()). + * + * The caller must lock the mutex. + * + * @param is the input_stream object + * @param ptr the buffer to read into + * @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); + +/** + * Wrapper for input_stream_tag() which locks and unlocks the + * mutex; the caller must not be holding it already. + */ +gcc_nonnull(1, 2) +size_t +input_stream_lock_read(struct input_stream *is, void *ptr, size_t size, + GError **error_r); + +#endif diff --git a/src/InputPlugin.hxx b/src/InputPlugin.hxx index a1eb16339..0b3207c17 100644 --- a/src/InputPlugin.hxx +++ b/src/InputPlugin.hxx @@ -20,7 +20,7 @@ #ifndef MPD_INPUT_PLUGIN_HXX #define MPD_INPUT_PLUGIN_HXX -#include "input_stream.h" +#include "InputLegacy.hxx" #include #include diff --git a/src/InputStream.hxx b/src/InputStream.hxx index 96172723a..039f59076 100644 --- a/src/InputStream.hxx +++ b/src/InputStream.hxx @@ -20,7 +20,7 @@ #ifndef MPD_INPUT_STREAM_HXX #define MPD_INPUT_STREAM_HXX -#include "input_stream.h" +#include "InputLegacy.hxx" #include "check.h" #include "thread/Mutex.hxx" #include "thread/Cond.hxx" diff --git a/src/PlaylistAny.cxx b/src/PlaylistAny.cxx index a34333df8..e77b01467 100644 --- a/src/PlaylistAny.cxx +++ b/src/PlaylistAny.cxx @@ -22,7 +22,7 @@ #include "PlaylistMapper.hxx" #include "PlaylistRegistry.hxx" #include "util/UriUtil.hxx" -#include "input_stream.h" +#include "InputLegacy.hxx" #include diff --git a/src/PlaylistPrint.cxx b/src/PlaylistPrint.cxx index 35498eeba..6eb6bf76e 100644 --- a/src/PlaylistPrint.cxx +++ b/src/PlaylistPrint.cxx @@ -30,7 +30,7 @@ #include "DatabaseGlue.hxx" #include "DatabasePlugin.hxx" #include "Client.hxx" -#include "input_stream.h" +#include "InputLegacy.hxx" #include "Song.hxx" void diff --git a/src/PlaylistQueue.cxx b/src/PlaylistQueue.cxx index c7b6c21fb..89429a324 100644 --- a/src/PlaylistQueue.cxx +++ b/src/PlaylistQueue.cxx @@ -23,7 +23,7 @@ #include "PlaylistAny.hxx" #include "PlaylistSong.hxx" #include "Playlist.hxx" -#include "input_stream.h" +#include "InputLegacy.hxx" #include "Song.hxx" enum playlist_result diff --git a/src/PlaylistRegistry.cxx b/src/PlaylistRegistry.cxx index 97681d99e..79fec4bd9 100644 --- a/src/PlaylistRegistry.cxx +++ b/src/PlaylistRegistry.cxx @@ -31,7 +31,7 @@ #include "playlist/RssPlaylistPlugin.hxx" #include "playlist/CuePlaylistPlugin.hxx" #include "playlist/EmbeddedCuePlaylistPlugin.hxx" -#include "input_stream.h" +#include "InputLegacy.hxx" #include "util/UriUtil.hxx" #include "util/StringUtil.hxx" #include "conf.h" diff --git a/src/SongUpdate.cxx b/src/SongUpdate.cxx index f08e0c20a..b0d60b85a 100644 --- a/src/SongUpdate.cxx +++ b/src/SongUpdate.cxx @@ -25,7 +25,7 @@ #include "fs/Path.hxx" #include "fs/FileSystem.hxx" #include "Tag.hxx" -#include "input_stream.h" +#include "InputLegacy.hxx" #include "DecoderPlugin.hxx" #include "DecoderList.hxx" #include "TagHandler.hxx" diff --git a/src/TagFile.cxx b/src/TagFile.cxx index 9201dd85b..bd124e20d 100644 --- a/src/TagFile.cxx +++ b/src/TagFile.cxx @@ -22,7 +22,7 @@ #include "util/UriUtil.hxx" #include "DecoderList.hxx" #include "DecoderPlugin.hxx" -#include "input_stream.h" +#include "InputLegacy.hxx" #include #include /* for SEEK_SET */ diff --git a/src/TextInputStream.cxx b/src/TextInputStream.cxx index 5e963ae01..bb4c8b868 100644 --- a/src/TextInputStream.cxx +++ b/src/TextInputStream.cxx @@ -19,7 +19,7 @@ #include "config.h" #include "TextInputStream.hxx" -#include "input_stream.h" +#include "InputLegacy.hxx" #include "util/fifo_buffer.h" #include diff --git a/src/input_stream.h b/src/input_stream.h deleted file mode 100644 index b5b251f59..000000000 --- a/src/input_stream.h +++ /dev/null @@ -1,236 +0,0 @@ -/* - * 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 - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - */ - -#ifndef MPD_INPUT_STREAM_H -#define MPD_INPUT_STREAM_H - -#include "check.h" -#include "gcc.h" - -#include - -#include -#include -#include - -struct Tag; -struct input_stream; - -#ifdef __cplusplus -extern "C" { - -#include "thread/Mutex.hxx" -#include "thread/Cond.hxx" - -/** - * Opens a new input stream. You may not access it until the "ready" - * flag is set. - * - * @param mutex a mutex that is used to protect this object; must be - * locked before calling any of the public methods - * @param cond a cond that gets signalled when the state of - * this object changes; may be NULL if the caller doesn't want to get - * notifications - * @return an #input_stream object on success, NULL on error - */ -gcc_nonnull(1) -gcc_malloc -struct input_stream * -input_stream_open(const char *uri, - Mutex &mutex, Cond &cond, - GError **error_r); - -#endif - -/** - * Close the input stream and free resources. - * - * The caller must not lock the mutex. - */ -gcc_nonnull(1) -void -input_stream_close(struct input_stream *is); - -/** - * Check for errors that may have occurred in the I/O thread. - * - * @return false on error - */ -gcc_nonnull(1) -bool -input_stream_check(struct input_stream *is, GError **error_r); - -/** - * Update the public attributes. Call before accessing attributes - * such as "ready" or "offset". - */ -gcc_nonnull(1) -void -input_stream_update(struct input_stream *is); - -/** - * Wait until the stream becomes ready. - * - * The caller must lock the mutex. - */ -gcc_nonnull(1) -void -input_stream_wait_ready(struct input_stream *is); - -/** - * Wrapper for input_stream_wait_locked() which locks and unlocks the - * mutex; the caller must not be holding it already. - */ -gcc_nonnull(1) -void -input_stream_lock_wait_ready(struct input_stream *is); - -gcc_nonnull_all gcc_pure -const char * -input_stream_get_mime_type(const struct input_stream *is); - -gcc_nonnull_all -void -input_stream_override_mime_type(struct input_stream *is, const char *mime); - -gcc_nonnull_all gcc_pure -goffset -input_stream_get_size(const struct input_stream *is); - -gcc_nonnull_all gcc_pure -goffset -input_stream_get_offset(const struct input_stream *is); - -gcc_nonnull_all gcc_pure -bool -input_stream_is_seekable(const 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. - * - * The caller must lock the mutex. - * - * @param is the input_stream object - * @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); - -/** - * Wrapper for input_stream_seek() which locks and unlocks the - * mutex; the caller must not be holding it already. - */ -gcc_nonnull(1) -bool -input_stream_lock_seek(struct input_stream *is, goffset offset, int whence, - GError **error_r); - -/** - * Returns true if the stream has reached end-of-file. - * - * The caller must lock the mutex. - */ -gcc_nonnull(1) -gcc_pure -bool input_stream_eof(struct input_stream *is); - -/** - * Wrapper for input_stream_eof() which locks and unlocks the mutex; - * the caller must not be holding it already. - */ -gcc_nonnull(1) -gcc_pure -bool -input_stream_lock_eof(struct input_stream *is); - -/** - * Reads the tag from the stream. - * - * The caller must lock the mutex. - * - * @return a tag object which must be freed by the caller, or nullptr - * if the tag has not changed since the last call - */ -gcc_nonnull(1) -gcc_malloc -Tag * -input_stream_tag(struct input_stream *is); - -/** - * Wrapper for input_stream_tag() which locks and unlocks the - * mutex; the caller must not be holding it already. - */ -gcc_nonnull(1) -gcc_malloc -Tag * -input_stream_lock_tag(struct input_stream *is); - -/** - * Returns true if the next read operation will not block: either data - * is available, or end-of-stream has been reached, or an error has - * occurred. - * - * The caller must lock the mutex. - */ -gcc_nonnull(1) -gcc_pure -bool -input_stream_available(struct input_stream *is); - -/** - * Reads data from the stream into the caller-supplied buffer. - * Returns 0 on error or eof (check with input_stream_eof()). - * - * The caller must lock the mutex. - * - * @param is the input_stream object - * @param ptr the buffer to read into - * @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); - -/** - * Wrapper for input_stream_tag() which locks and unlocks the - * mutex; the caller must not be holding it already. - */ -gcc_nonnull(1, 2) -size_t -input_stream_lock_read(struct input_stream *is, void *ptr, size_t size, - GError **error_r); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/src/playlist/AsxPlaylistPlugin.cxx b/src/playlist/AsxPlaylistPlugin.cxx index b2287fcaf..c0a47b8e3 100644 --- a/src/playlist/AsxPlaylistPlugin.cxx +++ b/src/playlist/AsxPlaylistPlugin.cxx @@ -20,7 +20,7 @@ #include "config.h" #include "AsxPlaylistPlugin.hxx" #include "MemoryPlaylistProvider.hxx" -#include "input_stream.h" +#include "InputLegacy.hxx" #include "Song.hxx" #include "Tag.hxx" diff --git a/src/playlist/CuePlaylistPlugin.cxx b/src/playlist/CuePlaylistPlugin.cxx index fd9c2de09..139ab52f4 100644 --- a/src/playlist/CuePlaylistPlugin.cxx +++ b/src/playlist/CuePlaylistPlugin.cxx @@ -22,7 +22,7 @@ #include "PlaylistPlugin.hxx" #include "Tag.hxx" #include "Song.hxx" -#include "input_stream.h" +#include "InputLegacy.hxx" #include "cue/CueParser.hxx" #include "TextInputStream.hxx" diff --git a/src/playlist/LastFMPlaylistPlugin.cxx b/src/playlist/LastFMPlaylistPlugin.cxx index 2c35ae10e..a6071e092 100644 --- a/src/playlist/LastFMPlaylistPlugin.cxx +++ b/src/playlist/LastFMPlaylistPlugin.cxx @@ -23,7 +23,7 @@ #include "PlaylistRegistry.hxx" #include "conf.h" #include "Song.hxx" -#include "input_stream.h" +#include "InputLegacy.hxx" #include diff --git a/src/playlist/PlsPlaylistPlugin.cxx b/src/playlist/PlsPlaylistPlugin.cxx index 4a6024ed6..9ef302388 100644 --- a/src/playlist/PlsPlaylistPlugin.cxx +++ b/src/playlist/PlsPlaylistPlugin.cxx @@ -20,7 +20,7 @@ #include "config.h" #include "PlsPlaylistPlugin.hxx" #include "MemoryPlaylistProvider.hxx" -#include "input_stream.h" +#include "InputLegacy.hxx" #include "Song.hxx" #include "Tag.hxx" diff --git a/src/playlist/RssPlaylistPlugin.cxx b/src/playlist/RssPlaylistPlugin.cxx index df0f6bca3..16dcd5fe5 100644 --- a/src/playlist/RssPlaylistPlugin.cxx +++ b/src/playlist/RssPlaylistPlugin.cxx @@ -20,7 +20,7 @@ #include "config.h" #include "RssPlaylistPlugin.hxx" #include "MemoryPlaylistProvider.hxx" -#include "input_stream.h" +#include "InputLegacy.hxx" #include "Song.hxx" #include "Tag.hxx" diff --git a/src/playlist/SoundCloudPlaylistPlugin.cxx b/src/playlist/SoundCloudPlaylistPlugin.cxx index ce9bd1385..b60635049 100644 --- a/src/playlist/SoundCloudPlaylistPlugin.cxx +++ b/src/playlist/SoundCloudPlaylistPlugin.cxx @@ -21,7 +21,7 @@ #include "SoundCloudPlaylistPlugin.hxx" #include "MemoryPlaylistProvider.hxx" #include "conf.h" -#include "input_stream.h" +#include "InputLegacy.hxx" #include "Song.hxx" #include "Tag.hxx" diff --git a/src/playlist/XspfPlaylistPlugin.cxx b/src/playlist/XspfPlaylistPlugin.cxx index bf282eac9..c8a067da4 100644 --- a/src/playlist/XspfPlaylistPlugin.cxx +++ b/src/playlist/XspfPlaylistPlugin.cxx @@ -20,7 +20,7 @@ #include "config.h" #include "XspfPlaylistPlugin.hxx" #include "MemoryPlaylistProvider.hxx" -#include "input_stream.h" +#include "InputLegacy.hxx" #include "Tag.hxx" #include -- cgit v1.2.3