summaryrefslogtreecommitdiff
path: root/spectro/i1d3.h
diff options
context:
space:
mode:
Diffstat (limited to 'spectro/i1d3.h')
-rw-r--r--spectro/i1d3.h13
1 files changed, 10 insertions, 3 deletions
diff --git a/spectro/i1d3.h b/spectro/i1d3.h
index 96de478..6d0eb85 100644
--- a/spectro/i1d3.h
+++ b/spectro/i1d3.h
@@ -80,7 +80,8 @@ typedef enum {
i1d3_munkdisp = 1, /* ColorMunki Display */
i1d3_oem = 2, /* OEM */
i1d3_nec_ssp = 3, /* NEC SpectraSensor Pro */
- i1d3_quato_sh3 = 4 /* Quato Silver Haze 3 */
+ i1d3_quato_sh3 = 4, /* Quato Silver Haze 3 */
+ i1d3_hp_dreamc = 5 /* HP DreameColor */
} i1d3_dtype;
/* Measurement mode */
@@ -106,6 +107,7 @@ struct _i1d3 {
/* (Only accurate if it needed unlocking). */
int status; /* 0 if status is ok (not sure what this is) */
char serial_no[21]; /* "I1-11.A-01.100999.02" or "CM-11.A-01.100999.02" */
+ char vers_no[11]; /* "A-01", "A-02" */
char prod_name[32]; /* "i1Display3 " or "ColorMunki Display" */
int prod_type; /* 16 bit product type number. i1d3_disppro = 0x0001, */
/* i1d3_munkdisp = 0x0002 */
@@ -126,9 +128,11 @@ struct _i1d3 {
int icx; /* Internal calibration matrix index, 11 = Raw */
int cbid; /* calibration base ID, 0 if not a base */
int refrmode; /* nz if in refresh display mode/double int. time */
- double ccmat[3][3]; /* Optional colorimeter correction matrix */
icxObserverType obType; /* ccss observer to use */
xspect custObserver[3]; /* Custom ccss observer to use */
+ double ccmat[3][3]; /* Optional colorimeter correction matrix, unity if none. */
+ xspect *samples; /* Copy of current calibration spectral samples, NULL if none */
+ int nsamp; /* Number of samples, 0 if none */
/* Computed factors and state */
int rrset; /* Flag, nz if the refresh rate has been determined */
@@ -136,8 +140,10 @@ struct _i1d3 {
double refrate; /* Measured refresh rate in Hz */
int refrvalid; /* nz if refrate is valid */
double clk_freq; /* Clock frequency (12Mhz) */
+ double omininttime; /* Override minimum integration time = 0.0 = none */
double dinttime; /* default integration time = 0.2 seconds */
- double inttime; /* current integration time = 0.2 seconds */
+ double mininttime; /* current minimum integration time (doubled for refresh) */
+ double inttime; /* current (quantized, doubled) integration time = 0.2 seconds */
double transblend; /* Blend between fixed and adaptive integration */
/* at low light levels */
@@ -147,6 +153,7 @@ struct _i1d3 {
double led_period, led_on_time_prop, led_trans_time_prop; /* Pulse state */
athread *th; /* Diffuser position monitoring thread */
+ volatile int th_en; /* Enable updating diffuser possition */
volatile int th_term; /* nz to terminate thread */
volatile int th_termed; /* nz when thread terminated */
int dpos; /* Diffuser position, 0 = display, 1 = ambient */