]> git.sesse.net Git - vlc/blob - modules/gui/skins2/unzip/ioapi.h
e73a3b2bd882185a8d29c3c53289d76b90282134
[vlc] / modules / gui / skins2 / unzip / ioapi.h
1 /* ioapi.h -- IO base function header for compress/uncompress .zip\r
2    files using zlib + zip or unzip API\r
3 \r
4    Version 1.01e, February 12th, 2005\r
5 \r
6    Copyright (C) 1998-2005 Gilles Vollant\r
7 */\r
8 \r
9 #ifndef _ZLIBIOAPI_H\r
10 #define _ZLIBIOAPI_H\r
11 \r
12 \r
13 #define ZLIB_FILEFUNC_SEEK_CUR (1)\r
14 #define ZLIB_FILEFUNC_SEEK_END (2)\r
15 #define ZLIB_FILEFUNC_SEEK_SET (0)\r
16 \r
17 #define ZLIB_FILEFUNC_MODE_READ      (1)\r
18 #define ZLIB_FILEFUNC_MODE_WRITE     (2)\r
19 #define ZLIB_FILEFUNC_MODE_READWRITEFILTER (3)\r
20 \r
21 #define ZLIB_FILEFUNC_MODE_EXISTING (4)\r
22 #define ZLIB_FILEFUNC_MODE_CREATE   (8)\r
23 \r
24 \r
25 #ifndef ZCALLBACK\r
26 \r
27 #if (defined(WIN32) || defined (WINDOWS) || defined (_WINDOWS)) && defined(CALLBACK) && defined (USEWINDOWS_CALLBACK)\r
28 #define ZCALLBACK CALLBACK\r
29 #else\r
30 #define ZCALLBACK\r
31 #endif\r
32 #endif\r
33 \r
34 #ifdef __cplusplus\r
35 extern "C" {\r
36 #endif\r
37 \r
38 typedef voidpf (ZCALLBACK *open_file_func) OF((voidpf opaque, const char* filename, int mode));\r
39 typedef uLong  (ZCALLBACK *read_file_func) OF((voidpf opaque, voidpf stream, void* buf, uLong size));\r
40 typedef uLong  (ZCALLBACK *write_file_func) OF((voidpf opaque, voidpf stream, const void* buf, uLong size));\r
41 typedef long   (ZCALLBACK *tell_file_func) OF((voidpf opaque, voidpf stream));\r
42 typedef long   (ZCALLBACK *seek_file_func) OF((voidpf opaque, voidpf stream, uLong offset, int origin));\r
43 typedef int    (ZCALLBACK *close_file_func) OF((voidpf opaque, voidpf stream));\r
44 typedef int    (ZCALLBACK *testerror_file_func) OF((voidpf opaque, voidpf stream));\r
45 \r
46 typedef struct zlib_filefunc_def_s\r
47 {\r
48     open_file_func      zopen_file;\r
49     read_file_func      zread_file;\r
50     write_file_func     zwrite_file;\r
51     tell_file_func      ztell_file;\r
52     seek_file_func      zseek_file;\r
53     close_file_func     zclose_file;\r
54     testerror_file_func zerror_file;\r
55     voidpf              opaque;\r
56 } zlib_filefunc_def;\r
57 \r
58 \r
59 \r
60 void fill_fopen_filefunc OF((zlib_filefunc_def* pzlib_filefunc_def));\r
61 \r
62 #define ZREAD(filefunc,filestream,buf,size) ((*((filefunc).zread_file))((filefunc).opaque,filestream,buf,size))\r
63 #define ZWRITE(filefunc,filestream,buf,size) ((*((filefunc).zwrite_file))((filefunc).opaque,filestream,buf,size))\r
64 #define ZTELL(filefunc,filestream) ((*((filefunc).ztell_file))((filefunc).opaque,filestream))\r
65 #define ZSEEK(filefunc,filestream,pos,mode) ((*((filefunc).zseek_file))((filefunc).opaque,filestream,pos,mode))\r
66 #define ZCLOSE(filefunc,filestream) ((*((filefunc).zclose_file))((filefunc).opaque,filestream))\r
67 #define ZERROR(filefunc,filestream) ((*((filefunc).zerror_file))((filefunc).opaque,filestream))\r
68 \r
69 \r
70 #ifdef __cplusplus\r
71 }\r
72 #endif\r
73 \r
74 #endif\r
75 \r