File: lzio.h

package info (click to toggle)
scummvm 2.9.1%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 450,580 kB
  • sloc: cpp: 4,299,825; asm: 28,322; python: 12,901; sh: 11,302; java: 9,289; xml: 7,895; perl: 2,639; ansic: 2,465; yacc: 1,670; javascript: 1,020; makefile: 933; lex: 578; awk: 275; objc: 82; sed: 11; php: 1
file content (47 lines) | stat: -rw-r--r-- 951 bytes parent folder | download | duplicates (3)
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