aboutsummaryrefslogtreecommitdiffstats
path: root/src/archive (unfollow)
Commit message (Collapse)AuthorFilesLines
2013-01-28InputStream: add constructor/destructorMax Kellermann3-12/+6
Eliminate input_stream_init() and input_stream_deinit().
2013-01-28input/iso9660: add constructor/destructorMax Kellermann1-58/+61
2013-01-28input/iso9660: rename the classesMax Kellermann1-18/+18
2013-01-28input/zzip: add constructor/destructorMax Kellermann1-22/+31
2013-01-28input/zzip: rename the classesMax Kellermann1-15/+14
2013-01-28input/bzip2: add constructor/destructorMax Kellermann1-37/+39
2013-01-28archive/bzip2: rename the classesMax Kellermann1-16/+16
2013-01-28DatabaseLock, input/bzip2: remove obsolete Glib/gcc workaroundMax Kellermann1-5/+0
2013-01-27DecoderControl, InputStream: use Mutex/Cond instead of GMutex/GCondMax Kellermann3-7/+6
2013-01-26input_stream: forward-declare the structMax Kellermann3-0/+3
Hide the definition from C code, to prepare the transition to C++.
2013-01-25input_{internal,plugin}: convert to C++Max Kellermann3-6/+6
2013-01-24archive/*: convert to C++Max Kellermann6-91/+136
2012-04-04db_lock, archive/bz2, ...: workaround for G_STATIC_MUTEX_INIT warningMax Kellermann1-0/+5
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).