diff options
| author | Jörg Frings-Fürst <debian@jff-webhosting.net> | 2020-08-24 18:45:55 +0200 | 
|---|---|---|
| committer | Jörg Frings-Fürst <debian@jff-webhosting.net> | 2020-08-24 18:45:55 +0200 | 
| commit | a77bc1fcbdf83cfdac9570c0a0ac886b5534c90f (patch) | |
| tree | d839746371ecb8ed64ac81d2e37c11fcd25a00ac /backend/avision.h | |
| parent | 787fb1d54ec9ee5fb941ae897fb201feb9cb2fd1 (diff) | |
| parent | 2b3e02411ecc09e7d41741b5587655c9b2f955b7 (diff) | |
Merge branch 'feature/upstream' into develop
Diffstat (limited to 'backend/avision.h')
| -rw-r--r-- | backend/avision.h | 64 | 
1 files changed, 60 insertions, 4 deletions
| diff --git a/backend/avision.h b/backend/avision.h index 58552c0..9017bf2 100644 --- a/backend/avision.h +++ b/backend/avision.h @@ -81,6 +81,12 @@ typedef struct Avision_Connection {  } Avision_Connection; +/* structure for ADF offsets in mm */ +typedef struct mm_offset { +  double top; +  double bottom; +} mm_offset; +  typedef struct Avision_HWEntry {    const char* scsi_mfg;    const char* scsi_model; @@ -184,9 +190,6 @@ typedef struct Avision_HWEntry {      /* does the scanner contain a Cancel button? */    #define AV_CANCEL_BUTTON ((uint64_t)1<<28) -    /* is the rear image offset? */ -  #define AV_REAR_OFFSET ((uint64_t)1<<29) -      /* some devices do not need a START_SCAN, even hang with it */    #define AV_NO_START_SCAN ((uint64_t)1<<30) @@ -204,9 +207,46 @@ typedef struct Avision_HWEntry {      /* For scanners which need to have their firmware read to properly function. */    #define AV_FIRMWARE ((uint64_t)1<<35) +  /* at least Kodak i1120 claims no calibration needed but windows driver does it anyways */ +  #define AV_FORCE_CALIB ((uint64_t)1<<36) + +  /* at least Kodak i1120 does not have an explicit "quality-scan" mode */ +  #define AV_NO_QSCAN_MODE ((uint64_t)1<<37) + +  /* at least Kodak i1120 optical DPI is used for overscan calculation */ +  #define AV_OVERSCAN_OPTDPI ((uint64_t)1<<38) + +  /* some scanners support fast feed-out of the sheet when cancelling a running scan */ +  #define AV_FASTFEED_ON_CANCEL ((uint64_t)1<<39) + +  /* at least Kodak i1120 does not have an explicit "quality-calibration" mode */ +  #define AV_NO_QCALIB_MODE ((uint64_t)1<<40) + +  /* Kodak i1120 needs gamma = 1.0 to give decent results */ +  #define AV_GAMMA_10 ((uint64_t)1<<41) + +  /* Kodak i1120 has a different gamma table format (like a uint16/double array) */ +  #define AV_GAMMA_UINT16 ((uint64_t)1<<42) + +  /* Kodak i1120 has single-sheet and multi-sheet scan modes. This option sets +     bitset3[7] which enables multi-sheet scan by default so there is no pause +     of 1s between two sheets in ADF scan mode. This also fixes some offsets +     when scanning multiple sheets. */ +  #define AV_MULTI_SHEET_SCAN ((uint64_t)1<<43) +      /* maybe more ...*/    uint64_t feature_type; +  /* ADF offsets in mm */ +  struct { +    float first; /* offset difference first sheet */ +    mm_offset front; /* front-only */ +    struct { +      mm_offset front; +      mm_offset rear; +    } duplex; +  } offset; +  } Avision_HWEntry;  typedef enum { @@ -301,6 +341,13 @@ enum Avision_Option    NUM_OPTIONS            /* must come last */  }; +/* structure for ADF offsets in pixels of HW res */ +typedef struct hwpx_offset { +  int top; +  int bottom; +} hwpx_offset; + +  typedef struct Avision_Dimensions  {    /* in dpi */ @@ -315,7 +362,11 @@ typedef struct Avision_Dimensions    /* in pixels */    int line_difference; -  int rear_offset; /* in pixels of HW res */ + +  struct { +    hwpx_offset front; +    hwpx_offset rear; +  } offset;    /* interlaced duplex scan */    SANE_Bool interlaced_duplex; @@ -407,6 +458,8 @@ typedef struct Avision_Device    int inquiry_bits_per_channel;    int inquiry_no_gray_modes; +  SANE_Bool adf_offset_compensation; +    int scsi_buffer_size; /* nice to have SCSI buffer size */    int read_stripe_size; /* stripes to be read at-a-time */ @@ -451,6 +504,7 @@ typedef struct Avision_Scanner    /* Internal data for duplex scans */    char duplex_rear_fname [PATH_MAX]; +  char duplex_offtmp_fname [PATH_MAX];    SANE_Bool duplex_rear_valid;    color_mode c_mode; @@ -670,6 +724,8 @@ typedef struct command_set_window_window  	uint8_t line_width_msb;  	uint8_t line_count_msb;  	uint8_t background_lines; + +	uint8_t single_sheet_scan; /* from Kodak SVT tool */        } normal;        struct { | 
