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_DEFAULT))) {
7 	enum LIBRAW_MAX_ALLOC_MB_DEFAULT = 2048L;
8 }
9 
10 
11 static if (!is(typeof(LIBRAW_MAX_NONDNG_RAW_FILE_SIZE))) {
12 	enum LIBRAW_MAX_NONDNG_RAW_FILE_SIZE = 2147483647UL;
13 }
14 
15 static if (!is(typeof(LIBRAW_MAX_DNG_RAW_FILE_SIZE))) {
16 version (USE_DNGSDK)
17 	enum LIBRAW_MAX_DNG_RAW_FILE_SIZE = 4294967295UL;
18 else
19 	enum LIBRAW_MAX_DNG_RAW_FILE_SIZE = 2147483647UL;
20 }
21 
22 static if (!is(typeof(LIBRAW_MAX_THUMBNAIL_MB_DEFAULT))) {
23 	enum LIBRAW_MAX_THUMBNAIL_MB_DEFAULT = 512L;
24 }
25 
26 static if (!is(typeof(LIBRAW_METADATA_LOOP_PREVENTION))) {
27 	enum LIBRAW_METADATA_LOOP_PREVENTION = 0;
28 }
29 
30 version (LIBRAW_NO_IOSPACE_CHECK) {}
31 else version = LIBRAW_IOSPACE_CHECK;
32 
33 version (LIBRAW_NO_CR3_MEMPOOL) {}
34 else version = LIBRAW_CR3_MEMPOOL;
35 
36 version (LIBRAW_NO_MEMPOOL_CHECK) {}
37 else version = LIBRAW_MEMPOOL_CHECK;
38 
39 enum LIBRAW_MAX_METADATA_BLOCKS = 1024;
40 enum LIBRAW_CBLACK_SIZE = 4104;
41 enum LIBRAW_IFD_MAXCOUNT = 10;
42 enum LIBRAW_CRXTRACKS_MAXCOUNT = 16;
43 enum LIBRAW_AFDATA_MAXCOUNT = 4;
44 
45 enum LIBRAW_AHD_TILE = 512;
46 
47 version (LIBRAW_NO_IOSTREAMS_DATASTREAM) {}
48 else {
49 	enum LibRaw_open_flags {
50 		LIBRAW_OPEN_BIGFILE = 1,
51 		LIBRAW_OPEN_FILE = 1<<1
52 	}
53 }
54 
55 
56 enum LibRaw_openbayer_patterns {
57 	RGGB = 0x94,
58 	BGGR = 0x16,
59 	GRBG = 0x61,
60 	GBRG = 0x49
61 }
62 
63 enum LibRaw_dngfields_marks {
64 	FORWARDMATRIX = 1,
65 	ILLUMINANT = 1 << 1,
66 	COLORMATRIX = 1 << 2,
67 	CALIBRATION = 1 << 3,
68 	ANALOGBALANCE = 1 << 4,
69 	BLACK = 1 << 5,
70 	WHITE = 1 << 6,
71 	OPCODE2 = 1 << 7,
72 	LINTABLE = 1 << 8,
73 	CROPORIGIN = 1 << 9,
74 	CROPSIZE = 1 << 10,
75 	PREVIEWCS = 1 << 11,
76 	ASSHOTNEUTRAL = 1 << 12,
77 	BASELINEEXPOSURE = 1 << 13,
78 	LINEARRESPONSELIMIT = 1 << 14,
79   LIBRAW_DNGFM_USERCROP = 1 << 15,
80 }
81 
82 enum LibRaw_As_Shot_WB_Applied_codes
83 {
84 	APPLIED = 1,
85 	CANON = 2,
86 	NIKON = 4,
87 	NIKON_SRAW = 8,
88 	PENTAX = 16
89 }
90 
91 //#define tagtypeIs(typex) (type == typex)
92 enum LibRaw_ExifTagTypes {
93   LIBRAW_EXIFTAG_TYPE_UNKNOWN   =  0,
94   LIBRAW_EXIFTAG_TYPE_BYTE      =  1,
95   LIBRAW_EXIFTAG_TYPE_ASCII     =  2,
96   LIBRAW_EXIFTAG_TYPE_SHORT     =  3,
97   LIBRAW_EXIFTAG_TYPE_LONG      =  4,
98   LIBRAW_EXIFTAG_TYPE_RATIONAL  =  5,
99   LIBRAW_EXIFTAG_TYPE_SBYTE     =  6,
100   LIBRAW_EXIFTAG_TYPE_UNDEFINED =  7,
101   LIBRAW_EXIFTAG_TYPE_SSHORT    =  8,
102   LIBRAW_EXIFTAG_TYPE_SLONG     =  9,
103   LIBRAW_EXIFTAG_TYPE_SRATIONAL = 10,
104   LIBRAW_EXIFTAG_TYPE_FLOAT     = 11,
105   LIBRAW_EXIFTAG_TYPE_DOUBLE    = 12,
106   LIBRAW_EXIFTAG_TYPE_IFD       = 13,
107   LIBRAW_EXIFTAG_TYPE_UNICODE   = 14,
108   LIBRAW_EXIFTAG_TYPE_COMPLEX   = 15,
109   LIBRAW_EXIFTAG_TYPE_LONG8     = 16,
110   LIBRAW_EXIFTAG_TYPE_SLONG8    = 17,
111   LIBRAW_EXIFTAG_TYPE_IFD8      = 18
112 }
113 
114 enum LIBRAW_EXIFTOOLTAGTYPE_int8u =       LibRaw_ExifTagTypes.LIBRAW_EXIFTAG_TYPE_BYTE;
115 enum LIBRAW_EXIFTOOLTAGTYPE_string =      LibRaw_ExifTagTypes.LIBRAW_EXIFTAG_TYPE_ASCII;
116 enum LIBRAW_EXIFTOOLTAGTYPE_int16u =      LibRaw_ExifTagTypes.LIBRAW_EXIFTAG_TYPE_SHORT;
117 enum LIBRAW_EXIFTOOLTAGTYPE_int32u =      LibRaw_ExifTagTypes.LIBRAW_EXIFTAG_TYPE_LONG;
118 enum LIBRAW_EXIFTOOLTAGTYPE_rational64u = LibRaw_ExifTagTypes.LIBRAW_EXIFTAG_TYPE_RATIONAL;
119 enum LIBRAW_EXIFTOOLTAGTYPE_int8s =       LibRaw_ExifTagTypes.LIBRAW_EXIFTAG_TYPE_SBYTE;
120 enum LIBRAW_EXIFTOOLTAGTYPE_undef =       LibRaw_ExifTagTypes.LIBRAW_EXIFTAG_TYPE_UNDEFINED;
121 enum LIBRAW_EXIFTOOLTAGTYPE_binary =      LibRaw_ExifTagTypes.LIBRAW_EXIFTAG_TYPE_UNDEFINED;
122 enum LIBRAW_EXIFTOOLTAGTYPE_int16s =      LibRaw_ExifTagTypes.LIBRAW_EXIFTAG_TYPE_SSHORT;
123 enum LIBRAW_EXIFTOOLTAGTYPE_int32s =      LibRaw_ExifTagTypes.LIBRAW_EXIFTAG_TYPE_SLONG;
124 enum LIBRAW_EXIFTOOLTAGTYPE_rational64s = LibRaw_ExifTagTypes.LIBRAW_EXIFTAG_TYPE_SRATIONAL;
125 enum LIBRAW_EXIFTOOLTAGTYPE_float =       LibRaw_ExifTagTypes.LIBRAW_EXIFTAG_TYPE_FLOAT;
126 enum LIBRAW_EXIFTOOLTAGTYPE_double =      LibRaw_ExifTagTypes.LIBRAW_EXIFTAG_TYPE_DOUBLE;
127 enum LIBRAW_EXIFTOOLTAGTYPE_ifd =         LibRaw_ExifTagTypes.LIBRAW_EXIFTAG_TYPE_IFD;
128 enum LIBRAW_EXIFTOOLTAGTYPE_unicode =     LibRaw_ExifTagTypes.LIBRAW_EXIFTAG_TYPE_UNICODE;
129 enum LIBRAW_EXIFTOOLTAGTYPE_complex =     LibRaw_ExifTagTypes.LIBRAW_EXIFTAG_TYPE_COMPLEX;
130 enum LIBRAW_EXIFTOOLTAGTYPE_int64u =      LibRaw_ExifTagTypes.LIBRAW_EXIFTAG_TYPE_LONG8;
131 enum LIBRAW_EXIFTOOLTAGTYPE_int64s =      LibRaw_ExifTagTypes.LIBRAW_EXIFTAG_TYPE_SLONG8;
132 enum LIBRAW_EXIFTOOLTAGTYPE_ifd64 =       LibRaw_ExifTagTypes.LIBRAW_EXIFTAG_TYPE_IFD8;
133 
134 enum LIBRAW_LENS_NOT_SET = 0xffffffffffffffffUL;
135 
136 enum LibRaw_whitebalance_code {
137 	Unknown = 0,
138 	Daylight = 1,
139 	Fluorescent = 2,
140 	Tungsten = 3,
141 	Flash = 4,
142 	FineWeather = 9,
143 	Cloudy = 10,
144 	Shade = 11,
145 	FL_D = 12,
146 	FL_N = 13,
147 	FL_W = 14,
148 	FL_WW = 15,
149 	FL_L = 16,
150 	Ill_A = 17,
151 	Ill_B = 18,
152 	Ill_C = 19,
153 	D55 = 20,
154 	D65 = 21,
155 	D75 = 22,
156 	D50 = 23,
157 	StudioTungsten = 24,
158 	Sunset = 64,
159 	Underwater = 65,
160 	FluorescentHigh = 66,
161 	HT_Mercury = 67,
162 	AsShot = 81,
163 	Auto = 82,
164 	Custom = 83,
165 	Auto1 = 85,
166 	Auto2 = 86,
167 	Auto3 = 87,
168 	Auto4 = 88,
169 	Custom1 = 90,
170 	Custom2 = 91,
171 	Custom3 = 92,
172 	Custom4 = 93,
173 	Custom5 = 94,
174 	Custom6 = 95,
175 	PC_Set1 = 96,
176 	PC_Set2 = 97,
177 	PC_Set3 = 98,
178 	PC_Set4 = 99,
179 	PC_Set5 = 100,
180 	Measured = 110,
181 	BW = 120,
182 	Kelvin = 254,
183 	Other = 255,
184 	None = 0xffff
185 }
186 
187 enum LibRaw_MultiExposure_related {
188 	NONE = 0,
189 	SIMPLE = 1,
190 	OVERLAY = 2,
191 	HDR = 3
192 }
193 
194 enum LibRaw_dng_processing {
195 	NONE = 0,
196 	FLOAT = 1,
197 	LINEAR = 2,
198 	DEFLATE = 4,
199 	XTRANS = 8,
200 	OTHER = 16,
201 	_8BIT = 32,
202 	/*LARGERANGE=64,*/ /* more than 16 bit integer */
203 	ALL = FLOAT | LINEAR | DEFLATE | XTRANS | _8BIT | OTHER /* |LARGERANGE */,
204 	DEFAULT = FLOAT | LINEAR | DEFLATE | _8BIT
205 }
206 
207 enum LibRaw_output_flags {
208     LIBRAW_OUTPUT_FLAGS_NONE = 0,
209     LIBRAW_OUTPUT_FLAGS_PPMMETA = 1
210 }
211 
212 enum LibRaw_runtime_capabilities {
213 	RAWSPEED = 1,
214 	DNGSDK = 1<<1,
215 	GPRSDK = 1<<2,
216 	UNICODEPATHS = 1<<3,
217 	X3FTOOLS = 1<<4,
218 	RPI6BY9 = 1<<5,
219   ZLIB = 1<<6,
220   JPEG = 1<<7
221 }
222 
223 enum LibRaw_colorspace {
224 	NotFound = 0,
225 	sRGB,
226 	AdobeRGB,
227 	WideGamutRGB,
228 	ProPhotoRGB,
229 	ICC,
230 	Uncalibrated, // Tag 0x0001 InteropIndex containing "R03" + LIBRAW_COLORSPACE_Uncalibrated = Adobe RGB
231 	CameraLinearUniWB,
232 	CameraLinear,
233 	CameraGammaUniWB,
234 	CameraGamma,
235 	MonochromeLinear,
236 	MonochromeGamma,
237 	Unknown = 255
238 }
239 
240 enum LibRaw_cameramaker_index {
241 	Unknown = 0,
242 	Agfa,
243 	Alcatel,
244 	Apple,
245 	Aptina,
246 	AVT,
247 	Baumer,
248 	Broadcom,
249 	Canon,
250 	Casio,
251 	CINE,
252 	Clauss,
253 	Contax,
254 	Creative,
255 	DJI,
256 	DXO,
257 	Epson,
258 	Foculus,
259 	Fujifilm,
260 	Generic,
261 	Gione,
262 	GITUP,
263 	Google,
264 	GoPro,
265 	Hasselblad,
266 	HTC,
267 	I_Mobile,
268 	Imacon,
269 	JK_Imaging,
270 	Kodak,
271 	Konica,
272 	Leaf,
273 	Leica,
274 	Lenovo,
275 	LG,
276 	Logitech,
277 	Mamiya,
278 	Matrix,
279 	Meizu,
280 	Micron,
281 	Minolta,
282 	Motorola,
283 	NGM,
284 	Nikon,
285 	Nokia,
286 	Olympus,
287 	OmniVison,
288 	Panasonic,
289 	Parrot,
290 	Pentax,
291 	PhaseOne,
292 	PhotoControl,
293 	Photron,
294 	Pixelink,
295 	Polaroid,
296 	RED,
297 	Ricoh,
298 	Rollei,
299 	RoverShot,
300 	Samsung,
301 	Sigma,
302 	Sinar,
303 	SMaL,
304 	Sony,
305 	ST_Micro,
306 	THL,
307 	VLUU,
308 	Xiaomi,
309 	XIAOYI,
310 	YI,
311 	Yuneec,
312 	Zeiss,
313   OnePlus,
314   ISG,
315   VIVO,
316   HMD_Global,
317   HUAWEI,
318   RaspberryPi,
319   OmDigital,
320 	TheLastOne
321 }
322 
323 enum LibRaw_camera_mounts {
324 	Alpa,
325 	C,              /* C-mount */
326 	Canon_EF_M,
327 	Canon_EF_S,
328 	Canon_EF,
329 	Canon_RF,
330 	Contax_N,
331 	Contax645,
332 	FT,             /* original 4/3 */
333 	mFT,            /* micro 4/3 */
334 	Fuji_GF,        /* Fujifilm GFX cameras, G mount */
335 	Fuji_GX,        /* Fujifilm GX680 */
336 	Fuji_X,
337 	Hasselblad_H,   /* Hasselblad Hn cameras, HC & HCD lenses */
338 	Hasselblad_V,
339 	Hasselblad_XCD, /* Hasselblad Xn cameras, XCD lenses */
340 	Leica_M,        /* Leica rangefinder bayonet */
341 	Leica_R,        /* Leica SLRs, 'R' for reflex */
342 	Leica_S,        /* LIBRAW_FORMAT_LeicaS 'MF' */
343 	Leica_SL,       /* lens, mounts on 'L' throat, FF */
344 	Leica_TL,       /* lens, mounts on 'L' throat, APS-C */
345 	LPS_L,          /* Leica/Panasonic/Sigma camera mount, takes L, SL and TL lenses */
346 	Mamiya67,       /* Mamiya RB67, RZ67 */
347 	Mamiya645,
348 	Minolta_A,
349 	Nikon_CX,       /* used in 'Nikon 1' series */
350 	Nikon_F,
351 	Nikon_Z,
352   PhaseOne_iXM_MV,
353   PhaseOne_iXM_RS,
354   PhaseOne_iXM,
355 	Pentax_645,
356 	Pentax_K,
357 	Pentax_Q,
358 	RicohModule,
359 	Rollei_bayonet, /* Rollei Hy-6: Leaf AFi, Sinar Hy6- models */
360 	Samsung_NX_M,
361 	Samsung_NX,
362 	Sigma_X3F,
363 	Sony_E,
364 	LF,
365 	DigitalBack,
366 	FixedLens,
367 	IL_UM,          /* Interchangeable lens, mount unknown */
368 	TheLastOne
369 }
370 
371 enum LibRaw_camera_formats {
372 	APSC,
373 	FF,
374 	MF,
375 	APSH,
376 	_1INCH,
377 	_1div2p3INCH,  /* 1/2.3" */
378 	_1div1p7INCH,  /* 1/1.7" */
379 	FT,           /* sensor size in FT & mFT cameras */
380 	CROP645,      /* 44x33mm */
381 	LeicaS,       /* 'MF' Leicas */
382 	_645,
383 	_66,
384 	_69,
385 	LF,
386 	Leica_DMR,
387 	_67,
388 	SigmaAPSC,    /* DP1, DP2, SD15, SD14, SD10, SD9 */
389 	SigmaMerrill, /* SD1,  'SD1 Merrill',  'DP1 Merrill',  'DP2 Merrill' */
390 	SigmaAPSH,    /* 'sd Quattro H' */
391 	_3648,         /* DALSA FTF4052C (Mamiya ZD) */
392 	_68,           /* Fujifilm GX680 */
393 	TheLastOne
394 }
395 
396 enum LibRawImageAspects {
397 	UNKNOWN = 0,
398   OTHER = 1,
399   MINIMAL_REAL_ASPECT_VALUE = 99, /* 1:10*/
400   MAXIMAL_REAL_ASPECT_VALUE = 10000, /* 10: 1*/
401   // Value:  width / height * 1000
402   _3to2 =  (1000 * 3)/2,
403   _1to1 =  1000,
404   _4to3 =  (1000 * 4)/ 3,
405   _16to9 = (1000 * 16) / 9,
406   //6to6, // what is the difference with 1:1 ?
407   _5to4 = (1000 * 5) / 4,
408   _7to6 = (1000 * 7) / 6,
409   _6to5 = (1000 * 6) / 5,
410   _7to5 = (1000 * 7) / 5
411 }
412 
413 enum LibRaw_lens_focal_types {
414 	UNDEFINED = 0,
415 	PRIME_LENS = 1,
416 	ZOOM_LENS = 2,
417 	ZOOM_LENS_CONSTANT_APERTURE = 3,
418 	ZOOM_LENS_VARIABLE_APERTURE = 4
419 }
420 
421 enum LibRaw_Canon_RecordModes {
422 	UNDEFINED = 0,
423 	JPEG,
424 	CRW_THM,
425 	AVI_THM,
426 	TIF,
427 	TIF_JPEG,
428 	CR2,
429 	CR2_JPEG,
430 	UNKNOWN,
431 	MOV,
432 	MP4,
433 	CRM,
434 	CR3,
435 	CR3_JPEG,
436 	HEIF,
437 	CR3_HEIF,
438 	TheLastOne
439 }
440 
441 enum LibRaw_minolta_storagemethods
442 {
443   UNPACKED = 0x52,
444   PACKED   = 0x59
445 }
446 
447 enum LibRaw_minolta_bayerpatterns
448 {
449   RGGB   = 0x01,
450   G2BRG1 = 0x04
451 }
452 
453 enum LibRaw_sony_cameratypes {
454 	DSC = 1,
455 	DSLR = 2,
456 	NEX = 3,
457 	SLT = 4,
458 	ILCE = 5,
459 	ILCA = 6,
460 	UNKNOWN = 0xffff
461 }
462 
463 enum LibRaw_Sony_0x2010_Type {
464   Tag2010None = 0,
465   Tag2010a,
466   Tag2010b,
467   Tag2010c,
468   Tag2010d,
469   Tag2010e,
470   Tag2010f,
471   Tag2010g,
472   Tag2010h,
473   Tag2010i
474 }
475 
476 enum LibRaw_Sony_0x9050_Type {
477   Tag9050None = 0,
478   Tag9050a,
479   Tag9050b,
480   Tag9050c
481 }
482 
483 enum LIBRAW_SONY_FOCUSMODEmodes
484 {
485   MF     = 0,
486   AF_S   = 2,
487   AF_C   = 3,
488   AF_A   = 4,
489   DMF    = 6,
490   AF_D   = 7,
491   AF           = 101,
492   PERMANENT_AF = 104,
493   SEMI_MF      = 105,
494   UNKNOWN      = -1
495 }
496 
497 enum LibRaw_KodakSensors
498 {
499 	UnknownSensor = 0,
500 	M1 = 1,
501 	M15 = 2,
502 	M16 = 3,
503 	M17 = 4,
504 	M2 = 5,
505 	M23 = 6,
506 	M24 = 7,
507 	M3 = 8,
508 	M5 = 9,
509 	M6 = 10,
510 	C14 = 11,
511 	X14 = 12,
512 	M11 = 13
513 }
514 
515 enum LibRaw_HasselbladFormatCodes {
516 	Unknown = 0,
517 	_3FR,
518 	FFF,
519 	Imacon,
520 	HasselbladDNG,
521 	AdobeDNG,
522 	AdobeDNG_fromPhocusDNG
523 }
524 
525 enum LibRaw_rawspecial_t
526 {
527     SONYARW2_NONE = 0,
528     SONYARW2_BASEONLY = 1,
529     SONYARW2_DELTAONLY = 1 << 1,
530     SONYARW2_DELTAZEROBASE = 1 << 2,
531     SONYARW2_DELTATOVALUE = 1 << 3,
532     SONYARW2_ALLFLAGS =
533     SONYARW2_BASEONLY +
534     SONYARW2_DELTAONLY +
535     SONYARW2_DELTAZEROBASE +
536     SONYARW2_DELTATOVALUE,
537     NODP2Q_INTERPOLATERG = 1<<4,
538     NODP2Q_INTERPOLATEAF = 1 << 5,
539     SRAW_NO_RGB = 1 << 6,
540     SRAW_NO_INTERPOLATE = 1 << 7
541 };
542 
543 enum LibRaw_processing_options {
544   PENTAX_PS_ALLFRAMES = 1,
545   CONVERTFLOAT_TO_INT = 1 << 1,
546   ARQ_SKIP_CHANNEL_SWAP = 1 << 2,
547   NO_ROTATE_FOR_KODAK_THUMBNAILS = 1 << 3,
548 // USE_DNG_DEFAULT_CROP = 1 << 4,
549   USE_PPM16_THUMBS = 1 << 5,
550   DONT_CHECK_DNG_ILLUMINANT = 1 << 6,
551   DNGSDK_ZEROCOPY = 1 << 7,
552   ZEROFILTERS_FOR_MONOCHROMETIFFS = 1 << 8,
553   DNG_ADD_ENHANCED = 1 << 9,
554   DNG_ADD_PREVIEWS = 1 << 10,
555   DNG_PREFER_LARGEST_IMAGE = 1 << 11,
556   DNG_STAGE2 = 1 << 12,
557   DNG_STAGE3 = 1 << 13,
558   DNG_ALLOWSIZECHANGE = 1 << 14,
559   DNG_DISABLEWBADJUST = 1 << 15,
560   PROVIDE_NONSTANDARD_WB = 1 << 16,
561   CAMERAWB_FALLBACK_TO_DAYLIGHT = 1 << 17,
562   CHECK_THUMBNAILS_KNOWN_VENDORS = 1 << 18,
563   CHECK_THUMBNAILS_ALL_VENDORS = 1 << 19
564 }
565 
566 enum LibRaw_decoder_flags {
567 	HASCURVE = 1 << 4,
568 	SONYARW2 = 1 << 5,
569 	TRYRAWSPEED = 1 << 6,
570 	OWNALLOC = 1 << 7,
571 	FIXEDMAXC = 1 << 8,
572 	ADOBECOPYPIXEL = 1 << 9,
573 	LEGACY_WITH_MARGINS = 1 << 10,
574 	_3CHANNEL = 1 << 11,
575 	SINAR4SHOT = 1 << 11,
576 	FLATDATA = 1 << 12,
577 	FLAT_BG2_SWAPPED = 1<<13,
578 	NOTSET = 1 << 15
579 }
580 
581 enum LIBRAW_XTRANS = 9;
582 
583 enum LibRaw_constructor_flags {
584 	NONE = 0,
585 	NO_MEMERR_CALLBACK = 1,
586 	NO_DATAERR_CALLBACK = 1 << 1
587 }
588 
589 enum LibRaw_warnings {
590 	NONE = 0,
591 	BAD_CAMERA_WB = 1 << 2,
592 	NO_METADATA = 1 << 3,
593 	NO_JPEGLIB = 1 << 4,
594 	NO_EMBEDDED_PROFILE = 1 << 5,
595 	NO_INPUT_PROFILE = 1 << 6,
596 	BAD_OUTPUT_PROFILE = 1 << 7,
597 	NO_BADPIXELMAP = 1 << 8,
598 	BAD_DARKFRAME_FILE = 1 << 9,
599 	BAD_DARKFRAME_DIM = 1 << 10,
600 	NO_JASPER = 1 << 11,
601 	RAWSPEED_PROBLEM = 1 << 12,
602 	RAWSPEED_UNSUPPORTED = 1 << 13,
603 	RAWSPEED_PROCESSED = 1 << 14,
604 	FALLBACK_TO_AHD = 1 << 15,
605 	PARSEFUJI_PROCESSED = 1 << 16,
606 	DNGSDK_PROCESSED = 1 << 17,
607 	DNG_IMAGES_REORDERED = 1 << 18,
608 	DNG_STAGE2_APPLIED = 1 << 19,
609 	DNG_STAGE3_APPLIED = 1 << 20,
610 }
611 
612 enum LibRaw_exceptions {
613 	NONE = 0,
614 	ALLOC = 1,
615 	DECODE_RAW = 2,
616 	DECODE_JPEG = 3,
617 	IO_EOF = 4,
618 	IO_CORRUPT = 5,
619 	CANCELLED_BY_CALLBACK = 6,
620 	BAD_CROP = 7,
621 	IO_BADFILE = 8,
622 	DECODE_JPEG2000 = 9,
623 	TOOBIG = 10,
624 	MEMPOOL = 11
625 }
626 
627 enum LibRaw_progress {
628 	START = 0,
629 	OPEN = 1,
630 	IDENTIFY = 1 << 1,
631 	SIZE_ADJUST = 1 << 2,
632 	LOAD_RAW = 1 << 3,
633 	RAW2_IMAGE = 1 << 4,
634 	REMOVE_ZEROES = 1 << 5,
635 	BAD_PIXELS = 1 << 6,
636 	DARK_FRAME = 1 << 7,
637 	FOVEON_INTERPOLATE = 1 << 8,
638 	SCALE_COLORS = 1 << 9,
639 	PRE_INTERPOLATE = 1 << 10,
640 	INTERPOLATE = 1 << 11,
641 	MIX_GREEN = 1 << 12,
642 	MEDIAN_FILTER = 1 << 13,
643 	HIGHLIGHTS = 1 << 14,
644 	FUJI_ROTATE = 1 << 15,
645 	FLIP = 1 << 16,
646 	APPLY_PROFILE = 1 << 17,
647 	CONVERT_RGB = 1 << 18,
648 	STRETCH = 1 << 19,
649 	/* reserved */
650 	STAGE20 = 1 << 20,
651 	STAGE21 = 1 << 21,
652 	STAGE22 = 1 << 22,
653 	STAGE23 = 1 << 23,
654 	STAGE24 = 1 << 24,
655 	STAGE25 = 1 << 25,
656 	STAGE26 = 1 << 26,
657 	STAGE27 = 1 << 27,
658 
659 	THUMB_LOAD = 1 << 28,
660 	TRESERVED1 = 1 << 29,
661 	TRESERVED2 = 1 << 30
662 }
663 enum LIBRAW_PROGRESS_THUMB_MASK = 0x0fffffff;
664 
665 enum LibRaw_errors {
666 	SUCCESS = 0,
667 	UNSPECIFIED_ERROR = -1,
668 	FILE_UNSUPPORTED = -2,
669 	REQUEST_FOR_NONEXISTENT_IMAGE = -3,
670 	OUT_OF_ORDER_CALL = -4,
671 	NO_THUMBNAIL = -5,
672 	UNSUPPORTED_THUMBNAIL = -6,
673 	INPUT_CLOSED = -7,
674 	NOT_IMPLEMENTED = -8,
675 	UNSUFFICIENT_MEMORY = -100007,
676 	DATA_ERROR = -100008,
677 	IO_ERROR = -100009,
678 	CANCELLED_BY_CALLBACK = -100010,
679 	BAD_CROP = -100011,
680 	TOO_BIG = -100012,
681 	MEMPOOL_OVERFLOW = -100013
682 }
683 
684 auto LIBRAW_FATAL_ERROR(E)(E ec) { return ec < -100000; }
685 
686 enum LibRaw_thumbnail_formats {
687 	UNKNOWN = 0,
688 	JPEG = 1,
689 	BITMAP = 2,
690 	BITMAP16 = 3,
691 	LAYER = 4,
692 	ROLLEI = 5,
693   H265 = 6
694 }
695 
696 enum LibRaw_image_formats {
697 	JPEG = 1,
698 	BITMAP = 2
699 }