libopenraw
consts.h
1 /*
2  * libopenraw - consts.h
3  *
4  * Copyright (c) 2008 Novell, Inc.
5  * Copyright (C) 2005-2015 Hubert Figuiere
6  *
7  * This library is free software: you can redistribute it and/or
8  * modify it under the terms of the GNU Lesser General Public License
9  * as published by the Free Software Foundation, either version 3 of
10  * the License, or (at your option) any later version.
11  *
12  * This library is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15  * Lesser General Public License for more details.
16  *
17  * You should have received a copy of the GNU Lesser General Public
18  * License along with this library. If not, see
19  * <http://www.gnu.org/licenses/>.
20  */
26 #ifndef LIBOPENRAW_CONSTS_H_
27 #define LIBOPENRAW_CONSTS_H_
28 
29 #include <stdint.h>
30 
31 #ifdef __cplusplus
32 extern "C" {
33 #endif
34 
38 typedef enum {
39  OR_ERROR_NONE = 0,
40  OR_ERROR_BUF_TOO_SMALL = 1,
41  OR_ERROR_NOTAREF = 2,
42  OR_ERROR_CANT_OPEN = 3,
43  OR_ERROR_CLOSED_STREAM = 4,
44  OR_ERROR_NOT_FOUND = 5,
45  OR_ERROR_INVALID_PARAM = 6,
46  OR_ERROR_INVALID_FORMAT = 7,
47  OR_ERROR_DECOMPRESSION = 8,
48  OR_ERROR_UNKNOWN = 42,
49  OR_ERROR_LAST_
50 } or_error;
51 
54 typedef enum {
55  OR_RAWFILE_TYPE_UNKNOWN = 0,
56  OR_RAWFILE_TYPE_CR2,
57  OR_RAWFILE_TYPE_CRW,
58  OR_RAWFILE_TYPE_NEF,
59  OR_RAWFILE_TYPE_MRW,
60  OR_RAWFILE_TYPE_ARW,
61  OR_RAWFILE_TYPE_DNG,
62  OR_RAWFILE_TYPE_ORF,
63  OR_RAWFILE_TYPE_PEF,
64  OR_RAWFILE_TYPE_ERF,
65  OR_RAWFILE_TYPE_TIFF,
66  OR_RAWFILE_TYPE_NRW,
67  OR_RAWFILE_TYPE_RW2,
68  OR_RAWFILE_TYPE_RAF,
69  _OR_RAWFILE_TYPE_LAST
70 } or_rawfile_type;
71 
72 typedef enum {
73  OR_DATA_TYPE_NONE = 0,
74  OR_DATA_TYPE_PIXMAP_8RGB,
75  OR_DATA_TYPE_PIXMAP_16RGB,
76  OR_DATA_TYPE_JPEG,
77  OR_DATA_TYPE_TIFF,
78  OR_DATA_TYPE_PNG,
79  OR_DATA_TYPE_RAW,
80  OR_DATA_TYPE_COMPRESSED_RAW,
82  OR_DATA_TYPE_UNKNOWN
83 } or_data_type;
84 
85 typedef enum {
86  OR_CFA_PATTERN_NONE = 0,
87  OR_CFA_PATTERN_NON_RGB22 = 1,
88  OR_CFA_PATTERN_RGGB = 2,
89  OR_CFA_PATTERN_GBRG = 3,
90  OR_CFA_PATTERN_BGGR = 4,
91  OR_CFA_PATTERN_GRBG = 5,
92  _OR_CFA_PATTERN_INVALID
93 } or_cfa_pattern;
94 
95 typedef enum {
96  OR_PATTERN_COLOUR_RED = 0,
97  OR_PATTERN_COLOUR_GREEN = 1,
98  OR_PATTERN_COLOUR_BLUE = 2
99 } or_cfa_pattern_colour;
100 
101 typedef enum {
102  OR_OPTIONS_NONE = 0x00000000,
103  OR_OPTIONS_DONT_DECOMPRESS = 0x00000001
105 } or_options;
106 
110 typedef uint32_t or_rawfile_typeid;
111 
113 #define OR_MAKE_FILE_TYPEID(vendor, camera) ((vendor << 16) | (camera & 0xffff))
114 
115 #define OR_GET_FILE_TYPEID_VENDOR(ftypeid) ((ftypeid & 0xffff0000) >> 16)
116 
117 #define OR_GET_FILE_TYPEID_CAMERA(ftypeid) (ftypeid & 0xffff)
118 
119 #ifdef __cplusplus
120 }
121 #endif
122 
123 #endif