2000-09-24 Henning Meier-Geinitz <hmg@gmx.de>

* backend/mustek.*: Update to Mustek backend 1.0-97. This is a
       	  development version and is only tested for three-pass scanners.
  	  Added support for Paragon 1200 SP Pro and ScanExpress A3 SP.
  	  Removed detection of " C04" and " C12" (don't seem to exist).
  	  Changed SCSI request scheme. Sane_read can read more than 4096
 	  bytes from pipe. Minimum dpi is 30 now. Fixed LD correction for
 	  Paragon 1200SP 1.06 and 1.11.  Read SCSI buffer into big block and
 	  do LD after that for Paragon one-pass scanners. New option
 	  "blocksize" in mustek.conf. Better detection of the scanner type
 	  (three-pass, Paragon I, ...). Fixed possible segmentation faults
 	  in Paragon 600 II N LD code, scsi_sense_wait_ready and
 	  sense_handler. Decreased maximum scan size of Paragon 800 II
 	  SP. For three-pass scanners: fixed stop_scan and speed code, scan
 	  area is in pixels now, added RGB brightness and contrast, use
 	  +-100% for brightness and contrast. Return SANE_STATUS_CANCELLED
 	  when scan was cancelled. Option "force backtracking" is enabled by
 	  default, "scan speed" is set to "fastest". Added option
 	  "force-warn" for mustek.conf.  Rewrote halftone mode. Better error
 	  handling and more debug output.
	* TODO: Clarified point about image data polarity. Moved point about
	  xscanimage not updating the progress bar for 3pass scanners to
	  frontend section. Removed umax entry in "frontends". Removed entry
	  about alpha channel (was added to LEVEL2 file).
	* LEVEL2: Add point about image data polarity.
	* frontend/scanimage.c: Removed some warnings.
DEVEL_2_0_BRANCH-1
Henning Geinitz 2000-09-24 19:38:35 +00:00
rodzic 41e4d874f9
commit 8835903b21
4 zmienionych plików z 142 dodań i 23 usunięć

4
LEVEL2
Wyświetl plik

@ -31,4 +31,8 @@ the SANE API:
Some way of indicating the number of channels possible, and some
details (wavelength, bandwidth, ...)
o 0 is white for sane in lineart and halftone, however, 0 is black for
the other modes. Possible reason: pnm data format. The SANE standard
doesn't talk about this. Should we change this for lineart/halftone?
see sane-devel archive for more ideas

Wyświetl plik

@ -1,5 +1,94 @@
CHANGES for the SANE Mustek backend
2000-09-24
* Added RGB brightness and contrast for 3pass scanners
* Brightness and contrast is +-100% for 3pass scanners now
2000-09-23
* Paragon 12000CX uses pixel unit now.
* Paragon 6000CX uses pixel unit now (MSF-06000CZ).
* Option "force backtracking" is enabled by default now
* Option "scan speed" is set to "fastest" by default now
* Add option "force-warn" (for mustek.conf). If enabled, wait for scan
head to return to start position after scan.
* Make DBG output in sane_control_option() more readable
* Better error handling and debug output in sane_get_option_descriptor()
* Changed Halftone handling, removed grain size
2000-09-22
* Paragon 12000SP 1.06 uses LD_NORMAL now.
2000-09-19
* Return sane_status_cancelled in sane_read if last scan was cancelled.
2000-09-18
* Changed speed_code to use values between 1...5 for 3pass scanners.
I don't know yet if these are correct for the other scanners, too.
* Don't do a stop scan for 3pass scanners (only when cancelling).
* Set bit 0 of first byte of area_and_windows for gray + color.
* Paragon 6000CX uses pixel unit now (MFS-06000CX).
* Pixel unit for 3pass scanners is now supported
2000-09-17
* changed maximum y range of MFS-800 II SP to 288 mm because of
a report of scanner touching the end.
2000-09-10
* added some testing (result != null and arg !=0) in sense_handler
(found by Martin Blasczyk)
2000-08-20
* Paragon series II is also using blockmode now.
* Removed warning from mustek.c.
* Fixed (maybe) problem in scsi_sense_wait_ready and added more
debug output.
2000-08-18
* added new option blocksize to mustek.conf
* 800 II SP works now in new block mode (get_image_status is needed
before each block)
2000-08-17
* Removed some warnings from sanei_ab306.c.
2000-08-16
* Fixed some bugs in fix_linedistance_block. Paragon 600 models seem to
work now. 800 II SP freezes, however.
* Fixed segmentation fault for the 600 II N in ld correction code.
2000-08-15
* Changed handling of three pass scanners (MUSTEK_FLAG_THREE_PASS instead of
!MUSTEK_FLAG_SINGLE_PASS).
* Added flags for Paragon series I and II (MUSTEK_PLAG_PARAGON_1 and
MUSTEK_PLAG_PARAGON_2).
* distinguish between three-pass, Paragon series 1, Paragon series 2,
ScanExpress, Pro and N type scanners.
* Added support for scanning the whole image in one block without
backtracking for the Paragon series II scanners.
* Added fix_linedistance_block: like linedistance_normal but broken
up into several SCSI buffers.
2000-08-14
* Changed again linedistance correction for the Paragon 12000 SP 1.11.
This seems to be a never ending story.
* Set the minimum dpi value to 30. Some scanners (e.g. the MFS 8000SP
v 2.04) block the SCSI bus with lower resolutions.
2000-08-12
* Added support for Paragon 1200 SP Pro.
* Added support for ScanExpress A3 SP.
* Removed detection for " C12" and " C04" (don't seem to exist).
* Changed SCSI read request scheme. Now two requests with half of the
maximum SCSI buffer size are entered. Standard buffer size is 128 kB,
so the buffer sent to the scanner is 64 kB for all types of scanners.
* sane_read now reads more than 4096 bytes from pipe (if available).
2000-08-12
* SANE 1.0.3 released (including Mustek backend 1.0.96).
2000-07-31
* Released backend version 1.0-96.
2000-07-30
* Fixed bug concerning inquiry of 3-pass scanners. ASCII values > 127
weren't interpreted correctly (char instead of unsigned char).

Wyświetl plik

@ -9,7 +9,7 @@
;
:backend "mustek" ; name of backend
:version "1.0-96" ; version of backend
:version "1.0-97" ; version of backend
:status :beta ; :alpha, :beta, :stable, :new
:manpage "sane-mustek" ; name of manpage (if it exists)
:url "http://hmg.home.pages.de/sane/"
@ -55,6 +55,12 @@
:interface "SCSI"
:model "ScanMagic 9636S Plus"
:interface "SCSI"
:model "ScanExpress A3 SP"
:interface "SCSI"
:comment "Please test!"
:model "Paragon 1200 SP Pro"
:interface "SCSI"
:comment "Please test!"
:model "Paragon 1200 A3 Pro"
:interface "SCSI"
:comment "Please test!"

Wyświetl plik

@ -46,27 +46,33 @@
#ifndef mustek_h
#define mustek_h
#include "sane/config.h"
#include <sys/types.h>
/* flag values: */
#define MUSTEK_FLAG_SINGLE_PASS (1 << 0) /* single-pass scanner? */
#define MUSTEK_FLAG_ADF (1 << 1) /* automatic document feeder */
#define MUSTEK_FLAG_ADF_READY (1 << 2) /* paper present */
#define MUSTEK_FLAG_TA (1 << 3) /* transparency adapter */
#define MUSTEK_FLAG_USE_EIGHTS (1 << 4) /* use 1/8" lengths */
#define MUSTEK_FLAG_LD_FIX (1 << 5) /* need line-distance fix? */
#define MUSTEK_FLAG_LD_MFS (1 << 6) /* MFS line-distance corr? */
#define MUSTEK_FLAG_LD_NONE (1 << 7) /* no line-distance corr */
#define MUSTEK_FLAG_LD_N1 (1 << 8) /* LD corr for N-type v1 */
#define MUSTEK_FLAG_LD_N2 (1 << 9) /* LD corr for N-type v2 */
#define MUSTEK_FLAG_LINEART_FIX (1 << 10) /* lineart fix/hack */
#define MUSTEK_FLAG_N (1 << 11) /* N-type scanner (non SCSI) */
#define MUSTEK_FLAG_SE (1 << 12) /* ScanExpress model */
#define MUSTEK_FLAG_DOUBLE_RES (1 << 13) /* MSF-06000CZ res. encoding */
#define MUSTEK_FLAG_FORCE_GAMMA (1 << 14) /* force gamma table upload */
#define MUSTEK_FLAG_ENLARGE_X (1 << 15) /* need to enlarge x-res */
#define MUSTEK_FLAG_PRO (1 << 16) /* Professional series model */
/* flag values */
/* scanner types */
#define MUSTEK_FLAG_THREE_PASS (1 << 0) /* three pass scanner */
#define MUSTEK_FLAG_PARAGON_1 (1 << 1) /* Paragon series I scanner */
#define MUSTEK_FLAG_PARAGON_2 (1 << 2) /* Paragon series II (A4) scanner */
#define MUSTEK_FLAG_SE (1 << 3) /* ScanExpress scanner */
#define MUSTEK_FLAG_PRO (1 << 4) /* Professional series scanner */
#define MUSTEK_FLAG_N (1 << 5) /* N-type scanner (non SCSI) */
/* additional equipment */
#define MUSTEK_FLAG_ADF (1 << 6) /* automatic document feeder */
#define MUSTEK_FLAG_ADF_READY (1 << 7) /* paper present */
#define MUSTEK_FLAG_TA (1 << 8) /* transparency adapter */
/* line-distance correction */
#define MUSTEK_FLAG_LD_MFS (1 << 9) /* MFS line-distance corr */
#define MUSTEK_FLAG_LD_NONE (1 << 10) /* no line-distance corr */
#define MUSTEK_FLAG_LD_BLOCK (1 << 11) /* blockwise LD corr */
#define MUSTEK_FLAG_LD_N1 (1 << 12) /* LD corr for N-type v1 */
#define MUSTEK_FLAG_LD_N2 (1 << 13) /* LD corr for N-type v2 */
/* manual fixes */
#define MUSTEK_FLAG_LD_FIX (1 << 14) /* need line-distance fix? */
#define MUSTEK_FLAG_LINEART_FIX (1 << 15) /* lineart fix/hack */
#define MUSTEK_FLAG_USE_EIGHTS (1 << 16) /* use 1/8" lengths */
#define MUSTEK_FLAG_FORCE_GAMMA (1 << 17) /* force gamma table upload */
#define MUSTEK_FLAG_ENLARGE_X (1 << 18) /* need to enlarge x-res */
/* source values: */
#define MUSTEK_SOURCE_FLATBED 0
@ -100,9 +106,14 @@ enum Mustek_Option
OPT_BR_Y, /* bottom-right y */
OPT_ENHANCEMENT_GROUP,
OPT_GRAIN_SIZE,
OPT_BRIGHTNESS,
OPT_BRIGHTNESS_R,
OPT_BRIGHTNESS_G,
OPT_BRIGHTNESS_B,
OPT_CONTRAST,
OPT_CONTRAST_R,
OPT_CONTRAST_G,
OPT_CONTRAST_B,
OPT_CUSTOM_GAMMA, /* use custom gamma tables? */
/* The gamma vectors MUST appear in the order gray, red, green,
blue. */
@ -129,6 +140,7 @@ Option_Value;
typedef struct Mustek_Device
{
struct Mustek_Device *next;
SANE_String name;
SANE_Device sane;
SANE_Range dpi_range;
SANE_Range x_range;
@ -146,12 +158,18 @@ typedef struct Mustek_Device
{
int bytes;
int lines;
unsigned char *buffer;
u_int8_t *buffer;
}
cal;
/* current and maximum buffer size of the scanner */
/* current and maximum buffer size used by the backend */
/* the buffer sent to the scanner is actually half of this size */
int buffer_size;
int max_buffer_size;
/* maximum size scanned in one block and corresponding lines */
int max_block_buffer_size;
int lines_per_block;
u_int8_t *block_buffer;
/* firmware format: 0 = old, MUSTEK at pos 8; 1 = new, MUSTEK at
pos 36 */
int firmware_format;
@ -169,6 +187,8 @@ typedef struct Mustek_Scanner
Option_Value val[NUM_OPTIONS];
SANE_Int gamma_table[4][256];
SANE_Int halftone_pattern[64];
SANE_Bool custom_halftone_pattern;
SANE_Int halftone_pattern_type;
int scanning;
int cancelled;