chd 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (109) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +30 -0
  3. data/chd.gemspec +29 -0
  4. data/ext/chd.c +1008 -0
  5. data/ext/extconf.rb +60 -0
  6. data/lib/chd/cd.rb +272 -0
  7. data/lib/chd/metadata.rb +196 -0
  8. data/lib/chd/version.rb +4 -0
  9. data/lib/chd.rb +21 -0
  10. data/libchdr/CMakeLists.txt +104 -0
  11. data/libchdr/LICENSE.txt +24 -0
  12. data/libchdr/README.md +7 -0
  13. data/libchdr/deps/lzma-19.00/CMakeLists.txt +33 -0
  14. data/libchdr/deps/lzma-19.00/LICENSE +3 -0
  15. data/libchdr/deps/lzma-19.00/include/7zTypes.h +375 -0
  16. data/libchdr/deps/lzma-19.00/include/Alloc.h +51 -0
  17. data/libchdr/deps/lzma-19.00/include/Bra.h +64 -0
  18. data/libchdr/deps/lzma-19.00/include/Compiler.h +33 -0
  19. data/libchdr/deps/lzma-19.00/include/CpuArch.h +336 -0
  20. data/libchdr/deps/lzma-19.00/include/Delta.h +19 -0
  21. data/libchdr/deps/lzma-19.00/include/LzFind.h +121 -0
  22. data/libchdr/deps/lzma-19.00/include/LzHash.h +57 -0
  23. data/libchdr/deps/lzma-19.00/include/Lzma86.h +111 -0
  24. data/libchdr/deps/lzma-19.00/include/LzmaDec.h +234 -0
  25. data/libchdr/deps/lzma-19.00/include/LzmaEnc.h +76 -0
  26. data/libchdr/deps/lzma-19.00/include/LzmaLib.h +131 -0
  27. data/libchdr/deps/lzma-19.00/include/Precomp.h +10 -0
  28. data/libchdr/deps/lzma-19.00/include/Sort.h +18 -0
  29. data/libchdr/deps/lzma-19.00/lzma-history.txt +446 -0
  30. data/libchdr/deps/lzma-19.00/lzma.txt +328 -0
  31. data/libchdr/deps/lzma-19.00/lzma.vcxproj +543 -0
  32. data/libchdr/deps/lzma-19.00/lzma.vcxproj.filters +17 -0
  33. data/libchdr/deps/lzma-19.00/src/Alloc.c +455 -0
  34. data/libchdr/deps/lzma-19.00/src/Bra86.c +82 -0
  35. data/libchdr/deps/lzma-19.00/src/BraIA64.c +53 -0
  36. data/libchdr/deps/lzma-19.00/src/CpuArch.c +218 -0
  37. data/libchdr/deps/lzma-19.00/src/Delta.c +64 -0
  38. data/libchdr/deps/lzma-19.00/src/LzFind.c +1127 -0
  39. data/libchdr/deps/lzma-19.00/src/Lzma86Dec.c +54 -0
  40. data/libchdr/deps/lzma-19.00/src/LzmaDec.c +1185 -0
  41. data/libchdr/deps/lzma-19.00/src/LzmaEnc.c +1330 -0
  42. data/libchdr/deps/lzma-19.00/src/Sort.c +141 -0
  43. data/libchdr/deps/zlib-1.2.11/CMakeLists.txt +29 -0
  44. data/libchdr/deps/zlib-1.2.11/ChangeLog +1515 -0
  45. data/libchdr/deps/zlib-1.2.11/FAQ +368 -0
  46. data/libchdr/deps/zlib-1.2.11/INDEX +68 -0
  47. data/libchdr/deps/zlib-1.2.11/Makefile +5 -0
  48. data/libchdr/deps/zlib-1.2.11/Makefile.in +410 -0
  49. data/libchdr/deps/zlib-1.2.11/README +115 -0
  50. data/libchdr/deps/zlib-1.2.11/adler32.c +186 -0
  51. data/libchdr/deps/zlib-1.2.11/compress.c +86 -0
  52. data/libchdr/deps/zlib-1.2.11/configure +921 -0
  53. data/libchdr/deps/zlib-1.2.11/crc32.c +442 -0
  54. data/libchdr/deps/zlib-1.2.11/crc32.h +441 -0
  55. data/libchdr/deps/zlib-1.2.11/deflate.c +2163 -0
  56. data/libchdr/deps/zlib-1.2.11/deflate.h +349 -0
  57. data/libchdr/deps/zlib-1.2.11/doc/algorithm.txt +209 -0
  58. data/libchdr/deps/zlib-1.2.11/doc/rfc1950.txt +619 -0
  59. data/libchdr/deps/zlib-1.2.11/doc/rfc1951.txt +955 -0
  60. data/libchdr/deps/zlib-1.2.11/doc/rfc1952.txt +675 -0
  61. data/libchdr/deps/zlib-1.2.11/doc/txtvsbin.txt +107 -0
  62. data/libchdr/deps/zlib-1.2.11/gzclose.c +25 -0
  63. data/libchdr/deps/zlib-1.2.11/gzguts.h +218 -0
  64. data/libchdr/deps/zlib-1.2.11/gzlib.c +637 -0
  65. data/libchdr/deps/zlib-1.2.11/gzread.c +654 -0
  66. data/libchdr/deps/zlib-1.2.11/gzwrite.c +665 -0
  67. data/libchdr/deps/zlib-1.2.11/infback.c +640 -0
  68. data/libchdr/deps/zlib-1.2.11/inffast.c +323 -0
  69. data/libchdr/deps/zlib-1.2.11/inffast.h +11 -0
  70. data/libchdr/deps/zlib-1.2.11/inffixed.h +94 -0
  71. data/libchdr/deps/zlib-1.2.11/inflate.c +1561 -0
  72. data/libchdr/deps/zlib-1.2.11/inflate.h +125 -0
  73. data/libchdr/deps/zlib-1.2.11/inftrees.c +304 -0
  74. data/libchdr/deps/zlib-1.2.11/inftrees.h +62 -0
  75. data/libchdr/deps/zlib-1.2.11/make_vms.com +867 -0
  76. data/libchdr/deps/zlib-1.2.11/treebuild.xml +116 -0
  77. data/libchdr/deps/zlib-1.2.11/trees.c +1203 -0
  78. data/libchdr/deps/zlib-1.2.11/trees.h +128 -0
  79. data/libchdr/deps/zlib-1.2.11/uncompr.c +93 -0
  80. data/libchdr/deps/zlib-1.2.11/zconf.h +534 -0
  81. data/libchdr/deps/zlib-1.2.11/zconf.h.cmakein +536 -0
  82. data/libchdr/deps/zlib-1.2.11/zconf.h.in +534 -0
  83. data/libchdr/deps/zlib-1.2.11/zlib.3 +149 -0
  84. data/libchdr/deps/zlib-1.2.11/zlib.3.pdf +0 -0
  85. data/libchdr/deps/zlib-1.2.11/zlib.h +1912 -0
  86. data/libchdr/deps/zlib-1.2.11/zlib.map +94 -0
  87. data/libchdr/deps/zlib-1.2.11/zlib.pc.cmakein +13 -0
  88. data/libchdr/deps/zlib-1.2.11/zlib.pc.in +13 -0
  89. data/libchdr/deps/zlib-1.2.11/zlib2ansi +152 -0
  90. data/libchdr/deps/zlib-1.2.11/zutil.c +325 -0
  91. data/libchdr/deps/zlib-1.2.11/zutil.h +271 -0
  92. data/libchdr/include/dr_libs/dr_flac.h +12280 -0
  93. data/libchdr/include/libchdr/bitstream.h +43 -0
  94. data/libchdr/include/libchdr/cdrom.h +110 -0
  95. data/libchdr/include/libchdr/chd.h +427 -0
  96. data/libchdr/include/libchdr/chdconfig.h +10 -0
  97. data/libchdr/include/libchdr/coretypes.h +60 -0
  98. data/libchdr/include/libchdr/flac.h +50 -0
  99. data/libchdr/include/libchdr/huffman.h +90 -0
  100. data/libchdr/pkg-config.pc.in +10 -0
  101. data/libchdr/src/libchdr_bitstream.c +125 -0
  102. data/libchdr/src/libchdr_cdrom.c +415 -0
  103. data/libchdr/src/libchdr_chd.c +2744 -0
  104. data/libchdr/src/libchdr_flac.c +302 -0
  105. data/libchdr/src/libchdr_huffman.c +545 -0
  106. data/libchdr/src/link.T +5 -0
  107. data/libchdr/tests/CMakeLists.txt +2 -0
  108. data/libchdr/tests/benchmark.c +52 -0
  109. metadata +183 -0
@@ -0,0 +1,271 @@
1
+ /* zutil.h -- internal interface and configuration of the compression library
2
+ * Copyright (C) 1995-2016 Jean-loup Gailly, Mark Adler
3
+ * For conditions of distribution and use, see copyright notice in zlib.h
4
+ */
5
+
6
+ /* WARNING: this file should *not* be used by applications. It is
7
+ part of the implementation of the compression library and is
8
+ subject to change. Applications should only use zlib.h.
9
+ */
10
+
11
+ /* @(#) $Id$ */
12
+
13
+ #ifndef ZUTIL_H
14
+ #define ZUTIL_H
15
+
16
+ #ifdef HAVE_HIDDEN
17
+ # define ZLIB_INTERNAL __attribute__((visibility ("hidden")))
18
+ #else
19
+ # define ZLIB_INTERNAL
20
+ #endif
21
+
22
+ #include "zlib.h"
23
+
24
+ #if defined(STDC) && !defined(Z_SOLO)
25
+ # if !(defined(_WIN32_WCE) && defined(_MSC_VER))
26
+ # include <stddef.h>
27
+ # endif
28
+ # include <string.h>
29
+ # include <stdlib.h>
30
+ #endif
31
+
32
+ #ifdef Z_SOLO
33
+ typedef long ptrdiff_t; /* guess -- will be caught if guess is wrong */
34
+ #endif
35
+
36
+ #ifndef local
37
+ # define local static
38
+ #endif
39
+ /* since "static" is used to mean two completely different things in C, we
40
+ define "local" for the non-static meaning of "static", for readability
41
+ (compile with -Dlocal if your debugger can't find static symbols) */
42
+
43
+ typedef unsigned char uch;
44
+ typedef uch FAR uchf;
45
+ typedef unsigned short ush;
46
+ typedef ush FAR ushf;
47
+ typedef unsigned long ulg;
48
+
49
+ extern z_const char * const z_errmsg[10]; /* indexed by 2-zlib_error */
50
+ /* (size given to avoid silly warnings with Visual C++) */
51
+
52
+ #define ERR_MSG(err) z_errmsg[Z_NEED_DICT-(err)]
53
+
54
+ #define ERR_RETURN(strm,err) \
55
+ return (strm->msg = ERR_MSG(err), (err))
56
+ /* To be used only when the state is known to be valid */
57
+
58
+ /* common constants */
59
+
60
+ #ifndef DEF_WBITS
61
+ # define DEF_WBITS MAX_WBITS
62
+ #endif
63
+ /* default windowBits for decompression. MAX_WBITS is for compression only */
64
+
65
+ #if MAX_MEM_LEVEL >= 8
66
+ # define DEF_MEM_LEVEL 8
67
+ #else
68
+ # define DEF_MEM_LEVEL MAX_MEM_LEVEL
69
+ #endif
70
+ /* default memLevel */
71
+
72
+ #define STORED_BLOCK 0
73
+ #define STATIC_TREES 1
74
+ #define DYN_TREES 2
75
+ /* The three kinds of block type */
76
+
77
+ #define MIN_MATCH 3
78
+ #define MAX_MATCH 258
79
+ /* The minimum and maximum match lengths */
80
+
81
+ #define PRESET_DICT 0x20 /* preset dictionary flag in zlib header */
82
+
83
+ /* target dependencies */
84
+
85
+ #if defined(MSDOS) || (defined(WINDOWS) && !defined(WIN32))
86
+ # define OS_CODE 0x00
87
+ # ifndef Z_SOLO
88
+ # if defined(__TURBOC__) || defined(__BORLANDC__)
89
+ # if (__STDC__ == 1) && (defined(__LARGE__) || defined(__COMPACT__))
90
+ /* Allow compilation with ANSI keywords only enabled */
91
+ void _Cdecl farfree( void *block );
92
+ void *_Cdecl farmalloc( unsigned long nbytes );
93
+ # else
94
+ # include <alloc.h>
95
+ # endif
96
+ # else /* MSC or DJGPP */
97
+ # include <malloc.h>
98
+ # endif
99
+ # endif
100
+ #endif
101
+
102
+ #ifdef AMIGA
103
+ # define OS_CODE 1
104
+ #endif
105
+
106
+ #if defined(VAXC) || defined(VMS)
107
+ # define OS_CODE 2
108
+ # define F_OPEN(name, mode) \
109
+ fopen((name), (mode), "mbc=60", "ctx=stm", "rfm=fix", "mrs=512")
110
+ #endif
111
+
112
+ #ifdef __370__
113
+ # if __TARGET_LIB__ < 0x20000000
114
+ # define OS_CODE 4
115
+ # elif __TARGET_LIB__ < 0x40000000
116
+ # define OS_CODE 11
117
+ # else
118
+ # define OS_CODE 8
119
+ # endif
120
+ #endif
121
+
122
+ #if defined(ATARI) || defined(atarist)
123
+ # define OS_CODE 5
124
+ #endif
125
+
126
+ #ifdef OS2
127
+ # define OS_CODE 6
128
+ # if defined(M_I86) && !defined(Z_SOLO)
129
+ # include <malloc.h>
130
+ # endif
131
+ #endif
132
+
133
+ #if defined(MACOS) || defined(TARGET_OS_MAC)
134
+ # define OS_CODE 7
135
+ # ifndef Z_SOLO
136
+ # if defined(__MWERKS__) && __dest_os != __be_os && __dest_os != __win32_os
137
+ # include <unix.h> /* for fdopen */
138
+ # else
139
+ # ifndef fdopen
140
+ # define fdopen(fd,mode) NULL /* No fdopen() */
141
+ # endif
142
+ # endif
143
+ # endif
144
+ #endif
145
+
146
+ #ifdef __acorn
147
+ # define OS_CODE 13
148
+ #endif
149
+
150
+ #if defined(WIN32) && !defined(__CYGWIN__)
151
+ # define OS_CODE 10
152
+ #endif
153
+
154
+ #ifdef _BEOS_
155
+ # define OS_CODE 16
156
+ #endif
157
+
158
+ #ifdef __TOS_OS400__
159
+ # define OS_CODE 18
160
+ #endif
161
+
162
+ #ifdef __APPLE__
163
+ # define OS_CODE 19
164
+ #endif
165
+
166
+ #if defined(_BEOS_) || defined(RISCOS)
167
+ # define fdopen(fd,mode) NULL /* No fdopen() */
168
+ #endif
169
+
170
+ #if (defined(_MSC_VER) && (_MSC_VER > 600)) && !defined __INTERIX
171
+ # if defined(_WIN32_WCE)
172
+ # define fdopen(fd,mode) NULL /* No fdopen() */
173
+ # ifndef _PTRDIFF_T_DEFINED
174
+ typedef int ptrdiff_t;
175
+ # define _PTRDIFF_T_DEFINED
176
+ # endif
177
+ # else
178
+ # define fdopen(fd,type) _fdopen(fd,type)
179
+ # endif
180
+ #endif
181
+
182
+ #if defined(__BORLANDC__) && !defined(MSDOS)
183
+ #pragma warn -8004
184
+ #pragma warn -8008
185
+ #pragma warn -8066
186
+ #endif
187
+
188
+ /* provide prototypes for these when building zlib without LFS */
189
+ #if !defined(_WIN32) && \
190
+ (!defined(_LARGEFILE64_SOURCE) || _LFS64_LARGEFILE-0 == 0)
191
+ ZEXTERN uLong ZEXPORT adler32_combine64 OF((uLong, uLong, z_off_t));
192
+ ZEXTERN uLong ZEXPORT crc32_combine64 OF((uLong, uLong, z_off_t));
193
+ #endif
194
+
195
+ /* common defaults */
196
+
197
+ #ifndef OS_CODE
198
+ # define OS_CODE 3 /* assume Unix */
199
+ #endif
200
+
201
+ #ifndef F_OPEN
202
+ # define F_OPEN(name, mode) fopen((name), (mode))
203
+ #endif
204
+
205
+ /* functions */
206
+
207
+ #if defined(pyr) || defined(Z_SOLO)
208
+ # define NO_MEMCPY
209
+ #endif
210
+ #if defined(SMALL_MEDIUM) && !defined(_MSC_VER) && !defined(__SC__)
211
+ /* Use our own functions for small and medium model with MSC <= 5.0.
212
+ * You may have to use the same strategy for Borland C (untested).
213
+ * The __SC__ check is for Symantec.
214
+ */
215
+ # define NO_MEMCPY
216
+ #endif
217
+ #if defined(STDC) && !defined(HAVE_MEMCPY) && !defined(NO_MEMCPY)
218
+ # define HAVE_MEMCPY
219
+ #endif
220
+ #ifdef HAVE_MEMCPY
221
+ # ifdef SMALL_MEDIUM /* MSDOS small or medium model */
222
+ # define zmemcpy _fmemcpy
223
+ # define zmemcmp _fmemcmp
224
+ # define zmemzero(dest, len) _fmemset(dest, 0, len)
225
+ # else
226
+ # define zmemcpy memcpy
227
+ # define zmemcmp memcmp
228
+ # define zmemzero(dest, len) memset(dest, 0, len)
229
+ # endif
230
+ #else
231
+ void ZLIB_INTERNAL zmemcpy OF((Bytef* dest, const Bytef* source, uInt len));
232
+ int ZLIB_INTERNAL zmemcmp OF((const Bytef* s1, const Bytef* s2, uInt len));
233
+ void ZLIB_INTERNAL zmemzero OF((Bytef* dest, uInt len));
234
+ #endif
235
+
236
+ /* Diagnostic functions */
237
+ #ifdef ZLIB_DEBUG
238
+ # include <stdio.h>
239
+ extern int ZLIB_INTERNAL z_verbose;
240
+ extern void ZLIB_INTERNAL z_error OF((char *m));
241
+ # define Assert(cond,msg) {if(!(cond)) z_error(msg);}
242
+ # define Trace(x) {if (z_verbose>=0) fprintf x ;}
243
+ # define Tracev(x) {if (z_verbose>0) fprintf x ;}
244
+ # define Tracevv(x) {if (z_verbose>1) fprintf x ;}
245
+ # define Tracec(c,x) {if (z_verbose>0 && (c)) fprintf x ;}
246
+ # define Tracecv(c,x) {if (z_verbose>1 && (c)) fprintf x ;}
247
+ #else
248
+ # define Assert(cond,msg)
249
+ # define Trace(x)
250
+ # define Tracev(x)
251
+ # define Tracevv(x)
252
+ # define Tracec(c,x)
253
+ # define Tracecv(c,x)
254
+ #endif
255
+
256
+ #ifndef Z_SOLO
257
+ voidpf ZLIB_INTERNAL zcalloc OF((voidpf opaque, unsigned items,
258
+ unsigned size));
259
+ void ZLIB_INTERNAL zcfree OF((voidpf opaque, voidpf ptr));
260
+ #endif
261
+
262
+ #define ZALLOC(strm, items, size) \
263
+ (*((strm)->zalloc))((strm)->opaque, (items), (size))
264
+ #define ZFREE(strm, addr) (*((strm)->zfree))((strm)->opaque, (voidpf)(addr))
265
+ #define TRY_FREE(s, p) {if (p) ZFREE(s, p);}
266
+
267
+ /* Reverse the bytes in a 32-bit value */
268
+ #define ZSWAP32(q) ((((q) >> 24) & 0xff) + (((q) >> 8) & 0xff00) + \
269
+ (((q) & 0xff00) << 8) + (((q) & 0xff) << 24))
270
+
271
+ #endif /* ZUTIL_H */