Files
rawTherapee/rtengine/camconst.h
torger 194eaa504e - Issue 2013: Sony ARW2 files are now 14 bit as they should be so we get full DR (truncated to 12 bit before), also fixed a buffer overrun bug for ARW2 decoding, black level constants updated to 14 bit
- Added missing Leaf digital back model names in dcraw code
- Issue 2007 (aperture scaling in camconst.json): don't scale black levels, updated doc
- camconst.json can now have several model names per entry (makes the file more compact as many cameras share constants)
- Added Canon 5Dmk3 camconst.json entry, with data from ilias giarimis
- Added a couple of simple Sony entries to camconst.json to show that arw2 is 14 bit now
2013-10-22 14:04:23 +02:00

56 lines
1.4 KiB
C++

/*
* This file is part of RawTherapee.
*/
#ifndef __CAMCONST__
#define __CAMCONST__
#include <glibmm.h>
#include <map>
namespace rtengine {
struct camera_const_levels {
int levels[4];
};
class CameraConst {
private:
Glib::ustring make_model;
short dcraw_matrix[12];
int white_max;
std::map<int, struct camera_const_levels> mLevels[2];
std::map<float, float> mApertureScaling;
CameraConst();
~CameraConst();
static bool parseLevels(CameraConst *cc, int bw, void *ji);
static bool parseApertureScaling(CameraConst *cc, void *ji);
bool get_Levels(struct camera_const_levels & lvl, int bw, int iso, float fnumber);
public:
static CameraConst *parseEntry(void *cJSON, const char *make_model);
bool has_dcrawMatrix(void);
void update_dcrawMatrix(const short *other);
const short *get_dcrawMatrix(void);
int get_BlackLevel(int idx, int iso_speed);
int get_WhiteLevel(int idx, int iso_speed, float fnumber);
void update_Levels(const CameraConst *other);
};
class CameraConstantsStore {
private:
std::map<Glib::ustring, CameraConst *> mCameraConstants;
CameraConstantsStore();
bool parse_camera_constants_file(Glib::ustring filename);
public:
static void initCameraConstants(Glib::ustring baseDir, Glib::ustring userSettingsDir);
static CameraConstantsStore *getInstance(void);
CameraConst *get(const char make[], const char model[]);
};
}
#endif