1 #ifndef SAMPLER_H_INCLUDED
2 #define SAMPLER_H_INCLUDED
3 #include "dng_matrix.h"
4 #include "dng_hue_sat_map.h"
5 #include "dng_tone_curve.h"
6 #include "dng_1d_table.h"
7 #include "lcms.h"
8 
9 class Sampler {
10 private:
11   dng_matrix fm;
12   dng_matrix rm;
13   dng_matrix cam2rgb_matrix;
14   dng_matrix rgb2xyz_matrix;
15   dng_hue_sat_map hsm;  // Hue Saturation Map
16   dng_hue_sat_map ltd;  // Profile Look Table
17   dng_1d_table tc;      // Tone curve
18   real64 maxrgb;
19   real64 maxxyz;
20 public:
21   Sampler(const dng_matrix &nfm);
22   void setfm(const dng_matrix &nfm);
23   dng_matrix getfm();
24   void sethsm(const dng_hue_sat_map &nhsm);
25   void settc(const dng_tone_curve &ntc);
26   void setltd(const dng_hue_sat_map &nltd);
27   dng_vector cam2xyz(const dng_vector &cam, int test);
28   dng_vector cam2rgb(const dng_vector &cam, int test);
29   real64 getmaxrgb();
30   real64 getmaxxyz();
31 };
32 
33 extern "C" {
34 int dcpSampler(register WORD in[],
35 	       register WORD out[],
36 	       register LPVOID cargo);
37 int dcpTest1(register WORD in[],
38 	     register WORD out[],
39 	     register LPVOID cargo);
40 int dcpTest2(register WORD in[],
41 	     register WORD out[],
42 	     register LPVOID cargo);
43 }
44 #endif
45