diff options
Diffstat (limited to 'backend/canon_dr.h')
-rw-r--r-- | backend/canon_dr.h | 23 |
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); |