From 586153f5ae77665d9c733fd12a58500329e43381 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Voltz?= Date: Wed, 27 Jan 2010 05:45:59 +0100 Subject: [PATCH] make sure TL_X and TL_Y are always lesser than BR_X and BR_Y --- ChangeLog | 6 +++--- backend/genesys.c | 26 +++++++++++++++++++++----- backend/genesys_gl841.c | 4 ++-- 3 files changed, 26 insertions(+), 10 deletions(-) diff --git a/ChangeLog b/ChangeLog index 39035b882..c59edf51b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,7 +1,7 @@ -2010-01-26 Stéphane Voltz 6 +2010-01-27 Stéphane Voltz * backend/genesys.c backend/genesys.h backend/genesys_conv.c - backend/genesys_low.h: add dynamic lineart scanning based on epjitsu - code by m. allan noah. + backend/genesys_low.h backend/genesys_gl841.c: add dynamic lineart + scanning based on epjitsu code by m. allan noah. 2010-01-19 Nicolas Martin * backend/pixma.h, backend/pixma_mp150.c: diff --git a/backend/genesys.c b/backend/genesys.c index df85fb90e..f7e7b7f00 100644 --- a/backend/genesys.c +++ b/backend/genesys.c @@ -6461,22 +6461,38 @@ static SANE_Status get_option_value (Genesys_Scanner * s, int option, void *val) { unsigned int i; - SANE_Word *table; + SANE_Word *table ,tmp; uint16_t *gamma; SANE_Status status = SANE_STATUS_GOOD; Genesys_Calibration_Cache *cache; switch (option) { + /* geometry */ + case OPT_TL_X: + case OPT_TL_Y: + case OPT_BR_X: + case OPT_BR_Y: + *(SANE_Word *) val = s->val[option].w; + /* switch coordinate tokeep them coherent */ + if (s->val[OPT_TL_X].w >= s->val[OPT_BR_X].w) + { + tmp=s->val[OPT_BR_X].w; + s->val[OPT_BR_X].w=s->val[OPT_TL_X].w; + s->val[OPT_TL_X].w=tmp; + } + if (s->val[OPT_TL_Y].w >= s->val[OPT_BR_Y].w) + { + tmp=s->val[OPT_BR_Y].w; + s->val[OPT_BR_Y].w=s->val[OPT_TL_Y].w; + s->val[OPT_TL_Y].w=tmp; + } + break; /* word options: */ case OPT_NUM_OPTS: case OPT_RESOLUTION: case OPT_BIT_DEPTH: case OPT_PREVIEW: - case OPT_TL_X: - case OPT_TL_Y: - case OPT_BR_X: - case OPT_BR_Y: case OPT_THRESHOLD: case OPT_THRESHOLD_CURVE: case OPT_DYNAMIC_LINEART: diff --git a/backend/genesys_gl841.c b/backend/genesys_gl841.c index 827ad9451..26749ca50 100644 --- a/backend/genesys_gl841.c +++ b/backend/genesys_gl841.c @@ -1639,8 +1639,8 @@ gl841_set_fe (Genesys_Device * dev, uint8_t set) uint8_t val; DBG (DBG_proc, "gl841_set_fe (%s)\n", - set == 1 ? "init" : set == 2 ? "set" : set == - 3 ? "powersave" : "huh?"); + set == AFE_INIT ? "init" : set == AFE_SET ? "set" : set == + AFE_POWER_SAVE ? "powersave" : "huh?"); if ((dev->reg[reg_0x04].value & REG04_FESET) != 0x00) {