diff options
author | Jörg Frings-Fürst <debian@jff-webhosting.net> | 2021-02-16 18:25:42 +0100 |
---|---|---|
committer | Jörg Frings-Fürst <debian@jff-webhosting.net> | 2021-02-16 18:25:42 +0100 |
commit | 64ddd1a4dfcefd11f662f5cf4bb05b590d901a97 (patch) | |
tree | 4303648095deff998ae20c2393b56db527742ac9 /backend/canon_dr.h | |
parent | 5793a221e112fa49073de0137d6bfa750a61b0a1 (diff) | |
parent | ecaaf250cb33ff61f37a7b441f2337584a655350 (diff) |
Merge branch 'feature/upstream' into develop
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); |