1 module libraw.const_;
2 
3 enum LIBRAW_DEFAULT_ADJUST_MAXIMUM_THRESHOLD = 0.75;
4 enum LIBRAW_DEFAULT_AUTO_BRIGHTNESS_THRESHOLD = 0.01;
5 
6 static if (!is(typeof(LIBRAW_MAX_ALLOC_MB))) {
7 	enum LIBRAW_MAX_ALLOC_MB = 2048L;
8 }
9 
10 static if (!is(typeof(LIBRAW_METADATA_LOOP_PREVENTION))) {
11 	enum LIBRAW_METADATA_LOOP_PREVENTION = 0;
12 }
13 
14 version (LIBRAW_NO_IOSPACE_CHECK) {}
15 else version = LIBRAW_IOSPACE_CHECK;
16 
17 version (LIBRAW_NO_MEMPOOL_CHECK) {}
18 else version = LIBRAW_MEMPOOL_CHECK;
19 
20 enum LIBRAW_MAX_METADATA_BLOCKS = 1024;
21 enum LIBRAW_CBLACK_SIZE = 4104;
22 enum LIBRAW_IFD_MAXCOUNT = 10;
23 enum LIBRAW_CRXTRACKS_MAXCOUNT = 16;
24 
25 enum LIBRAW_AHD_TILE = 512;
26 
27 enum LibRaw_openbayer_patterns {
28 	RGGB = 0x94,
29 	BGGR = 0x16,
30 	GRBG = 0x61,
31 	GBRG = 0x49
32 }
33 
34 enum LibRaw_dngfields_marks {
35 	FORWARDMATRIX = 1,
36 	ILLUMINANT = 1 << 1,
37 	COLORMATRIX = 1 << 2,
38 	CALIBRATION = 1 << 3,
39 	ANALOGBALANCE = 1 << 4,
40 	BLACK = 1 << 5,
41 	WHITE = 1 << 6,
42 	OPCODE2 = 1 << 7,
43 	LINTABLE = 1 << 8,
44 	CROPORIGIN = 1 << 9,
45 	CROPSIZE = 1 << 10,
46 	PREVIEWCS = 1 << 11,
47 	ASSHOTNEUTRAL = 1 << 12,
48 	BASELINEEXPOSURE = 1 << 13,
49 	LINEARRESPONSELIMIT = 1 << 14
50 }
51 
52 enum LibRaw_As_Shot_WB_Applied_codes
53 {
54 	APPLIED = 1,
55 	CANON = 2,
56 	NIKON = 4,
57 	NIKON_SRAW = 8,
58 	PENTAX = 16
59 }
60 
61 enum LibRaw_whitebalance_code {
62 	Unknown = 0,
63 	Daylight = 1,
64 	Fluorescent = 2,
65 	Tungsten = 3,
66 	Flash = 4,
67 	FineWeather = 9,
68 	Cloudy = 10,
69 	Shade = 11,
70 	FL_D = 12,
71 	FL_N = 13,
72 	FL_W = 14,
73 	FL_WW = 15,
74 	FL_L = 16,
75 	Ill_A = 17,
76 	Ill_B = 18,
77 	Ill_C = 19,
78 	D55 = 20,
79 	D65 = 21,
80 	D75 = 22,
81 	D50 = 23,
82 	StudioTungsten = 24,
83 	Sunset = 64,
84 	LIBRAW_WBI_HT_Mercury = 67,
85 	Auto = 82,
86 	Custom = 83,
87 	Auto1 = 85,
88 	Auto2 = 86,
89 	Auto3 = 87,
90 	Auto4 = 88,
91 	Custom1 = 90,
92 	Custom2 = 91,
93 	Custom3 = 92,
94 	Custom4 = 93,
95 	Custom5 = 94,
96 	Custom6 = 95,
97 	Measured = 100,
98 	Underwater = 120,
99 	Kelvin = 254,
100 	Other = 255,
101 	None = 0xffff
102 }
103 
104 enum LibRaw_MultiExposure_related {
105 	NONE = 0,
106 	SIMPLE = 1,
107 	OVERLAY = 2,
108 	HDR = 3
109 }
110 
111 enum LibRaw_dng_processing {
112 	NONE = 0,
113 	FLOAT = 1,
114 	LINEAR = 2,
115 	DEFLATE = 4,
116 	XTRANS = 8,
117 	OTHER = 16,
118 	_8BIT = 32,
119 	/*LARGERANGE=64,*/ /* more than 16 bit integer */
120 	ALL = FLOAT | LINEAR | XTRANS | _8BIT | OTHER /* |LARGERANGE */,
121 	DEFAULT = FLOAT | LINEAR | DEFLATE | _8BIT
122 }
123 
124 enum LibRaw_runtime_capabilities {
125 	RAWSPEED = 1,
126 	DNGSDK = 2,
127 	GPRSDK = 4,
128 	UNICODEPATHS = 8
129 }
130 
131 enum LibRaw_cameramaker_index {
132 	Unknown = 0,
133 	Agfa,
134 	Alcatel,
135 	Apple,
136 	Aptina,
137 	AVT,
138 	Baumer,
139 	Broadcom,
140 	Canon,
141 	Casio,
142 	CINE,
143 	Clauss,
144 	Contax,
145 	Creative,
146 	DJI,
147 	DXO,
148 	Epson,
149 	Foculus,
150 	Fujifilm,
151 	Generic,
152 	Gione,
153 	GITUP,
154 	Google,
155 	GoPro,
156 	Hasselblad,
157 	HTC,
158 	I_Mobile,
159 	Imacon,
160 	Kodak,
161 	Konica,
162 	Leaf,
163 	Leica,
164 	Lenovo,
165 	LG,
166 	Mamiya,
167 	Matrix,
168 	Meizu,
169 	Micron,
170 	Minolta,
171 	Motorola,
172 	NGM,
173 	Nikon,
174 	Nokia,
175 	Olympus,
176 	OmniVison,
177 	Panasonic,
178 	Parrot,
179 	Pentax,
180 	PhaseOne,
181 	PhotoControl,
182 	Photron,
183 	Pixelink,
184 	Polaroid,
185 	RED,
186 	Ricoh,
187 	Rollei,
188 	RoverShot,
189 	Samsung,
190 	Sigma,
191 	Sinar,
192 	SMaL,
193 	Sony,
194 	ST_Micro,
195 	THL,
196 	Xiaomi,
197 	XIAOYI,
198 	YI,
199 	Yuneec,
200 	TheLastOne,
201 }
202 
203 enum LibRaw_camera_mounts {
204 	Unknown = 0,
205 	Minolta_A = 1,
206 	Sony_E = 2,
207 	Canon_EF = 3,
208 	Canon_EF_S = 4,
209 	Canon_EF_M = 5,
210 	Nikon_F = 6,
211 	Nikon_CX = 7, /* used in Nikon 1 series */
212 	FT = 8,       /* original 4/3 */
213 	mFT = 9,      /* micro 4/3 */
214 	Pentax_K = 10,
215 	Pentax_Q = 11,
216 	Pentax_645 = 12,
217 	Fuji_X = 13,
218 	Leica_M = 14,
219 	Leica_R = 15,
220 	Leica_S = 16,
221 	Samsung_NX = 17,
222 	RicohModule = 18,
223 	Samsung_NX_M = 19,
224 	Leica_L = 20,
225 	Contax_N = 21,
226 	Sigma_X3F = 22,
227 	Leica_TL = 23, /* lens, mounts on 'L' throat, APS-C */
228 	Leica_SL = 24, /* lens, mounts on 'L' throat, FF */
229 	Nikon_Z = 25,
230 	Canon_RF = 26,
231 	C = 27,              /* C-mount */
232 	Fuji_GF = 50,        /* Fujifilm GFX cameras, G mount */
233 	Hasselblad_H = 51,   /* Hasselblad Hn cameras, HC & HCD lenses */
234 	Hasselblad_XCD = 52, /* Hasselblad Xn cameras, XCD lenses */
235 	Hasselblad_V = 53,
236 	Contax645 = 54,
237 	Mamiya645 = 55,
238 	Rollei_bayonet = 56, /* Rollei Hy-6: Leaf AFi, Sinar Hy6- models */
239 	Alpa = 57,
240 	Mamiya67 = 58, /* Mamiya RB67, RZ67 */
241 	Fuji_GX = 59,  /* Fujifilm GX680 */
242 	LF = 97,
243 	DigitalBack = 98,
244 	FixedLens = 99,
245 	IL_UM = 100 /* Interchangeable lens, mount unknown */
246 }
247 
248 enum LibRaw_camera_formats {
249 	Unknown = 0,
250 	APSC = 1,
251 	FF = 2,
252 	MF = 3,
253 	APSH = 4,
254 	_1INCH = 5,
255 	_1div2p3INCH = 6, /* 1/2.3" */
256 	_1div1p7INCH = 7, /* 1/1.7" */
257 	FT = 8,          /* sensor size in FT & mFT cameras */
258 	CROP645 = 9,     /* 44x33mm */
259 	LeicaS = 10,     /* 'MF' Leicas */
260 	_645 = 11,
261 	_66 = 12,
262 	_69 = 13,
263 	LF = 14,
264 	Leica_DMR = 15,
265 	_67 = 16,
266 	SigmaAPSC = 17, /* DP1, DP2, SD15, SD14, SD10, SD9 */
267 	SigmaMerrill = 18, /* SD1,  'SD1 Merrill',  'DP1 Merrill',  'DP2 Merrill' */
268 	SigmaAPSH = 19, /* 'sd Quattro H' */
269 	_3648 = 20,      /* DALSA FTF4052C (Mamiya ZD) */
270 	_68 = 21         /* Fujifilm GX680 */
271 }
272 
273 enum LibRawImageAspects {
274 	UNKNOWN = 0,
275 	_3to2 = 1,
276 	_1to1 = 2,
277 	_4to3 = 3,
278 	_16to9 = 4,
279 	_5to4 = 5,
280 	OTHER = 6
281 }
282 
283 enum LibRaw_lens_focal_types {
284 	UNDEFINED = 0,
285 	PRIME_LENS = 1,
286 	ZOOM_LENS = 2,
287 	ZOOM_LENS_CONSTANT_APERTURE = 3,
288 	ZOOM_LENS_VARIABLE_APERTURE = 4
289 }
290 
291 enum LibRaw_sony_cameratypes {
292 	DSC = 1,
293 	DSLR = 2,
294 	NEX = 3,
295 	SLT = 4,
296 	ILCE = 5,
297 	ILCA = 6
298 }
299 
300 enum LibRaw_KodakSensors
301 {
302 	UnknownSensor = 0,
303 	M1 = 1,
304 	M15 = 2,
305 	M16 = 3,
306 	M17 = 4,
307 	M2 = 5,
308 	M23 = 6,
309 	M24 = 7,
310 	M3 = 8,
311 	M5 = 9,
312 	M6 = 10,
313 	C14 = 11,
314 	X14 = 12,
315 	M11 = 13
316 }
317 
318 enum LibRaw_HasselbladFormatCodes {
319 	Unknown = 0,
320 	_3FR,
321 	FFF,
322 	Imacon,
323 	HasselbladDNG,
324 	AdobeDNG,
325 	AdobeDNG_fromPhocusDNG
326 }
327 
328 enum LibRaw_processing_options {
329 	SONYARW2_NONE = 0,
330 	SONYARW2_BASEONLY = 1,
331 	SONYARW2_DELTAONLY = 1 << 1,
332 	SONYARW2_DELTAZEROBASE = 1 << 2,
333 	SONYARW2_DELTATOVALUE = 1 << 3,
334 	SONYARW2_ALLFLAGS = SONYARW2_BASEONLY + SONYARW2_DELTAONLY +
335 		SONYARW2_DELTAZEROBASE + SONYARW2_DELTATOVALUE,
336 	DP2Q_INTERPOLATERG = 1 << 4,
337 	DP2Q_INTERPOLATEAF = 1 << 5,
338 	PENTAX_PS_ALLFRAMES = 1 << 6,
339 	CONVERTFLOAT_TO_INT = 1 << 7,
340 	SRAW_NO_RGB = 1 << 8,
341 	SRAW_NO_INTERPOLATE = 1 << 9,
342 	NO_ROTATE_FOR_KODAK_THUMBNAILS = 1 << 11,
343 	USE_DNG_DEFAULT_CROP = 1 << 12,
344 	USE_PPM16_THUMBS = 1 << 13,
345 	SKIP_MAKERNOTES = 1 << 14,
346 	DONT_CHECK_DNG_ILLUMINANT = 1 << 15,
347 	DNGSDK_ZEROCOPY = 1 << 16,
348 	ZEROFILTERS_FOR_MONOCHROMETIFFS = 1 << 17,
349 	DNG_ADD_ENHANCED = 1 << 18,
350 	DNG_ADD_PREVIEWS = 1 << 19,
351 	DNG_PREFER_LARGEST_IMAGE = 1 << 20
352 }
353 
354 enum LibRaw_decoder_flags {
355 	HASCURVE = 1 << 4,
356 	SONYARW2 = 1 << 5,
357 	TRYRAWSPEED = 1 << 6,
358 	OWNALLOC = 1 << 7,
359 	FIXEDMAXC = 1 << 8,
360 	ADOBECOPYPIXEL = 1 << 9,
361 	LEGACY_WITH_MARGINS = 1 << 10,
362 	_3CHANNEL = 1 << 11,
363 	SINAR4SHOT = 1 << 11,
364 	FLATDATA = 1 << 12,
365 	FLAT_BG2_SWAPPED = 1<<13,
366 	NOTSET = 1 << 15
367 }
368 
369 enum LIBRAW_XTRANS = 9;
370 
371 enum LibRaw_constructor_flags {
372 	NONE = 0,
373 	NO_MEMERR_CALLBACK = 1,
374 	NO_DATAERR_CALLBACK = 1 << 1
375 }
376 
377 enum LibRaw_warnings {
378 	NONE = 0,
379 	BAD_CAMERA_WB = 1 << 2,
380 	NO_METADATA = 1 << 3,
381 	NO_JPEGLIB = 1 << 4,
382 	NO_EMBEDDED_PROFILE = 1 << 5,
383 	NO_INPUT_PROFILE = 1 << 6,
384 	BAD_OUTPUT_PROFILE = 1 << 7,
385 	NO_BADPIXELMAP = 1 << 8,
386 	BAD_DARKFRAME_FILE = 1 << 9,
387 	BAD_DARKFRAME_DIM = 1 << 10,
388 	NO_JASPER = 1 << 11,
389 	RAWSPEED_PROBLEM = 1 << 12,
390 	RAWSPEED_UNSUPPORTED = 1 << 13,
391 	RAWSPEED_PROCESSED = 1 << 14,
392 	FALLBACK_TO_AHD = 1 << 15,
393 	PARSEFUJI_PROCESSED = 1 << 16,
394 	DNGSDK_PROCESSED = 1 << 17,
395 	DNG_IMAGES_REORDERED = 1 << 18
396 }
397 
398 enum LibRaw_exceptions {
399 	NONE = 0,
400 	ALLOC = 1,
401 	DECODE_RAW = 2,
402 	DECODE_JPEG = 3,
403 	IO_EOF = 4,
404 	IO_CORRUPT = 5,
405 	CANCELLED_BY_CALLBACK = 6,
406 	BAD_CROP = 7,
407 	IO_BADFILE = 8,
408 	DECODE_JPEG2000 = 9,
409 	TOOBIG = 10,
410 	MEMPOOL = 11
411 }
412 
413 enum LibRaw_progress {
414 	START = 0,
415 	OPEN = 1,
416 	IDENTIFY = 1 << 1,
417 	SIZE_ADJUST = 1 << 2,
418 	LOAD_RAW = 1 << 3,
419 	RAW2_IMAGE = 1 << 4,
420 	REMOVE_ZEROES = 1 << 5,
421 	BAD_PIXELS = 1 << 6,
422 	DARK_FRAME = 1 << 7,
423 	FOVEON_INTERPOLATE = 1 << 8,
424 	SCALE_COLORS = 1 << 9,
425 	PRE_INTERPOLATE = 1 << 10,
426 	INTERPOLATE = 1 << 11,
427 	MIX_GREEN = 1 << 12,
428 	MEDIAN_FILTER = 1 << 13,
429 	HIGHLIGHTS = 1 << 14,
430 	FUJI_ROTATE = 1 << 15,
431 	FLIP = 1 << 16,
432 	APPLY_PROFILE = 1 << 17,
433 	CONVERT_RGB = 1 << 18,
434 	STRETCH = 1 << 19,
435 	/* reserved */
436 	STAGE20 = 1 << 20,
437 	STAGE21 = 1 << 21,
438 	STAGE22 = 1 << 22,
439 	STAGE23 = 1 << 23,
440 	STAGE24 = 1 << 24,
441 	STAGE25 = 1 << 25,
442 	STAGE26 = 1 << 26,
443 	STAGE27 = 1 << 27,
444 
445 	THUMB_LOAD = 1 << 28,
446 	TRESERVED1 = 1 << 29,
447 	TRESERVED2 = 1 << 30,
448 	TRESERVED3 = 1 << 31
449 }
450 enum LIBRAW_PROGRESS_THUMB_MASK = 0x0fffffff;
451 
452 enum LibRaw_errors {
453 	SUCCESS = 0,
454 	UNSPECIFIED_ERROR = -1,
455 	FILE_UNSUPPORTED = -2,
456 	REQUEST_FOR_NONEXISTENT_IMAGE = -3,
457 	OUT_OF_ORDER_CALL = -4,
458 	NO_THUMBNAIL = -5,
459 	UNSUPPORTED_THUMBNAIL = -6,
460 	INPUT_CLOSED = -7,
461 	NOT_IMPLEMENTED = -8,
462 	UNSUFFICIENT_MEMORY = -100007,
463 	DATA_ERROR = -100008,
464 	IO_ERROR = -100009,
465 	CANCELLED_BY_CALLBACK = -100010,
466 	BAD_CROP = -100011,
467 	TOO_BIG = -100012,
468 	MEMPOOL_OVERFLOW = -100013
469 }
470 
471 auto LIBRAW_FATAL_ERROR(E)(E ec) { return ec < -100000; }
472 
473 enum LibRaw_thumbnail_formats {
474 	UNKNOWN = 0,
475 	JPEG = 1,
476 	BITMAP = 2,
477 	BITMAP16 = 3,
478 	LAYER = 4,
479 	ROLLEI = 5
480 }
481 
482 enum LibRaw_image_formats {
483 	JPEG = 1,
484 	BITMAP = 2
485 }