kopia lustrzana https://gitlab.com/sane-project/backends
Added umax_pp backend (patch from Stphane Voltz
<svoltz@wanadoo.fr>).DEVEL_2_0_BRANCH-1
rodzic
3346c6f053
commit
0e6d28e8e8
|
@ -54,8 +54,8 @@ COMPILE = $(CC) -c $(CFLAGS) $(DEFS) $(INCLUDES) $(CPPFLAGS)
|
|||
|
||||
PRELOADABLE_BACKENDS = abaton agfafocus apple artec as6e avision bh canon \
|
||||
coolscan dc25 @DC210@ @DC240@ dmc epson hp m3096g microtek microtek2 \
|
||||
mustek mustek_pp nec @NET@ pie @PINT@ plustek @PNM@ @QCAM@ ricoh s9036 \
|
||||
sharp snapscan sp15c st400 tamarack umax @V4L@
|
||||
mustek mustek_pp nec @NET@ pie @PINT@ plustek @PNM@ @QCAM@ ricoh \
|
||||
s9036 sharp snapscan sp15c st400 tamarack umax umax_pp @V4L@
|
||||
ALL_BACKENDS = $(PRELOADABLE_BACKENDS) dll
|
||||
|
||||
LIBS = $(addprefix libsane-,$(addsuffix .la,$(ALL_BACKENDS)))
|
||||
|
@ -155,6 +155,7 @@ libsane.la: dll.lo dll-s.lo $(EXTRA) $(addsuffix .lo,$(DLL_PRELOAD)) $(LIBOBJS)
|
|||
# additional dependencies
|
||||
|
||||
EXTRA_hp = hp-accessor hp-device hp-handle hp-hpmem hp-option hp-scl
|
||||
EXTRA_umax_pp = umax_pp_low umax_pp_mid
|
||||
EXTRA_dc210 = djpeg
|
||||
EXTRA_dc240 = djpeg
|
||||
|
||||
|
@ -262,6 +263,9 @@ libsane-umax.la: ../sanei/sanei_config2.lo
|
|||
libsane-umax.la: ../sanei/sanei_constrain_value.lo
|
||||
libsane-umax.la: ../sanei/sanei_scsi.lo
|
||||
libsane-v4l.la: ../sanei/sanei_constrain_value.lo
|
||||
libsane-umax_pp.la: $(addsuffix .lo,$(EXTRA_umax_pp))
|
||||
libsane-umax_pp.la: ../sanei/sanei_constrain_value.lo
|
||||
libsane-umax_pp.la: ../sanei/sanei_config2.lo
|
||||
|
||||
ifneq ($(DLL_PRELOAD),)
|
||||
# need to make dll dependent on all sanei files:
|
||||
|
|
|
@ -33,4 +33,5 @@ snapscan
|
|||
sp15c
|
||||
tamarack
|
||||
umax
|
||||
#umax_pp
|
||||
v4l
|
||||
|
|
|
@ -0,0 +1,83 @@
|
|||
#include "sane/sanei_backend.h"
|
||||
|
||||
/* Now define the wrappers (we could use aliases here, but go for
|
||||
robustness for now...: */
|
||||
|
||||
SANE_Status
|
||||
sane_init (SANE_Int *vc, SANE_Auth_Callback cb)
|
||||
{
|
||||
return ENTRY(init) (vc, cb);
|
||||
}
|
||||
|
||||
SANE_Status
|
||||
sane_get_devices (const SANE_Device ***dl, SANE_Bool local)
|
||||
{
|
||||
return ENTRY(get_devices) (dl, local);
|
||||
}
|
||||
|
||||
SANE_Status
|
||||
sane_open (SANE_String_Const name, SANE_Handle *h)
|
||||
{
|
||||
return ENTRY(open) (name, h);
|
||||
}
|
||||
|
||||
const SANE_Option_Descriptor *
|
||||
sane_get_option_descriptor (SANE_Handle h, SANE_Int opt)
|
||||
{
|
||||
return ENTRY(get_option_descriptor) (h, opt);
|
||||
}
|
||||
|
||||
SANE_Status
|
||||
sane_control_option (SANE_Handle h, SANE_Int opt, SANE_Action act,
|
||||
void *val, SANE_Word *info)
|
||||
{
|
||||
return ENTRY(control_option) (h, opt, act, val, info);
|
||||
}
|
||||
|
||||
SANE_Status
|
||||
sane_get_parameters (SANE_Handle h, SANE_Parameters *parms)
|
||||
{
|
||||
return ENTRY(get_parameters) (h, parms);
|
||||
}
|
||||
|
||||
SANE_Status
|
||||
sane_start (SANE_Handle h)
|
||||
{
|
||||
return ENTRY(start) (h);
|
||||
}
|
||||
|
||||
SANE_Status
|
||||
sane_read (SANE_Handle h, SANE_Byte *buf, SANE_Int maxlen, SANE_Int *lenp)
|
||||
{
|
||||
return ENTRY(read) (h, buf, maxlen, lenp);
|
||||
}
|
||||
|
||||
SANE_Status
|
||||
sane_set_io_mode (SANE_Handle h, SANE_Bool non_blocking)
|
||||
{
|
||||
return ENTRY(set_io_mode) (h, non_blocking);
|
||||
}
|
||||
|
||||
SANE_Status
|
||||
sane_get_select_fd (SANE_Handle h, SANE_Int *fdp)
|
||||
{
|
||||
return ENTRY(get_select_fd) (h, fdp);
|
||||
}
|
||||
|
||||
void
|
||||
sane_cancel (SANE_Handle h)
|
||||
{
|
||||
ENTRY(cancel) (h);
|
||||
}
|
||||
|
||||
void
|
||||
sane_close (SANE_Handle h)
|
||||
{
|
||||
ENTRY(close) (h);
|
||||
}
|
||||
|
||||
void
|
||||
sane_exit (void)
|
||||
{
|
||||
ENTRY(exit) ();
|
||||
}
|
|
@ -0,0 +1,57 @@
|
|||
;
|
||||
; SANE Backend specification file
|
||||
;
|
||||
; It's basically emacs-lisp --- so ";" indicates comment to end of line.
|
||||
; All syntactic elements are keyword tokens, followed by a string or
|
||||
; keyword argument, as specified.
|
||||
;
|
||||
; ":backend" *must* be specified.
|
||||
; All other information is optional (but what good is the file without it?).
|
||||
;
|
||||
|
||||
:backend "umax_pp" ; name of backend
|
||||
:version "1" ; version of backend
|
||||
:status :new ; :alpha, :beta, :stable, :new
|
||||
:manpage "sane-umax_pp" ; name of manpage (if it exists)
|
||||
; backend's web page
|
||||
:url "http://umax1220p.sourceforge.net/"
|
||||
|
||||
:devicetype :scanner ; start of a list of devices....
|
||||
; other types: :stillcam, :vidcam,
|
||||
; :meta, :api
|
||||
|
||||
:mfg "UMAX" ; name a manufacturer
|
||||
:url "http://www.umax.com/"
|
||||
|
||||
; These scanners are known to have the same ASIC. What scanners work
|
||||
; isn't actually known. Also the interfaces are only guessed
|
||||
|
||||
:model "Astra 1220P"
|
||||
:interface "Parport (EPP)"
|
||||
:comment "works"
|
||||
|
||||
:model "Astra 2000P"
|
||||
:interface "Parport (EPP)"
|
||||
:comment "works"
|
||||
|
||||
:model "Astra 1600P"
|
||||
:interface "Parport (EPP)"
|
||||
:comment "works"
|
||||
|
||||
:model "ASTRA 610 P"
|
||||
:interface "Parport (EPP)"
|
||||
:comment "don't work (yet)"
|
||||
|
||||
|
||||
:mfg "Hewlett-Packard"
|
||||
|
||||
:model "HP 3200 C"
|
||||
:interface "Parport (EPP)"
|
||||
:comment "works (relabelled 1220P and 2000P)"
|
||||
|
||||
|
||||
; :comment and :url specifiers are optional after :mfg, :model, :desc,
|
||||
; and at the top-level.
|
||||
|
||||
|
||||
|
Ładowanie…
Reference in New Issue