you must call sane_read repeatedly, until you get an error or EOF. are you doing this?
allan On Thu, 23 Mar 2006, Felix Rubio Dalmau wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: RIPEMD160 > > > Well, I don't have an error but when I read the data from the scanner > I receive very few bytes, and I don't know what produces this :-S do > you have any idea? > > Date: Wed, 22 Mar 2006 19:52:57 -0500 (EST) > From: "m. allan noah" <[email protected]> > Subject: Re: [sane-devel] help with a frontend, please > To: [email protected] > Message-ID: <[email protected]> > Content-Type: text/plain; charset="iso-8859-1" > > what makes you say that the values are unchangeable, do you get an error? > > allan > > > - -- > Josep Felix Rubio Dalmau > GnuPG Public Key: > http://keyserver.veridis.com:11371/export?id=-9021467632073768555 > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v1.4.2 (GNU/Linux) > Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org > > iD8DBQFEIwctgs1O/IWPAZURAyOkAJ9DMrPWI6OpWlLXn8THsph35r134gCfU8WX > uePISyUgcc8rrZ+WllWKBw0= > =OC3w > -----END PGP SIGNATURE----- > > > > > > ______________________________________________ > LLama Gratis a cualquier PC del Mundo. > Llamadas a fijos y m?viles desde 1 c?ntimo por minuto. > http://es.voice.yahoo.com > > > -- "so don't tell us it can't be done, putting down what you don't know. money isn't our god, integrity will free our souls" - Max Cavalera From [email protected] Fri Mar 24 00:56:53 2006 From: [email protected] (Laurent Charpentier) Date: Fri Mar 24 01:04:54 2006 Subject: [sane-devel] Canon Lide 50 (Genesys) - Added threshold for BW (lineart) In-Reply-To: <[email protected]> Message-ID: <[email protected]> Hi Everyone, I would like to submit a patch for the genesys backend (Canon LIDE 50). The patch adds the threshold feature for black/white mode (in 1.0.17 the threshold is set to 50% and can't be changed). The attached patch is relative to "sane-backends-1.0.17" (files genesys.c, genesys.h, genesys_gl841.c, genesys_low.h). Thank you to apply this patch. Regards, Laurent --- sane-backends-1.0.17/backend/genesys.c 2005-12-06 22:46:01.000000000 +0100 +++ sane-backends-1.0.17_patched/backend/genesys.c 2006-03-20 22:03:33.000000000 +0100 @@ -120,6 +120,11 @@ 0 /* quantization */ }; +static const SANE_Range threshold_percentage_range = { + SANE_FIX( 0), /* minimum */ + SANE_FIX( 100), /* maximum */ + SANE_FIX( 1) /* quantization */ +}; /* ------------------------------------------------------------------------ */ /* functions calling ASIC specific functions */ @@ -4423,6 +4428,9 @@ s->dev->settings.tl_x = tl_x; s->dev->settings.tl_y = tl_y; + /* threshold setting */ + s->dev->settings.threshold = 2.55 * (SANE_UNFIX (s->val[OPT_THRESHOLD].w)); + return status; } @@ -4601,6 +4609,17 @@ s->opt[OPT_EXTRAS_GROUP].size = 0; s->opt[OPT_EXTRAS_GROUP].constraint_type = SANE_CONSTRAINT_NONE; + /* BW threshold */ + s->opt[OPT_THRESHOLD].name = SANE_NAME_THRESHOLD; + s->opt[OPT_THRESHOLD].title = SANE_TITLE_THRESHOLD; + s->opt[OPT_THRESHOLD].desc = SANE_DESC_THRESHOLD; + s->opt[OPT_THRESHOLD].type = SANE_TYPE_FIXED; + s->opt[OPT_THRESHOLD].unit = SANE_UNIT_PERCENT; + s->opt[OPT_THRESHOLD].cap |= SANE_CAP_INACTIVE; + s->opt[OPT_THRESHOLD].constraint_type = SANE_CONSTRAINT_RANGE; + s->opt[OPT_THRESHOLD].constraint.range = &threshold_percentage_range; + s->val[OPT_THRESHOLD].w = SANE_FIX(50); + /* Powersave time (turn lamp off) */ s->opt[OPT_LAMP_OFF_TIME].name = "lamp-off-time"; s->opt[OPT_LAMP_OFF_TIME].title = SANE_I18N ("Lamp off time"); @@ -5132,6 +5151,7 @@ case OPT_TL_Y: case OPT_BR_X: case OPT_BR_Y: + case OPT_THRESHOLD: case OPT_LAMP_OFF_TIME: *(SANE_Word *) val = s->val[option].w; break; @@ -5178,6 +5198,7 @@ break; case OPT_RESOLUTION: case OPT_BIT_DEPTH: + case OPT_THRESHOLD: case OPT_PREVIEW: s->val[option].w = *(SANE_Word *) val; RIE (calc_parameters (s)); @@ -5212,12 +5233,12 @@ s->val[option].s = strdup (val); if (strcmp (s->val[option].s, "Lineart") == 0) { - /* ENABLE (OPT_THRESHOLD); */ + ENABLE (OPT_THRESHOLD); DISABLE (OPT_BIT_DEPTH); } else { - /* DISABLE (OPT_THRESHOLD); */ + DISABLE (OPT_THRESHOLD); if (strcmp (s->val[option].s, "Gray") == 0) create_bpp_list (s, s->dev->model->bpp_gray_values); else --- sane-backends-1.0.17/backend/genesys.h 2005-12-06 22:46:01.000000000 +0100 +++ sane-backends-1.0.17_patched/backend/genesys.h 2006-03-20 21:49:01.000000000 +0100 @@ -82,6 +82,7 @@ OPT_EXTRAS_GROUP, OPT_LAMP_OFF_TIME, + OPT_THRESHOLD, /* must come last: */ NUM_OPTIONS }; --- sane-backends-1.0.17/backend/genesys_gl841.c 2005-12-06 22:46:03.000000000 +0100 +++ sane-backends-1.0.17_patched/backend/genesys_gl841.c 2006-03-20 21:52:55.000000000 +0100 @@ -1396,6 +1396,7 @@ /* * Set all registers to default values + * (function called only once at the beginning) */ static void gl841_init_registers (Genesys_Device * dev) @@ -1475,10 +1476,10 @@ dev->reg[reg_0x29].value = 0xff; /*BWHI*/ - dev->reg[reg_0x2e].value = 0x80; + dev->reg[reg_0x2e].value = 0xC0; /*BWLOW*/ - dev->reg[reg_0x2f].value = 0x80; + dev->reg[reg_0x2f].value = 0xC0; /*LPERIOD*/ dev->reg[reg_0x38].value = 0x4f; @@ -2448,6 +2449,13 @@ r = sanei_genesys_get_address (reg, 0x03); r->value |= REG03_AVEENB | REG03_LAMPPWR; + /* BW threshold */ + r = sanei_genesys_get_address (reg, 0x2e); + r->value = dev->settings.threshold; + r = sanei_genesys_get_address (reg, 0x2f); + r->value = dev->settings.threshold; + + /* monochrome / color scan */ r = sanei_genesys_get_address (reg, 0x04); switch (depth) { @@ -3916,6 +3924,7 @@ float move; int move_dpi; float start; + int threshold; SANE_Status status; @@ -3927,6 +3936,9 @@ gl841_slow_back_home(dev,1); +/* BW threshold */ + threshold = dev->settings.threshold; + /* channels */ if (dev->settings.scan_mode == 4) /* single pass color */ channels = 3; --- sane-backends-1.0.17/backend/genesys_low.h 2005-12-06 22:46:03.000000000 +0100 +++ sane-backends-1.0.17_patched/backend/genesys_low.h 2006-03-20 21:49:24.000000000 +0100 @@ -400,6 +400,9 @@ int exposure_time; unsigned int color_filter; /* todo: check, may be make it an advanced option */ + + /* BW threshold */ + int threshold; } Genesys_Settings; typedef struct Genesys_Current_Setup __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com
