kopia lustrzana https://gitlab.com/sane-project/backends
fujitsu backend v131
- hide compression-arg option when jpeg disabled - add Send/SC/GHS macros for recent scanners - add initial support for fi-74x0 - add initial support for fi-7030 - set has_MS_lamp=0 for fi-71x0 - add I18N macros to all option titles and descriptions - add usb ids for many newer scannersmerge-requests/1/head
rodzic
1e013654cc
commit
5ba37467e8
|
@ -616,12 +616,13 @@ putnbyte (unsigned char *pnt, unsigned int value, unsigned int nbytes)
|
|||
#define SEND_len 10
|
||||
|
||||
#define set_S_xfer_datatype(sb, val) sb[0x02] = (unsigned char)val
|
||||
/*#define S_datatype_imagedatai 0x00
|
||||
#define S_datatype_halftone_mask 0x02
|
||||
#define S_datatype_gamma_function 0x03*/
|
||||
#define S_datatype_gamma_function 0x03
|
||||
#define S_datatype_lut_data 0x83
|
||||
#define S_datatype_lut_dropout 0x84
|
||||
#define S_datatype_jpg_q_table 0x88
|
||||
#define S_datatype_endorser_data 0x90
|
||||
#define S_datatype_sendto_name 0xa0
|
||||
/*#define S_EX_datatype_lut 0x01
|
||||
#define S_EX_datatype_shading_data 0xa0
|
||||
#define S_user_reg_gamma 0xc0
|
||||
|
@ -747,6 +748,8 @@ putnbyte (unsigned char *pnt, unsigned int value, unsigned int nbytes)
|
|||
#define GHS_data_len 12
|
||||
|
||||
#define get_GHS_top(in) getbitfield(in+0x02, 1, 7)
|
||||
#define get_GHS_fedalm(in) getbitfield(in+0x02, 1, 5)
|
||||
#define get_GHS_adjalm(in) getbitfield(in+0x02, 1, 4)
|
||||
#define get_GHS_A3(in) getbitfield(in+0x02, 1, 3)
|
||||
#define get_GHS_B4(in) getbitfield(in+0x02, 1, 2)
|
||||
#define get_GHS_A4(in) getbitfield(in+0x02, 1, 1)
|
||||
|
@ -762,12 +765,14 @@ putnbyte (unsigned char *pnt, unsigned int value, unsigned int nbytes)
|
|||
|
||||
#define get_GHS_sleep(in) getbitfield(in+0x04, 1, 7)
|
||||
#define get_GHS_clean(in) getbitfield(in+0x04, 1, 6)
|
||||
#define get_GHS_scan_sw_long(in) getbitfield(in+0x04, 1, 5)
|
||||
#define get_GHS_hpos(in) getbitfield(in+0x04, 1, 4)
|
||||
#define get_GHS_send_sw(in) getbitfield(in+0x04, 1, 2)
|
||||
#define get_GHS_manual_feed(in) getbitfield(in+0x04, 1, 1)
|
||||
#define get_GHS_scan_sw(in) getbitfield(in+0x04, 1, 0)
|
||||
|
||||
#define get_GHS_picalm(in) getbitfield(in+0x05, 1, 7)
|
||||
#define get_GHS_fadalm(in) getbitfield(in+0x05, 1, 6)
|
||||
#define get_GHS_padalm(in) getbitfield(in+0x05, 1, 6)
|
||||
#define get_GHS_brkalm(in) getbitfield(in+0x05, 1, 5)
|
||||
#define get_GHS_sepalm(in) getbitfield(in+0x05, 1, 4)
|
||||
#define get_GHS_function(in) getbitfield(in+0x05, 0x0f, 0)
|
||||
|
@ -783,10 +788,34 @@ putnbyte (unsigned char *pnt, unsigned int value, unsigned int nbytes)
|
|||
|
||||
#define get_GHS_error_code(in) in[0x07]
|
||||
|
||||
#define get_GHS_skew_angle(in) getnbyte(in+0x08, 2)
|
||||
#define get_GHS_skew_angle(in) in[0x09]
|
||||
|
||||
#define get_GHS_ink_remain(in) in[0x0a]
|
||||
|
||||
#define get_GHS_lang_code(in) getnbyte(in+0x0c, 2)
|
||||
|
||||
#define get_GHS_adjalm_fed(in) getbitfield(in+0x0e, 1, 7)
|
||||
#define get_GHS_non_sep(in) getbitfield(in+0x0e, 1, 4)
|
||||
#define get_GHS_ext_sendto(in) getbitfield(in+0x0e, 1, 2)
|
||||
#define get_GHS_rq_hldimg(in) getbitfield(in+0x0e, 1, 1)
|
||||
#define get_GHS_pacnt(in) getbitfield(in+0x0e, 1, 0)
|
||||
|
||||
#define get_GHS_wifi_sw(in) getbitfield(in+0x10, 1, 7)
|
||||
#define get_GHS_w_use(in) getbitfield(in+0x10, 1, 6)
|
||||
#define get_GHS_w_use2(in) getbitfield(in+0x10, 1, 5)
|
||||
#define get_GHS_w_use3(in) getbitfield(in+0x10, 1, 4)
|
||||
#define get_GHS_w_use4(in) getbitfield(in+0x10, 1, 3)
|
||||
|
||||
#define get_GHS_battery(in) getbitfield(in+0x11, 1, 7)
|
||||
#define get_GHS_btr_charge(in) getbitfield(in+0x11, 1, 6)
|
||||
#define get_GHS_btr_chg_tmp_stp(in) getbitfield(in+0x11, 1, 5)
|
||||
#define get_GHS_ibtr_ene_sav(in) getbitfield(in+0x11, 1, 4)
|
||||
#define get_GHS_fngr_caut(in) getbitfield(in+0x11, 1, 2)
|
||||
#define get_GHS_trnpg_l(in) getbitfield(in+0x11, 1, 1)
|
||||
#define get_GHS_trnpg_r(in) getbitfield(in+0x11, 1, 0)
|
||||
|
||||
#define get_GHS_btr_power(in) in[0x12]
|
||||
|
||||
/* ==================================================================== */
|
||||
/* SCANNER_CONTROL */
|
||||
#define SCANNER_CONTROL_code 0xf1
|
||||
|
@ -807,6 +836,12 @@ putnbyte (unsigned char *pnt, unsigned int value, unsigned int nbytes)
|
|||
#define SC_function_eject_complete 0x0a
|
||||
#define SC_function_manual_feed 0x0c
|
||||
|
||||
/* used with SC_function_panel */
|
||||
#define set_SC_led_eb(icb, val) setbitfield(icb + 5, 1, 7, val)
|
||||
#define set_SC_led(icb, val) setbitfield(icb + 5, 1, 6, val)
|
||||
#define set_SC_fcno_eb(icb, val) setbitfield(icb + 5, 1, 4, val)
|
||||
#define set_SC_fcno(icb, val) setbitfield(icb + 5, 0xf, 0, val)
|
||||
|
||||
#define set_SC_ric_dtq(sb, val) sb[2] = val
|
||||
#define set_SC_ric_len(sb, val) putnbyte(sb + 0x06, val, 3)
|
||||
|
||||
|
|
|
@ -584,6 +584,13 @@
|
|||
v130 2016-02-23, MAN
|
||||
- run init_model before init_ms so some scanners can override
|
||||
- set all M309x and M409x scanners s->broken_diag_serial = 1
|
||||
v131 2016-06-06, MAN
|
||||
- hide compression-arg option when jpeg disabled
|
||||
- add Send/SC/GHS macros for recent scanners
|
||||
- add initial support for fi-74x0
|
||||
- add initial support for fi-7030
|
||||
- set has_MS_lamp=0 for fi-71x0
|
||||
- add I18N macros to all option titles and descriptions
|
||||
|
||||
SANE FLOW DIAGRAM
|
||||
|
||||
|
@ -633,7 +640,7 @@
|
|||
#include "fujitsu.h"
|
||||
|
||||
#define DEBUG 1
|
||||
#define BUILD 130
|
||||
#define BUILD 131
|
||||
|
||||
/* values for SANE_DEBUG_FUJITSU env var:
|
||||
- errors 5
|
||||
|
@ -2327,6 +2334,8 @@ init_model (struct fujitsu *s)
|
|||
|
||||
else if (strstr (s->model_name,"fi-7180")
|
||||
|| strstr (s->model_name,"fi-7160")){
|
||||
/* locks up scanner if we try to auto detect */
|
||||
s->has_MS_lamp = 0;
|
||||
|
||||
/* weirdness */
|
||||
/* these machines have longer max paper at lower res */
|
||||
|
@ -2361,6 +2370,36 @@ init_model (struct fujitsu *s)
|
|||
s->max_y_fb = 14032; /* some scanners can be slightly more? */
|
||||
}
|
||||
|
||||
else if (strstr (s->model_name,"fi-7480")
|
||||
|| strstr (s->model_name,"fi-7460")){
|
||||
|
||||
/* weirdness */
|
||||
/* these machines have longer max paper at lower res */
|
||||
s->max_y_by_res[1].res = 400;
|
||||
s->max_y_by_res[1].len = 194268;
|
||||
s->max_y_by_res[2].res = 300;
|
||||
s->max_y_by_res[2].len = 260268;
|
||||
s->max_y_by_res[3].res = 200;
|
||||
s->max_y_by_res[3].len = 266268;
|
||||
|
||||
/* missing from vpd */
|
||||
s->has_df_recovery=1;
|
||||
s->has_adv_paper_prot=1;
|
||||
}
|
||||
|
||||
else if (strstr (s->model_name,"fi-7030")){
|
||||
|
||||
/* weirdness */
|
||||
/* these machines have longer max paper at lower res */
|
||||
s->max_y_by_res[1].res = 400;
|
||||
s->max_y_by_res[1].len = 192000;
|
||||
s->max_y_by_res[2].res = 300;
|
||||
s->max_y_by_res[2].len = 258000;
|
||||
s->max_y_by_res[3].res = 200;
|
||||
s->max_y_by_res[3].len = 264000;
|
||||
|
||||
}
|
||||
|
||||
DBG (10, "init_model: finish\n");
|
||||
|
||||
return SANE_STATUS_GOOD;
|
||||
|
@ -3050,8 +3089,8 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
|
|||
/* gamma */
|
||||
if(option==OPT_GAMMA){
|
||||
opt->name = "gamma";
|
||||
opt->title = "Gamma function exponent";
|
||||
opt->desc = "Changes intensity of midtones";
|
||||
opt->title = SANE_I18N ("Gamma function exponent");
|
||||
opt->desc = SANE_I18N ("Changes intensity of midtones");
|
||||
opt->type = SANE_TYPE_FIXED;
|
||||
opt->unit = SANE_UNIT_NONE;
|
||||
opt->constraint_type = SANE_CONSTRAINT_RANGE;
|
||||
|
@ -3100,8 +3139,8 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
|
|||
/* =============== common ipc params ================================ */
|
||||
if(option==OPT_RIF){
|
||||
opt->name = "rif";
|
||||
opt->title = "RIF";
|
||||
opt->desc = "Reverse image format";
|
||||
opt->title = SANE_I18N ("RIF");
|
||||
opt->desc = SANE_I18N ("Reverse image format");
|
||||
opt->type = SANE_TYPE_BOOL;
|
||||
opt->unit = SANE_UNIT_NONE;
|
||||
if (s->has_rif)
|
||||
|
@ -3118,8 +3157,8 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
|
|||
s->ht_type_list[i]=NULL;
|
||||
|
||||
opt->name = "ht-type";
|
||||
opt->title = "Halftone type";
|
||||
opt->desc = "Control type of halftone filter";
|
||||
opt->title = SANE_I18N ("Halftone type");
|
||||
opt->desc = SANE_I18N ("Control type of halftone filter");
|
||||
opt->type = SANE_TYPE_STRING;
|
||||
opt->unit = SANE_UNIT_NONE;
|
||||
|
||||
|
@ -3139,8 +3178,8 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
|
|||
|
||||
if(option==OPT_HT_PATTERN){
|
||||
opt->name = "ht-pattern";
|
||||
opt->title = "Halftone pattern";
|
||||
opt->desc = "Control pattern of halftone filter";
|
||||
opt->title = SANE_I18N ("Halftone pattern");
|
||||
opt->desc = SANE_I18N ("Control pattern of halftone filter");
|
||||
opt->type = SANE_TYPE_INT;
|
||||
opt->unit = SANE_UNIT_NONE;
|
||||
|
||||
|
@ -3162,8 +3201,8 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
|
|||
|
||||
if(option==OPT_OUTLINE){
|
||||
opt->name = "outline";
|
||||
opt->title = "Outline";
|
||||
opt->desc = "Perform outline extraction";
|
||||
opt->title = SANE_I18N ("Outline");
|
||||
opt->desc = SANE_I18N ("Perform outline extraction");
|
||||
opt->type = SANE_TYPE_BOOL;
|
||||
opt->unit = SANE_UNIT_NONE;
|
||||
if (s->has_outline)
|
||||
|
@ -3174,8 +3213,8 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
|
|||
|
||||
if(option==OPT_EMPHASIS){
|
||||
opt->name = "emphasis";
|
||||
opt->title = "Emphasis";
|
||||
opt->desc = "Negative to smooth or positive to sharpen image";
|
||||
opt->title = SANE_I18N ("Emphasis");
|
||||
opt->desc = SANE_I18N ("Negative to smooth or positive to sharpen image");
|
||||
opt->type = SANE_TYPE_INT;
|
||||
opt->unit = SANE_UNIT_NONE;
|
||||
|
||||
|
@ -3193,8 +3232,8 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
|
|||
|
||||
if(option==OPT_SEPARATION){
|
||||
opt->name = "separation";
|
||||
opt->title = "Separation";
|
||||
opt->desc = "Enable automatic separation of image and text";
|
||||
opt->title = SANE_I18N ("Separation");
|
||||
opt->desc = SANE_I18N ("Enable automatic separation of image and text");
|
||||
opt->type = SANE_TYPE_BOOL;
|
||||
opt->unit = SANE_UNIT_NONE;
|
||||
if (s->has_autosep)
|
||||
|
@ -3205,8 +3244,8 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
|
|||
|
||||
if(option==OPT_MIRRORING){
|
||||
opt->name = "mirroring";
|
||||
opt->title = "Mirroring";
|
||||
opt->desc = "Reflect output image horizontally";
|
||||
opt->title = SANE_I18N ("Mirroring");
|
||||
opt->desc = SANE_I18N ("Reflect output image horizontally");
|
||||
opt->type = SANE_TYPE_BOOL;
|
||||
opt->unit = SANE_UNIT_NONE;
|
||||
if (s->has_mirroring)
|
||||
|
@ -3223,8 +3262,8 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
|
|||
s->wl_follow_list[i]=NULL;
|
||||
|
||||
opt->name = "wl-follow";
|
||||
opt->title = "White level follower";
|
||||
opt->desc = "Control white level follower";
|
||||
opt->title = SANE_I18N ("White level follower");
|
||||
opt->desc = SANE_I18N ("Control white level follower");
|
||||
opt->type = SANE_TYPE_STRING;
|
||||
opt->unit = SANE_UNIT_NONE;
|
||||
|
||||
|
@ -3250,8 +3289,8 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
|
|||
s->ipc_mode_list[i]=NULL;
|
||||
|
||||
opt->name = "ipc-mode";
|
||||
opt->title = "IPC mode";
|
||||
opt->desc = "Image processing mode, enables additional options";
|
||||
opt->title = SANE_I18N ("IPC mode");
|
||||
opt->desc = SANE_I18N ("Image processing mode, enables additional options");
|
||||
opt->type = SANE_TYPE_STRING;
|
||||
opt->unit = SANE_UNIT_NONE;
|
||||
|
||||
|
@ -3273,8 +3312,8 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
|
|||
/* enabled when in dtc mode (manually or by default) */
|
||||
if(option==OPT_BP_FILTER){
|
||||
opt->name = "bp-filter";
|
||||
opt->title = "BP filter";
|
||||
opt->desc = "Improves quality of high resolution ball-point pen text";
|
||||
opt->title = SANE_I18N ("BP filter");
|
||||
opt->desc = SANE_I18N ("Improves quality of high resolution ball-point pen text");
|
||||
opt->type = SANE_TYPE_BOOL;
|
||||
opt->unit = SANE_UNIT_NONE;
|
||||
|
||||
|
@ -3291,8 +3330,8 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
|
|||
|
||||
if(option==OPT_SMOOTHING){
|
||||
opt->name = "smoothing";
|
||||
opt->title = "Smoothing";
|
||||
opt->desc = "Enable smoothing for improved OCR";
|
||||
opt->title = SANE_I18N ("Smoothing");
|
||||
opt->desc = SANE_I18N ("Enable smoothing for improved OCR");
|
||||
opt->type = SANE_TYPE_BOOL;
|
||||
opt->unit = SANE_UNIT_NONE;
|
||||
|
||||
|
@ -3309,9 +3348,8 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
|
|||
|
||||
if(option==OPT_GAMMA_CURVE){
|
||||
opt->name = "gamma-curve";
|
||||
opt->title = "Gamma curve";
|
||||
opt->desc = "Gamma curve";
|
||||
opt->desc = "Gamma curve, from light to dark, but upper two may not work";
|
||||
opt->title = SANE_I18N ("Gamma curve");
|
||||
opt->desc = SANE_I18N ("Gamma curve, from light to dark, but upper two may not work");
|
||||
opt->type = SANE_TYPE_INT;
|
||||
opt->unit = SANE_UNIT_NONE;
|
||||
|
||||
|
@ -3334,8 +3372,8 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
|
|||
|
||||
if(option==OPT_THRESHOLD_CURVE){
|
||||
opt->name = "threshold-curve";
|
||||
opt->title = "Threshold curve";
|
||||
opt->desc = "Threshold curve, from light to dark, but upper two may not be linear";
|
||||
opt->title = SANE_I18N ("Threshold curve");
|
||||
opt->desc = SANE_I18N ("Threshold curve, from light to dark, but upper two may not be linear");
|
||||
opt->type = SANE_TYPE_INT;
|
||||
opt->unit = SANE_UNIT_NONE;
|
||||
|
||||
|
@ -3358,8 +3396,8 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
|
|||
|
||||
if(option==OPT_THRESHOLD_WHITE){
|
||||
opt->name = "threshold-white";
|
||||
opt->title = "Threshold white";
|
||||
opt->desc = "Set pixels equal to threshold to white instead of black";
|
||||
opt->title = SANE_I18N ("Threshold white");
|
||||
opt->desc = SANE_I18N ("Set pixels equal to threshold to white instead of black");
|
||||
opt->type = SANE_TYPE_BOOL;
|
||||
opt->unit = SANE_UNIT_NONE;
|
||||
|
||||
|
@ -3376,8 +3414,8 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
|
|||
|
||||
if(option==OPT_NOISE_REMOVAL){
|
||||
opt->name = "noise-removal";
|
||||
opt->title = "Noise removal";
|
||||
opt->desc = "Noise removal";
|
||||
opt->title = SANE_I18N ("Noise removal");
|
||||
opt->desc = SANE_I18N ("Noise removal");
|
||||
opt->type = SANE_TYPE_BOOL;
|
||||
opt->unit = SANE_UNIT_NONE;
|
||||
|
||||
|
@ -3394,8 +3432,8 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
|
|||
|
||||
if(option==OPT_MATRIX_5){
|
||||
opt->name = "matrix-5x5";
|
||||
opt->title = "Matrix 5x5";
|
||||
opt->desc = "Remove 5 pixel square noise";
|
||||
opt->title = SANE_I18N ("Matrix 5x5");
|
||||
opt->desc = SANE_I18N ("Remove 5 pixel square noise");
|
||||
opt->type = SANE_TYPE_BOOL;
|
||||
opt->unit = SANE_UNIT_NONE;
|
||||
|
||||
|
@ -3413,8 +3451,8 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
|
|||
|
||||
if(option==OPT_MATRIX_4){
|
||||
opt->name = "matrix-4x4";
|
||||
opt->title = "Matrix 4x4";
|
||||
opt->desc = "Remove 4 pixel square noise";
|
||||
opt->title = SANE_I18N ("Matrix 4x4");
|
||||
opt->desc = SANE_I18N ("Remove 4 pixel square noise");
|
||||
opt->type = SANE_TYPE_BOOL;
|
||||
opt->unit = SANE_UNIT_NONE;
|
||||
|
||||
|
@ -3432,8 +3470,8 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
|
|||
|
||||
if(option==OPT_MATRIX_3){
|
||||
opt->name = "matrix-3x3";
|
||||
opt->title = "Matrix 3x3";
|
||||
opt->desc = "Remove 3 pixel square noise";
|
||||
opt->title = SANE_I18N ("Matrix 3x3");
|
||||
opt->desc = SANE_I18N ("Remove 3 pixel square noise");
|
||||
opt->type = SANE_TYPE_BOOL;
|
||||
opt->unit = SANE_UNIT_NONE;
|
||||
|
||||
|
@ -3451,8 +3489,8 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
|
|||
|
||||
if(option==OPT_MATRIX_2){
|
||||
opt->name = "matrix-2x2";
|
||||
opt->title = "Matrix 2x2";
|
||||
opt->desc = "Remove 2 pixel square noise";
|
||||
opt->title = SANE_I18N ("Matrix 2x2");
|
||||
opt->desc = SANE_I18N ("Remove 2 pixel square noise");
|
||||
opt->type = SANE_TYPE_BOOL;
|
||||
opt->unit = SANE_UNIT_NONE;
|
||||
|
||||
|
@ -3473,8 +3511,8 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
|
|||
/* called variance with ipc2, sensitivity with ipc3 */
|
||||
if(option==OPT_VARIANCE){
|
||||
opt->name = "variance";
|
||||
opt->title = "Variance";
|
||||
opt->desc = "Set SDTC variance rate (sensitivity), 0 equals 127";
|
||||
opt->title = SANE_I18N ("Variance");
|
||||
opt->desc = SANE_I18N ("Set SDTC variance rate (sensitivity), 0 equals 127");
|
||||
opt->type = SANE_TYPE_INT;
|
||||
opt->unit = SANE_UNIT_NONE;
|
||||
|
||||
|
@ -3507,8 +3545,8 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
|
|||
if(option==OPT_AWD){
|
||||
|
||||
opt->name = "awd";
|
||||
opt->title = "Auto width detection";
|
||||
opt->desc = "Scanner detects paper sides. May reduce scanning speed.";
|
||||
opt->title = SANE_I18N ("Auto width detection");
|
||||
opt->desc = SANE_I18N ("Scanner detects paper sides. May reduce scanning speed.");
|
||||
opt->type = SANE_TYPE_BOOL;
|
||||
opt->unit = SANE_UNIT_NONE;
|
||||
opt->constraint_type = SANE_CONSTRAINT_NONE;
|
||||
|
@ -3525,8 +3563,8 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
|
|||
if(option==OPT_ALD){
|
||||
|
||||
opt->name = "ald";
|
||||
opt->title = "Auto length detection";
|
||||
opt->desc = "Scanner detects paper lower edge. May confuse some frontends.";
|
||||
opt->title = SANE_I18N ("Auto length detection");
|
||||
opt->desc = SANE_I18N ("Scanner detects paper lower edge. May confuse some frontends.");
|
||||
opt->type = SANE_TYPE_BOOL;
|
||||
opt->unit = SANE_UNIT_NONE;
|
||||
opt->constraint_type = SANE_CONSTRAINT_NONE;
|
||||
|
@ -3552,8 +3590,8 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
|
|||
s->compress_list[i]=NULL;
|
||||
|
||||
opt->name = "compression";
|
||||
opt->title = "Compression";
|
||||
opt->desc = "Enable compressed data. May crash your front-end program";
|
||||
opt->title = SANE_I18N ("Compression");
|
||||
opt->desc = SANE_I18N ("Enable compressed data. May crash your front-end program");
|
||||
opt->type = SANE_TYPE_STRING;
|
||||
opt->constraint_type = SANE_CONSTRAINT_STRING_LIST;
|
||||
opt->constraint.string_list = s->compress_list;
|
||||
|
@ -3573,8 +3611,8 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
|
|||
if(option==OPT_COMPRESS_ARG){
|
||||
|
||||
opt->name = "compression-arg";
|
||||
opt->title = "Compression argument";
|
||||
opt->desc = "Level of JPEG compression. 1 is small file, 7 is large file. 0 (default) is same as 4";
|
||||
opt->title = SANE_I18N ("Compression argument");
|
||||
opt->desc = SANE_I18N ("Level of JPEG compression. 1 is small file, 7 is large file. 0 (default) is same as 4");
|
||||
opt->type = SANE_TYPE_INT;
|
||||
opt->unit = SANE_UNIT_NONE;
|
||||
opt->constraint_type = SANE_CONSTRAINT_RANGE;
|
||||
|
@ -3584,7 +3622,9 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
|
|||
if(s->has_comp_JPG1){
|
||||
s->compress_arg_range.min=0;
|
||||
s->compress_arg_range.max=7;
|
||||
#ifndef SANE_JPEG_DISABLED
|
||||
opt->cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT;
|
||||
#endif
|
||||
|
||||
if(s->compress != COMP_JPEG){
|
||||
opt->cap |= SANE_CAP_INACTIVE;
|
||||
|
@ -3602,8 +3642,8 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
|
|||
s->df_action_list[3] = NULL;
|
||||
|
||||
opt->name = "df-action";
|
||||
opt->title = "DF action";
|
||||
opt->desc = "Action following double feed error";
|
||||
opt->title = SANE_I18N ("DF action");
|
||||
opt->desc = SANE_I18N ("Action following double feed error");
|
||||
opt->type = SANE_TYPE_STRING;
|
||||
opt->constraint_type = SANE_CONSTRAINT_STRING_LIST;
|
||||
opt->constraint.string_list = s->df_action_list;
|
||||
|
@ -3619,8 +3659,8 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
|
|||
if(option==OPT_DF_SKEW){
|
||||
|
||||
opt->name = "df-skew";
|
||||
opt->title = "DF skew";
|
||||
opt->desc = "Enable double feed error due to skew";
|
||||
opt->title = SANE_I18N ("DF skew");
|
||||
opt->desc = SANE_I18N ("Enable double feed error due to skew");
|
||||
opt->type = SANE_TYPE_BOOL;
|
||||
opt->unit = SANE_UNIT_NONE;
|
||||
opt->constraint_type = SANE_CONSTRAINT_NONE;
|
||||
|
@ -3638,8 +3678,8 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
|
|||
if(option==OPT_DF_THICKNESS){
|
||||
|
||||
opt->name = "df-thickness";
|
||||
opt->title = "DF thickness";
|
||||
opt->desc = "Enable double feed error due to paper thickness";
|
||||
opt->title = SANE_I18N ("DF thickness");
|
||||
opt->desc = SANE_I18N ("Enable double feed error due to paper thickness");
|
||||
opt->type = SANE_TYPE_BOOL;
|
||||
opt->unit = SANE_UNIT_NONE;
|
||||
opt->constraint_type = SANE_CONSTRAINT_NONE;
|
||||
|
@ -3657,8 +3697,8 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
|
|||
if(option==OPT_DF_LENGTH){
|
||||
|
||||
opt->name = "df-length";
|
||||
opt->title = "DF length";
|
||||
opt->desc = "Enable double feed error due to paper length";
|
||||
opt->title = SANE_I18N ("DF length");
|
||||
opt->desc = SANE_I18N ("Enable double feed error due to paper length");
|
||||
opt->type = SANE_TYPE_BOOL;
|
||||
opt->unit = SANE_UNIT_NONE;
|
||||
opt->constraint_type = SANE_CONSTRAINT_NONE;
|
||||
|
@ -3681,8 +3721,8 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
|
|||
s->df_diff_list[4] = NULL;
|
||||
|
||||
opt->name = "df-diff";
|
||||
opt->title = "DF length difference";
|
||||
opt->desc = "Difference in page length to trigger double feed error";
|
||||
opt->title = SANE_I18N ("DF length difference");
|
||||
opt->desc = SANE_I18N ("Difference in page length to trigger double feed error");
|
||||
opt->type = SANE_TYPE_STRING;
|
||||
opt->constraint_type = SANE_CONSTRAINT_STRING_LIST;
|
||||
opt->constraint.string_list = s->df_diff_list;
|
||||
|
@ -3705,8 +3745,8 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
|
|||
s->df_recovery_list[3] = NULL;
|
||||
|
||||
opt->name = "df-recovery";
|
||||
opt->title = "DF recovery mode";
|
||||
opt->desc = "Request scanner to reverse feed on paper jam";
|
||||
opt->title = SANE_I18N ("DF recovery mode");
|
||||
opt->desc = SANE_I18N ("Request scanner to reverse feed on paper jam");
|
||||
opt->type = SANE_TYPE_STRING;
|
||||
opt->constraint_type = SANE_CONSTRAINT_STRING_LIST;
|
||||
opt->constraint.string_list = s->df_recovery_list;
|
||||
|
@ -3725,8 +3765,8 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
|
|||
s->paper_protect_list[3] = NULL;
|
||||
|
||||
opt->name = "paper-protect";
|
||||
opt->title = "Paper protection";
|
||||
opt->desc = "Request scanner to predict jams in the ADF";
|
||||
opt->title = SANE_I18N ("Paper protection");
|
||||
opt->desc = SANE_I18N ("Request scanner to predict jams in the ADF");
|
||||
opt->type = SANE_TYPE_STRING;
|
||||
opt->constraint_type = SANE_CONSTRAINT_STRING_LIST;
|
||||
opt->constraint.string_list = s->paper_protect_list;
|
||||
|
@ -3745,8 +3785,8 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
|
|||
s->adv_paper_prot_list[3] = NULL;
|
||||
|
||||
opt->name = "adv-paper-protect";
|
||||
opt->title = "Advanced paper protection";
|
||||
opt->desc = "Request scanner to predict jams in the ADF using improved sensors";
|
||||
opt->title = SANE_I18N ("Advanced paper protection");
|
||||
opt->desc = SANE_I18N ("Request scanner to predict jams in the ADF using improved sensors");
|
||||
opt->type = SANE_TYPE_STRING;
|
||||
opt->constraint_type = SANE_CONSTRAINT_STRING_LIST;
|
||||
opt->constraint.string_list = s->adv_paper_prot_list;
|
||||
|
@ -3765,8 +3805,8 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
|
|||
s->staple_detect_list[3] = NULL;
|
||||
|
||||
opt->name = "staple-detect";
|
||||
opt->title = "Staple detection";
|
||||
opt->desc = "Request scanner to detect jams in the ADF caused by staples";
|
||||
opt->title = SANE_I18N ("Staple detection");
|
||||
opt->desc = SANE_I18N ("Request scanner to detect jams in the ADF caused by staples");
|
||||
opt->type = SANE_TYPE_STRING;
|
||||
opt->constraint_type = SANE_CONSTRAINT_STRING_LIST;
|
||||
opt->constraint.string_list = s->staple_detect_list;
|
||||
|
@ -3785,8 +3825,8 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
|
|||
s->bg_color_list[3] = NULL;
|
||||
|
||||
opt->name = "bgcolor";
|
||||
opt->title = "Background color";
|
||||
opt->desc = "Set color of background for scans. May conflict with overscan option";
|
||||
opt->title = SANE_I18N ("Background color");
|
||||
opt->desc = SANE_I18N ("Set color of background for scans. May conflict with overscan option");
|
||||
opt->type = SANE_TYPE_STRING;
|
||||
opt->constraint_type = SANE_CONSTRAINT_STRING_LIST;
|
||||
opt->constraint.string_list = s->bg_color_list;
|
||||
|
@ -3806,8 +3846,8 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
|
|||
s->do_color_list[4] = NULL;
|
||||
|
||||
opt->name = "dropoutcolor";
|
||||
opt->title = "Dropout color";
|
||||
opt->desc = "One-pass scanners use only one color during gray or binary scanning, useful for colored paper or ink";
|
||||
opt->title = SANE_I18N ("Dropout color");
|
||||
opt->desc = SANE_I18N ("One-pass scanners use only one color during gray or binary scanning, useful for colored paper or ink");
|
||||
opt->type = SANE_TYPE_STRING;
|
||||
opt->constraint_type = SANE_CONSTRAINT_STRING_LIST;
|
||||
opt->constraint.string_list = s->do_color_list;
|
||||
|
@ -3830,8 +3870,8 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
|
|||
s->buff_mode_list[3] = NULL;
|
||||
|
||||
opt->name = "buffermode";
|
||||
opt->title = "Buffer mode";
|
||||
opt->desc = "Request scanner to read pages quickly from ADF into internal memory";
|
||||
opt->title = SANE_I18N ("Buffer mode");
|
||||
opt->desc = SANE_I18N ("Request scanner to read pages quickly from ADF into internal memory");
|
||||
opt->type = SANE_TYPE_STRING;
|
||||
opt->constraint_type = SANE_CONSTRAINT_STRING_LIST;
|
||||
opt->constraint.string_list = s->buff_mode_list;
|
||||
|
@ -3850,8 +3890,8 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
|
|||
s->prepick_list[3] = NULL;
|
||||
|
||||
opt->name = "prepick";
|
||||
opt->title = "Prepick";
|
||||
opt->desc = "Request scanner to grab next page from ADF";
|
||||
opt->title = SANE_I18N ("Prepick");
|
||||
opt->desc = SANE_I18N ("Request scanner to grab next page from ADF");
|
||||
opt->type = SANE_TYPE_STRING;
|
||||
opt->constraint_type = SANE_CONSTRAINT_STRING_LIST;
|
||||
opt->constraint.string_list = s->prepick_list;
|
||||
|
@ -3870,8 +3910,8 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
|
|||
s->overscan_list[3] = NULL;
|
||||
|
||||
opt->name = "overscan";
|
||||
opt->title = "Overscan";
|
||||
opt->desc = "Collect a few mm of background on top side of scan, before paper enters ADF, and increase maximum scan area beyond paper size, to allow collection on remaining sides. May conflict with bgcolor option";
|
||||
opt->title = SANE_I18N ("Overscan");
|
||||
opt->desc = SANE_I18N ("Collect a few mm of background on top side of scan, before paper enters ADF, and increase maximum scan area beyond paper size, to allow collection on remaining sides. May conflict with bgcolor option");
|
||||
opt->type = SANE_TYPE_STRING;
|
||||
opt->constraint_type = SANE_CONSTRAINT_STRING_LIST;
|
||||
opt->constraint.string_list = s->overscan_list;
|
||||
|
@ -3889,8 +3929,8 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
|
|||
s->sleep_time_range.quant = 1;
|
||||
|
||||
opt->name = "sleeptimer";
|
||||
opt->title = "Sleep timer";
|
||||
opt->desc = "Time in minutes until the internal power supply switches to sleep mode";
|
||||
opt->title = SANE_I18N ("Sleep timer");
|
||||
opt->desc = SANE_I18N ("Time in minutes until the internal power supply switches to sleep mode");
|
||||
opt->type = SANE_TYPE_INT;
|
||||
opt->unit = SANE_UNIT_NONE;
|
||||
opt->constraint_type = SANE_CONSTRAINT_RANGE;
|
||||
|
@ -3908,8 +3948,8 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
|
|||
s->off_time_range.quant = 1;
|
||||
|
||||
opt->name = "offtimer";
|
||||
opt->title = "Off timer";
|
||||
opt->desc = "Time in minutes until the internal power supply switches the scanner off. Will be rounded to nearest 15 minutes. Zero means never power off.";
|
||||
opt->title = SANE_I18N ("Off timer");
|
||||
opt->desc = SANE_I18N ("Time in minutes until the internal power supply switches the scanner off. Will be rounded to nearest 15 minutes. Zero means never power off.");
|
||||
opt->type = SANE_TYPE_INT;
|
||||
opt->unit = SANE_UNIT_NONE;
|
||||
opt->constraint_type = SANE_CONSTRAINT_RANGE;
|
||||
|
@ -3927,8 +3967,8 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
|
|||
s->duplex_offset_range.quant = 1;
|
||||
|
||||
opt->name = "duplexoffset";
|
||||
opt->title = "Duplex offset";
|
||||
opt->desc = "Adjust front/back offset";
|
||||
opt->title = SANE_I18N ("Duplex offset");
|
||||
opt->desc = SANE_I18N ("Adjust front/back offset");
|
||||
opt->type = SANE_TYPE_INT;
|
||||
opt->unit = SANE_UNIT_NONE;
|
||||
opt->constraint_type = SANE_CONSTRAINT_RANGE;
|
||||
|
@ -3945,8 +3985,8 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
|
|||
s->green_offset_range.quant = 1;
|
||||
|
||||
opt->name = "greenoffset";
|
||||
opt->title = "Green offset";
|
||||
opt->desc = "Adjust green/red offset";
|
||||
opt->title = SANE_I18N ("Green offset");
|
||||
opt->desc = SANE_I18N ("Adjust green/red offset");
|
||||
opt->type = SANE_TYPE_INT;
|
||||
opt->unit = SANE_UNIT_NONE;
|
||||
opt->constraint_type = SANE_CONSTRAINT_RANGE;
|
||||
|
@ -3963,8 +4003,8 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
|
|||
s->blue_offset_range.quant = 1;
|
||||
|
||||
opt->name = "blueoffset";
|
||||
opt->title = "Blue offset";
|
||||
opt->desc = "Adjust blue/red offset";
|
||||
opt->title = SANE_I18N ("Blue offset");
|
||||
opt->desc = SANE_I18N ("Adjust blue/red offset");
|
||||
opt->type = SANE_TYPE_INT;
|
||||
opt->unit = SANE_UNIT_NONE;
|
||||
opt->constraint_type = SANE_CONSTRAINT_RANGE;
|
||||
|
@ -3977,8 +4017,8 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
|
|||
|
||||
if(option==OPT_LOW_MEM){
|
||||
opt->name = "lowmemory";
|
||||
opt->title = "Low Memory";
|
||||
opt->desc = "Limit driver memory usage for use in embedded systems. Causes some duplex transfers to alternate sides on each call to sane_read. Value of option 'side' can be used to determine correct image. This option should only be used with custom front-end software.";
|
||||
opt->title = SANE_I18N ("Low Memory");
|
||||
opt->desc = SANE_I18N ("Limit driver memory usage for use in embedded systems. Causes some duplex transfers to alternate sides on each call to sane_read. Value of option 'side' can be used to determine correct image. This option should only be used with custom front-end software.");
|
||||
opt->type = SANE_TYPE_BOOL;
|
||||
opt->unit = SANE_UNIT_NONE;
|
||||
opt->size = sizeof(SANE_Word);
|
||||
|
@ -3993,8 +4033,8 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
|
|||
|
||||
if(option==OPT_SIDE){
|
||||
opt->name = "side";
|
||||
opt->title = "Duplex side";
|
||||
opt->desc = "Tells which side (0=front, 1=back) of a duplex scan the next call to sane_read will return.";
|
||||
opt->title = SANE_I18N ("Duplex side");
|
||||
opt->desc = SANE_I18N ("Tells which side (0=front, 1=back) of a duplex scan the next call to sane_read will return.");
|
||||
opt->type = SANE_TYPE_BOOL;
|
||||
opt->unit = SANE_UNIT_NONE;
|
||||
opt->size = sizeof(SANE_Word);
|
||||
|
@ -4005,8 +4045,8 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
|
|||
/*deskew and crop by hardware*/
|
||||
if(option==OPT_HWDESKEWCROP){
|
||||
opt->name = "hwdeskewcrop";
|
||||
opt->title = "Hardware deskew and crop";
|
||||
opt->desc = "Request scanner to rotate and crop pages digitally.";
|
||||
opt->title = SANE_I18N ("Hardware deskew and crop");
|
||||
opt->desc = SANE_I18N ("Request scanner to rotate and crop pages digitally.");
|
||||
opt->type = SANE_TYPE_BOOL;
|
||||
if (s->has_hybrid_crop_deskew)
|
||||
opt->cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT | SANE_CAP_ADVANCED;
|
||||
|
@ -4017,8 +4057,8 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
|
|||
/*deskew by software*/
|
||||
if(option==OPT_SWDESKEW){
|
||||
opt->name = "swdeskew";
|
||||
opt->title = "Software deskew";
|
||||
opt->desc = "Request driver to rotate skewed pages digitally.";
|
||||
opt->title = SANE_I18N ("Software deskew");
|
||||
opt->desc = SANE_I18N ("Request driver to rotate skewed pages digitally.");
|
||||
opt->type = SANE_TYPE_BOOL;
|
||||
if (1)
|
||||
opt->cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT | SANE_CAP_ADVANCED;
|
||||
|
@ -4030,8 +4070,8 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
|
|||
if(option==OPT_SWDESPECK){
|
||||
|
||||
opt->name = "swdespeck";
|
||||
opt->title = "Software despeckle diameter";
|
||||
opt->desc = "Maximum diameter of lone dots to remove from scan.";
|
||||
opt->title = SANE_I18N ("Software despeckle diameter");
|
||||
opt->desc = SANE_I18N ("Maximum diameter of lone dots to remove from scan.");
|
||||
opt->type = SANE_TYPE_INT;
|
||||
opt->unit = SANE_UNIT_NONE;
|
||||
opt->constraint_type = SANE_CONSTRAINT_RANGE;
|
||||
|
@ -4050,8 +4090,8 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
|
|||
/*crop by software*/
|
||||
if(option==OPT_SWCROP){
|
||||
opt->name = "swcrop";
|
||||
opt->title = "Software crop";
|
||||
opt->desc = "Request driver to remove border from pages digitally.";
|
||||
opt->title = SANE_I18N ("Software crop");
|
||||
opt->desc = SANE_I18N ("Request driver to remove border from pages digitally.");
|
||||
opt->type = SANE_TYPE_BOOL;
|
||||
if (1)
|
||||
opt->cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT | SANE_CAP_ADVANCED;
|
||||
|
@ -4080,8 +4120,8 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
|
|||
/*halt scanner feeder when cancelling*/
|
||||
if(option==OPT_HALT_ON_CANCEL){
|
||||
opt->name = "halt-on-cancel";
|
||||
opt->title = "Halt on Cancel";
|
||||
opt->desc = "Request driver to halt the paper feed instead of eject during a cancel.";
|
||||
opt->title = SANE_I18N ("Halt on Cancel");
|
||||
opt->desc = SANE_I18N ("Request driver to halt the paper feed instead of eject during a cancel.");
|
||||
opt->type = SANE_TYPE_BOOL;
|
||||
if (s->has_op_halt)
|
||||
opt->cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT | SANE_CAP_ADVANCED;
|
||||
|
@ -4092,8 +4132,8 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
|
|||
/* "Endorser" group ------------------------------------------------------ */
|
||||
if(option==OPT_ENDORSER_GROUP){
|
||||
opt->name = "endorser-options";
|
||||
opt->title = "Endorser Options";
|
||||
opt->desc = "Controls for endorser unit";
|
||||
opt->title = SANE_I18N ("Endorser Options");
|
||||
opt->desc = SANE_I18N ("Controls for endorser unit");
|
||||
opt->type = SANE_TYPE_GROUP;
|
||||
opt->constraint_type = SANE_CONSTRAINT_NONE;
|
||||
|
||||
|
@ -4104,8 +4144,8 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
|
|||
|
||||
if(option==OPT_ENDORSER){
|
||||
opt->name = "endorser";
|
||||
opt->title = "Endorser";
|
||||
opt->desc = "Enable endorser unit";
|
||||
opt->title = SANE_I18N ("Endorser");
|
||||
opt->desc = SANE_I18N ("Enable endorser unit");
|
||||
opt->type = SANE_TYPE_BOOL;
|
||||
opt->unit = SANE_UNIT_NONE;
|
||||
opt->size = sizeof(SANE_Word);
|
||||
|
@ -4120,8 +4160,8 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
|
|||
|
||||
if(option==OPT_ENDORSER_BITS){
|
||||
opt->name = "endorser-bits";
|
||||
opt->title = "Endorser bits";
|
||||
opt->desc = "Determines maximum endorser counter value.";
|
||||
opt->title = SANE_I18N ("Endorser bits");
|
||||
opt->desc = SANE_I18N ("Determines maximum endorser counter value.");
|
||||
opt->type = SANE_TYPE_INT;
|
||||
opt->unit = SANE_UNIT_NONE;
|
||||
opt->size = sizeof(SANE_Word);
|
||||
|
@ -4146,8 +4186,8 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
|
|||
|
||||
if(option==OPT_ENDORSER_VAL){
|
||||
opt->name = "endorser-val";
|
||||
opt->title = "Endorser value";
|
||||
opt->desc = "Initial endorser counter value.";
|
||||
opt->title = SANE_I18N ("Endorser value");
|
||||
opt->desc = SANE_I18N ("Initial endorser counter value.");
|
||||
opt->type = SANE_TYPE_INT;
|
||||
opt->unit = SANE_UNIT_NONE;
|
||||
opt->size = sizeof(SANE_Word);
|
||||
|
@ -4170,8 +4210,8 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
|
|||
|
||||
if(option==OPT_ENDORSER_STEP){
|
||||
opt->name = "endorser-step";
|
||||
opt->title = "Endorser step";
|
||||
opt->desc = "Change endorser counter value by this much for each page.";
|
||||
opt->title = SANE_I18N ("Endorser step");
|
||||
opt->desc = SANE_I18N ("Change endorser counter value by this much for each page.");
|
||||
opt->type = SANE_TYPE_INT;
|
||||
opt->unit = SANE_UNIT_NONE;
|
||||
opt->size = sizeof(SANE_Word);
|
||||
|
@ -4194,8 +4234,8 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
|
|||
|
||||
if(option==OPT_ENDORSER_Y){
|
||||
opt->name = "endorser-y";
|
||||
opt->title = "Endorser Y";
|
||||
opt->desc = "Endorser print offset from top of paper.";
|
||||
opt->title = SANE_I18N ("Endorser Y");
|
||||
opt->desc = SANE_I18N ("Endorser print offset from top of paper.");
|
||||
opt->type = SANE_TYPE_FIXED;
|
||||
opt->unit = SANE_UNIT_MM;
|
||||
opt->size = sizeof(SANE_Word);
|
||||
|
@ -4220,8 +4260,8 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
|
|||
|
||||
if(option==OPT_ENDORSER_FONT){
|
||||
opt->name = "endorser-font";
|
||||
opt->title = "Endorser font";
|
||||
opt->desc = "Endorser printing font.";
|
||||
opt->title = SANE_I18N ("Endorser font");
|
||||
opt->desc = SANE_I18N ("Endorser printing font.");
|
||||
opt->type = SANE_TYPE_STRING;
|
||||
opt->unit = SANE_UNIT_NONE;
|
||||
|
||||
|
@ -4250,8 +4290,8 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
|
|||
|
||||
if(option==OPT_ENDORSER_DIR){
|
||||
opt->name = "endorser-dir";
|
||||
opt->title = "Endorser direction";
|
||||
opt->desc = "Endorser printing direction.";
|
||||
opt->title = SANE_I18N ("Endorser direction");
|
||||
opt->desc = SANE_I18N ("Endorser printing direction.");
|
||||
opt->type = SANE_TYPE_STRING;
|
||||
opt->unit = SANE_UNIT_NONE;
|
||||
|
||||
|
@ -4275,8 +4315,8 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
|
|||
|
||||
if(option==OPT_ENDORSER_SIDE){
|
||||
opt->name = "endorser-side";
|
||||
opt->title = "Endorser side";
|
||||
opt->desc = "Endorser printing side, requires hardware support to change";
|
||||
opt->title = SANE_I18N ("Endorser side");
|
||||
opt->desc = SANE_I18N ("Endorser printing side, requires hardware support to change");
|
||||
opt->type = SANE_TYPE_STRING;
|
||||
opt->unit = SANE_UNIT_NONE;
|
||||
|
||||
|
@ -4301,8 +4341,8 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
|
|||
|
||||
if(option==OPT_ENDORSER_STRING){
|
||||
opt->name = "endorser-string";
|
||||
opt->title = "Endorser string";
|
||||
opt->desc = "Endorser alphanumeric print format. %05ud or %08ud at the end will be replaced by counter value.";
|
||||
opt->title = SANE_I18N ("Endorser string");
|
||||
opt->desc = SANE_I18N ("Endorser alphanumeric print format. %05ud or %08ud at the end will be replaced by counter value.");
|
||||
opt->type = SANE_TYPE_STRING;
|
||||
opt->unit = SANE_UNIT_NONE;
|
||||
opt->size = s->endorser_string_len + 1;
|
||||
|
@ -4329,8 +4369,8 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
|
|||
|
||||
if(option==OPT_TOP){
|
||||
opt->name = "top-edge";
|
||||
opt->title = "Top edge";
|
||||
opt->desc = "Paper is pulled partly into adf";
|
||||
opt->title = SANE_I18N ("Top edge");
|
||||
opt->desc = SANE_I18N ("Paper is pulled partly into adf");
|
||||
opt->type = SANE_TYPE_BOOL;
|
||||
opt->unit = SANE_UNIT_NONE;
|
||||
if (s->has_cmd_hw_status || s->ghs_in_rs)
|
||||
|
@ -4341,8 +4381,8 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
|
|||
|
||||
if(option==OPT_A3){
|
||||
opt->name = "a3-paper";
|
||||
opt->title = "A3 paper";
|
||||
opt->desc = "A3 paper detected";
|
||||
opt->title = SANE_I18N ("A3 paper");
|
||||
opt->desc = SANE_I18N ("A3 paper detected");
|
||||
opt->type = SANE_TYPE_BOOL;
|
||||
opt->unit = SANE_UNIT_NONE;
|
||||
if (s->has_cmd_hw_status)
|
||||
|
@ -4353,8 +4393,8 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
|
|||
|
||||
if(option==OPT_B4){
|
||||
opt->name = "b4-paper";
|
||||
opt->title = "B4 paper";
|
||||
opt->desc = "B4 paper detected";
|
||||
opt->title = SANE_I18N ("B4 paper");
|
||||
opt->desc = SANE_I18N ("B4 paper detected");
|
||||
opt->type = SANE_TYPE_BOOL;
|
||||
opt->unit = SANE_UNIT_NONE;
|
||||
if (s->has_cmd_hw_status)
|
||||
|
@ -4365,8 +4405,8 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
|
|||
|
||||
if(option==OPT_A4){
|
||||
opt->name = "a4-paper";
|
||||
opt->title = "A4 paper";
|
||||
opt->desc = "A4 paper detected";
|
||||
opt->title = SANE_I18N ("A4 paper");
|
||||
opt->desc = SANE_I18N ("A4 paper detected");
|
||||
opt->type = SANE_TYPE_BOOL;
|
||||
opt->unit = SANE_UNIT_NONE;
|
||||
if (s->has_cmd_hw_status)
|
||||
|
@ -4377,8 +4417,8 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
|
|||
|
||||
if(option==OPT_B5){
|
||||
opt->name = "b5-paper";
|
||||
opt->title = "B5 paper";
|
||||
opt->desc = "B5 paper detected";
|
||||
opt->title = SANE_I18N ("B5 paper");
|
||||
opt->desc = SANE_I18N ("B5 paper detected");
|
||||
opt->type = SANE_TYPE_BOOL;
|
||||
opt->unit = SANE_UNIT_NONE;
|
||||
if (s->has_cmd_hw_status)
|
||||
|
@ -4401,8 +4441,8 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
|
|||
|
||||
if(option==OPT_OMR){
|
||||
opt->name = "omr-df";
|
||||
opt->title = "OMR or DF";
|
||||
opt->desc = "OMR or double feed detected";
|
||||
opt->title = SANE_I18N ("OMR or DF");
|
||||
opt->desc = SANE_I18N ("OMR or double feed detected");
|
||||
opt->type = SANE_TYPE_BOOL;
|
||||
opt->unit = SANE_UNIT_NONE;
|
||||
if (s->has_cmd_hw_status)
|
||||
|
@ -4425,8 +4465,8 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
|
|||
|
||||
if(option==OPT_SLEEP){
|
||||
opt->name = "power-save";
|
||||
opt->title = "Power saving";
|
||||
opt->desc = "Scanner in power saving mode";
|
||||
opt->title = SANE_I18N ("Power saving");
|
||||
opt->desc = SANE_I18N ("Scanner in power saving mode");
|
||||
opt->type = SANE_TYPE_BOOL;
|
||||
opt->unit = SANE_UNIT_NONE;
|
||||
if (s->has_cmd_hw_status)
|
||||
|
@ -4449,8 +4489,8 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
|
|||
|
||||
if(option==OPT_MANUAL_FEED){
|
||||
opt->name = "manual-feed";
|
||||
opt->title = "Manual feed";
|
||||
opt->desc = "Manual feed selected";
|
||||
opt->title = SANE_I18N ("Manual feed");
|
||||
opt->desc = SANE_I18N ("Manual feed selected");
|
||||
opt->type = SANE_TYPE_BOOL;
|
||||
opt->unit = SANE_UNIT_NONE;
|
||||
if (s->has_cmd_hw_status)
|
||||
|
@ -4473,8 +4513,8 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
|
|||
|
||||
if(option==OPT_FUNCTION){
|
||||
opt->name = "function";
|
||||
opt->title = "Function";
|
||||
opt->desc = "Function character on screen";
|
||||
opt->title = SANE_I18N ("Function");
|
||||
opt->desc = SANE_I18N ("Function character on screen");
|
||||
opt->type = SANE_TYPE_INT;
|
||||
opt->unit = SANE_UNIT_NONE;
|
||||
if (s->has_cmd_hw_status || s->ghs_in_rs)
|
||||
|
@ -4485,8 +4525,8 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
|
|||
|
||||
if(option==OPT_INK_EMPTY){
|
||||
opt->name = "ink-low";
|
||||
opt->title = "Ink low";
|
||||
opt->desc = "Imprinter ink running low";
|
||||
opt->title = SANE_I18N ("Ink low");
|
||||
opt->desc = SANE_I18N ("Imprinter ink running low");
|
||||
opt->type = SANE_TYPE_BOOL;
|
||||
opt->unit = SANE_UNIT_NONE;
|
||||
if (s->has_cmd_hw_status && (s->has_endorser_f || s->has_endorser_b))
|
||||
|
@ -4497,8 +4537,8 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
|
|||
|
||||
if(option==OPT_DOUBLE_FEED){
|
||||
opt->name = "double-feed";
|
||||
opt->title = "Double feed";
|
||||
opt->desc = "Double feed detected";
|
||||
opt->title = SANE_I18N ("Double feed");
|
||||
opt->desc = SANE_I18N ("Double feed detected");
|
||||
opt->type = SANE_TYPE_BOOL;
|
||||
opt->unit = SANE_UNIT_NONE;
|
||||
if (s->has_cmd_hw_status || s->ghs_in_rs)
|
||||
|
@ -4509,8 +4549,8 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
|
|||
|
||||
if(option==OPT_ERROR_CODE){
|
||||
opt->name = "error-code";
|
||||
opt->title = "Error code";
|
||||
opt->desc = "Hardware error code";
|
||||
opt->title = SANE_I18N ("Error code");
|
||||
opt->desc = SANE_I18N ("Hardware error code");
|
||||
opt->type = SANE_TYPE_INT;
|
||||
opt->unit = SANE_UNIT_NONE;
|
||||
if (s->has_cmd_hw_status)
|
||||
|
@ -4521,8 +4561,8 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
|
|||
|
||||
if(option==OPT_SKEW_ANGLE){
|
||||
opt->name = "skew-angle";
|
||||
opt->title = "Skew angle";
|
||||
opt->desc = "Requires black background for scanning";
|
||||
opt->title = SANE_I18N ("Skew angle");
|
||||
opt->desc = SANE_I18N ("Requires black background for scanning");
|
||||
opt->type = SANE_TYPE_INT;
|
||||
opt->unit = SANE_UNIT_NONE;
|
||||
if (s->has_cmd_hw_status)
|
||||
|
@ -4533,8 +4573,8 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
|
|||
|
||||
if(option==OPT_INK_REMAIN){
|
||||
opt->name = "ink-remain";
|
||||
opt->title = "Ink remaining";
|
||||
opt->desc = "Imprinter ink level";
|
||||
opt->title = SANE_I18N ("Ink remaining");
|
||||
opt->desc = SANE_I18N ("Imprinter ink level");
|
||||
opt->type = SANE_TYPE_INT;
|
||||
opt->unit = SANE_UNIT_NONE;
|
||||
if (s->has_cmd_hw_status && (s->has_endorser_f || s->has_endorser_b))
|
||||
|
@ -4545,8 +4585,8 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
|
|||
|
||||
if(option==OPT_DENSITY_SW){
|
||||
opt->name = "density";
|
||||
opt->title = "Density";
|
||||
opt->desc = "Density dial";
|
||||
opt->title = SANE_I18N ("Density");
|
||||
opt->desc = SANE_I18N ("Density dial");
|
||||
opt->type = SANE_TYPE_INT;
|
||||
opt->unit = SANE_UNIT_NONE;
|
||||
if (s->ghs_in_rs)
|
||||
|
@ -4557,8 +4597,8 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option)
|
|||
|
||||
if(option==OPT_DUPLEX_SW){
|
||||
opt->name = "duplex";
|
||||
opt->title = "Duplex switch";
|
||||
opt->desc = "Duplex switch";
|
||||
opt->title = SANE_I18N ("Duplex switch");
|
||||
opt->desc = SANE_I18N ("Duplex switch");
|
||||
opt->type = SANE_TYPE_BOOL;
|
||||
opt->unit = SANE_UNIT_NONE;
|
||||
if (s->ghs_in_rs)
|
||||
|
@ -6708,7 +6748,7 @@ sane_get_parameters (SANE_Handle handle, SANE_Parameters * params)
|
|||
return ret;
|
||||
}
|
||||
|
||||
/* set s_param and u_param data based on user settings
|
||||
/* set s_params and u_params data based on user settings
|
||||
* and scanner capabilities. */
|
||||
SANE_Status
|
||||
update_params (struct fujitsu * s)
|
||||
|
@ -7718,8 +7758,8 @@ get_pixelsize(struct fujitsu *s, int actual)
|
|||
/* when we are called post-scan, the scanner may give
|
||||
* more accurate data in other fields */
|
||||
if(actual && !s->has_short_pixelsize && get_PSIZE_paper_w(in)){
|
||||
DBG(5,"get_pixelsize: Actual width %d -> %d\n", s->s_params.pixels_per_line, get_PSIZE_paper_w(in));
|
||||
s->s_params.pixels_per_line = get_PSIZE_paper_w(in);
|
||||
DBG(5,"get_pixelsize: Actual width\n");
|
||||
}
|
||||
else{
|
||||
s->s_params.pixels_per_line = get_PSIZE_num_x(in);
|
||||
|
@ -7734,8 +7774,8 @@ get_pixelsize(struct fujitsu *s, int actual)
|
|||
/* when we are called post-scan, the scanner may give
|
||||
* more accurate data in other fields */
|
||||
else if(actual && !s->has_short_pixelsize && get_PSIZE_paper_l(in)){
|
||||
DBG(5,"get_pixelsize: Actual length %d -> %d\n", s->s_params.lines, get_PSIZE_paper_l(in));
|
||||
s->s_params.lines = get_PSIZE_paper_l(in);
|
||||
DBG(5,"get_pixelsize: Actual length\n");
|
||||
}
|
||||
else{
|
||||
s->s_params.lines = get_PSIZE_num_y(in);
|
||||
|
|
|
@ -124,7 +124,10 @@ usb 0x04c5 0x11a2
|
|||
#fi-6125
|
||||
usb 0x04c5 0x11ee
|
||||
|
||||
#fi-6140Z
|
||||
#fi-6225
|
||||
usb 0x04c5 0x11ef
|
||||
|
||||
#fi-6140Z/fi-6160ZLA
|
||||
usb 0x04c5 0x11f1
|
||||
|
||||
#fi-6240Z
|
||||
|
@ -160,9 +163,21 @@ usb 0x04c5 0x132e
|
|||
#fi-7260
|
||||
usb 0x04c5 0x132f
|
||||
|
||||
#ScanSnap iX500EE
|
||||
usb 0x04c5 0x13f3
|
||||
|
||||
#ScanSnap iX100
|
||||
usb 0x04c5 0x13f4
|
||||
|
||||
#ScanPartner SP25
|
||||
usb 0x04c5 0x1409
|
||||
|
||||
#ScanPartner SP30
|
||||
usb 0x04c5 0x140a
|
||||
|
||||
#ScanPartner SP30F
|
||||
usb 0x04c5 0x140c
|
||||
|
||||
#fi-6140ZLA
|
||||
usb 0x04c5 0x145f
|
||||
|
||||
|
@ -193,3 +208,53 @@ usb 0x04c5 0x146d
|
|||
#fi-6220ZLA
|
||||
usb 0x04c5 0x146e
|
||||
|
||||
#N7100
|
||||
usb 0x04c5 0x146f
|
||||
|
||||
#fi-6400
|
||||
usb 0x04c5 0x14ac
|
||||
|
||||
#fi-7480
|
||||
usb 0x04c5 0x14b8
|
||||
|
||||
#fi-6420
|
||||
usb 0x04c5 0x14bd
|
||||
|
||||
#fi-7460
|
||||
usb 0x04c5 0x14be
|
||||
|
||||
#fi-7140
|
||||
usb 0x04c5 0x14df
|
||||
|
||||
#fi-7240
|
||||
usb 0x04c5 0x14e0
|
||||
|
||||
#fi-7135
|
||||
usb 0x04c5 0x14e1
|
||||
|
||||
#fi-7235
|
||||
usb 0x04c5 0x14e2
|
||||
|
||||
#fi-7130
|
||||
usb 0x04c5 0x14e3
|
||||
|
||||
#fi-7230
|
||||
usb 0x04c5 0x14e4
|
||||
|
||||
#fi-7125
|
||||
usb 0x04c5 0x14e5
|
||||
|
||||
#fi-7225
|
||||
usb 0x04c5 0x14e6
|
||||
|
||||
#fi-7120
|
||||
usb 0x04c5 0x14e7
|
||||
|
||||
#fi-7220
|
||||
usb 0x04c5 0x14e8
|
||||
|
||||
#fi-400F
|
||||
usb 0x04c5 0x151e
|
||||
|
||||
#fi-7030
|
||||
usb 0x04c5 0x151f
|
||||
|
|
|
@ -361,7 +361,7 @@
|
|||
:usbid "0x04c5" "0x114e"
|
||||
:comment "medium, recent, discontinued"
|
||||
|
||||
:model "fi-6140Z"
|
||||
:model "fi-6140Z/fi-6140ZLA"
|
||||
:interface "SCSI USB"
|
||||
:status :complete
|
||||
:usbid "0x04c5" "0x11f1"
|
||||
|
@ -552,5 +552,116 @@
|
|||
|
||||
:model "fi-6400"
|
||||
:interface "SCSI USB"
|
||||
:status :good
|
||||
:usbid "0x04c5" "0x14ac"
|
||||
|
||||
;==================================================
|
||||
; 2015/2016 NEW MODELS, UNORDERED
|
||||
|
||||
:model "fi-6420"
|
||||
:interface "SCSI USB"
|
||||
:status :untested
|
||||
;:usbid "0x04c5" "0x"
|
||||
:usbid "0x04c5" "0x14bd"
|
||||
|
||||
:model "fi-6225"
|
||||
:interface "USB"
|
||||
:status :untested
|
||||
:usbid "0x04c5" "0x11ef"
|
||||
|
||||
:model "ScanSnap iX500EE"
|
||||
:interface "USB"
|
||||
:status :untested
|
||||
:usbid "0x04c5" "0x13f3"
|
||||
|
||||
:model "ScanPartner SP25"
|
||||
:interface "USB"
|
||||
:status :untested
|
||||
:usbid "0x04c5" "0x1409"
|
||||
:comment "Possibly does not use a Fujitsu protocol?"
|
||||
|
||||
:model "ScanPartner SP30"
|
||||
:interface "USB"
|
||||
:status :untested
|
||||
:usbid "0x04c5" "0x140a"
|
||||
:comment "Possibly does not use a Fujitsu protocol?"
|
||||
|
||||
:model "ScanPartner SP30F"
|
||||
:interface "USB"
|
||||
:status :untested
|
||||
:usbid "0x04c5" "0x140c"
|
||||
:comment "Possibly does not use a Fujitsu protocol?"
|
||||
|
||||
:model "N7100"
|
||||
:interface "USB Ethernet"
|
||||
:status :untested
|
||||
:usbid "0x04c5" "0x146f"
|
||||
|
||||
:model "fi-7480"
|
||||
:interface "USB"
|
||||
:status :good
|
||||
:usbid "0x04c5" "0x14b8"
|
||||
|
||||
:model "fi-7460"
|
||||
:interface "USB"
|
||||
:status :good
|
||||
:usbid "0x04c5" "0x14be"
|
||||
|
||||
:model "fi-7140"
|
||||
:interface "USB"
|
||||
:status :untested
|
||||
:usbid "0x04c5" "0x14df"
|
||||
|
||||
:model "fi-7240"
|
||||
:interface "USB"
|
||||
:status :untested
|
||||
:usbid "0x04c5" "0x14e0"
|
||||
|
||||
:model "fi-7135"
|
||||
:interface "USB"
|
||||
:status :untested
|
||||
:usbid "0x04c5" "0x14e1"
|
||||
|
||||
:model "fi-7235"
|
||||
:interface "USB"
|
||||
:status :untested
|
||||
:usbid "0x04c5" "0x14e2"
|
||||
|
||||
:model "fi-7130"
|
||||
:interface "USB"
|
||||
:status :untested
|
||||
:usbid "0x04c5" "0x14e3"
|
||||
|
||||
:model "fi-7230"
|
||||
:interface "USB"
|
||||
:status :untested
|
||||
:usbid "0x04c5" "0x14e4"
|
||||
|
||||
:model "fi-7125"
|
||||
:interface "USB"
|
||||
:status :untested
|
||||
:usbid "0x04c5" "0x14e5"
|
||||
|
||||
:model "fi-7225"
|
||||
:interface "USB"
|
||||
:status :untested
|
||||
:usbid "0x04c5" "0x14e6"
|
||||
|
||||
:model "fi-7120"
|
||||
:interface "USB"
|
||||
:status :untested
|
||||
:usbid "0x04c5" "0x14e7"
|
||||
|
||||
:model "fi-7220"
|
||||
:interface "USB"
|
||||
:status :untested
|
||||
:usbid "0x04c5" "0x14e8"
|
||||
|
||||
:model "fi-400F"
|
||||
:interface "USB"
|
||||
:status :untested
|
||||
:usbid "0x04c5" "0x151e"
|
||||
|
||||
:model "fi-7030"
|
||||
:interface "USB"
|
||||
:status :untested
|
||||
:usbid "0x04c5" "0x151f"
|
||||
|
|
Ładowanie…
Reference in New Issue