libopenraw_sys/
ffi_libopenraw.rs

1/* automatically generated by rust-bindgen 0.61.0 */
2
3#[repr(C)]
4#[derive(Debug, Copy, Clone)]
5pub struct _RawFile {
6    _unused: [u8; 0],
7}
8pub type ORRawFileRef = *mut _RawFile;
9#[repr(C)]
10#[derive(Debug, Copy, Clone)]
11pub struct _RawData {
12    _unused: [u8; 0],
13}
14pub type ORRawDataRef = *mut _RawData;
15#[repr(C)]
16#[derive(Debug, Copy, Clone)]
17pub struct _BitmapData {
18    _unused: [u8; 0],
19}
20pub type ORBitmapDataRef = *mut _BitmapData;
21#[repr(C)]
22#[derive(Debug, Copy, Clone)]
23pub struct _Thumbnail {
24    _unused: [u8; 0],
25}
26pub type ORThumbnailRef = *mut _Thumbnail;
27#[repr(C)]
28#[derive(Debug, Copy, Clone)]
29pub struct _IfdDir {
30    _unused: [u8; 0],
31}
32pub type ORIfdDirRef = *mut _IfdDir;
33#[repr(u32)]
34#[doc = " @brief Error codes returned by libopenraw."]
35#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
36pub enum or_error {
37    #[doc = "< no error"]
38    OR_ERROR_NONE = 0,
39    #[doc = "< Buffer is too small."]
40    OR_ERROR_BUF_TOO_SMALL = 1,
41    #[doc = "< The object is not ref"]
42    OR_ERROR_NOTAREF = 2,
43    #[doc = "< Can't open file. Check OS error codes"]
44    OR_ERROR_CANT_OPEN = 3,
45    #[doc = "< Stream closed"]
46    OR_ERROR_CLOSED_STREAM = 4,
47    #[doc = "< Requested \"object\" not found"]
48    OR_ERROR_NOT_FOUND = 5,
49    #[doc = "< Invalid parameter"]
50    OR_ERROR_INVALID_PARAM = 6,
51    #[doc = "< Invalid format"]
52    OR_ERROR_INVALID_FORMAT = 7,
53    #[doc = "< Decompression error"]
54    OR_ERROR_DECOMPRESSION = 8,
55    #[doc = "< Function is not implemented"]
56    OR_ERROR_NOT_IMPLEMENTED = 9,
57    #[doc = "< Stream already open"]
58    OR_ERROR_ALREADY_OPEN = 10,
59    #[doc = "< Unknown error."]
60    OR_ERROR_UNKNOWN = 42,
61    OR_ERROR_LAST_ = 43,
62}
63#[repr(u32)]
64#[doc = " @brief Types of RAW files"]
65#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
66pub enum or_rawfile_type {
67    #[doc = "< no type. Invalid value."]
68    OR_RAWFILE_TYPE_UNKNOWN = 0,
69    #[doc = "< Canon CR2"]
70    OR_RAWFILE_TYPE_CR2 = 1,
71    #[doc = "< Canon CRW"]
72    OR_RAWFILE_TYPE_CRW = 2,
73    #[doc = "< Nikon NEF"]
74    OR_RAWFILE_TYPE_NEF = 3,
75    #[doc = "< Minolta MRW"]
76    OR_RAWFILE_TYPE_MRW = 4,
77    #[doc = "< Sony ARW"]
78    OR_RAWFILE_TYPE_ARW = 5,
79    #[doc = "< Adobe DNG"]
80    OR_RAWFILE_TYPE_DNG = 6,
81    #[doc = "< Olympus ORF"]
82    OR_RAWFILE_TYPE_ORF = 7,
83    #[doc = "< Pentax PEF"]
84    OR_RAWFILE_TYPE_PEF = 8,
85    #[doc = "< Epson ERF"]
86    OR_RAWFILE_TYPE_ERF = 9,
87    #[doc = "< Generic TIFF"]
88    OR_RAWFILE_TYPE_TIFF = 10,
89    #[doc = "< Nikon NRW"]
90    OR_RAWFILE_TYPE_NRW = 11,
91    #[doc = "< Panasonic RAW, RW2 and RWL"]
92    OR_RAWFILE_TYPE_RW2 = 12,
93    #[doc = "< FujiFilm RAF"]
94    OR_RAWFILE_TYPE_RAF = 13,
95    #[doc = "< Canon CR3"]
96    OR_RAWFILE_TYPE_CR3 = 14,
97    #[doc = "< GoPro GPR (DNG-variation)"]
98    OR_RAWFILE_TYPE_GPR = 15,
99    #[doc = "< Sony SR2"]
100    OR_RAWFILE_TYPE_SR2 = 16,
101}
102#[repr(u32)]
103#[doc = " @brief Data types"]
104#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
105pub enum or_data_type {
106    OR_DATA_TYPE_NONE = 0,
107    #[doc = "< 8bit per channel RGB pixmap"]
108    OR_DATA_TYPE_PIXMAP_8RGB = 1,
109    #[doc = "< 16bit per channel RGB pixmap"]
110    OR_DATA_TYPE_PIXMAP_16RGB = 2,
111    #[doc = "< JPEG data"]
112    OR_DATA_TYPE_JPEG = 3,
113    #[doc = "< TIFF container"]
114    OR_DATA_TYPE_TIFF = 4,
115    #[doc = "< PNG container"]
116    OR_DATA_TYPE_PNG = 5,
117    #[doc = "< RAW container"]
118    OR_DATA_TYPE_RAW = 6,
119    #[doc = "< compressed RAW container"]
120    OR_DATA_TYPE_COMPRESSED_RAW = 7,
121    OR_DATA_TYPE_UNKNOWN = 8,
122}
123#[repr(u32)]
124#[doc = " @brief CFA pattern types"]
125#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
126pub enum or_cfa_pattern {
127    #[doc = "< Invalid value"]
128    OR_CFA_PATTERN_NONE = 0,
129    #[doc = "< Non RGB 2x2 CFA"]
130    OR_CFA_PATTERN_NON_RGB22 = 1,
131    OR_CFA_PATTERN_RGGB = 2,
132    OR_CFA_PATTERN_GBRG = 3,
133    OR_CFA_PATTERN_BGGR = 4,
134    OR_CFA_PATTERN_GRBG = 5,
135    _OR_CFA_PATTERN_INVALID = 6,
136}
137#[repr(u32)]
138#[doc = " @brief CFA colour components"]
139#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
140pub enum or_cfa_pattern_colour {
141    #[doc = "< Red"]
142    OR_PATTERN_COLOUR_RED = 0,
143    #[doc = "< Green"]
144    OR_PATTERN_COLOUR_GREEN = 1,
145    OR_PATTERN_COLOUR_BLUE = 2,
146}
147#[repr(u32)]
148#[doc = " @brief Options"]
149#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
150pub enum or_options {
151    #[doc = "< No options"]
152    OR_OPTIONS_NONE = 0,
153    #[doc = "< Don't decompress"]
154    OR_OPTIONS_DONT_DECOMPRESS = 1,
155}
156#[repr(u32)]
157#[doc = " @brief Where the colour matrix comes from."]
158#[doc = " Typically DNG is provided. The others are built-in."]
159#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
160pub enum or_colour_matrix_origin {
161    #[doc = "< Unknown. This usually signify an error"]
162    OR_COLOUR_MATRIX_UNKNOWN = 0,
163    #[doc = "< Colour matrix in library"]
164    OR_COLOUR_MATRIX_BUILTIN = 1,
165    #[doc = "< Colour matrix provided by file"]
166    OR_COLOUR_MATRIX_PROVIDED = 2,
167}
168#[doc = " @brief This is the type ID, a combination of vendor model"]
169#[doc = "  It maps a specific camera. Only for the NATIVE file format."]
170pub type or_rawfile_typeid = u32;
171#[repr(u32)]
172#[doc = " @brief Type of IfdDir"]
173#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
174pub enum or_ifd_dir_type {
175    #[doc = " Generic"]
176    OR_IFD_OTHER = 0,
177    #[doc = " Main (like in TIFF)"]
178    OR_IFD_MAIN = 1,
179    #[doc = " Exif metadata"]
180    OR_IFD_EXIF = 2,
181    #[doc = " MakerNote"]
182    OR_IFD_MNOTE = 3,
183    #[doc = " RAW data"]
184    OR_IFD_RAW = 4,
185    #[doc = " SubIFD"]
186    OR_IFD_SUBIFD = 5,
187    #[doc = " INVALID value"]
188    OR_IFD_INVALID = 10000,
189}
190pub const _OR_TYPE_ID_VENDOR_OR_TYPEID_VENDOR_NONE: _OR_TYPE_ID_VENDOR = 0;
191pub const _OR_TYPE_ID_VENDOR_OR_TYPEID_VENDOR_CANON: _OR_TYPE_ID_VENDOR = 1;
192pub const _OR_TYPE_ID_VENDOR_OR_TYPEID_VENDOR_NIKON: _OR_TYPE_ID_VENDOR = 2;
193pub const _OR_TYPE_ID_VENDOR_OR_TYPEID_VENDOR_LEICA: _OR_TYPE_ID_VENDOR = 3;
194pub const _OR_TYPE_ID_VENDOR_OR_TYPEID_VENDOR_PENTAX: _OR_TYPE_ID_VENDOR = 4;
195pub const _OR_TYPE_ID_VENDOR_OR_TYPEID_VENDOR_EPSON: _OR_TYPE_ID_VENDOR = 5;
196pub const _OR_TYPE_ID_VENDOR_OR_TYPEID_VENDOR_MINOLTA: _OR_TYPE_ID_VENDOR = 6;
197pub const _OR_TYPE_ID_VENDOR_OR_TYPEID_VENDOR_OLYMPUS: _OR_TYPE_ID_VENDOR = 7;
198pub const _OR_TYPE_ID_VENDOR_OR_TYPEID_VENDOR_SONY: _OR_TYPE_ID_VENDOR = 8;
199pub const _OR_TYPE_ID_VENDOR_OR_TYPEID_VENDOR_SAMSUNG: _OR_TYPE_ID_VENDOR = 9;
200pub const _OR_TYPE_ID_VENDOR_OR_TYPEID_VENDOR_RICOH: _OR_TYPE_ID_VENDOR = 10;
201pub const _OR_TYPE_ID_VENDOR_OR_TYPEID_VENDOR_PANASONIC: _OR_TYPE_ID_VENDOR = 11;
202pub const _OR_TYPE_ID_VENDOR_OR_TYPEID_VENDOR_MAMIYA: _OR_TYPE_ID_VENDOR = 12;
203#[doc = "< Generic DNG files."]
204pub const _OR_TYPE_ID_VENDOR_OR_TYPEID_VENDOR_ADOBE: _OR_TYPE_ID_VENDOR = 13;
205pub const _OR_TYPE_ID_VENDOR_OR_TYPEID_VENDOR_FUJIFILM: _OR_TYPE_ID_VENDOR = 14;
206pub const _OR_TYPE_ID_VENDOR_OR_TYPEID_VENDOR_BLACKMAGIC: _OR_TYPE_ID_VENDOR = 15;
207pub const _OR_TYPE_ID_VENDOR_OR_TYPEID_VENDOR_XIAOYI: _OR_TYPE_ID_VENDOR = 16;
208pub const _OR_TYPE_ID_VENDOR_OR_TYPEID_VENDOR_APPLE: _OR_TYPE_ID_VENDOR = 17;
209pub const _OR_TYPE_ID_VENDOR_OR_TYPEID_VENDOR_SIGMA: _OR_TYPE_ID_VENDOR = 18;
210pub const _OR_TYPE_ID_VENDOR_OR_TYPEID_VENDOR_GOPRO: _OR_TYPE_ID_VENDOR = 19;
211pub const _OR_TYPE_ID_VENDOR_OR_TYPEID_VENDOR_HASSELBLAD: _OR_TYPE_ID_VENDOR = 20;
212pub const _OR_TYPE_ID_VENDOR_OR_TYPEID_VENDOR_ZEISS: _OR_TYPE_ID_VENDOR = 21;
213pub const _OR_TYPE_ID_VENDOR_OR_TYPEID_VENDOR_DJI: _OR_TYPE_ID_VENDOR = 22;
214pub const _OR_TYPE_ID_VENDOR__OR_TYPEID_VENDOR_LAST: _OR_TYPE_ID_VENDOR = 23;
215#[doc = " @brief The vendor ID: the high order 16-bits of the or_rawfile_typeid"]
216pub type _OR_TYPE_ID_VENDOR = ::std::os::raw::c_uint;
217#[repr(u32)]
218#[doc = " @brief Adobe type ID"]
219#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
220pub enum _OR_TYPEID_VENDOR_ADOBE {
221    OR_TYPEID_ADOBE_UNKNOWN = 0,
222    #[doc = "< Generic DNG file."]
223    OR_TYPEID_ADOBE_DNG_GENERIC = 1,
224    _OR_TYPEID_ADOBE_LAST = 2,
225}
226impl _OR_TYPEID_VENDOR_CANON {
227    pub const OR_TYPEID_CANON_REBEL_XT: _OR_TYPEID_VENDOR_CANON =
228        _OR_TYPEID_VENDOR_CANON::OR_TYPEID_CANON_350D;
229}
230impl _OR_TYPEID_VENDOR_CANON {
231    pub const OR_TYPEID_CANON_KISS_DIGITAL_N: _OR_TYPEID_VENDOR_CANON =
232        _OR_TYPEID_VENDOR_CANON::OR_TYPEID_CANON_350D;
233}
234impl _OR_TYPEID_VENDOR_CANON {
235    pub const OR_TYPEID_CANON_REBEL_XTI: _OR_TYPEID_VENDOR_CANON =
236        _OR_TYPEID_VENDOR_CANON::OR_TYPEID_CANON_400D;
237}
238impl _OR_TYPEID_VENDOR_CANON {
239    pub const OR_TYPEID_CANON_KISS_DIGITAL_X: _OR_TYPEID_VENDOR_CANON =
240        _OR_TYPEID_VENDOR_CANON::OR_TYPEID_CANON_400D;
241}
242impl _OR_TYPEID_VENDOR_CANON {
243    pub const OR_TYPEID_CANON_REBEL_XSI: _OR_TYPEID_VENDOR_CANON =
244        _OR_TYPEID_VENDOR_CANON::OR_TYPEID_CANON_450D;
245}
246impl _OR_TYPEID_VENDOR_CANON {
247    pub const OR_TYPEID_CANON_KISS_X2: _OR_TYPEID_VENDOR_CANON =
248        _OR_TYPEID_VENDOR_CANON::OR_TYPEID_CANON_450D;
249}
250impl _OR_TYPEID_VENDOR_CANON {
251    pub const OR_TYPEID_CANON_DIGITAL_REBEL: _OR_TYPEID_VENDOR_CANON =
252        _OR_TYPEID_VENDOR_CANON::OR_TYPEID_CANON_300D;
253}
254impl _OR_TYPEID_VENDOR_CANON {
255    pub const OR_TYPEID_CANON_REBEL_T1I: _OR_TYPEID_VENDOR_CANON =
256        _OR_TYPEID_VENDOR_CANON::OR_TYPEID_CANON_500D;
257}
258impl _OR_TYPEID_VENDOR_CANON {
259    pub const OR_TYPEID_CANON_KISS_X3: _OR_TYPEID_VENDOR_CANON =
260        _OR_TYPEID_VENDOR_CANON::OR_TYPEID_CANON_500D;
261}
262impl _OR_TYPEID_VENDOR_CANON {
263    pub const OR_TYPEID_CANON_REBEL_T2I: _OR_TYPEID_VENDOR_CANON =
264        _OR_TYPEID_VENDOR_CANON::OR_TYPEID_CANON_550D;
265}
266impl _OR_TYPEID_VENDOR_CANON {
267    pub const OR_TYPEID_CANON_KISS_X4: _OR_TYPEID_VENDOR_CANON =
268        _OR_TYPEID_VENDOR_CANON::OR_TYPEID_CANON_550D;
269}
270impl _OR_TYPEID_VENDOR_CANON {
271    pub const OR_TYPEID_CANON_REBEL_XS: _OR_TYPEID_VENDOR_CANON =
272        _OR_TYPEID_VENDOR_CANON::OR_TYPEID_CANON_1000D;
273}
274impl _OR_TYPEID_VENDOR_CANON {
275    pub const OR_TYPEID_CANON_KISS_F: _OR_TYPEID_VENDOR_CANON =
276        _OR_TYPEID_VENDOR_CANON::OR_TYPEID_CANON_1000D;
277}
278impl _OR_TYPEID_VENDOR_CANON {
279    pub const OR_TYPEID_CANON_60D: _OR_TYPEID_VENDOR_CANON =
280        _OR_TYPEID_VENDOR_CANON::OR_TYPEID_CANON_50D;
281}
282impl _OR_TYPEID_VENDOR_CANON {
283    pub const OR_TYPEID_CANON_REBEL_T3I: _OR_TYPEID_VENDOR_CANON =
284        _OR_TYPEID_VENDOR_CANON::OR_TYPEID_CANON_600D;
285}
286impl _OR_TYPEID_VENDOR_CANON {
287    pub const OR_TYPEID_CANON_KISS_X5: _OR_TYPEID_VENDOR_CANON =
288        _OR_TYPEID_VENDOR_CANON::OR_TYPEID_CANON_600D;
289}
290impl _OR_TYPEID_VENDOR_CANON {
291    pub const OR_TYPEID_CANON_REBEL_T3: _OR_TYPEID_VENDOR_CANON =
292        _OR_TYPEID_VENDOR_CANON::OR_TYPEID_CANON_1100D;
293}
294impl _OR_TYPEID_VENDOR_CANON {
295    pub const OR_TYPEID_CANON_KISS_X50: _OR_TYPEID_VENDOR_CANON =
296        _OR_TYPEID_VENDOR_CANON::OR_TYPEID_CANON_1100D;
297}
298impl _OR_TYPEID_VENDOR_CANON {
299    pub const OR_TYPEID_CANON_REBEL_T4I: _OR_TYPEID_VENDOR_CANON =
300        _OR_TYPEID_VENDOR_CANON::OR_TYPEID_CANON_650D;
301}
302impl _OR_TYPEID_VENDOR_CANON {
303    pub const OR_TYPEID_CANON_KISS_X6I: _OR_TYPEID_VENDOR_CANON =
304        _OR_TYPEID_VENDOR_CANON::OR_TYPEID_CANON_650D;
305}
306impl _OR_TYPEID_VENDOR_CANON {
307    pub const OR_TYPEID_CANON_REBEL_SL1: _OR_TYPEID_VENDOR_CANON =
308        _OR_TYPEID_VENDOR_CANON::OR_TYPEID_CANON_100D;
309}
310impl _OR_TYPEID_VENDOR_CANON {
311    pub const OR_TYPEID_CANON_KISS_X7: _OR_TYPEID_VENDOR_CANON =
312        _OR_TYPEID_VENDOR_CANON::OR_TYPEID_CANON_100D;
313}
314impl _OR_TYPEID_VENDOR_CANON {
315    pub const OR_TYPEID_CANON_REBEL_T5I: _OR_TYPEID_VENDOR_CANON =
316        _OR_TYPEID_VENDOR_CANON::OR_TYPEID_CANON_700D;
317}
318impl _OR_TYPEID_VENDOR_CANON {
319    pub const OR_TYPEID_CANON_KISS_X7I: _OR_TYPEID_VENDOR_CANON =
320        _OR_TYPEID_VENDOR_CANON::OR_TYPEID_CANON_700D;
321}
322impl _OR_TYPEID_VENDOR_CANON {
323    pub const OR_TYPEID_CANON_REBEL_T6I: _OR_TYPEID_VENDOR_CANON =
324        _OR_TYPEID_VENDOR_CANON::OR_TYPEID_CANON_750D;
325}
326impl _OR_TYPEID_VENDOR_CANON {
327    pub const OR_TYPEID_CANON_KISS_X8I: _OR_TYPEID_VENDOR_CANON =
328        _OR_TYPEID_VENDOR_CANON::OR_TYPEID_CANON_750D;
329}
330impl _OR_TYPEID_VENDOR_CANON {
331    pub const OR_TYPEID_CANON_REBEL_T6S: _OR_TYPEID_VENDOR_CANON =
332        _OR_TYPEID_VENDOR_CANON::OR_TYPEID_CANON_760D;
333}
334impl _OR_TYPEID_VENDOR_CANON {
335    pub const OR_TYPEID_CANON_8000D: _OR_TYPEID_VENDOR_CANON =
336        _OR_TYPEID_VENDOR_CANON::OR_TYPEID_CANON_760D;
337}
338impl _OR_TYPEID_VENDOR_CANON {
339    pub const OR_TYPEID_CANON_REBEL_T6: _OR_TYPEID_VENDOR_CANON =
340        _OR_TYPEID_VENDOR_CANON::OR_TYPEID_CANON_1300D;
341}
342impl _OR_TYPEID_VENDOR_CANON {
343    pub const OR_TYPEID_CANON_KISS_X80: _OR_TYPEID_VENDOR_CANON =
344        _OR_TYPEID_VENDOR_CANON::OR_TYPEID_CANON_1300D;
345}
346impl _OR_TYPEID_VENDOR_CANON {
347    pub const OR_TYPEID_CANON_REBEL_T5: _OR_TYPEID_VENDOR_CANON =
348        _OR_TYPEID_VENDOR_CANON::OR_TYPEID_CANON_1200D;
349}
350impl _OR_TYPEID_VENDOR_CANON {
351    pub const OR_TYPEID_CANON_KISS_X70: _OR_TYPEID_VENDOR_CANON =
352        _OR_TYPEID_VENDOR_CANON::OR_TYPEID_CANON_1200D;
353}
354impl _OR_TYPEID_VENDOR_CANON {
355    pub const OR_TYPEID_CANON_REBEL_T7I: _OR_TYPEID_VENDOR_CANON =
356        _OR_TYPEID_VENDOR_CANON::OR_TYPEID_CANON_800D;
357}
358impl _OR_TYPEID_VENDOR_CANON {
359    pub const OR_TYPEID_CANON_KISS_X9I: _OR_TYPEID_VENDOR_CANON =
360        _OR_TYPEID_VENDOR_CANON::OR_TYPEID_CANON_800D;
361}
362impl _OR_TYPEID_VENDOR_CANON {
363    pub const OR_TYPEID_CANON_9000D: _OR_TYPEID_VENDOR_CANON =
364        _OR_TYPEID_VENDOR_CANON::OR_TYPEID_CANON_77D;
365}
366impl _OR_TYPEID_VENDOR_CANON {
367    pub const OR_TYPEID_CANON_REBEL_SL2: _OR_TYPEID_VENDOR_CANON =
368        _OR_TYPEID_VENDOR_CANON::OR_TYPEID_CANON_200D;
369}
370impl _OR_TYPEID_VENDOR_CANON {
371    pub const OR_TYPEID_CANON_KISS_X9: _OR_TYPEID_VENDOR_CANON =
372        _OR_TYPEID_VENDOR_CANON::OR_TYPEID_CANON_200D;
373}
374impl _OR_TYPEID_VENDOR_CANON {
375    pub const OR_TYPEID_CANON_KISS_M: _OR_TYPEID_VENDOR_CANON =
376        _OR_TYPEID_VENDOR_CANON::OR_TYPEID_CANON_EOS_M50;
377}
378impl _OR_TYPEID_VENDOR_CANON {
379    pub const OR_TYPEID_CANON_REBEL_T7: _OR_TYPEID_VENDOR_CANON =
380        _OR_TYPEID_VENDOR_CANON::OR_TYPEID_CANON_2000D;
381}
382impl _OR_TYPEID_VENDOR_CANON {
383    pub const OR_TYPEID_CANON_KISS_X90: _OR_TYPEID_VENDOR_CANON =
384        _OR_TYPEID_VENDOR_CANON::OR_TYPEID_CANON_2000D;
385}
386impl _OR_TYPEID_VENDOR_CANON {
387    pub const OR_TYPEID_CANON_T100: _OR_TYPEID_VENDOR_CANON =
388        _OR_TYPEID_VENDOR_CANON::OR_TYPEID_CANON_3000D;
389}
390impl _OR_TYPEID_VENDOR_CANON {
391    pub const OR_TYPEID_CANON_4000D: _OR_TYPEID_VENDOR_CANON =
392        _OR_TYPEID_VENDOR_CANON::OR_TYPEID_CANON_3000D;
393}
394impl _OR_TYPEID_VENDOR_CANON {
395    pub const OR_TYPEID_CANON_REBEL_SL3: _OR_TYPEID_VENDOR_CANON =
396        _OR_TYPEID_VENDOR_CANON::OR_TYPEID_CANON_250D;
397}
398impl _OR_TYPEID_VENDOR_CANON {
399    pub const OR_TYPEID_CANON_KISS_X10: _OR_TYPEID_VENDOR_CANON =
400        _OR_TYPEID_VENDOR_CANON::OR_TYPEID_CANON_250D;
401}
402impl _OR_TYPEID_VENDOR_CANON {
403    pub const OR_TYPEID_CANON_200D_MKII: _OR_TYPEID_VENDOR_CANON =
404        _OR_TYPEID_VENDOR_CANON::OR_TYPEID_CANON_250D;
405}
406impl _OR_TYPEID_VENDOR_CANON {
407    pub const OR_TYPEID_CANON_REBEL_T8I: _OR_TYPEID_VENDOR_CANON =
408        _OR_TYPEID_VENDOR_CANON::OR_TYPEID_CANON_850D;
409}
410impl _OR_TYPEID_VENDOR_CANON {
411    pub const OR_TYPEID_CANON_KISS_X10I: _OR_TYPEID_VENDOR_CANON =
412        _OR_TYPEID_VENDOR_CANON::OR_TYPEID_CANON_850D;
413}
414impl _OR_TYPEID_VENDOR_CANON {
415    pub const OR_TYPEID_CANON_KISS_M2: _OR_TYPEID_VENDOR_CANON =
416        _OR_TYPEID_VENDOR_CANON::OR_TYPEID_CANON_EOS_M50MKII;
417}
418#[repr(u32)]
419#[doc = " @brief Canon type IDs"]
420#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
421pub enum _OR_TYPEID_VENDOR_CANON {
422    OR_TYPEID_CANON_UNKNOWN = 0,
423    OR_TYPEID_CANON_20D = 1,
424    OR_TYPEID_CANON_30D = 2,
425    OR_TYPEID_CANON_40D = 3,
426    OR_TYPEID_CANON_350D = 4,
427    OR_TYPEID_CANON_400D = 5,
428    OR_TYPEID_CANON_450D = 6,
429    OR_TYPEID_CANON_5D = 7,
430    OR_TYPEID_CANON_1D = 8,
431    OR_TYPEID_CANON_1DMKII = 9,
432    OR_TYPEID_CANON_1DMKIII = 10,
433    OR_TYPEID_CANON_1DS = 11,
434    OR_TYPEID_CANON_1DSMKII = 12,
435    OR_TYPEID_CANON_1DSMKIII = 13,
436    OR_TYPEID_CANON_300D = 14,
437    OR_TYPEID_CANON_D30 = 15,
438    OR_TYPEID_CANON_D60 = 16,
439    OR_TYPEID_CANON_10D = 17,
440    OR_TYPEID_CANON_PRO1 = 18,
441    OR_TYPEID_CANON_G1 = 19,
442    OR_TYPEID_CANON_G2 = 20,
443    OR_TYPEID_CANON_G3 = 21,
444    OR_TYPEID_CANON_G5 = 22,
445    OR_TYPEID_CANON_G6 = 23,
446    OR_TYPEID_CANON_G7 = 24,
447    OR_TYPEID_CANON_G9 = 25,
448    OR_TYPEID_CANON_A610 = 26,
449    OR_TYPEID_CANON_20DA = 27,
450    OR_TYPEID_CANON_7D = 28,
451    OR_TYPEID_CANON_G11 = 29,
452    OR_TYPEID_CANON_1DMKIV = 30,
453    OR_TYPEID_CANON_500D = 31,
454    OR_TYPEID_CANON_5DMKII = 32,
455    OR_TYPEID_CANON_550D = 33,
456    OR_TYPEID_CANON_1000D = 34,
457    OR_TYPEID_CANON_G10 = 35,
458    OR_TYPEID_CANON_50D = 36,
459    OR_TYPEID_CANON_S90 = 37,
460    OR_TYPEID_CANON_G12 = 38,
461    OR_TYPEID_CANON_S95 = 39,
462    OR_TYPEID_CANON_600D = 40,
463    OR_TYPEID_CANON_1100D = 41,
464    OR_TYPEID_CANON_G1X = 42,
465    OR_TYPEID_CANON_S100 = 43,
466    OR_TYPEID_CANON_5DMKIII = 44,
467    OR_TYPEID_CANON_1DX = 45,
468    OR_TYPEID_CANON_60Da = 46,
469    OR_TYPEID_CANON_650D = 47,
470    OR_TYPEID_CANON_G15 = 48,
471    OR_TYPEID_CANON_6D = 49,
472    OR_TYPEID_CANON_EOS_M = 50,
473    OR_TYPEID_CANON_SX50_HS = 51,
474    OR_TYPEID_CANON_S110 = 52,
475    OR_TYPEID_CANON_100D = 53,
476    OR_TYPEID_CANON_700D = 54,
477    OR_TYPEID_CANON_G16 = 55,
478    OR_TYPEID_CANON_70D = 56,
479    OR_TYPEID_CANON_7DMKII = 57,
480    OR_TYPEID_CANON_G7X = 58,
481    OR_TYPEID_CANON_G1XMKII = 59,
482    OR_TYPEID_CANON_750D = 60,
483    OR_TYPEID_CANON_760D = 61,
484    OR_TYPEID_CANON_5DS_R = 62,
485    OR_TYPEID_CANON_G3X = 63,
486    OR_TYPEID_CANON_G9XMKII = 64,
487    OR_TYPEID_CANON_5DMKIV = 65,
488    OR_TYPEID_CANON_EOS_M5 = 66,
489    OR_TYPEID_CANON_G5X = 67,
490    OR_TYPEID_CANON_G7XMKII = 68,
491    OR_TYPEID_CANON_1300D = 69,
492    OR_TYPEID_CANON_EOS_M3 = 70,
493    OR_TYPEID_CANON_1DXMKII = 71,
494    OR_TYPEID_CANON_80D = 72,
495    OR_TYPEID_CANON_1200D = 73,
496    OR_TYPEID_CANON_G9X = 74,
497    OR_TYPEID_CANON_EOS_M10 = 75,
498    OR_TYPEID_CANON_800D = 76,
499    OR_TYPEID_CANON_77D = 77,
500    OR_TYPEID_CANON_EOS_M6 = 78,
501    OR_TYPEID_CANON_EOS_M100 = 79,
502    OR_TYPEID_CANON_6DMKII = 80,
503    OR_TYPEID_CANON_200D = 81,
504    OR_TYPEID_CANON_G1XMKIII = 82,
505    OR_TYPEID_CANON_5DS = 83,
506    OR_TYPEID_CANON_EOS_M50 = 84,
507    OR_TYPEID_CANON_SX1_IS = 85,
508    OR_TYPEID_CANON_S120 = 86,
509    OR_TYPEID_CANON_SX60_HS = 87,
510    OR_TYPEID_CANON_2000D = 88,
511    OR_TYPEID_CANON_EOS_R = 89,
512    OR_TYPEID_CANON_3000D = 90,
513    OR_TYPEID_CANON_1DMKIIN = 91,
514    OR_TYPEID_CANON_SX70_HS = 92,
515    OR_TYPEID_CANON_EOS_RP = 93,
516    OR_TYPEID_CANON_250D = 94,
517    OR_TYPEID_CANON_G7XMKIII = 95,
518    OR_TYPEID_CANON_G5XMKII = 96,
519    OR_TYPEID_CANON_EOS_M6MKII = 97,
520    OR_TYPEID_CANON_90D = 98,
521    OR_TYPEID_CANON_EOS_M200 = 99,
522    OR_TYPEID_CANON_1DXMKIII = 100,
523    OR_TYPEID_CANON_EOS_R5 = 101,
524    OR_TYPEID_CANON_EOS_R6 = 102,
525    OR_TYPEID_CANON_S30 = 103,
526    OR_TYPEID_CANON_S40 = 104,
527    OR_TYPEID_CANON_S45 = 105,
528    OR_TYPEID_CANON_S50 = 106,
529    OR_TYPEID_CANON_S60 = 107,
530    OR_TYPEID_CANON_S70 = 108,
531    OR_TYPEID_CANON_S100V = 109,
532    OR_TYPEID_CANON_PRO70 = 110,
533    OR_TYPEID_CANON_PRO90 = 111,
534    OR_TYPEID_CANON_850D = 112,
535    OR_TYPEID_CANON_EOS_M2 = 113,
536    OR_TYPEID_CANON_EOS_M50MKII = 114,
537    OR_TYPEID_CANON_EOS_R3 = 115,
538    OR_TYPEID_CANON_EOS_R7 = 116,
539    OR_TYPEID_CANON_EOS_R10 = 117,
540    OR_TYPEID_CANON_EOS_R6MKII = 118,
541    _OR_TYPEID_CANON_LAST = 119,
542}
543#[repr(u32)]
544#[doc = " @brief Nikon type IDs"]
545#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
546pub enum _OR_TYPEID_VENDOR_NIKON {
547    OR_TYPEID_NIKON_UNKNOWN = 0,
548    OR_TYPEID_NIKON_E5700 = 1,
549    OR_TYPEID_NIKON_D1 = 2,
550    OR_TYPEID_NIKON_D1X = 3,
551    OR_TYPEID_NIKON_D100 = 4,
552    OR_TYPEID_NIKON_D2H = 5,
553    OR_TYPEID_NIKON_D2X = 6,
554    OR_TYPEID_NIKON_D200 = 7,
555    OR_TYPEID_NIKON_D3 = 8,
556    OR_TYPEID_NIKON_D300 = 9,
557    OR_TYPEID_NIKON_D40 = 10,
558    OR_TYPEID_NIKON_D40X = 11,
559    OR_TYPEID_NIKON_D50 = 12,
560    OR_TYPEID_NIKON_D70 = 13,
561    OR_TYPEID_NIKON_D70S = 14,
562    OR_TYPEID_NIKON_D80 = 15,
563    OR_TYPEID_NIKON_D3000 = 16,
564    OR_TYPEID_NIKON_COOLPIX_P6000 = 17,
565    OR_TYPEID_NIKON_COOLPIX_P7000 = 18,
566    OR_TYPEID_NIKON_D7000 = 19,
567    OR_TYPEID_NIKON_D3100 = 20,
568    OR_TYPEID_NIKON_1_J1 = 21,
569    OR_TYPEID_NIKON_1_V1 = 22,
570    OR_TYPEID_NIKON_COOLPIX_P7100 = 23,
571    OR_TYPEID_NIKON_D5000 = 24,
572    OR_TYPEID_NIKON_D5100 = 25,
573    OR_TYPEID_NIKON_D4 = 26,
574    OR_TYPEID_NIKON_D3S = 27,
575    OR_TYPEID_NIKON_D3X = 28,
576    OR_TYPEID_NIKON_D300S = 29,
577    OR_TYPEID_NIKON_D3200 = 30,
578    OR_TYPEID_NIKON_D700 = 31,
579    OR_TYPEID_NIKON_D800 = 32,
580    OR_TYPEID_NIKON_D800E = 33,
581    OR_TYPEID_NIKON_D90 = 34,
582    OR_TYPEID_NIKON_D600 = 35,
583    OR_TYPEID_NIKON_COOLPIX_P7700 = 36,
584    OR_TYPEID_NIKON_1_V2 = 37,
585    OR_TYPEID_NIKON_D5200 = 38,
586    OR_TYPEID_NIKON_D7100 = 39,
587    OR_TYPEID_NIKON_COOLPIX_A = 40,
588    OR_TYPEID_NIKON_1_J2 = 41,
589    OR_TYPEID_NIKON_1_J3 = 42,
590    OR_TYPEID_NIKON_1_S1 = 43,
591    OR_TYPEID_NIKON_D60 = 44,
592    OR_TYPEID_NIKON_DF = 45,
593    OR_TYPEID_NIKON_E5400 = 46,
594    OR_TYPEID_NIKON_E8400 = 47,
595    OR_TYPEID_NIKON_D4S = 48,
596    OR_TYPEID_NIKON_D610 = 49,
597    OR_TYPEID_NIKON_D750 = 50,
598    OR_TYPEID_NIKON_1_J5 = 51,
599    OR_TYPEID_NIKON_1_V3 = 52,
600    OR_TYPEID_NIKON_D7200 = 53,
601    OR_TYPEID_NIKON_D5300 = 54,
602    OR_TYPEID_NIKON_D5500 = 55,
603    OR_TYPEID_NIKON_D3300 = 56,
604    OR_TYPEID_NIKON_D810 = 57,
605    OR_TYPEID_NIKON_D5600 = 58,
606    OR_TYPEID_NIKON_D3400 = 59,
607    OR_TYPEID_NIKON_D5 = 60,
608    OR_TYPEID_NIKON_D500 = 61,
609    OR_TYPEID_NIKON_1_AW1 = 62,
610    OR_TYPEID_NIKON_1_S2 = 63,
611    OR_TYPEID_NIKON_1_J4 = 64,
612    OR_TYPEID_NIKON_COOLPIX_B700 = 65,
613    OR_TYPEID_NIKON_COOLPIX_P330 = 66,
614    OR_TYPEID_NIKON_COOLPIX_P340 = 67,
615    OR_TYPEID_NIKON_Z6 = 68,
616    OR_TYPEID_NIKON_Z7 = 69,
617    OR_TYPEID_NIKON_COOLPIX_P1000 = 70,
618    OR_TYPEID_NIKON_E8800 = 71,
619    OR_TYPEID_NIKON_D3500 = 72,
620    OR_TYPEID_NIKON_D2HS = 73,
621    OR_TYPEID_NIKON_D2XS = 74,
622    OR_TYPEID_NIKON_COOLPIX_A1000 = 75,
623    OR_TYPEID_NIKON_D780 = 76,
624    OR_TYPEID_NIKON_Z50 = 77,
625    OR_TYPEID_NIKON_COOLPIX_P950 = 78,
626    OR_TYPEID_NIKON_D6 = 79,
627    OR_TYPEID_NIKON_Z5 = 80,
628    OR_TYPEID_NIKON_Z6_2 = 81,
629    OR_TYPEID_NIKON_Z7_2 = 82,
630    OR_TYPEID_NIKON_ZFC = 83,
631    OR_TYPEID_NIKON_Z9 = 84,
632    OR_TYPEID_NIKON_D1H = 85,
633    OR_TYPEID_NIKON_D7500 = 86,
634    OR_TYPEID_NIKON_D850 = 87,
635    OR_TYPEID_NIKON_COOLPIX_P7800 = 88,
636    OR_TYPEID_NIKON_Z30 = 89,
637    _OR_TYPEID_NIKON_LAST = 90,
638}
639#[repr(u32)]
640#[doc = " @brief Leica type IDs"]
641#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
642pub enum _OR_TYPEID_VENDOR_LEICA {
643    OR_TYPEID_LEICA_UNKNOWN = 0,
644    OR_TYPEID_LEICA_DMR = 1,
645    OR_TYPEID_LEICA_M8 = 2,
646    OR_TYPEID_LEICA_X1 = 3,
647    OR_TYPEID_LEICA_DIGILUX2 = 4,
648    OR_TYPEID_LEICA_DLUX_3 = 5,
649    OR_TYPEID_LEICA_VLUX_1 = 6,
650    OR_TYPEID_LEICA_M9 = 7,
651    OR_TYPEID_LEICA_S2 = 8,
652    OR_TYPEID_LEICA_M_MONOCHROM = 9,
653    OR_TYPEID_LEICA_X2 = 10,
654    OR_TYPEID_LEICA_M_TYP240 = 11,
655    OR_TYPEID_LEICA_X_VARIO = 12,
656    OR_TYPEID_LEICA_T_TYP701 = 13,
657    OR_TYPEID_LEICA_Q_TYP116 = 14,
658    OR_TYPEID_LEICA_X_TYP113 = 15,
659    OR_TYPEID_LEICA_M10 = 16,
660    OR_TYPEID_LEICA_SL_TYP601 = 17,
661    OR_TYPEID_LEICA_DLUX_TYP109 = 18,
662    OR_TYPEID_LEICA_VLUX_4 = 19,
663    OR_TYPEID_LEICA_CL = 20,
664    OR_TYPEID_LEICA_VLUX_TYP114 = 21,
665    OR_TYPEID_LEICA_CLUX = 22,
666    OR_TYPEID_LEICA_M10P = 23,
667    OR_TYPEID_LEICA_M10D = 24,
668    OR_TYPEID_LEICA_TL2 = 25,
669    OR_TYPEID_LEICA_DLUX_5 = 26,
670    OR_TYPEID_LEICA_DLUX_7 = 27,
671    OR_TYPEID_LEICA_C_TYP112 = 28,
672    OR_TYPEID_LEICA_VLUX_5 = 29,
673    OR_TYPEID_LEICA_Q2 = 30,
674    OR_TYPEID_LEICA_SL2 = 31,
675    OR_TYPEID_LEICA_M10_MONOCHROM = 32,
676    OR_TYPEID_LEICA_M10R = 33,
677    OR_TYPEID_LEICA_M_MONOCHROM_TYP246 = 34,
678    OR_TYPEID_LEICA_DLUX_4 = 35,
679    OR_TYPEID_LEICA_SL2S = 36,
680    OR_TYPEID_LEICA_Q2_MONOCHROM = 37,
681    OR_TYPEID_LEICA_M11 = 38,
682    OR_TYPEID_LEICA_DIGILUX3 = 39,
683    OR_TYPEID_LEICA_DLUX_6 = 40,
684    _OR_TYPEID_LEICA_LAST = 41,
685}
686#[repr(u32)]
687#[doc = " @brief Pentax type IDs"]
688#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
689pub enum _OR_TYPEID_VENDOR_PENTAX {
690    OR_TYPEID_PENTAX_UNKNOWN = 0,
691    OR_TYPEID_PENTAX_K10D_PEF = 1,
692    OR_TYPEID_PENTAX_K10D_DNG = 2,
693    OR_TYPEID_PENTAX_IST_D_PEF = 3,
694    OR_TYPEID_PENTAX_IST_DL_PEF = 4,
695    OR_TYPEID_PENTAX_K100D_PEF = 5,
696    OR_TYPEID_PENTAX_K100D_SUPER_PEF = 6,
697    OR_TYPEID_PENTAX_K20D_PEF = 7,
698    OR_TYPEID_PENTAX_KR_PEF = 8,
699    OR_TYPEID_PENTAX_KX_PEF = 9,
700    OR_TYPEID_PENTAX_K5_PEF = 10,
701    OR_TYPEID_PENTAX_K7_PEF = 11,
702    OR_TYPEID_PENTAX_645D_PEF = 12,
703    OR_TYPEID_PENTAX_645D_DNG = 13,
704    OR_TYPEID_PENTAX_K2000_DNG = 14,
705    OR_TYPEID_PENTAX_Q_DNG = 15,
706    OR_TYPEID_PENTAX_K200D_DNG = 16,
707    OR_TYPEID_PENTAX_KM_PEF = 17,
708    OR_TYPEID_PENTAX_KX_DNG = 18,
709    OR_TYPEID_PENTAX_KR_DNG = 19,
710    OR_TYPEID_PENTAX_K01_DNG = 20,
711    OR_TYPEID_PENTAX_K30_DNG = 21,
712    OR_TYPEID_PENTAX_K5_IIS_DNG = 22,
713    OR_TYPEID_PENTAX_MX1_DNG = 23,
714    OR_TYPEID_PENTAX_Q10_DNG = 24,
715    OR_TYPEID_PENTAX_Q7_DNG = 25,
716    OR_TYPEID_PENTAX_K3_DNG = 26,
717    OR_TYPEID_PENTAX_K50_DNG = 27,
718    OR_TYPEID_PENTAX_K500_DNG = 28,
719    OR_TYPEID_PENTAX_K200D_PEF = 29,
720    OR_TYPEID_PENTAX_IST_DS_PEF = 30,
721    OR_TYPEID_PENTAX_K5_IIS_PEF = 31,
722    OR_TYPEID_PENTAX_K3_II_DNG = 32,
723    OR_TYPEID_PENTAX_K1_PEF = 33,
724    OR_TYPEID_PENTAX_K1_DNG = 34,
725    OR_TYPEID_PENTAX_K70_PEF = 35,
726    OR_TYPEID_PENTAX_K70_DNG = 36,
727    OR_TYPEID_PENTAX_KS1_PEF = 37,
728    OR_TYPEID_PENTAX_KS1_DNG = 38,
729    OR_TYPEID_PENTAX_KS2_PEF = 39,
730    OR_TYPEID_PENTAX_KS2_DNG = 40,
731    OR_TYPEID_PENTAX_QS1_DNG = 41,
732    OR_TYPEID_PENTAX_QS1_PEF = 42,
733    OR_TYPEID_PENTAX_KP_PEF = 43,
734    OR_TYPEID_PENTAX_KP_DNG = 44,
735    OR_TYPEID_PENTAX_K1_MKII_PEF = 45,
736    OR_TYPEID_PENTAX_K1_MKII_DNG = 46,
737    OR_TYPEID_PENTAX_K7_DNG = 47,
738    OR_TYPEID_PENTAX_IST_DL2_PEF = 48,
739    OR_TYPEID_PENTAX_K5_II_PEF = 49,
740    OR_TYPEID_PENTAX_K5_II_DNG = 50,
741    OR_TYPEID_PENTAX_K3_PEF = 51,
742    OR_TYPEID_PENTAX_K3_II_PEF = 52,
743    OR_TYPEID_PENTAX_K110D_PEF = 53,
744    OR_TYPEID_PENTAX_K3_MKIII_PEF = 54,
745    OR_TYPEID_PENTAX_K3_MKIII_DNG = 55,
746    OR_TYPEID_PENTAX_K2000_PEF = 56,
747    _OR_TYPEID_PENTAX_LAST = 57,
748}
749#[repr(u32)]
750#[doc = " @brief Epson type IDs"]
751#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
752pub enum _OR_TYPEID_VENDOR_EPSON {
753    OR_TYPEID_EPSON_UNKNOWN = 0,
754    OR_TYPEID_EPSON_RD1 = 1,
755    OR_TYPEID_EPSON_RD1S = 2,
756    OR_TYPEID_EPSON_RD1X = 3,
757    _OR_TYPEID_EPSON_LAST = 4,
758}
759#[repr(u32)]
760#[doc = " @brief Minolta type IDs"]
761#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
762pub enum _OR_TYPEID_VENDOR_MINOLTA {
763    OR_TYPEID_MINOLTA_UNKNOWN = 0,
764    OR_TYPEID_MINOLTA_A1 = 1,
765    OR_TYPEID_MINOLTA_A2 = 2,
766    OR_TYPEID_MINOLTA_DIMAGE5 = 3,
767    OR_TYPEID_MINOLTA_DIMAGE7 = 4,
768    OR_TYPEID_MINOLTA_DIMAGE7I = 5,
769    OR_TYPEID_MINOLTA_DIMAGE7HI = 6,
770    OR_TYPEID_MINOLTA_MAXXUM_5D = 7,
771    OR_TYPEID_MINOLTA_MAXXUM_7D = 8,
772    OR_TYPEID_MINOLTA_A200 = 9,
773    _OR_TYPEID_MINOLTA_LAST = 10,
774}
775#[repr(u32)]
776#[doc = " @brief Olympus (and its successor OM Digital Solutions type IDs"]
777#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
778pub enum _OR_TYPEID_VENDOR_OLYMPUS {
779    OR_TYPEID_OLYMPUS_UNKNOWN = 0,
780    OR_TYPEID_OLYMPUS_E1 = 1,
781    OR_TYPEID_OLYMPUS_E10 = 2,
782    OR_TYPEID_OLYMPUS_E3 = 3,
783    OR_TYPEID_OLYMPUS_E300 = 4,
784    OR_TYPEID_OLYMPUS_E330 = 5,
785    OR_TYPEID_OLYMPUS_E400 = 6,
786    OR_TYPEID_OLYMPUS_E410 = 7,
787    OR_TYPEID_OLYMPUS_E500 = 8,
788    OR_TYPEID_OLYMPUS_E510 = 9,
789    OR_TYPEID_OLYMPUS_SP350 = 10,
790    OR_TYPEID_OLYMPUS_SP510UZ = 11,
791    OR_TYPEID_OLYMPUS_SP550UZ = 12,
792    OR_TYPEID_OLYMPUS_SP500UZ = 13,
793    OR_TYPEID_OLYMPUS_EP1 = 14,
794    OR_TYPEID_OLYMPUS_E620 = 15,
795    OR_TYPEID_OLYMPUS_EPL1 = 16,
796    OR_TYPEID_OLYMPUS_EP2 = 17,
797    OR_TYPEID_OLYMPUS_XZ1 = 18,
798    OR_TYPEID_OLYMPUS_E5 = 19,
799    OR_TYPEID_OLYMPUS_EPL2 = 20,
800    OR_TYPEID_OLYMPUS_EP3 = 21,
801    OR_TYPEID_OLYMPUS_EPL3 = 22,
802    OR_TYPEID_OLYMPUS_EPM1 = 23,
803    OR_TYPEID_OLYMPUS_EM5 = 24,
804    OR_TYPEID_OLYMPUS_XZ2 = 25,
805    OR_TYPEID_OLYMPUS_EPM2 = 26,
806    OR_TYPEID_OLYMPUS_EPL5 = 27,
807    OR_TYPEID_OLYMPUS_EM1 = 28,
808    OR_TYPEID_OLYMPUS_STYLUS1 = 29,
809    OR_TYPEID_OLYMPUS_EPL6 = 30,
810    OR_TYPEID_OLYMPUS_EPL7 = 31,
811    OR_TYPEID_OLYMPUS_EM5II = 32,
812    OR_TYPEID_OLYMPUS_EM1II = 33,
813    OR_TYPEID_OLYMPUS_PEN_F = 34,
814    OR_TYPEID_OLYMPUS_EM10 = 35,
815    OR_TYPEID_OLYMPUS_EM10II = 36,
816    OR_TYPEID_OLYMPUS_EPL8 = 37,
817    OR_TYPEID_OLYMPUS_SH2 = 38,
818    OR_TYPEID_OLYMPUS_XZ10 = 39,
819    OR_TYPEID_OLYMPUS_TG4 = 40,
820    OR_TYPEID_OLYMPUS_EPL9 = 41,
821    OR_TYPEID_OLYMPUS_STYLUS1_1S = 42,
822    OR_TYPEID_OLYMPUS_EM10III = 43,
823    OR_TYPEID_OLYMPUS_TG5 = 44,
824    OR_TYPEID_OLYMPUS_EM1X = 45,
825    OR_TYPEID_OLYMPUS_TG6 = 46,
826    OR_TYPEID_OLYMPUS_EM5III = 47,
827    OR_TYPEID_OLYMPUS_SP565UZ = 48,
828    OR_TYPEID_OLYMPUS_EPL10 = 49,
829    OR_TYPEID_OLYMPUS_EM1III = 50,
830    OR_TYPEID_OLYMPUS_EM10IV = 51,
831    OR_TYPEID_OLYMPUS_EM10IIIS = 52,
832    OR_TYPEID_OLYMPUS_OM1 = 53,
833    OR_TYPEID_OLYMPUS_E30 = 54,
834    OR_TYPEID_OLYMPUS_EP5 = 55,
835    OR_TYPEID_OLYMPUS_E420 = 56,
836    OR_TYPEID_OLYMPUS_E450 = 57,
837    OR_TYPEID_OLYMPUS_E520 = 58,
838    OR_TYPEID_OLYMPUS_E600 = 59,
839    OR_TYPEID_OLYMPUS_C5060WZ = 60,
840    OR_TYPEID_OLYMPUS_SP570UZ = 61,
841    OR_TYPEID_OLYMPUS_EP7 = 62,
842    OR_TYPEID_OLYMPUS_OM5 = 63,
843    _OR_TYPEID_OLYMPUS_LAST = 64,
844}
845#[repr(u32)]
846#[doc = " @brief Samsung type IDs"]
847#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
848pub enum _OR_TYPEID_VENDOR_SAMSUNG {
849    OR_TYPEID_SAMSUNG_UNKNOWN = 0,
850    OR_TYPEID_SAMSUNG_GX10 = 1,
851    OR_TYPEID_SAMSUNG_PRO815 = 2,
852    _OR_TYPEID_SAMSUNG_LAST = 3,
853}
854#[repr(u32)]
855#[doc = " @brief Ricoh type IDs"]
856#[doc = ""]
857#[doc = " Following the merger with Pentax newer cameras may be Pentax."]
858#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
859pub enum _OR_TYPEID_VENDOR_RICOH {
860    OR_TYPEID_RICOH_UNKNOWN = 0,
861    OR_TYPEID_RICOH_GR2 = 1,
862    OR_TYPEID_RICOH_GXR = 2,
863    OR_TYPEID_RICOH_GXR_A16 = 3,
864    OR_TYPEID_RICOH_GR = 4,
865    OR_TYPEID_RICOH_GX200 = 5,
866    OR_TYPEID_PENTAX_645Z_PEF = 6,
867    OR_TYPEID_PENTAX_645Z_DNG = 7,
868    OR_TYPEID_RICOH_GRII = 8,
869    OR_TYPEID_RICOH_GRIII = 9,
870    OR_TYPEID_RICOH_GRIIIX = 10,
871    _OR_TYPEID_RICOH_LAST = 11,
872}
873impl _OR_TYPEID_VENDOR_SONY {
874    pub const OR_TYPEID_SONY_A390: _OR_TYPEID_VENDOR_SONY =
875        _OR_TYPEID_VENDOR_SONY::OR_TYPEID_SONY_A380;
876}
877impl _OR_TYPEID_VENDOR_SONY {
878    pub const OR_TYPEID_SONY_ILCE3500: _OR_TYPEID_VENDOR_SONY =
879        _OR_TYPEID_VENDOR_SONY::OR_TYPEID_SONY_ILCE3000;
880}
881#[repr(u32)]
882#[doc = " @brief Sony type IDs"]
883#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
884pub enum _OR_TYPEID_VENDOR_SONY {
885    OR_TYPEID_SONY_UNKNOWN = 0,
886    OR_TYPEID_SONY_A100 = 1,
887    OR_TYPEID_SONY_A200 = 2,
888    OR_TYPEID_SONY_A700 = 3,
889    OR_TYPEID_SONY_A550 = 4,
890    OR_TYPEID_SONY_A380 = 5,
891    OR_TYPEID_SONY_SLTA55 = 7,
892    OR_TYPEID_SONY_SLTA77 = 8,
893    OR_TYPEID_SONY_NEX3 = 9,
894    OR_TYPEID_SONY_NEX3N = 10,
895    OR_TYPEID_SONY_NEX5 = 11,
896    OR_TYPEID_SONY_NEX5N = 12,
897    OR_TYPEID_SONY_NEX5R = 13,
898    OR_TYPEID_SONY_NEX5T = 14,
899    OR_TYPEID_SONY_NEX6 = 15,
900    OR_TYPEID_SONY_NEX7 = 16,
901    OR_TYPEID_SONY_NEXC3 = 17,
902    OR_TYPEID_SONY_NEXF3 = 18,
903    OR_TYPEID_SONY_SLTA65 = 19,
904    OR_TYPEID_SONY_A330 = 21,
905    OR_TYPEID_SONY_A450 = 22,
906    OR_TYPEID_SONY_A580 = 23,
907    OR_TYPEID_SONY_A850 = 24,
908    OR_TYPEID_SONY_A900 = 25,
909    OR_TYPEID_SONY_SLTA35 = 26,
910    OR_TYPEID_SONY_SLTA33 = 27,
911    OR_TYPEID_SONY_A560 = 28,
912    OR_TYPEID_SONY_SLTA99 = 29,
913    OR_TYPEID_SONY_RX100 = 30,
914    OR_TYPEID_SONY_RX100M2 = 31,
915    OR_TYPEID_SONY_RX100M3 = 32,
916    OR_TYPEID_SONY_RX100M4 = 33,
917    OR_TYPEID_SONY_RX100M5 = 34,
918    OR_TYPEID_SONY_RX100M6 = 35,
919    OR_TYPEID_SONY_RX1 = 36,
920    OR_TYPEID_SONY_RX1R = 37,
921    OR_TYPEID_SONY_RX10 = 38,
922    OR_TYPEID_SONY_RX10M2 = 39,
923    OR_TYPEID_SONY_RX10M3 = 40,
924    OR_TYPEID_SONY_RX1RM2 = 41,
925    OR_TYPEID_SONY_RX10M4 = 42,
926    OR_TYPEID_SONY_RX0 = 43,
927    OR_TYPEID_SONY_SLTA57 = 44,
928    OR_TYPEID_SONY_ILCE7 = 45,
929    OR_TYPEID_SONY_ILCE7M2 = 46,
930    OR_TYPEID_SONY_ILCE7M3 = 47,
931    OR_TYPEID_SONY_ILCE7R = 48,
932    OR_TYPEID_SONY_ILCE7RM2 = 49,
933    OR_TYPEID_SONY_ILCE7RM3 = 50,
934    OR_TYPEID_SONY_ILCE7S = 51,
935    OR_TYPEID_SONY_ILCE7SM2 = 52,
936    OR_TYPEID_SONY_ILCE9 = 53,
937    OR_TYPEID_SONY_ILCE3000 = 54,
938    OR_TYPEID_SONY_SLTA58 = 55,
939    OR_TYPEID_SONY_ILCE6000 = 56,
940    OR_TYPEID_SONY_ILCA99M2 = 57,
941    OR_TYPEID_SONY_ILCE6300 = 58,
942    OR_TYPEID_SONY_ILCE6500 = 59,
943    OR_TYPEID_SONY_ILCE5100 = 60,
944    OR_TYPEID_SONY_A230 = 61,
945    OR_TYPEID_SONY_A500 = 62,
946    OR_TYPEID_SONY_SLTA37 = 63,
947    OR_TYPEID_SONY_ILCA77M2 = 64,
948    OR_TYPEID_SONY_ILCA68 = 65,
949    OR_TYPEID_SONY_ILCE5000 = 66,
950    OR_TYPEID_SONY_A290 = 67,
951    OR_TYPEID_SONY_RX100M5A = 68,
952    OR_TYPEID_SONY_HX99 = 69,
953    OR_TYPEID_SONY_ILCE6400 = 70,
954    OR_TYPEID_SONY_RX0M2 = 71,
955    OR_TYPEID_SONY_ILCE7RM4 = 72,
956    OR_TYPEID_SONY_RX100M7 = 73,
957    OR_TYPEID_SONY_ILCE6100 = 74,
958    OR_TYPEID_SONY_ILCE6600 = 75,
959    OR_TYPEID_SONY_ILCE9M2 = 76,
960    OR_TYPEID_SONY_ZV1 = 77,
961    OR_TYPEID_SONY_R1 = 78,
962    OR_TYPEID_SONY_ILCE7SM3 = 79,
963    OR_TYPEID_SONY_ILCE7C = 80,
964    OR_TYPEID_SONY_ZVE10 = 81,
965    OR_TYPEID_SONY_ILCE1 = 82,
966    OR_TYPEID_SONY_ILCE7M4 = 83,
967    OR_TYPEID_SONY_ILCEQX1 = 84,
968    OR_TYPEID_SONY_A350 = 85,
969    OR_TYPEID_SONY_A300 = 86,
970    OR_TYPEID_SONY_ILCE7RM3A = 87,
971    OR_TYPEID_SONY_ILCE7RM4A = 88,
972    OR_TYPEID_SONY_HX95 = 89,
973    OR_TYPEID_SONY_ILCE7RM5 = 90,
974    _OR_TYPEID_SONY_LAST = 91,
975}
976impl _OR_TYPEID_VENDOR_PANASONIC {
977    pub const OR_TYPEID_PANASONIC_GM1S: _OR_TYPEID_VENDOR_PANASONIC =
978        _OR_TYPEID_VENDOR_PANASONIC::OR_TYPEID_PANASONIC_GM1;
979}
980impl _OR_TYPEID_VENDOR_PANASONIC {
981    pub const OR_TYPEID_PANASONIC_G85: _OR_TYPEID_VENDOR_PANASONIC =
982        _OR_TYPEID_VENDOR_PANASONIC::OR_TYPEID_PANASONIC_G80;
983}
984impl _OR_TYPEID_VENDOR_PANASONIC {
985    pub const OR_TYPEID_PANASONIC_LX15: _OR_TYPEID_VENDOR_PANASONIC =
986        _OR_TYPEID_VENDOR_PANASONIC::OR_TYPEID_PANASONIC_LX10;
987}
988impl _OR_TYPEID_VENDOR_PANASONIC {
989    pub const OR_TYPEID_PANASONIC_FZ2000: _OR_TYPEID_VENDOR_PANASONIC =
990        _OR_TYPEID_VENDOR_PANASONIC::OR_TYPEID_PANASONIC_FZ2500;
991}
992impl _OR_TYPEID_VENDOR_PANASONIC {
993    pub const OR_TYPEID_PANASONIC_TX1: _OR_TYPEID_VENDOR_PANASONIC =
994        _OR_TYPEID_VENDOR_PANASONIC::OR_TYPEID_PANASONIC_ZS100;
995}
996impl _OR_TYPEID_VENDOR_PANASONIC {
997    pub const OR_TYPEID_PANASONIC_TZ100: _OR_TYPEID_VENDOR_PANASONIC =
998        _OR_TYPEID_VENDOR_PANASONIC::OR_TYPEID_PANASONIC_ZS100;
999}
1000impl _OR_TYPEID_VENDOR_PANASONIC {
1001    pub const OR_TYPEID_PANASONIC_TZ101: _OR_TYPEID_VENDOR_PANASONIC =
1002        _OR_TYPEID_VENDOR_PANASONIC::OR_TYPEID_PANASONIC_ZS100;
1003}
1004impl _OR_TYPEID_VENDOR_PANASONIC {
1005    pub const OR_TYPEID_PANASONIC_TZ110: _OR_TYPEID_VENDOR_PANASONIC =
1006        _OR_TYPEID_VENDOR_PANASONIC::OR_TYPEID_PANASONIC_ZS100;
1007}
1008impl _OR_TYPEID_VENDOR_PANASONIC {
1009    pub const OR_TYPEID_PANASONIC_GX85: _OR_TYPEID_VENDOR_PANASONIC =
1010        _OR_TYPEID_VENDOR_PANASONIC::OR_TYPEID_PANASONIC_GX80;
1011}
1012impl _OR_TYPEID_VENDOR_PANASONIC {
1013    pub const OR_TYPEID_PANASONIC_FZ82: _OR_TYPEID_VENDOR_PANASONIC =
1014        _OR_TYPEID_VENDOR_PANASONIC::OR_TYPEID_PANASONIC_FZ80;
1015}
1016impl _OR_TYPEID_VENDOR_PANASONIC {
1017    pub const OR_TYPEID_PANASONIC_TZ80: _OR_TYPEID_VENDOR_PANASONIC =
1018        _OR_TYPEID_VENDOR_PANASONIC::OR_TYPEID_PANASONIC_ZS60;
1019}
1020impl _OR_TYPEID_VENDOR_PANASONIC {
1021    pub const OR_TYPEID_PANASONIC_TZ81: _OR_TYPEID_VENDOR_PANASONIC =
1022        _OR_TYPEID_VENDOR_PANASONIC::OR_TYPEID_PANASONIC_ZS60;
1023}
1024impl _OR_TYPEID_VENDOR_PANASONIC {
1025    pub const OR_TYPEID_PANASONIC_GX7MK3: _OR_TYPEID_VENDOR_PANASONIC =
1026        _OR_TYPEID_VENDOR_PANASONIC::OR_TYPEID_PANASONIC_GX9;
1027}
1028impl _OR_TYPEID_VENDOR_PANASONIC {
1029    pub const OR_TYPEID_PANASONIC_FZ38: _OR_TYPEID_VENDOR_PANASONIC =
1030        _OR_TYPEID_VENDOR_PANASONIC::OR_TYPEID_PANASONIC_FZ35;
1031}
1032impl _OR_TYPEID_VENDOR_PANASONIC {
1033    pub const OR_TYPEID_PANASONIC_TX2: _OR_TYPEID_VENDOR_PANASONIC =
1034        _OR_TYPEID_VENDOR_PANASONIC::OR_TYPEID_PANASONIC_ZS200;
1035}
1036impl _OR_TYPEID_VENDOR_PANASONIC {
1037    pub const OR_TYPEID_PANASONIC_TZ202: _OR_TYPEID_VENDOR_PANASONIC =
1038        _OR_TYPEID_VENDOR_PANASONIC::OR_TYPEID_PANASONIC_ZS200;
1039}
1040impl _OR_TYPEID_VENDOR_PANASONIC {
1041    pub const OR_TYPEID_PANASONIC_DMC_FZ45: _OR_TYPEID_VENDOR_PANASONIC =
1042        _OR_TYPEID_VENDOR_PANASONIC::OR_TYPEID_PANASONIC_DMC_FZ40;
1043}
1044impl _OR_TYPEID_VENDOR_PANASONIC {
1045    pub const OR_TYPEID_PANASONIC_DC_TZ95: _OR_TYPEID_VENDOR_PANASONIC =
1046        _OR_TYPEID_VENDOR_PANASONIC::OR_TYPEID_PANASONIC_DC_ZS80;
1047}
1048impl _OR_TYPEID_VENDOR_PANASONIC {
1049    pub const OR_TYPEID_PANASONIC_DC_TZ96: _OR_TYPEID_VENDOR_PANASONIC =
1050        _OR_TYPEID_VENDOR_PANASONIC::OR_TYPEID_PANASONIC_DC_ZS80;
1051}
1052impl _OR_TYPEID_VENDOR_PANASONIC {
1053    pub const OR_TYPEID_PANASONIC_GX880: _OR_TYPEID_VENDOR_PANASONIC =
1054        _OR_TYPEID_VENDOR_PANASONIC::OR_TYPEID_PANASONIC_GF10;
1055}
1056impl _OR_TYPEID_VENDOR_PANASONIC {
1057    pub const OR_TYPEID_PANASONIC_DC_G90: _OR_TYPEID_VENDOR_PANASONIC =
1058        _OR_TYPEID_VENDOR_PANASONIC::OR_TYPEID_PANASONIC_DC_G99;
1059}
1060impl _OR_TYPEID_VENDOR_PANASONIC {
1061    pub const OR_TYPEID_PANASONIC_DC_G91: _OR_TYPEID_VENDOR_PANASONIC =
1062        _OR_TYPEID_VENDOR_PANASONIC::OR_TYPEID_PANASONIC_DC_G99;
1063}
1064impl _OR_TYPEID_VENDOR_PANASONIC {
1065    pub const OR_TYPEID_PANASONIC_DC_G110: _OR_TYPEID_VENDOR_PANASONIC =
1066        _OR_TYPEID_VENDOR_PANASONIC::OR_TYPEID_PANASONIC_DC_G100;
1067}
1068impl _OR_TYPEID_VENDOR_PANASONIC {
1069    pub const OR_TYPEID_PANASONIC_G70: _OR_TYPEID_VENDOR_PANASONIC =
1070        _OR_TYPEID_VENDOR_PANASONIC::OR_TYPEID_PANASONIC_G7;
1071}
1072impl _OR_TYPEID_VENDOR_PANASONIC {
1073    pub const OR_TYPEID_PANASONIC_TZ60: _OR_TYPEID_VENDOR_PANASONIC =
1074        _OR_TYPEID_VENDOR_PANASONIC::OR_TYPEID_PANASONIC_ZS40;
1075}
1076impl _OR_TYPEID_VENDOR_PANASONIC {
1077    pub const OR_TYPEID_PANASONIC_TZ61: _OR_TYPEID_VENDOR_PANASONIC =
1078        _OR_TYPEID_VENDOR_PANASONIC::OR_TYPEID_PANASONIC_ZS40;
1079}
1080impl _OR_TYPEID_VENDOR_PANASONIC {
1081    pub const OR_TYPEID_PANASONIC_G81: _OR_TYPEID_VENDOR_PANASONIC =
1082        _OR_TYPEID_VENDOR_PANASONIC::OR_TYPEID_PANASONIC_G8;
1083}
1084impl _OR_TYPEID_VENDOR_PANASONIC {
1085    pub const OR_TYPEID_PANASONIC_FZ72: _OR_TYPEID_VENDOR_PANASONIC =
1086        _OR_TYPEID_VENDOR_PANASONIC::OR_TYPEID_PANASONIC_FZ70;
1087}
1088impl _OR_TYPEID_VENDOR_PANASONIC {
1089    pub const OR_TYPEID_PANASONIC_TZ71: _OR_TYPEID_VENDOR_PANASONIC =
1090        _OR_TYPEID_VENDOR_PANASONIC::OR_TYPEID_PANASONIC_ZS50;
1091}
1092impl _OR_TYPEID_VENDOR_PANASONIC {
1093    pub const OR_TYPEID_PANASONIC_TZ90: _OR_TYPEID_VENDOR_PANASONIC =
1094        _OR_TYPEID_VENDOR_PANASONIC::OR_TYPEID_PANASONIC_ZS70;
1095}
1096#[repr(u32)]
1097#[doc = " @brief Panasonic type IDs"]
1098#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1099pub enum _OR_TYPEID_VENDOR_PANASONIC {
1100    OR_TYPEID_PANASONIC_UNKNOWN = 0,
1101    OR_TYPEID_PANASONIC_GF1 = 1,
1102    OR_TYPEID_PANASONIC_GF2 = 2,
1103    OR_TYPEID_PANASONIC_FZ30 = 3,
1104    OR_TYPEID_PANASONIC_G10 = 4,
1105    OR_TYPEID_PANASONIC_GH1 = 5,
1106    OR_TYPEID_PANASONIC_GH2 = 6,
1107    OR_TYPEID_PANASONIC_LX2 = 7,
1108    OR_TYPEID_PANASONIC_LX3 = 8,
1109    OR_TYPEID_PANASONIC_LX5 = 9,
1110    OR_TYPEID_PANASONIC_FZ8 = 10,
1111    OR_TYPEID_PANASONIC_FZ18 = 11,
1112    OR_TYPEID_PANASONIC_FZ50 = 12,
1113    OR_TYPEID_PANASONIC_L1 = 13,
1114    OR_TYPEID_PANASONIC_G1 = 14,
1115    OR_TYPEID_PANASONIC_G2 = 15,
1116    OR_TYPEID_PANASONIC_L10 = 16,
1117    OR_TYPEID_PANASONIC_FZ28 = 17,
1118    OR_TYPEID_PANASONIC_GF3 = 18,
1119    OR_TYPEID_PANASONIC_FZ100 = 19,
1120    OR_TYPEID_PANASONIC_GX1 = 20,
1121    OR_TYPEID_PANASONIC_G3 = 21,
1122    OR_TYPEID_PANASONIC_G5 = 22,
1123    OR_TYPEID_PANASONIC_GF5 = 23,
1124    OR_TYPEID_PANASONIC_LX7 = 24,
1125    OR_TYPEID_PANASONIC_GH3 = 25,
1126    OR_TYPEID_PANASONIC_FZ200 = 26,
1127    OR_TYPEID_PANASONIC_GF6 = 27,
1128    OR_TYPEID_PANASONIC_GX7 = 28,
1129    OR_TYPEID_PANASONIC_GM1 = 29,
1130    OR_TYPEID_PANASONIC_GH4 = 30,
1131    OR_TYPEID_PANASONIC_LX100 = 31,
1132    OR_TYPEID_PANASONIC_GM5 = 32,
1133    OR_TYPEID_PANASONIC_G80 = 33,
1134    OR_TYPEID_PANASONIC_LX10 = 34,
1135    OR_TYPEID_PANASONIC_FZ2500 = 35,
1136    OR_TYPEID_PANASONIC_GX8 = 36,
1137    OR_TYPEID_PANASONIC_ZS100 = 37,
1138    OR_TYPEID_PANASONIC_GX80 = 38,
1139    OR_TYPEID_PANASONIC_GH5 = 39,
1140    OR_TYPEID_PANASONIC_GX850 = 40,
1141    OR_TYPEID_PANASONIC_FZ80 = 41,
1142    OR_TYPEID_PANASONIC_FZ330 = 42,
1143    OR_TYPEID_PANASONIC_TZ70 = 43,
1144    OR_TYPEID_PANASONIC_ZS60 = 44,
1145    OR_TYPEID_PANASONIC_GF7 = 46,
1146    OR_TYPEID_PANASONIC_CM1 = 47,
1147    OR_TYPEID_PANASONIC_GX9 = 48,
1148    OR_TYPEID_PANASONIC_GX800 = 49,
1149    OR_TYPEID_PANASONIC_G9 = 52,
1150    OR_TYPEID_PANASONIC_DC_FZ45 = 53,
1151    OR_TYPEID_PANASONIC_GH5S = 54,
1152    OR_TYPEID_PANASONIC_LX1 = 55,
1153    OR_TYPEID_PANASONIC_FZ150 = 56,
1154    OR_TYPEID_PANASONIC_FZ35 = 57,
1155    OR_TYPEID_PANASONIC_ZS200 = 58,
1156    OR_TYPEID_PANASONIC_GX7MK2 = 59,
1157    OR_TYPEID_PANASONIC_LX100M2 = 60,
1158    OR_TYPEID_PANASONIC_DMC_FZ40 = 61,
1159    OR_TYPEID_PANASONIC_DC_S1 = 62,
1160    OR_TYPEID_PANASONIC_DC_S1R = 63,
1161    OR_TYPEID_PANASONIC_DC_G95 = 64,
1162    OR_TYPEID_PANASONIC_DMC_FZ1000 = 65,
1163    OR_TYPEID_PANASONIC_DC_FZ1000M2 = 66,
1164    OR_TYPEID_PANASONIC_DC_ZS80 = 67,
1165    OR_TYPEID_PANASONIC_GF10 = 68,
1166    OR_TYPEID_PANASONIC_DC_G99 = 69,
1167    OR_TYPEID_PANASONIC_DC_S1H = 70,
1168    OR_TYPEID_PANASONIC_DC_G100 = 71,
1169    OR_TYPEID_PANASONIC_DC_S5 = 72,
1170    OR_TYPEID_PANASONIC_GH5M2 = 73,
1171    OR_TYPEID_PANASONIC_GH6 = 74,
1172    OR_TYPEID_PANASONIC_G7 = 75,
1173    OR_TYPEID_PANASONIC_ZS40 = 76,
1174    OR_TYPEID_PANASONIC_G6 = 77,
1175    OR_TYPEID_PANASONIC_G8 = 78,
1176    OR_TYPEID_PANASONIC_LF1 = 79,
1177    OR_TYPEID_PANASONIC_FZ300 = 80,
1178    OR_TYPEID_PANASONIC_FZ70 = 81,
1179    OR_TYPEID_PANASONIC_ZS50 = 82,
1180    OR_TYPEID_PANASONIC_ZS70 = 83,
1181    _OR_TYPEID_PANASONIC_LAST = 84,
1182}
1183impl _OR_TYPEID_VENDOR_FUJIFILM {
1184    pub const OR_TYPEID_FUJIFILM_HS33EXR: _OR_TYPEID_VENDOR_FUJIFILM =
1185        _OR_TYPEID_VENDOR_FUJIFILM::OR_TYPEID_FUJIFILM_HS30EXR;
1186}
1187#[repr(u32)]
1188#[doc = " @brief Fujifilm type IDs"]
1189#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1190pub enum _OR_TYPEID_VENDOR_FUJIFILM {
1191    OR_TYPEID_FUJIFILM_UNKNOWN = 0,
1192    OR_TYPEID_FUJIFILM_F700 = 1,
1193    OR_TYPEID_FUJIFILM_E900 = 2,
1194    OR_TYPEID_FUJIFILM_S2PRO = 3,
1195    OR_TYPEID_FUJIFILM_S3PRO = 4,
1196    OR_TYPEID_FUJIFILM_S5PRO = 5,
1197    OR_TYPEID_FUJIFILM_F810 = 6,
1198    OR_TYPEID_FUJIFILM_S5000 = 7,
1199    OR_TYPEID_FUJIFILM_S5600 = 8,
1200    OR_TYPEID_FUJIFILM_S9500 = 9,
1201    OR_TYPEID_FUJIFILM_S6500FD = 10,
1202    OR_TYPEID_FUJIFILM_HS10 = 11,
1203    OR_TYPEID_FUJIFILM_HS30EXR = 12,
1204    OR_TYPEID_FUJIFILM_S200EXR = 13,
1205    OR_TYPEID_FUJIFILM_X100 = 14,
1206    OR_TYPEID_FUJIFILM_X100S = 15,
1207    OR_TYPEID_FUJIFILM_X100T = 16,
1208    OR_TYPEID_FUJIFILM_X100F = 17,
1209    OR_TYPEID_FUJIFILM_X10 = 18,
1210    OR_TYPEID_FUJIFILM_X20 = 19,
1211    OR_TYPEID_FUJIFILM_X30 = 20,
1212    OR_TYPEID_FUJIFILM_X70 = 21,
1213    OR_TYPEID_FUJIFILM_XPRO1 = 22,
1214    OR_TYPEID_FUJIFILM_XPRO2 = 23,
1215    OR_TYPEID_FUJIFILM_XS1 = 24,
1216    OR_TYPEID_FUJIFILM_XE1 = 25,
1217    OR_TYPEID_FUJIFILM_XE2 = 26,
1218    OR_TYPEID_FUJIFILM_XE2S = 27,
1219    OR_TYPEID_FUJIFILM_XE3 = 28,
1220    OR_TYPEID_FUJIFILM_XF1 = 29,
1221    OR_TYPEID_FUJIFILM_XM1 = 30,
1222    OR_TYPEID_FUJIFILM_XT1 = 31,
1223    OR_TYPEID_FUJIFILM_XT10 = 32,
1224    OR_TYPEID_FUJIFILM_XT100 = 33,
1225    OR_TYPEID_FUJIFILM_XT2 = 34,
1226    OR_TYPEID_FUJIFILM_XT20 = 35,
1227    OR_TYPEID_FUJIFILM_XT3 = 36,
1228    OR_TYPEID_FUJIFILM_XA1 = 37,
1229    OR_TYPEID_FUJIFILM_XA2 = 38,
1230    OR_TYPEID_FUJIFILM_XA3 = 39,
1231    OR_TYPEID_FUJIFILM_XA5 = 40,
1232    OR_TYPEID_FUJIFILM_XQ1 = 41,
1233    OR_TYPEID_FUJIFILM_XQ2 = 42,
1234    OR_TYPEID_FUJIFILM_XH1 = 43,
1235    OR_TYPEID_FUJIFILM_GFX50S = 44,
1236    OR_TYPEID_FUJIFILM_GFX50R = 45,
1237    OR_TYPEID_FUJIFILM_XF10 = 46,
1238    OR_TYPEID_FUJIFILM_XT30 = 47,
1239    OR_TYPEID_FUJIFILM_GFX100 = 48,
1240    OR_TYPEID_FUJIFILM_XA7 = 49,
1241    OR_TYPEID_FUJIFILM_XPRO3 = 50,
1242    OR_TYPEID_FUJIFILM_XT200 = 51,
1243    OR_TYPEID_FUJIFILM_X100V = 52,
1244    OR_TYPEID_FUJIFILM_XT4 = 53,
1245    OR_TYPEID_FUJIFILM_F550EXR = 54,
1246    OR_TYPEID_FUJIFILM_S100FS = 55,
1247    OR_TYPEID_FUJIFILM_XS10 = 56,
1248    OR_TYPEID_FUJIFILM_XT30_II = 57,
1249    OR_TYPEID_FUJIFILM_GFX50S_II = 58,
1250    OR_TYPEID_FUJIFILM_GFX100S = 59,
1251    OR_TYPEID_FUJIFILM_XE4 = 60,
1252    OR_TYPEID_FUJIFILM_XA10 = 61,
1253    OR_TYPEID_FUJIFILM_XH2S = 62,
1254    OR_TYPEID_FUJIFILM_XH2 = 63,
1255    OR_TYPEID_FUJIFILM_XT5 = 64,
1256    OR_TYPEID_FUJIFILM_HS50EXR = 65,
1257    OR_TYPEID_FUJIFILM_S6000FD = 66,
1258    OR_TYPEID_FUJIFILM_SL1000 = 67,
1259    _OR_TYPEID_FUJIFILM_LAST = 68,
1260}
1261#[repr(u32)]
1262#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1263pub enum _OR_TYPEID_VENDOR_BLACKMAGIC {
1264    OR_TYPEID_BLACKMAGIC_UNKNOWN = 0,
1265    OR_TYPEID_BLACKMAGIC_POCKET_CINEMA = 1,
1266    _OR_TYPEID_BLACKMAGIC_LAST = 2,
1267}
1268#[repr(u32)]
1269#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1270pub enum _OR_TYPEID_VENDOR_XIAOYI {
1271    OR_TYPEID_XIAOYI_UNKNOWN = 0,
1272    OR_TYPEID_XIAOYI_M1 = 1,
1273    OR_TYPEID_XIAOYI_YDXJ_2 = 2,
1274    OR_TYPEID_XIAOYI_YIAC_3 = 3,
1275    _OR_TYPEID_XIAOYI_LAST = 4,
1276}
1277#[repr(u32)]
1278#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1279pub enum _OR_TYPEID_VENDOR_APPLE {
1280    OR_TYPEID_APPLE_UNKNOWN = 0,
1281    OR_TYPEID_APPLE_IPHONE_6SPLUS = 1,
1282    OR_TYPEID_APPLE_IPHONE_7PLUS = 2,
1283    OR_TYPEID_APPLE_IPHONE_SE = 3,
1284    OR_TYPEID_APPLE_IPHONE_8 = 4,
1285    OR_TYPEID_APPLE_IPHONE_XS = 5,
1286    OR_TYPEID_APPLE_IPHONE_12_PRO = 6,
1287    OR_TYPEID_APPLE_IPHONE_13_PRO = 7,
1288    _OR_TYPEID_APPLE_LAST = 8,
1289}
1290#[repr(u32)]
1291#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1292pub enum _OR_TYPEID_VENDOR_SIGMA {
1293    OR_TYPEID_SIGMA_UNKNOWN = 0,
1294    OR_TYPEID_SIGMA_FP = 1,
1295    OR_TYPEID_SIGMA_FP_L = 2,
1296    _OR_TYPEID_SIGMA_LAST = 3,
1297}
1298#[repr(u32)]
1299#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1300pub enum _OR_TYPEID_VENDOR_GOPRO {
1301    OR_TYPEID_GOPRO_UNKNOWN = 0,
1302    OR_TYPEID_GOPRO_HERO5_BLACK = 1,
1303    OR_TYPEID_GOPRO_HERO6_BLACK = 2,
1304    OR_TYPEID_GOPRO_HERO7_BLACK = 3,
1305    OR_TYPEID_GOPRO_HERO8_BLACK = 4,
1306    OR_TYPEID_GOPRO_HERO9_BLACK = 5,
1307    OR_TYPEID_GOPRO_HERO10_BLACK = 6,
1308    _OR_TYPEID_GOPRO_LAST = 7,
1309}
1310impl _OR_TYPEID_VENDOR_HASSELBLAD {
1311    pub const OR_TYPEID_HASSELBLAD_L2D_20C: _OR_TYPEID_VENDOR_HASSELBLAD =
1312        _OR_TYPEID_VENDOR_HASSELBLAD::OR_TYPEID_HASSELBLAD_L1D_20C;
1313}
1314#[repr(u32)]
1315#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1316pub enum _OR_TYPEID_VENDOR_HASSELBLAD {
1317    OR_TYPEID_HASSELBLAD_UNKNOWN = 0,
1318    OR_TYPEID_HASSELBLAD_LUNAR = 1,
1319    OR_TYPEID_HASSELBLAD_L1D_20C = 2,
1320    _OR_TYPEID_HASSELBLAD_LAST = 3,
1321}
1322#[repr(u32)]
1323#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1324pub enum _OR_TYPEID_VENDOR_ZEISS {
1325    OR_TYPEID_ZEISS_UNKNOWN = 0,
1326    OR_TYPEID_ZEISS_ZX1 = 1,
1327    _OR_TYPEID_ZEISS_LAST = 2,
1328}
1329#[repr(u32)]
1330#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1331pub enum _OR_TYPEID_VENDOR_DJI {
1332    OR_TYPEID_DJI_UNKNOWN = 0,
1333    OR_TYPEID_DJI_FC350 = 1,
1334    OR_TYPEID_DJI_FC7303 = 2,
1335    OR_TYPEID_DJI_OSMO_ACTION = 3,
1336    OR_TYPEID_DJI_FC220 = 4,
1337    OR_TYPEID_DJI_FC6310 = 5,
1338    OR_TYPEID_DJI_FC3582 = 6,
1339    _OR_TYPEID_DJI_LAST = 7,
1340}
1341extern "C" {
1342    #[doc = " Count the number of tags in the ifd"]
1343    pub fn or_ifd_count_tags(ifd: ORIfdDirRef) -> i32;
1344}
1345extern "C" {
1346    pub fn or_ifd_get_makernote_id(ifd: ORIfdDirRef) -> *const ::std::os::raw::c_char;
1347}
1348extern "C" {
1349    pub fn or_ifd_get_tag_name(ifd: ORIfdDirRef, tag: u32) -> *const ::std::os::raw::c_char;
1350}
1351extern "C" {
1352    pub fn or_ifd_get_type(ifd: ORIfdDirRef) -> or_ifd_dir_type;
1353}
1354extern "C" {
1355    pub fn or_ifd_release(ifd: ORIfdDirRef);
1356}
1357extern "C" {
1358    #[doc = " @brief Extract thumbnail for raw file"]
1359    #[doc = ""]
1360    #[doc = " See %or_rawfile_get_thumbnail() for details."]
1361    #[doc = " Will return %OR_ERROR_CANT_OPEN if the file can't be open."]
1362    #[doc = ""]
1363    #[doc = " @param filename The path to the file to extract from."]
1364    #[doc = " @param preferred_size Preferred thumbnail size."]
1365    #[doc = " @param [in/out] thumb The thumbnail object ref to store it in"]
1366    #[doc = " If the ref is NULL, then a new one is allocated. It is"]
1367    #[doc = " the responsibility of the caller to release it."]
1368    #[doc = " @return An error code."]
1369    pub fn or_get_extract_thumbnail(
1370        filename: *const ::std::os::raw::c_char,
1371        preferred_size: u32,
1372        thumb: *mut ORThumbnailRef,
1373    ) -> or_error;
1374}
1375extern "C" {
1376    #[doc = " @brief Allocate a Thumbnail object."]
1377    #[doc = ""]
1378    #[doc = " @return A Thumbnail object. Use %or_thumbnail_release() to free it."]
1379    pub fn or_thumbnail_new() -> ORThumbnailRef;
1380}
1381extern "C" {
1382    #[doc = " @brief Release a Thumbnail object."]
1383    #[doc = ""]
1384    #[doc = " @param thumb The Thumbnail objet to release."]
1385    #[doc = " @return An error code. %OR_ERROR_NONE in case of success, and %OR_ERROR_NOTAREF"]
1386    #[doc = " if a NULL pointer is passed."]
1387    pub fn or_thumbnail_release(thumb: ORThumbnailRef) -> or_error;
1388}
1389extern "C" {
1390    #[doc = " @brief Get the thumbnail format."]
1391    #[doc = ""]
1392    #[doc = " @return A data type indicating the format."]
1393    pub fn or_thumbnail_format(thumb: ORThumbnailRef) -> or_data_type;
1394}
1395extern "C" {
1396    #[doc = " @brief Get the pointer to the data."]
1397    #[doc = ""]
1398    #[doc = " See %or_thumbnail_data_size() to know the size."]
1399    #[doc = ""]
1400    #[doc = " @return A pointer, owned by the %Thumbnail object. May be NULL."]
1401    pub fn or_thumbnail_data(thumb: ORThumbnailRef) -> *mut ::std::os::raw::c_void;
1402}
1403extern "C" {
1404    #[doc = " @brief Get the data size."]
1405    #[doc = ""]
1406    #[doc = " @return The data size."]
1407    pub fn or_thumbnail_data_size(thumb: ORThumbnailRef) -> usize;
1408}
1409extern "C" {
1410    #[doc = " @brief Get the %Thumbnail dimensions in pixels."]
1411    #[doc = ""]
1412    #[doc = " @param [out] x The horizontal dimension. Can be NULL."]
1413    #[doc = " @param [out] y The vertical dimension. Can be NULL."]
1414    pub fn or_thumbnail_dimensions(thumb: ORThumbnailRef, x: *mut u32, y: *mut u32);
1415}
1416#[repr(C)]
1417#[derive(Debug, Copy, Clone)]
1418pub struct _MosaicInfo {
1419    _unused: [u8; 0],
1420}
1421#[doc = " @brief A MosaicInfo object"]
1422pub type ORMosaicInfoRef = *const _MosaicInfo;
1423extern "C" {
1424    #[doc = " @brief Set the size of the mosaic"]
1425    pub fn or_mosaicinfo_set_size(pattern: ORMosaicInfoRef, x: u16, y: u16);
1426}
1427extern "C" {
1428    #[doc = " @brief Get the size of the mosaic"]
1429    pub fn or_mosaicinfo_get_size(pattern: ORMosaicInfoRef, x: *mut u16, y: *mut u16);
1430}
1431extern "C" {
1432    #[doc = " @brief Get the type of the mosaic"]
1433    pub fn or_mosaicinfo_get_type(arg1: ORMosaicInfoRef) -> or_cfa_pattern;
1434}
1435extern "C" {
1436    #[doc = " @brief Get the pattern."]
1437    #[doc = ""]
1438    #[doc = " This will return an array of %or_cfa_pattern_colour indicating the individual colours"]
1439    #[doc = " of the mosaic colour filter array."]
1440    #[doc = ""]
1441    #[doc = " @param pattern The %MosaicInfo"]
1442    #[doc = " @param [out] count the size of the array returned."]
1443    #[doc = " @return The pattern. The pointer is owned by the %MosaicInfo object."]
1444    pub fn or_mosaicinfo_get_pattern(pattern: ORMosaicInfoRef, count: *mut u16) -> *const u8;
1445}
1446extern "C" {
1447    #[doc = " @brief Extract the RAW data from the raw file."]
1448    #[doc = " @param filename the raw file name"]
1449    #[doc = " @param options the options to pass"]
1450    #[doc = " @param rawdata the destination RawData. Must allocated."]
1451    pub fn or_get_extract_rawdata(
1452        filename: *const ::std::os::raw::c_char,
1453        options: u32,
1454        rawdata: *mut ORRawDataRef,
1455    ) -> or_error;
1456}
1457extern "C" {
1458    #[doc = " @brief Allocate a new RawData"]
1459    #[doc = " @return A newly allocated RawData. Must be released by %or_rawdata_release"]
1460    pub fn or_rawdata_new() -> ORRawDataRef;
1461}
1462extern "C" {
1463    #[doc = " @brief Release the rawdata"]
1464    pub fn or_rawdata_release(rawdata: ORRawDataRef) -> or_error;
1465}
1466extern "C" {
1467    #[doc = " @brief Get the format of the RAW data"]
1468    pub fn or_rawdata_format(rawdata: ORRawDataRef) -> or_data_type;
1469}
1470extern "C" {
1471    #[doc = " @brief Get a pointer to the RAW data"]
1472    #[doc = ""]
1473    #[doc = " The pointer is owned by the RawData object."]
1474    pub fn or_rawdata_data(rawdata: ORRawDataRef) -> *mut ::std::os::raw::c_void;
1475}
1476extern "C" {
1477    #[doc = " @brief Get the size of the RAW data in bytes"]
1478    pub fn or_rawdata_data_size(rawdata: ORRawDataRef) -> usize;
1479}
1480extern "C" {
1481    #[doc = " @brief Get the RAW data dimensions in pixels"]
1482    #[doc = " @param [out] x the horizontal dimension"]
1483    #[doc = " @param [out] y the vertical dimension"]
1484    pub fn or_rawdata_dimensions(rawdata: ORRawDataRef, x: *mut u32, y: *mut u32);
1485}
1486extern "C" {
1487    #[doc = " @brief Get the active area for the raw data."]
1488    #[doc = ""]
1489    #[doc = " The active area is the usefull part of the RAW data"]
1490    #[doc = " it is specific per camera and isn't the crop."]
1491    #[doc = ""]
1492    #[doc = " @param rawdata the RawData object"]
1493    #[doc = " @param [out] x the X origin"]
1494    #[doc = " @param [out] y the Y origin"]
1495    #[doc = " @param [out] width the width"]
1496    #[doc = " @param [out] height the height."]
1497    #[doc = " @return an error code or %OR_ERROR_NONE in case of success."]
1498    pub fn or_rawdata_get_active_area(
1499        rawdata: ORRawDataRef,
1500        x: *mut u32,
1501        y: *mut u32,
1502        width: *mut u32,
1503        height: *mut u32,
1504    ) -> or_error;
1505}
1506extern "C" {
1507    #[doc = " @brief Return the bits per component"]
1508    #[doc = ""]
1509    #[doc = " @return the number of bits per component in the RAW data."]
1510    pub fn or_rawdata_bpc(rawdata: ORRawDataRef) -> u32;
1511}
1512extern "C" {
1513    #[doc = " @brief Return the bayer type for the raw data."]
1514    #[doc = ""]
1515    #[doc = " @return one of the constant defined in %or_cfa_pattern"]
1516    pub fn or_rawdata_get_cfa_pattern_type(rawdata: ORRawDataRef) -> or_cfa_pattern;
1517}
1518extern "C" {
1519    #[doc = " @brief Return the mosaic info"]
1520    #[doc = ""]
1521    #[doc = " @return a MosaicInfo object. It is owned by the RawData. Can't be NULL."]
1522    pub fn or_rawdata_get_mosaicinfo(rawdata: ORRawDataRef) -> ORMosaicInfoRef;
1523}
1524extern "C" {
1525    #[doc = " @brief Return the compression type for the RawData."]
1526    #[doc = ""]
1527    #[doc = " @return the numerical value."]
1528    pub fn or_rawdata_get_compression(rawdata: ORRawDataRef) -> u32;
1529}
1530extern "C" {
1531    #[doc = " @brief Return the levels values for the raw data."]
1532    #[doc = ""]
1533    #[doc = " These are possible values, not actual values."]
1534    #[doc = ""]
1535    #[doc = " @param rawdata the raw data object"]
1536    #[doc = " @param [out] black the pointer to the black value."]
1537    #[doc = " @param [out] white the pointer to the white value."]
1538    #[doc = " @return the error code."]
1539    pub fn or_rawdata_get_levels(
1540        rawdata: ORRawDataRef,
1541        black: *mut u16,
1542        white: *mut u16,
1543    ) -> or_error;
1544}
1545extern "C" {
1546    #[doc = " @brief Get the colour matrix."]
1547    #[doc = " @param rawdata the raw data object"]
1548    #[doc = " @param index the matrix index."]
1549    #[doc = " @param [out] size of %matrix. Returns the actual size."]
1550    #[doc = " @return the matrix. Pointer is owned by the RawData."]
1551    pub fn or_rawdata_get_colour_matrix(
1552        rawdata: ORRawDataRef,
1553        index: u32,
1554        size: *mut u32,
1555    ) -> *const f64;
1556}
1557extern "C" {
1558    #[doc = " @brief Get the rendered image from the raw data"]
1559    #[doc = " @param rawdata the raw data."]
1560    #[doc = " @param bitmapdata the preallocated bitmap data."]
1561    #[doc = " @param options option for rendering. Pass 0 for now."]
1562    #[doc = " @return an error code, %OR_ERROR_NONE in case of success."]
1563    pub fn or_rawdata_get_rendered_image(
1564        rawdata: ORRawDataRef,
1565        bitmapdata: ORBitmapDataRef,
1566        options: u32,
1567    ) -> or_error;
1568}
1569extern "C" {
1570    pub fn or_bitmapdata_new() -> ORBitmapDataRef;
1571}
1572extern "C" {
1573    pub fn or_bitmapdata_release(bitmapdata: ORBitmapDataRef) -> or_error;
1574}
1575extern "C" {
1576    pub fn or_bitmapdata_format(bitmapdata: ORBitmapDataRef) -> or_data_type;
1577}
1578extern "C" {
1579    pub fn or_bitmapdata_data(bitmapdata: ORBitmapDataRef) -> *mut ::std::os::raw::c_void;
1580}
1581extern "C" {
1582    pub fn or_bitmapdata_data_size(bitmapdata: ORBitmapDataRef) -> usize;
1583}
1584extern "C" {
1585    pub fn or_bitmapdata_dimensions(bitmapdata: ORBitmapDataRef, x: *mut u32, y: *mut u32);
1586}
1587extern "C" {
1588    pub fn or_bitmapdata_bpc(bitmapdata: ORBitmapDataRef) -> u32;
1589}
1590#[repr(u32)]
1591#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1592pub enum ExifLightsourceValue {
1593    EV_LIGHTSOURCE_UNKNOWN = 0,
1594    EV_LIGHTSOURCE_DAYLIGHT = 1,
1595    EV_LIGHTSOURCE_FLUORESCENT = 2,
1596    EV_LIGHTSOURCE_TUNGSTEN = 3,
1597    EV_LIGHTSOURCE_STANDARD_A = 17,
1598    EV_LIGHTSOURCE_STANDARD_B = 18,
1599    EV_LIGHTSOURCE_STANDARD_C = 19,
1600    EV_LIGHTSOURCE_D55 = 20,
1601    EV_LIGHTSOURCE_D65 = 21,
1602    EV_LIGHTSOURCE_D75 = 22,
1603    EV_LIGHTSOURCE_OTHER = 255,
1604}
1605#[repr(u32)]
1606#[doc = " Type for Exif field/tag"]
1607#[doc = " @note taken from libexif"]
1608#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1609pub enum ExifTagType {
1610    EXIF_FORMAT_BYTE = 1,
1611    EXIF_FORMAT_ASCII = 2,
1612    EXIF_FORMAT_SHORT = 3,
1613    EXIF_FORMAT_LONG = 4,
1614    EXIF_FORMAT_RATIONAL = 5,
1615    EXIF_FORMAT_SBYTE = 6,
1616    EXIF_FORMAT_UNDEFINED = 7,
1617    EXIF_FORMAT_SSHORT = 8,
1618    EXIF_FORMAT_SLONG = 9,
1619    EXIF_FORMAT_SRATIONAL = 10,
1620    EXIF_FORMAT_FLOAT = 11,
1621    EXIF_FORMAT_DOUBLE = 12,
1622    EXIF_FORMAT_INVALID = 13,
1623}
1624#[doc = " @brief Unsigned rational as a fraction"]
1625#[repr(C)]
1626#[derive(Debug, Copy, Clone)]
1627pub struct ORRational {
1628    #[doc = "< Numerator"]
1629    pub num: u32,
1630    #[doc = "< Denominator"]
1631    pub denom: u32,
1632}
1633#[test]
1634fn bindgen_test_layout_ORRational() {
1635    const UNINIT: ::std::mem::MaybeUninit<ORRational> = ::std::mem::MaybeUninit::uninit();
1636    let ptr = UNINIT.as_ptr();
1637    assert_eq!(
1638        ::std::mem::size_of::<ORRational>(),
1639        8usize,
1640        concat!("Size of: ", stringify!(ORRational))
1641    );
1642    assert_eq!(
1643        ::std::mem::align_of::<ORRational>(),
1644        4usize,
1645        concat!("Alignment of ", stringify!(ORRational))
1646    );
1647    assert_eq!(
1648        unsafe { ::std::ptr::addr_of!((*ptr).num) as usize - ptr as usize },
1649        0usize,
1650        concat!(
1651            "Offset of field: ",
1652            stringify!(ORRational),
1653            "::",
1654            stringify!(num)
1655        )
1656    );
1657    assert_eq!(
1658        unsafe { ::std::ptr::addr_of!((*ptr).denom) as usize - ptr as usize },
1659        4usize,
1660        concat!(
1661            "Offset of field: ",
1662            stringify!(ORRational),
1663            "::",
1664            stringify!(denom)
1665        )
1666    );
1667}
1668#[doc = " @brief Signed rational as a fraction"]
1669#[repr(C)]
1670#[derive(Debug, Copy, Clone)]
1671pub struct ORSRational {
1672    #[doc = "< Numerator (carry the sign)"]
1673    pub num: i32,
1674    #[doc = "< Denominator"]
1675    pub denom: u32,
1676}
1677#[test]
1678fn bindgen_test_layout_ORSRational() {
1679    const UNINIT: ::std::mem::MaybeUninit<ORSRational> = ::std::mem::MaybeUninit::uninit();
1680    let ptr = UNINIT.as_ptr();
1681    assert_eq!(
1682        ::std::mem::size_of::<ORSRational>(),
1683        8usize,
1684        concat!("Size of: ", stringify!(ORSRational))
1685    );
1686    assert_eq!(
1687        ::std::mem::align_of::<ORSRational>(),
1688        4usize,
1689        concat!("Alignment of ", stringify!(ORSRational))
1690    );
1691    assert_eq!(
1692        unsafe { ::std::ptr::addr_of!((*ptr).num) as usize - ptr as usize },
1693        0usize,
1694        concat!(
1695            "Offset of field: ",
1696            stringify!(ORSRational),
1697            "::",
1698            stringify!(num)
1699        )
1700    );
1701    assert_eq!(
1702        unsafe { ::std::ptr::addr_of!((*ptr).denom) as usize - ptr as usize },
1703        4usize,
1704        concat!(
1705            "Offset of field: ",
1706            stringify!(ORSRational),
1707            "::",
1708            stringify!(denom)
1709        )
1710    );
1711}
1712#[repr(C)]
1713#[derive(Debug, Copy, Clone)]
1714pub struct _MetadataIterator {
1715    _unused: [u8; 0],
1716}
1717pub type ORMetadataIteratorRef = *mut _MetadataIterator;
1718#[repr(C)]
1719#[derive(Debug, Copy, Clone)]
1720pub struct _MetaValue {
1721    _unused: [u8; 0],
1722}
1723pub type ORMetaValueRef = *mut _MetaValue;
1724pub type ORConstMetaValueRef = *const _MetaValue;
1725extern "C" {
1726    #[doc = " @brief Get the string out of the %MetaValue."]
1727    #[doc = ""]
1728    #[doc = " @param idx Pass 0. @todo Remove the idx parameter."]
1729    #[doc = " @return A NUL terminated string. NULL if not found. The pointer is owned by the"]
1730    #[doc = " %MetaValue."]
1731    pub fn or_metavalue_get_string(
1732        value: ORConstMetaValueRef,
1733        idx: u32,
1734    ) -> *const ::std::os::raw::c_char;
1735}
1736extern "C" {
1737    #[doc = " @brief Convert the %MetaValue to a string."]
1738    #[doc = ""]
1739    #[doc = " @param full FALSE if the conversion should abridge the result."]
1740    #[doc = " @return A NUL terminated string. NULL if not found. The pointer is owned by the"]
1741    #[doc = " %MetaValue."]
1742    pub fn or_metavalue_get_as_string(
1743        value: ORConstMetaValueRef,
1744        full: bool,
1745    ) -> *const ::std::os::raw::c_char;
1746}
1747extern "C" {
1748    #[doc = " @brief Get the value count"]
1749    #[doc = ""]
1750    #[doc = " @return The value count."]
1751    pub fn or_metavalue_get_count(value: ORMetaValueRef) -> u32;
1752}
1753extern "C" {
1754    #[doc = " @brief Free the %MetaValue"]
1755    pub fn or_metavalue_release(value: ORMetaValueRef);
1756}
1757extern "C" {
1758    #[doc = " @brief Move to the next metadata value"]
1759    #[doc = " @param iterator The metadata iterator."]
1760    #[doc = " @return 0 if no more."]
1761    pub fn or_metadata_iterator_next(iterator: ORMetadataIteratorRef) -> ::std::os::raw::c_int;
1762}
1763extern "C" {
1764    #[doc = " @brief Get the metadata entry from the iterator."]
1765    #[doc = ""]
1766    #[doc = " @param iterator The iterator."]
1767    #[doc = " @param ifd Pointer to the IfdDirRef."]
1768    #[doc = " @param id Pointer to id (nullable)"]
1769    #[doc = " @param type Pointer to exif tag type (nullable)"]
1770    #[doc = " @param value Pointer to store a newly allocated ORConstMetaValue (nullable)"]
1771    #[doc = " @return 0 if error. In that case none of the values are valid."]
1772    pub fn or_metadata_iterator_get_entry(
1773        iterator: ORMetadataIteratorRef,
1774        ifd: *mut ORIfdDirRef,
1775        id: *mut u16,
1776        type_: *mut ExifTagType,
1777        value: *mut ORMetaValueRef,
1778    ) -> ::std::os::raw::c_int;
1779}
1780extern "C" {
1781    #[doc = " @brief Free the iterator"]
1782    #[doc = " @param iterator The iterator to free."]
1783    pub fn or_metadata_iterator_free(iterator: ORMetadataIteratorRef);
1784}
1785extern "C" {
1786    #[doc = " @brief Return a NULL terminated list of extensions that the library supposedly handle."]
1787    #[doc = ""]
1788    #[doc = " @return A NULL terminated list. Owned the library."]
1789    pub fn or_get_file_extensions() -> *mut *const ::std::os::raw::c_char;
1790}
1791extern "C" {
1792    #[doc = " @brief Create a new %RawFile object from a file."]
1793    #[doc = " @param filename The path to the file to open."]
1794    #[doc = " @param type The hint for the file type. Pass %OR_RAWFILE_TYPE_UNKNOWN to let the library"]
1795    #[doc = " guess."]
1796    #[doc = " @return A new allocated RawFile pointer. Must be freed with %or_rawfile_release()."]
1797    pub fn or_rawfile_new(
1798        filename: *const ::std::os::raw::c_char,
1799        type_: or_rawfile_type,
1800    ) -> ORRawFileRef;
1801}
1802extern "C" {
1803    #[doc = " @brief Create a new %RawFile object from a memory buffer."]
1804    #[doc = " @param buffer The memory buffer: bytes from the RAW file."]
1805    #[doc = " @param len The length of the memory buffer in bytes."]
1806    #[doc = " @param type The hint for the file type. Pass %OR_RAWFILE_TYPE_UNKNOWN to let the library"]
1807    #[doc = " guess."]
1808    #[doc = " @return A new allocated RawFile pointer. Must be freed with %or_rawfile_release()."]
1809    pub fn or_rawfile_new_from_memory(
1810        buffer: *const u8,
1811        len: u32,
1812        type_: or_rawfile_type,
1813    ) -> ORRawFileRef;
1814}
1815extern "C" {
1816    #[doc = " @brief Release the %RawFile."]
1817    #[doc = " @param [in] rawfile The %RawFile object to release."]
1818    #[doc = " @return An error code. %OR_ERROR_NOT_AREF if the pointer is NULL."]
1819    pub fn or_rawfile_release(rawfile: ORRawFileRef) -> or_error;
1820}
1821extern "C" {
1822    #[doc = " @brief Get the %RawFile type"]
1823    #[doc = ""]
1824    #[doc = " @return The type from %or_rawfile_type. It isn't necessarily what was passed"]
1825    #[doc = " at creation time."]
1826    pub fn or_rawfile_get_type(rawfile: ORRawFileRef) -> or_rawfile_type;
1827}
1828extern "C" {
1829    #[doc = " @brief Return the type id to identify the exact file type."]
1830    #[doc = ""]
1831    #[doc = " @return The type ID. It is a combination of vendor ID and camera ID."]
1832    #[doc = ""]
1833    #[doc = " @see %or_rawfile_typeid."]
1834    pub fn or_rawfile_get_typeid(rawfile: ORRawFileRef) -> or_rawfile_typeid;
1835}
1836extern "C" {
1837    #[doc = " @brief Return the type id to identify the vendor."]
1838    #[doc = ""]
1839    #[doc = " @return The vendor ID. Use the constants values to match."]
1840    pub fn or_rawfile_get_vendorid(rawfile: ORRawFileRef) -> or_rawfile_typeid;
1841}
1842extern "C" {
1843    #[doc = " @brief Get the the array of thumbnail sizes."]
1844    #[doc = ""]
1845    #[doc = " @param rawfile The RawFile."]
1846    #[doc = " @param [out] size The size of the array is returned"]
1847    #[doc = " @return The array. It is owned by the raw file"]
1848    pub fn or_rawfile_get_thumbnail_sizes(rawfile: ORRawFileRef, size: *mut usize) -> *const u32;
1849}
1850extern "C" {
1851    #[doc = " @brief Get a thumbnail from a RawFile.."]
1852    #[doc = ""]
1853    #[doc = " Get a thumbnail close to the preferred size. If there is no exact match, it"]
1854    #[doc = " will prefer a bigger thumbnail so that you can downsize it."]
1855    #[doc = ""]
1856    #[doc = " Return an error in case or error. %OR_ERROR_NOT_FOUND if no thumbnail can be"]
1857    #[doc = " found."]
1858    #[doc = ""]
1859    #[doc = " @param rawfile The RawFile object."]
1860    #[doc = " @param preferred_size The requested preferred size."]
1861    #[doc = " @param [in/out] thumb The Thumbnail object to store the data."]
1862    #[doc = " @return An error code. %OR_ERROR_NONE in case of success."]
1863    pub fn or_rawfile_get_thumbnail(
1864        rawfile: ORRawFileRef,
1865        preferred_size: u32,
1866        thumb: ORThumbnailRef,
1867    ) -> or_error;
1868}
1869extern "C" {
1870    #[doc = " @brief Get the RawData out of the RawFile."]
1871    #[doc = ""]
1872    #[doc = " Will return an error code: %OR_ERROR_NOT_FOUND if the RAW data can't be"]
1873    #[doc = " located. This likely indicate a file that isn't properly supported."]
1874    #[doc = ""]
1875    #[doc = " The RawData object will contain the uncompress RAW data if possible (unless"]
1876    #[doc = " otherwise requested)."]
1877    #[doc = ""]
1878    #[doc = " @param rawfile The RawFile."]
1879    #[doc = " @param [in/out] rawdata An allocated RawData object. Pass %OR_OPTIONS_DONT_DECOMPRESS if"]
1880    #[doc = " you don't want the RAW data stream to be decompressed, %OR_OPTIONS_NONE otherwise."]
1881    #[doc = " @param options Some options."]
1882    #[doc = " @return An error code or %OR_ERROR_NONE on success."]
1883    pub fn or_rawfile_get_rawdata(
1884        rawfile: ORRawFileRef,
1885        rawdata: ORRawDataRef,
1886        options: u32,
1887    ) -> or_error;
1888}
1889extern "C" {
1890    #[doc = " @brief Get the rendered image from the raw file"]
1891    #[doc = " @param rawfile The raw file."]
1892    #[doc = " @param rawdata The preallocated bitmap data."]
1893    #[doc = " @param options Option for rendering. Pass %OR_OPTIONS_NONE for now."]
1894    #[doc = " @return An error code. %OR_ERROR_NOTAREF is %rawfile is NULL."]
1895    pub fn or_rawfile_get_rendered_image(
1896        rawfile: ORRawFileRef,
1897        rawdata: ORBitmapDataRef,
1898        options: u32,
1899    ) -> or_error;
1900}
1901extern "C" {
1902    #[doc = " @brief Get the orientation."]
1903    #[doc = ""]
1904    #[doc = " This is a convenince method, equivalent to getting the value of"]
1905    #[doc = " %EXIF_TAG_ORIENTATION."]
1906    #[doc = ""]
1907    #[doc = " @param rawfile The RawFile object."]
1908    #[doc = " @return the orientation using EXIF semantics. If there is no orientation"]
1909    #[doc = " attribute, return 0."]
1910    pub fn or_rawfile_get_orientation(rawfile: ORRawFileRef) -> i32;
1911}
1912extern "C" {
1913    #[doc = " @brief Get the first colour matrix."]
1914    #[doc = ""]
1915    #[doc = "  The error code will be one of the following: %OR_ERROR_BUF_TOO_SMALL if"]
1916    #[doc = "  %matrix is too small. Check the value of %size to know how much you need."]
1917    #[doc = "  %OR_ERROR_NOT_IMPLEMENTED if there is no matrix in the file nor built-in"]
1918    #[doc = "  matrices."]
1919    #[doc = ""]
1920    #[doc = "  Call %or_rawfile_get_colour_matrix_origin() if you want to know if it is a built-in"]
1921    #[doc = "  matrix."]
1922    #[doc = ""]
1923    #[doc = "  @see %or_rawfile_get_colour_matrix_origin()"]
1924    #[doc = ""]
1925    #[doc = "  @param rawfile The RAW file object"]
1926    #[doc = "  @param [int] matrix The storage array for the matrix"]
1927    #[doc = "  @param [in/out] size The size of the %matrix array. On output the actual size of the matrix."]
1928    #[doc = "  @return An error codex."]
1929    pub fn or_rawfile_get_colourmatrix1(
1930        rawfile: ORRawFileRef,
1931        matrix: *mut f64,
1932        size: *mut u32,
1933    ) -> or_error;
1934}
1935extern "C" {
1936    #[doc = " @brief Get the second colour matrix."]
1937    #[doc = ""]
1938    #[doc = " See %or_rawfile_get_colourmatrix1 for details. Will return %OR_ERROR_INVALID_PARAM if the"]
1939    #[doc = " matrix doesn't exist in the file. There won't be a built-in matrix."]
1940    #[doc = ""]
1941    #[doc = " @see %or_rawfile_get_colourmatrix1()"]
1942    pub fn or_rawfile_get_colourmatrix2(
1943        rawfile: ORRawFileRef,
1944        matrix: *mut f64,
1945        size: *mut u32,
1946    ) -> or_error;
1947}
1948extern "C" {
1949    #[doc = " @brief Get calibration illuminant for the first colour matrix."]
1950    #[doc = ""]
1951    #[doc = " @return The Exif value. See %ExifLightsourceValue. %EV_LIGHTSOURCE_UNKNOWN means the"]
1952    #[doc = " matrix is not found."]
1953    #[doc = ""]
1954    #[doc = " @see %ExifLightsourceValue."]
1955    pub fn or_rawfile_get_calibration_illuminant1(rawfile: ORRawFileRef) -> ExifLightsourceValue;
1956}
1957extern "C" {
1958    #[doc = " @brief Get calibration illuminant for the second colour matrix."]
1959    #[doc = ""]
1960    #[doc = " @see %or_rawfile_get_calibration_illuminant1"]
1961    pub fn or_rawfile_get_calibration_illuminant2(rawfile: ORRawFileRef) -> ExifLightsourceValue;
1962}
1963extern "C" {
1964    #[doc = " @brief Get the colour matrix origin for file."]
1965    #[doc = ""]
1966    #[doc = "  This allow to determine if it is provided by the file or as a hardcoded"]
1967    #[doc = "  value in the library."]
1968    #[doc = ""]
1969    #[doc = "  @param rawfile The RawFile object"]
1970    #[doc = "  @return The colour matrix origin"]
1971    pub fn or_rawfile_get_colour_matrix_origin(rawfile: ORRawFileRef) -> or_colour_matrix_origin;
1972}
1973extern "C" {
1974    #[doc = " @brief Get the metadata value"]
1975    #[doc = " @param rawfile the RawFile object."]
1976    #[doc = " @param meta_index the index value which a bit OR between a namespace and an index"]
1977    #[doc = " @return a const MetaValue, owned by the %RawFile"]
1978    pub fn or_rawfile_get_metavalue(rawfile: ORRawFileRef, meta_index: i32) -> ORConstMetaValueRef;
1979}
1980extern "C" {
1981    #[doc = " @brief Get an IFD directory"]
1982    #[doc = ""]
1983    #[doc = " @param rawfile The %RawFile object."]
1984    #[doc = " @param ifd The IFD you want, from %or_ifd_dir_type."]
1985    #[doc = " @return An IfdDir. Must be freed with %or_ifd_release()"]
1986    #[doc = ""]
1987    #[doc = " @see %or_ifd_dir_type"]
1988    pub fn or_rawfile_get_ifd(rawfile: ORRawFileRef, ifd: or_ifd_dir_type) -> ORIfdDirRef;
1989}
1990extern "C" {
1991    #[doc = " @brief Get a metadata iterator."]
1992    #[doc = ""]
1993    #[doc = " @param rawfile The RawFile object."]
1994    #[doc = " @return The metadata iterator. Must be freed with %or_metadata_iterator_free()"]
1995    pub fn or_rawfile_get_metadata_iterator(rawfile: ORRawFileRef) -> ORMetadataIteratorRef;
1996}
1997#[repr(u32)]
1998#[doc = " @brief Debug levels."]
1999#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2000pub enum _debug_level {
2001    ERROR = 0,
2002    WARNING = 1,
2003    NOTICE = 2,
2004    DEBUG1 = 3,
2005    DEBUG2 = 4,
2006}
2007#[doc = " @brief Debug levels."]
2008pub use self::_debug_level as debug_level;
2009extern "C" {
2010    #[doc = " @brief Set the debug level."]
2011    pub fn or_debug_set_level(lvl: debug_level);
2012}