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 */
25
26#ifndef LIBOPENRAW_CONSTS_H_
27#define LIBOPENRAW_CONSTS_H_
28
29#include <stdint.h>
30
31#ifdef __cplusplus
32extern "C" {
33#endif
34
38typedef 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
54typedef 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
72typedef 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,
81
82 OR_DATA_TYPE_UNKNOWN
83} or_data_type;
84
85typedef 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
95typedef 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
101typedef enum {
102 OR_OPTIONS_NONE = 0x00000000,
103 OR_OPTIONS_DONT_DECOMPRESS = 0x00000001
104
105} or_options;
106
110typedef uint32_t or_rawfile_typeid;
111
113#define OR_MAKE_FILE_TYPEID(vendor, camera) ((vendor << 16) | (camera & 0xffff))
115#define OR_GET_FILE_TYPEID_VENDOR(ftypeid) ((ftypeid & 0xffff0000) >> 16)
117#define OR_GET_FILE_TYPEID_CAMERA(ftypeid) (ftypeid & 0xffff)
118
119#ifdef __cplusplus
120}
121#endif
122
123#endif