The Maxify scanners seem to only be able to return JPEG data for ADF
sources. Attempting to send a gamma LUT will result in an error on
sane_start when trying to use the ADF. Flatbed scanning is unaffected
and runs fine with LUTs like prior models.
This patch adds support to the PIXMA backend for returned JPEG scans
and keys it off of the new capability, ADF_JPEG.
Tested on a Maxify MB2120 using the ADF and the flatbed scanner.
This may also fix other Maxify MB* models where it seems the ADF does
not with with the prior code, but I only have the MB2120 to test.
There is no need to depend on and link in all the various dependencies
for whatever backends *might* be preloaded if none are. Distributions
habitually rip these out, rightfully so, to reduce the list of package
dependencies. This will achieve the same while still doing the "right
thing" for builds that do preload one or more backens.
When libusb-1.0 is not found, libusb-0.1 will be tried. On BeOS and
OS2, nothing should have changed in terms of detection of USB support.
On all systems the --enable-libusb* flags are now ignored. Instead, the
--with-usb and --without-usb flags now control support. When neither is
given USB support will be enable if possible and disabled otherwise. If
--with-usb is requested but not possible, ./configure will fail. There
is no support to prefer libusb-0.1 over libusb-1.0.
Several variables are considered "user variables" by the GNU Standards.
This means that the user can pass these to their ./configure and make
invocations as they see fit. These variables include CPPFLAGS, CFLAGS
and LDFLAGS.
This changeset pushes our use of these variables to the automake shadow
variables, AM_CPPFLAGS, AM_CFLAGS and AM_LDFLAGS, so that user variables
will no longer clobber flags required in order to build.
The AC_SUBST and PKG_CHECK_MODULE invocations in configure.ac as well as
acinclude.m4 are sufficient to trigger automake to insert initialization
logic for the variables these introduce. There is no need to do this by
hand. Wherever these values are needed, it is better to use a variable.
This allows for one-off overrides on the make command-line (without the
need to run ./configure) for one thing.
Patch is submitted by Laxmeesh Onkar Markod <m.laxmeesh@samsung.com>
Patch to code is applied almost verbatim, except, insignificant
formatting fixes and making new functions static.
Also, new USB ids added and scanner support is changed as reported.
Instead of 100+ revert commits, I've lumped everything into a
single commit. This removes all of dedf0ac30 through db7f038f1,
plus the parts of 497d59180 which were specific to mustek_usb2
The epson and epson2 backends shared a list of supported USB devices
generated from the epson2.desc file. The epson backend doesn't even
claim to support a large number of the devices listed there. This
change makes the backends use their own lists, generated from their
own *.desc files.
This commit adds support for (slide) scanners based
on Pacific Image Electronics (PIE) oem scan hardware.
It is known to match the following USB scanners
PIE PowerSlide 3600 Untested
PIE PowerSlide 3650 Untested
PIE PowerSlide 4000 Untested
PIE PowerSlide 5000 Untested
Reflecta CrystalScan 7200 Untested
Reflecta ProScan 7200 Untested
Reflecta DigitDia 4000 Untested
Reflecta DigitDia 5000 Untested
Reflecta DigitDia 6000 Ok
The backend is based on work by Jan Vleeshouwers and Michael Rickmann.
Special thanks to Stéphane Voltz for the code review.
Add pieusb to backend/Makefile.am
Add pieusb to doc/Makefile.am
Add missing sanei/sanei_ir.c, sanei/sanei_ir.h, adapt Makefile.am
configure.ac: Add 'pieusb' to ALL_BACKENDS
ChangeLog: Add pieusb as new backend
Mark infrared functions as internal: sane_ir_* -> sanei_ir_*
sanei/sanei_ir.c: fix memory leaks
pieusb: rename cmdGetMode and cmdSetScanHead
... to their sanei_pieusb_cmd_... equivalent
pieusb: rename definition_list_head to pieusb_definition_list_head
Add pieusb to AUTHORS
pieusb: copyright 2012-2015
pieusb: don't include sanei_thread.h
Make install process robust against problems with setting group on the
sane lock directory. This can e.g. happen if packaging sane-backends and
building as a user other than root.
dll.c is were optional preload behavior is implemented.
Since its linked in using a convienence library, we need
to libraries to have different behavior.
Current backend/Makefile.am states difference between libsane and
libsane-dll as:
> libsane.la and libsane-dll.la are the same thing except for
> the addition of backends listed by PRELOADABLE_BACKENDS that are
> statically linked in.
We were (mistakenly) linking in dll-preload.h and thus symbols
for all preload backends for both libraries but we were only
linking in those symbols for libsane.
This mistake became obvious on mingw which does not allow for
any unresolved symbols. Resolve by forcing an empty preload
backend list for libsane-dll.
-) LAN and USB communication
-) SNMP LAN auto-detection (using libsnmp, added configure check!)
-) Based on the epson2 backend, with many structural changes
-) B/W, Gray, Color scanning works in 150/300/600dpi (full-page
color scan only possible with <=300dpi)
-) The timeouts (SNMP, scan data, other data) are configurable in the
magicolor.conf file
-) Keeps list of known scanners in sane_get_devices, does not destroy
existing handles; Also correctly calls sanei_usb_init.
create a place holder for low level commands
move low level functions to genesys_low.c
GL124 progresses
enable genesys_low debug and add DAC for LiDE 110
gl124 WIP
- gl847 cleanups
- genesys_low refactor
- gl124 starting version
GL124 WIP
- read scancnt/fedcnt,valid words coded
- memory layout coded
LiDE110 WIP
GL 124 WIP
- definition and use of get/set double/triple
- define register names
all mods done, ready to test
set fe OK
GL124 WIP : ready to test scans
GL124 WIP
GL124 WIP
- fixed analog fe issue: don't put afe regs in global set
GL124 : first light at 300 dpi
GL124 WIP
- 300 and 600 uncalibrated mostly ok (x coordinate rounding)
- 150 and 75 OK x-wise, y to be solved
solved rounding errors for gl124
re-add 400, 200 and 100 dpi modes
GL124 : tous x dpi OK
before adding line cropping
GL124 : line cropping almost finished
GL124 WIP : working line deletion
compute step rework
GL124 WIP : high speed table for dpi <= 300
move to scan area working
line skipping fix
new slope table for 600 dpi base
geometry and movement tuned
GL124 WIP : shading calibration almost working
working 600 dpi shading
GL124 : working shading calibration for all modes but 1200 dpi
working 1200 dpi shading
beta 1 of GL124 support
last tuning
update genesys.desc for LiDE 110
motor slope and start area tuning
shading coefficient computing clean up
add support for GL124 based CanoScan LiDE 110
feed almost OK up to 300 dpi
feeding is fixed
all issues fixed
resmgr library is only used (optionally) by
sanei_usb and sanei_scsi. So only need to
link it in for those backends. This was
a stray piece from initial cleanup of LIBS
in sane-backends 1.0.20.
Signed-off-by: Chris Bagwell <chris@cnpbagwell.com>
- add software brightness/contrast for dumb scanners
- add blocking mode to allow full-page manipulation options to run
- add swdespeck option and support code
- add swdeskew and swcrop options (disabled)
Color correction profiles have been imported from the epkowa driver.
The user can specify his own or let the backend choice. The
feature is not enabled by default.
This feature is in beta stage, works only for color scans
and automatic mode.
Enable with --color-correction 'Automatic'
Some subroutines have been moved from epson2.c to epson2-ops.c and
there's also a temporary fix for the networking code.
This is work in progress but should work.
Add in missing $PTHREAD_LIBS to all backends that can make use of it.
Rename --enable-fork-process to --enable-pthread to maatch internal
logic. Also, stop linking in pthreads needlessly if its been
disabled.
with newer automake.
* backend/Makefile.am, tools/sane-config.in: Add missing
$GPHOTO2_LDFLAGS so library can be found.
* tools/Makefile.am: Add mising $SCSI_LIBS to sane-find-scanner.
also add V_REV.
* backend/Makefile.am: Use variables to add libraries to backends
instead of direct substitution. Easier to touch up variables on
problem platforms then substitution. Also, add back in creating
dll.d directory; missed during conversion.
* backend/genesys_gl841.c: Portablity fixes for strict
C compilers.
use -version-number even though its known not to work on
some platforms (OS/2). -version-info results in a variety of
version numbers in soname based on platform and would not
be easily mappable back to values currently return by
each backend's sane_init(). ltmain.sh will need to be
hand patched for any known issues.
optionally linking in sanei_jpeg.lo under backend directory;
but using configure and not with GNU make extensions.
Move back to libtool's -version-info instead of -version-number
because the later has known bugs on platforms such as OS/2.
add cv_ prefix to cached variable. Remove AC_ARG_PROGRAM as
automake already invokes this. When prefered AC_USE_SYSTEM_EXTENSIONS
exists, use that instead of AC_GNU_SOURCE/AC_AIX/AC_MINUX.
Cleanup socket detection more by creating only a single
SOCKET_LIBS that contains list of all optional libraries
for any socket related funciton. Make sure that checks
for socket related functions use SOCKET_LIBS when searching.
Check for getopt_long() and getopt.h. Make OS/2 use
-no-undefined (same as windows).
* ltmain.sh, m4/libtool.m4: Upgrade to libtool 1.5.26.
* Makefile.am: Cleanups to match configure updates.
* frontend/scanimage.c, include/Makefile.in, lib/getopt.c
lib/getopt1.c, toosl/sane-desc.c, include/lgetopt.h:
Rename internal getopt.h to lgetopt.h to allow using
external getopt.h when it exists. This allows to go
back to optionally compiling getopt()/getopt_long() and its
prototypes and not have conflicts with external headers/symbols.
* configure.in: Group all USB logic together and all SCSI
logic together to aid understanding of whats no longer
valid. Allow sharing enable/disable options between all
USB drivers on multiple platforms. Combined CAM_LIBS and
SCSI_LIBS since they are mutually exclusive.
Skip some USB/SCSI checks when previous tests show it will always fail.
* backend/Makefile.am, tools/Makefile.in: Combine CAM_LIBS and
SCSI_LIBS. Add missing SOCKET_LIBS to epson2. Add USB_LIB.
* saned.c: Add limits.h for PATH_MAX.
own *_LIB variables instead of $LIB so that we do not have to
link in the world to all executables. Modified SANE_CHECK_U_TYPES
to be a little more portable to platforms that use #define
for u_* types. Create SANE_CHECK_BACKENDS macro so that
PRELOADABLE_BACKENDS can also be valided. Auto-populated
PRELAODABLE_BACKENDS when detect dlopen() won't work.
Various protability cleanups.
* backend/dll.c: Make dll-preload.c a .h since its an include and
not compilable byitself.
* frontend/Makefile.in, frontend/scanimage.c, include/laaloca.h,
lib/Makefile.am, lib/alloca.c, strcasestr.c, tools/Makefile.in,
tools/sane-desc.c: Convert lib/ to automake. Create a liblib.la
for everyone to use and a libfelib.la for only frontend programs.
Make all internal programs be prefixed with sanei_ as not to conflict
with other programs libsane is linked in with that will also most
likely create similar internal utils on problem platforms.
* include/getopt.h, lib/getopt.c, lib/getopt1.c: Always compile
and link in getopt_long() but prefix it with sanei_. Its
easier to always use internal version then try to figure out what
platforms support getopt_long() and what header files to use.
* backend/Makefile.am: Convert backend makefile to automake.
Initial version that is feature parity with original but uses
specific rules instead of wildcards and only links in libraries/objs
really required. Room for more cleanup of whats linked in once
all makefiles have been converted to automake.