Lines Matching refs:opt
2605 memset (s->opt, 0, sizeof (s->opt));
2607 s->opt[i].name = "filler";
2608 s->opt[i].size = sizeof (SANE_Word);
2609 s->opt[i].cap = SANE_CAP_INACTIVE;
2612 /* go ahead and setup the first opt, because
2616 s->opt[OPT_NUM_OPTS].name = SANE_NAME_NUM_OPTIONS;
2617 s->opt[OPT_NUM_OPTS].title = SANE_TITLE_NUM_OPTIONS;
2618 s->opt[OPT_NUM_OPTS].desc = SANE_DESC_NUM_OPTIONS;
2619 s->opt[OPT_NUM_OPTS].type = SANE_TYPE_INT;
2620 s->opt[OPT_NUM_OPTS].cap = SANE_CAP_SOFT_DETECT;
2861 SANE_Option_Descriptor *opt = &s->opt[option];
2870 opt->name = SANE_NAME_STANDARD;
2871 opt->title = SANE_TITLE_STANDARD;
2872 opt->desc = SANE_DESC_STANDARD;
2873 opt->type = SANE_TYPE_GROUP;
2874 opt->constraint_type = SANE_CONSTRAINT_NONE;
2905 opt->name = SANE_NAME_SCAN_SOURCE;
2906 opt->title = SANE_TITLE_SCAN_SOURCE;
2907 opt->desc = SANE_DESC_SCAN_SOURCE;
2908 opt->type = SANE_TYPE_STRING;
2909 opt->constraint_type = SANE_CONSTRAINT_STRING_LIST;
2910 opt->constraint.string_list = s->source_list;
2911 opt->size = maxStringSize (opt->constraint.string_list);
2912 opt->cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT;
2932 opt->name = SANE_NAME_SCAN_MODE;
2933 opt->title = SANE_TITLE_SCAN_MODE;
2934 opt->desc = SANE_DESC_SCAN_MODE;
2935 opt->type = SANE_TYPE_STRING;
2936 opt->constraint_type = SANE_CONSTRAINT_STRING_LIST;
2937 opt->constraint.string_list = s->mode_list;
2938 opt->size = maxStringSize (opt->constraint.string_list);
2939 opt->cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT;
2946 opt->name = SANE_NAME_SCAN_RESOLUTION;
2947 opt->title = SANE_TITLE_SCAN_RESOLUTION;
2948 opt->desc = SANE_DESC_SCAN_RESOLUTION;
2949 opt->type = SANE_TYPE_INT;
2950 opt->unit = SANE_UNIT_DPI;
2951 opt->cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT;
2957 opt->constraint_type = SANE_CONSTRAINT_RANGE;
2958 opt->constraint.range = &s->res_range;
2975 opt->constraint_type = SANE_CONSTRAINT_WORD_LIST;
2976 opt->constraint.word_list = s->res_list;
2982 opt->name = SANE_NAME_GEOMETRY;
2983 opt->title = SANE_TITLE_GEOMETRY;
2984 opt->desc = SANE_DESC_GEOMETRY;
2985 opt->type = SANE_TYPE_GROUP;
2986 opt->constraint_type = SANE_CONSTRAINT_NONE;
2997 opt->name = SANE_NAME_SCAN_TL_X;
2998 opt->title = SANE_TITLE_SCAN_TL_X;
2999 opt->desc = SANE_DESC_SCAN_TL_X;
3000 opt->type = SANE_TYPE_FIXED;
3001 opt->unit = SANE_UNIT_MM;
3002 opt->constraint_type = SANE_CONSTRAINT_RANGE;
3003 opt->constraint.range = &(s->tl_x_range);
3004 opt->cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT;
3015 opt->name = SANE_NAME_SCAN_TL_Y;
3016 opt->title = SANE_TITLE_SCAN_TL_Y;
3017 opt->desc = SANE_DESC_SCAN_TL_Y;
3018 opt->type = SANE_TYPE_FIXED;
3019 opt->unit = SANE_UNIT_MM;
3020 opt->constraint_type = SANE_CONSTRAINT_RANGE;
3021 opt->constraint.range = &(s->tl_y_range);
3022 opt->cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT;
3033 opt->name = SANE_NAME_SCAN_BR_X;
3034 opt->title = SANE_TITLE_SCAN_BR_X;
3035 opt->desc = SANE_DESC_SCAN_BR_X;
3036 opt->type = SANE_TYPE_FIXED;
3037 opt->unit = SANE_UNIT_MM;
3038 opt->constraint_type = SANE_CONSTRAINT_RANGE;
3039 opt->constraint.range = &(s->br_x_range);
3040 opt->cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT;
3051 opt->name = SANE_NAME_SCAN_BR_Y;
3052 opt->title = SANE_TITLE_SCAN_BR_Y;
3053 opt->desc = SANE_DESC_SCAN_BR_Y;
3054 opt->type = SANE_TYPE_FIXED;
3055 opt->unit = SANE_UNIT_MM;
3056 opt->constraint_type = SANE_CONSTRAINT_RANGE;
3057 opt->constraint.range = &(s->br_y_range);
3058 opt->cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT;
3069 opt->name = SANE_NAME_PAGE_WIDTH;
3070 opt->title = SANE_TITLE_PAGE_WIDTH;
3071 opt->desc = SANE_DESC_PAGE_WIDTH;
3072 opt->type = SANE_TYPE_FIXED;
3073 opt->unit = SANE_UNIT_MM;
3074 opt->constraint_type = SANE_CONSTRAINT_RANGE;
3075 opt->constraint.range = &s->paper_x_range;
3078 opt->cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT;
3080 opt->cap |= SANE_CAP_INACTIVE;
3084 opt->cap = SANE_CAP_INACTIVE;
3096 opt->name = SANE_NAME_PAGE_HEIGHT;
3097 opt->title = SANE_TITLE_PAGE_HEIGHT;
3098 opt->desc = SANE_DESC_PAGE_HEIGHT;
3099 opt->type = SANE_TYPE_FIXED;
3100 opt->unit = SANE_UNIT_MM;
3101 opt->constraint_type = SANE_CONSTRAINT_RANGE;
3102 opt->constraint.range = &s->paper_y_range;
3105 opt->cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT;
3107 opt->cap |= SANE_CAP_INACTIVE;
3111 opt->cap = SANE_CAP_INACTIVE;
3117 opt->name = SANE_NAME_ENHANCEMENT;
3118 opt->title = SANE_TITLE_ENHANCEMENT;
3119 opt->desc = SANE_DESC_ENHANCEMENT;
3120 opt->type = SANE_TYPE_GROUP;
3121 opt->constraint_type = SANE_CONSTRAINT_NONE;
3126 opt->name = SANE_NAME_BRIGHTNESS;
3127 opt->title = SANE_TITLE_BRIGHTNESS;
3128 opt->desc = SANE_DESC_BRIGHTNESS;
3129 opt->type = SANE_TYPE_INT;
3130 opt->unit = SANE_UNIT_NONE;
3131 opt->constraint_type = SANE_CONSTRAINT_RANGE;
3132 opt->constraint.range = &s->brightness_range;
3140 opt->cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT;
3143 opt->cap = SANE_CAP_INACTIVE;
3149 opt->name = SANE_NAME_CONTRAST;
3150 opt->title = SANE_TITLE_CONTRAST;
3151 opt->desc = SANE_DESC_CONTRAST;
3152 opt->type = SANE_TYPE_INT;
3153 opt->unit = SANE_UNIT_NONE;
3154 opt->constraint_type = SANE_CONSTRAINT_RANGE;
3155 opt->constraint.range = &s->contrast_range;
3163 opt->cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT;
3166 opt->cap = SANE_CAP_INACTIVE;
3172 opt->name = "gamma";
3173 opt->title = SANE_I18N ("Gamma function exponent");
3174 opt->desc = SANE_I18N ("Changes intensity of midtones");
3175 opt->type = SANE_TYPE_FIXED;
3176 opt->unit = SANE_UNIT_NONE;
3177 opt->constraint_type = SANE_CONSTRAINT_RANGE;
3178 opt->constraint.range = &s->gamma_range;
3187 opt->cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT;
3190 opt->cap = SANE_CAP_INACTIVE;
3193 opt->cap = SANE_CAP_INACTIVE;
3198 opt->name = SANE_NAME_THRESHOLD;
3199 opt->title = SANE_TITLE_THRESHOLD;
3200 opt->desc = SANE_DESC_THRESHOLD;
3201 opt->type = SANE_TYPE_INT;
3202 opt->unit = SANE_UNIT_NONE;
3203 opt->constraint_type = SANE_CONSTRAINT_RANGE;
3204 opt->constraint.range = &s->threshold_range;
3210 opt->cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT;
3212 opt->cap |= SANE_CAP_INACTIVE;
3216 opt->cap = SANE_CAP_INACTIVE;
3222 opt->name = "rif";
3223 opt->title = SANE_I18N ("RIF");
3224 opt->desc = SANE_I18N ("Reverse image format");
3225 opt->type = SANE_TYPE_BOOL;
3226 opt->unit = SANE_UNIT_NONE;
3228 opt->cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT;
3230 opt->cap = SANE_CAP_INACTIVE;
3240 opt->name = "ht-type";
3241 opt->title = SANE_I18N ("Halftone type");
3242 opt->desc = SANE_I18N ("Control type of halftone filter");
3243 opt->type = SANE_TYPE_STRING;
3244 opt->unit = SANE_UNIT_NONE;
3246 opt->constraint_type = SANE_CONSTRAINT_STRING_LIST;
3247 opt->constraint.string_list = s->ht_type_list;
3248 opt->size = maxStringSize (opt->constraint.string_list);
3251 opt->cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT;
3253 opt->cap |= SANE_CAP_INACTIVE;
3257 opt->cap = SANE_CAP_INACTIVE;
3261 opt->name = "ht-pattern";
3262 opt->title = SANE_I18N ("Halftone pattern");
3263 opt->desc = SANE_I18N ("Control pattern of halftone filter");
3264 opt->type = SANE_TYPE_INT;
3265 opt->unit = SANE_UNIT_NONE;
3267 opt->constraint_type = SANE_CONSTRAINT_RANGE;
3268 opt->constraint.range = &s->ht_pattern_range;
3274 opt->cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT;
3276 opt->cap |= SANE_CAP_INACTIVE;
3280 opt->cap = SANE_CAP_INACTIVE;
3284 opt->name = "outline";
3285 opt->title = SANE_I18N ("Outline");
3286 opt->desc = SANE_I18N ("Perform outline extraction");
3287 opt->type = SANE_TYPE_BOOL;
3288 opt->unit = SANE_UNIT_NONE;
3290 opt->cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT;
3292 opt->cap = SANE_CAP_INACTIVE;
3296 opt->name = "emphasis";
3297 opt->title = SANE_I18N ("Emphasis");
3298 opt->desc = SANE_I18N ("Negative to smooth or positive to sharpen image");
3299 opt->type = SANE_TYPE_INT;
3300 opt->unit = SANE_UNIT_NONE;
3302 opt->constraint_type = SANE_CONSTRAINT_RANGE;
3303 opt->constraint.range = &s->emphasis_range;
3309 opt->cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT;
3311 opt->cap = SANE_CAP_INACTIVE;
3315 opt->name = "separation";
3316 opt->title = SANE_I18N ("Separation");
3317 opt->desc = SANE_I18N ("Enable automatic separation of image and text");
3318 opt->type = SANE_TYPE_BOOL;
3319 opt->unit = SANE_UNIT_NONE;
3321 opt->cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT;
3323 opt->cap = SANE_CAP_INACTIVE;
3327 opt->name = "mirroring";
3328 opt->title = SANE_I18N ("Mirroring");
3329 opt->desc = SANE_I18N ("Reflect output image horizontally");
3330 opt->type = SANE_TYPE_BOOL;
3331 opt->unit = SANE_UNIT_NONE;
3333 opt->cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT;
3335 opt->cap = SANE_CAP_INACTIVE;
3345 opt->name = "wl-follow";
3346 opt->title = SANE_I18N ("White level follower");
3347 opt->desc = SANE_I18N ("Control white level follower");
3348 opt->type = SANE_TYPE_STRING;
3349 opt->unit = SANE_UNIT_NONE;
3351 opt->constraint_type = SANE_CONSTRAINT_STRING_LIST;
3352 opt->constraint.string_list = s->wl_follow_list;
3353 opt->size = maxStringSize (opt->constraint.string_list);
3356 opt->cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT;
3358 opt->cap = SANE_CAP_INACTIVE;
3364 opt->name = "bp-filter";
3365 opt->title = SANE_I18N ("BP filter");
3366 opt->desc = SANE_I18N ("Improves quality of high resolution ball-point pen text");
3367 opt->type = SANE_TYPE_BOOL;
3368 opt->unit = SANE_UNIT_NONE;
3371 opt->cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT;
3373 opt->cap |= SANE_CAP_INACTIVE;
3377 opt->cap = SANE_CAP_INACTIVE;
3381 opt->name = "smoothing";
3382 opt->title = SANE_I18N ("Smoothing");
3383 opt->desc = SANE_I18N ("Enable smoothing for improved OCR");
3384 opt->type = SANE_TYPE_BOOL;
3385 opt->unit = SANE_UNIT_NONE;
3388 opt->cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT;
3390 opt->cap |= SANE_CAP_INACTIVE;
3394 opt->cap = SANE_CAP_INACTIVE;
3398 opt->name = "gamma-curve";
3399 opt->title = SANE_I18N ("Gamma curve");
3400 opt->desc = SANE_I18N ("Gamma curve, from light to dark, but upper two may not work");
3401 opt->type = SANE_TYPE_INT;
3402 opt->unit = SANE_UNIT_NONE;
3404 opt->constraint_type = SANE_CONSTRAINT_RANGE;
3405 opt->constraint.range = &s->gamma_curve_range;
3411 opt->cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT;
3413 opt->cap |= SANE_CAP_INACTIVE;
3417 opt->cap = SANE_CAP_INACTIVE;
3421 opt->name = "threshold-curve";
3422 opt->title = SANE_I18N ("Threshold curve");
3423 opt->desc = SANE_I18N ("Threshold curve, from light to dark, but upper two may not be linear");
3424 opt->type = SANE_TYPE_INT;
3425 opt->unit = SANE_UNIT_NONE;
3427 opt->constraint_type = SANE_CONSTRAINT_RANGE;
3428 opt->constraint.range = &s->threshold_curve_range;
3434 opt->cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT;
3436 opt->cap |= SANE_CAP_INACTIVE;
3440 opt->cap = SANE_CAP_INACTIVE;
3444 opt->name = "threshold-white";
3445 opt->title = SANE_I18N ("Threshold white");
3446 opt->desc = SANE_I18N ("Set pixels equal to threshold to white instead of black");
3447 opt->type = SANE_TYPE_BOOL;
3448 opt->unit = SANE_UNIT_NONE;
3451 opt->cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT;
3453 opt->cap |= SANE_CAP_INACTIVE;
3457 opt->cap = SANE_CAP_INACTIVE;
3461 opt->name = "noise-removal";
3462 opt->title = SANE_I18N ("Noise removal");
3463 opt->desc = SANE_I18N ("Noise removal");
3464 opt->type = SANE_TYPE_BOOL;
3465 opt->unit = SANE_UNIT_NONE;
3468 opt->cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT;
3470 opt->cap |= SANE_CAP_INACTIVE;
3474 opt->cap = SANE_CAP_INACTIVE;
3478 opt->name = "matrix-5x5";
3479 opt->title = SANE_I18N ("Matrix 5x5");
3480 opt->desc = SANE_I18N ("Remove 5 pixel square noise");
3481 opt->type = SANE_TYPE_BOOL;
3482 opt->unit = SANE_UNIT_NONE;
3485 opt->cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT;
3487 opt->cap |= SANE_CAP_INACTIVE;
3491 opt->cap = SANE_CAP_INACTIVE;
3495 opt->name = "matrix-4x4";
3496 opt->title = SANE_I18N ("Matrix 4x4");
3497 opt->desc = SANE_I18N ("Remove 4 pixel square noise");
3498 opt->type = SANE_TYPE_BOOL;
3499 opt->unit = SANE_UNIT_NONE;
3502 opt->cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT;
3504 opt->cap |= SANE_CAP_INACTIVE;
3508 opt->cap = SANE_CAP_INACTIVE;
3512 opt->name = "matrix-3x3";
3513 opt->title = SANE_I18N ("Matrix 3x3");
3514 opt->desc = SANE_I18N ("Remove 3 pixel square noise");
3515 opt->type = SANE_TYPE_BOOL;
3516 opt->unit = SANE_UNIT_NONE;
3519 opt->cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT;
3521 opt->cap |= SANE_CAP_INACTIVE;
3525 opt->cap = SANE_CAP_INACTIVE;
3529 opt->name = "matrix-2x2";
3530 opt->title = SANE_I18N ("Matrix 2x2");
3531 opt->desc = SANE_I18N ("Remove 2 pixel square noise");
3532 opt->type = SANE_TYPE_BOOL;
3533 opt->unit = SANE_UNIT_NONE;
3536 opt->cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT;
3538 opt->cap |= SANE_CAP_INACTIVE;
3542 opt->cap = SANE_CAP_INACTIVE;
3549 opt->name = "variance";
3550 opt->title = SANE_I18N ("Variance");
3551 opt->desc = SANE_I18N ("Set SDTC variance rate (sensitivity), 0 equals 127");
3552 opt->type = SANE_TYPE_INT;
3553 opt->unit = SANE_UNIT_NONE;
3555 opt->constraint_type = SANE_CONSTRAINT_RANGE;
3556 opt->constraint.range = &s->variance_range;
3562 opt->cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT;
3564 opt->cap |= SANE_CAP_INACTIVE;
3568 opt->cap = SANE_CAP_INACTIVE;
3573 opt->name = SANE_NAME_ADVANCED;
3574 opt->title = SANE_TITLE_ADVANCED;
3575 opt->desc = SANE_DESC_ADVANCED;
3576 opt->type = SANE_TYPE_GROUP;
3577 opt->constraint_type = SANE_CONSTRAINT_NONE;
3583 opt->name = "awd";
3584 opt->title = SANE_I18N ("Auto width detection");
3585 opt->desc = SANE_I18N ("Scanner detects paper sides. May reduce scanning speed.");
3586 opt->type = SANE_TYPE_BOOL;
3587 opt->unit = SANE_UNIT_NONE;
3588 opt->constraint_type = SANE_CONSTRAINT_NONE;
3592 opt->cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT | SANE_CAP_ADVANCED;
3595 opt->cap = SANE_CAP_INACTIVE;
3601 opt->name = "ald";
3602 opt->title = SANE_I18N ("Auto length detection");
3603 opt->desc = SANE_I18N ("Scanner detects paper lower edge. May confuse some frontends.");
3604 opt->type = SANE_TYPE_BOOL;
3605 opt->unit = SANE_UNIT_NONE;
3606 opt->constraint_type = SANE_CONSTRAINT_NONE;
3609 opt->cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT | SANE_CAP_ADVANCED;
3612 opt->cap = SANE_CAP_INACTIVE;
3628 opt->name = "compression";
3629 opt->title = SANE_I18N ("Compression");
3630 opt->desc = SANE_I18N ("Enable compressed data. May crash your front-end program");
3631 opt->type = SANE_TYPE_STRING;
3632 opt->constraint_type = SANE_CONSTRAINT_STRING_LIST;
3633 opt->constraint.string_list = s->compress_list;
3634 opt->size = maxStringSize (opt->constraint.string_list);
3637 opt->cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT;
3639 opt->cap |= SANE_CAP_INACTIVE;
3643 opt->cap = SANE_CAP_INACTIVE;
3649 opt->name = "compression-arg";
3650 opt->title = SANE_I18N ("Compression argument");
3651 opt->desc = SANE_I18N ("Level of JPEG compression. 1 is small file, 7 is large file. 0 (default) is same as 4");
3652 opt->type = SANE_TYPE_INT;
3653 opt->unit = SANE_UNIT_NONE;
3654 opt->constraint_type = SANE_CONSTRAINT_RANGE;
3655 opt->constraint.range = &s->compress_arg_range;
3662 opt->cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT;
3666 opt->cap |= SANE_CAP_INACTIVE;
3670 opt->cap = SANE_CAP_INACTIVE;
3680 opt->name = "df-action";
3681 opt->title = SANE_I18N ("DF action");
3682 opt->desc = SANE_I18N ("Action following double feed error");
3683 opt->type = SANE_TYPE_STRING;
3684 opt->constraint_type = SANE_CONSTRAINT_STRING_LIST;
3685 opt->constraint.string_list = s->df_action_list;
3686 opt->size = maxStringSize (opt->constraint.string_list);
3689 opt->cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT | SANE_CAP_ADVANCED;
3691 opt->cap = SANE_CAP_INACTIVE;
3697 opt->name = "df-skew";
3698 opt->title = SANE_I18N ("DF skew");
3699 opt->desc = SANE_I18N ("Enable double feed error due to skew");
3700 opt->type = SANE_TYPE_BOOL;
3701 opt->unit = SANE_UNIT_NONE;
3702 opt->constraint_type = SANE_CONSTRAINT_NONE;
3705 opt->cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT | SANE_CAP_ADVANCED;
3707 opt->cap |= SANE_CAP_INACTIVE;
3710 opt->cap = SANE_CAP_INACTIVE;
3716 opt->name = "df-thickness";
3717 opt->title = SANE_I18N ("DF thickness");
3718 opt->desc = SANE_I18N ("Enable double feed error due to paper thickness");
3719 opt->type = SANE_TYPE_BOOL;
3720 opt->unit = SANE_UNIT_NONE;
3721 opt->constraint_type = SANE_CONSTRAINT_NONE;
3724 opt->cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT | SANE_CAP_ADVANCED;
3726 opt->cap |= SANE_CAP_INACTIVE;
3729 opt->cap = SANE_CAP_INACTIVE;
3735 opt->name = "df-length";
3736 opt->title = SANE_I18N ("DF length");
3737 opt->desc = SANE_I18N ("Enable double feed error due to paper length");
3738 opt->type = SANE_TYPE_BOOL;
3739 opt->unit = SANE_UNIT_NONE;
3740 opt->constraint_type = SANE_CONSTRAINT_NONE;
3743 opt->cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT | SANE_CAP_ADVANCED;
3745 opt->cap |= SANE_CAP_INACTIVE;
3748 opt->cap = SANE_CAP_INACTIVE;
3759 opt->name = "df-diff";
3760 opt->title = SANE_I18N ("DF length difference");
3761 opt->desc = SANE_I18N ("Difference in page length to trigger double feed error");
3762 opt->type = SANE_TYPE_STRING;
3763 opt->constraint_type = SANE_CONSTRAINT_STRING_LIST;
3764 opt->constraint.string_list = s->df_diff_list;
3765 opt->size = maxStringSize (opt->constraint.string_list);
3768 opt->cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT | SANE_CAP_ADVANCED;
3770 opt->cap |= SANE_CAP_INACTIVE;
3773 opt->cap = SANE_CAP_INACTIVE;
3783 opt->name = "df-recovery";
3784 opt->title = SANE_I18N ("DF recovery mode");
3785 opt->desc = SANE_I18N ("Request scanner to reverse feed on paper jam");
3786 opt->type = SANE_TYPE_STRING;
3787 opt->constraint_type = SANE_CONSTRAINT_STRING_LIST;
3788 opt->constraint.string_list = s->df_recovery_list;
3789 opt->size = maxStringSize (opt->constraint.string_list);
3791 opt->cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT | SANE_CAP_ADVANCED;
3793 opt->cap = SANE_CAP_INACTIVE;
3803 opt->name = "paper-protect";
3804 opt->title = SANE_I18N ("Paper protection");
3805 opt->desc = SANE_I18N ("Request scanner to predict jams in the ADF");
3806 opt->type = SANE_TYPE_STRING;
3807 opt->constraint_type = SANE_CONSTRAINT_STRING_LIST;
3808 opt->constraint.string_list = s->paper_protect_list;
3809 opt->size = maxStringSize (opt->constraint.string_list);
3811 opt->cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT | SANE_CAP_ADVANCED;
3813 opt->cap = SANE_CAP_INACTIVE;
3823 opt->name = "adv-paper-protect";
3824 opt->title = SANE_I18N ("Advanced paper protection");
3825 opt->desc = SANE_I18N ("Request scanner to predict jams in the ADF using improved sensors");
3826 opt->type = SANE_TYPE_STRING;
3827 opt->constraint_type = SANE_CONSTRAINT_STRING_LIST;
3828 opt->constraint.string_list = s->adv_paper_prot_list;
3829 opt->size = maxStringSize (opt->constraint.string_list);
3831 opt->cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT | SANE_CAP_ADVANCED;
3833 opt->cap = SANE_CAP_INACTIVE;
3843 opt->name = "staple-detect";
3844 opt->title = SANE_I18N ("Staple detection");
3845 opt->desc = SANE_I18N ("Request scanner to detect jams in the ADF caused by staples");
3846 opt->type = SANE_TYPE_STRING;
3847 opt->constraint_type = SANE_CONSTRAINT_STRING_LIST;
3848 opt->constraint.string_list = s->staple_detect_list;
3849 opt->size = maxStringSize (opt->constraint.string_list);
3851 opt->cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT | SANE_CAP_ADVANCED;
3853 opt->cap = SANE_CAP_INACTIVE;
3863 opt->name = "bgcolor";
3864 opt->title = SANE_I18N ("Background color");
3865 opt->desc = SANE_I18N ("Set color of background for scans. May conflict with overscan option");
3866 opt->type = SANE_TYPE_STRING;
3867 opt->constraint_type = SANE_CONSTRAINT_STRING_LIST;
3868 opt->constraint.string_list = s->bg_color_list;
3869 opt->size = maxStringSize (opt->constraint.string_list);
3871 opt->cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT | SANE_CAP_ADVANCED;
3873 opt->cap = SANE_CAP_INACTIVE;
3884 opt->name = "dropoutcolor";
3885 opt->title = SANE_I18N ("Dropout color");
3886 opt->desc = SANE_I18N ("One-pass scanners use only one color during gray or binary scanning, useful for colored paper or ink");
3887 opt->type = SANE_TYPE_STRING;
3888 opt->constraint_type = SANE_CONSTRAINT_STRING_LIST;
3889 opt->constraint.string_list = s->do_color_list;
3890 opt->size = maxStringSize (opt->constraint.string_list);
3893 opt->cap = SANE_CAP_SOFT_SELECT|SANE_CAP_SOFT_DETECT|SANE_CAP_ADVANCED;
3895 opt->cap |= SANE_CAP_INACTIVE;
3898 opt->cap = SANE_CAP_INACTIVE;
3908 opt->name = "buffermode";
3909 opt->title = SANE_I18N ("Buffer mode");
3910 opt->desc = SANE_I18N ("Request scanner to read pages quickly from ADF into internal memory");
3911 opt->type = SANE_TYPE_STRING;
3912 opt->constraint_type = SANE_CONSTRAINT_STRING_LIST;
3913 opt->constraint.string_list = s->buff_mode_list;
3914 opt->size = maxStringSize (opt->constraint.string_list);
3916 opt->cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT | SANE_CAP_ADVANCED;
3918 opt->cap = SANE_CAP_INACTIVE;
3928 opt->name = "prepick";
3929 opt->title = SANE_I18N ("Prepick");
3930 opt->desc = SANE_I18N ("Request scanner to grab next page from ADF");
3931 opt->type = SANE_TYPE_STRING;
3932 opt->constraint_type = SANE_CONSTRAINT_STRING_LIST;
3933 opt->constraint.string_list = s->prepick_list;
3934 opt->size = maxStringSize (opt->constraint.string_list);
3936 opt->cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT | SANE_CAP_ADVANCED;
3938 opt->cap = SANE_CAP_INACTIVE;
3948 opt->name = "overscan";
3949 opt->title = SANE_I18N ("Overscan");
3950 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");
3951 opt->type = SANE_TYPE_STRING;
3952 opt->constraint_type = SANE_CONSTRAINT_STRING_LIST;
3953 opt->constraint.string_list = s->overscan_list;
3954 opt->size = maxStringSize (opt->constraint.string_list);
3956 opt->cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT | SANE_CAP_ADVANCED;
3958 opt->cap = SANE_CAP_INACTIVE;
3967 opt->name = "sleeptimer";
3968 opt->title = SANE_I18N ("Sleep timer");
3969 opt->desc = SANE_I18N ("Time in minutes until the internal power supply switches to sleep mode");
3970 opt->type = SANE_TYPE_INT;
3971 opt->unit = SANE_UNIT_NONE;
3972 opt->constraint_type = SANE_CONSTRAINT_RANGE;
3973 opt->constraint.range=&s->sleep_time_range;
3975 opt->cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT | SANE_CAP_ADVANCED;
3977 opt->cap = SANE_CAP_INACTIVE;
3986 opt->name = "offtimer";
3987 opt->title = SANE_I18N ("Off timer");
3988 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.");
3989 opt->type = SANE_TYPE_INT;
3990 opt->unit = SANE_UNIT_NONE;
3991 opt->constraint_type = SANE_CONSTRAINT_RANGE;
3992 opt->constraint.range=&s->off_time_range;
3994 opt->cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT | SANE_CAP_ADVANCED;
3996 opt->cap = SANE_CAP_INACTIVE;
4005 opt->name = "duplexoffset";
4006 opt->title = SANE_I18N ("Duplex offset");
4007 opt->desc = SANE_I18N ("Adjust front/back offset");
4008 opt->type = SANE_TYPE_INT;
4009 opt->unit = SANE_UNIT_NONE;
4010 opt->constraint_type = SANE_CONSTRAINT_RANGE;
4011 opt->constraint.range = &s->duplex_offset_range;
4013 opt->cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT | SANE_CAP_ADVANCED;
4015 opt->cap = SANE_CAP_INACTIVE;
4023 opt->name = "greenoffset";
4024 opt->title = SANE_I18N ("Green offset");
4025 opt->desc = SANE_I18N ("Adjust green/red offset");
4026 opt->type = SANE_TYPE_INT;
4027 opt->unit = SANE_UNIT_NONE;
4028 opt->constraint_type = SANE_CONSTRAINT_RANGE;
4029 opt->constraint.range = &s->green_offset_range;
4031 opt->cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT | SANE_CAP_ADVANCED;
4033 opt->cap = SANE_CAP_INACTIVE;
4041 opt->name = "blueoffset";
4042 opt->title = SANE_I18N ("Blue offset");
4043 opt->desc = SANE_I18N ("Adjust blue/red offset");
4044 opt->type = SANE_TYPE_INT;
4045 opt->unit = SANE_UNIT_NONE;
4046 opt->constraint_type = SANE_CONSTRAINT_RANGE;
4047 opt->constraint.range = &s->blue_offset_range;
4049 opt->cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT | SANE_CAP_ADVANCED;
4051 opt->cap = SANE_CAP_INACTIVE;
4055 opt->name = "lowmemory";
4056 opt->title = SANE_I18N ("Low Memory");
4057 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.");
4058 opt->type = SANE_TYPE_BOOL;
4059 opt->unit = SANE_UNIT_NONE;
4060 opt->size = sizeof(SANE_Word);
4063 opt->cap= SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT | SANE_CAP_ADVANCED;
4065 opt->cap = SANE_CAP_INACTIVE;
4067 opt->constraint_type = SANE_CONSTRAINT_NONE;
4071 opt->name = "side";
4072 opt->title = SANE_I18N ("Duplex side");
4073 opt->desc = SANE_I18N ("Tells which side (0=front, 1=back) of a duplex scan the next call to sane_read will return.");
4074 opt->type = SANE_TYPE_BOOL;
4075 opt->unit = SANE_UNIT_NONE;
4076 opt->size = sizeof(SANE_Word);
4077 opt->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_ADVANCED;
4078 opt->constraint_type = SANE_CONSTRAINT_NONE;
4083 opt->name = "hwdeskewcrop";
4084 opt->title = SANE_I18N ("Hardware deskew and crop");
4085 opt->desc = SANE_I18N ("Request scanner to rotate and crop pages digitally.");
4086 opt->type = SANE_TYPE_BOOL;
4088 opt->cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT | SANE_CAP_ADVANCED;
4090 opt->cap = SANE_CAP_INACTIVE;
4095 opt->name = "swdeskew";
4096 opt->title = SANE_I18N ("Software deskew");
4097 opt->desc = SANE_I18N ("Request driver to rotate skewed pages digitally.");
4098 opt->type = SANE_TYPE_BOOL;
4100 opt->cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT | SANE_CAP_ADVANCED;
4102 opt->cap = SANE_CAP_INACTIVE;
4108 opt->name = "swdespeck";
4109 opt->title = SANE_I18N ("Software despeckle diameter");
4110 opt->desc = SANE_I18N ("Maximum diameter of lone dots to remove from scan.");
4111 opt->type = SANE_TYPE_INT;
4112 opt->unit = SANE_UNIT_NONE;
4113 opt->constraint_type = SANE_CONSTRAINT_RANGE;
4114 opt->constraint.range = &s->swdespeck_range;
4120 opt->cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT;
4123 opt->cap = SANE_CAP_INACTIVE;
4128 opt->name = "swcrop";
4129 opt->title = SANE_I18N ("Software crop");
4130 opt->desc = SANE_I18N ("Request driver to remove border from pages digitally.");
4131 opt->type = SANE_TYPE_BOOL;
4133 opt->cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT | SANE_CAP_ADVANCED;
4135 opt->cap = SANE_CAP_INACTIVE;
4141 opt->name = "swskip";
4142 opt->title = SANE_I18N ("Software blank skip percentage");
4143 opt->desc = SANE_I18N("Request driver to discard pages with low percentage of dark pixels");
4144 opt->type = SANE_TYPE_FIXED;
4145 opt->unit = SANE_UNIT_PERCENT;
4146 opt->constraint_type = SANE_CONSTRAINT_RANGE;
4147 opt->constraint.range = &s->swskip_range;
4153 opt->cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT;
4158 opt->name = "halt-on-cancel";
4159 opt->title = SANE_I18N ("Halt on Cancel");
4160 opt->desc = SANE_I18N ("Request driver to halt the paper feed instead of eject during a cancel.");
4161 opt->type = SANE_TYPE_BOOL;
4163 opt->cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT | SANE_CAP_ADVANCED;
4165 opt->cap = SANE_CAP_INACTIVE;
4170 opt->name = "endorser-options";
4171 opt->title = SANE_I18N ("Endorser Options");
4172 opt->desc = SANE_I18N ("Controls for endorser unit");
4173 opt->type = SANE_TYPE_GROUP;
4174 opt->constraint_type = SANE_CONSTRAINT_NONE;
4178 opt->type = SANE_TYPE_BOOL;
4182 opt->name = "endorser";
4183 opt->title = SANE_I18N ("Endorser");
4184 opt->desc = SANE_I18N ("Enable endorser unit");
4185 opt->type = SANE_TYPE_BOOL;
4186 opt->unit = SANE_UNIT_NONE;
4187 opt->size = sizeof(SANE_Word);
4190 opt->cap= SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT | SANE_CAP_ADVANCED;
4192 opt->cap = SANE_CAP_INACTIVE;
4194 opt->constraint_type = SANE_CONSTRAINT_NONE;
4198 opt->name = "endorser-bits";
4199 opt->title = SANE_I18N ("Endorser bits");
4200 opt->desc = SANE_I18N ("Determines maximum endorser counter value.");
4201 opt->type = SANE_TYPE_INT;
4202 opt->unit = SANE_UNIT_NONE;
4203 opt->size = sizeof(SANE_Word);
4208 opt->cap=SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT | SANE_CAP_ADVANCED;
4210 opt->cap |= SANE_CAP_INACTIVE;
4213 opt->cap = SANE_CAP_INACTIVE;
4215 opt->constraint_type = SANE_CONSTRAINT_RANGE;
4216 opt->constraint.range = &s->endorser_bits_range;
4224 opt->name = "endorser-val";
4225 opt->title = SANE_I18N ("Endorser value");
4226 opt->desc = SANE_I18N ("Initial endorser counter value.");
4227 opt->type = SANE_TYPE_INT;
4228 opt->unit = SANE_UNIT_NONE;
4229 opt->size = sizeof(SANE_Word);
4232 opt->cap=SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT | SANE_CAP_ADVANCED;
4234 opt->cap |= SANE_CAP_INACTIVE;
4237 opt->cap = SANE_CAP_INACTIVE;
4239 opt->constraint_type = SANE_CONSTRAINT_RANGE;
4240 opt->constraint.range = &s->endorser_val_range;
4248 opt->name = "endorser-step";
4249 opt->title = SANE_I18N ("Endorser step");
4250 opt->desc = SANE_I18N ("Change endorser counter value by this much for each page.");
4251 opt->type = SANE_TYPE_INT;
4252 opt->unit = SANE_UNIT_NONE;
4253 opt->size = sizeof(SANE_Word);
4256 opt->cap=SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT | SANE_CAP_ADVANCED;
4258 opt->cap |= SANE_CAP_INACTIVE;
4261 opt->cap = SANE_CAP_INACTIVE;
4263 opt->constraint_type = SANE_CONSTRAINT_RANGE;
4264 opt->constraint.range = &s->endorser_step_range;
4272 opt->name = "endorser-y";
4273 opt->title = SANE_I18N ("Endorser Y");
4274 opt->desc = SANE_I18N ("Endorser print offset from top of paper.");
4275 opt->type = SANE_TYPE_FIXED;
4276 opt->unit = SANE_UNIT_MM;
4277 opt->size = sizeof(SANE_Word);
4280 opt->cap=SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT | SANE_CAP_ADVANCED;
4282 opt->cap |= SANE_CAP_INACTIVE;
4285 opt->cap = SANE_CAP_INACTIVE;
4287 opt->constraint_type = SANE_CONSTRAINT_RANGE;
4288 opt->constraint.range = &(s->endorser_y_range);
4298 opt->name = "endorser-font";
4299 opt->title = SANE_I18N ("Endorser font");
4300 opt->desc = SANE_I18N ("Endorser printing font.");
4301 opt->type = SANE_TYPE_STRING;
4302 opt->unit = SANE_UNIT_NONE;
4307 opt->cap=SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT | SANE_CAP_ADVANCED;
4309 opt->cap |= SANE_CAP_INACTIVE;
4312 opt->cap = SANE_CAP_INACTIVE;
4314 opt->constraint_type = SANE_CONSTRAINT_STRING_LIST;
4315 opt->constraint.string_list = s->endorser_font_list;
4324 opt->size = maxStringSize (opt->constraint.string_list);
4328 opt->name = "endorser-dir";
4329 opt->title = SANE_I18N ("Endorser direction");
4330 opt->desc = SANE_I18N ("Endorser printing direction.");
4331 opt->type = SANE_TYPE_STRING;
4332 opt->unit = SANE_UNIT_NONE;
4335 opt->cap=SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT | SANE_CAP_ADVANCED;
4337 opt->cap |= SANE_CAP_INACTIVE;
4340 opt->cap = SANE_CAP_INACTIVE;
4342 opt->constraint_type = SANE_CONSTRAINT_STRING_LIST;
4343 opt->constraint.string_list = s->endorser_dir_list;
4349 opt->size = maxStringSize (opt->constraint.string_list);
4353 opt->name = "endorser-side";
4354 opt->title = SANE_I18N ("Endorser side");
4355 opt->desc = SANE_I18N ("Endorser printing side, requires hardware support to change");
4356 opt->type = SANE_TYPE_STRING;
4357 opt->unit = SANE_UNIT_NONE;
4361 opt->cap=SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT | SANE_CAP_ADVANCED;
4363 opt->cap |= SANE_CAP_INACTIVE;
4366 opt->cap = SANE_CAP_INACTIVE;
4368 opt->constraint_type = SANE_CONSTRAINT_STRING_LIST;
4369 opt->constraint.string_list = s->endorser_side_list;
4375 opt->size = maxStringSize (opt->constraint.string_list);
4379 opt->name = "endorser-string";
4380 opt->title = SANE_I18N ("Endorser string");
4381 opt->desc = SANE_I18N ("Endorser alphanumeric print format. %05ud or %08ud at the end will be replaced by counter value.");
4382 opt->type = SANE_TYPE_STRING;
4383 opt->unit = SANE_UNIT_NONE;
4384 opt->size = s->endorser_string_len + 1;
4387 opt->cap=SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT | SANE_CAP_ADVANCED;
4389 opt->cap |= SANE_CAP_INACTIVE;
4392 opt->cap = SANE_CAP_INACTIVE;
4394 opt->constraint_type = SANE_CONSTRAINT_NONE;
4399 opt->name = SANE_NAME_SENSORS;
4400 opt->title = SANE_TITLE_SENSORS;
4401 opt->desc = SANE_DESC_SENSORS;
4402 opt->type = SANE_TYPE_GROUP;
4403 opt->constraint_type = SANE_CONSTRAINT_NONE;
4407 opt->name = "top-edge";
4408 opt->title = SANE_I18N ("Top edge");
4409 opt->desc = SANE_I18N ("Paper is pulled partly into ADF");
4410 opt->type = SANE_TYPE_BOOL;
4411 opt->unit = SANE_UNIT_NONE;
4413 opt->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_HARD_SELECT | SANE_CAP_ADVANCED;
4415 opt->cap = SANE_CAP_INACTIVE;
4419 opt->name = "a3-paper";
4420 opt->title = SANE_I18N ("A3 paper");
4421 opt->desc = SANE_I18N ("A3 paper detected");
4422 opt->type = SANE_TYPE_BOOL;
4423 opt->unit = SANE_UNIT_NONE;
4425 opt->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_HARD_SELECT | SANE_CAP_ADVANCED;
4427 opt->cap = SANE_CAP_INACTIVE;
4431 opt->name = "b4-paper";
4432 opt->title = SANE_I18N ("B4 paper");
4433 opt->desc = SANE_I18N ("B4 paper detected");
4434 opt->type = SANE_TYPE_BOOL;
4435 opt->unit = SANE_UNIT_NONE;
4437 opt->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_HARD_SELECT | SANE_CAP_ADVANCED;
4439 opt->cap = SANE_CAP_INACTIVE;
4443 opt->name = "a4-paper";
4444 opt->title = SANE_I18N ("A4 paper");
4445 opt->desc = SANE_I18N ("A4 paper detected");
4446 opt->type = SANE_TYPE_BOOL;
4447 opt->unit = SANE_UNIT_NONE;
4449 opt->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_HARD_SELECT | SANE_CAP_ADVANCED;
4451 opt->cap = SANE_CAP_INACTIVE;
4455 opt->name = "b5-paper";
4456 opt->title = SANE_I18N ("B5 paper");
4457 opt->desc = SANE_I18N ("B5 paper detected");
4458 opt->type = SANE_TYPE_BOOL;
4459 opt->unit = SANE_UNIT_NONE;
4461 opt->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_HARD_SELECT | SANE_CAP_ADVANCED;
4463 opt->cap = SANE_CAP_INACTIVE;
4467 opt->name = SANE_NAME_PAGE_LOADED;
4468 opt->title = SANE_TITLE_PAGE_LOADED;
4469 opt->desc = SANE_DESC_PAGE_LOADED;
4470 opt->type = SANE_TYPE_BOOL;
4471 opt->unit = SANE_UNIT_NONE;
4473 opt->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_HARD_SELECT | SANE_CAP_ADVANCED;
4475 opt->cap = SANE_CAP_INACTIVE;
4479 opt->name = "omr-df";
4480 opt->title = SANE_I18N ("OMR or DF");
4481 opt->desc = SANE_I18N ("OMR or double feed detected");
4482 opt->type = SANE_TYPE_BOOL;
4483 opt->unit = SANE_UNIT_NONE;
4485 opt->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_HARD_SELECT | SANE_CAP_ADVANCED;
4487 opt->cap = SANE_CAP_INACTIVE;
4491 opt->name = SANE_NAME_COVER_OPEN;
4492 opt->title = SANE_TITLE_COVER_OPEN;
4493 opt->desc = SANE_DESC_COVER_OPEN;
4494 opt->type = SANE_TYPE_BOOL;
4495 opt->unit = SANE_UNIT_NONE;
4497 opt->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_HARD_SELECT | SANE_CAP_ADVANCED;
4499 opt->cap = SANE_CAP_INACTIVE;
4503 opt->name = "card-loaded";
4504 opt->title = SANE_I18N ("Card loaded");
4505 opt->desc = SANE_I18N ("Card slot contains paper");
4506 opt->type = SANE_TYPE_BOOL;
4507 opt->unit = SANE_UNIT_NONE;
4509 opt->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_HARD_SELECT | SANE_CAP_ADVANCED;
4511 opt->cap = SANE_CAP_INACTIVE;
4515 opt->name = "power-save";
4516 opt->title = SANE_I18N ("Power saving");
4517 opt->desc = SANE_I18N ("Scanner in power saving mode");
4518 opt->type = SANE_TYPE_BOOL;
4519 opt->unit = SANE_UNIT_NONE;
4521 opt->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_HARD_SELECT | SANE_CAP_ADVANCED;
4523 opt->cap = SANE_CAP_INACTIVE;
4527 opt->name = SANE_NAME_EMAIL;
4528 opt->title = SANE_TITLE_EMAIL;
4529 opt->desc = SANE_DESC_EMAIL;
4530 opt->type = SANE_TYPE_BOOL;
4531 opt->unit = SANE_UNIT_NONE;
4533 opt->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_HARD_SELECT | SANE_CAP_ADVANCED;
4535 opt->cap = SANE_CAP_INACTIVE;
4539 opt->name = "manual-feed";
4540 opt->title = SANE_I18N ("Manual feed");
4541 opt->desc = SANE_I18N ("Manual feed selected");
4542 opt->type = SANE_TYPE_BOOL;
4543 opt->unit = SANE_UNIT_NONE;
4545 opt->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_HARD_SELECT | SANE_CAP_ADVANCED;
4547 opt->cap = SANE_CAP_INACTIVE;
4551 opt->name = SANE_NAME_SCAN;
4552 opt->title = SANE_TITLE_SCAN;
4553 opt->desc = SANE_DESC_SCAN;
4554 opt->type = SANE_TYPE_BOOL;
4555 opt->unit = SANE_UNIT_NONE;
4557 opt->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_HARD_SELECT | SANE_CAP_ADVANCED;
4559 opt->cap = SANE_CAP_INACTIVE;
4563 opt->name = "function";
4564 opt->title = SANE_I18N ("Function");
4565 opt->desc = SANE_I18N ("Function character on screen");
4566 opt->type = SANE_TYPE_INT;
4567 opt->unit = SANE_UNIT_NONE;
4569 opt->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_HARD_SELECT | SANE_CAP_ADVANCED;
4571 opt->cap = SANE_CAP_INACTIVE;
4575 opt->name = "ink-low";
4576 opt->title = SANE_I18N ("Ink low");
4577 opt->desc = SANE_I18N ("Imprinter ink running low");
4578 opt->type = SANE_TYPE_BOOL;
4579 opt->unit = SANE_UNIT_NONE;
4581 opt->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_HARD_SELECT | SANE_CAP_ADVANCED;
4583 opt->cap = SANE_CAP_INACTIVE;
4587 opt->name = "double-feed";
4588 opt->title = SANE_I18N ("Double feed");
4589 opt->desc = SANE_I18N ("Double feed detected");
4590 opt->type = SANE_TYPE_BOOL;
4591 opt->unit = SANE_UNIT_NONE;
4593 opt->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_HARD_SELECT | SANE_CAP_ADVANCED;
4595 opt->cap = SANE_CAP_INACTIVE;
4599 opt->name = "error-code";
4600 opt->title = SANE_I18N ("Error code");
4601 opt->desc = SANE_I18N ("Hardware error code");
4602 opt->type = SANE_TYPE_INT;
4603 opt->unit = SANE_UNIT_NONE;
4605 opt->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_HARD_SELECT | SANE_CAP_ADVANCED;
4607 opt->cap = SANE_CAP_INACTIVE;
4611 opt->name = "skew-angle";
4612 opt->title = SANE_I18N ("Skew angle");
4613 opt->desc = SANE_I18N ("Requires black background for scanning");
4614 opt->type = SANE_TYPE_INT;
4615 opt->unit = SANE_UNIT_NONE;
4617 opt->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_HARD_SELECT | SANE_CAP_ADVANCED;
4619 opt->cap = SANE_CAP_INACTIVE;
4623 opt->name = "ink-remain";
4624 opt->title = SANE_I18N ("Ink remaining");
4625 opt->desc = SANE_I18N ("Imprinter ink level");
4626 opt->type = SANE_TYPE_INT;
4627 opt->unit = SANE_UNIT_NONE;
4629 opt->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_HARD_SELECT | SANE_CAP_ADVANCED;
4631 opt->cap = SANE_CAP_INACTIVE;
4635 opt->name = "density";
4636 opt->title = SANE_I18N ("Density");
4637 opt->desc = SANE_I18N ("Density dial");
4638 opt->type = SANE_TYPE_INT;
4639 opt->unit = SANE_UNIT_NONE;
4641 opt->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_HARD_SELECT | SANE_CAP_ADVANCED;
4643 opt->cap = SANE_CAP_INACTIVE;
4647 opt->name = "duplex";
4648 opt->title = SANE_I18N ("Duplex switch");
4649 opt->desc = SANE_I18N ("Duplex switch");
4650 opt->type = SANE_TYPE_BOOL;
4651 opt->unit = SANE_UNIT_NONE;
4653 opt->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_HARD_SELECT | SANE_CAP_ADVANCED;
4655 opt->cap = SANE_CAP_INACTIVE;
4658 return opt;
4704 if (!SANE_OPTION_IS_ACTIVE (s->opt[option].cap)) {
4716 DBG (20, "sane_control_option: get value for '%s' (%d)\n", s->opt[option].name,option);
5336 DBG (20, "sane_control_option: set value for '%s' (%d)\n", s->opt[option].name,option);
5343 if (!SANE_OPTION_IS_SETTABLE (s->opt[option].cap)) {
5348 status = sanei_constrain_value (s->opt + option, val, info);