kopia lustrzana https://gitlab.com/sane-project/backends
Updated Microtek2 backend to version 0.9 build 20010828 (from
Karsten Festag <karsten.festag@t-online.de>). Henning Meier-Geinitz <henning@meier-geinitz.de>DEVEL_2_0_BRANCH-1
rodzic
b5045d4c86
commit
7c642ae706
|
@ -90,12 +90,12 @@
|
|||
|
||||
#define MICROTEK2_MAJOR 0
|
||||
#define MICROTEK2_MINOR 9
|
||||
#define MICROTEK2_BUILD "20010517"
|
||||
#define MICROTEK2_BUILD "20010828"
|
||||
#define MICROTEK2_CONFIG_FILE "microtek2.conf"
|
||||
|
||||
|
||||
/******************************************************************************/
|
||||
/* defines that ar common to all devices */
|
||||
/* defines that are common to all devices */
|
||||
/******************************************************************************/
|
||||
|
||||
#define MD_RESOLUTION_DEFAULT 72 << SANE_FIXED_SCALE_SHIFT
|
||||
|
@ -193,7 +193,7 @@
|
|||
d[4]=0x00; d[5]=0x00; d[6]=0x00; d[7]=0x00; \
|
||||
d[8]=0x28; d[9]=0x00
|
||||
#define RSA_CMD_L 10
|
||||
#define RSA_SETMEDIA(d,p) d[5] |= ((p) & 0x77)
|
||||
#define RSA_SETMEDIA(d,p) d[5] |= ((p) & 0x77)
|
||||
#define RSA_TRANSFERLENGTH 40
|
||||
|
||||
#define RSA_COLOR(d,s) d = (((s)[0] >> 7) & 0x01)
|
||||
|
@ -207,8 +207,9 @@
|
|||
d[1] = (((s)[1] >> 4) & 0x03); \
|
||||
d[2] = (((s)[1] >> 2) & 0x03); \
|
||||
}
|
||||
#define RSA_NIS(d,s) d = ((s)[1] & 0x02)
|
||||
#define RSA_DATSEQ(d,s) d = ((s)[1] & 0x01)
|
||||
#define RSA_CCDGAP(d,s) d = (s)[2]
|
||||
#define RSA_CCDGAP(d,s) d = (s)[2]
|
||||
#define RSA_MAX_XRESOLUTION(d,s) d = ((s)[3] << 8) + (s)[4]
|
||||
#define RSA_MAX_YRESOLUTION(d,s) d = ((s)[5] << 8) + (s)[6]
|
||||
#define RSA_GEOWIDTH(d,s) d = ((s)[7] << 8) + (s)[8]
|
||||
|
@ -218,16 +219,16 @@
|
|||
#define RSA_SCANMODE(d,s) d = (s)[13] & 0x0f
|
||||
#define RSA_CCDPIXELS(d,s) d = ((s)[14] << 8) + (s)[15]
|
||||
#define RSA_LUTCAP(d,s) d = (s)[16] & 0x1f
|
||||
#define RSA_DNLDPTRN(d,s) d = (((s)[17] >> 7) & 0x01)
|
||||
#define RSA_GRAINSLCT(d,s) d = (s)[17] & 0x7f
|
||||
#define RSA_SUPPOPT(d,s) d = (s)[18] & 0xf3
|
||||
#define RSA_DNLDPTRN(d,s) d = (((s)[17] >> 7) & 0x01)
|
||||
#define RSA_GRAINSLCT(d,s) d = (s)[17] & 0x7f
|
||||
#define RSA_SUPPOPT(d,s) d = (s)[18] & 0xf3
|
||||
#define RSA_CALIBWHITE(d,s) d = ((s)[19] << 24) + ((s)[20] << 16) \
|
||||
+ ((s)[21] << 8) + (s)[22]
|
||||
#define RSA_CALIBSPACE(d,s) d = ((s)[23] << 24) + ((s)[24] << 16) \
|
||||
+ ((s)[25] << 8) + (s)[26]
|
||||
#define RSA_NLENS(d,s) d = (s)[27]
|
||||
#define RSA_NWINDOWS(d,s) d = (s)[28]
|
||||
#define RSA_SHTRNSFEREQU(d,s) d = (((s)[29] >> 2) & 0x3f)
|
||||
#define RSA_SHTRNSFEREQU(d,s) d = (((s)[29] >> 2) & 0x3f)
|
||||
#define RSA_SCNBTTN(d,s) d = (((s)[29] >> 1) & 0x01)
|
||||
#define RSA_BUFTYPE(d,s) d = (s)[29] & 0x01
|
||||
#define RSA_REDBALANCE(d,s) d = ((s)[30] << 8) | (s)[31]
|
||||
|
@ -472,7 +473,7 @@
|
|||
/* READ IMAGE STATUS */
|
||||
#define RIS_SET_CMD(d) (d)[0] = 0x28; (d)[1] = 0x00; (d)[2] = 0x83; \
|
||||
(d)[3] = 0x00; (d)[4] = 0x00; (d)[5] = 0x00; \
|
||||
(d)[6] = 0x00; (d)[7] = 0x00; (d)[8] = 0x01; \
|
||||
(d)[6] = 0x00; (d)[7] = 0x00; (d)[8] = 0x00; \
|
||||
(d)[9] = 0x00
|
||||
#define RIS_CMD_L 10
|
||||
#define RIS_SET_PCORMAC(d,p) (d)[4] |= (((p) << 7) & 0x80)
|
||||
|
@ -558,32 +559,38 @@ enum Microtek2_Option
|
|||
/* these options must appear in exactly this order, */
|
||||
/* sane_control_option relies on it */
|
||||
OPT_CHANNEL,
|
||||
OPT_SHADOW,
|
||||
OPT_MIDTONE,
|
||||
OPT_HIGHLIGHT,
|
||||
OPT_SHADOW_R,
|
||||
OPT_SHADOW,
|
||||
OPT_MIDTONE,
|
||||
OPT_HIGHLIGHT,
|
||||
OPT_SHADOW_R,
|
||||
OPT_MIDTONE_R,
|
||||
OPT_HIGHLIGHT_R,
|
||||
OPT_SHADOW_G,
|
||||
OPT_MIDTONE_G,
|
||||
OPT_HIGHLIGHT_G,
|
||||
OPT_SHADOW_B,
|
||||
OPT_MIDTONE_B,
|
||||
OPT_HIGHLIGHT_B,
|
||||
OPT_HIGHLIGHT_R,
|
||||
OPT_SHADOW_G,
|
||||
OPT_MIDTONE_G,
|
||||
OPT_HIGHLIGHT_G,
|
||||
OPT_SHADOW_B,
|
||||
OPT_MIDTONE_B,
|
||||
OPT_HIGHLIGHT_B,
|
||||
OPT_EXPOSURE,
|
||||
OPT_EXPOSURE_R,
|
||||
OPT_EXPOSURE_G,
|
||||
OPT_EXPOSURE_B,
|
||||
|
||||
/*48*/ OPT_SPECIAL,
|
||||
/*49*/ OPT_SPECIAL,
|
||||
OPT_RESOLUTION_BIND,
|
||||
OPT_DISABLE_BACKTRACK,
|
||||
OPT_CALIB_BACKEND,
|
||||
OPT_LIGHTLID35,
|
||||
OPT_TOGGLELAMP,
|
||||
/*54*/ NUM_OPTIONS
|
||||
};
|
||||
|
||||
/*55*/ OPT_COLORBALANCE,
|
||||
OPT_BALANCE_R,
|
||||
OPT_BALANCE_G,
|
||||
OPT_BALANCE_B,
|
||||
OPT_BALANCE_FW,
|
||||
|
||||
/*60*/ NUM_OPTIONS
|
||||
};
|
||||
|
||||
/******************************************************************************/
|
||||
/* value structure for scanner options */
|
||||
|
@ -595,13 +602,124 @@ typedef union {
|
|||
SANE_String s;
|
||||
} Microtek2_Option_Value;
|
||||
|
||||
/******************************************************************************/
|
||||
/* Description of options not included in saneopts.h */
|
||||
/******************************************************************************/
|
||||
|
||||
#define M_NAME_NOBACKTRACK "no-backtracking"
|
||||
#define M_TITLE_NOBACKTRACK "Disable backtracking"
|
||||
#define M_DESC_NOBACKTRACK "If checked the scanner does not perform" \
|
||||
" backtracking."
|
||||
|
||||
#define M_NAME_TOGGLELAMP "toggle-lamp"
|
||||
#define M_TITLE_TOGGLELAMP "Toggle lamp of flatbed"
|
||||
#define M_DESC_TOGGLELAMP "Toggles the lamp of the flatbed"
|
||||
|
||||
#define M_NAME_CALIBBACKEND "backend-calibration"
|
||||
#define M_TITLE_CALIBBACKEND "Calibration by backend"
|
||||
#define M_DESC_CALIBBACKEND "If checked the color calibration before" \
|
||||
" a scan is done by the backend. Uncheck" \
|
||||
" this option if you experience any problem."
|
||||
|
||||
#define M_NAME_LIGHTLID35 "lightlid35"
|
||||
#define M_TITLE_LIGHTLID35 "Use the lightlid-35mm adapter"
|
||||
#define M_DESC_LIGHTLID35 "This option turns off the lamp of the" \
|
||||
" flatbed during a scan. Do not expect" \
|
||||
" excellent results. Maybe this option will" \
|
||||
" be removed in the future."
|
||||
|
||||
#define M_NAME_QUALITY_SCAN "quality_scan"
|
||||
#define M_TITLE_QUALITY_SCAN "Quality scan"
|
||||
#define M_DESC_QUALITY_SCAN "Highest quality but lower speed"
|
||||
|
||||
#define M_NAME_FAST_SCAN "fast_scan"
|
||||
#define M_TITLE_FAST_SCAN "Fast scan"
|
||||
#define M_DESC_FAST_SCAN "Highest speed but lower quality"
|
||||
|
||||
#define M_NAME_AUTOADJUST "lineart-auto-adjust"
|
||||
#define M_TITLE_AUTOADJUST "Automatic adjustment of threshold value"
|
||||
#define M_DESC_AUTOADJUST "If checked the backend automatically tries" \
|
||||
" to determine an optimal value for the" \
|
||||
" threshold."
|
||||
|
||||
#define M_NAME_GAMMA_MODE "gamma-correction"
|
||||
#define M_TITLE_GAMMA_MODE "Gamma correction"
|
||||
#define M_DESC_GAMMA_MODE "Selects the gamma correction mode."
|
||||
|
||||
#define M_NAME_GAMMA_BIND "bind-gamma"
|
||||
#define M_TITLE_GAMMA_BIND "Bind gamma"
|
||||
#define M_DESC_GAMMA_BIND "Use same gamma values for all colour channels."
|
||||
|
||||
#define M_NAME_GAMMA_SCALAR "scalar-gamma"
|
||||
#define M_TITLE_GAMMA_SCALAR "Scalar gamma"
|
||||
#define M_DESC_GAMMA_SCALAR "Selects a value for scalar gamma correction."
|
||||
|
||||
#define M_NAME_GAMMA_SCALAR_R "scalar-gamma-r"
|
||||
#define M_TITLE_GAMMA_SCALAR_R "Scalar gamma red"
|
||||
#define M_DESC_GAMMA_SCALAR_R "Selects a value for scalar gamma correction" \
|
||||
" (red channel)"
|
||||
|
||||
#define M_NAME_GAMMA_SCALAR_G "scalar-gamma-g"
|
||||
#define M_TITLE_GAMMA_SCALAR_G "Scalar gamma green"
|
||||
#define M_DESC_GAMMA_SCALAR_G "Selects a value for scalar gamma correction" \
|
||||
" (green channel)"
|
||||
|
||||
#define M_NAME_GAMMA_SCALAR_B "scalar-gamma-b"
|
||||
#define M_TITLE_GAMMA_SCALAR_B "Scalar gamma blue"
|
||||
#define M_DESC_GAMMA_SCALAR_B "Selects a value for scalar gamma correction" \
|
||||
" (blue channel)"
|
||||
|
||||
#define M_NAME_CHANNEL "channel"
|
||||
#define M_TITLE_CHANNEL "Channel"
|
||||
#define M_DESC_CHANNEL "Selects the colour band, \"Master\" means," \
|
||||
" that all colours are affected."
|
||||
|
||||
#define M_NAME_MIDTONE "midtone"
|
||||
#define M_TITLE_MIDTONE "Midtone"
|
||||
#define M_DESC_MIDTONE "Selects which radiance level should be" \
|
||||
" considered \"50 % gray\"."
|
||||
|
||||
#define M_NAME_MIDTONE_R "midtone-r"
|
||||
#define M_TITLE_MIDTONE_R "Midtone for red"
|
||||
#define M_DESC_MIDTONE_R "Selects which radiance level should be" \
|
||||
" considered \"50 % red\"."
|
||||
|
||||
#define M_NAME_MIDTONE_G "midtone-g"
|
||||
#define M_TITLE_MIDTONE_G "Midtone for green"
|
||||
#define M_DESC_MIDTONE_G "Selects which radiance level should be" \
|
||||
" considered \"50 % green\"."
|
||||
|
||||
#define M_NAME_MIDTONE_B "midtone-b"
|
||||
#define M_TITLE_MIDTONE_B "Midtone for blue"
|
||||
#define M_DESC_MIDTONE_B "Selects which radiance level should be" \
|
||||
" considered \"50 % blue\"."
|
||||
|
||||
#define M_NAME_BALANCE_R "balance-r"
|
||||
#define M_TITLE_BALANCE_R "Red balance"
|
||||
#define M_DESC_BALANCE_R "Balance factor for red. A value of 100% means " \
|
||||
"no correction."
|
||||
|
||||
#define M_NAME_BALANCE_G "balance-g"
|
||||
#define M_TITLE_BALANCE_G "Green balance"
|
||||
#define M_DESC_BALANCE_G "Balance factor for green. A value of 100% "\
|
||||
"means no correction."
|
||||
|
||||
#define M_NAME_BALANCE_B "balance-b"
|
||||
#define M_TITLE_BALANCE_B "Blue balance"
|
||||
#define M_DESC_BALANCE_B "Balance factor for blue. A value of 100% means " \
|
||||
"no correction. "
|
||||
|
||||
#define M_NAME_BALANCE_FW "balance-fw"
|
||||
#define M_TITLE_BALANCE_FW "Firmware balance"
|
||||
#define M_DESC_BALANCE_FW "Sets the color balance values to the "\
|
||||
"firmware provided values. "\
|
||||
|
||||
/******************************************************************************/
|
||||
/* Structure that contains global options */
|
||||
/******************************************************************************/
|
||||
|
||||
typedef struct Config_Options
|
||||
{
|
||||
{
|
||||
double strip_height; /* inch */
|
||||
char *no_backtracking; /* enable/disable option for */
|
||||
/* backtracking */
|
||||
|
@ -609,6 +727,7 @@ typedef struct Config_Options
|
|||
char *toggle_lamp; /* enable/disable lightlid35 option */
|
||||
char *backend_calibration; /* calibration by backend */
|
||||
char *auto_adjust; /* automatically choose threshold */
|
||||
char *colorbalance_adjust; /* color balance can be modified */
|
||||
} Config_Options;
|
||||
|
||||
|
||||
|
@ -621,7 +740,7 @@ typedef struct Config_Temp
|
|||
{
|
||||
struct Config_Temp *next;
|
||||
char *device; /* possible device name */
|
||||
Config_Options opts; /* options belonging to this device name */
|
||||
Config_Options opts; /* options belonging to this device name */
|
||||
|
||||
} Config_Temp;
|
||||
|
||||
|
@ -641,9 +760,7 @@ typedef struct Microtek2_Info {
|
|||
SANE_Char model[INQ_MODEL_L + 1];
|
||||
SANE_Char revision[INQ_REV_L + 1];
|
||||
SANE_Byte model_code;
|
||||
|
||||
/* from read scanner attributes */
|
||||
/* #define MI_HAS_COLOR SANE_TRUE */
|
||||
SANE_Bool color;
|
||||
#define MI_HAS_ONEPASS SANE_TRUE
|
||||
SANE_Bool onepass;
|
||||
|
@ -654,7 +771,7 @@ typedef struct Microtek2_Info {
|
|||
SANE_Byte scanner_type;
|
||||
#define MI_HAS_FEPROM SANE_TRUE
|
||||
SANE_Bool feprom;
|
||||
/* MI_DATA_FORMAT_X must correspond to Byte 0 in READ SCANNER ATTRIBUTE */
|
||||
/* MI_DATAFMT_X must correspond to Byte 0 in READ SCANNER ATTRIBUTE */
|
||||
#define MI_DATAFMT_CHUNKY 1
|
||||
#define MI_DATAFMT_LPLCONCAT 2
|
||||
#define MI_DATAFMT_LPLSEGREG 3
|
||||
|
@ -665,6 +782,7 @@ typedef struct Microtek2_Info {
|
|||
#define MI_COLSEQ_BLUE 2
|
||||
#define MI_COLSEQ_ILLEGAL 3
|
||||
u_int8_t color_sequence[RSA_COLORSEQUENCE_L];
|
||||
SANE_Bool new_image_status;
|
||||
#define MI_DATSEQ_RTOL 1
|
||||
u_int8_t direction;
|
||||
SANE_Byte ccd_gap;
|
||||
|
@ -692,7 +810,7 @@ typedef struct Microtek2_Info {
|
|||
#define MI_LUTCAP_4096W 16
|
||||
SANE_Byte lut_cap;
|
||||
#define MI_HAS_DNLDPTRN SANE_TRUE
|
||||
SANE_Bool has_dnldptrn;
|
||||
SANE_Bool has_dnldptrn;
|
||||
SANE_Byte grain_slct;
|
||||
#define MI_OPTDEV_ADF 0x01
|
||||
#define MI_OPTDEV_TMA 0x02
|
||||
|
@ -716,11 +834,6 @@ typedef struct Microtek2_Info {
|
|||
u_int16_t aps_maxframes;
|
||||
} Microtek2_Info;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/******************************************************************************/
|
||||
/* device structure (one for each device in config file) */
|
||||
/******************************************************************************/
|
||||
|
@ -735,14 +848,14 @@ typedef struct Microtek2_Device {
|
|||
#define MD_SOURCE_STRIPE 4
|
||||
Microtek2_Info info[5]; /* detailed scanner spec */
|
||||
SANE_Device sane; /* SANE generic device block */
|
||||
char name[PATH_MAX]; /* name from config file */
|
||||
char name[PATH_MAX]; /* name from config file */
|
||||
|
||||
SANE_Int *custom_gamma_table[4]; /* used for the custom gamma */
|
||||
/* values before a scan starts */
|
||||
/* the following two are derived from lut_cap */
|
||||
int max_lut_size; /* in bytes */
|
||||
int lut_entry_size; /* word or byte transfer in LUT */
|
||||
u_int8_t scan_source;
|
||||
u_int8_t scan_source;
|
||||
double revision;
|
||||
|
||||
/* basically the following two variables should go into the */
|
||||
|
@ -757,13 +870,13 @@ typedef struct Microtek2_Device {
|
|||
#define MD_FLAMP_ON 1
|
||||
#define MD_NCALIB_ON 4
|
||||
#define MD_NTRACK_ON 8
|
||||
#define MD_STICK_ON 16
|
||||
#define MD_STICK_ON 16
|
||||
#define MD_RESERVED17_ON 128
|
||||
#define MD_CURRENT_MODE_FLATBED 0
|
||||
struct {
|
||||
u_int8_t sskip;
|
||||
u_int8_t sskip;
|
||||
u_int8_t stick;
|
||||
u_int8_t ntrack;
|
||||
u_int8_t ntrack;
|
||||
u_int8_t ncalib;
|
||||
u_int8_t tlamp;
|
||||
u_int8_t flamp;
|
||||
|
@ -789,7 +902,7 @@ typedef struct Microtek2_Device {
|
|||
/* by these defines */
|
||||
u_int32_t model_flags;
|
||||
#define MD_NO_SLIDE_MODE 1 /* indicates that it has slide */
|
||||
/* mode, but it does not */
|
||||
/* mode, but it does not */
|
||||
#define MD_DATA_FORMAT_WRONG 2 /* X6 indicates wrong mode for TMA */
|
||||
#define MD_NO_ENHANCEMENTS 4 /* image enhancements do not work */
|
||||
/* (Brightness, contrast, .....) */
|
||||
|
@ -837,7 +950,7 @@ typedef struct Microtek2_Device {
|
|||
#define MD_SOURCESTRING_SLIDE "Slide"
|
||||
SANE_String_Const scansource_list[MD_SOURCESTRING_NUMS + 1];
|
||||
|
||||
#define MD_HALFTONE_NUMS 12
|
||||
#define MD_HALFTONE_NUMS 12
|
||||
#define MD_HALFTONE0 "53-dot screen (53 gray levels)"
|
||||
#define MD_HALFTONE1 "Horiz. screen (65 gray levels)"
|
||||
#define MD_HALFTONE2 "Vert. screen (65 gray levels)"
|
||||
|
@ -858,15 +971,15 @@ typedef struct Microtek2_Device {
|
|||
#define MD_CHANNEL_GREEN "Green"
|
||||
#define MD_CHANNEL_BLUE "Blue"
|
||||
SANE_String_Const channel_list[MD_CHANNEL_NUMS + 1];
|
||||
|
||||
|
||||
#define MD_GAMMAMODE_NUMS 3
|
||||
#define MD_GAMMAMODE_LINEAR "None"
|
||||
#define MD_GAMMAMODE_SCALAR "Scalar"
|
||||
#define MD_GAMMAMODE_CUSTOM "Custom"
|
||||
SANE_String_Const gammamode_list[MD_GAMMAMODE_NUMS + 1];
|
||||
|
||||
SANE_Range x_res_range_dpi; /* X resolution in dpi */
|
||||
SANE_Range y_res_range_dpi; /* Y resolution in dpi */
|
||||
SANE_Range x_res_range_dpi; /* X resolution in dpi */
|
||||
SANE_Range y_res_range_dpi; /* Y resolution in dpi */
|
||||
SANE_Range x_range_mm; /* scan width in mm */
|
||||
SANE_Range y_range_mm; /* scan height in mm */
|
||||
SANE_Range percentage_range; /* for brightness, shadow, ... */
|
||||
|
@ -877,7 +990,8 @@ typedef struct Microtek2_Device {
|
|||
SANE_Range exposure_range; /* for lengthening exposure time */
|
||||
SANE_Range highlight_range; /* highlight of master channel */
|
||||
SANE_Range threshold_range; /* 1 - 255 */
|
||||
Config_Options opts; /* options from the config file */
|
||||
SANE_Range balance_range; /* for user provided color balance */
|
||||
Config_Options opts; /* options from the config file */
|
||||
} Microtek2_Device;
|
||||
|
||||
|
||||
|
@ -893,7 +1007,7 @@ typedef struct Microtek2_Scanner {
|
|||
Microtek2_Option_Value val[NUM_OPTIONS + 1]; /* option values for session */
|
||||
SANE_Parameters params; /* format, lastframe, lines, depth, ppl, bpl */
|
||||
SANE_Option_Descriptor sod[NUM_OPTIONS + 1]; /* option list for session */
|
||||
|
||||
|
||||
u_int8_t *gamma_table;
|
||||
u_int8_t *shading_image; /* used for shading image */
|
||||
u_int8_t *condensed_shading_w; /* used when a model uses "read */
|
||||
|
@ -902,9 +1016,6 @@ typedef struct Microtek2_Scanner {
|
|||
u_int8_t *temporary_buffer; /* used when automatic adjustment */
|
||||
/* is selected */
|
||||
char *gamma_mode; /* none, linear or custom */
|
||||
|
||||
|
||||
|
||||
|
||||
/* the following defines must correspond to byte 25 of SET WINDOW body */
|
||||
#define MS_MODE_LINEART 0x00
|
||||
|
@ -965,11 +1076,12 @@ typedef struct Microtek2_Scanner {
|
|||
u_int8_t lightlid35;
|
||||
u_int8_t auto_adjust;
|
||||
u_int8_t calib_backend;
|
||||
int current_pass; /* current pass if 3-pass scan */
|
||||
u_int8_t colorbalance_adjust;
|
||||
int current_pass; /* current pass if 3-pass scan */
|
||||
int lut_size; /* size of gamma lookup table */
|
||||
int lut_entry_size; /* size of one entry in lookup table */
|
||||
u_int16_t lut_size_bytes; /* size of LUT in bytes */
|
||||
u_int8_t word; /* word transfer, used in some read cmds */
|
||||
u_int8_t word; /* word transfer, used in some read cmds */
|
||||
/* MS_COLOR_X must correspond to color field in READ IMAGE STATUS */
|
||||
#define MS_COLOR_RED 0
|
||||
#define MS_COLOR_GREEN 1
|
||||
|
@ -977,7 +1089,7 @@ typedef struct Microtek2_Scanner {
|
|||
#define MS_COLOR_ALL 3
|
||||
u_int8_t current_color; /* for gamma calc. and 3-pass scanners */
|
||||
u_int8_t current_read_color; /* dto, for RI and RIS */
|
||||
u_int8_t dark; /* (KF) for dark shading */
|
||||
u_int8_t dark; /* is 1 for reading dark shading */
|
||||
u_int32_t ppl; /* pixels per line as returned by RII */
|
||||
u_int32_t bpl; /* bytes per line as returned by RII */
|
||||
u_int32_t remaining_bytes; /* remaining bytes as returned by RII */
|
||||
|
@ -992,6 +1104,8 @@ typedef struct Microtek2_Scanner {
|
|||
int bits_per_pixel_out; /* bits per pixel transf. to frontend */
|
||||
u_int32_t src_buffer_size; /* size of the buffer */
|
||||
int transfer_length; /* transfer length for RI command */
|
||||
u_int8_t balance[3]; /* user provided balance factor for */
|
||||
/* red, green and blue data */
|
||||
struct {
|
||||
u_int8_t *src_buffer[2]; /* two buffers because of CCD gap */
|
||||
u_int8_t *src_buf;
|
||||
|
@ -1018,99 +1132,6 @@ typedef struct Microtek2_Scanner {
|
|||
|
||||
} Microtek2_Scanner;
|
||||
|
||||
|
||||
/******************************************************************************/
|
||||
/* Description of options not included in saneopts.h */
|
||||
/******************************************************************************/
|
||||
|
||||
#define M_NAME_NOBACKTRACK "no-backtracking"
|
||||
#define M_TITLE_NOBACKTRACK "Disable backtracking"
|
||||
#define M_DESC_NOBACKTRACK "If checked the scanner does not perform" \
|
||||
" backtracking."
|
||||
|
||||
#define M_NAME_TOGGLELAMP "toggle-lamp"
|
||||
#define M_TITLE_TOGGLELAMP "Toggle lamp of flatbed"
|
||||
#define M_DESC_TOGGLELAMP "Toggles the lamp of the flatbed"
|
||||
|
||||
#define M_NAME_CALIBBACKEND "backend-calibration"
|
||||
#define M_TITLE_CALIBBACKEND "Calibration by backend"
|
||||
#define M_DESC_CALIBBACKEND "If checked the color calibration before" \
|
||||
" a scan is done by the backend. Uncheck" \
|
||||
" this option if you experience any problem."
|
||||
|
||||
#define M_NAME_LIGHTLID35 "lightlid35"
|
||||
#define M_TITLE_LIGHTLID35 "Use the lightlid-35mm adapter"
|
||||
#define M_DESC_LIGHTLID35 "This option turns off the lamp of the" \
|
||||
" flatbed during a scan. Do not expect" \
|
||||
" excellent results. Maybe this option will" \
|
||||
" be removed in the future."
|
||||
|
||||
#define M_NAME_QUALITY_SCAN "quality_scan"
|
||||
#define M_TITLE_QUALITY_SCAN "Quality scan"
|
||||
#define M_DESC_QUALITY_SCAN "Highest quality but lower speed"
|
||||
|
||||
#define M_NAME_FAST_SCAN "fast_scan"
|
||||
#define M_TITLE_FAST_SCAN "Fast scan"
|
||||
#define M_DESC_FAST_SCAN "Highest speed but lower quality"
|
||||
|
||||
#define M_NAME_AUTOADJUST "lineart-auto-adjust"
|
||||
#define M_TITLE_AUTOADJUST "Automatic adjustment of threshold value"
|
||||
#define M_DESC_AUTOADJUST "If checked the backend automatically tries" \
|
||||
" to determine an optimal value for the" \
|
||||
" threshold."
|
||||
|
||||
#define M_NAME_GAMMA_MODE "gamma-correction"
|
||||
#define M_TITLE_GAMMA_MODE "Gamma correction"
|
||||
#define M_DESC_GAMMA_MODE "Selects the gamma correction mode."
|
||||
|
||||
#define M_NAME_GAMMA_BIND "bind-gamma"
|
||||
#define M_TITLE_GAMMA_BIND "Bind gamma"
|
||||
#define M_DESC_GAMMA_BIND "Use same gamma values for all colour channels."
|
||||
|
||||
#define M_NAME_GAMMA_SCALAR "scalar-gamma"
|
||||
#define M_TITLE_GAMMA_SCALAR "Scalar gamma"
|
||||
#define M_DESC_GAMMA_SCALAR "Selects a value for scalar gamma correction."
|
||||
|
||||
#define M_NAME_GAMMA_SCALAR_R "scalar-gamma-r"
|
||||
#define M_TITLE_GAMMA_SCALAR_R "Scalar gamma red"
|
||||
#define M_DESC_GAMMA_SCALAR_R "Selects a value for scalar gamma correction" \
|
||||
" (red channel)"
|
||||
|
||||
#define M_NAME_GAMMA_SCALAR_G "scalar-gamma-g"
|
||||
#define M_TITLE_GAMMA_SCALAR_G "Scalar gamma green"
|
||||
#define M_DESC_GAMMA_SCALAR_G "Selects a value for scalar gamma correction" \
|
||||
" (green channel)"
|
||||
|
||||
#define M_NAME_GAMMA_SCALAR_B "scalar-gamma-b"
|
||||
#define M_TITLE_GAMMA_SCALAR_B "Scalar gamma blue"
|
||||
#define M_DESC_GAMMA_SCALAR_B "Selects a value for scalar gamma correction" \
|
||||
" (blue channel)"
|
||||
|
||||
#define M_NAME_CHANNEL "channel"
|
||||
#define M_TITLE_CHANNEL "Channel"
|
||||
#define M_DESC_CHANNEL "Selects the colour band, \"Master\" means," \
|
||||
" that all colours are affected."
|
||||
|
||||
#define M_NAME_MIDTONE "midtone"
|
||||
#define M_TITLE_MIDTONE "Midtone"
|
||||
#define M_DESC_MIDTONE "Selects which radiance level should be" \
|
||||
" considered \"50 % gray\"."
|
||||
|
||||
#define M_NAME_MIDTONE_R "midtone-r"
|
||||
#define M_TITLE_MIDTONE_R "Midtone for red"
|
||||
#define M_DESC_MIDTONE_R "Selects which radiance level should be" \
|
||||
" considered \"50 % red\"."
|
||||
|
||||
#define M_NAME_MIDTONE_G "midtone-g"
|
||||
#define M_TITLE_MIDTONE_G "Midtone for green"
|
||||
#define M_DESC_MIDTONE_G "Selects which radiance level should be" \
|
||||
" considered \"50 % green\"."
|
||||
|
||||
#define M_NAME_MIDTONE_B "midtone-b"
|
||||
#define M_TITLE_MIDTONE_B "Midtone for blue"
|
||||
#define M_DESC_MIDTONE_B "Selects which radiance level should be" \
|
||||
" considered \"50 % blue\"."
|
||||
|
||||
/******************************************************************************/
|
||||
/* Function prototypes */
|
||||
/******************************************************************************/
|
||||
|
@ -1215,15 +1236,16 @@ static SANE_Status
|
|||
init_options(Microtek2_Scanner *, u_int8_t);
|
||||
|
||||
static SANE_Status
|
||||
lineartfake_copy_pixels(Microtek2_Scanner *, u_int8_t *, u_int32_t, u_int8_t, int, FILE *);
|
||||
lineartfake_copy_pixels(Microtek2_Scanner *, u_int8_t *, u_int32_t, u_int8_t,
|
||||
int, FILE *);
|
||||
|
||||
static SANE_Status
|
||||
static SANE_Status
|
||||
lineartfake_proc_data(Microtek2_Scanner *);
|
||||
|
||||
static SANE_Status
|
||||
lplconcat_copy_pixels(Microtek2_Scanner *, u_int8_t **, int, int);
|
||||
|
||||
static SANE_Status
|
||||
static SANE_Status
|
||||
lplconcat_proc_data(Microtek2_Scanner *ms);
|
||||
|
||||
static size_t
|
||||
|
@ -1235,38 +1257,38 @@ parse_config_file(FILE *, Config_Temp **);
|
|||
static SANE_Status
|
||||
prepare_buffers(Microtek2_Scanner *);
|
||||
|
||||
static SANE_Status
|
||||
static SANE_Status
|
||||
prepare_shading_data(Microtek2_Scanner *, u_int32_t, u_int8_t **);
|
||||
|
||||
static SANE_Status
|
||||
static SANE_Status
|
||||
proc_onebit_data(Microtek2_Scanner *);
|
||||
|
||||
static SANE_Status
|
||||
read_cx_shading_image(Microtek2_Scanner *); /* (KF) new */
|
||||
read_cx_shading_image(Microtek2_Scanner *);
|
||||
|
||||
static SANE_Status
|
||||
read_cx_shading(Microtek2_Scanner *); /* (KF) new */
|
||||
read_cx_shading(Microtek2_Scanner *);
|
||||
|
||||
static SANE_Status
|
||||
static SANE_Status
|
||||
reader_process(Microtek2_Scanner *);
|
||||
|
||||
static SANE_Status
|
||||
static SANE_Status
|
||||
restore_gamma_options(SANE_Option_Descriptor *, Microtek2_Option_Value *);
|
||||
|
||||
static SANE_Status
|
||||
segreg_copy_pixels(Microtek2_Scanner *); /* (KF) */
|
||||
/* parameter list modified */
|
||||
segreg_copy_pixels(Microtek2_Scanner *);
|
||||
|
||||
static SANE_Status
|
||||
static SANE_Status
|
||||
segreg_proc_data(Microtek2_Scanner *ms);
|
||||
|
||||
static void
|
||||
set_exposure(Microtek2_Scanner *);
|
||||
|
||||
static SANE_Status
|
||||
set_option_dependencies(SANE_Option_Descriptor *, Microtek2_Option_Value *);
|
||||
static SANE_Status
|
||||
set_option_dependencies(Microtek2_Scanner *,
|
||||
SANE_Option_Descriptor *, Microtek2_Option_Value *);
|
||||
|
||||
static SANE_Status
|
||||
static SANE_Status
|
||||
shading_function(Microtek2_Scanner *, u_int8_t *);
|
||||
|
||||
static RETSIGTYPE
|
||||
|
@ -1277,7 +1299,7 @@ wordchunky_copy_pixels(u_int8_t *, u_int32_t, int, FILE *);
|
|||
|
||||
static SANE_Status
|
||||
wordchunky_proc_data(Microtek2_Scanner *);
|
||||
|
||||
|
||||
|
||||
|
||||
/******************************************************************************/
|
||||
|
@ -1291,7 +1313,7 @@ static SANE_Status
|
|||
scsi_read_attributes(Microtek2_Info *, char *, u_int8_t);
|
||||
|
||||
static SANE_Status
|
||||
scsi_read_control_bits(Microtek2_Scanner *, int);
|
||||
scsi_read_control_bits(Microtek2_Scanner *, int);
|
||||
|
||||
/* currently not used */
|
||||
#if 0
|
||||
|
@ -1322,7 +1344,7 @@ static SANE_Status
|
|||
scsi_send_shading(Microtek2_Scanner *, u_int8_t *, u_int32_t, u_int8_t);
|
||||
|
||||
static SANE_Status
|
||||
scsi_read_shading(Microtek2_Scanner *, u_int8_t *, u_int32_t); /* (KF) new */
|
||||
scsi_read_shading(Microtek2_Scanner *, u_int8_t *, u_int32_t);
|
||||
|
||||
static SANE_Status
|
||||
scsi_send_system_status(Microtek2_Device *, int);
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
. .IX sane-microtek2
|
||||
." Process this file with
|
||||
." groff -man -Tascii sane-microtek2
|
||||
.TH sane-microtek2 5 "19 May 2001"
|
||||
." man -l sane-microtek2.man
|
||||
.TH sane-microtek2 5 "14 Aug 2001"
|
||||
.SH NAME
|
||||
sane-microtek2 - SANE backend for Microtek scanners with SCSI-2 command set
|
||||
.SH DESCRIPTION
|
||||
|
@ -9,11 +9,11 @@ The
|
|||
.B sane-microtek2
|
||||
library implements a SANE (Scanner Access Now Easy) backend that
|
||||
provides access to some Microtek scanners with a SCSI-2 command set.
|
||||
This backend can be considered alpha. Some scanner models are reported to work
|
||||
This backend can be considered alpha. Some scanner models are reported to work
|
||||
well, others not.
|
||||
.PP
|
||||
There exists a different backend for Microtek scanners with SCSI-1 command
|
||||
set.
|
||||
.PP
|
||||
There exists a different backend for Microtek scanners with SCSI-1 command
|
||||
set.
|
||||
Refer to sane-microtek(5) for details.
|
||||
.PP
|
||||
And there is work in progress for the ScanMaker 3600.
|
||||
|
@ -21,117 +21,123 @@ See http://sourceforge.net/projects/sm3600
|
|||
.PP
|
||||
At present, the following scanners are known positively to work with this
|
||||
backend:
|
||||
.PP
|
||||
.PP
|
||||
Vendor Product id: Remark
|
||||
.br
|
||||
.br
|
||||
-------- -------------- -------------
|
||||
.br
|
||||
.br
|
||||
Microtek E3+ Parport and SCSI
|
||||
.br
|
||||
.br
|
||||
Microtek X6 SCSI
|
||||
.br
|
||||
.br
|
||||
Microtek X6EL SCSI
|
||||
.br
|
||||
.br
|
||||
Microtek X6USB USB
|
||||
.br
|
||||
.br
|
||||
Microtek ScanMaker V300 Parport and SCSI
|
||||
.br
|
||||
.br
|
||||
Microtek ScanMaker V310 Parport and SCSI
|
||||
.br
|
||||
.br
|
||||
Microtek ScanMaker V600 Parport and SCSI
|
||||
.br
|
||||
.br
|
||||
Microtek ScanMaker 330 SCSI
|
||||
.br
|
||||
.br
|
||||
Microtek ScanMaker 630 SCSI
|
||||
.br
|
||||
.br
|
||||
Microtek ScanMaker 636 SCSI
|
||||
.br
|
||||
.br
|
||||
Microtek ScanMaker 9600XL SCSI; only flatbed mode?
|
||||
.br
|
||||
.br
|
||||
Microtek Phantom 330CX Parport
|
||||
.br
|
||||
Microtek SlimScan C3 Parport
|
||||
.br
|
||||
.br
|
||||
Microtek Phantom 636 SCSI
|
||||
.br
|
||||
.br
|
||||
Microtek Phantom 636CX Parport
|
||||
.br
|
||||
.br
|
||||
Microtek V6USL SCSI (and USB ???)
|
||||
.br
|
||||
.br
|
||||
Vobis HighScan SCSI (E3+ based models)
|
||||
.br
|
||||
.br
|
||||
Scanport? SQ300 Parport?
|
||||
.br
|
||||
.br
|
||||
Scanpaq SQ2030 Parport
|
||||
.PP
|
||||
.PP
|
||||
Additional information can be found at
|
||||
.BR http://www.mostang.com/sane/ .
|
||||
If you own a Microtek scanner with SCSI-2 interface other than the ones
|
||||
listed
|
||||
above, it may or may not work with SANE! Because equal scanners are sold under
|
||||
different names in different countries your model may be equivalent to one of
|
||||
.B www.mostang.com/sane/
|
||||
.
|
||||
If you own a Microtek scanner with SCSI-2 interface other than the ones
|
||||
listed
|
||||
above, it may or may not work with SANE! Because equal scanners are sold under
|
||||
different names in different countries your model may be equivalent to one of
|
||||
the above.
|
||||
.PP
|
||||
.PP
|
||||
The parport scanners work with the ppscsi + onscsi kernel modules.
|
||||
.PP
|
||||
If you try your scanner for the first time keep an eye on it. If it gets
|
||||
commands that it doesn't understand the scanhead may go beyond the scan area.
|
||||
The scanner then makes strange noises. In this case immedieately switch off
|
||||
the scanner or disconnect its power cable to prevent damages!
|
||||
.PP
|
||||
If your scanner is a different one than the models mentioned above and it is
|
||||
working please tell the author about it. It would be nice if you add a logfile
|
||||
.PP
|
||||
The USB scanners work with the microtek kernel module.
|
||||
.PP
|
||||
Both parport and USB scanners need the generic SCSI support, so check if you
|
||||
have loaded the scsi_mod and sg modules!
|
||||
.PP
|
||||
If you try your scanner for the first time keep an eye on it. If it gets
|
||||
commands that it doesn't understand the scanhead may go beyond the scan area.
|
||||
The scanner then makes strange noises. In this case immedieately switch off
|
||||
the scanner or disconnect its power cable to prevent damages!
|
||||
.PP
|
||||
If your scanner is a different one than the models mentioned above and it is
|
||||
working please tell the author about it. It would be nice if you add a logfile
|
||||
to this information (creation of the logfile: see below).
|
||||
.PP
|
||||
If your scanner is not working properly you also should create a logfile and
|
||||
send it to the author. He will use the information to improve the backend and
|
||||
.PP
|
||||
If your scanner is not working properly you also should create a logfile and
|
||||
send it to the author. He will use the information to improve the backend and
|
||||
possibly make your scanner work.
|
||||
.PP
|
||||
.br
|
||||
.PP
|
||||
.br
|
||||
How to create the logfile?
|
||||
.TP
|
||||
.TP
|
||||
- put the line
|
||||
.br
|
||||
"option dump 2" into your
|
||||
.br
|
||||
"option dump 2" into your
|
||||
.I microtek2.conf
|
||||
file or change the existing "option dump" to "2"
|
||||
.TP
|
||||
.TP
|
||||
- in a terminal (bash) type
|
||||
.br
|
||||
"export SANE_DEBUG_MICROTEK2=30" and then
|
||||
.br
|
||||
.br
|
||||
"export SANE_DEBUG_MICROTEK2=30" and then
|
||||
.br
|
||||
"scanimage -l0 -t0 -x100 -y20 2>scan.log >sout.pnm"
|
||||
.br
|
||||
You get two files: scan.log contains the logfile and sout.pnm the scanned
|
||||
.br
|
||||
You get two files: scan.log contains the logfile and sout.pnm the scanned
|
||||
image (if there was scanned something). Zip them before sending.
|
||||
|
||||
.SH "FRONTEND OPTIONS"
|
||||
This backend dynamically enables the options for the frontend, that are
|
||||
supported by the scanner in dependence of the scanning-mode and other
|
||||
options.
|
||||
This backend dynamically enables the options for the frontend, that are
|
||||
supported by the scanner in dependence of the scanning-mode and other
|
||||
options.
|
||||
Not supported options are disabled.
|
||||
.PP
|
||||
.PP
|
||||
The following options are supported by the Microtek2-driver:
|
||||
.PP
|
||||
.PP
|
||||
Color, grayscale, halftone and lineart scans.
|
||||
.PP
|
||||
Highlight, midtone, shadow, contrast, brightness, exposure time control,
|
||||
gamma correction, threshold (dependent of the scan mode and the scanner
|
||||
.PP
|
||||
Highlight, midtone, shadow, contrast, brightness, exposure time control,
|
||||
gamma correction, threshold (dependent of the scan mode and the scanner
|
||||
capabilities)
|
||||
.PP
|
||||
.PP
|
||||
Transparency media adapter, automatic document feeder
|
||||
.PP
|
||||
Additional options can be enabled or disabled in the
|
||||
.PP
|
||||
Additional options can be enabled or disabled in the
|
||||
.I microtek2.conf
|
||||
file. See the configuration section of this manpage.
|
||||
|
||||
.SH "DEVICE NAMES"
|
||||
This backend expects device names of the form:
|
||||
.PP
|
||||
.PP
|
||||
.RS
|
||||
.I special
|
||||
.RE
|
||||
.PP
|
||||
.PP
|
||||
Where
|
||||
.I special
|
||||
is the UNIX path-name for the special device that corresponds to the
|
||||
|
@ -139,148 +145,159 @@ scanner. The special device name must be a generic SCSI device or a
|
|||
symlink to such a device. Under Linux, such a device name could be
|
||||
.I /dev/sga
|
||||
or
|
||||
.I /dev/sge
|
||||
.I /dev/sge
|
||||
for example.
|
||||
.SH "CONFIGURATION"
|
||||
The configuration file for this backend resides in
|
||||
.IR @CONFIGDIR@/microtek2.conf .
|
||||
.I @CONFIGDIR@/microtek2.conf
|
||||
.
|
||||
Its contents is a list of device names that correspond to Microtek
|
||||
scanners with SCSI-2 interface. Empty lines and lines starting with
|
||||
scanners with SCSI-2 interface. Empty lines and lines starting with
|
||||
a hash mark (#) are ignored.
|
||||
.PP
|
||||
The configuration file may also contain options. Global options that are valid
|
||||
for all devices are placed above the device names. Device-specific options
|
||||
are
|
||||
.PP
|
||||
The configuration file may also contain options. Global options that are valid
|
||||
for all devices are placed above the device names. Device-specific options
|
||||
are
|
||||
placed under the device name. Currently the following options are supported:
|
||||
.PP
|
||||
.PP
|
||||
.RS
|
||||
option dump <n>
|
||||
.br
|
||||
.br
|
||||
option strip-height <n>
|
||||
.br
|
||||
.br
|
||||
option no-backtrack-option <on/off>
|
||||
.br
|
||||
.br
|
||||
option lightlid-35 <on/off>
|
||||
.br
|
||||
.br
|
||||
option toggle-lamp <on/off>
|
||||
.br
|
||||
.br
|
||||
option lineart-autoadjust <on/off>
|
||||
.br
|
||||
.br
|
||||
option backend-calibration <on/off>
|
||||
.br
|
||||
option colorbalance-adjust <on/off>
|
||||
.RE
|
||||
.PP
|
||||
.PP
|
||||
.I option dump <n>
|
||||
enables printing of additional information about the SCSI commands that are sent to
|
||||
the scanner to stderr. This option is primarily useful for debugging purpose.
|
||||
This option has to be a global option and is best placed at the top of the
|
||||
enables printing of additional information about the SCSI commands that are sent to
|
||||
the scanner to stderr. This option is primarily useful for debugging purpose.
|
||||
This option has to be a global option and is best placed at the top of the
|
||||
.I microtek2.conf
|
||||
file.
|
||||
.PP
|
||||
.PP
|
||||
If n=1 the contents of the command blocks
|
||||
and the results for the INQUIRY and READ SCANNER ATTRIBUTES command are
|
||||
and the results for the INQUIRY and READ SCANNER ATTRIBUTES command are
|
||||
printed to stderr.
|
||||
.PP
|
||||
.PP
|
||||
If n=2 the contents of the command blocks for all other SCSI commands are
|
||||
printed to stderr, too. If n=3 the contents of the gamma table is
|
||||
printed to stderr, too. If n=3 the contents of the gamma table is
|
||||
printed, too. If n=4 all scan data is additionally printed to stderr.
|
||||
.PP
|
||||
.PP
|
||||
The default is n=1.
|
||||
.PP
|
||||
.IR option\ strip-height\ <n> ,
|
||||
where <n> is a floating point number, limits the amount of data that is
|
||||
.PP
|
||||
.I option strip-height <n>
|
||||
, where <n> is a floating point number, limits the amount of data that is
|
||||
read from the scanner with one read command.
|
||||
The unit is inch and <n> defaults to 1.0, if this option is not set in the
|
||||
configuration file. If less than <n> inch of data fit into the SCSI buffer,
|
||||
The unit is inch and <n> defaults to 1.0, if this option is not set in the
|
||||
configuration file. If less than <n> inch of data fit into the SCSI buffer,
|
||||
then the smaller value is used and this option has no effect.
|
||||
.PP
|
||||
.PP
|
||||
If your system has a big SCSI buffer and you want to make use of the whole
|
||||
buffer, increase the value for <n>. For example, if <n> is set to 14.0,
|
||||
no restrictions apply for scanners with a letter, legal or A4 sized scan area.
|
||||
.PP
|
||||
.PP
|
||||
The following options enable or disable additional frontend options. If an
|
||||
.PP
|
||||
.PP
|
||||
The following options enable or disable additional frontend options. If an
|
||||
option is set to <on> an appropriate option will appear in the frontend.
|
||||
.PP
|
||||
.PP
|
||||
.I option no-backtrack-option <on/off>
|
||||
prevents the scanner head from moving backwards between the read commands.
|
||||
This
|
||||
prevents the scanner head from moving backwards between the read commands.
|
||||
This
|
||||
speeds up scanning. Try it.
|
||||
.PP
|
||||
.PP
|
||||
.I option lightlid-35 <on/off>
|
||||
If you use the LightLid-35 transparency adapter this option switches off the
|
||||
flatbed lamp during the scan.
|
||||
.PP
|
||||
If you use the LightLid-35 transparency adapter you get an advanced
|
||||
option which switches off the flatbed lamp during the scan.
|
||||
.PP
|
||||
.I option toggle-lamp <on/off>
|
||||
You get a button in the frontend where you can switch on and off the flatbed
|
||||
You get a button in the frontend where you can switch on and off the flatbed
|
||||
lamp.
|
||||
.PP
|
||||
.PP
|
||||
.I option lineart-autoadjust <on/off>
|
||||
You can tell the backend to try to determine a good value for the lineart
|
||||
You can tell the backend to try to determine a good value for the lineart
|
||||
threshold.
|
||||
.PP
|
||||
.PP
|
||||
.I option backend-calibration <on/off>
|
||||
Some scanners (e.g. Phantom 330CX and 636CX) need to have calibrated the data
|
||||
Some scanners (e.g. Phantom 330CX and 636CX) need to have calibrated the data
|
||||
by the backend. Try this option if you see vertical stripes in your pictures.
|
||||
.PP
|
||||
.PP
|
||||
.I option colorbalance-adjust <on/off>
|
||||
Some scanners (e.g. Phantom 330CX and 636CX) need to have corrected
|
||||
the color balance. If this option is enabled you get advanced options
|
||||
where you can balance the colors. And you will have a button
|
||||
to use the values that the firmware of the scanner provides.
|
||||
.PP
|
||||
A sample configuration file is shown below:
|
||||
.PP
|
||||
.PP
|
||||
.RS
|
||||
option dump 1
|
||||
.br
|
||||
.br
|
||||
option strip-height 1.0
|
||||
.br
|
||||
.br
|
||||
/dev/scanner
|
||||
.br
|
||||
.br
|
||||
option no-backtrack-option on
|
||||
.br
|
||||
.br
|
||||
# this is a comment
|
||||
.br
|
||||
.br
|
||||
/dev/sge
|
||||
.br
|
||||
.br
|
||||
option lightlid-35 on
|
||||
.RE
|
||||
|
||||
This backend also supports the new configuration file format which makes
|
||||
it easier to detect scanners under Linux. If you have only one scanner it
|
||||
would be best to use the following configuration file for this backend:
|
||||
.PP
|
||||
.PP
|
||||
.RS
|
||||
option dump 1
|
||||
.br
|
||||
.br
|
||||
option strip-height 14.0
|
||||
.br
|
||||
.br
|
||||
option no-backtrack-option on
|
||||
.br
|
||||
.br
|
||||
option backend-calibration on
|
||||
.br
|
||||
.br
|
||||
option lightlid-35 on
|
||||
.br
|
||||
.br
|
||||
option toggle-lamp on
|
||||
.br
|
||||
.br
|
||||
option lineart-autoadjust on
|
||||
.br
|
||||
.br
|
||||
option colorbalance-adjust off
|
||||
.br
|
||||
scsi * * Scanner
|
||||
.RE
|
||||
|
||||
In this case all SCSI-Scanners should be detected automatically because of the
|
||||
.PP
|
||||
In this case all SCSI-Scanners should be detected automatically because of the
|
||||
.PP
|
||||
scsi * * Scanner
|
||||
.PP
|
||||
.PP
|
||||
line.
|
||||
|
||||
.SH "FILES"
|
||||
.TP
|
||||
.TP
|
||||
.I @CONFIGDIR@/microtek2.conf
|
||||
The backend configuration file.
|
||||
.TP
|
||||
.TP
|
||||
.I @LIBDIR@/libsane-microtek2.a
|
||||
The static library implementing this backend.
|
||||
.TP
|
||||
.TP
|
||||
.I @LIBDIR@/libsane-microtek2.so
|
||||
The shared library implementing this backend (present on systems that
|
||||
support dynamic loading).
|
||||
.SH "ENVIRONMENT"
|
||||
.TP
|
||||
.TP
|
||||
.B SANE_DEBUG_MICROTEK2
|
||||
If the library was compiled with debug support enabled, this
|
||||
environment variable controls the debug level for this backend. E.g.,
|
||||
|
@ -288,15 +305,15 @@ a value of 255 requests all debug output to be printed. Smaller
|
|||
levels reduce verbosity. To see error messages on stderr set
|
||||
SANE_DEBUG_MICROTEK2 to 1 (Remark: The whole debugging levels should
|
||||
be better revised).
|
||||
.br
|
||||
.br
|
||||
E.g. just say:
|
||||
.br
|
||||
.br
|
||||
export SANE_DEBUG_MICROTEK2=128
|
||||
.SH "SEE ALSO"
|
||||
sane-scsi(5), sane(7)
|
||||
.SH "AUTHORS"
|
||||
Bernd Schroeder (not active anymore)
|
||||
.br
|
||||
.br
|
||||
Karsten Festag karsten.festag@t-online.de
|
||||
|
||||
|
||||
|
|
Ładowanie…
Reference in New Issue