summaryrefslogtreecommitdiff
path: root/backend/fujitsu.c
diff options
context:
space:
mode:
Diffstat (limited to 'backend/fujitsu.c')
-rw-r--r--backend/fujitsu.c40
1 files changed, 37 insertions, 3 deletions
diff --git a/backend/fujitsu.c b/backend/fujitsu.c
index 7f008d0..9fddb1c 100644
--- a/backend/fujitsu.c
+++ b/backend/fujitsu.c
@@ -571,6 +571,12 @@
- reorder scanner sections in init_model chronologically
v125 2014-12-16, MAN
- remove USB packet counting code from v123, fix sanei_usb instead
+ v126 2015-08-23, MAN
+ - initial support for iX100
+ - add late_lut support for iX500/iX100
+ v127 2015-08-25, MAN
+ - separate iX100 from iX500 settings
+ - iX100 has gray and lineart
SANE FLOW DIAGRAM
@@ -620,7 +626,7 @@
#include "fujitsu.h"
#define DEBUG 1
-#define BUILD 125
+#define BUILD 127
/* values for SANE_DEBUG_FUJITSU env var:
- errors 5
@@ -2271,6 +2277,7 @@ init_model (struct fujitsu *s)
/* weirdness */
s->need_q_table = 1;
+ s->late_lut = 1;
s->need_diag_preread = 1;
s->ppl_mod_by_mode[MODE_COLOR] = 2;
s->hopper_before_op = 1;
@@ -2287,6 +2294,26 @@ init_model (struct fujitsu *s)
s->can_mode[MODE_HALFTONE] = 0;
}
+ /*mostly copied from iX500*/
+ else if (strstr (s->model_name,"iX100")){
+ /* locks up scanner if we try to auto detect */
+ s->has_MS_lamp = 0;
+
+ /* weirdness */
+ s->need_q_table = 1;
+ s->late_lut = 1;
+ s->need_diag_preread = 1;
+ s->ppl_mod_by_mode[MODE_COLOR] = 2;
+ s->hopper_before_op = 1;
+ s->no_wait_after_op = 1;
+
+ /* lies */
+ s->adbits = 8;
+
+ /* dont bother with this one */
+ s->can_mode[MODE_HALFTONE] = 0;
+ }
+
else if (strstr (s->model_name,"fi-7180")
|| strstr (s->model_name,"fi-7160")){
@@ -6899,6 +6926,13 @@ sane_start (SANE_Handle handle)
if (ret != SANE_STATUS_GOOD)
DBG (5, "sane_start: WARNING: cannot send_endorser %d\n", ret);
+ /* send lut if scanner has no hardware brightness/contrast */
+ if (!s->late_lut && (!s->brightness_steps || !s->contrast_steps)){
+ ret = send_lut(s);
+ if (ret != SANE_STATUS_GOOD)
+ DBG (5, "sane_start: WARNING: cannot early send_lut %d\n", ret);
+ }
+
/* set window command */
ret = set_window(s);
if (ret != SANE_STATUS_GOOD) {
@@ -6907,10 +6941,10 @@ sane_start (SANE_Handle handle)
}
/* send lut if scanner has no hardware brightness/contrast */
- if (!s->brightness_steps || !s->contrast_steps){
+ if (s->late_lut && (!s->brightness_steps || !s->contrast_steps)){
ret = send_lut(s);
if (ret != SANE_STATUS_GOOD)
- DBG (5, "sane_start: WARNING: cannot send_lut %d\n", ret);
+ DBG (5, "sane_start: WARNING: cannot late send_lut %d\n", ret);
}
/* some scanners need the q table sent, even when not scanning jpeg */