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 }