diff src/console/Gzip_Reader.h @ 341:986f098da058 trunk

[svn] - merge in blargg's changes
author nenolod
date Thu, 07 Dec 2006 15:20:41 -0800
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/console/Gzip_Reader.h	Thu Dec 07 15:20:41 2006 -0800
@@ -0,0 +1,31 @@
+// Transparently decompresses gzip files, as well as uncompressed
+
+// File_Extractor 0.4.0
+#ifndef GZIP_READER_H
+#define GZIP_READER_H
+
+#include "Data_Reader.h"
+#include "Zlib_Inflater.h"
+
+class Gzip_Reader : public Data_Reader {
+public:
+	error_t open( File_Reader* );
+	void close();
+	
+public:
+	Gzip_Reader();
+	~Gzip_Reader();
+	long remain() const;
+	error_t read( void*, long );
+	long read_avail( void*, long );
+private:
+	File_Reader* in;
+	long tell_;
+	long size_;
+	Zlib_Inflater inflater;
+	
+	error_t calc_size();
+	blargg_err_t read_( void* out, long* count );
+};
+
+#endif