Added mustek_usb backend which supports the Mustek BearPaw 2448 TA Pro. Changes

of the code before inclusion to CVS can be found in
doc/mustek_usb2/mustek_usb2.CHANGES.
merge-requests/1/head
Henning Geinitz 2005-10-03 13:27:03 +00:00
rodzic 5bf765b91a
commit 8561c6a6bd
19 zmienionych plików z 17053 dodań i 38 usunięć

Wyświetl plik

@ -51,6 +51,7 @@ Backends:
Henning Meier-Geinitz (*), and James Perry.
mustek_pp: Jochen Eisinger (*), Eddy De Greef (*)
mustek_usb: Tom Wang and Henning Meier-Geinitz (*)
mustek_usb2: Roy Zhou, Jack Xu, Vinci Cen, and Henning Meier-Geinitz (*)
nec: Kazuya Fukuda (*)
net: Andreas Beck and David Mosberger
niash: Ullrich Sigwanz (*), Bertrik Sikken
@ -192,6 +193,7 @@ Petter Reinholdtsen <pere@hungry.com>
Randolph Bentson <bentson@grieg.holmsjoen.com>
Rene Rebe <rene@exactcode.de>
Roger Wolff <R.E.Wolff@BitWizard.nl>
Roy Zhou <Roy@mail.mustek-hz.com.cn>
Sebastien Sable <Sebastien.Sable@snv.jussieu.fr>
Sergey Vlasov <vsu@altlinux.ru>
Simon Krix <kinsei@users.sourceforge.net>

Wyświetl plik

@ -1,3 +1,17 @@
2005-10-03 Henning Meier-Geinitz <henning@meier-geinitz.de>
* AUTHORS acinclude.m4 configure configure.in backend/Makefile.in
backend/dll.conf backend/mustek_usb2.c backend/mustek_usb2.h
backend/mustek_usb2_asic.c backend/mustek_usb2_asic.h
backend/mustek_usb2_high.c backend/mustek_usb2_high.h
backend/mustek_usb2_reflective.c backend/mustek_usb2_transparent.c
doc/Makefile.in doc/sane-mustek_usb2.man
doc/mustek_usb2/mustek_usb2.CHANGES
doc/mustek_usb2/mustek_usb2.TODO:
Added mustek_usb backend which supports the Mustek BearPaw 2448
TA Pro. Changes of the code before inclusion to CVS can be found
in doc/mustek_usb2/mustek_usb2.CHANGES.
2005-10-02 Gerhard Jaeger <gerhard@gjaeger.de>
* doc/plustek/Plustek-USB.changes: Update.

Wyświetl plik

@ -223,16 +223,17 @@ AC_DEFUN([SANE_CHECK_PTHREAD],
use_pthread=yes
fi
])
if test $use_pthread = yes ; then
AC_CHECK_HEADERS(pthread.h,
AC_CHECK_HEADERS(pthread.h,
[
AC_CHECK_LIB(pthread,pthread_create)
AC_CHECK_FUNCS([pthread_create pthread_kill pthread_join pthread_detach],,use_pthread=no)
AC_CHECK_FUNCS([pthread_create pthread_kill pthread_join pthread_detach],have_pthread=yes,use_pthread=no)
],)
fi
if test $use_pthread = yes ; then
AC_DEFINE_UNQUOTED(USE_PTHREAD, "$use_pthread",
[Define if pthreads should be used instead of forked processes.])
fi
if test "$have_pthread" = "yes" ; then
CPPFLAGS="${CPPFLAGS} -D_REENTRANT"
fi
AC_MSG_CHECKING([whether to enable pthread support])

Wyświetl plik

@ -126,6 +126,9 @@ DISTFILES = abaton.c abaton.conf abaton.h agfafocus.c agfafocus.conf \
mustek_pp_ccd300.h mustek_scsi_pp.c mustek_scsi_pp.h mustek_usb.c mustek_usb.conf \
mustek_usb.h mustek_usb_high.c mustek_usb_high.h mustek_usb_low.c \
mustek_usb_low.h mustek_usb_mid.c mustek_usb_mid.h nec.c nec.conf nec.h \
mustek_usb2.c mustek_usb2.h mustek_usb2_asic.c \
mustek_usb2_asic.h mustek_usb2_high.c mustek_usb2_high.h \
mustek_usb2_reflective.c mustek_usb2_transparent.c \
net.c net.conf net.h niash.c niash_core.c niash_core.h \
niash_xfer.c niash_xfer.h pie.c pie.conf pie-scsidef.h pint.c pint.h \
plustek.c plustek.conf plustek-usbdevs.c plustek.h \
@ -394,6 +397,8 @@ libsane-mustek_pp.la: ../sanei/sanei_constrain_value.lo
libsane-mustek_pp.la: ../sanei/sanei_pa4s2.lo
libsane-mustek_usb.la: ../sanei/sanei_constrain_value.lo
libsane-mustek_usb.la: ../sanei/sanei_usb.lo
libsane-mustek_usb2.la: ../sanei/sanei_usb.lo
libsane-mustek_usb2.la: ../sanei/sanei_constrain_value.lo
libsane-nec.la: ../sanei/sanei_config2.lo
libsane-nec.la: ../sanei/sanei_constrain_value.lo
libsane-nec.la: ../sanei/sanei_scsi.lo

Wyświetl plik

@ -35,6 +35,7 @@ microtek2
mustek
#mustek_pp
mustek_usb
mustek_usb2
nec
niash
pie

2696
backend/mustek_usb2.c 100644

Plik diff jest za duży Load Diff

Wyświetl plik

@ -0,0 +1,159 @@
/* sane - Scanner Access Now Easy.
Copyright (C) 2000-2005 Mustek.
Originally maintained by Mustek
Copyright (C) 2001-2005 by Henning Meier-Geinitz.
This file is part of the SANE package.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston,
MA 02111-1307, USA.
As a special exception, the authors of SANE give permission for
additional uses of the libraries contained in this release of SANE.
The exception is that, if you link a SANE library with other files
to produce an executable, this does not by itself cause the
resulting executable to be covered by the GNU General Public
License. Your use of that executable is in no way restricted on
account of linking the SANE library code into it.
This exception does not, however, invalidate any other reasons why
the executable file might be covered by the GNU General Public
License.
If you submit changes to SANE to the maintainers to be included in
a subsequent release, you agree by submitting the changes that
those changes may be distributed with this exception intact.
If you write modifications of your own for SANE, it is your choice
whether to permit this exception to apply to your modifications.
If you do not wish that, delete this exception notice.
This file implements a SANE backend for the Mustek BearPaw 2448 TA Pro
and similar USB2 scanners. */
#ifndef MUSTEK_USB2_H
#define MUSTEK_USB2_H
#ifndef SANE_I18N
#define SANE_I18N(text) text
#endif
#define ENABLE(OPTION) s->opt[OPTION].cap &= ~SANE_CAP_INACTIVE
#define DISABLE(OPTION) s->opt[OPTION].cap |= SANE_CAP_INACTIVE
#define IS_ACTIVE(OPTION) (((s->opt[OPTION].cap) & SANE_CAP_INACTIVE) == 0)
/* RIE: return if error */
#define RIE(function) do {status = function; if (status != SANE_STATUS_GOOD) \
return status;} while (SANE_FALSE)
#define MM_PER_INCH 25.4
#define SCAN_BUFFER_SIZE (64 * 1024)
#define MAX_RESOLUTIONS 12
#define DEF_LINEARTTHRESHOLD 128
#define PER_ADD_START_LINES 0
#define PRE_ADD_START_X 0
enum Mustek_Usb_Option
{
OPT_NUM_OPTS = 0,
OPT_MODE_GROUP,
OPT_MODE,
OPT_SOURCE,
OPT_RESOLUTION,
OPT_PREVIEW,
OPT_DEBUG_GROUP,
OPT_AUTO_WARMUP,
OPT_ENHANCEMENT_GROUP,
OPT_THRESHOLD,
OPT_GAMMA_VALUE,
OPT_GEOMETRY_GROUP,
OPT_TL_X, /* top-left x */
OPT_TL_Y, /* top-left y */
OPT_BR_X, /* bottom-right x */
OPT_BR_Y, /* bottom-right y */
/* must come last: */
NUM_OPTIONS
};
typedef struct Scanner_Model
{
/** @name Identification */
/*@{ */
/** A single lowercase word to be used in the configuration file. */
SANE_String_Const name;
/** Device vendor string. */
SANE_String_Const vendor;
/** Device model name. */
SANE_String_Const model;
/** Name of the firmware file. */
SANE_String_Const firmware_name;
/** @name Scanner model parameters */
/*@{ */
SANE_Int dpi_values[MAX_RESOLUTIONS]; /* possible resolutions */
SANE_Fixed x_offset; /* Start of scan area in mm */
SANE_Fixed y_offset; /* Start of scan area in mm */
SANE_Fixed x_size; /* Size of scan area in mm */
SANE_Fixed y_size; /* Size of scan area in mm */
SANE_Fixed x_offset_ta; /* Start of scan area in TA mode in mm */
SANE_Fixed y_offset_ta; /* Start of scan area in TA mode in mm */
SANE_Fixed x_size_ta; /* Size of scan area in TA mode in mm */
SANE_Fixed y_size_ta; /* Size of scan area in TA mode in mm */
RGBORDER line_mode_color_order; /* Order of the CCD/CIS colors */
SANE_Fixed default_gamma_value; /* Default gamma value */
SANE_Bool is_cis; /* Is this a CIS or CCD scanner? */
SANE_Word flags; /* Which hacks are needed for this scanner? */
/*@} */
} Scanner_Model;
typedef struct Mustek_Scanner
{
/* all the state needed to define a scan request: */
struct Mustek_Scanner *next;
SANE_Option_Descriptor opt[NUM_OPTIONS];
Option_Value val[NUM_OPTIONS];
WORD *gamma_table;
SANE_Parameters params; /**< SANE Parameters */
Scanner_Model model;
SETPARAMETERS setpara;
GETPARAMETERS getpara;
SANE_Bool bIsScanning;
SANE_Bool bIsReading;
SANE_Word read_rows; /* transfer image's lines */
SANE_Byte *Scan_data_buf; /*store Scanned data for transfer */
SANE_Byte *Scan_data_buf_start; /*point to data need to transfer */
size_t scan_buffer_len; /* length of data buf */
}
Mustek_Scanner;
#endif

Plik diff jest za duży Load Diff

Plik diff jest za duży Load Diff

Plik diff jest za duży Load Diff

Wyświetl plik

@ -0,0 +1,263 @@
/* sane - Scanner Access Now Easy.
Copyright (C) 2005 Mustek.
Originally maintained by Mustek
Author:Jack Roy 2005.5.24
This file is part of the SANE package.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston,
MA 02111-1307, USA.
As a special exception, the authors of SANE give permission for
additional uses of the libraries contained in this release of SANE.
The exception is that, if you link a SANE library with other files
to produce an executable, this does not by itself cause the
resulting executable to be covered by the GNU General Public
License. Your use of that executable is in no way restricted on
account of linking the SANE library code into it.
This exception does not, however, invalidate any other reasons why
the executable file might be covered by the GNU General Public
License.
If you submit changes to SANE to the maintainers to be included in
a subsequent release, you agree by submitting the changes that
those changes may be distributed with this exception intact.
If you write modifications of your own for SANE, it is your choice
whether to permit this exception to apply to your modifications.
If you do not wish that, delete this exception notice.
This file implements a SANE backend for the Mustek BearPaw 2448 TA Pro
and similar USB2 scanners. */
#ifndef MUSTEK_USB2_HIGH_H
#define MUSTEK_USB2_HIGH_H
/* const use in structures*/
/*scan mode*/
typedef WORD SCANMODE, *LPSCANMODE;
#define SM_TEXT 0x00
#define SM_GRAY 0x01
#define SM_RGB24 0x02
#define SM_GRAY10 0x03
#define SM_RGB30 0x04
#define SM_GRAY12 0x05
#define SM_RGB36 0x06
#define SM_GRAY14 0x07
#define SM_RGB42 0x08
#define SM_GRAY16 0x09
#define SM_RGB48 0x0a
/*pixel flavor*/
typedef BYTE PIXELFLAVOR, *LPPIXELFLAVOR;
#define PF_BlackIs0 0x00
#define PF_WhiteIs0 0x01
/*scan source*/
typedef BYTE SCANSOURCE, *LPSCANSOURCE;
#define SS_Reflective 0x00
#define SS_Positive 0x01
#define SS_Negative 0x02
#define SS_ADF 0x03
/*RGB order*/
typedef WORD RGBORDER, *LPRGBORDER;
#define RO_RGB 0x00
#define RO_BGR 0x01
/* structures use in parameters of export function*/
typedef struct tagGAMMAINFO
{
SCANMODE smScanMode;
WORD wInputGammaBits;
WORD wOutputGammaBits;
} GAMMAINFO, *LPGAMMAINFO;
typedef struct tagGETPARAMETERS
{
WORD wSourceXDPI;
WORD wSourceYDPI;
DWORD dwLineByteWidth;
DWORD dwLength;
} GETPARAMETERS, *LPGETPARAMETERS;
typedef struct tagFRAME
{
WORD x1;
WORD y1;
WORD x2;
WORD y2;
} FRAME, *LPFRAME;
typedef struct tagSETPARAMETERS
{
FRAME fmArea;
WORD wTargetDPI;
SCANMODE smScanMode;
WORD wLinearThreshold; /*threshold for Line art mode */
PIXELFLAVOR pfPixelFlavor;
SCANSOURCE ssScanSource;
LPWORD pGammaTable;
} SETPARAMETERS, *LPSETPARAMETERS;
typedef struct tagIMAGEROWS
{
RGBORDER roRgbOrder;
WORD wWantedLineNum;
WORD wXferedLineNum;
LPBYTE pBuffer;
} IMAGEROWS, *LPIMAGEROWS;
/*Macro define*/
#define R_GAIN 0
#define G_GAIN 0
#define B_GAIN 0
#define R_OFFSET 0
#define G_OFFSET 0
#define B_OFFSET 0
#define R_DIRECTION 0
#define G_DIRECTION 0
#define B_DIRECTION 0
/* use for adjust AD's offset*/
/* for Reflective*/
#define REFL_DARK_MAX_LEVEL 20
#define REFL_DARK_MIN_LEVEL 10
#define REFL_WHITE_MAX_LEVEL 220
#define REFL_WHITE_MIN_LEVEL 210
#define REFL_MAX_LEVEL_RANGE 210
#define REFL_MIN_LEVEL_RANGE 190
/*for Transparent*/
#define TRAN_DARK_MAX_LEVEL 20
#define TRAN_DARK_MIN_LEVEL 10
#define TRAN_WHITE_MAX_LEVEL 220
#define TRAN_WHITE_MIN_LEVEL 210
#define TRAN_MAX_LEVEL_RANGE 210
#define TRAN_MIN_LEVEL_RANGE 190
/* in 600 dpi*/
#define FIND_LEFT_TOP_WIDTH_IN_DIP 512
#define FIND_LEFT_TOP_HEIGHT_IN_DIP 180
#define FIND_LEFT_TOP_CALIBRATE_RESOLUTION 600
#define TA_FIND_LEFT_TOP_WIDTH_IN_DIP 2668
#define TA_FIND_LEFT_TOP_HEIGHT_IN_DIP 300
#define TA_MOTOR_BACK_STEP_AFTER_FIND_BOUNDARY 150
#define TA_MOTOR_FORWARD_STEP_AFTER_READ_WHITE_DATA 1100
/*must be 8x*/
#define LINE_CALIBRATION__16BITS_HEIGHT 40
/* the length from block bar to start Calibration position*/
#define BEFORE_SCANNING_MOTOR_FORWARD_PIXEL 40
#define PRE_MOVE_MOTOR_LENGTH_IN_DPI 1450
/* if the motor is 1/8 step, setup MOTOR_STEP_MULTI as 8
if the motor is 1/4 step, setup MOTOR_STEP_MULTI as 4
if the motor is full step, setup MOTOR_STEP_MULTI as 1
#define MOTOR_EIGHTH_STEP*/
#ifdef MOTOR_EIGHTH_STEP
#define MOTOR_STEP_MULTI 8
#define GPIO_95_Config 0x68
#else
#define MOTOR_STEP_MULTI 4
#define GPIO_95_Config 0x60
#endif
#define TRAN_START_POS 4550
/* in 300dpi*/
#define MAX_SCANNING_WIDTH 2550 /*just for A4 */
#define MAX_SCANNING_HEIGHT 3540 /*just for A4 */
#define INIFILENAME "./msam.ini"
/*enable gamma*/
#define ENABLE_GAMMA
/*save debug image*/
/*#define DEBUG_SAVE_IMAGE*/
/*type define*/
typedef unsigned char SCANTYPE;
#define ST_Reflective 0x00
#define ST_Transparent 0x01
typedef enum tagCOLORMODE
{
CM_RGB48 = 0,
CM_RGB42 = 1,
CM_RGB36 = 2,
CM_RGB30 = 3,
CM_RGB24 = 4,
CM_GRAY16 = 5,
CM_GRAY14 = 6,
CM_GRAY12 = 7,
CM_GRAY10 = 8,
CM_GRAY8 = 9,
CM_TEXT = 10,
CM_RGB48ext = 11,
CM_RGB42ext = 12,
CM_RGB36ext = 13,
CM_RGB30ext = 14,
CM_RGB24ext = 15,
CM_GRAY16ext = 16,
CM_GRAY14ext = 17,
CM_GRAY12ext = 18,
CM_GRAY10ext = 19,
CM_GRAY8ext = 20,
CM_TEXText = 21
} COLORMODE, *PCOLORMODE;
typedef struct tagTARGETIMAGE
{
BOOL isOptimalSpeed;
COLORMODE cmColorMode;
WORD wDpi;
WORD wX;
WORD wY;
WORD wWidth;
WORD wHeight;
BYTE bScanSource;
} TARGETIMAGE, *PTARGETIMAGE;
typedef struct tagSUGGESTSETTING
{
COLORMODE cmScanMode;
WORD wXDpi;
WORD wYDpi;
WORD wX;
WORD wY;
WORD wWidth;
WORD wHeight;
DWORD dwBytesPerRow;
} SUGGESTSETTING, *PSUGGESTSETTING;
#endif

Plik diff jest za duży Load Diff

Plik diff jest za duży Load Diff

69
configure vendored
Wyświetl plik

@ -5944,7 +5944,6 @@ if test "${enable_fork_process+set}" = set; then
fi
fi;
if test $use_pthread = yes ; then
for ac_header in pthread.h
do
@ -6263,7 +6262,7 @@ if test `eval echo '${'$as_ac_var'}'` = yes; then
cat >>confdefs.h <<_ACEOF
#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
_ACEOF
have_pthread=yes
else
use_pthread=no
fi
@ -6274,13 +6273,15 @@ fi
done
fi
if test $use_pthread = yes ; then
cat >>confdefs.h <<_ACEOF
#define USE_PTHREAD "$use_pthread"
_ACEOF
fi
if test "$have_pthread" = "yes" ; then
CPPFLAGS="${CPPFLAGS} -D_REENTRANT"
fi
echo "$as_me:$LINENO: checking whether to enable pthread support" >&5
@ -10846,7 +10847,7 @@ ia64-*-hpux*)
;;
*-*-irix6*)
# Find out which ABI we are using.
echo '#line 10849 "configure"' > conftest.$ac_ext
echo '#line 10850 "configure"' > conftest.$ac_ext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
@ -12079,7 +12080,7 @@ fi
# Provide some information about the compiler.
echo "$as_me:12082:" \
echo "$as_me:12083:" \
"checking for Fortran 77 compiler version" >&5
ac_compiler=`set X $ac_compile; echo $2`
{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
@ -13179,11 +13180,11 @@ else
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
(eval echo "\"\$as_me:13182: $lt_compile\"" >&5)
(eval echo "\"\$as_me:13183: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
echo "$as_me:13186: \$? = $ac_status" >&5
echo "$as_me:13187: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@ -13441,11 +13442,11 @@ else
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
(eval echo "\"\$as_me:13444: $lt_compile\"" >&5)
(eval echo "\"\$as_me:13445: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
echo "$as_me:13448: \$? = $ac_status" >&5
echo "$as_me:13449: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@ -13503,11 +13504,11 @@ else
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
(eval echo "\"\$as_me:13506: $lt_compile\"" >&5)
(eval echo "\"\$as_me:13507: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
echo "$as_me:13510: \$? = $ac_status" >&5
echo "$as_me:13511: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@ -15734,7 +15735,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<EOF
#line 15737 "configure"
#line 15738 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@ -15832,7 +15833,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<EOF
#line 15835 "configure"
#line 15836 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@ -18082,11 +18083,11 @@ else
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
(eval echo "\"\$as_me:18085: $lt_compile\"" >&5)
(eval echo "\"\$as_me:18086: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
echo "$as_me:18089: \$? = $ac_status" >&5
echo "$as_me:18090: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@ -18144,11 +18145,11 @@ else
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
(eval echo "\"\$as_me:18147: $lt_compile\"" >&5)
(eval echo "\"\$as_me:18148: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
echo "$as_me:18151: \$? = $ac_status" >&5
echo "$as_me:18152: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@ -19506,7 +19507,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<EOF
#line 19509 "configure"
#line 19510 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@ -19604,7 +19605,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<EOF
#line 19607 "configure"
#line 19608 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@ -20489,11 +20490,11 @@ else
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
(eval echo "\"\$as_me:20492: $lt_compile\"" >&5)
(eval echo "\"\$as_me:20493: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
echo "$as_me:20496: \$? = $ac_status" >&5
echo "$as_me:20497: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@ -20551,11 +20552,11 @@ else
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
(eval echo "\"\$as_me:20554: $lt_compile\"" >&5)
(eval echo "\"\$as_me:20555: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
echo "$as_me:20558: \$? = $ac_status" >&5
echo "$as_me:20559: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@ -22675,11 +22676,11 @@ else
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
(eval echo "\"\$as_me:22678: $lt_compile\"" >&5)
(eval echo "\"\$as_me:22679: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
echo "$as_me:22682: \$? = $ac_status" >&5
echo "$as_me:22683: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@ -22937,11 +22938,11 @@ else
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
(eval echo "\"\$as_me:22940: $lt_compile\"" >&5)
(eval echo "\"\$as_me:22941: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
echo "$as_me:22944: \$? = $ac_status" >&5
echo "$as_me:22945: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@ -22999,11 +23000,11 @@ else
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
(eval echo "\"\$as_me:23002: $lt_compile\"" >&5)
(eval echo "\"\$as_me:23003: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
echo "$as_me:23006: \$? = $ac_status" >&5
echo "$as_me:23007: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@ -25230,7 +25231,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<EOF
#line 25233 "configure"
#line 25234 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@ -25328,7 +25329,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<EOF
#line 25331 "configure"
#line 25332 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@ -26482,6 +26483,12 @@ echo "$as_me: Manually selected backends: ${BACKENDS}" >&6;}
BACKENDS="${BACKENDS} net"
fi
if test "${have_pthread}" != "yes"; then
echo "*** disabling MUSTEK_USB2 backend (failed to find pthread library)"
else
BACKENDS="${BACKENDS} mustek_usb2"
fi
# Check whether --enable-pnm-backend or --disable-pnm-backend was given.
if test "${enable_pnm_backend+set}" = set; then
enableval="$enable_pnm_backend"

Wyświetl plik

@ -398,6 +398,12 @@ else
BACKENDS="${BACKENDS} net"
fi
if test "${have_pthread}" != "yes"; then
echo "*** disabling MUSTEK_USB2 backend (failed to find pthread library)"
else
BACKENDS="${BACKENDS} mustek_usb2"
fi
AC_ARG_ENABLE(pnm-backend,
AC_HELP_STRING([--enable-pnm-backend],
[enable the pnm backend for testing frontends (possible

Wyświetl plik

@ -52,7 +52,8 @@ SECT5 = sane-abaton.5 sane-agfafocus.5 sane-apple.5 sane-as6e.5 sane-dll.5 \
sane-teco1.5 sane-teco2.5 sane-teco3.5 sane-test.5 sane-sp15c.5 \
sane-coolscan2.5 sane-hpsj5s.5 sane-gt68xx.5 sane-artec_eplus48u.5 \
sane-ma1509.5 sane-ibm.5 sane-hp5400.5 sane-plustek_pp.5 sane-u12.5 \
sane-niash.5 sane-sm3840.5 sane-genesys.5 sane-hp4200.5
sane-niash.5 sane-sm3840.5 sane-genesys.5 sane-hp4200.5 \
sane-mustek_usb2.5
SECT7 = sane.7
SECT8 = saned.8
MANPAGES = $(SECT1) $(SECT5) $(SECT7) $(SECT8)
@ -62,7 +63,8 @@ READMES = README AUTHORS COPYING ChangeLog LICENSE NEWS PROBLEMS \
README.hp-ux README.linux README.netbsd README.openbsd README.os2 \
README.solaris README.unixware2 README.unixware7 README.windows README.zeta
DOCS = backend-writing.txt sane.ps sane.dvi
BACKDIRS= canon leo matsushita mustek mustek_usb plustek u12 umax sceptre teco gt68xx niash
BACKDIRS= canon leo matsushita mustek mustek_usb plustek u12 umax sceptre teco \
gt68xx niash mustek_usb2
LATEX = TEXINPUTS=$(srcdir):$$TEXINPUTS @LATEX@
DVIPS = @DVIPS@
MAKEINDEX = @MAKEINDEX@
@ -103,7 +105,8 @@ DISTFILES = Makefile.in backend-writing.txt descriptions.txt \
sane-teco1.man sane-teco2.man sane-teco3.man sane-test.man sane-sp15c.man \
sane-hpsj5s.man gamma4scanimage.man sane-gt68xx.man sane-artec_eplus48u.man \
sane-ma1509.man sane-ibm.man sane-hp5400.man sane-plustek_pp.man \
sane-u12.man sane-niash.man sane-sm3840.man sane-genesys.man sane-hp4200.man
sane-u12.man sane-niash.man sane-sm3840.man sane-genesys.man sane-hp4200.man \
sane-mustek_usb2.man
.PHONY: all clean depend dist distclean html html-man install \
sane-html uninstall

Wyświetl plik

@ -0,0 +1,132 @@
mustek_usb2.CHANGES -*-text-*-
V 1.0-9 (2005-10-02)
- Removed global variables in mustek_usb2.c:
Deleted the following variables (not necessary):
m_bIsOpen
Moved the following varaiables to Mustek_Scanner structure:
m_bIsScanning
m_bIsReading
setpara
getpara
read_rows
Scan_data_buf
Scan_data_buf_start
scan_buffer_len
Used local variables instead:
dpi_list;
- Minor cleanups.
- Fixed check for Scan_data_buf != NULL.
- Moved check for Scan_data_buf to sane_close ().
- Avoid typedef'ing to long int in mustek_usb2_asic.h. Used int instead.
Fixed DBG messages accordingly.
- Fixed some compilation warnings on 64 bit platforms.
V 1.0-8 (2005-10-01)
- Added/modified checks for libpthread in acinclude.m4/configure.in. Disable
backend if it's not there.
V 1.0-7 (2005-09-30)
- Added usleep in Asic_ScanStop() to avoid freezes after cancellation of a
scan.
- Added sane_constrain_value call in sane_control_option().
- Test with tstbackend succeeded this.
- Changed usage of perror to DBG.
- Removed _Open and _Close. These functions didn't do much at all.
- Removed (commented out) code that tries to read values from config file.
V 1.0-6 (2005-09-29)
- Commented out unused code.
- Made all symbols that don't belong to the SANE API static.
- Changed all fprintfs to DBG messages.
- Used real device name. Used real model name.
- Added manual page (sane-mustek_usb2).
- Fixed backend name in AUTHORS.
V 1.0-5 (2005-09-28)
- Merged all asic-related code into mustek_usb2_asic.c and .h.
- Merged function definitions from mustek_usb2_tarnsparent.h and
mustek_usb2_refelective.h to their respective .c files. Filename changes
are finished now.
- Moved defines used in mustek_usb2_high.c to moustek_usb_high.h.
- All license/comment headers name the right scanner now.
- Fixed "already included check" of header files
- Used indent -gnu on all files.
- Fixed compilation warnings and several bugs ("=" instead of "==" and similar
stuff) in mustek_usb2_asic.c, mustek_usb2_transparent.c,
mustek_usb2_reflective.c, mustek_usb2_high.c, mustek_usb2.c.
V 1.0-4 (2005-09-27)
- Changed filenames (preliminary, may be changed again):
mustek_a2nu2.c --> mustek_usb2.c
mustek_a2nu2.h --> mustek_usb2.h
a2nu2/spicall/MustScanner.c --> mustek_usb2_high.c
a2nu2/spicall/MustScanner.h --> mustek_usb2_high.h
a2nu2/spicall/ScannerDefine.h --> included in mustek_usb2_high.h
a2nu2/spicall/ScannerReflective.c --> mustek_usb2_reflective.c
a2nu2/spicall/ScannerReflective.h --> mustek_usb2_reflective.h
a2nu2/spicall/ScannerTransparent.c --> mustek_usb2_transparent.c
a2nu2/spicall/ScannerTransparent.h --> mustek_usb2_transparent.h
a2nu2/spicall/spicall.c --> included in mustek_usb2.c
a2nu2/spicall/spicall_ex.h
a2nu2/spicall/spicall_g.h --> included in mustek_usb2_high.c
a2nu2/include/asic.h --> included in mustek_usb2_asic_low.h
a2nu2/include/debug.h --> removed
a2nu2/include/ini.h
a2nu2/include/msam.ini --> removed
a2nu2/include/public.h --> included in mustek_usb2_typedef.h
a2nu2/include/spicall.h --> included in mustek_usb2.h
a2nu2/include/typedef.h --> mustek_usb2_asic_low.h
a2nu2/conf/ini.c --> removed
a2nu2/asic/asic.c --> mustek_usb2_asic.c
a2nu2/asic/asic_libusb.c --> removed (used sanei_usb)
a2nu2/asic/asic_libusb.h --> removed
a2nu2/asic/asic_mid.c --> mustek_usb2_asic_mid.c
a2nu2/asic/asic_mid.h --> included in mustek_usb2_asic_mid.c
a2nu2/asic/asic_motor.c --> mustek_usb2_asic_motor.c
a2nu2/asic/asic_motor.h --> mustek_usb2_asic_motor.h
a2nu2/asic/asic_usb.c --> mustek_usb2_asic_low.c
a2nu2/asic/asic_usb.h --> included in mustek_usb2_asic_low.h
a2nu2/asic/DefineScanner.h --> mustek_usb2_asic_low.h
a2nu2/asic/ScanRegDef.h --> included in mustek_usb2_asic_low.h
- Changed backend name to mustek_usb2.
- Used dos2unix to change dos line endings to unix.
- Added mustek_usb2.TODO.
- Changed several occurences of "//" to "/* */".
- Used DBG instead of XDBG.
- Defined DBG levels in mustek_usb2_asic_low.h.
- Changed code to use sanei_usb instead of home-grown usb functions.
V 1.0-3 (2005-08-31)
- Updated code from Mustek, mostly changed // to /* */
- Enabled compilation warnings again.
- Scanner is confirmed to work at least on Linux.
V 1.0-2 (2005-08-30)
- Initial version based on the code from Roy Zhou, Jack Xu, Vinci Cen.
- This version is just to make it compile at all and to trim down the package
size by removing all the unneeded backends. Before inclusion into SANE can
be done, the sub directories, several libraries and the amount of files has
to be fixed (and lots of other stuff).
- Based everything on current CVS.
- Fixed AUTHORS.
- Added mustek_pro.CHANGES.
- Fixed dll.conf.
- Fixed .desc file.
- Adjusted configure.in to build only test, net and mustek_a2nu2 backends.
- Adjusted backend/Makefile.in.
- Disabled compilation warnings, otherwise the "//" comments will cause
errors.
- Fixed several upper/lower case problems.
- Removed definition of Option_Value.
- Started renaming doc files to new backend name: msutek_usb2.
- Added GPL+SANE exception to all remaining files.

Wyświetl plik

@ -0,0 +1,9 @@
.mustek_usb2.TODO -*-text-*-
- Check if there is an easy way to avoid pthread
- prepare for different scanners (and more than one scanner)
- adjust debug levels (currently only DBG_FUNC is used in _high.c).
- unify debug messages ("start"/"exit" functions etc.)
- check all "HOLD"s in the code
- check if 1200 x 2400 dpi modes can be added
- try to add additional scanners

Wyświetl plik

@ -0,0 +1,91 @@
.TH sane-mustek_usb2 5 "29 Sep 2005" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy"
.IX sane-mustek_usb2
.SH NAME
sane-mustek_usb2 \- SANE backend for SQ113 based USB flatbed scanners
.SH DESCRIPTION
The
.B sane-mustek_usb2
library implements a SANE (Scanner Access Now Easy) backend that provides
access to USB flatbed scanners based on the Service & Quality SQ113 chipset. At
the moment, only the Mustek BearPaw 2448 TA Pro is supported. It's planned to add
support for other scanners that are based on the SQ113 and maybe SQ11 chip. For
more details, see the mustek_usb2 backend homepage:
.IR http://www.meier-geinitz.de/sane/mustek_usb2-backend/ .
.PP
This is BETA software. Especially if you test new or untested scanners, keep
your hand at the scanner's plug and unplug it, if the head bumps at the end of
the scan area.
.PP
If you own a scanner other than the ones listed on the mustek_usb2 homepage that works with this
backend, please let me know this by sending the scanner's exact model name and
the USB vendor and device ids (e.g. from
.I sane-find-scanner
or syslog) to me. Even if the scanner's name is only slightly different from
the models already listed as supported, please let me know.
.PP
.SH LIBUSB ISSUES
Please use libusb-0.1.8 or later. Without libusb or with older libusb versions
all kinds of trouble can be expected. The scanner should be found by
sane-find-scanner without further actions. For setting permissions and general
USB information looks at
.BR sane\-usb (5).
.PP
.SH FILES
.TP
.I @CONFIGDIR@/mustek_usb2.conf
The backend configuration file (see also description of
.B SANE_CONFIG_DIR
below).
.TP
.I @LIBDIR@/libsane-mustek_usb2.a
The static library implementing this backend.
.TP
.I @LIBDIR@/libsane-mustek_usb2.so
The shared library implementing this backend (present on systems that
support dynamic loading).
.SH ENVIRONMENT
.TP
.B SANE_CONFIG_DIR
This environment variable specifies the list of directories that may
contain the configuration file. Under UNIX, the directories are
separated by a colon (`:'), under OS/2, they are separated by a
semi-colon (`;'). If this variable is not set, the configuration file
is searched in two default directories: first, the current working
directory (".") and then in @CONFIGDIR@. If the value of the
environment variable ends with the directory separator character, then
the default directories are searched after the explicitly specified
directories. For example, setting
.B SANE_CONFIG_DIR
to "/tmp/config:" would result in directories "tmp/config", ".", and
"@CONFIGDIR@" being searched (in this order).
.TP
.B SANE_DEBUG_MUSTEK_USB2
If the library was compiled with debug support enabled, this environment
variable controls the debug level for this backend. Higher debug levels
increase the verbosity of the output.
Example:
export SANE_DEBUG_MUSTEK_USB2=4
.SH "SEE ALSO"
.BR sane (7),
.BR sane\-usb (5),
.BR sane\-plustek (5),
.BR sane\-ma1509 (5),
.BR sane\-mustek_usb (5),
.BR sane\-mustek (5),
.BR sane\-mustek_pp (5)
.br
.I @DOCDIR@/mustek_usb2/mustek_usb2.CHANGES
.br
.I http://www.meier-geinitz.de/sane/mustek_usb2-backend/
.SH AUTHOR
The driver has been written Roy Zhou, Jack Xu, and Vinci Cen from
Mustek. Adjustments to SANE by Henning Meier-Geinitz.
.SH BUGS
Please contact me if you find a bug or missing feature:
<henning@meier-geinitz.de>. Please send a debug log if your scanner isn't
detected correctly (see SANE_DEBUG_MUSTEK_USB2 above).