summaryrefslogtreecommitdiff
path: root/backend/canon_dr.h
diff options
context:
space:
mode:
Diffstat (limited to 'backend/canon_dr.h')
-rw-r--r--backend/canon_dr.h23
1 files changed, 19 insertions, 4 deletions
diff --git a/backend/canon_dr.h b/backend/canon_dr.h
index 4ffb360..a945d00 100644
--- a/backend/canon_dr.h
+++ b/backend/canon_dr.h
@@ -167,11 +167,21 @@ struct scanner
int max_y_fb;
int can_color; /* actually might be in vpd, but which bit? */
+
int need_ccal; /* scanner needs software to help with afe calibration */
- int need_fcal; /* scanner needs software to help with fine calibration */
- int need_fcal_buffer; /* software to apply calibration stored in scanner*/
int ccal_version; /* 0 in most scanners, 3 in newer ones */
+ int fcal_src; /* where fine offset/gain calibration data comes from */
+ int fcal_dest; /* where fine offset/gain calibration data is used */
+
+#define FCAL_SRC_NONE 0 /* scanner does not require fine calibration */
+#define FCAL_SRC_SCAN 1 /* make calibration scans, store gain/offset in struct */
+#define FCAL_SRC_HW 2 /* calibration permanently stored in scanner, downloaded into struct */
+
+#define FCAL_DEST_NONE 0 /* scanner does not require fine calibration */
+#define FCAL_DEST_SW 1 /* use gain/offset in struct to adjust output in software */
+#define FCAL_DEST_HW 2 /* send calibration data into scanner for use in hardware */
+
int has_counter;
int has_rif;
int has_adf;
@@ -304,7 +314,7 @@ struct scanner
unsigned char lut[256];
/* --------------------------------------------------------------------- */
- /* values used by the software enhancment code (deskew, crop, etc) */
+ /* values used by the software enhancement code (deskew, crop, etc) */
SANE_Status deskew_stat;
int deskew_vals[2];
double deskew_slope;
@@ -441,6 +451,7 @@ enum {
#define GRAY_INTERLACE_NONE 0
#define GRAY_INTERLACE_2510 1
#define GRAY_INTERLACE_gG 2
+#define GRAY_INTERLACE_C120 3
#define COLOR_INTERLACE_UNK 0
#define COLOR_INTERLACE_RGB 1
@@ -450,12 +461,14 @@ enum {
#define COLOR_INTERLACE_RRGGBB 5
#define COLOR_INTERLACE_rRgGbB 6
#define COLOR_INTERLACE_2510 7
+#define COLOR_INTERLACE_C120 8
#define DUPLEX_INTERLACE_NONE 0
#define DUPLEX_INTERLACE_FfBb 1
#define DUPLEX_INTERLACE_FBfb 2
#define DUPLEX_INTERLACE_2510 3
#define DUPLEX_INTERLACE_fFBb 4
+#define DUPLEX_INTERLACE_PER_CHANNEL 5
#define JPEG_INTERLACE_ALT 0
#define JPEG_INTERLACE_NONE 1
@@ -609,7 +622,9 @@ static SANE_Status gain_buffers (struct scanner *s, int setup);
static SANE_Status calibrate_AFE(struct scanner *s);
static SANE_Status calibrate_fine(struct scanner *s);
-static SANE_Status calibrate_fine_buffer(struct scanner *s);
+static SANE_Status calibrate_fine_src_scan(struct scanner *s);
+static SANE_Status calibrate_fine_src_hw(struct scanner *s);
+static SANE_Status calibrate_fine_dest_hw(struct scanner *s);
static SANE_Status write_AFE (struct scanner *s);
static SANE_Status calibration_scan (struct scanner *s, int);