libopenraw
consts.h
00001 /*
00002  * libopenraw - consts.h
00003  *
00004  * Copyright (c) 2008 Novell, Inc.
00005  * Copyright (C) 2005-2010 Hubert Figuiere
00006  *
00007  * This library is free software: you can redistribute it and/or
00008  * modify it under the terms of the GNU Lesser General Public License
00009  * as published by the Free Software Foundation, either version 3 of
00010  * the License, or (at your option) any later version.
00011  *
00012  * This library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00015  * Lesser General Public License for more details.
00016  *
00017  * You should have received a copy of the GNU Lesser General Public
00018  * License along with this library.  If not, see
00019  * <http://www.gnu.org/licenses/>.
00020  */
00026 #ifndef __LIBOPENRAW_CONSTS_H__
00027 #define __LIBOPENRAW_CONSTS_H__
00028 
00029 #include <stdint.h>
00030 
00031 #ifdef __cplusplus
00032 extern "C" {
00033 #endif
00034 
00035     
00039     typedef enum {
00040         OR_ERROR_NONE = 0,         
00041         OR_ERROR_BUF_TOO_SMALL = 1,
00042         OR_ERROR_NOTAREF = 2,      
00043         OR_ERROR_CANT_OPEN = 3,    
00044         OR_ERROR_CLOSED_STREAM = 4,
00045         OR_ERROR_NOT_FOUND = 5,    
00046         OR_ERROR_INVALID_PARAM = 6,
00047         OR_ERROR_INVALID_FORMAT = 7, 
00048         OR_ERROR_UNKNOWN = 42,
00049         OR_ERROR_LAST_ 
00050     } or_error;
00051 
00052     
00055     typedef enum {
00056         OR_RAWFILE_TYPE_UNKNOWN = 0, 
00057         OR_RAWFILE_TYPE_CR2, 
00058         OR_RAWFILE_TYPE_CRW, 
00059         OR_RAWFILE_TYPE_NEF, 
00060         OR_RAWFILE_TYPE_MRW, 
00061         OR_RAWFILE_TYPE_ARW, 
00062         OR_RAWFILE_TYPE_DNG, 
00063         OR_RAWFILE_TYPE_ORF, 
00064         OR_RAWFILE_TYPE_PEF, 
00065         OR_RAWFILE_TYPE_ERF, 
00066         OR_RAWFILE_TYPE_TIFF 
00067     } or_rawfile_type;
00068 
00069     typedef enum {
00070         OR_DATA_TYPE_NONE = 0,
00071         OR_DATA_TYPE_PIXMAP_8RGB, 
00072         OR_DATA_TYPE_JPEG,        
00073         OR_DATA_TYPE_TIFF,        
00074         OR_DATA_TYPE_PNG,         
00075         OR_DATA_TYPE_CFA,         
00076         OR_DATA_TYPE_COMPRESSED_CFA, 
00078         OR_DATA_TYPE_UNKNOWN
00079     } or_data_type;
00080 
00081     typedef enum {
00082         OR_CFA_PATTERN_NONE = 0,   
00083         OR_CFA_PATTERN_NON_RGB22 = 1,
00084         OR_CFA_PATTERN_RGGB = 2,
00085         OR_CFA_PATTERN_GBRG = 3,
00086         OR_CFA_PATTERN_BGGR = 4,
00087         OR_CFA_PATTERN_GRBG = 5
00088     } or_cfa_pattern;
00089 
00090     typedef enum {
00091         OR_OPTIONS_NONE            = 0x00000000,
00092         OR_OPTIONS_DONT_DECOMPRESS = 0x00000001   
00094     } or_options;
00095 
00096 
00097 
00101     typedef uint32_t or_rawfile_typeid;
00102 
00104     #define OR_MAKE_FILE_TYPEID(vendor,camera) ((vendor << 16) | (camera & 0xffff))
00105 
00106     #define OR_GET_FILE_TYPEID_VENDOR(ftypeid) ((ftypeid & 0xffff0000) >> 16)
00107 
00108     #define OR_GET_FILE_TYPEID_CAMERA(ftypeid) (ftypeid & 0xffff)
00109 
00112     enum {
00113         OR_TYPEID_VENDOR_NONE = 0,
00114         OR_TYPEID_VENDOR_CANON = 1,
00115         OR_TYPEID_VENDOR_NIKON = 2,
00116         OR_TYPEID_VENDOR_LEICA = 3,
00117         OR_TYPEID_VENDOR_PENTAX = 4,
00118         OR_TYPEID_VENDOR_EPSON = 5,
00119         OR_TYPEID_VENDOR_MINOLTA = 6,
00120         OR_TYPEID_VENDOR_OLYMPUS = 7,
00121         OR_TYPEID_VENDOR_SONY = 8,
00122         OR_TYPEID_VENDOR_SAMSUNG = 9,
00123         OR_TYPEID_VENDOR_RICOH = 10,
00124         OR_TYPEID_VENDOR_PANASONIC = 11,
00125         OR_TYPEID_VENDOR_MAMIYA = 12,
00126         /* not really a camera vendor. For the converter. */
00127         OR_TYPEID_VENDOR_ADOBE = 13,
00128         _OR_TYPEID_VENDOR_LAST
00129     };
00130 
00131     enum {
00132         OR_TYPEID_UNKNOWN = 0
00133     };
00134 
00135     enum {
00136         OR_TYPEID_ADOBE_UNKNOWN = 0,
00137         OR_TYPEID_ADOBE_DNG_GENERIC = 1,
00138         _OR_TYPEID_ADOBE_LAST
00139     };
00140 
00142     enum {
00143         OR_TYPEID_CANON_UNKNOWN = 0,
00144         OR_TYPEID_CANON_20D,
00145         OR_TYPEID_CANON_30D,
00146         OR_TYPEID_CANON_40D,
00147         OR_TYPEID_CANON_350D,
00148         OR_TYPEID_CANON_400D,
00149         OR_TYPEID_CANON_450D,
00150         OR_TYPEID_CANON_5D,
00151         OR_TYPEID_CANON_1D,
00152         OR_TYPEID_CANON_1DMKII,
00153         OR_TYPEID_CANON_1DMKIII,
00154         OR_TYPEID_CANON_1DS,
00155         OR_TYPEID_CANON_1DSMKII,
00156         OR_TYPEID_CANON_1DSMKIII,
00157         OR_TYPEID_CANON_300D,
00158         OR_TYPEID_CANON_D30,
00159         OR_TYPEID_CANON_D60,
00160         OR_TYPEID_CANON_10D,
00161         OR_TYPEID_CANON_PRO1,
00162         OR_TYPEID_CANON_G1,
00163         OR_TYPEID_CANON_G2,
00164         OR_TYPEID_CANON_G3,
00165         OR_TYPEID_CANON_G5,
00166         OR_TYPEID_CANON_G6,
00167         OR_TYPEID_CANON_G7,
00168         OR_TYPEID_CANON_G9,
00169         OR_TYPEID_CANON_A610,
00170         OR_TYPEID_CANON_20DA,
00171         OR_TYPEID_CANON_7D,
00172         OR_TYPEID_CANON_G11,
00173         OR_TYPEID_CANON_1DMKIV,
00174         OR_TYPEID_CANON_500D,
00175         OR_TYPEID_CANON_5DMKII,
00176         OR_TYPEID_CANON_550D,
00177         OR_TYPEID_CANON_1000D,
00178         OR_TYPEID_CANON_G10,
00179         OR_TYPEID_CANON_50D,
00180         OR_TYPEID_CANON_60D,
00181         _OR_TYPEID_CANON_LAST
00182     };
00183 
00184 
00186     enum {
00187         OR_TYPEID_NIKON_UNKNOWN = 0,
00188         OR_TYPEID_NIKON_COOLPIX_5700 ,
00189         OR_TYPEID_NIKON_D1,
00190         OR_TYPEID_NIKON_D1X,
00191         OR_TYPEID_NIKON_D100,
00192         OR_TYPEID_NIKON_D2H,
00193         OR_TYPEID_NIKON_D2X,
00194         OR_TYPEID_NIKON_D200,
00195         OR_TYPEID_NIKON_D3,
00196         OR_TYPEID_NIKON_D300,
00197         OR_TYPEID_NIKON_D40,
00198         OR_TYPEID_NIKON_D40X,
00199         OR_TYPEID_NIKON_D50,
00200         OR_TYPEID_NIKON_D70,
00201         OR_TYPEID_NIKON_D70S,
00202         OR_TYPEID_NIKON_D80,
00203         OR_TYPEID_NIKON_D3000,
00204         _OR_TYPEID_NIKON_LAST
00205     };
00206 
00208     enum {
00209         OR_TYPEID_LEICA_UNKNOWN = 0,
00210         OR_TYPEID_LEICA_DMR = 1,
00211         OR_TYPEID_LEICA_M8 = 2,
00212         OR_TYPEID_LEICA_X1 = 3,
00213         _OR_TYPEID_LEICA_LAST
00214     };
00215 
00217     enum {
00218         OR_TYPEID_PENTAX_UNKNOWN = 0,
00219         OR_TYPEID_PENTAX_K10D_PEF,
00220         OR_TYPEID_PENTAX_K10D_DNG,
00221         OR_TYPEID_PENTAX_IST_D,
00222         OR_TYPEID_PENTAX_IST_DL,
00223         OR_TYPEID_PENTAX_K100D_PEF,
00224         OR_TYPEID_PENTAX_K100D_SUPER_PEF,
00225         OR_TYPEID_PENTAX_K20D_PEF
00226     };
00227 
00229     enum {
00230         OR_TYPEID_EPSON_UNKNOWN = 0,
00231         OR_TYPEID_EPSON_RD1
00232     };
00233 
00235     enum {
00236         OR_TYPEID_MINOLTA_UNKNOWN = 0,
00237         OR_TYPEID_MINOLTA_A1,
00238         OR_TYPEID_MINOLTA_A2,
00239         OR_TYPEID_MINOLTA_DIMAGE5,
00240         OR_TYPEID_MINOLTA_DIMAGE7,
00241         OR_TYPEID_MINOLTA_DIMAGE7I,
00242         OR_TYPEID_MINOLTA_DIMAGE7HI,
00243         OR_TYPEID_MINOLTA_MAXXUM_5D,
00244         OR_TYPEID_MINOLTA_MAXXUM_7D,
00245         OR_TYPEID_MINOLTA_A200
00246     };
00247 
00248     enum {
00249         OR_TYPEID_OLYMPUS_UNKNOWN = 0,
00250         OR_TYPEID_OLYMPUS_E1,
00251         OR_TYPEID_OLYMPUS_E10,
00252         OR_TYPEID_OLYMPUS_E3,
00253         OR_TYPEID_OLYMPUS_E300,
00254         OR_TYPEID_OLYMPUS_E330,
00255         OR_TYPEID_OLYMPUS_E400,
00256         OR_TYPEID_OLYMPUS_E410,
00257         OR_TYPEID_OLYMPUS_E500,
00258         OR_TYPEID_OLYMPUS_E510,
00259         OR_TYPEID_OLYMPUS_SP350,
00260         OR_TYPEID_OLYMPUS_SP510,
00261         OR_TYPEID_OLYMPUS_SP550,
00262         OR_TYPEID_OLYMPUS_SP500,
00263         OR_TYPEID_OLYMPUS_EP1,
00264         OR_TYPEID_OLYMPUS_E620
00265     };
00266 
00267     enum {
00268         OR_TYPEID_SAMSUNG_UNKNOWN = 0,
00269         OR_TYPEID_SAMSUNG_GX10,
00270         OR_TYPEID_SAMSUNG_PRO815
00271     };
00272 
00273 
00274     enum {
00275         OR_TYPEID_RICOH_UNKNOWN = 0,
00276         OR_TYPEID_RICOH_GR2 = 1,
00277         OR_TYPEID_RICOH_GXR = 2,
00278         _OR_TYPEID_RICOH_LAST
00279     };
00280 
00281     enum {
00282         OR_TYPEID_SONY_UNKNOWN = 0,
00283         OR_TYPEID_SONY_A100,
00284         OR_TYPEID_SONY_A200,
00285         OR_TYPEID_SONY_A700,
00286         OR_TYPEID_SONY_A550,
00287         _OR_TYPEID_SONY_LAST
00288     };
00289 
00290 #ifdef __cplusplus
00291 }
00292 #endif
00293 
00294 #endif