3
* Copyright 2008-2010 LibRaw LLC (info@libraw.org)
4
* Created: Sat Mar 8 , 2008
6
* LibRaw C data structures
9
LibRaw is free software; you can redistribute it and/or modify
10
it under the terms of the one of three licenses as you choose:
12
1. GNU LESSER GENERAL PUBLIC LICENSE version 2.1
13
(See file LICENSE.LGPL provided in LibRaw distribution archive for details).
15
2. COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0
16
(See file LICENSE.CDDL provided in LibRaw distribution archive for details).
18
3. LibRaw Software License 27032010
19
(See file LICENSE.LibRaw.pdf provided in LibRaw distribution archive for details).
23
#ifndef _LIBRAW_TYPES_H
24
#define _LIBRAW_TYPES_H
26
#include <sys/types.h>
33
#error OpenMP is not supported under MS Visual Studio
47
#include "libraw_const.h"
48
#include "libraw_version.h"
51
typedef __int64 INT64;
52
typedef unsigned __int64 UINT64;
54
typedef long long INT64;
55
typedef unsigned long long UINT64;
58
typedef unsigned char uchar;
59
typedef unsigned short ushort;
65
# ifdef LIBRAW_BUILDLIB
66
# define DllDef __declspec( dllexport )
68
# define DllDef __declspec( dllimport )
77
typedef void (* memory_callback)(void * data, const char *file, const char *where);
79
DllDef void default_memory_callback(void *data,const char *file, const char *where);
81
typedef void (*data_callback)(void *data,const char *file, const int offset);
83
DllDef void default_data_callback(void *data,const char *file, const int offset);
85
typedef int (* progress_callback) (void *data,enum LibRaw_progress stage, int iteration,int expected);
89
memory_callback mem_cb;
92
data_callback data_cb;
95
progress_callback progress_cb;
96
void *progresscb_data;
102
enum LibRaw_image_formats type;
107
#ifdef LIBRAW_LIBRARY_BUILD
109
#pragma omp firstprivate(colors,height,width)
112
unsigned int data_size;
113
unsigned char data[1];
114
}libraw_processed_image_t;
123
unsigned dng_version;
141
#ifdef LIBRAW_LIBRARY_BUILD
143
#pragma omp firstprivate(iheight,iwidth)
149
ushort right_margin,bottom_margin;
151
} libraw_image_sizes_t;
155
int format, key_off, t_black, black_off, split_col, tag_21a;
162
unsigned curve_state : 3;
163
unsigned rgb_cam_state : 3;
164
unsigned cmatrix_state : 3;
165
unsigned pre_mul_state : 3;
166
unsigned cam_mul_state : 3;
167
unsigned filler : 17;
168
} color_data_state_t;
172
color_data_state_t color_flags;
179
ushort curve[0x10000];
182
unsigned channel_maximum[4];
183
struct ph1_t phase_one_data;
188
unsigned profile_length;
193
enum LibRaw_thumbnail_formats tformat;
210
unsigned gpsdata[32];
217
unsigned greybox[4]; /* -A x1 y1 x2 y2 */
218
double aber[4]; /* -C */
219
double gamm[6]; /* -g */
220
float user_mul[4]; /* -r mul0 mul1 mul2 mul3 */
221
unsigned shot_select; /* -s */
222
float bright; /* -b */
223
float threshold; /* -n */
224
#ifdef LIBRAW_LIBRARY_BUILD
226
#pragma omp firstprivate(threshold)
229
int half_size; /* -h */
230
int four_color_rgb; /* -f */
231
int document_mode; /* -d/-D */
232
int highlight; /* -H */
233
int use_auto_wb; /* -a */
234
int use_camera_wb; /* -w */
235
int use_camera_matrix; /* +M/-M */
236
int output_color; /* -o */
237
char *output_profile; /* -o */
238
char *camera_profile; /* -p */
239
char *bad_pixels; /* -P */
240
char *dark_frame; /* -K */
241
int output_bps; /* -4 */
242
int output_tiff; /* -T */
243
int user_flip; /* -t */
244
int user_qual; /* -q */
245
int user_black; /* -k */
246
int user_sat; /* -S */
248
int med_passes; /* -m */
249
float auto_bright_thr;
250
float adjust_maximum_thr;
251
int no_auto_bright; /* -W */
252
int use_fuji_rotate;/* -j */
253
enum LibRaw_filtering filtering_mode;
254
}libraw_output_params_t;
267
ushort (*ph1_black)[2];
272
unsigned int progress_flags;
273
unsigned int process_warnings;
274
libraw_iparams_t idata;
275
libraw_image_sizes_t sizes;
276
libraw_colordata_t color;
277
libraw_imgother_t other;
278
libraw_thumbnail_t thumbnail;
279
libraw_masked_t masked_pixels;
281
#ifdef LIBRAW_LIBRARY_BUILD
283
#pragma omp shared(image)
286
libraw_output_params_t params;