1 /* -*- C++ -*-
2  * Copyright 2020 LibRaw LLC (info@libraw.org)
3  *
4 
5  LibRaw is free software; you can redistribute it and/or modify
6  it under the terms of the one of two licenses as you choose:
7 
8 1. GNU LESSER GENERAL PUBLIC LICENSE version 2.1
9    (See file LICENSE.LGPL provided in LibRaw distribution archive for details).
10 
11 2. COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0
12    (See file LICENSE.CDDL provided in LibRaw distribution archive for details).
13 
14  */
15 
16 #ifndef DCRAW_DEFS_H
17 #define DCRAW_DEFS_H
18 
19 #include <math.h>
20 #define LIBRAW_LIBRARY_BUILD
21 #define LIBRAW_IO_REDEFINED
22 #include "libraw/libraw.h"
23 #include "libraw/libraw_types.h"
24 #include "internal/defines.h"
25 #include "internal/var_defines.h"
26 
27 #define stmread(buf, maxlen, fp) stread(buf, MIN(maxlen, sizeof(buf)), fp)
28 #define strbuflen(buf) strnlen(buf, sizeof(buf) - 1)
29 #define makeIs(idx) (maker_index == idx)
30 #define strnXcat(buf, string)                                                  \
31   strncat(buf, string, LIM(sizeof(buf) - strbuflen(buf) - 1, 0, sizeof(buf)))
32 
33 // DNG was written by:
34 #define nonDNG 0
35 #define CameraDNG 1
36 #define AdobeDNG 2
37 
38 // Makernote tag type:
39 #define is_0x927c 0 /* most cameras */
40 #define is_0xc634 2 /* Adobe DNG, Sony SR2, Pentax */
41 #define ilm imgdata.lens.makernotes
42 #define icWBC imgdata.color.WB_Coeffs
43 #define icWBCCTC imgdata.color.WBCT_Coeffs
44 #define imCanon imgdata.makernotes.canon
45 #define imFuji imgdata.makernotes.fuji
46 #define imHassy imgdata.makernotes.hasselblad
47 #define imKodak imgdata.makernotes.kodak
48 #define imNikon imgdata.makernotes.nikon
49 #define imOly imgdata.makernotes.olympus
50 #define imPana imgdata.makernotes.panasonic
51 #define imPentax imgdata.makernotes.pentax
52 #define imSamsung imgdata.makernotes.samsung
53 #define imSony imgdata.makernotes.sony
54 #define imCommon imgdata.makernotes.common
55 
56 
57 #define ph1_bits(n) ph1_bithuff(n, 0)
58 #define ph1_huff(h) ph1_bithuff(*h, h + 1)
59 #define getbits(n) getbithuff(n, 0)
60 #define gethuff(h) getbithuff(*h, h + 1)
61 
62 #endif
63