File: lzio.h

package info (click to toggle)
residualvm 0.3.1%2Bdfsg-2
  • links: PTS, VCS
  • area: contrib
  • in suites: bullseye
  • size: 31,292 kB
  • sloc: cpp: 227,029; sh: 7,256; xml: 1,731; perl: 1,067; java: 861; asm: 738; python: 691; ansic: 272; makefile: 139; objc: 81; sed: 22; php: 1
file content (47 lines) | stat: -rw-r--r-- 846 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
/*
** Buffered streams
** See Copyright Notice in lua.h
*/


#ifndef GRIM_LZIO_H
#define GRIM_LZIO_H

#include "common/scummsys.h"

namespace Common {
	class File;
}

namespace Grim {

// For Lua only
#define zopen	luaZ_mopen

#define EOZ	(-1)			// end of stream

typedef struct zio ZIO;

ZIO *zopen(ZIO *z, const char *b, int32 size, const char *name);
int32 zread(ZIO *z, void *b, int32 n);	// read next n bytes
int32 zgeteoz(ZIO *);

#define zgetc(z)	(--(z)->n >= 0 ? ((int32)*(z)->p++): zgeteoz(z))
#define zungetc(z)	(++(z)->n, --(z)->p)
#define zname(z)	((z)->name)


// --------- Private Part ------------------

#define ZBSIZE	256			// buffer size

struct zio {
	int32 n;					// bytes still unread
	const byte *p;				// current position in buffer
	const char *name;
	byte buffer[ZBSIZE];		// buffer
};

} // end of namespace Grim

#endif