aboutsummaryrefslogtreecommitdiffstats
path: root/src/archive (unfollow)
Commit message (Collapse)AuthorFilesLines
2011-09-16input_stream: non-blocking I/OMax Kellermann3-8/+20
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-14input_stream: move input_stream_init(), _deinit() to _internal.cMax Kellermann3-0/+3
2011-01-29copyright year 2011Max Kellermann6-6/+6
2010-01-18input_stream: added attribute "uri"Max Kellermann3-5/+4
2010-01-18input_stream: added function input_stream_deinit()Max Kellermann3-0/+6
All close() implementations must call this method.
2010-01-01input_stream: return allocated input_stream objectsMax Kellermann3-47/+44
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 Olrich6-6/+6
2009-12-31archive: use reference counting for archive+inputMax Kellermann3-1/+31
Make the input_stream implementation hold a reference on the archive_file object. Allow the caller to "close" the archive_file object immediately, no matter if the open_stream() method has succeeded or not.
2009-12-31input/archive: don't initialize input_stream.readyMax Kellermann3-0/+3
The archive plugin should decide this.
2009-12-31archive/bz2: allocate buffer staticallyMax Kellermann1-7/+3
Reduce the number of malloc()/free() calls.
2009-12-31archive/bz2: added struct bz2_input_streamMax Kellermann1-21/+32
Don't use the bz2_archive_file object for the input_stream.
2009-12-31archive/iso9660: added struct iso9660_input_streamMax Kellermann1-20/+32
Don't use the iso9660_archive_file object for the input_stream.
2009-12-31archive/iso9660: set input_stream.{size,offset}Max Kellermann1-8/+8
2009-12-31archive/zzip: added struct zzip_input_streamMax Kellermann1-19/+33
Don't use the zzip_archive object for the input_stream.
2009-12-31archive/zzip: set input_stream.{size,offset}Max Kellermann1-3/+5
2009-12-16archive_plugin: use GError in the open() methodMax Kellermann3-7/+8
2009-12-16archive_plugin: wrap method callsMax Kellermann3-3/+14
Make archive_file a "real" struct, extended by all plugins. Add the plugin pointer to it. Wrap all method calls in functions.
2009-12-16archive_plugin: pass const string to method open()Max Kellermann3-3/+3
2009-12-16archive: added a C header for each pluginMax Kellermann6-0/+78
Moved the archive plugin "extern" declarations into each plugin header.
2009-12-16archive/bz2: removed the bz2_context typedefMax Kellermann1-13/+13
Use the raw struct name instead.
2009-12-16archive/bz2: renamed archive sources and plugin variablesMax Kellermann1-1/+1
2009-12-16archive/iso: renamed plugin to "iso9660"Max Kellermann1-34/+44
Based on libiso9660.
2009-12-16archive/bz2: use g_path_get_basename()Max Kellermann1-10/+1
Use g_path_get_basename() instead of manually filtering the path name. Big advantage: g_path_get_basename() cannot fail.
2009-12-15input_stream: return errors with GErrorMax Kellermann3-26/+56
2009-12-15archive/bz2: simplified error handling, short readMax Kellermann1-34/+23
Don't attempt to fill the whole buffer in the read() method, return whatever libbz2 provides with the first successful BZ2_bzDecompress().
2009-12-15archive/bz2: no CamelCaseMax Kellermann1-11/+10
2009-12-15archive/zzip: removed the "zip_context" typedefMax Kellermann1-11/+11
Use the raw struct name.
2009-12-15archive/zip: renamed plugin to "zzip"Max Kellermann1-28/+28
This plugin is based on libzzip.
2009-12-15iso, zip: fixed memory leak in destructorMax Kellermann2-2/+4
Free the "context" pointer in the method archive_plugin.close().
2009-12-15archive: close archive when stream is closedMax Kellermann3-0/+6
Fixes a memory leak: the "archive" input plugin opens the archive, but never closes it. This patch moves the responsibility for doing that to archive_plugin.open_stream(). This is an slight internal API change, but it is the simplest and least intrusive fix for the memory leak.
2009-12-15archive/bz2: removed NULL check before g_free()Max Kellermann1-2/+2
g_free(NULL) is allowed.
2009-12-15archive/bz2: bz2_fillbuffer() returns boolMax Kellermann1-5/+6
2009-12-15archive/bz2: fixed indentationMax Kellermann1-15/+22
2009-12-15archive/bz2: g_malloc() cannot failMax Kellermann1-4/+2
2009-11-12include config.h in all sourcesMax Kellermann3-1/+3
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-10-11input_stream: use "goffset" instead of "off_t"Max Kellermann1-1/+1
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-05-04archive/zip: pass NULL instead of 0 to zzip_dir_open()Max Kellermann1-2/+2
The second parameter of zzip_dir_open() is a pointer. Pass the NULL pointer instead of 0 (with implicit conversion at compile time).
2009-03-13all: Update copyright header.Avuton Olrich3-18/+21
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 Kellermann3-3/+3
Start to separate private from public input_stream API.
2009-01-30input_stream: make seek(), buffer() optionalMax Kellermann3-37/+0
Make those two methods optional to implement, and let input_stream.c provide fallbacks. The buffer() method will be removed one day, and there is now only one implementation left (input_curl.c).
2009-01-30archive: replaced setup_stream() with open_stream()Max Kellermann3-47/+27
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-21archiveapi: adding seeking support in zip archivesViliam Mateicka1-2/+8
2009-01-08added missing explicit config.h includesMax Kellermann1-0/+1
2009-01-02archive: use GLib instead of utils.hMax Kellermann3-5/+3
2008-12-29update: fixing empty filenames in archivesViliam Mateicka1-1/+4
2008-12-16archiveapi: archive plugin for ISO filesViliam Mateicka1-0/+258
2008-12-16archiveapi: archive plugin for ZIP filesViliam Mateicka1-0/+196
2008-12-16archiveapi: archive plugin for BZ2 filesViliam Mateicka1-0/+303