diff --git a/ChangeLog b/ChangeLog index edaf895fa..0c5ed8d6e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2008-10-25 Nicolas Martin + * backend/pixma_mp150.c, doc/sane-pixma.man doc/descriptions/pixma.desc: + Tweaks for TPU scan at 4800 dpi, and MP810 at 2400 dpi (now works). + Updated docs around that. + 2008-10-25 Louis Lagendijk * Added configuration file support for pixma backend Currently used only for configuration of network scanners. diff --git a/backend/pixma_mp150.c b/backend/pixma_mp150.c index d3a907538..2e405ba5f 100644 --- a/backend/pixma_mp150.c +++ b/backend/pixma_mp150.c @@ -527,13 +527,18 @@ calc_shifting (pixma_t * s) switch (s->cfg->pid) { case MP970_PID: /* MP970 at 4800 dpi */ - if (s->param->xdpi == 4800) - mp->stripe_shift = 3; - break; + if (s->param->xdpi == 4800) + { + if (is_scanning_from_tpu(s)) + mp->stripe_shift = 6; + else + mp->stripe_shift = 3; + } + break; case MP810_PID: if (s->param->xdpi == 2400) mp->stripe_shift = 3; - break; + break; case MP800_PID: case MP830_PID: case MP960_PID: @@ -856,10 +861,11 @@ shift_colors (uint8_t * dptr, uint8_t * sptr, for (i = 0; i < w; i++) { + st = 0; /* MP970 at 4800 dpi exception stripes shift */ - st = (pid == MP970_PID && dpi == 4800 && (i % 2) == 0) ? strshft : 0; + if (pid == MP970_PID && dpi == 4800 && i % 2 == 0) st = strshft; /* MP810 at 2400 dpi exception stripes shift */ - st = (pid == MP810_PID && dpi == 2400 && (i % 2) == 0) ? strshft : 0; + if (pid == MP810_PID && dpi == 2400 && i % 2 == 0) st = strshft; *sptr++ = *(dptr++ + sr + st); if (c == 6) *sptr++ = *(dptr++ + sr + st); @@ -918,6 +924,7 @@ mp970_reorder_pixels (uint8_t * linebuf, uint8_t * sptr, unsigned c, memcpy (sptr, linebuf, line_size); } +#ifndef TPU_48 static unsigned pack_48_24_bpc (uint8_t * sptr, unsigned n) { @@ -936,6 +943,7 @@ pack_48_24_bpc (uint8_t * sptr, unsigned n) } return (n / 2); } +#endif /* This function deals both with PIXMA CCD sensors producing shifted color * planes images, Grayscale CCD scan and Generation 3 high dpi images. diff --git a/doc/descriptions/pixma.desc b/doc/descriptions/pixma.desc index 47cd68256..6f46bf806 100644 --- a/doc/descriptions/pixma.desc +++ b/doc/descriptions/pixma.desc @@ -152,7 +152,7 @@ :interface "USB" :usbid "0x04a9" "0x171a" :status :good -:comment "All resolutions supported up to 1200 dpi. Vertical lines issue at 2400 and 4800 dpi, can these modes be handled? USB Snoops needed for TPU film scan." +:comment "All resolutions supported up to 4800 dpi (but vertical lines issue at 4800 dpi). USB Snoops needed for TPU film scan." :model "PIXMA MP830" :interface "USB" @@ -169,7 +169,7 @@ :interface "USB" :usbid "0x04a9" "0x1726" :status :good -:comment "All resolutions supported (up to 4800DPI). TPU support currently experimental." +:comment "All resolutions supported (up to 4800DPI). Full TPU support (negativa and slides) at 24 or 48 bits." :model "SmartBase MP360" :interface "USB" diff --git a/doc/sane-pixma.man b/doc/sane-pixma.man index 42b5da0b5..277378db7 100644 --- a/doc/sane-pixma.man +++ b/doc/sane-pixma.man @@ -1,4 +1,4 @@ -.TH "sane\-pixma" "5" "11 Oct 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" +.TH "sane\-pixma" "5" "25 Oct 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" .IX sane\-pixma .SH NAME sane\-pixma \- SANE backend for Canon PIXMA MP series @@ -70,7 +70,7 @@ The backend supports .br * Automatic Document Feeder (Duplex for some models). .br -* Transparency Unit. +* Transparency Unit, 24 or 48 bits depth. .PP The device name is in the form pixma:xxxxyyyy_zzzzz where x, y and z are vendor ID, product ID and serial number respectively. @@ -137,9 +137,9 @@ the verbosity. .br 3 print debug-level messages .br -10 dump USB traffics +11 dump USB traffics .br -20 full dump USB traffics +21 full dump USB traffics .br .RE .TP