aboutsummaryrefslogtreecommitdiffstats
path: root/src/input_stream.h (unfollow)
Commit message (Collapse)AuthorFilesLines
2012-08-14input_stream, main: remove obsolete GLib version checksMax Kellermann1-4/+0
MPD requires GLib 2.16.
2011-09-16input_stream: non-blocking I/OMax Kellermann1-8/+113
Add GMutex, GCond attributes which will be used by callers to conditionally wait on the stream. Remove the (now-useless) plugin method buffer(), wait on GCond instead. Lock the input_stream before each method call. Do the same with the playlist plugins.
2011-09-16input_plugin: add method check()Max Kellermann1-0/+9
To check for errors without reading. The decoder thread wants to do that, before it passes the input stream to the plugin.
2011-09-15input_stream: add "nonnull" attributesMax Kellermann1-0/+12
2011-09-14input_plugin: add method update()Max Kellermann1-0/+7
Update the struct attributes, important for facades like the "rewind" plugin. To replace buffer().
2011-09-14input_stream: move input_stream_init(), _deinit() to _internal.cMax Kellermann1-20/+0
2011-01-29copyright year 2011Max Kellermann1-1/+1
2010-01-18input_stream: added attribute "uri"Max Kellermann1-1/+10
2010-01-18input_stream: added function input_stream_deinit()Max Kellermann1-0/+6
All close() implementations must call this method.
2010-01-01input_stream: return allocated input_stream objectsMax Kellermann1-12/+15
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).
2009-12-31Update copyright notices.Avuton Olrich1-1/+1
2009-12-15input_stream: return errors with GErrorMax Kellermann1-9/+6
2009-12-14input_stream: moved input_stream_global_init() to input_init.cMax Kellermann1-10/+0
2009-11-12include config.h in all sourcesMax Kellermann1-0/+2
After we've been hit by Large File Support problems several times in the past week (which only occur on 32 bit platforms, which I don't have), this is yet another attempt to fix the issue.
2009-11-10configure.ac: require GLib 2.12Max Kellermann1-0/+4
Drop the required GLib version from 2.16 to 2.12, because many current systems still don't have GLib 2.16. This requires several new compatibility functions in glib_compat.h.
2009-10-11input_stream: use "goffset" instead of "off_t"Max Kellermann1-6/+4
The "off_t" type may change when you enable or disable large file support on 32 bit platforms. This caused severe ABI problems within MPD when we enabled LFS for the first time: two sources included config.h and sys/types.h in different order, and had different off_t sizes - leading to memory corruption because of ABI incompatibility. This patch attempts to get rid of all public "off_t" uses: it removes "off_t" from the input_stream ABI/API, and switches to GLib's 64 bit "goffset" type. This may hurt 32 bit embedded platforms a tiny bit, but that's not even measurable.
2009-10-08input_stream: include config.h for AC_SYS_LARGEFILE macrosMax Kellermann1-0/+2
AC_SYS_LARGEFILE defines macros for config.h. If we don't include config.h, we don't get large file support.
2009-03-13all: Update copyright header.Avuton Olrich1-6/+7
This updates the copyright header to all be the same, which is pretty much an update of where to mail request for a copy of the GPL and the years of the MPD project. This also puts all committers under 'The Music Player Project' umbrella. These entries should go individually in the AUTHORS file, for consistancy.
2009-03-02input_stream: moved struct input_plugin to input_plugin.hMax Kellermann1-11/+0
Start to separate private from public input_stream API.
2009-01-30archive: replaced setup_stream() with open_stream()Max Kellermann1-2/+0
The open_stream() method opens the input_stream. This allows the archive plugin to do its own initialization, and it also allows it to use input_stream.data. We can remove input_stream.archive now, which was unnatural to have in the first place.
2009-01-30input_stream: documented the APIMax Kellermann1-9/+83
2009-01-03input_stream: added tag() methodMax Kellermann1-2/+10
The tag() method reads a tag from the stream. This replaces the meta_name and meta_title attributes.
2008-12-16new archive api, input_archive streamViliam Mateicka1-0/+2
2008-10-31input_stream: pass const url to input_stream_open()Max Kellermann1-1/+1
2008-10-31added prefix to header macrosMax Kellermann1-2/+2
"LOG_H" is a macro which is also used by ffmpeg/log.h. This is ffmpeg's fault, because short macros should be reserved for applications, but since it's always a good idea to choose prefixed macro names, even for applications, we are going to do that in MPD.
2008-10-28input_stream: convert offset and size to the off_t data typeMax Kellermann1-4/+4
size_t and long aren't 64 bit safe (i.e. files larger than 2 GB on a 32 bit OS). Use off_t instead, which is a 64 bit integer if compiled with large file support.
2008-10-26input_stream: use "bool" instead of "int"Max Kellermann1-7/+11
For boolean values and success flags, use bool instead of integer (1/0 for true/false, 0/-1 for success/failure).
2008-10-26input_stream: input_stream_close() returns voidMax Kellermann1-2/+2
close() shouldn't fail with read-only streams.
2008-10-26input_stream: added struct input_pluginMax Kellermann1-6/+15
Instead of managing a set of method pointers in each input_stream struct, move these into the new input_plugin struct. Each input_stream has only a pointer to the plugin struct. Pointers to all implementations are kept in the array "input_plugins".
2008-10-26input_stream: no CamelCaseMax Kellermann1-19/+15
Renamed all functions and variables.
2008-10-26input_stream: removed the InputStream typedefMax Kellermann1-2/+0
Everybody should use struct input_stream.
2008-10-26input_stream: renamed sources, no CamelCaseMax Kellermann1-0/+0
Renamed inputStream.c and inputStream_file.c.
2008-10-26input_stream: added input_stream_global_finish()Max Kellermann1-0/+2
The hook input_stream_global_finish() deinitializes global structures of all input stream implementations.
2008-10-18input_stream: don't declare method typedefsMax Kellermann1-14/+8
The typedefs aren't using by anybody but struct input_stream. Remove them and declare the method type within struct input_stream.
2008-10-17input_stream: removed nmemb argumentMax Kellermann1-2/+2
The nmemb argument isn't actually useful, and one of nmemb and size was always passed as 1. Remove it.
2008-10-17input: declare struct input_streamMax Kellermann1-14/+14
Provide a struct type which can be forward-declared. The typedef InputStream is deprecated now.
2008-10-08don't include os_compat.hMax Kellermann1-1/+1
When there are standardized headers, use these instead of the bloated os_compat.h.
2008-08-26added InputStream.readyMax Kellermann1-0/+2
The flag "ready" indicates whether the input stream is ready and it has parsed all meta data. Previously, it was impossible for decodeStart() to see the content type of HTTP input streams, because at that time, the HTTP response wasn't parsed yet.
2008-01-03Cleanup #includes of standard system headers and put them in one placeEric Wong1-1/+1
This will make refactoring features easier, especially now that pthreads support and larger refactorings are on the horizon. Hopefully, this will make porting to other platforms (even non-UNIX-like ones for masochists) easier, too. os_compat.h will house all the #includes for system headers considered to be the "core" of MPD. Headers for optional features will be left to individual source files. git-svn-id: https://svn.musicpd.org/mpd/trunk@7130 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-04-05The massive copyright updateAvuton Olrich1-1/+1
git-svn-id: https://svn.musicpd.org/mpd/trunk@5834 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-20Fix warnings for -Wmissing-prototypesAvuton Olrich1-1/+1
Add -Wmissing-prototypes if compiling with gcc Static where possible git-svn-id: https://svn.musicpd.org/mpd/trunk@4657 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-07-20Add mpd-indent.shAvuton Olrich1-22/+22
Indent the entire tree, hopefully we can keep it indented. git-svn-id: https://svn.musicpd.org/mpd/trunk@4410 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-07-14Change shank's email addressJ. Alexander Treuman1-1/+1
git-svn-id: https://svn.musicpd.org/mpd/trunk@4333 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-07-13Huge header update, update the copyright and addAvuton Olrich1-1/+1
the GPL header where necessary git-svn-id: https://svn.musicpd.org/mpd/trunk@4317 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-11-03todo updateWarren Dukes1-1/+0
git-svn-id: https://svn.musicpd.org/mpd/trunk@2496 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-06-20http proxy mostly working, need to implement http authenticationWarren Dukes1-0/+2
git-svn-id: https://svn.musicpd.org/mpd/trunk@1588 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-06-07icy metadata! wahooWarren Dukes1-0/+1
still lots some debug code with print out's, so don't bitch about it! git-svn-id: https://svn.musicpd.org/mpd/trunk@1364 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-06-02validate url's before adding to playlistWarren Dukes1-0/+2
git-svn-id: https://svn.musicpd.org/mpd/trunk@1289 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-05-31icynames are now copied to title of streamsWarren Dukes1-0/+1
git-svn-id: https://svn.musicpd.org/mpd/trunk@1258 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-05-21do input buffering in while sleeping loop of sending stuff to output bufferWarren Dukes1-0/+3
git-svn-id: https://svn.musicpd.org/mpd/trunk@1125 09075e82-0dd4-0310-85a5-a0d7c8717e4f