diff --git a/AUTHORS b/AUTHORS index 92097d721..40dabf528 100644 --- a/AUTHORS +++ b/AUTHORS @@ -1,7 +1,3 @@ -Authors of the SANE standard: - - Andreas Beck and David Mosberger - Backends: abaton: David Huggins-Daines diff --git a/INSTALL.linux b/INSTALL.linux index 37e4b4486..6cf0589f0 100644 --- a/INSTALL.linux +++ b/INSTALL.linux @@ -22,6 +22,9 @@ $ make install - libusb-1.0.0-dev or similar - libjpeg-dev or libjpeg8-dev or libjpeg-turbo-devel or turbojpeg-devel - libpng-dev or similar + - libcurl4-gnutls-dev or similar + - libxml2-dev or similar + - libsnmp-dev or similar 2.2. Get the latest SANE backend from git: You can download "daily git snapshot" from here: diff --git a/LICENSE b/LICENSE index 442aa2631..73d018ea7 100644 --- a/LICENSE +++ b/LICENSE @@ -30,6 +30,9 @@ terms: to implement SANE interface conforming applications or libraries in any way he or she sees fit. + The standard is maintained at https://gitlab.com/sane-project/standard + and published at https://sane-project.gitlab.io/standard/. + Frequently Asked Questions about the SANE licensing: * Why don't you use the GNU LPGL ? diff --git a/NEWS b/NEWS index 5a326c6af..67b8e0ad1 100644 --- a/NEWS +++ b/NEWS @@ -1,5 +1,55 @@ +## New with the next release + +### Documentation + +- removes the SANE Standard. This is now maintained as a separate + project at https://gitlab.com/sane-project/standard. HTML and PDF + versions can be found at https://sane-project.gitlab.io/standard/. + +### Build + +- removes the `--with-api-spec` option from `configure` + + +## New with 1.0.29 (released 2020-02-02) + +### Backends + +- adds an `escl` backend (theoretically supporting *all* AirPrint + devices with a scan unit) +- adds support for 23 new scanner models via existing backends +- significantly changes `genesys` and `pixma` backends +- fixes bugs in `canon_dr`, `fujitsu`, `hp3900`, `mustek_usb2`, + `plustek` and `xerox_mfp` backends +- fixes *all* compiler warnings on Debian 10 (#120) +- fixes portability issues for uClibc-ng and MacOS builds +- adds support to record and replay USB I/O traffic +- adds timestamps to debug logs + +### Frontends + +- fixes a 32-bit arithmetic overflow issue in `scanimage` + +### Documentation + +- updates translations for British English, Catalan, German, + Ukrainian, Valencian +- adds `scangearmp2` external backend descriptions +- updates `hpaio` and `utsushi` external backend descriptions +- adds the `ChangeLogs/` directory to the source tarball (#103) + +### Build + +- additionally requires `libcurl` and `libxml2` to build the `escl` + backend +- requires `libxml2` for USB I/O recording and replay functionality +- re-enables pthread support for backends that use its API directly, + irrespective of the `pthread_t` type (#153) +- moves the `genesys` and `pixma` backends to a directory of their own + + ## New with 1.0.28 (released 2019-07-31) ### Backends diff --git a/acinclude.m4 b/acinclude.m4 index f5bd84bca..7c90c64f7 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -252,21 +252,22 @@ AC_DEFUN([SANE_CHECK_PTHREAD], [Define if pthread_t is integer.]) else # Until the sanei_thread implementation is fixed. - have_pthread=no 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.]) - else - dnl Reset library in case it was found but we are not going to use it. - PTHREAD_LIBS="" - fi if test "$have_pthread" = "yes" ; then AM_CPPFLAGS="${AM_CPPFLAGS} -D_REENTRANT" fi AC_SUBST(PTHREAD_LIBS) + + if test $use_pthread = yes ; then + AC_DEFINE_UNQUOTED(USE_PTHREAD, "$use_pthread", + [Define if pthreads should be used instead of forked processes.]) + SANEI_THREAD_LIBS=$PTHREAD_LIBS + else + SANEI_THREAD_LIBS="" + fi + AC_SUBST(SANEI_THREAD_LIBS) AC_MSG_CHECKING([whether to enable pthread support]) AC_MSG_RESULT([$have_pthread]) AC_MSG_CHECKING([whether to use pthread instead of fork]) diff --git a/backend/.gitignore b/backend/.gitignore index 6ebfbd5d7..6276e6131 100644 --- a/backend/.gitignore +++ b/backend/.gitignore @@ -1,5 +1,6 @@ *-s.c -*-s.cc +*-s.cpp *.conf +.dirstamp dll-preload.c dll-preload.h diff --git a/backend/Makefile.am b/backend/Makefile.am index fe7877d56..f41ceffd2 100644 --- a/backend/Makefile.am +++ b/backend/Makefile.am @@ -260,7 +260,7 @@ libagfafocus_la_CPPFLAGS = $(AM_CPPFLAGS) -DBACKEND_NAME=agfafocus nodist_libsane_agfafocus_la_SOURCES = agfafocus-s.c libsane_agfafocus_la_CPPFLAGS = $(AM_CPPFLAGS) -DBACKEND_NAME=agfafocus libsane_agfafocus_la_LDFLAGS = $(DIST_SANELIBS_LDFLAGS) -libsane_agfafocus_la_LIBADD = $(COMMON_LIBS) libagfafocus.la ../sanei/sanei_init_debug.lo ../sanei/sanei_constrain_value.lo ../sanei/sanei_config.lo ../sanei/sanei_config2.lo sane_strstatus.lo ../sanei/sanei_thread.lo ../sanei/sanei_scsi.lo $(SCSI_LIBS) $(PTHREAD_LIBS) $(RESMGR_LIBS) +libsane_agfafocus_la_LIBADD = $(COMMON_LIBS) libagfafocus.la ../sanei/sanei_init_debug.lo ../sanei/sanei_constrain_value.lo ../sanei/sanei_config.lo ../sanei/sanei_config2.lo sane_strstatus.lo ../sanei/sanei_thread.lo ../sanei/sanei_scsi.lo $(SCSI_LIBS) $(SANEI_THREAD_LIBS) $(RESMGR_LIBS) EXTRA_DIST += agfafocus.conf.in libapple_la_SOURCES = apple.c apple.h @@ -287,7 +287,7 @@ libartec_eplus48u_la_CPPFLAGS = $(AM_CPPFLAGS) -DBACKEND_NAME=artec_eplus48u nodist_libsane_artec_eplus48u_la_SOURCES = artec_eplus48u-s.c libsane_artec_eplus48u_la_CPPFLAGS = $(AM_CPPFLAGS) -DBACKEND_NAME=artec_eplus48u libsane_artec_eplus48u_la_LDFLAGS = $(DIST_SANELIBS_LDFLAGS) -libsane_artec_eplus48u_la_LIBADD = $(COMMON_LIBS) libartec_eplus48u.la ../sanei/sanei_init_debug.lo ../sanei/sanei_constrain_value.lo ../sanei/sanei_config.lo sane_strstatus.lo ../sanei/sanei_usb.lo ../sanei/sanei_thread.lo $(MATH_LIB) $(USB_LIBS) $(PTHREAD_LIBS) $(RESMEG_LIBS) +libsane_artec_eplus48u_la_LIBADD = $(COMMON_LIBS) libartec_eplus48u.la ../sanei/sanei_init_debug.lo ../sanei/sanei_constrain_value.lo ../sanei/sanei_config.lo sane_strstatus.lo ../sanei/sanei_usb.lo ../sanei/sanei_thread.lo $(MATH_LIB) $(USB_LIBS) $(SANEI_THREAD_LIBS) $(RESMEG_LIBS) EXTRA_DIST += artec_eplus48u.conf.in libas6e_la_SOURCES = as6e.c as6e.h @@ -304,7 +304,7 @@ libavision_la_CPPFLAGS = $(AM_CPPFLAGS) -DBACKEND_NAME=avision nodist_libsane_avision_la_SOURCES = avision-s.c libsane_avision_la_CPPFLAGS = $(AM_CPPFLAGS) -DBACKEND_NAME=avision libsane_avision_la_LDFLAGS = $(DIST_SANELIBS_LDFLAGS) -libsane_avision_la_LIBADD = $(COMMON_LIBS) libavision.la ../sanei/sanei_init_debug.lo ../sanei/sanei_constrain_value.lo ../sanei/sanei_config.lo ../sanei/sanei_config2.lo sane_strstatus.lo ../sanei/sanei_usb.lo ../sanei/sanei_thread.lo ../sanei/sanei_scsi.lo $(MATH_LIB) $(SCSI_LIBS) $(USB_LIBS) $(PTHREAD_LIBS) $(RESMGR_LIBS) +libsane_avision_la_LIBADD = $(COMMON_LIBS) libavision.la ../sanei/sanei_init_debug.lo ../sanei/sanei_constrain_value.lo ../sanei/sanei_config.lo ../sanei/sanei_config2.lo sane_strstatus.lo ../sanei/sanei_usb.lo ../sanei/sanei_thread.lo ../sanei/sanei_scsi.lo $(MATH_LIB) $(SCSI_LIBS) $(USB_LIBS) $(SANEI_THREAD_LIBS) $(RESMGR_LIBS) EXTRA_DIST += avision.conf.in libbh_la_SOURCES = bh.c bh.h @@ -382,7 +382,7 @@ libcoolscan_la_CPPFLAGS = $(AM_CPPFLAGS) -DBACKEND_NAME=coolscan nodist_libsane_coolscan_la_SOURCES = coolscan-s.c libsane_coolscan_la_CPPFLAGS = $(AM_CPPFLAGS) -DBACKEND_NAME=coolscan libsane_coolscan_la_LDFLAGS = $(DIST_SANELIBS_LDFLAGS) -libsane_coolscan_la_LIBADD = $(COMMON_LIBS) libcoolscan.la ../sanei/sanei_init_debug.lo ../sanei/sanei_constrain_value.lo ../sanei/sanei_config.lo ../sanei/sanei_config2.lo sane_strstatus.lo ../sanei/sanei_thread.lo ../sanei/sanei_usb.lo ../sanei/sanei_scsi.lo $(MATH_LIB) $(SCSI_LIBS) $(USB_LIBS) $(PTHREAD_LIBS) $(RESMGR_LIBS) +libsane_coolscan_la_LIBADD = $(COMMON_LIBS) libcoolscan.la ../sanei/sanei_init_debug.lo ../sanei/sanei_constrain_value.lo ../sanei/sanei_config.lo ../sanei/sanei_config2.lo sane_strstatus.lo ../sanei/sanei_thread.lo ../sanei/sanei_usb.lo ../sanei/sanei_scsi.lo $(MATH_LIB) $(SCSI_LIBS) $(USB_LIBS) $(SANEI_THREAD_LIBS) $(RESMGR_LIBS) EXTRA_DIST += coolscan.conf.in libcoolscan2_la_SOURCES = coolscan2.c @@ -451,13 +451,13 @@ EXTRA_DIST += dmc.conf.in if have_libavahi if have_libcurl if have_libxml2 -libescl_la_SOURCES = escl/escl.c escl/escl_capabilities.c escl/escl_devices.c escl/escl.h escl/escl_newjob.c escl/escl_reset.c escl/escl_scan.c escl/escl_status.c -libescl_la_CPPFLAGS = $(AM_CPPFLAGS) $(JPEG_CFLAGS) $(XML_CFLAGS) $(libcurl_CFLAGS) $(AVAHI_CFLAGS) -DBACKEND_NAME=escl +libescl_la_SOURCES = escl/escl.c escl/escl_capabilities.c escl/escl_devices.c escl/escl.h escl/escl_newjob.c escl/escl_reset.c escl/escl_scan.c escl/escl_status.c escl/escl_jpeg.c escl/escl_png.c escl/escl_tiff.c escl/escl_crop.c +libescl_la_CPPFLAGS = $(AM_CPPFLAGS) $(JPEG_CFLAGS) $(PNG_CFLAGS) $(TIFF_CFLAGS) $(XML_CFLAGS) $(libcurl_CFLAGS) $(AVAHI_CFLAGS) -DBACKEND_NAME=escl nodist_libsane_escl_la_SOURCES = escl-s.c -libsane_escl_la_CPPFLAGS = $(AM_CPPFLAGS) $(JPEG_CFLAGS) $(XML_CFLAGS) $(libcurl_CFLAGS) $(AVAHI_CFLAGS) -DBACKEND_NAME=escl +libsane_escl_la_CPPFLAGS = $(AM_CPPFLAGS) $(JPEG_CFLAGS) $(PNG_CFLAGS) $(TIFF_CFLAGS) $(XML_CFLAGS) $(libcurl_CFLAGS) $(AVAHI_CFLAGS) -DBACKEND_NAME=escl libsane_escl_la_LDFLAGS = $(DIST_SANELIBS_LDFLAGS) -libsane_escl_la_LIBADD = $(COMMON_LIBS) libescl.la ../sanei/sanei_init_debug.lo ../sanei/sanei_constrain_value.lo ../sanei/sanei_config.lo sane_strstatus.lo $(JPEG_LIBS) $(XML_LIBS) $(libcurl_LIBS) $(AVAHI_LIBS) +libsane_escl_la_LIBADD = $(COMMON_LIBS) libescl.la ../sanei/sanei_init_debug.lo ../sanei/sanei_constrain_value.lo ../sanei/sanei_config.lo sane_strstatus.lo $(MATH_LIB) $(JPEG_LIBS) $(PNG_LIBS) $(TIFF_LIBS) $(XML_LIBS) $(libcurl_LIBS) $(AVAHI_LIBS) endif endif endif @@ -518,6 +518,7 @@ libgenesys_la_SOURCES = genesys/genesys.cpp genesys/genesys.h \ genesys/buffer.h genesys/buffer.cpp \ genesys/calibration.h \ genesys/command_set.h \ + genesys/command_set_common.h genesys/command_set_common.cpp \ genesys/conv.h genesys/conv.cpp \ genesys/device.h genesys/device.cpp \ genesys/enums.h genesys/enums.cpp \ @@ -548,7 +549,6 @@ libgenesys_la_SOURCES = genesys/genesys.cpp genesys/genesys.h \ genesys/tables_gpo.cpp \ genesys/tables_model.cpp \ genesys/tables_motor.cpp \ - genesys/tables_motor_profile.cpp \ genesys/tables_sensor.cpp \ genesys/test_scanner_interface.h genesys/test_scanner_interface.cpp \ genesys/test_settings.h genesys/test_settings.cpp \ @@ -591,7 +591,7 @@ libhp_la_CPPFLAGS = $(AM_CPPFLAGS) -DBACKEND_NAME=hp nodist_libsane_hp_la_SOURCES = hp-s.c libsane_hp_la_CPPFLAGS = $(AM_CPPFLAGS) -DBACKEND_NAME=hp libsane_hp_la_LDFLAGS = $(DIST_SANELIBS_LDFLAGS) -libsane_hp_la_LIBADD = $(COMMON_LIBS) libhp.la ../sanei/sanei_init_debug.lo ../sanei/sanei_constrain_value.lo ../sanei/sanei_config.lo ../sanei/sanei_config2.lo sane_strstatus.lo ../sanei/sanei_usb.lo ../sanei/sanei_scsi.lo ../sanei/sanei_pio.lo ../sanei/sanei_thread.lo $(SCSI_LIBS) $(USB_LIBS) $(PTHREAD_LIBS) $(RESMGR_LIBS) +libsane_hp_la_LIBADD = $(COMMON_LIBS) libhp.la ../sanei/sanei_init_debug.lo ../sanei/sanei_constrain_value.lo ../sanei/sanei_config.lo ../sanei/sanei_config2.lo sane_strstatus.lo ../sanei/sanei_usb.lo ../sanei/sanei_scsi.lo ../sanei/sanei_pio.lo ../sanei/sanei_thread.lo $(SCSI_LIBS) $(USB_LIBS) $(SANEI_THREAD_LIBS) $(RESMGR_LIBS) EXTRA_DIST += hp.conf.in # TODO: These should be moved to ../docs/hp; don't belong here. EXTRA_DIST += hp.README hp.TODO @@ -602,7 +602,7 @@ libhp3500_la_CPPFLAGS = $(AM_CPPFLAGS) -DBACKEND_NAME=hp3500 nodist_libsane_hp3500_la_SOURCES = hp3500-s.c libsane_hp3500_la_CPPFLAGS = $(AM_CPPFLAGS) -DBACKEND_NAME=hp3500 libsane_hp3500_la_LDFLAGS = $(DIST_SANELIBS_LDFLAGS) -libsane_hp3500_la_LIBADD = $(COMMON_LIBS) libhp3500.la ../sanei/sanei_init_debug.lo ../sanei/sanei_constrain_value.lo ../sanei/sanei_config.lo sane_strstatus.lo ../sanei/sanei_usb.lo ../sanei/sanei_thread.lo $(MATH_LIB) $(USB_LIBS) $(PTHREAD_LIBS) $(RESMGR_LIBS) +libsane_hp3500_la_LIBADD = $(COMMON_LIBS) libhp3500.la ../sanei/sanei_init_debug.lo ../sanei/sanei_constrain_value.lo ../sanei/sanei_config.lo sane_strstatus.lo ../sanei/sanei_usb.lo ../sanei/sanei_thread.lo $(MATH_LIB) $(USB_LIBS) $(SANEI_THREAD_LIBS) $(RESMGR_LIBS) libhp3900_la_SOURCES = hp3900.c libhp3900_la_CPPFLAGS = $(AM_CPPFLAGS) -DBACKEND_NAME=hp3900 @@ -794,7 +794,7 @@ libmicrotek2_la_CPPFLAGS = $(AM_CPPFLAGS) -DBACKEND_NAME=microtek2 nodist_libsane_microtek2_la_SOURCES = microtek2-s.c libsane_microtek2_la_CPPFLAGS = $(AM_CPPFLAGS) -DBACKEND_NAME=microtek2 libsane_microtek2_la_LDFLAGS = $(DIST_SANELIBS_LDFLAGS) -libsane_microtek2_la_LIBADD = $(COMMON_LIBS) libmicrotek2.la ../sanei/sanei_init_debug.lo ../sanei/sanei_constrain_value.lo ../sanei/sanei_config.lo ../sanei/sanei_config2.lo sane_strstatus.lo ../sanei/sanei_scsi.lo ../sanei/sanei_thread.lo $(MATH_LIB) $(SCSI_LIBS) $(PTHREAD_LIBS) $(RESMGR_LIBS) +libsane_microtek2_la_LIBADD = $(COMMON_LIBS) libmicrotek2.la ../sanei/sanei_init_debug.lo ../sanei/sanei_constrain_value.lo ../sanei/sanei_config.lo ../sanei/sanei_config2.lo sane_strstatus.lo ../sanei/sanei_scsi.lo ../sanei/sanei_thread.lo $(MATH_LIB) $(SCSI_LIBS) $(SANEI_THREAD_LIBS) $(RESMGR_LIBS) EXTRA_DIST += microtek2.conf.in libmustek_la_SOURCES = mustek.c mustek.h @@ -803,7 +803,7 @@ libmustek_la_CPPFLAGS = $(AM_CPPFLAGS) -DBACKEND_NAME=mustek nodist_libsane_mustek_la_SOURCES = mustek-s.c libsane_mustek_la_CPPFLAGS = $(AM_CPPFLAGS) -DBACKEND_NAME=mustek libsane_mustek_la_LDFLAGS = $(DIST_SANELIBS_LDFLAGS) -libsane_mustek_la_LIBADD = $(COMMON_LIBS) libmustek.la ../sanei/sanei_init_debug.lo ../sanei/sanei_constrain_value.lo ../sanei/sanei_config.lo ../sanei/sanei_config2.lo sane_strstatus.lo ../sanei/sanei_scsi.lo ../sanei/sanei_thread.lo ../sanei/sanei_ab306.lo ../sanei/sanei_pa4s2.lo $(IEEE1284_LIBS) $(SCSI_LIBS) $(PTHREAD_LIBS) $(RESMGR_LIBS) +libsane_mustek_la_LIBADD = $(COMMON_LIBS) libmustek.la ../sanei/sanei_init_debug.lo ../sanei/sanei_constrain_value.lo ../sanei/sanei_config.lo ../sanei/sanei_config2.lo sane_strstatus.lo ../sanei/sanei_scsi.lo ../sanei/sanei_thread.lo ../sanei/sanei_ab306.lo ../sanei/sanei_pa4s2.lo $(IEEE1284_LIBS) $(SCSI_LIBS) $(SANEI_THREAD_LIBS) $(RESMGR_LIBS) EXTRA_DIST += mustek.conf.in # TODO: Why are these distributed but not compiled? EXTRA_DIST += mustek_scsi_pp.c mustek_scsi_pp.h @@ -836,7 +836,7 @@ libmustek_usb2_la_CPPFLAGS = $(AM_CPPFLAGS) -DBACKEND_NAME=mustek_usb2 nodist_libsane_mustek_usb2_la_SOURCES = mustek_usb2-s.c libsane_mustek_usb2_la_CPPFLAGS = $(AM_CPPFLAGS) -DBACKEND_NAME=mustek_usb2 libsane_mustek_usb2_la_LDFLAGS = $(DIST_SANELIBS_LDFLAGS) -libsane_mustek_usb2_la_LIBADD = $(COMMON_LIBS) libmustek_usb2.la ../sanei/sanei_init_debug.lo ../sanei/sanei_constrain_value.lo ../sanei/sanei_config.lo sane_strstatus.lo ../sanei/sanei_usb.lo ../sanei/sanei_thread.lo $(MATH_LIB) $(PTHREAD_LIBS) $(USB_LIBS) $(PTHREAD_LIBS) $(RESMGR_LIBS) +libsane_mustek_usb2_la_LIBADD = $(COMMON_LIBS) libmustek_usb2.la ../sanei/sanei_init_debug.lo ../sanei/sanei_constrain_value.lo ../sanei/sanei_config.lo sane_strstatus.lo ../sanei/sanei_usb.lo $(MATH_LIB) $(PTHREAD_LIBS) $(USB_LIBS) $(RESMGR_LIBS) # TODO: Why are these distributed but not compiled? EXTRA_DIST += mustek_usb2_asic.c mustek_usb2_asic.h mustek_usb2_high.c mustek_usb2_high.h mustek_usb2_reflective.c mustek_usb2_transparent.c @@ -874,7 +874,7 @@ libpie_la_CPPFLAGS = $(AM_CPPFLAGS) -DBACKEND_NAME=pie nodist_libsane_pie_la_SOURCES = pie-s.c libsane_pie_la_CPPFLAGS = $(AM_CPPFLAGS) -DBACKEND_NAME=pie libsane_pie_la_LDFLAGS = $(DIST_SANELIBS_LDFLAGS) -libsane_pie_la_LIBADD = $(COMMON_LIBS) libpie.la ../sanei/sanei_init_debug.lo ../sanei/sanei_constrain_value.lo ../sanei/sanei_config.lo ../sanei/sanei_config2.lo sane_strstatus.lo ../sanei/sanei_scsi.lo ../sanei/sanei_thread.lo $(SCSI_LIBS) $(PTHREAD_LIBS) $(RESMGR_LIBS) +libsane_pie_la_LIBADD = $(COMMON_LIBS) libpie.la ../sanei/sanei_init_debug.lo ../sanei/sanei_constrain_value.lo ../sanei/sanei_config.lo ../sanei/sanei_config2.lo sane_strstatus.lo ../sanei/sanei_scsi.lo ../sanei/sanei_thread.lo $(SCSI_LIBS) $(SANEI_THREAD_LIBS) $(RESMGR_LIBS) EXTRA_DIST += pie.conf.in libpieusb_la_SOURCES = pieusb.h pieusb_buffer.c pieusb_buffer.h pieusb_scancmd.c pieusb_scancmd.h pieusb_specific.c pieusb_specific.h pieusb_usb.c pieusb_usb.h pieusb.c @@ -883,7 +883,7 @@ libpieusb_la_CPPFLAGS = $(AM_CPPFLAGS) -DBACKEND_NAME=pieusb nodist_libsane_pieusb_la_SOURCES = pieusb-s.c libsane_pieusb_la_CPPFLAGS = $(AM_CPPFLAGS) -DBACKEND_NAME=pieusb libsane_pieusb_la_LDFLAGS = $(DIST_SANELIBS_LDFLAGS) -libsane_pieusb_la_LIBADD = $(COMMON_LIBS) libpieusb.la ../sanei/sanei_init_debug.lo ../sanei/sanei_constrain_value.lo ../sanei/sanei_config.lo ../sanei/sanei_config2.lo sane_strstatus.lo ../sanei/sanei_scsi.lo ../sanei/sanei_thread.lo ../sanei/sanei_usb.lo ../sanei/sanei_ir.lo ../sanei/sanei_magic.lo $(PTHREAD_LIBS) $(RESMGR_LIBS) $(USB_LIBS) $(MATH_LIB) +libsane_pieusb_la_LIBADD = $(COMMON_LIBS) libpieusb.la ../sanei/sanei_init_debug.lo ../sanei/sanei_constrain_value.lo ../sanei/sanei_config.lo ../sanei/sanei_config2.lo sane_strstatus.lo ../sanei/sanei_scsi.lo ../sanei/sanei_thread.lo ../sanei/sanei_usb.lo ../sanei/sanei_ir.lo ../sanei/sanei_magic.lo $(SANEI_THREAD_LIBS) $(RESMGR_LIBS) $(USB_LIBS) $(MATH_LIB) EXTRA_DIST += pieusb.conf.in libp5_la_SOURCES = p5.c p5.h p5_device.h @@ -903,16 +903,30 @@ libsane_pint_la_CPPFLAGS = $(AM_CPPFLAGS) -DBACKEND_NAME=pint libsane_pint_la_LDFLAGS = $(DIST_SANELIBS_LDFLAGS) libsane_pint_la_LIBADD = $(COMMON_LIBS) libpint.la ../sanei/sanei_init_debug.lo ../sanei/sanei_constrain_value.lo ../sanei/sanei_config.lo sane_strstatus.lo -libpixma_la_SOURCES = pixma.c pixma.h pixma_io_sanei.c pixma_io.h pixma_common.c pixma_common.h pixma_mp150.c pixma_mp730.c pixma_mp750.c pixma_mp800.c pixma_imageclass.c pixma_bjnp.c pixma_bjnp.h pixma_bjnp_private.h pixma_rename.h +libpixma_la_SOURCES = pixma/pixma.c \ + pixma/pixma.h \ + pixma/pixma_io_sanei.c \ + pixma/pixma_io.h \ + pixma/pixma_common.c \ + pixma/pixma_common.h \ + pixma/pixma_mp150.c \ + pixma/pixma_mp730.c \ + pixma/pixma_mp750.c \ + pixma/pixma_mp800.c \ + pixma/pixma_imageclass.c \ + pixma/pixma_bjnp.c \ + pixma/pixma_bjnp.h \ + pixma/pixma_bjnp_private.h \ + pixma/pixma_rename.h libpixma_la_CPPFLAGS = $(AM_CPPFLAGS) -DBACKEND_NAME=pixma nodist_libsane_pixma_la_SOURCES = pixma-s.c libsane_pixma_la_CPPFLAGS = $(AM_CPPFLAGS) -DBACKEND_NAME=pixma libsane_pixma_la_LDFLAGS = $(DIST_SANELIBS_LDFLAGS) -libsane_pixma_la_LIBADD = $(COMMON_LIBS) libpixma.la ../sanei/sanei_init_debug.lo ../sanei/sanei_constrain_value.lo ../sanei/sanei_config.lo sane_strstatus.lo ../sanei/sanei_usb.lo ../sanei/sanei_thread.lo $(SANEI_SANEI_JPEG_LO) $(JPEG_LIBS) $(MATH_LIB) $(SOCKET_LIBS) $(USB_LIBS) $(PTHREAD_LIBS) $(RESMGR_LIBS) +libsane_pixma_la_LIBADD = $(COMMON_LIBS) libpixma.la ../sanei/sanei_init_debug.lo ../sanei/sanei_constrain_value.lo ../sanei/sanei_config.lo sane_strstatus.lo ../sanei/sanei_usb.lo ../sanei/sanei_thread.lo $(SANEI_SANEI_JPEG_LO) $(JPEG_LIBS) $(MATH_LIB) $(SOCKET_LIBS) $(USB_LIBS) $(SANEI_THREAD_LIBS) $(RESMGR_LIBS) EXTRA_DIST += pixma.conf.in -# TODO: Why are these distributed but not compiled? -EXTRA_DIST += pixma_sane_options.c pixma_sane_options.h +# included in pixma.c +EXTRA_DIST += pixma/pixma_sane_options.c pixma/pixma_sane_options.h libplustek_la_SOURCES = plustek.c plustek.h libplustek_la_CPPFLAGS = $(AM_CPPFLAGS) -DBACKEND_NAME=plustek @@ -920,7 +934,7 @@ libplustek_la_CPPFLAGS = $(AM_CPPFLAGS) -DBACKEND_NAME=plustek nodist_libsane_plustek_la_SOURCES = plustek-s.c libsane_plustek_la_CPPFLAGS = $(AM_CPPFLAGS) -DBACKEND_NAME=plustek libsane_plustek_la_LDFLAGS = $(DIST_SANELIBS_LDFLAGS) -libsane_plustek_la_LIBADD = $(COMMON_LIBS) libplustek.la ../sanei/sanei_init_debug.lo ../sanei/sanei_constrain_value.lo ../sanei/sanei_config.lo sane_strstatus.lo ../sanei/sanei_usb.lo ../sanei/sanei_thread.lo ../sanei/sanei_lm983x.lo ../sanei/sanei_access.lo $(MATH_LIB) $(USB_LIBS) $(PTHREAD_LIBS) $(RESMGR_LIBS) +libsane_plustek_la_LIBADD = $(COMMON_LIBS) libplustek.la ../sanei/sanei_init_debug.lo ../sanei/sanei_constrain_value.lo ../sanei/sanei_config.lo sane_strstatus.lo ../sanei/sanei_usb.lo ../sanei/sanei_thread.lo ../sanei/sanei_lm983x.lo ../sanei/sanei_access.lo $(MATH_LIB) $(USB_LIBS) $(SANEI_THREAD_LIBS) $(RESMGR_LIBS) EXTRA_DIST += plustek.conf.in EXTRA_DIST += plustek-usb.c plustek-usb.h plustek-usbcal.c plustek-usbcalfile.c plustek-usbdevs.c plustek-usbhw.c plustek-usbimg.c plustek-usbio.c plustek-usbmap.c plustek-usbscan.c plustek-usbshading.c @@ -930,7 +944,7 @@ libplustek_pp_la_CPPFLAGS = $(AM_CPPFLAGS) -DBACKEND_NAME=plustek_pp nodist_libsane_plustek_pp_la_SOURCES = plustek_pp-s.c libsane_plustek_pp_la_CPPFLAGS = $(AM_CPPFLAGS) -DBACKEND_NAME=plustek_pp libsane_plustek_pp_la_LDFLAGS = $(DIST_SANELIBS_LDFLAGS) -libsane_plustek_pp_la_LIBADD = $(COMMON_LIBS) libplustek_pp.la ../sanei/sanei_init_debug.lo ../sanei/sanei_constrain_value.lo ../sanei/sanei_config.lo sane_strstatus.lo ../sanei/sanei_pp.lo ../sanei/sanei_thread.lo $(MATH_LIB) $(IEEE1284_LIBS) $(PTHREAD_LIBS) +libsane_plustek_pp_la_LIBADD = $(COMMON_LIBS) libplustek_pp.la ../sanei/sanei_init_debug.lo ../sanei/sanei_constrain_value.lo ../sanei/sanei_config.lo sane_strstatus.lo ../sanei/sanei_pp.lo ../sanei/sanei_thread.lo $(MATH_LIB) $(IEEE1284_LIBS) $(SANEI_THREAD_LIBS) EXTRA_DIST += plustek_pp.conf.in # TODO: Why are these distributed but not compiled? EXTRA_DIST += plustek-pp_dac.c plustek-pp_dbg.h plustek-pp_detect.c plustek-pp_genericio.c plustek-pp_hwdefs.h plustek-pp_image.c plustek-pp_io.c plustek-pp_map.c plustek-pp_misc.c plustek-pp_models.c plustek-pp_motor.c plustek-pp_p12.c plustek-pp_p12ccd.c plustek-pp_p48xx.c plustek-pp_p9636.c plustek-pp_procfs.c plustek-pp_procs.h plustek-pp_ptdrv.c plustek-pp_scale.c plustek-pp_scan.h plustek-pp_scandata.h plustek-pp_sysdep.h plustek-pp_tpa.c plustek-pp_types.h plustek-pp_wrapper.c @@ -1037,7 +1051,7 @@ libsnapscan_la_CPPFLAGS = $(AM_CPPFLAGS) -DBACKEND_NAME=snapscan nodist_libsane_snapscan_la_SOURCES = snapscan-s.c libsane_snapscan_la_CPPFLAGS = $(AM_CPPFLAGS) -DBACKEND_NAME=snapscan libsane_snapscan_la_LDFLAGS = $(DIST_SANELIBS_LDFLAGS) -libsane_snapscan_la_LIBADD = $(COMMON_LIBS) libsnapscan.la ../sanei/sanei_init_debug.lo ../sanei/sanei_constrain_value.lo ../sanei/sanei_config.lo ../sanei/sanei_config2.lo sane_strstatus.lo ../sanei/sanei_usb.lo ../sanei/sanei_thread.lo ../sanei/sanei_scsi.lo $(MATH_LIB) $(SCSI_LIBS) $(USB_LIBS) $(PTHREAD_LIBS) $(RESMGR_LIBS) +libsane_snapscan_la_LIBADD = $(COMMON_LIBS) libsnapscan.la ../sanei/sanei_init_debug.lo ../sanei/sanei_constrain_value.lo ../sanei/sanei_config.lo ../sanei/sanei_config2.lo sane_strstatus.lo ../sanei/sanei_usb.lo ../sanei/sanei_thread.lo ../sanei/sanei_scsi.lo $(MATH_LIB) $(SCSI_LIBS) $(USB_LIBS) $(SANEI_THREAD_LIBS) $(RESMGR_LIBS) EXTRA_DIST += snapscan.conf.in # TODO: Why are these distributed but not compiled? EXTRA_DIST += snapscan-data.c snapscan-mutex.c snapscan-options.c snapscan-scsi.c snapscan-sources.c snapscan-sources.h snapscan-usb.c snapscan-usb.h @@ -1048,7 +1062,7 @@ libsp15c_la_CPPFLAGS = $(AM_CPPFLAGS) -DBACKEND_NAME=sp15c nodist_libsane_sp15c_la_SOURCES = sp15c-s.c libsane_sp15c_la_CPPFLAGS = $(AM_CPPFLAGS) -DBACKEND_NAME=sp15c libsane_sp15c_la_LDFLAGS = $(DIST_SANELIBS_LDFLAGS) -libsane_sp15c_la_LIBADD = $(COMMON_LIBS) libsp15c.la ../sanei/sanei_init_debug.lo ../sanei/sanei_constrain_value.lo ../sanei/sanei_config.lo ../sanei/sanei_config2.lo sane_strstatus.lo ../sanei/sanei_thread.lo ../sanei/sanei_scsi.lo $(SCSI_LIBS) $(PTHREAD_LIBS) $(RESMGR_LIBS) +libsane_sp15c_la_LIBADD = $(COMMON_LIBS) libsp15c.la ../sanei/sanei_init_debug.lo ../sanei/sanei_constrain_value.lo ../sanei/sanei_config.lo ../sanei/sanei_config2.lo sane_strstatus.lo ../sanei/sanei_thread.lo ../sanei/sanei_scsi.lo $(SCSI_LIBS) $(SANEI_THREAD_LIBS) $(RESMGR_LIBS) EXTRA_DIST += sp15c.conf.in libst400_la_SOURCES = st400.c st400.h @@ -1075,7 +1089,7 @@ libtamarack_la_CPPFLAGS = $(AM_CPPFLAGS) -DBACKEND_NAME=tamarack nodist_libsane_tamarack_la_SOURCES = tamarack-s.c libsane_tamarack_la_CPPFLAGS = $(AM_CPPFLAGS) -DBACKEND_NAME=tamarack libsane_tamarack_la_LDFLAGS = $(DIST_SANELIBS_LDFLAGS) -libsane_tamarack_la_LIBADD = $(COMMON_LIBS) libtamarack.la ../sanei/sanei_init_debug.lo ../sanei/sanei_constrain_value.lo ../sanei/sanei_config.lo ../sanei/sanei_config2.lo sane_strstatus.lo ../sanei/sanei_thread.lo ../sanei/sanei_scsi.lo $(SCSI_LIBS) $(PTHREAD_LIBS) $(RESMGR_LIBS) +libsane_tamarack_la_LIBADD = $(COMMON_LIBS) libtamarack.la ../sanei/sanei_init_debug.lo ../sanei/sanei_constrain_value.lo ../sanei/sanei_config.lo ../sanei/sanei_config2.lo sane_strstatus.lo ../sanei/sanei_thread.lo ../sanei/sanei_scsi.lo $(SCSI_LIBS) $(SANEI_THREAD_LIBS) $(RESMGR_LIBS) EXTRA_DIST += tamarack.conf.in libtest_la_SOURCES = test.c test.h @@ -1084,7 +1098,7 @@ libtest_la_CPPFLAGS = $(AM_CPPFLAGS) -DBACKEND_NAME=test nodist_libsane_test_la_SOURCES = test-s.c libsane_test_la_CPPFLAGS = $(AM_CPPFLAGS) -DBACKEND_NAME=test libsane_test_la_LDFLAGS = $(DIST_SANELIBS_LDFLAGS) -libsane_test_la_LIBADD = $(COMMON_LIBS) libtest.la ../sanei/sanei_init_debug.lo ../sanei/sanei_constrain_value.lo ../sanei/sanei_config.lo sane_strstatus.lo ../sanei/sanei_thread.lo $(PTHREAD_LIBS) +libsane_test_la_LIBADD = $(COMMON_LIBS) libtest.la ../sanei/sanei_init_debug.lo ../sanei/sanei_constrain_value.lo ../sanei/sanei_config.lo sane_strstatus.lo ../sanei/sanei_thread.lo $(SANEI_THREAD_LIBS) EXTRA_DIST += test.conf.in # TODO: Why are these distributed but not compiled? EXTRA_DIST += test-picture.c @@ -1122,7 +1136,7 @@ libu12_la_CPPFLAGS = $(AM_CPPFLAGS) -DBACKEND_NAME=u12 nodist_libsane_u12_la_SOURCES = u12-s.c libsane_u12_la_CPPFLAGS = $(AM_CPPFLAGS) -DBACKEND_NAME=u12 libsane_u12_la_LDFLAGS = $(DIST_SANELIBS_LDFLAGS) -libsane_u12_la_LIBADD = $(COMMON_LIBS) libu12.la ../sanei/sanei_init_debug.lo ../sanei/sanei_constrain_value.lo ../sanei/sanei_config.lo sane_strstatus.lo ../sanei/sanei_usb.lo ../sanei/sanei_thread.lo $(MATH_LIB) $(USB_LIBS) $(PTHREAD_LIBS) $(RESMGR_LIBS) +libsane_u12_la_LIBADD = $(COMMON_LIBS) libu12.la ../sanei/sanei_init_debug.lo ../sanei/sanei_constrain_value.lo ../sanei/sanei_config.lo sane_strstatus.lo ../sanei/sanei_usb.lo ../sanei/sanei_thread.lo $(MATH_LIB) $(USB_LIBS) $(SANEI_THREAD_LIBS) $(RESMGR_LIBS) EXTRA_DIST += u12.conf.in # TODO: Why are these distributed but not compiled? EXTRA_DIST += u12-ccd.c u12-hw.c u12-hwdef.h u12-if.c u12-image.c u12-io.c u12-map.c u12-motor.c u12-scanner.h u12-shading.c u12-tpa.c @@ -1133,7 +1147,7 @@ libumax_la_CPPFLAGS = $(AM_CPPFLAGS) -DBACKEND_NAME=umax nodist_libsane_umax_la_SOURCES = umax-s.c libsane_umax_la_CPPFLAGS = $(AM_CPPFLAGS) -DBACKEND_NAME=umax libsane_umax_la_LDFLAGS = $(DIST_SANELIBS_LDFLAGS) -libsane_umax_la_LIBADD = $(COMMON_LIBS) libumax.la ../sanei/sanei_init_debug.lo ../sanei/sanei_constrain_value.lo ../sanei/sanei_config.lo ../sanei/sanei_config2.lo sane_strstatus.lo ../sanei/sanei_usb.lo ../sanei/sanei_thread.lo ../sanei/sanei_scsi.lo ../sanei/sanei_pv8630.lo $(MATH_LIB) $(SCSI_LIBS) $(USB_LIBS) $(PTHREAD_LIBS) $(RESMGR_LIBS) +libsane_umax_la_LIBADD = $(COMMON_LIBS) libumax.la ../sanei/sanei_init_debug.lo ../sanei/sanei_constrain_value.lo ../sanei/sanei_config.lo ../sanei/sanei_config2.lo sane_strstatus.lo ../sanei/sanei_usb.lo ../sanei/sanei_thread.lo ../sanei/sanei_scsi.lo ../sanei/sanei_pv8630.lo $(MATH_LIB) $(SCSI_LIBS) $(USB_LIBS) $(SANEI_THREAD_LIBS) $(RESMGR_LIBS) EXTRA_DIST += umax.conf.in # TODO: Why are these distributed but not compiled? EXTRA_DIST += umax-scanner.c umax-scanner.h umax-scsidef.h umax-uc1200s.c umax-uc1200se.c umax-uc1260.c umax-uc630.c umax-uc840.c umax-ug630.c umax-ug80.c umax-usb.c @@ -1212,7 +1226,7 @@ EXTRA_DIST += dll.aliases # what backends are preloaded. It should include what is needed by # those backends that are actually preloaded. if preloadable_backends_enabled -PRELOADABLE_BACKENDS_LIBS = ../sanei/sanei_config2.lo ../sanei/sanei_usb.lo ../sanei/sanei_scsi.lo ../sanei/sanei_pv8630.lo ../sanei/sanei_pp.lo ../sanei/sanei_thread.lo ../sanei/sanei_lm983x.lo ../sanei/sanei_access.lo ../sanei/sanei_net.lo ../sanei/sanei_wire.lo ../sanei/sanei_codec_bin.lo ../sanei/sanei_pa4s2.lo ../sanei/sanei_ab306.lo ../sanei/sanei_pio.lo ../sanei/sanei_tcp.lo ../sanei/sanei_udp.lo ../sanei/sanei_magic.lo $(LIBV4L_LIBS) $(MATH_LIB) $(IEEE1284_LIBS) $(TIFF_LIBS) $(JPEG_LIBS) $(GPHOTO2_LIBS) $(SOCKET_LIBS) $(USB_LIBS) $(AVAHI_LIBS) $(SCSI_LIBS) $(PTHREAD_LIBS) $(RESMGR_LIBS) $(XML_LIBS) +PRELOADABLE_BACKENDS_LIBS = ../sanei/sanei_config2.lo ../sanei/sanei_usb.lo ../sanei/sanei_scsi.lo ../sanei/sanei_pv8630.lo ../sanei/sanei_pp.lo ../sanei/sanei_thread.lo ../sanei/sanei_lm983x.lo ../sanei/sanei_access.lo ../sanei/sanei_net.lo ../sanei/sanei_wire.lo ../sanei/sanei_codec_bin.lo ../sanei/sanei_pa4s2.lo ../sanei/sanei_ab306.lo ../sanei/sanei_pio.lo ../sanei/sanei_tcp.lo ../sanei/sanei_udp.lo ../sanei/sanei_magic.lo $(LIBV4L_LIBS) $(MATH_LIB) $(IEEE1284_LIBS) $(TIFF_LIBS) $(JPEG_LIBS) $(GPHOTO2_LIBS) $(SOCKET_LIBS) $(USB_LIBS) $(AVAHI_LIBS) $(SCSI_LIBS) $(SANEI_THREAD_LIBS) $(RESMGR_LIBS) $(XML_LIBS) PRELOADABLE_BACKENDS_DEPS = ../sanei/sanei_config2.lo ../sanei/sanei_usb.lo ../sanei/sanei_scsi.lo ../sanei/sanei_pv8630.lo ../sanei/sanei_pp.lo ../sanei/sanei_thread.lo ../sanei/sanei_lm983x.lo ../sanei/sanei_access.lo ../sanei/sanei_net.lo ../sanei/sanei_wire.lo ../sanei/sanei_codec_bin.lo ../sanei/sanei_pa4s2.lo ../sanei/sanei_ab306.lo ../sanei/sanei_pio.lo ../sanei/sanei_tcp.lo ../sanei/sanei_udp.lo ../sanei/sanei_magic.lo $(SANEI_SANEI_JPEG_LO) endif nodist_libsane_la_SOURCES = dll-s.c @@ -1221,4 +1235,4 @@ libsane_la_LDFLAGS = $(DIST_LIBS_LDFLAGS) libsane_la_LIBADD = $(COMMON_LIBS) $(PRELOADABLE_BACKENDS_ENABLED) libdll_preload.la sane_strstatus.lo ../sanei/sanei_init_debug.lo ../sanei/sanei_constrain_value.lo ../sanei/sanei_config.lo $(PRELOADABLE_BACKENDS_LIBS) $(DL_LIBS) $(XML_LIBS) # WARNING: Automake is getting this wrong so have to do it ourselves. -libsane_la_DEPENDENCIES = $(COMMON_LIBS) $(PRELOADABLE_BACKENDS_ENABLED) libdll_preload.la sane_strstatus.lo ../sanei/sanei_init_debug.lo ../sanei/sanei_constrain_value.lo ../sanei/sanei_config.lo $(PRELOADABLE_BACKENDS_DEPS) +libsane_la_DEPENDENCIES = ../lib/liblib.la $(PRELOADABLE_BACKENDS_ENABLED) libdll_preload.la sane_strstatus.lo ../sanei/sanei_init_debug.lo ../sanei/sanei_constrain_value.lo ../sanei/sanei_config.lo $(PRELOADABLE_BACKENDS_DEPS) diff --git a/backend/avision.c b/backend/avision.c index 55b5f4f1e..aa08119a5 100644 --- a/backend/avision.c +++ b/backend/avision.c @@ -4088,6 +4088,8 @@ get_double ( &(result[48] ) )); dev->inquiry_button_control = BIT (result[50], 6) | BIT (result[51],2); dev->inquiry_exposure_control = BIT(result[51],7); + if (dev->scanner_type != AV_FILM && !(dev->hw->feature_type & AV_FORCE_FILM)) + dev->inquiry_exposure_control = 0; dev->inquiry_max_shading_target = get_double ( &(result[75]) ); dev->inquiry_color_boundary = result[54]; @@ -6221,7 +6223,12 @@ do_cancel (Avision_Scanner* s) s->prepared = s->scanning = SANE_FALSE; s->duplex_rear_valid = SANE_FALSE; s->page = 0; - s->cancelled = 1; + s->cancelled = SANE_TRUE; + + if (s->read_fds >= 0) { + close(s->read_fds); + s->read_fds = -1; + } if (sanei_thread_is_valid (s->reader_pid)) { int exit_status; @@ -6716,6 +6723,7 @@ reader_process (void *data) sigset_t sigterm_set; sigset_t ignore_set; struct SIGACTION act; + int old; FILE* fp; FILE* rear_fp = 0; /* used to store the deinterlaced rear data */ @@ -6757,21 +6765,30 @@ reader_process (void *data) DBG (3, "reader_process:\n"); - if (sanei_thread_is_forked()) + if (sanei_thread_is_forked()) { close (s->read_fds); + s->read_fds = -1; - sigfillset (&ignore_set); - sigdelset (&ignore_set, SIGTERM); + sigfillset (&ignore_set); + sigdelset (&ignore_set, SIGTERM); #if defined (__APPLE__) && defined (__MACH__) - sigdelset (&ignore_set, SIGUSR2); + sigdelset (&ignore_set, SIGUSR2); #endif - sigprocmask (SIG_SETMASK, &ignore_set, 0); + sigprocmask (SIG_SETMASK, &ignore_set, 0); - memset (&act, 0, sizeof (act)); - sigaction (SIGTERM, &act, 0); + memset (&act, 0, sizeof (act)); + sigaction (SIGTERM, &act, 0); - sigemptyset (&sigterm_set); - sigaddset (&sigterm_set, SIGTERM); + sigemptyset (&sigterm_set); + sigaddset (&sigterm_set, SIGTERM); + } +#ifdef USE_PTHREAD + else { + int old; + pthread_setcancelstate (PTHREAD_CANCEL_ENABLE, &old); + pthread_setcanceltype (PTHREAD_CANCEL_DEFERRED, &old); + } +#endif gray_mode = color_mode_is_shaded (s->c_mode); @@ -6958,9 +6975,22 @@ reader_process (void *data) (u_long) processed_bytes, (u_long) total_size); DBG (5, "reader_process: this_read: %lu\n", (u_long) this_read); - sigprocmask (SIG_BLOCK, &sigterm_set, 0); + if (sanei_thread_is_forked()) + sigprocmask (SIG_BLOCK, &sigterm_set, 0); +#ifdef USE_PTHREAD + else + pthread_setcancelstate (PTHREAD_CANCEL_DISABLE, &old); +#endif + status = read_data (s, stripe_data + stripe_fill, &this_read); - sigprocmask (SIG_UNBLOCK, &sigterm_set, 0); + + if (sanei_thread_is_forked()) + sigprocmask (SIG_UNBLOCK, &sigterm_set, 0); +#ifdef USE_PTHREAD + else + pthread_setcancelstate (PTHREAD_CANCEL_ENABLE, &old); +#endif + /* only EOF on the second stripe, as otherwise the rear page is shorter */ @@ -8332,7 +8362,7 @@ sane_start (SANE_Handle handle) return SANE_STATUS_DEVICE_BUSY; /* Clear cancellation status */ - s->cancelled = 0; + s->cancelled = SANE_FALSE; /* Make sure we have a current parameter set. Some of the parameters will be overwritten below, but that's OK. */ @@ -8560,8 +8590,10 @@ sane_start (SANE_Handle handle) DBG (3, "sane_start: starting thread\n"); s->reader_pid = sanei_thread_begin (reader_process, (void *) s); - if (sanei_thread_is_forked()) - close (s->write_fds); + if (sanei_thread_is_forked()) { + close (s->write_fds); + s->write_fds = -1; + } return SANE_STATUS_GOOD; diff --git a/backend/dll.conf.in b/backend/dll.conf.in index cf7a309f6..cc7dfecf2 100644 --- a/backend/dll.conf.in +++ b/backend/dll.conf.in @@ -11,10 +11,10 @@ net abaton agfafocus apple -avision artec artec_eplus48u as6e +avision bh canon canon630u @@ -25,33 +25,35 @@ cardscan coolscan #coolscan2 coolscan3 -#dc25 #dc210 #dc240 +#dc25 dell1600n_net dmc epjitsu #epson epson2 epsonds +escl fujitsu -#gphoto2 genesys +#gphoto2 gt68xx hp -hp3900 -hpsj5s hp3500 +hp3900 hp4200 hp5400 hp5590 hpljm1005 +hpsj5s hs2p ibm kodak kodakaio kvs1025 kvs20xx +kvs40xx leo lexmark ma1509 @@ -67,6 +69,7 @@ nec niash #p5 pie +pieusb pint pixma plustek @@ -92,7 +95,7 @@ teco3 #test u12 umax -#umax_pp umax1220u +#umax_pp v4l xerox_mfp diff --git a/backend/escl/escl.c b/backend/escl/escl.c index 6a82d87eb..62d8a4365 100644 --- a/backend/escl/escl.c +++ b/backend/escl/escl.c @@ -27,14 +27,14 @@ #include #include -#include #include +#include + #include "../include/sane/saneopts.h" #include "../include/sane/sanei.h" #include "../include/sane/sanei_backend.h" #include "../include/sane/sanei_config.h" -#include "../include/sane/sanei_debug.h" #define min(A,B) (((A)<(B)) ? (A) : (B)) #define max(A,B) (((A)>(B)) ? (A) : (B)) @@ -54,9 +54,6 @@ typedef struct Handled { capabilities_t *scanner; SANE_Range x_range; SANE_Range y_range; - unsigned char *img_data; - long img_size; - long img_read; SANE_Bool cancel; SANE_Bool write_scan_data; SANE_Bool decompress_scan_data; @@ -64,18 +61,45 @@ typedef struct Handled { SANE_Parameters ps; } escl_sane_t; -struct my_error_mgr +static ESCL_Device * +escl_free_device(ESCL_Device *current) { - struct jpeg_error_mgr errmgr; - jmp_buf escape; -}; + if (!current) return NULL; + free((void*)current->ip_address); + free((void*)current->model_name); + free((void*)current->type); + free(current); + return NULL; +} -typedef struct +static SANE_Status +escl_check_and_add_device(ESCL_Device *current) { - struct jpeg_source_mgr pub; - FILE *ctx; - unsigned char buffer[INPUT_BUFFER_SIZE]; -} my_source_mgr; + if(!current) { + DBG (10, "ESCL_Device *current us null.\n"); + return (SANE_STATUS_NO_MEM); + } + if (!current->ip_address) { + DBG (10, "Ip Address allocation failure.\n"); + return (SANE_STATUS_NO_MEM); + } + if (current->port_nb == 0) { + DBG (10, "No port defined.\n"); + return (SANE_STATUS_NO_MEM); + } + if (!current->model_name) { + DBG (10, "Modele Name allocation failure.\n"); + return (SANE_STATUS_NO_MEM); + } + if (!current->type) { + DBG (10, "Scanner Type allocation failure.\n"); + return (SANE_STATUS_NO_MEM); + } + ++num_devices; + current->next = list_devices_primary; + list_devices_primary = current; + return (SANE_STATUS_GOOD); +} /** * \fn static SANE_Status escl_add_in_list(ESCL_Device *current) @@ -88,10 +112,18 @@ typedef struct static SANE_Status escl_add_in_list(ESCL_Device *current) { - ++num_devices; - current->next = list_devices_primary; - list_devices_primary = current; - return (SANE_STATUS_GOOD); + if(!current) { + DBG (10, "ESCL_Device *current us null.\n"); + return (SANE_STATUS_NO_MEM); + } + + if (SANE_STATUS_GOOD == + escl_check_and_add_device(current)) { + list_devices_primary = current; + return (SANE_STATUS_GOOD); + } + current = escl_free_device(current); + return (SANE_STATUS_NO_MEM); } /** @@ -105,6 +137,8 @@ escl_add_in_list(ESCL_Device *current) SANE_Status escl_device_add(int port_nb, const char *model_name, char *ip_address, char *type) { + char tmp[PATH_MAX] = { 0 }; + char *model = NULL; ESCL_Device *current = NULL; DBG (10, "escl_device_add\n"); for (current = list_devices_primary; current; current = current->next) { @@ -112,12 +146,18 @@ escl_device_add(int port_nb, const char *model_name, char *ip_address, char *typ && strcmp(current->type, type) == 0) return (SANE_STATUS_GOOD); } - current = malloc(sizeof(*current)); - if (current == NULL) - return (SANE_STATUS_NO_MEM); - memset(current, 0, sizeof(*current)); + current = (ESCL_Device*)calloc(1, sizeof(*current)); + if (current == NULL) { + DBG (10, "New device allocation failure.\n"); + return (SANE_STATUS_NO_MEM); + } current->port_nb = port_nb; - current->model_name = strdup(model_name); + + if (strcmp(type, "_uscan._tcp") != 0 && strcmp(type, "http") != 0) { + snprintf(tmp, sizeof(tmp), "%s SSL", model_name); + } + model = (char*)(tmp[0] != 0 ? tmp : model_name); + current->model_name = strdup(model); current->ip_address = strdup(ip_address); current->type = strdup(type); return escl_add_in_list(current); @@ -158,18 +198,48 @@ max_string_size(const SANE_String_Const strings[]) static SANE_Device * convertFromESCLDev(ESCL_Device *cdev) { - SANE_Device *sdev = (SANE_Device*) calloc(1, sizeof(SANE_Device)); char tmp[PATH_MAX] = { 0 }; + SANE_Device *sdev = (SANE_Device*) calloc(1, sizeof(SANE_Device)); + if (!sdev) { + DBG (10, "Sane_Device allocation failure.\n"); + return NULL; + } if (strcmp(cdev->type, "_uscan._tcp") == 0 || strcmp(cdev->type, "http") == 0) snprintf(tmp, sizeof(tmp), "http://%s:%d", cdev->ip_address, cdev->port_nb); else snprintf(tmp, sizeof(tmp), "https://%s:%d", cdev->ip_address, cdev->port_nb); + DBG( 1, "Escl add device : %s\n", tmp); sdev->name = strdup(tmp); + if (!sdev->name) { + DBG (10, "Name allocation failure.\n"); + goto freedev; + } sdev->model = strdup(cdev->model_name); + if (!sdev->model) { + DBG (10, "Model allocation failure.\n"); + goto freename; + } sdev->vendor = strdup("ESCL"); + if (!sdev->vendor) { + DBG (10, "Vendor allocation failure.\n"); + goto freemodel; + } sdev->type = strdup("flatbed scanner"); + if (!sdev->type) { + DBG (10, "Scanner Type allocation failure.\n"); + goto freevendor; + } return (sdev); +freevendor: + free((void*)sdev->vendor); +freemodel: + free((void*)sdev->model); +freename: + free((void*)sdev->name); +freedev: + free((void*)sdev); + return NULL; } /** @@ -187,7 +257,7 @@ sane_init(SANE_Int *version_code, SANE_Auth_Callback __sane_unused__ authorize) DBG_INIT(); DBG (10, "escl sane_init\n"); SANE_Status status = SANE_STATUS_GOOD; - + curl_global_init(CURL_GLOBAL_ALL); if (version_code != NULL) *version_code = SANE_VERSION_CODE(1, 0, 0); if (status != SANE_STATUS_GOOD) @@ -217,6 +287,7 @@ sane_exit(void) free (devlist); list_devices_primary = NULL; devlist = NULL; + curl_global_cleanup(); } /** @@ -232,44 +303,52 @@ static SANE_Status attach_one_config(SANEI_Config __sane_unused__ *config, const char *line) { int port = 0; - static int count = 0; + SANE_Status status; static ESCL_Device *escl_device = NULL; if (strncmp(line, "[device]", 8) == 0) { - count = 0; + escl_device = escl_free_device(escl_device); escl_device = (ESCL_Device*)calloc(1, sizeof(ESCL_Device)); + if (!escl_device) { + DBG (10, "New Escl_Device allocation failure."); + return (SANE_STATUS_NO_MEM); + } } if (strncmp(line, "ip", 2) == 0) { const char *ip_space = sanei_config_skip_whitespace(line + 2); + DBG (10, "New Escl_Device IP [%s].", (ip_space ? ip_space : "VIDE")); if (escl_device != NULL && ip_space != NULL) { - count++; + DBG (10, "New Escl_Device IP Affected."); escl_device->ip_address = strdup(ip_space); } } if (sscanf(line, "port %i", &port) == 1 && port != 0) { - const char *port_space = sanei_config_skip_whitespace(line + 4); - if (escl_device != NULL && port_space != NULL) { - count++; + DBG (10, "New Escl_Device PORT [%d].", port); + if (escl_device != NULL) { + DBG (10, "New Escl_Device PORT Affected."); escl_device->port_nb = port; } } if (strncmp(line, "model", 5) == 0) { const char *model_space = sanei_config_skip_whitespace(line + 5); + DBG (10, "New Escl_Device MODEL [%s].", (model_space ? model_space : "VIDE")); if (escl_device != NULL && model_space != NULL) { - count++; + DBG (10, "New Escl_Device MODEL Affected."); escl_device->model_name = strdup(model_space); } } if (strncmp(line, "type", 4) == 0) { const char *type_space = sanei_config_skip_whitespace(line + 4); + DBG (10, "New Escl_Device TYPE [%s].", (type_space ? type_space : "VIDE")); if (escl_device != NULL && type_space != NULL) { - count++; + DBG (10, "New Escl_Device TYPE Affected."); escl_device->type = strdup(type_space); } } - if (count == 4) - return (escl_add_in_list(escl_device)); - return (SANE_STATUS_GOOD); + status = escl_check_and_add_device(escl_device); + if (status == SANE_STATUS_GOOD) + escl_device = NULL; + return status; } /** @@ -337,19 +416,19 @@ init_options(SANE_String_Const name, escl_sane_t *s) s->opt[i].size = sizeof (SANE_Word); s->opt[i].cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT; } - s->x_range.min = 0; - s->x_range.max = s->scanner->MaxWidth - s->scanner->MinWidth; - s->x_range.quant = 1; - s->y_range.min = 0; - s->y_range.max = s->scanner->MaxHeight - s->scanner->MinHeight; - s->y_range.quant = 1; + s->x_range.min = PIXEL_TO_MM(s->scanner->MinWidth, 300.0); + s->x_range.max = PIXEL_TO_MM(s->scanner->MaxWidth, 300.0); + s->x_range.quant = 0; + s->y_range.min = PIXEL_TO_MM(s->scanner->MinHeight, 300.0); + s->y_range.max = PIXEL_TO_MM(s->scanner->MaxHeight, 300.0); + s->y_range.quant = 0; s->opt[OPT_NUM_OPTS].title = SANE_TITLE_NUM_OPTIONS; s->opt[OPT_NUM_OPTS].desc = SANE_DESC_NUM_OPTIONS; s->opt[OPT_NUM_OPTS].type = SANE_TYPE_INT; s->opt[OPT_NUM_OPTS].cap = SANE_CAP_SOFT_DETECT; s->val[OPT_NUM_OPTS].w = NUM_OPTIONS; - s->opt[OPT_MODE_GROUP].title = "Scan Mode"; + s->opt[OPT_MODE_GROUP].title = SANE_TITLE_SCAN_MODE; s->opt[OPT_MODE_GROUP].desc = ""; s->opt[OPT_MODE_GROUP].type = SANE_TYPE_GROUP; s->opt[OPT_MODE_GROUP].cap = 0; @@ -363,8 +442,16 @@ init_options(SANE_String_Const name, escl_sane_t *s) s->opt[OPT_MODE].constraint_type = SANE_CONSTRAINT_STRING_LIST; s->opt[OPT_MODE].constraint.string_list = s->scanner->ColorModes; s->val[OPT_MODE].s = (char *)strdup(s->scanner->ColorModes[0]); + if (!s->val[OPT_MODE].s) { + DBG (10, "Color Mode Default allocation failure.\n"); + return (SANE_STATUS_NO_MEM); + } s->opt[OPT_MODE].size = max_string_size(s->scanner->ColorModes); s->scanner->default_color = (char *)strdup(s->scanner->ColorModes[0]); + if (!s->scanner->default_color) { + DBG (10, "Color Mode Default allocation failure.\n"); + return (SANE_STATUS_NO_MEM); + } s->opt[OPT_RESOLUTION].name = SANE_NAME_SCAN_RESOLUTION; s->opt[OPT_RESOLUTION].title = SANE_TITLE_SCAN_RESOLUTION; @@ -389,8 +476,8 @@ init_options(SANE_String_Const name, escl_sane_t *s) s->opt[OPT_GRAY_PREVIEW].type = SANE_TYPE_BOOL; s->val[OPT_GRAY_PREVIEW].w = SANE_FALSE; - s->opt[OPT_GEOMETRY_GROUP].title = "Geometry"; - s->opt[OPT_GEOMETRY_GROUP].desc = ""; + s->opt[OPT_GEOMETRY_GROUP].title = SANE_TITLE_GEOMETRY; + s->opt[OPT_GEOMETRY_GROUP].desc = SANE_DESC_GEOMETRY; s->opt[OPT_GEOMETRY_GROUP].type = SANE_TYPE_GROUP; s->opt[OPT_GEOMETRY_GROUP].cap = SANE_CAP_ADVANCED; s->opt[OPT_GEOMETRY_GROUP].constraint_type = SANE_CONSTRAINT_NONE; @@ -399,37 +486,45 @@ init_options(SANE_String_Const name, escl_sane_t *s) s->opt[OPT_TL_X].title = SANE_TITLE_SCAN_TL_X; s->opt[OPT_TL_X].desc = SANE_DESC_SCAN_TL_X; s->opt[OPT_TL_X].type = SANE_TYPE_FIXED; - s->opt[OPT_TL_X].unit = SANE_UNIT_PIXEL; + s->opt[OPT_TL_X].size = sizeof(SANE_Fixed); + s->opt[OPT_TL_X].cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT; + s->opt[OPT_TL_X].unit = SANE_UNIT_MM; s->opt[OPT_TL_X].constraint_type = SANE_CONSTRAINT_RANGE; s->opt[OPT_TL_X].constraint.range = &s->x_range; - s->val[OPT_TL_X].w = s->scanner->RiskyLeftMargin; + s->val[OPT_TL_X].w = 0; s->opt[OPT_TL_Y].name = SANE_NAME_SCAN_TL_Y; s->opt[OPT_TL_Y].title = SANE_TITLE_SCAN_TL_Y; s->opt[OPT_TL_Y].desc = SANE_DESC_SCAN_TL_Y; s->opt[OPT_TL_Y].type = SANE_TYPE_FIXED; - s->opt[OPT_TL_Y].unit = SANE_UNIT_PIXEL; + s->opt[OPT_TL_Y].size = sizeof(SANE_Fixed); + s->opt[OPT_TL_Y].cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT; + s->opt[OPT_TL_Y].unit = SANE_UNIT_MM; s->opt[OPT_TL_Y].constraint_type = SANE_CONSTRAINT_RANGE; s->opt[OPT_TL_Y].constraint.range = &s->y_range; - s->val[OPT_TL_Y].w = s->scanner->RiskyTopMargin; + s->val[OPT_TL_Y].w = 0; s->opt[OPT_BR_X].name = SANE_NAME_SCAN_BR_X; s->opt[OPT_BR_X].title = SANE_TITLE_SCAN_BR_X; s->opt[OPT_BR_X].desc = SANE_DESC_SCAN_BR_X; s->opt[OPT_BR_X].type = SANE_TYPE_FIXED; - s->opt[OPT_BR_X].unit = SANE_UNIT_PIXEL; + s->opt[OPT_BR_X].size = sizeof(SANE_Fixed); + s->opt[OPT_BR_X].cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT; + s->opt[OPT_BR_X].unit = SANE_UNIT_MM; s->opt[OPT_BR_X].constraint_type = SANE_CONSTRAINT_RANGE; s->opt[OPT_BR_X].constraint.range = &s->x_range; - s->val[OPT_BR_X].w = s->scanner->MaxWidth; + s->val[OPT_BR_X].w = s->x_range.max; s->opt[OPT_BR_Y].name = SANE_NAME_SCAN_BR_Y; s->opt[OPT_BR_Y].title = SANE_TITLE_SCAN_BR_Y; s->opt[OPT_BR_Y].desc = SANE_DESC_SCAN_BR_Y; s->opt[OPT_BR_Y].type = SANE_TYPE_FIXED; - s->opt[OPT_BR_Y].unit = SANE_UNIT_PIXEL; + s->opt[OPT_BR_Y].size = sizeof(SANE_Fixed); + s->opt[OPT_BR_Y].cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT; + s->opt[OPT_BR_Y].unit = SANE_UNIT_MM; s->opt[OPT_BR_Y].constraint_type = SANE_CONSTRAINT_RANGE; s->opt[OPT_BR_Y].constraint.range = &s->y_range; - s->val[OPT_BR_Y].w = s->scanner->MaxHeight; + s->val[OPT_BR_Y].w = s->y_range.max; return (status); } @@ -458,6 +553,10 @@ sane_open(SANE_String_Const name, SANE_Handle *h) if (handler == NULL) return (SANE_STATUS_NO_MEM); handler->name = strdup(name); + if (!handler->name) { + DBG (10, "Handle Name allocation failure.\n"); + return (SANE_STATUS_NO_MEM); + } handler->scanner = escl_capabilities(name, &status); if (status != SANE_STATUS_GOOD) return (status); @@ -467,8 +566,8 @@ sane_open(SANE_String_Const name, SANE_Handle *h) handler->ps.depth = 8; handler->ps.last_frame = SANE_TRUE; handler->ps.format = SANE_FRAME_RGB; - handler->ps.pixels_per_line = handler->val[OPT_BR_X].w; - handler->ps.lines = handler->val[OPT_BR_Y].w; + handler->ps.pixels_per_line = MM_TO_PIXEL(handler->val[OPT_BR_X].w, 300.0); + handler->ps.lines = MM_TO_PIXEL(handler->val[OPT_BR_Y].w, 300.0); handler->ps.bytes_per_line = handler->ps.pixels_per_line * 3; status = sane_get_parameters(handler, 0); if (status != SANE_STATUS_GOOD) @@ -492,7 +591,11 @@ sane_cancel(SANE_Handle h) { DBG (10, "escl sane_cancel\n"); escl_sane_t *handler = h; - + if (handler->scanner->tmp) + { + fclose(handler->scanner->tmp); + handler->scanner->tmp = NULL; + } handler->cancel = SANE_TRUE; escl_scanner(handler->name, handler->result); } @@ -528,7 +631,7 @@ sane_get_option_descriptor(SANE_Handle h, SANE_Int n) if ((unsigned) n >= NUM_OPTIONS || n < 0) return (0); - return (s->opt + n); + return (&s->opt[n]); } /** @@ -556,12 +659,12 @@ sane_control_option(SANE_Handle h, SANE_Int n, SANE_Action a, void *v, SANE_Int return (SANE_STATUS_INVAL); if (a == SANE_ACTION_GET_VALUE) { switch (n) { - case OPT_NUM_OPTS: - case OPT_RESOLUTION: case OPT_TL_X: case OPT_TL_Y: case OPT_BR_X: case OPT_BR_Y: + case OPT_NUM_OPTS: + case OPT_RESOLUTION: case OPT_PREVIEW: case OPT_GRAY_PREVIEW: *(SANE_Word *) v = handler->val[n].w; @@ -581,14 +684,10 @@ sane_control_option(SANE_Handle h, SANE_Int n, SANE_Action a, void *v, SANE_Int case OPT_TL_Y: case OPT_BR_X: case OPT_BR_Y: + case OPT_NUM_OPTS: + case OPT_RESOLUTION: case OPT_PREVIEW: case OPT_GRAY_PREVIEW: - handler->val[n].w = *(SANE_Word *) v; - if (i && handler->val[n].w != *(SANE_Word *) v) - *i |= SANE_INFO_RELOAD_PARAMS | SANE_INFO_RELOAD_OPTIONS | SANE_INFO_INEXACT; - handler->val[n].w = *(SANE_Word *) v; - break; - case OPT_RESOLUTION: handler->val[n].w = *(SANE_Word *) v; if (i) *i |= SANE_INFO_RELOAD_PARAMS | SANE_INFO_RELOAD_OPTIONS | SANE_INFO_INEXACT; @@ -597,6 +696,10 @@ sane_control_option(SANE_Handle h, SANE_Int n, SANE_Action a, void *v, SANE_Int if (handler->val[n].s) free (handler->val[n].s); handler->val[n].s = strdup (v); + if (!handler->val[n].s) { + DBG (10, "OPT_MODE allocation failure.\n"); + return (SANE_STATUS_NO_MEM); + } if (i) *i |= SANE_INFO_RELOAD_PARAMS | SANE_INFO_RELOAD_OPTIONS | SANE_INFO_INEXACT; break; @@ -607,43 +710,6 @@ sane_control_option(SANE_Handle h, SANE_Int n, SANE_Action a, void *v, SANE_Int return (SANE_STATUS_GOOD); } -#if(defined HAVE_LIBJPEG) -static void -error_exit(j_common_ptr cinfo) -{ - longjmp(cinfo->client_data, 1); -} - -/** - * \fn static void get_JPEG_dimension(FILE *fp, int *w, int *h) - * \brief Function that aims to get the dimensions of the jpeg image wich will be scanned. - * This function is called in the "sane_start" function. - */ -static void -get_JPEG_dimension(FILE *fp, int *w, int *h) -{ - struct jpeg_decompress_struct cinfo; - struct jpeg_error_mgr jerr; - jmp_buf env; - - cinfo.err = jpeg_std_error(&jerr); - jerr.error_exit = error_exit; - cinfo.client_data = env; - if (setjmp(env)) - return; - jpeg_create_decompress(&cinfo); - jpeg_stdio_src(&cinfo, fp); - jpeg_read_header(&cinfo, TRUE); - cinfo.out_color_space = JCS_RGB; - jpeg_start_decompress(&cinfo); - *w = cinfo.output_width; - *h = cinfo.output_height; - jpeg_finish_decompress(&cinfo); - jpeg_destroy_decompress(&cinfo); - fseek(fp, SEEK_SET, 0); -} -#endif - /** * \fn SANE_Status sane_start(SANE_Handle h) * \brief Function that initiates aquisition of an image from the device represented by handle 'h'. @@ -659,6 +725,7 @@ sane_start(SANE_Handle h) escl_sane_t *handler = h; int w = 0; int he = 0; + int bps = 0; if (handler->name == NULL) return (SANE_STATUS_INVAL); @@ -666,10 +733,6 @@ sane_start(SANE_Handle h) handler->write_scan_data = SANE_FALSE; handler->decompress_scan_data = SANE_FALSE; handler->end_read = SANE_FALSE; - handler->scanner->height = handler->val[OPT_BR_Y].w; - handler->scanner->width = handler->val[OPT_BR_X].w; - handler->scanner->pos_x = handler->val[OPT_TL_X].w; - handler->scanner->pos_y = handler->val[OPT_TL_Y].w; if(handler->scanner->default_color) free(handler->scanner->default_color); if (handler->val[OPT_PREVIEW].w == SANE_TRUE) @@ -680,6 +743,10 @@ sane_start(SANE_Handle h) handler->scanner->default_color = strdup("Grayscale8"); else handler->scanner->default_color = strdup("RGB24"); + if (!handler->scanner->default_color) { + DBG (10, "Default Color allocation failure.\n"); + return (SANE_STATUS_NO_MEM); + } for (i = 1; i < handler->scanner->SupportedResolutionsSize; i++) { if (val > handler->scanner->SupportedResolutions[i]) @@ -695,18 +762,52 @@ sane_start(SANE_Handle h) else handler->scanner->default_color = strdup("RGB24"); } + handler->scanner->height = MM_TO_PIXEL(handler->val[OPT_BR_Y].w, 300.0); + handler->scanner->width = MM_TO_PIXEL(handler->val[OPT_BR_X].w, 300.0); + handler->scanner->pos_x = MM_TO_PIXEL(handler->val[OPT_TL_X].w, 300.0); + handler->scanner->pos_y = MM_TO_PIXEL(handler->val[OPT_TL_Y].w, 300.0); + DBG(10, "Calculate Size Image [%dx%d|%dx%d]\n", + handler->scanner->pos_x, + handler->scanner->pos_y, + handler->scanner->height, + handler->scanner->width); + if (!handler->scanner->default_color) { + DBG (10, "Default Color allocation failure.\n"); + return (SANE_STATUS_NO_MEM); + } handler->result = escl_newjob(handler->scanner, handler->name, &status); if (status != SANE_STATUS_GOOD) return (status); status = escl_scan(handler->scanner, handler->name, handler->result); - get_JPEG_dimension(handler->scanner->tmp, &w, &he); - fseek(handler->scanner->tmp, SEEK_SET, 0); + if (status != SANE_STATUS_GOOD) + return (status); + if (!strcmp(handler->scanner->default_format, "image/jpeg")) + { + status = get_JPEG_data(handler->scanner, &w, &he, &bps); + } + else if (!strcmp(handler->scanner->default_format, "image/png")) + { + status = get_PNG_data(handler->scanner, &w, &he, &bps); + } + else if (!strcmp(handler->scanner->default_format, "image/tiff")) + { + status = get_TIFF_data(handler->scanner, &w, &he, &bps); + } + else { + DBG(10, "Unknow image format\n"); + return SANE_STATUS_INVAL; + } + + DBG(10, "2-Size Image [%dx%d|%dx%d]\n", 0, 0, w, he); + if (status != SANE_STATUS_GOOD) + return (status); handler->ps.depth = 8; handler->ps.pixels_per_line = w; handler->ps.lines = he; - handler->ps.bytes_per_line = w * 3; + handler->ps.bytes_per_line = w * bps; handler->ps.last_frame = SANE_TRUE; handler->ps.format = SANE_FRAME_RGB; + DBG(10, "Real Size Image [%dx%d|%dx%d]\n", 0, 0, w, he); return (status); } @@ -733,162 +834,11 @@ sane_get_parameters(SANE_Handle h, SANE_Parameters *p) p->format = SANE_FRAME_RGB; p->pixels_per_line = handler->ps.pixels_per_line; p->lines = handler->ps.lines; - p->bytes_per_line = handler->ps.pixels_per_line * 3; + p->bytes_per_line = handler->ps.bytes_per_line; } return (status); } -#if(defined HAVE_LIBJPEG) -/** - * \fn static boolean fill_input_buffer(j_decompress_ptr cinfo) - * \brief Called in the "skip_input_data" function. - * - * \return TRUE (everything is OK) - */ -static boolean -fill_input_buffer(j_decompress_ptr cinfo) -{ - my_source_mgr *src = (my_source_mgr *) cinfo->src; - int nbytes = 0; - - nbytes = fread(src->buffer, 1, INPUT_BUFFER_SIZE, src->ctx); - if (nbytes <= 0) { - src->buffer[0] = (unsigned char) 0xFF; - src->buffer[1] = (unsigned char) JPEG_EOI; - nbytes = 2; - } - src->pub.next_input_byte = src->buffer; - src->pub.bytes_in_buffer = nbytes; - return (TRUE); -} - -/** - * \fn static void skip_input_data(j_decompress_ptr cinfo, long num_bytes) - * \brief Called in the "jpeg_RW_src" function. - */ -static void -skip_input_data(j_decompress_ptr cinfo, long num_bytes) -{ - my_source_mgr *src = (my_source_mgr *) cinfo->src; - - if (num_bytes > 0) { - while (num_bytes > (long) src->pub.bytes_in_buffer) { - num_bytes -= (long) src->pub.bytes_in_buffer; - (void) src->pub.fill_input_buffer(cinfo); - } - src->pub.next_input_byte += (size_t) num_bytes; - src->pub.bytes_in_buffer -= (size_t) num_bytes; - } -} - -static void -term_source(j_decompress_ptr __sane_unused__ cinfo) -{ - return; -} - -static void -init_source(j_decompress_ptr __sane_unused__ cinfo) -{ - return; -} - -/** - * \fn static void jpeg_RW_src(j_decompress_ptr cinfo, FILE *ctx) - * \brief Called in the "escl_sane_decompressor" function. - */ -static void -jpeg_RW_src(j_decompress_ptr cinfo, FILE *ctx) -{ - my_source_mgr *src; - - if (cinfo->src == NULL) { - cinfo->src = (struct jpeg_source_mgr *)(*cinfo->mem->alloc_small) - ((j_common_ptr) cinfo, JPOOL_PERMANENT, sizeof(my_source_mgr)); - src = (my_source_mgr *) cinfo->src; - } - src = (my_source_mgr *) cinfo->src; - src->pub.init_source = init_source; - src->pub.fill_input_buffer = fill_input_buffer; - src->pub.skip_input_data = skip_input_data; - src->pub.resync_to_restart = jpeg_resync_to_restart; - src->pub.term_source = term_source; - src->ctx = ctx; - src->pub.bytes_in_buffer = 0; - src->pub.next_input_byte = NULL; -} - -static void -my_error_exit(j_common_ptr cinfo) -{ - struct my_error_mgr *err = (struct my_error_mgr *)cinfo->err; - - longjmp(err->escape, 1); -} - -static void -output_no_message(j_common_ptr __sane_unused__ cinfo) -{ -} - -/** - * \fn SANE_Status escl_sane_decompressor(escl_sane_t *handler) - * \brief Function that aims to decompress the jpeg image to SANE be able to read the image. - * This function is called in the "sane_read" function. - * - * \return SANE_STATUS_GOOD (if everything is OK, otherwise, SANE_STATUS_NO_MEM/SANE_STATUS_INVAL) - */ -SANE_Status -escl_sane_decompressor(escl_sane_t *handler) -{ - int start = 0; - struct jpeg_decompress_struct cinfo; - JSAMPROW rowptr[1]; - unsigned char *surface = NULL; - struct my_error_mgr jerr; - int lineSize = 0; - - if (handler->scanner->tmp == NULL) - return (SANE_STATUS_INVAL); - fseek(handler->scanner->tmp, SEEK_SET, 0); - start = ftell(handler->scanner->tmp); - cinfo.err = jpeg_std_error(&jerr.errmgr); - jerr.errmgr.error_exit = my_error_exit; - jerr.errmgr.output_message = output_no_message; - if (setjmp(jerr.escape)) { - jpeg_destroy_decompress(&cinfo); - if (surface != NULL) - free(surface); - return (SANE_STATUS_INVAL); - } - jpeg_create_decompress(&cinfo); - jpeg_RW_src(&cinfo, handler->scanner->tmp); - jpeg_read_header(&cinfo, TRUE); - cinfo.out_color_space = JCS_RGB; - cinfo.quantize_colors = FALSE; - jpeg_calc_output_dimensions(&cinfo); - surface = malloc(cinfo.output_width * cinfo.output_height * cinfo.output_components); - if (surface == NULL) { - jpeg_destroy_decompress(&cinfo); - fseek(handler->scanner->tmp, start, SEEK_SET); - return (SANE_STATUS_NO_MEM); - } - lineSize = cinfo.output_width * cinfo.output_components; - jpeg_start_decompress(&cinfo); - while (cinfo.output_scanline < cinfo.output_height) { - rowptr[0] = (JSAMPROW)surface + (lineSize * cinfo.output_scanline); - jpeg_read_scanlines(&cinfo, rowptr, (JDIMENSION) 1); - } - handler->img_data = surface; - handler->img_size = lineSize * cinfo.output_height; - handler->img_read = 0; - jpeg_finish_decompress(&cinfo); - jpeg_destroy_decompress(&cinfo); - fclose(handler->scanner->tmp); - handler->scanner->tmp = NULL; - return (SANE_STATUS_GOOD); -} -#endif /** * \fn SANE_Status sane_read(SANE_Handle h, SANE_Byte *buf, SANE_Int maxlen, SANE_Int *len) @@ -914,34 +864,31 @@ sane_read(SANE_Handle h, SANE_Byte *buf, SANE_Int maxlen, SANE_Int *len) if (!handler->write_scan_data) handler->write_scan_data = SANE_TRUE; if (!handler->decompress_scan_data) { - if (handler->scanner->tmp == NULL) - return (SANE_STATUS_INVAL); - status = escl_sane_decompressor(handler); if (status != SANE_STATUS_GOOD) return (status); handler->decompress_scan_data = SANE_TRUE; } - if (handler->img_data == NULL) + if (handler->scanner->img_data == NULL) return (SANE_STATUS_INVAL); if (!handler->end_read) { - readbyte = min((handler->img_size - handler->img_read), maxlen); - memcpy(buf, handler->img_data + handler->img_read, readbyte); - handler->img_read = handler->img_read + readbyte; + readbyte = min((handler->scanner->img_size - handler->scanner->img_read), maxlen); + memcpy(buf, handler->scanner->img_data + handler->scanner->img_read, readbyte); + handler->scanner->img_read = handler->scanner->img_read + readbyte; *len = readbyte; - if (handler->img_read == handler->img_size) + if (handler->scanner->img_read == handler->scanner->img_size) handler->end_read = SANE_TRUE; - else if (handler->img_read > handler->img_size) { + else if (handler->scanner->img_read > handler->scanner->img_size) { *len = 0; handler->end_read = SANE_TRUE; - free(handler->img_data); - handler->img_data = NULL; + free(handler->scanner->img_data); + handler->scanner->img_data = NULL; return (SANE_STATUS_INVAL); } } else { *len = 0; - free(handler->img_data); - handler->img_data = NULL; + free(handler->scanner->img_data); + handler->scanner->img_data = NULL; return (SANE_STATUS_EOF); } return (SANE_STATUS_GOOD); diff --git a/backend/escl/escl.h b/backend/escl/escl.h index 559825af2..e333f944c 100644 --- a/backend/escl/escl.h +++ b/backend/escl/escl.h @@ -43,11 +43,25 @@ #include "../include/sane/sane.h" #include +#include #ifndef BACKEND_NAME #define BACKEND_NAME escl #endif +#define DEBUG_NOT_STATIC +#include "../include/sane/sanei_debug.h" + +#ifndef DBG_LEVEL +#define DBG_LEVEL PASTE(sanei_debug_, BACKEND_NAME) +#endif +#ifndef NDEBUG +# define DBGDUMP(level, buf, size) \ + do { if (DBG_LEVEL >= (level)) sanei_escl_dbgdump(buf, size); } while (0) +#else +# define DBGDUMP(level, buf, size) +#endif + #define ESCL_CONFIG_FILE "escl.conf" typedef struct { @@ -78,7 +92,7 @@ typedef struct capabilities int pos_x; int pos_y; SANE_String default_color; - SANE_String_Const default_format; + SANE_String default_format; SANE_Int default_resolution; int MinWidth; int MaxWidth; @@ -102,6 +116,9 @@ typedef struct capabilities int RiskyTopMargin; int RiskyBottomMargin; FILE *tmp; + unsigned char *img_data; + long img_size; + long img_read; int format_ext; } capabilities_t; @@ -135,12 +152,30 @@ enum NUM_OPTIONS }; +#define PIXEL_TO_MM(pixels, dpi) SANE_FIX((double)pixels * 25.4 / (dpi)) +#define MM_TO_PIXEL(millimeters, dpi) (SANE_Word)round(SANE_UNFIX(millimeters) * (dpi) / 25.4) + ESCL_Device *escl_devices(SANE_Status *status); -SANE_Status escl_device_add(int port_nb, const char *model_name, char *ip_address, char *type); +SANE_Status escl_device_add(int port_nb, const char *model_name, + char *ip_address, char *type); SANE_Status escl_status(SANE_String_Const name); capabilities_t *escl_capabilities(SANE_String_Const name, SANE_Status *status); -char *escl_newjob(capabilities_t *scanner, SANE_String_Const name, SANE_Status *status); -SANE_Status escl_scan(capabilities_t *scanner, SANE_String_Const name, char *result); +char *escl_newjob(capabilities_t *scanner, SANE_String_Const name, + SANE_Status *status); +SANE_Status escl_scan(capabilities_t *scanner, SANE_String_Const name, + char *result); void escl_scanner(SANE_String_Const name, char *result); +unsigned char *escl_crop_surface(capabilities_t *scanner, unsigned char *surface, + int w, int h, int bps, int *width, int *height); + +// JPEG +SANE_Status get_JPEG_data(capabilities_t *scanner, int *width, int *height, int *bps); + +// PNG +SANE_Status get_PNG_data(capabilities_t *scanner, int *width, int *height, int *bps); + +// TIFF +SANE_Status get_TIFF_data(capabilities_t *scanner, int *width, int *height, int *bps); + #endif diff --git a/backend/escl/escl_capabilities.c b/backend/escl/escl_capabilities.c index 17013c9d3..690ff1eff 100644 --- a/backend/escl/escl_capabilities.c +++ b/backend/escl/escl_capabilities.c @@ -21,6 +21,8 @@ This file implements a SANE backend for eSCL scanners. */ +#define DEBUG_DECLARE_ONLY +#include "../include/sane/config.h" #include "escl.h" @@ -181,7 +183,34 @@ find_valor_of_array_variables(xmlNode *node, capabilities_t *scanner) else if (strcmp(name, "ContentType") == 0) scanner->ContentTypes = char_to_array(scanner->ContentTypes, &scanner->ContentTypesSize, (SANE_String_Const)xmlNodeGetContent(node), 0); else if (strcmp(name, "DocumentFormat") == 0) + { + int i = 0; scanner->DocumentFormats = char_to_array(scanner->DocumentFormats, &scanner->DocumentFormatsSize, (SANE_String_Const)xmlNodeGetContent(node), 0); + for(; i < scanner->DocumentFormatsSize; i++) + { + if (scanner->default_format == NULL && !strcmp(scanner->DocumentFormats[i], "image/jpeg")) + { + scanner->default_format = strdup("image/jpeg"); + } +#if(defined HAVE_LIBPNG) + else if(!strcmp(scanner->DocumentFormats[i], "image/png") && (scanner->default_format == NULL || strcmp(scanner->default_format, "image/tiff"))) + { + if (scanner->default_format) + free(scanner->default_format); + scanner->default_format = strdup("image/png"); + } +#endif +#if(defined HAVE_TIFFIO_H) + else if(!strcmp(scanner->DocumentFormats[i], "image/tiff")) + { + if (scanner->default_format) + free(scanner->default_format); + scanner->default_format = strdup("image/tiff"); + } +#endif + } + fprintf(stderr, "Capability : [%s]\n", scanner->default_format); + } else if (strcmp(name, "DocumentFormatExt") == 0) scanner->format_ext = 1; else if (strcmp(name, "Intent") == 0) @@ -316,19 +345,20 @@ escl_capabilities(SANE_String_Const name, SANE_Status *status) *status = SANE_STATUS_NO_MEM; var->memory = malloc(1); var->size = 0; - curl_global_init(CURL_GLOBAL_ALL); curl_handle = curl_easy_init(); strcpy(tmp, name); strcat(tmp, scanner_capabilities); + DBG( 1, "Get Capabilities : %s\n", tmp); curl_easy_setopt(curl_handle, CURLOPT_URL, tmp); if (strncmp(name, "https", 5) == 0) { + DBG( 1, "Ignoring safety certificates, use https\n"); curl_easy_setopt(curl_handle, CURLOPT_SSL_VERIFYPEER, 0L); curl_easy_setopt(curl_handle, CURLOPT_SSL_VERIFYHOST, 0L); } curl_easy_setopt(curl_handle, CURLOPT_WRITEFUNCTION, memory_callback_c); curl_easy_setopt(curl_handle, CURLOPT_WRITEDATA, (void *)var); if (curl_easy_perform(curl_handle) != CURLE_OK) { - fprintf(stderr, "THERE IS NO SCANNER\n"); + DBG( 1, "The scanner didn't respond.\n"); *status = SANE_STATUS_INVAL; } data = xmlReadMemory(var->memory, var->size, "file.xml", NULL, 0); @@ -343,6 +373,5 @@ escl_capabilities(SANE_String_Const name, SANE_Status *status) xmlMemoryDump(); curl_easy_cleanup(curl_handle); free(var->memory); - curl_global_cleanup(); return (scanner); } diff --git a/backend/escl/escl_crop.c b/backend/escl/escl_crop.c new file mode 100644 index 000000000..0d1b9444c --- /dev/null +++ b/backend/escl/escl_crop.c @@ -0,0 +1,89 @@ +/* sane - Scanner Access Now Easy. + + Copyright (C) 2020 Thierry HUCHARD + + This file is part of the SANE package. + + SANE 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 3 of the License, or (at your + option) any later version. + + SANE 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 sane; see the file COPYING. If not, write to the Free + Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + + This file implements a SANE backend for eSCL scanners. */ + +#define DEBUG_DECLARE_ONLY +#include "../include/sane/config.h" + +#include "escl.h" +#include +#include +#include + +unsigned char * +escl_crop_surface(capabilities_t *scanner, + unsigned char *surface, + int w, + int h, + int bps, + int *width, + int *height) +{ + int x_off = 0, x = 0; + int real_w = 0; + int y_off = 0, y = 0; + int real_h = 0; + unsigned char *surface_crop = NULL; + + DBG( 1, "Escl Image Crop\n"); + if (w < (int)scanner->width) + scanner->width = w; + if (scanner->pos_x < 0) + scanner->pos_x = 0; + + if (h < (int)scanner->height) + scanner->height = h; + if (scanner->pos_x < 0) + scanner->pos_x = 0; + + x_off = scanner->pos_x; + real_w = scanner->width - x_off; + y_off = scanner->pos_y; + real_h = scanner->height - y_off; + *width = real_w; + *height = real_h; + if (x_off > 0 || real_w < scanner->width || + y_off > 0 || real_h < scanner->height) { + surface_crop = (unsigned char *)malloc (sizeof (unsigned char) * real_w + * real_h * bps); + if(!surface_crop) { + DBG( 1, "Escl Crop : Surface_crop Memory allocation problem\n"); + free(surface); + surface = NULL; + goto finish; + } + for (y = 0; y < real_h; y++) + { + for (x = 0; x < real_w; x++) + { + surface_crop[y * real_w + x] = surface[(y + y_off) * w + x + x_off]; + } + } + free(surface); + surface = surface_crop; + } + // we don't need row pointers anymore + scanner->img_data = surface; + scanner->img_size = (int)(real_w * real_h * bps); + scanner->img_read = 0; +finish: + return surface; +} diff --git a/backend/escl/escl_devices.c b/backend/escl/escl_devices.c index b1182b920..7ecbe31e8 100644 --- a/backend/escl/escl_devices.c +++ b/backend/escl/escl_devices.c @@ -21,6 +21,9 @@ This file implements a SANE backend for eSCL scanners. */ +#define DEBUG_DECLARE_ONLY +#include "../include/sane/config.h" + #include "escl.h" #include @@ -142,21 +145,21 @@ escl_devices(SANE_Status *status) *status = SANE_STATUS_GOOD; if (!(simple_poll = avahi_simple_poll_new())) { - fprintf(stderr, "Failed to create simple poll object.\n"); + DBG( 1, "Failed to create simple poll object.\n"); *status = SANE_STATUS_INVAL; goto fail; } client = avahi_client_new(avahi_simple_poll_get(simple_poll), 0, client_callback, NULL, &error); if (!client) { - fprintf(stderr, "Failed to create client: %s\n", avahi_strerror(error)); + DBG( 1, "Failed to create client: %s\n", avahi_strerror(error)); *status = SANE_STATUS_INVAL; goto fail; } if (!(sb = avahi_service_browser_new(client, AVAHI_IF_UNSPEC, AVAHI_PROTO_UNSPEC, "_uscan._tcp", NULL, 0, browse_callback, client))) { - fprintf(stderr, "Failed to create service browser: %s\n", + DBG( 1, "Failed to create service browser: %s\n", avahi_strerror(avahi_client_errno(client))); *status = SANE_STATUS_INVAL; goto fail; @@ -165,7 +168,7 @@ escl_devices(SANE_Status *status) AVAHI_PROTO_UNSPEC, "_uscans._tcp", NULL, 0, browse_callback, client))) { - fprintf(stderr, "Failed to create service browser: %s\n", + DBG( 1, "Failed to create service browser: %s\n", avahi_strerror(avahi_client_errno(client))); *status = SANE_STATUS_INVAL; goto fail; diff --git a/backend/escl/escl_jpeg.c b/backend/escl/escl_jpeg.c new file mode 100644 index 000000000..eebe7d161 --- /dev/null +++ b/backend/escl/escl_jpeg.c @@ -0,0 +1,255 @@ +/* sane - Scanner Access Now Easy. + + Copyright (C) 2019 Touboul Nathane + Copyright (C) 2019 Thierry HUCHARD + + This file is part of the SANE package. + + SANE 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 3 of the License, or (at your + option) any later version. + + SANE 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 sane; see the file COPYING. If not, write to the Free + Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + + This file implements a SANE backend for eSCL scanners. */ + +#define DEBUG_DECLARE_ONLY +#include "../include/sane/config.h" + +#include "escl.h" + +#include "../include/sane/sanei.h" + +#include +#include +#include + +#if(defined HAVE_LIBJPEG) +# include +#endif + +#include + +#define INPUT_BUFFER_SIZE 4096 + +#if(defined HAVE_LIBJPEG) +struct my_error_mgr +{ + struct jpeg_error_mgr errmgr; + jmp_buf escape; +}; + +typedef struct +{ + struct jpeg_source_mgr pub; + FILE *ctx; + unsigned char buffer[INPUT_BUFFER_SIZE]; +} my_source_mgr; + +/** + * \fn static boolean fill_input_buffer(j_decompress_ptr cinfo) + * \brief Called in the "skip_input_data" function. + * + * \return TRUE (everything is OK) + */ +static boolean +fill_input_buffer(j_decompress_ptr cinfo) +{ + my_source_mgr *src = (my_source_mgr *) cinfo->src; + int nbytes = 0; + + nbytes = fread(src->buffer, 1, INPUT_BUFFER_SIZE, src->ctx); + if (nbytes <= 0) { + src->buffer[0] = (unsigned char) 0xFF; + src->buffer[1] = (unsigned char) JPEG_EOI; + nbytes = 2; + } + src->pub.next_input_byte = src->buffer; + src->pub.bytes_in_buffer = nbytes; + return (TRUE); +} + +/** + * \fn static void skip_input_data(j_decompress_ptr cinfo, long num_bytes) + * \brief Called in the "jpeg_RW_src" function. + */ +static void +skip_input_data(j_decompress_ptr cinfo, long num_bytes) +{ + my_source_mgr *src = (my_source_mgr *) cinfo->src; + + if (num_bytes > 0) { + while (num_bytes > (long) src->pub.bytes_in_buffer) { + num_bytes -= (long) src->pub.bytes_in_buffer; + (void) src->pub.fill_input_buffer(cinfo); + } + src->pub.next_input_byte += (size_t) num_bytes; + src->pub.bytes_in_buffer -= (size_t) num_bytes; + } +} + +static void +term_source(j_decompress_ptr __sane_unused__ cinfo) +{ + return; +} + +static void +init_source(j_decompress_ptr __sane_unused__ cinfo) +{ + return; +} + +/** + * \fn static void jpeg_RW_src(j_decompress_ptr cinfo, FILE *ctx) + * \brief Called in the "escl_sane_decompressor" function. + */ +static void +jpeg_RW_src(j_decompress_ptr cinfo, FILE *ctx) +{ + my_source_mgr *src; + + if (cinfo->src == NULL) { + cinfo->src = (struct jpeg_source_mgr *)(*cinfo->mem->alloc_small) + ((j_common_ptr) cinfo, JPOOL_PERMANENT, sizeof(my_source_mgr)); + src = (my_source_mgr *) cinfo->src; + } + src = (my_source_mgr *) cinfo->src; + src->pub.init_source = init_source; + src->pub.fill_input_buffer = fill_input_buffer; + src->pub.skip_input_data = skip_input_data; + src->pub.resync_to_restart = jpeg_resync_to_restart; + src->pub.term_source = term_source; + src->ctx = ctx; + src->pub.bytes_in_buffer = 0; + src->pub.next_input_byte = NULL; +} + +static void +my_error_exit(j_common_ptr cinfo) +{ + struct my_error_mgr *err = (struct my_error_mgr *)cinfo->err; + + longjmp(err->escape, 1); +} + +static void +output_no_message(j_common_ptr __sane_unused__ cinfo) +{ +} + +/** + * \fn SANE_Status escl_sane_decompressor(escl_sane_t *handler) + * \brief Function that aims to decompress the jpeg image to SANE be able to read the image. + * This function is called in the "sane_read" function. + * + * \return SANE_STATUS_GOOD (if everything is OK, otherwise, SANE_STATUS_NO_MEM/SANE_STATUS_INVAL) + */ +SANE_Status +get_JPEG_data(capabilities_t *scanner, int *width, int *height, int *bps) +{ + int start = 0; + struct jpeg_decompress_struct cinfo; + JSAMPROW rowptr[1]; + unsigned char *surface = NULL; + struct my_error_mgr jerr; + int lineSize = 0; + JDIMENSION x_off = 0; + JDIMENSION y_off = 0; + JDIMENSION w = 0; + JDIMENSION h = 0; + int pos = 0; + + if (scanner->tmp == NULL) + return (SANE_STATUS_INVAL); + fseek(scanner->tmp, SEEK_SET, 0); + start = ftell(scanner->tmp); + cinfo.err = jpeg_std_error(&jerr.errmgr); + jerr.errmgr.error_exit = my_error_exit; + jerr.errmgr.output_message = output_no_message; + if (setjmp(jerr.escape)) { + jpeg_destroy_decompress(&cinfo); + if (surface != NULL) + free(surface); + fseek(scanner->tmp, start, SEEK_SET); + DBG( 1, "Escl Jpeg : Error reading jpeg\n"); + if (scanner->tmp) { + fclose(scanner->tmp); + scanner->tmp = NULL; + } + return (SANE_STATUS_INVAL); + } + jpeg_create_decompress(&cinfo); + jpeg_RW_src(&cinfo, scanner->tmp); + jpeg_read_header(&cinfo, TRUE); + cinfo.out_color_space = JCS_RGB; + cinfo.quantize_colors = FALSE; + jpeg_calc_output_dimensions(&cinfo); + if (cinfo.output_width < (unsigned int)scanner->width) + scanner->width = cinfo.output_width; + if (scanner->pos_x < 0) + scanner->pos_x = 0; + + if (cinfo.output_height < (unsigned int)scanner->height) + scanner->height = cinfo.output_height; + if (scanner->pos_y < 0) + scanner->pos_y = 0; + + x_off = scanner->pos_x; + w = scanner->width - x_off; + y_off = scanner->pos_y; + h = scanner->height - y_off; + surface = malloc(w * h * cinfo.output_components); + if (surface == NULL) { + jpeg_destroy_decompress(&cinfo); + DBG( 1, "Escl Jpeg : Memory allocation problem\n"); + if (scanner->tmp) { + fclose(scanner->tmp); + scanner->tmp = NULL; + } + return (SANE_STATUS_NO_MEM); + } + jpeg_start_decompress(&cinfo); + if (x_off > 0 || w < cinfo.output_width) + jpeg_crop_scanline(&cinfo, &x_off, &w); + lineSize = w * cinfo.output_components; + if (y_off > 0) + jpeg_skip_scanlines(&cinfo, y_off); + pos = 0; + while (cinfo.output_scanline < (unsigned int)scanner->height) { + rowptr[0] = (JSAMPROW)surface + (lineSize * pos); // ..cinfo.output_scanline); + jpeg_read_scanlines(&cinfo, rowptr, (JDIMENSION) 1); + pos++; + } + scanner->img_data = surface; + scanner->img_size = lineSize * h; + scanner->img_read = 0; + *width = w; + *height = h; + *bps = cinfo.output_components; + jpeg_finish_decompress(&cinfo); + jpeg_destroy_decompress(&cinfo); + fclose(scanner->tmp); + scanner->tmp = NULL; + return (SANE_STATUS_GOOD); +} +#else + +SANE_Status +get_JPEG_data(capabilities_t __sane_unused__ *scanner, + int __sane_unused__ *width, + int __sane_unused__ *height, + int __sane_unused__ *bps) +{ + return (SANE_STATUS_INVAL); +} + +#endif diff --git a/backend/escl/escl_newjob.c b/backend/escl/escl_newjob.c index 559bf9785..084431cc3 100644 --- a/backend/escl/escl_newjob.c +++ b/backend/escl/escl_newjob.c @@ -21,6 +21,9 @@ This file implements a SANE backend for eSCL scanners. */ +#define DEBUG_DECLARE_ONLY +#include "../include/sane/config.h" + #include "escl.h" #include @@ -29,6 +32,12 @@ #include +#ifdef PATH_MAX +# undef PATH_MAX +#endif + +#define PATH_MAX 4096 + struct uploading { const char *read_data; @@ -54,7 +63,7 @@ static const char settings[] = " %d" \ " " \ " " \ - " image/jpeg" \ + " %s" \ "%s" \ " %s" \ " %d" \ @@ -62,9 +71,15 @@ static const char settings[] = " Platen" \ ""; -static const char formatExt[] = +static char formatExtJPEG[] = " image/jpeg"; +static char formatExtPNG[] = + " image/png"; + +static char formatExtTIFF[] = + " image/tiff"; + /** * \fn static size_t download_callback(void *str, size_t size, size_t nmemb, void *userp) * \brief Callback function that stocks in memory the content of the 'job'. Example below : @@ -96,7 +111,7 @@ download_callback(void *str, size_t size, size_t nmemb, void *userp) char *content = realloc(download->memory, download->size + realsize + 1); if (content == NULL) { - fprintf(stderr, "not enough memory (realloc returned NULL)\n"); + DBG( 1, "Not enough memory (realloc returned NULL)\n"); return (0); } download->memory = content; @@ -127,30 +142,48 @@ escl_newjob (capabilities_t *scanner, SANE_String_Const name, SANE_Status *statu char *location = NULL; char *result = NULL; char *temporary = NULL; + char *f_ext = ""; + char *format_ext = NULL; *status = SANE_STATUS_GOOD; if (name == NULL || scanner == NULL) { *status = SANE_STATUS_NO_MEM; + DBG( 1, "Create NewJob : the name or the scan are invalid.\n"); return (NULL); } upload = (struct uploading *)calloc(1, sizeof(struct uploading)); if (upload == NULL) { *status = SANE_STATUS_NO_MEM; + DBG( 1, "Create NewJob : memory allocation failure\n"); return (NULL); } download = (struct downloading *)calloc(1, sizeof(struct downloading)); if (download == NULL) { free(upload); + DBG( 1, "Create NewJob : memory allocation failure\n"); *status = SANE_STATUS_NO_MEM; return (NULL); } - curl_global_init(CURL_GLOBAL_ALL); curl_handle = curl_easy_init(); + if (scanner->format_ext == 1) + { + if (!strcmp(scanner->default_format, "image/jpeg")) + format_ext = formatExtJPEG; + else if (!strcmp(scanner->default_format, "image/png")) + format_ext = formatExtPNG; + else if (!strcmp(scanner->default_format, "image/tiff")) + format_ext = formatExtTIFF; + else + format_ext = f_ext; + } + else + format_ext = f_ext; + DBG( 1, "Create NewJob : %s\n", scanner->default_format); if (curl_handle != NULL) { - snprintf(cap_data, sizeof(cap_data), settings, scanner->height, scanner->width, 0, 0, - (scanner->format_ext == 1 ? formatExt : ""), + snprintf(cap_data, sizeof(cap_data), settings, scanner->height, scanner->width, 0, 0, scanner->default_format, + format_ext, scanner->default_color, scanner->default_resolution, scanner->default_resolution); - //fprintf(stderr, "CAP_DATA = %s\n", cap_data); + DBG( 1, "Create NewJob : %s\n", cap_data); upload->read_data = strdup(cap_data); upload->size = strlen(cap_data); download->memory = malloc(1); @@ -168,37 +201,44 @@ escl_newjob (capabilities_t *scanner, SANE_String_Const name, SANE_Status *statu curl_easy_setopt(curl_handle, CURLOPT_HEADERFUNCTION, download_callback); curl_easy_setopt(curl_handle, CURLOPT_HEADERDATA, (void *)download); if (curl_easy_perform(curl_handle) != CURLE_OK) { - fprintf(stderr, "THERE IS NO SCANNER\n"); + DBG( 1, "Create NewJob : the scanner responded incorrectly.\n"); *status = SANE_STATUS_INVAL; } else { if (download->memory != NULL) { - if (strstr(download->memory, "Location:")) { - temporary = strrchr(download->memory, '/'); + char *tmp_location = strstr(download->memory, "Location:"); + if (tmp_location) { + temporary = strchr(tmp_location, '\r'); + if (temporary == NULL) + temporary = strchr(tmp_location, '\n'); if (temporary != NULL) { - location = strchr(temporary, '\r'); - if (location == NULL) - location = strchr(temporary, '\n'); - else { - *location = '\0'; - result = strdup(temporary); - } + *temporary = '\0'; + location = strrchr(tmp_location,'/'); + if (location) { + result = strdup(location); + DBG( 1, "Create NewJob : %s\n", result); + *temporary = '\n'; + } + } + if (result == NULL) { + DBG( 1, "Error : Create NewJob, no location\n"); + *status = SANE_STATUS_INVAL; } free(download->memory); } else { - fprintf(stderr, "THERE IS NO LOCATION\n"); + DBG( 1, "Create NewJob : The creation of the failed job\n"); *status = SANE_STATUS_INVAL; } } else { *status = SANE_STATUS_NO_MEM; + DBG( 1, "Create NewJob : The creation of the failed job\n"); return (NULL); } } curl_easy_cleanup(curl_handle); } - curl_global_cleanup(); if (upload != NULL) free(upload); if (download != NULL) diff --git a/backend/escl/escl_png.c b/backend/escl/escl_png.c new file mode 100644 index 000000000..cf92449c1 --- /dev/null +++ b/backend/escl/escl_png.c @@ -0,0 +1,196 @@ +/* sane - Scanner Access Now Easy. + + Copyright (C) 2019 Touboul Nathane + Copyright (C) 2019 Thierry HUCHARD + + This file is part of the SANE package. + + SANE 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 3 of the License, or (at your + option) any later version. + + SANE 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 sane; see the file COPYING. If not, write to the Free + Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + + This file implements a SANE backend for eSCL scanners. */ + +#define DEBUG_DECLARE_ONLY +#include "../include/sane/config.h" + +#include "escl.h" + +#include "../include/sane/sanei.h" + +#include +#include +#include + +#if(defined HAVE_LIBPNG) +#include +#endif + +#include + + +#if(defined HAVE_LIBPNG) + +/** + * \fn SANE_Status escl_sane_decompressor(escl_sane_t *handler) + * \brief Function that aims to decompress the png image to SANE be able to read the image. + * This function is called in the "sane_read" function. + * + * \return SANE_STATUS_GOOD (if everything is OK, otherwise, SANE_STATUS_NO_MEM/SANE_STATUS_INVAL) + */ +SANE_Status +get_PNG_data(capabilities_t *scanner, int *width, int *height, int *bps) +{ + unsigned int w = 0; + unsigned int h = 0; + int components = 3; + unsigned char *surface = NULL; /* Image data */ + unsigned int i = 0; + png_byte magic[8]; + SANE_Status status = SANE_STATUS_GOOD; + + // read magic number + fread (magic, 1, sizeof (magic), scanner->tmp); + // check for valid magic number + if (!png_check_sig (magic, sizeof (magic))) + { + DBG( 1, "Escl Png : PNG error is not a valid PNG image!\n"); + status = SANE_STATUS_INVAL; + goto close_file; + } + // create a png read struct + png_structp png_ptr = png_create_read_struct + (PNG_LIBPNG_VER_STRING, NULL, NULL, NULL); + if (!png_ptr) + { + DBG( 1, "Escl Png : PNG error create a png read struct\n"); + status = SANE_STATUS_INVAL; + goto close_file; + } + // create a png info struct + png_infop info_ptr = png_create_info_struct (png_ptr); + if (!info_ptr) + { + DBG( 1, "Escl Png : PNG error create a png info struct\n"); + png_destroy_read_struct (&png_ptr, NULL, NULL); + status = SANE_STATUS_INVAL; + goto close_file; + } + // initialize the setjmp for returning properly after a libpng + // error occured + if (setjmp (png_jmpbuf (png_ptr))) + { + png_destroy_read_struct (&png_ptr, &info_ptr, NULL); + if (surface) + free (surface); + DBG( 1, "Escl Png : PNG read error.\n"); + status = SANE_STATUS_INVAL; + goto close_file; + } + // setup libpng for using standard C fread() function + // with our FILE pointer + png_init_io (png_ptr, scanner->tmp); + // tell libpng that we have already read the magic number + png_set_sig_bytes (png_ptr, sizeof (magic)); + + // read png info + png_read_info (png_ptr, info_ptr); + + int bit_depth, color_type; + // get some usefull information from header + bit_depth = png_get_bit_depth (png_ptr, info_ptr); + color_type = png_get_color_type (png_ptr, info_ptr); + // convert index color images to RGB images + if (color_type == PNG_COLOR_TYPE_PALETTE) + png_set_palette_to_rgb (png_ptr); + else if (color_type != PNG_COLOR_TYPE_RGB && color_type != PNG_COLOR_TYPE_RGB_ALPHA) + { + DBG(1, "PNG format not supported.\n"); + status = SANE_STATUS_NO_MEM; + goto close_file; + } + + if (color_type == PNG_COLOR_TYPE_RGB_ALPHA) + components = 4; + else + components = 3; + + if (png_get_valid (png_ptr, info_ptr, PNG_INFO_tRNS)) + png_set_tRNS_to_alpha (png_ptr); + if (bit_depth == 16) + png_set_strip_16 (png_ptr); + else if (bit_depth < 8) + png_set_packing (png_ptr); + // update info structure to apply transformations + png_read_update_info (png_ptr, info_ptr); + // retrieve updated information + png_get_IHDR (png_ptr, info_ptr, + (png_uint_32*)(&w), + (png_uint_32*)(&h), + &bit_depth, &color_type, + NULL, NULL, NULL); + + *bps = components; + // we can now allocate memory for storing pixel data + surface = (unsigned char *)malloc (sizeof (unsigned char) * w + * h * components); + if (!surface) { + DBG( 1, "Escl Png : texels Memory allocation problem\n"); + status = SANE_STATUS_NO_MEM; + goto close_file; + } + png_bytep *row_pointers; + // setup a pointer array. Each one points at the begening of a row. + row_pointers = (png_bytep *)malloc (sizeof (png_bytep) * h); + if (!row_pointers) { + DBG( 1, "Escl Png : row_pointers Memory allocation problem\n"); + free(surface); + status = SANE_STATUS_NO_MEM; + goto close_file; + } + for (i = 0; i < h; ++i) + { + row_pointers[i] = (png_bytep)(surface + + ((h - (i + 1)) * w * components)); + } + // read pixel data using row pointers + png_read_image (png_ptr, row_pointers); + + // If necessary, trim the image. + surface = escl_crop_surface(scanner, surface, w, h, components, width, height); + if (!surface) { + DBG( 1, "Escl Png : Surface Memory allocation problem\n"); + status = SANE_STATUS_NO_MEM; + goto close_file; + } + + free (row_pointers); + +close_file: + if (scanner->tmp) + fclose(scanner->tmp); + scanner->tmp = NULL; + return (status); +} +#else + +SANE_Status +get_PNG_data(capabilities_t __sane_unused__ *scanner, + int __sane_unused__ *width, + int __sane_unused__ *height, + int __sane_unused__ *bps) +{ + return (SANE_STATUS_INVAL); +} + +#endif diff --git a/backend/escl/escl_reset.c b/backend/escl/escl_reset.c index d5bb2f06c..7722d898d 100644 --- a/backend/escl/escl_reset.c +++ b/backend/escl/escl_reset.c @@ -21,6 +21,9 @@ This file implements a SANE backend for eSCL scanners. */ +#define DEBUG_DECLARE_ONLY +#include "../include/sane/config.h" + #include "escl.h" #include @@ -45,7 +48,6 @@ escl_scanner(SANE_String_Const name, char *result) if (name == NULL || result == NULL) return; - curl_global_init(CURL_GLOBAL_ALL); CURL_CALL: curl_handle = curl_easy_init(); if (curl_handle != NULL) { @@ -54,7 +56,9 @@ CURL_CALL: strcat(scan_cmd, result); strcat(scan_cmd, scanner_start); curl_easy_setopt(curl_handle, CURLOPT_URL, scan_cmd); + DBG( 1, "Reset Job : %s.\n", scan_cmd); if (strncmp(name, "https", 5) == 0) { + DBG( 1, "Ignoring safety certificates, use https\n"); curl_easy_setopt(curl_handle, CURLOPT_SSL_VERIFYPEER, 0L); curl_easy_setopt(curl_handle, CURLOPT_SSL_VERIFYHOST, 0L); } @@ -68,5 +72,4 @@ CURL_CALL: } curl_easy_cleanup(curl_handle); } - curl_global_cleanup(); } diff --git a/backend/escl/escl_scan.c b/backend/escl/escl_scan.c index 03f523448..8f077a132 100644 --- a/backend/escl/escl_scan.c +++ b/backend/escl/escl_scan.c @@ -21,6 +21,9 @@ This file implements a SANE backend for eSCL scanners. */ +#define DEBUG_DECLARE_ONLY +#include "../include/sane/config.h" + #include "escl.h" #include @@ -65,7 +68,6 @@ escl_scan(capabilities_t __sane_unused__ *scanner, SANE_String_Const name, char if (name == NULL) return (SANE_STATUS_NO_MEM); - curl_global_init(CURL_GLOBAL_ALL); curl_handle = curl_easy_init(); if (curl_handle != NULL) { strcpy(scan_cmd, name); @@ -73,7 +75,9 @@ escl_scan(capabilities_t __sane_unused__ *scanner, SANE_String_Const name, char strcat(scan_cmd, result); strcat(scan_cmd, scanner_start); curl_easy_setopt(curl_handle, CURLOPT_URL, scan_cmd); - if (strncmp(name, "https", 5) == 0) { + DBG( 1, "Scan : %s.\n", scan_cmd); + if (strncmp(name, "https", 5) == 0) { + DBG( 1, "Ignoring safety certificates, use https\n"); curl_easy_setopt(curl_handle, CURLOPT_SSL_VERIFYPEER, 0L); curl_easy_setopt(curl_handle, CURLOPT_SSL_VERIFYHOST, 0L); } @@ -90,7 +94,6 @@ escl_scan(capabilities_t __sane_unused__ *scanner, SANE_String_Const name, char } else status = SANE_STATUS_NO_MEM; - curl_global_cleanup(); } return (status); } diff --git a/backend/escl/escl_status.c b/backend/escl/escl_status.c index dcdc14bf6..68b51dcfa 100644 --- a/backend/escl/escl_status.c +++ b/backend/escl/escl_status.c @@ -21,6 +21,9 @@ This file implements a SANE backend for eSCL scanners. */ +#define DEBUG_DECLARE_ONLY +#include "../include/sane/config.h" + #include "escl.h" #include @@ -50,7 +53,7 @@ memory_callback_s(void *contents, size_t size, size_t nmemb, void *userp) char *str = realloc(mem->memory, mem->size + realsize + 1); if (str == NULL) { - fprintf(stderr, "not enough memory (realloc returned NULL)\n"); + DBG(1, "not enough memory (realloc returned NULL)\n"); return (0); } mem->memory = str; @@ -132,19 +135,20 @@ escl_status(SANE_String_Const name) return (SANE_STATUS_NO_MEM); var->memory = malloc(1); var->size = 0; - curl_global_init(CURL_GLOBAL_ALL); curl_handle = curl_easy_init(); strcpy(tmp, name); strcat(tmp, scanner_status); curl_easy_setopt(curl_handle, CURLOPT_URL, tmp); + DBG( 1, "Get Status : %s.\n", tmp); if (strncmp(name, "https", 5) == 0) { + DBG( 1, "Ignoring safety certificates, use https\n"); curl_easy_setopt(curl_handle, CURLOPT_SSL_VERIFYPEER, 0L); curl_easy_setopt(curl_handle, CURLOPT_SSL_VERIFYHOST, 0L); } curl_easy_setopt(curl_handle, CURLOPT_WRITEFUNCTION, memory_callback_s); curl_easy_setopt(curl_handle, CURLOPT_WRITEDATA, (void *)var); if (curl_easy_perform(curl_handle) != CURLE_OK) { - fprintf(stderr, "THERE IS NO SCANNER\n"); + DBG( 1, "The scanner didn't respond.\n"); status = SANE_STATUS_INVAL; goto clean_data; } @@ -168,6 +172,5 @@ clean_data: curl_easy_cleanup(curl_handle); free(var->memory); free(var); - curl_global_cleanup(); return (status); } diff --git a/backend/escl/escl_tiff.c b/backend/escl/escl_tiff.c new file mode 100644 index 000000000..98bc5f31e --- /dev/null +++ b/backend/escl/escl_tiff.c @@ -0,0 +1,118 @@ +/* sane - Scanner Access Now Easy. + + Copyright (C) 2019 Touboul Nathane + Copyright (C) 2019 Thierry HUCHARD + + This file is part of the SANE package. + + SANE 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 3 of the License, or (at your + option) any later version. + + SANE 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 sane; see the file COPYING. If not, write to the Free + Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + + This file implements a SANE backend for eSCL scanners. */ + +#define DEBUG_DECLARE_ONLY +#include "../include/sane/config.h" + +#include "escl.h" + +#include "../include/sane/sanei.h" + +#include +#include +#include +#include + +#if(defined HAVE_TIFFIO_H) +#include +#endif + +#include + + +#if(defined HAVE_TIFFIO_H) + +/** + * \fn SANE_Status escl_sane_decompressor(escl_sane_t *handler) + * \brief Function that aims to decompress the png image to SANE be able to read the image. + * This function is called in the "sane_read" function. + * + * \return SANE_STATUS_GOOD (if everything is OK, otherwise, SANE_STATUS_NO_MEM/SANE_STATUS_INVAL) + */ +SANE_Status +get_TIFF_data(capabilities_t *scanner, int *width, int *height, int *bps) +{ + TIFF* tif = NULL; + uint32 w = 0; + uint32 h = 0; + unsigned char *surface = NULL; /* image data*/ + int components = 4; + uint32 npixels = 0; + SANE_Status status = SANE_STATUS_GOOD; + + lseek(fileno(scanner->tmp), 0, SEEK_SET); + tif = TIFFFdOpen(fileno(scanner->tmp), "temp", "r"); + if (!tif) { + DBG( 1, "Escl Tiff : Can not open, or not a TIFF file.\n"); + status = SANE_STATUS_INVAL; + goto close_file; + } + + TIFFGetField(tif, TIFFTAG_IMAGEWIDTH, &w); + TIFFGetField(tif, TIFFTAG_IMAGELENGTH, &h); + npixels = w * h; + surface = (unsigned char*) malloc(npixels * sizeof (uint32)); + if (surface != NULL) + { + DBG( 1, "Escl Tiff : raster Memory allocation problem.\n"); + status = SANE_STATUS_INVAL; + goto close_tiff; + } + + if (!TIFFReadRGBAImage(tif, w, h, (uint32 *)surface, 0)) + { + DBG( 1, "Escl Tiff : Problem reading image data.\n"); + status = SANE_STATUS_INVAL; + free(surface); + goto close_tiff; + } + + *bps = components; + + // If necessary, trim the image. + surface = escl_crop_surface(scanner, surface, w, h, components, width, height); + if (!surface) { + DBG( 1, "Escl Tiff : Surface Memory allocation problem\n"); + status = SANE_STATUS_INVAL; + } + +close_tiff: + TIFFClose(tif); +close_file: + if (scanner->tmp) + fclose(scanner->tmp); + scanner->tmp = NULL; + return (status); +} +#else + +SANE_Status +get_TIFF_data(capabilities_t __sane_unused__ *scanner, + int __sane_unused__ *w, + int __sane_unused__ *h, + int __sane_unused__ *bps) +{ + return (SANE_STATUS_INVAL); +} + +#endif diff --git a/backend/fujitsu-scsi.h b/backend/fujitsu-scsi.h index 38425a67d..c2b28dd49 100644 --- a/backend/fujitsu-scsi.h +++ b/backend/fujitsu-scsi.h @@ -383,6 +383,9 @@ putnbyte (unsigned char *pnt, unsigned int value, unsigned int nbytes) #define get_IN_op_halt(in) getbitfield(in+0x7a, 1, 7) +#define get_IN_return_path(in) getbitfield(in+0x7c, 1, 7) +#define get_IN_energy_star3(in) getbitfield(in+0x7c, 1, 6) + /* ==================================================================== */ /* page codes used by mode_sense and mode_select */ #define MS_pc_unk 0x2c /* Used by iX500 */ @@ -763,6 +766,7 @@ putnbyte (unsigned char *pnt, unsigned int value, unsigned int nbytes) #define get_GHS_fb_open(in) getbitfield(in+0x03, 1, 3) #define get_GHS_paper_end(in) getbitfield(in+0x03, 1, 2) #define get_GHS_fb_on(in) getbitfield(in+0x03, 1, 1) +#define get_GHS_exit(in) getbitfield(in+0x03, 1, 0) #define get_GHS_sleep(in) getbitfield(in+0x04, 1, 7) #define get_GHS_clean(in) getbitfield(in+0x04, 1, 6) @@ -823,7 +827,8 @@ putnbyte (unsigned char *pnt, unsigned int value, unsigned int nbytes) #define SCANNER_CONTROL_len 10 #define set_SC_ric(icb, val) setbitfield(icb + 1, 1, 4, val) -#define set_SC_function(icb, val) setbitfield(icb + 1, 0xf, 0, val) +#define set_SC_function_1(icb, val) setbitfield(icb + 1, 0xf, 0, val) +#define set_SC_function_2(icb, val) icb[2] = (val >> 4) #define SC_function_adf 0x00 #define SC_function_fb 0x01 #define SC_function_fb_hs 0x02 @@ -836,6 +841,9 @@ putnbyte (unsigned char *pnt, unsigned int value, unsigned int nbytes) #define SC_function_scan_complete 0x09 #define SC_function_eject_complete 0x0a #define SC_function_manual_feed 0x0c +#define SC_function_mfeed 0x0f +#define SC_function_continuous 0x1f +#define SC_function_rpath 0x2f /* used with SC_function_panel */ #define set_SC_led_eb(icb, val) setbitfield(icb + 5, 1, 7, val) diff --git a/backend/fujitsu.c b/backend/fujitsu.c index 5dc466c87..d24975e0f 100644 --- a/backend/fujitsu.c +++ b/backend/fujitsu.c @@ -603,8 +603,12 @@ v134 2019-02-23, MAN - rewrite init_vpd for scanners which fail to report overscan correctly - v135 2019-11-10, MAN + v135 2019-11-10, MAN (SANE 1.0.29) - set has_MS_lamp=0 for fi-72x0, bug #134 + v136 2020-02-07, MAN + - add support for fi-800R + - add support for card scanning slot (Return Path) + - fix bug with reading hardware sensors on first invocation SANE FLOW DIAGRAM @@ -654,7 +658,7 @@ #include "fujitsu.h" #define DEBUG 1 -#define BUILD 134 +#define BUILD 136 /* values for SANE_DEBUG_FUJITSU env var: - errors 5 @@ -678,6 +682,9 @@ #define STRING_ADFFRONT SANE_I18N("ADF Front") #define STRING_ADFBACK SANE_I18N("ADF Back") #define STRING_ADFDUPLEX SANE_I18N("ADF Duplex") +#define STRING_CARDFRONT SANE_I18N("Card Front") +#define STRING_CARDBACK SANE_I18N("Card Back") +#define STRING_CARDDUPLEX SANE_I18N("Card Duplex") #define STRING_LINEART SANE_VALUE_SCAN_MODE_LINEART #define STRING_HALFTONE SANE_VALUE_SCAN_MODE_HALFTONE @@ -1821,6 +1828,12 @@ init_vpd (struct fujitsu *s) DBG (15, " object position halt: %d\n", s->has_op_halt); } + if (payload_off >= 0x7c) { + s->has_return_path = get_IN_return_path(in); + DBG (15, " return path (card) scanning: %d\n", s->has_return_path); + DBG (15, " energy star 3: %d\n", get_IN_energy_star3(in)); + } + DBG (10, "init_vpd: finish\n"); return SANE_STATUS_GOOD; @@ -2498,6 +2511,8 @@ init_user (struct fujitsu *s) s->source = SOURCE_FLATBED; else if(s->has_adf) s->source = SOURCE_ADF_FRONT; + else if(s->has_return_path) + s->source = SOURCE_CARD_FRONT; /* scan mode */ if(s->can_mode[MODE_LINEART]) @@ -2875,6 +2890,16 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option) s->source_list[i++]=STRING_ADFDUPLEX; } } + if(s->has_return_path){ + s->source_list[i++]=STRING_CARDFRONT; + + if(s->has_back){ + s->source_list[i++]=STRING_CARDBACK; + } + if(s->has_duplex){ + s->source_list[i++]=STRING_CARDDUPLEX; + } + } s->source_list[i]=NULL; opt->name = SANE_NAME_SCAN_SOURCE; @@ -3049,7 +3074,7 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option) opt->constraint_type = SANE_CONSTRAINT_RANGE; opt->constraint.range = &s->paper_x_range; - if(s->has_adf){ + if(s->has_adf || s->has_return_path){ opt->cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT; if(s->source == SOURCE_FLATBED){ opt->cap |= SANE_CAP_INACTIVE; @@ -3076,7 +3101,7 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option) opt->constraint_type = SANE_CONSTRAINT_RANGE; opt->constraint.range = &s->paper_y_range; - if(s->has_adf){ + if(s->has_adf || s->has_return_path){ opt->cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT; if(s->source == SOURCE_FLATBED){ opt->cap |= SANE_CAP_INACTIVE; @@ -4474,6 +4499,18 @@ sane_get_option_descriptor (SANE_Handle handle, SANE_Int option) opt->cap = SANE_CAP_INACTIVE; } + if(option==OPT_CARD_LOADED){ + opt->name = "card-loaded"; + opt->title = SANE_I18N ("Card loaded"); + opt->desc = SANE_I18N ("Card slot contains paper"); + opt->type = SANE_TYPE_BOOL; + opt->unit = SANE_UNIT_NONE; + if (s->has_cmd_hw_status && s->has_return_path) + opt->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_HARD_SELECT | SANE_CAP_ADVANCED; + else + opt->cap = SANE_CAP_INACTIVE; + } + if(option==OPT_SLEEP){ opt->name = "power-save"; opt->title = SANE_I18N ("Power saving"); @@ -4697,6 +4734,15 @@ sane_control_option (SANE_Handle handle, SANE_Int option, else if(s->source == SOURCE_ADF_DUPLEX){ strcpy (val, STRING_ADFDUPLEX); } + else if(s->source == SOURCE_CARD_FRONT){ + strcpy (val, STRING_CARDFRONT); + } + else if(s->source == SOURCE_CARD_BACK){ + strcpy (val, STRING_CARDBACK); + } + else if(s->source == SOURCE_CARD_DUPLEX){ + strcpy (val, STRING_CARDDUPLEX); + } return SANE_STATUS_GOOD; case OPT_MODE: @@ -5215,6 +5261,11 @@ sane_control_option (SANE_Handle handle, SANE_Int option, *val_p = s->hw_adf_open; return ret; + case OPT_CARD_LOADED: + ret = get_hardware_status(s,option); + *val_p = s->hw_card_loaded; + return ret; + case OPT_SLEEP: ret = get_hardware_status(s,option); *val_p = s->hw_sleep; @@ -5323,6 +5374,15 @@ sane_control_option (SANE_Handle handle, SANE_Int option, else if (!strcmp (val, STRING_ADFDUPLEX)) { tmp = SOURCE_ADF_DUPLEX; } + else if (!strcmp (val, STRING_CARDFRONT)) { + tmp = SOURCE_CARD_FRONT; + } + else if (!strcmp (val, STRING_CARDBACK)) { + tmp = SOURCE_CARD_BACK; + } + else if (!strcmp (val, STRING_CARDDUPLEX)) { + tmp = SOURCE_CARD_DUPLEX; + } else{ tmp = SOURCE_FLATBED; } @@ -5912,12 +5972,12 @@ get_hardware_status (struct fujitsu *s, SANE_Int option) /* only run this if frontend has already read the last time we got it */ /* or if we don't care for such bookkeeping (private use) */ - if (!option || s->hw_read[option-OPT_TOP]) { + if (!option || !s->hw_data_avail[option-OPT_TOP]) { DBG (15, "get_hardware_status: running\n"); - /* mark all values as unread */ - memset(s->hw_read,0,sizeof(s->hw_read)); + /* mark all values as available */ + memset(s->hw_data_avail,1,sizeof(s->hw_data_avail)); if (s->has_cmd_hw_status){ unsigned char cmd[GET_HW_STATUS_len]; @@ -5950,6 +6010,7 @@ get_hardware_status (struct fujitsu *s, SANE_Int option) s->hw_hopper = get_GHS_hopper(in); s->hw_omr = get_GHS_omr(in); s->hw_adf_open = get_GHS_adf_open(in); + s->hw_card_loaded = get_GHS_exit(in); s->hw_sleep = get_GHS_sleep(in); s->hw_send_sw = get_GHS_send_sw(in); @@ -6015,7 +6076,7 @@ get_hardware_status (struct fujitsu *s, SANE_Int option) } if(option) - s->hw_read[option-OPT_TOP] = 1; + s->hw_data_avail[option-OPT_TOP] = 0; DBG (10, "get_hardware_status: finish\n"); @@ -6905,8 +6966,8 @@ sane_start (SANE_Handle handle) } /* low mem mode messes up the side marker, reset it */ - if(s->source == SOURCE_ADF_DUPLEX && s->low_mem - && s->eof_tx[SIDE_FRONT] && s->eof_tx[SIDE_BACK] + if((s->source == SOURCE_ADF_DUPLEX || s->source == SOURCE_CARD_DUPLEX) + && s->low_mem && s->eof_tx[SIDE_FRONT] && s->eof_tx[SIDE_BACK] ){ s->side = SIDE_BACK; } @@ -6915,7 +6976,7 @@ sane_start (SANE_Handle handle) if(!s->started){ /* load side marker */ - if(s->source == SOURCE_ADF_BACK){ + if(s->source == SOURCE_ADF_BACK || s->source == SOURCE_CARD_BACK){ s->side = SIDE_BACK; } else{ @@ -6936,6 +6997,12 @@ sane_start (SANE_Handle handle) DBG (5, "sane_start: ERROR: cannot control fb, ignoring\n"); } } + else if(s->source == SOURCE_CARD_FRONT || s->source == SOURCE_CARD_BACK || s->source == SOURCE_CARD_DUPLEX){ + ret = scanner_control(s, SC_function_rpath); + if (ret != SANE_STATUS_GOOD) { + DBG (5, "sane_start: ERROR: cannot control rp, ignoring\n"); + } + } else{ ret = scanner_control(s, SC_function_adf); if (ret != SANE_STATUS_GOOD) { @@ -7038,7 +7105,7 @@ sane_start (SANE_Handle handle) } } /* if already running, duplex needs to switch sides */ - else if(s->source == SOURCE_ADF_DUPLEX){ + else if(s->source == SOURCE_ADF_DUPLEX || s->source == SOURCE_CARD_DUPLEX){ s->side = !s->side; } @@ -7047,7 +7114,7 @@ sane_start (SANE_Handle handle) /* otherwise buffered back page will be lost */ /* ingest paper with adf (no-op for fb) */ /* dont call object pos or scan on back side of duplex scan */ - if(s->side == SIDE_FRONT || s->source == SOURCE_ADF_BACK){ + if(s->side == SIDE_FRONT || s->source == SOURCE_ADF_BACK || s->source == SOURCE_CARD_BACK){ s->bytes_rx[0]=0; s->bytes_rx[1]=0; @@ -7095,7 +7162,7 @@ sane_start (SANE_Handle handle) } /* store the number of front bytes */ - if ( s->source != SOURCE_ADF_BACK ){ + if ( s->source != SOURCE_ADF_BACK && s->source != SOURCE_CARD_BACK ){ s->bytes_tot[SIDE_FRONT] = s->s_params.bytes_per_line * s->s_params.lines; s->buff_tot[SIDE_FRONT] = s->buffer_size; @@ -7114,13 +7181,14 @@ sane_start (SANE_Handle handle) } /* store the number of back bytes */ - if ( s->source == SOURCE_ADF_DUPLEX || s->source == SOURCE_ADF_BACK ){ + if ( s->source == SOURCE_ADF_DUPLEX || s->source == SOURCE_ADF_BACK + || s->source == SOURCE_CARD_DUPLEX || s->source == SOURCE_CARD_BACK ){ s->bytes_tot[SIDE_BACK] = s->s_params.bytes_per_line * s->s_params.lines; s->buff_tot[SIDE_BACK] = s->bytes_tot[SIDE_BACK]; /* the back buffer is normally very large, but some scanners or * option combinations dont need it, so we make a small one */ - if(s->low_mem || s->source == SOURCE_ADF_BACK + if(s->low_mem || s->source == SOURCE_ADF_BACK || s->source == SOURCE_CARD_BACK || s->duplex_interlace == DUPLEX_INTERLACE_NONE) s->buff_tot[SIDE_BACK] = s->buffer_size; } @@ -7308,13 +7376,14 @@ scanner_control (struct fujitsu *s, int function) memset(cmd,0,cmdLen); set_SCSI_opcode(cmd, SCANNER_CONTROL_code); - set_SC_function (cmd, function); + set_SC_function_1 (cmd, function); + set_SC_function_2 (cmd, function); DBG (15, "scanner_control: function %d\n",function); /* don't really need to ask for adf if that's the only option */ /* doing so causes the 3091 to complain */ - if(function == SC_function_adf && !s->has_flatbed){ + if(function == SC_function_adf && !s->has_flatbed && !s->has_return_path){ DBG (10, "scanner_control: adf function not required\n"); return ret; } @@ -7486,7 +7555,7 @@ set_window (struct fujitsu *s) set_WPDB_wdblen(header, SW_desc_len); /* init the window block */ - if (s->source == SOURCE_ADF_BACK) { + if (s->source == SOURCE_ADF_BACK || s->source == SOURCE_CARD_BACK) { set_WD_wid (desc1, WD_wid_back); } else{ @@ -7675,7 +7744,7 @@ set_window (struct fujitsu *s) } /* when in duplex mode, copy first desc block into second */ - if (s->source == SOURCE_ADF_DUPLEX) { + if (s->source == SOURCE_ADF_DUPLEX || s->source == SOURCE_CARD_DUPLEX) { memcpy (desc2, desc1, SW_desc_len); set_WD_wid (desc2, WD_wid_back); @@ -7823,7 +7892,7 @@ get_pixelsize(struct fujitsu *s, int actual) } /* - * Issues the SCSI OBJECT POSITION command if an ADF is in use. + * Issues the SCSI OBJECT POSITION command if an ADF or card scanner is in use. */ static SANE_Status object_position (struct fujitsu *s, int action) @@ -7880,9 +7949,9 @@ start_scan (struct fujitsu *s) DBG (10, "start_scan: start\n"); - if (s->source != SOURCE_ADF_DUPLEX) { + if (s->source != SOURCE_ADF_DUPLEX && s->source != SOURCE_CARD_DUPLEX) { outLen--; - if(s->source == SOURCE_ADF_BACK) { + if(s->source == SOURCE_ADF_BACK || s->source == SOURCE_CARD_BACK) { out[0] = WD_wid_back; } } @@ -7983,7 +8052,8 @@ sane_read (SANE_Handle handle, SANE_Byte * buf, SANE_Int max_len, SANE_Int * len /* swap sides if user asked for low-mem mode, we are duplexing, * and there is data waiting on the other side */ - if(s->low_mem && s->source == SOURCE_ADF_DUPLEX + if(s->low_mem + && (s->source == SOURCE_ADF_DUPLEX || s->source == SOURCE_CARD_DUPLEX) && (s->bytes_rx[!s->side] > s->bytes_tx[!s->side] || (s->eof_rx[!s->side] && !s->eof_tx[!s->side]) ) @@ -8013,7 +8083,7 @@ sane_read (SANE_Handle handle, SANE_Byte * buf, SANE_Int max_len, SANE_Int * len } /* end 3091 */ /* alternating jpeg duplex interlacing */ - else if(s->source == SOURCE_ADF_DUPLEX + else if((s->source == SOURCE_ADF_DUPLEX || s->source == SOURCE_CARD_DUPLEX) && s->s_params.format == SANE_FRAME_JPEG && s->jpeg_interlace == JPEG_INTERLACE_ALT ){ @@ -8025,7 +8095,7 @@ sane_read (SANE_Handle handle, SANE_Byte * buf, SANE_Int max_len, SANE_Int * len } /* end alt jpeg */ /* alternating pnm duplex interlacing */ - else if(s->source == SOURCE_ADF_DUPLEX + else if((s->source == SOURCE_ADF_DUPLEX || s->source == SOURCE_CARD_DUPLEX) && s->s_params.format != SANE_FRAME_JPEG && s->duplex_interlace == DUPLEX_INTERLACE_ALT ){ @@ -8080,7 +8150,8 @@ sane_read (SANE_Handle handle, SANE_Byte * buf, SANE_Int max_len, SANE_Int * len /* swap sides if user asked for low-mem mode, we are duplexing, * and there is data waiting on the other side */ - if(s->low_mem && s->source == SOURCE_ADF_DUPLEX + if(s->low_mem + && (s->source == SOURCE_ADF_DUPLEX || s->source == SOURCE_CARD_DUPLEX) && (s->bytes_rx[!s->side] > s->bytes_tx[!s->side] || (s->eof_rx[!s->side] && !s->eof_tx[!s->side]) ) @@ -9291,6 +9362,10 @@ sense_handler (int fd, unsigned char * sensed_data, void *arg) DBG (5, "Medium error: Carrier sheet\n"); return SANE_STATUS_JAMMED; } + if (0x0c == ascq) { + DBG (5, "Medium error: ADF blocked by card\n"); + return SANE_STATUS_JAMMED; + } if (0x10 == ascq) { DBG (5, "Medium error: no ink cartridge\n"); return SANE_STATUS_IO_ERROR; @@ -10092,7 +10167,9 @@ buffer_deskew(struct fujitsu *s, int side) DBG (10, "buffer_deskew: start\n"); /*only find skew on first image from a page, or if first image had error */ - if(s->side == SIDE_FRONT || s->source == SOURCE_ADF_BACK || s->deskew_stat){ + if(s->side == SIDE_FRONT + || s->source == SOURCE_ADF_BACK || s->source == SOURCE_CARD_BACK + || s->deskew_stat){ s->deskew_stat = sanei_magic_findSkew( &s->s_params,s->buffers[side],s->resolution_x,s->resolution_y, diff --git a/backend/fujitsu.conf.in b/backend/fujitsu.conf.in index 4f2b1a9a5..0676def3a 100644 --- a/backend/fujitsu.conf.in +++ b/backend/fujitsu.conf.in @@ -255,3 +255,6 @@ usb 0x04c5 0x1522 #ScanSnap iX1500 usb 0x04c5 0x159f + +#fi-800R +usb 0x04c5 0x15fc diff --git a/backend/fujitsu.h b/backend/fujitsu.h index 4c2047477..3b3ce54ca 100644 --- a/backend/fujitsu.h +++ b/backend/fujitsu.h @@ -112,6 +112,7 @@ enum fujitsu_Option OPT_HOPPER, OPT_OMR, OPT_ADF_OPEN, + OPT_CARD_LOADED, OPT_SLEEP, OPT_SEND_SW, OPT_MANUAL_FEED, @@ -277,6 +278,7 @@ struct fujitsu int has_comp_JPG2; int has_comp_JPG3; int has_op_halt; + int has_return_path; /*FIXME: more endorser data? */ int endorser_type_f; @@ -361,7 +363,7 @@ struct fujitsu /*mode group*/ SANE_String_Const mode_list[7]; - SANE_String_Const source_list[5]; + SANE_String_Const source_list[8]; SANE_Int res_list[17]; SANE_Range res_range; @@ -599,6 +601,7 @@ struct fujitsu int hw_hopper; int hw_omr; int hw_adf_open; + int hw_card_loaded; int hw_sleep; int hw_send_sw; @@ -618,7 +621,7 @@ struct fujitsu int hw_density_sw; /* values which are used to track the frontend's access to sensors */ - char hw_read[NUM_OPTIONS-OPT_TOP]; + char hw_data_avail[NUM_OPTIONS-OPT_TOP]; }; #define CONNECTION_SCSI 0 /* SCSI interface */ @@ -631,6 +634,9 @@ struct fujitsu #define SOURCE_ADF_FRONT 1 #define SOURCE_ADF_BACK 2 #define SOURCE_ADF_DUPLEX 3 +#define SOURCE_CARD_FRONT 4 +#define SOURCE_CARD_BACK 5 +#define SOURCE_CARD_DUPLEX 6 #define COMP_NONE WD_cmp_NONE #define COMP_JPEG WD_cmp_JPG1 diff --git a/backend/genesys.conf.in b/backend/genesys.conf.in index 603688904..786ccd56b 100644 --- a/backend/genesys.conf.in +++ b/backend/genesys.conf.in @@ -11,7 +11,7 @@ # Hewlett Packard ScanJet 2400c usb 0x03f0 0x0a01 -# Hewlett Packard ScanJet 3670c/3690c +# Hewlett Packard ScanJet 3670/3690c usb 0x03f0 0x1405 # Plustek OpticPro ST24 diff --git a/backend/genesys/calibration.h b/backend/genesys/calibration.h index f14aaa368..81d94eaf6 100644 --- a/backend/genesys/calibration.h +++ b/backend/genesys/calibration.h @@ -63,8 +63,7 @@ struct Genesys_Calibration_Cache Genesys_Frontend frontend; Genesys_Sensor sensor; - size_t calib_pixels = 0; - size_t calib_channels = 0; + ScanSession session; size_t average_size = 0; std::vector white_average_data; std::vector dark_average_data; @@ -75,8 +74,7 @@ struct Genesys_Calibration_Cache last_calibration == other.last_calibration && frontend == other.frontend && sensor == other.sensor && - calib_pixels == other.calib_pixels && - calib_channels == other.calib_channels && + session == other.session && average_size == other.average_size && white_average_data == other.white_average_data && dark_average_data == other.dark_average_data; @@ -94,8 +92,7 @@ void serialize(Stream& str, Genesys_Calibration_Cache& x) serialize_newline(str); serialize(str, x.sensor); serialize_newline(str); - serialize(str, x.calib_pixels); - serialize(str, x.calib_channels); + serialize(str, x.session); serialize(str, x.average_size); serialize_newline(str); serialize(str, x.white_average_data); diff --git a/backend/genesys/command_set.h b/backend/genesys/command_set.h index ab3a4b607..0b1591a9c 100644 --- a/backend/genesys/command_set.h +++ b/backend/genesys/command_set.h @@ -70,11 +70,10 @@ public: Genesys_Register_Set* regs, int* channels, int* total_size) const = 0; - virtual void init_regs_for_coarse_calibration(Genesys_Device* dev, const Genesys_Sensor& sensor, - Genesys_Register_Set& regs) const = 0; virtual void init_regs_for_shading(Genesys_Device* dev, const Genesys_Sensor& sensor, Genesys_Register_Set& regs) const = 0; - virtual void init_regs_for_scan(Genesys_Device* dev, const Genesys_Sensor& sensor) const = 0; + virtual void init_regs_for_scan(Genesys_Device* dev, const Genesys_Sensor& sensor, + Genesys_Register_Set& regs) const = 0; /** Set up registers for a scan. Similar to init_regs_for_scan except that the session is already computed from the session @@ -98,7 +97,6 @@ public: */ virtual void send_gamma_table(Genesys_Device* dev, const Genesys_Sensor& sensor) const = 0; - virtual void search_start_position(Genesys_Device* dev) const = 0; virtual void offset_calibration(Genesys_Device* dev, const Genesys_Sensor& sensor, Genesys_Register_Set& regs) const = 0; virtual void coarse_gain_calibration(Genesys_Device* dev, const Genesys_Sensor& sensor, @@ -134,11 +132,6 @@ public: /// eject document from scanner virtual void eject_document(Genesys_Device* dev) const = 0; - /** - * search for an black or white area in forward or reverse - * direction */ - virtual void search_strip(Genesys_Device* dev, const Genesys_Sensor& sensor, - bool forward, bool black) const = 0; /// move scanning head to transparency adapter virtual void move_to_ta(Genesys_Device* dev) const = 0; @@ -159,6 +152,16 @@ public: /// cold boot init function virtual void asic_boot(Genesys_Device* dev, bool cold) const = 0; + + /// checks if specific scan head is at home position + virtual bool is_head_home(Genesys_Device& dev, ScanHeadId scan_head) const = 0; + + /// enables or disables XPA slider motor + virtual void set_xpa_lamp_power(Genesys_Device& dev, bool set) const = 0; + + /// enables or disables XPA slider motor + virtual void set_motor_mode(Genesys_Device& dev, Genesys_Register_Set& regs, + MotorMode mode) const = 0; }; } // namespace genesys diff --git a/backend/genesys/command_set_common.cpp b/backend/genesys/command_set_common.cpp new file mode 100644 index 000000000..fa34d34f7 --- /dev/null +++ b/backend/genesys/command_set_common.cpp @@ -0,0 +1,234 @@ +/* sane - Scanner Access Now Easy. + + Copyright (C) 2019 Povilas Kanapickas + + 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. +*/ + +#define DEBUG_DECLARE_ONLY + +#include "command_set_common.h" +#include "low.h" + +namespace genesys { + +CommandSetCommon::~CommandSetCommon() = default; + +bool CommandSetCommon::is_head_home(Genesys_Device& dev, ScanHeadId scan_head) const +{ + struct HeadSettings { + ModelId model_id; + ScanHeadId scan_head; + GenesysRegisterSettingSet regs; + }; + + HeadSettings settings[] = { + { ModelId::CANON_8600F, + ScanHeadId::PRIMARY, { + { 0x6c, 0x20, 0x60 }, + { 0xa6, 0x00, 0x01 }, + } + }, + { ModelId::CANON_8600F, + ScanHeadId::SECONDARY, { + { 0x6c, 0x00, 0x60 }, + { 0xa6, 0x01, 0x01 }, + } + }, + }; + + for (const auto& setting : settings) { + if (setting.model_id == dev.model->model_id && + setting.scan_head == scan_head) + { + auto reg_backup = apply_reg_settings_to_device_with_backup(dev, setting.regs); + auto status = scanner_read_status(dev); + apply_reg_settings_to_device(dev, reg_backup); + return status.is_at_home; + } + } + + auto status = scanner_read_status(dev); + return status.is_at_home; +} + +void CommandSetCommon::set_xpa_lamp_power(Genesys_Device& dev, bool set) const + +{ + DBG_HELPER(dbg); + + struct LampSettings { + ModelId model_id; + ScanMethod scan_method; + GenesysRegisterSettingSet regs_on; + GenesysRegisterSettingSet regs_off; + }; + + // FIXME: BUG: we're not clearing the registers to the previous state when returning back when + // turning off the lamp + LampSettings settings[] = { + { ModelId::CANON_4400F, ScanMethod::TRANSPARENCY, {}, {} }, + { ModelId::CANON_8400F, ScanMethod::TRANSPARENCY, { + { 0xa6, 0x34, 0xf4 }, + }, { + { 0xa6, 0x40, 0x70 }, + } + }, + { ModelId::CANON_8400F, ScanMethod::TRANSPARENCY_INFRARED, { + { 0x6c, 0x40, 0x40 }, + { 0xa6, 0x01, 0xff }, + }, { + { 0x6c, 0x00, 0x40 }, + { 0xa6, 0x00, 0xff }, + } + }, + { ModelId::CANON_8600F, ScanMethod::TRANSPARENCY, { + { 0xa6, 0x34, 0xf4 }, + { 0xa7, 0xe0, 0xe0 }, + }, { + { 0xa6, 0x40, 0x70 }, + } + }, + { ModelId::CANON_8600F, ScanMethod::TRANSPARENCY_INFRARED, { + { 0xa6, 0x00, 0xc0 }, + { 0xa7, 0xe0, 0xe0 }, + { 0x6c, 0x80, 0x80 }, + }, { + { 0xa6, 0x00, 0xc0 }, + { 0x6c, 0x00, 0x80 }, + } + }, + { ModelId::PLUSTEK_OPTICFILM_7200I, ScanMethod::TRANSPARENCY, {}, {} }, + { ModelId::PLUSTEK_OPTICFILM_7200I, ScanMethod::TRANSPARENCY_INFRARED, { + { 0xa8, 0x07, 0x07 }, + }, { + { 0xa8, 0x00, 0x07 }, + } + }, + { ModelId::PLUSTEK_OPTICFILM_7300, ScanMethod::TRANSPARENCY, {}, {} }, + { ModelId::PLUSTEK_OPTICFILM_7500I, ScanMethod::TRANSPARENCY, {}, {} }, + { ModelId::PLUSTEK_OPTICFILM_7500I, ScanMethod::TRANSPARENCY_INFRARED, { + { 0xa8, 0x07, 0x07 }, + }, { + { 0xa8, 0x00, 0x07 }, + } + }, + }; + + for (const auto& setting : settings) { + if (setting.model_id == dev.model->model_id && + setting.scan_method == dev.settings.scan_method) + { + apply_reg_settings_to_device(dev, set ? setting.regs_on : setting.regs_off); + return; + } + } + + throw SaneException("Could not find XPA lamp settings"); +} + + +void CommandSetCommon::set_motor_mode(Genesys_Device& dev, Genesys_Register_Set& regs, + MotorMode mode) const +{ + DBG_HELPER(dbg); + + struct MotorSettings { + ModelId model_id; + ResolutionFilter resolutions; + GenesysRegisterSettingSet regs_primary_and_secondary; + GenesysRegisterSettingSet regs_primary; + GenesysRegisterSettingSet regs_secondary; + }; + + MotorSettings settings[] = { + { ModelId::CANON_8400F, { 400, 800, 1600, 3200 }, { + { 0x6c, 0x00, 0x90 }, + { 0xa9, 0x04, 0x06 }, + }, { + { 0x6c, 0x90, 0x90 }, + { 0xa9, 0x02, 0x06 }, + }, {} + }, + { ModelId::CANON_8600F, { 300, 600, 1200 }, { + { 0x6c, 0x00, 0x60 }, + { 0xa6, 0x01, 0x41 }, + }, { + { 0x6c, 0x20, 0x62 }, + { 0xa6, 0x00, 0x41 }, + }, { + { 0x6c, 0x40, 0x62 }, + { 0xa6, 0x01, 0x41 }, + } + }, + { ModelId::CANON_8600F, { 2400, 4800 }, { + { 0x6c, 0x02, 0x62 }, + { 0xa6, 0x01, 0x41 }, + }, { + { 0x6c, 0x20, 0x62 }, + { 0xa6, 0x00, 0x41 }, + }, { + { 0x6c, 0x40, 0x62 }, + { 0xa6, 0x01, 0x41 }, + } + }, + { ModelId::HP_SCANJET_G4050, ResolutionFilter::ANY, { + { 0x6b, 0x81, 0x81 }, // set MULTFILM and GPOADF + { 0x6c, 0x00, 0x40 }, // note that reverse change is not applied on off + // 0xa6 register 0x08 bit likely sets motor power. No move at all without that one + { 0xa6, 0x08, 0x08 }, // note that reverse change is not applied on off + { 0xa8, 0x00, 0x04 }, + { 0xa9, 0x30, 0x30 }, + }, { + { 0x6b, 0x00, 0x01 }, // BUG: note that only ADF is unset + { 0xa8, 0x04, 0x04 }, + { 0xa9, 0x00, 0x10 }, // note that 0x20 bit is not reset + }, {} + }, + { ModelId::PLUSTEK_OPTICFILM_7200I, ResolutionFilter::ANY, {}, {}, {} }, + { ModelId::PLUSTEK_OPTICFILM_7300, ResolutionFilter::ANY, {}, {}, {} }, + { ModelId::PLUSTEK_OPTICFILM_7500I, ResolutionFilter::ANY, {}, {}, {} }, + }; + + for (const auto& setting : settings) { + if (setting.model_id == dev.model->model_id && + setting.resolutions.matches(dev.session.output_resolution)) + { + switch (mode) { + case MotorMode::PRIMARY: { + apply_reg_settings_to_device(dev, setting.regs_primary); + break; + } + case MotorMode::PRIMARY_AND_SECONDARY: { + apply_reg_settings_to_device(dev, setting.regs_primary_and_secondary); + break; + } + case MotorMode::SECONDARY: { + apply_reg_settings_to_device(dev, setting.regs_secondary); + break; + } + } + regs.state.motor_mode = mode; + return; + } + } + + throw SaneException("Motor settings have not been found"); +} + +} // namespace genesys diff --git a/backend/genesys/command_set_common.h b/backend/genesys/command_set_common.h new file mode 100644 index 000000000..784fcd732 --- /dev/null +++ b/backend/genesys/command_set_common.h @@ -0,0 +1,48 @@ +/* sane - Scanner Access Now Easy. + + Copyright (C) 2019 Povilas Kanapickas + + 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. +*/ + +#ifndef BACKEND_GENESYS_COMMAND_SET_COMMON_H +#define BACKEND_GENESYS_COMMAND_SET_COMMON_H + +#include "command_set.h" + +namespace genesys { + + +/** Common command set functionality + */ +class CommandSetCommon : public CommandSet +{ +public: + ~CommandSetCommon() override; + + bool is_head_home(Genesys_Device& dev, ScanHeadId scan_head) const override; + + void set_xpa_lamp_power(Genesys_Device& dev, bool set) const override; + + void set_motor_mode(Genesys_Device& dev, Genesys_Register_Set& regs, + MotorMode mode) const override; +}; + +} // namespace genesys + +#endif // BACKEND_GENESYS_COMMAND_SET_COMMON_H diff --git a/backend/genesys/device.cpp b/backend/genesys/device.cpp index ba035fd16..fcfc38b92 100644 --- a/backend/genesys/device.cpp +++ b/backend/genesys/device.cpp @@ -62,15 +62,24 @@ std::vector MethodResolutions::get_resolutions() const return ret; } -const MethodResolutions& Genesys_Model::get_resolution_settings(ScanMethod method) const +const MethodResolutions* Genesys_Model::get_resolution_settings_ptr(ScanMethod method) const { for (const auto& res_for_method : resolutions) { for (auto res_method : res_for_method.methods) { if (res_method == method) { - return res_for_method; + return &res_for_method; } } } + return nullptr; + +} +const MethodResolutions& Genesys_Model::get_resolution_settings(ScanMethod method) const +{ + const auto* ptr = get_resolution_settings_ptr(method); + if (ptr) + return *ptr; + throw SaneException("Could not find resolution settings for method %d", static_cast(method)); } @@ -80,6 +89,12 @@ std::vector Genesys_Model::get_resolutions(ScanMethod method) const return get_resolution_settings(method).get_resolutions(); } +bool Genesys_Model::has_method(ScanMethod method) const +{ + return get_resolution_settings_ptr(method) != nullptr; +} + + Genesys_Device::~Genesys_Device() { clear(); @@ -124,10 +139,14 @@ unsigned Genesys_Device::head_pos(ScanHeadId scan_head) const } } -void Genesys_Device::set_head_pos_unknown() +void Genesys_Device::set_head_pos_unknown(ScanHeadId scan_head) { - is_head_pos_primary_known_ = false; - is_head_pos_secondary_known_ = false; + if ((scan_head & ScanHeadId::PRIMARY) != ScanHeadId::NONE) { + is_head_pos_primary_known_ = false; + } + if ((scan_head & ScanHeadId::SECONDARY) != ScanHeadId::NONE) { + is_head_pos_secondary_known_ = false; + } } void Genesys_Device::set_head_pos_zero(ScanHeadId scan_head) @@ -205,11 +224,10 @@ std::ostream& operator<<(std::ostream& out, const Genesys_Device& dev) << " ignore_offsets: " << dev.ignore_offsets << '\n' << " model: (not printed)\n" << " reg: " << format_indent_braced_list(4, dev.reg) << '\n' - << " calib_reg: " << format_indent_braced_list(4, dev.calib_reg) << '\n' + << " initial_regs: " << format_indent_braced_list(4, dev.initial_regs) << '\n' << " settings: " << format_indent_braced_list(4, dev.settings) << '\n' << " frontend: " << format_indent_braced_list(4, dev.frontend) << '\n' << " frontend_initial: " << format_indent_braced_list(4, dev.frontend_initial) << '\n' - << " frontend_is_init: " << dev.frontend_is_init << '\n' << " gpo.regs: " << format_indent_braced_list(4, dev.gpo.regs) << '\n' << " motor: " << format_indent_braced_list(4, dev.motor) << '\n' << " control[0..6]: " << std::hex @@ -220,13 +238,7 @@ std::ostream& operator<<(std::ostream& out, const Genesys_Device& dev) << static_cast(dev.control[4]) << ' ' << static_cast(dev.control[5]) << '\n' << std::dec << " average_size: " << dev.average_size << '\n' - << " calib_pixels: " << dev.calib_pixels << '\n' - << " calib_lines: " << dev.calib_lines << '\n' - << " calib_channels: " << dev.calib_channels << '\n' - << " calib_resolution: " << dev.calib_resolution << '\n' - << " calib_total_bytes_to_read: " << dev.calib_total_bytes_to_read << '\n' << " calib_session: " << format_indent_braced_list(4, dev.calib_session) << '\n' - << " calib_pixels_offset: " << dev.calib_pixels_offset << '\n' << " gamma_override_tables[0].size(): " << dev.gamma_override_tables[0].size() << '\n' << " gamma_override_tables[1].size(): " << dev.gamma_override_tables[1].size() << '\n' << " gamma_override_tables[2].size(): " << dev.gamma_override_tables[2].size() << '\n' @@ -262,11 +274,25 @@ std::ostream& operator<<(std::ostream& out, const Genesys_Device& dev) void apply_reg_settings_to_device(Genesys_Device& dev, const GenesysRegisterSettingSet& regs) { + apply_reg_settings_to_device_with_backup(dev, regs); +} + +GenesysRegisterSettingSet + apply_reg_settings_to_device_with_backup(Genesys_Device& dev, + const GenesysRegisterSettingSet& regs) +{ + GenesysRegisterSettingSet backup; for (const auto& reg : regs) { - uint8_t val = dev.interface->read_register(reg.address); - val = (val & ~reg.mask) | (reg.value & reg.mask); - dev.interface->write_register(reg.address, val); + std::uint8_t old_val = dev.interface->read_register(reg.address); + std::uint8_t new_val = (old_val & ~reg.mask) | (reg.value & reg.mask); + dev.interface->write_register(reg.address, new_val); + + using SettingType = GenesysRegisterSettingSet::SettingType; + backup.push_back(SettingType{reg.address, + static_cast(old_val & reg.mask), + reg.mask}); } + return backup; } } // namespace genesys diff --git a/backend/genesys/device.h b/backend/genesys/device.h index 6c744c9bd..182c6ddf4 100644 --- a/backend/genesys/device.h +++ b/backend/genesys/device.h @@ -55,6 +55,7 @@ #include "register.h" #include "usb_device.h" #include "scanner_interface.h" +#include "utilities.h" #include namespace genesys { @@ -77,24 +78,6 @@ struct Genesys_Gpo GenesysRegisterSettingSet regs; }; -/// Stores a SANE_Fixed value which is automatically converted from and to floating-point values -class FixedFloat -{ -public: - FixedFloat() = default; - FixedFloat(const FixedFloat&) = default; - FixedFloat(double number) : value_{SANE_FIX(number)} {} - FixedFloat& operator=(const FixedFloat&) = default; - FixedFloat& operator=(double number) { value_ = SANE_FIX(number); return *this; } - - operator double() const { return value(); } - - double value() const { return SANE_UNFIX(value_); } - -private: - SANE_Fixed value_ = 0; -}; - struct MethodResolutions { std::vector methods; @@ -143,49 +126,65 @@ struct Genesys_Model // All offsets below are with respect to the sensor home position // Start of scan area in mm - FixedFloat x_offset = 0; + float x_offset = 0; // Start of scan area in mm (Amount of feeding needed to get to the medium) - FixedFloat y_offset = 0; + float y_offset = 0; // Size of scan area in mm - FixedFloat x_size = 0; + float x_size = 0; // Size of scan area in mm - FixedFloat y_size = 0; + float y_size = 0; - // Start of white strip in mm - FixedFloat y_offset_calib_white = 0; + // Start of white strip in mm for scanners that use separate dark and white shading calibration. + float y_offset_calib_white = 0; + + // The size of the scan area that is used to acquire shading data in mm + float y_size_calib_mm = 0; + + // Start of the black/white strip in mm for scanners that use unified dark and white shading + // calibration. + float y_offset_calib_dark_white_mm = 0; + + // The size of the scan area that is used to acquire dark/white shading data in mm + float y_size_calib_dark_white_mm = 0; + + // The width of the scan area that is used to acquire shading data + float x_size_calib_mm = 0; // Start of black mark in mm - FixedFloat x_offset_calib_black = 0; + float x_offset_calib_black = 0; // Start of scan area in transparency mode in mm - FixedFloat x_offset_ta = 0; + float x_offset_ta = 0; // Start of scan area in transparency mode in mm - FixedFloat y_offset_ta = 0; + float y_offset_ta = 0; // Size of scan area in transparency mode in mm - FixedFloat x_size_ta = 0; + float x_size_ta = 0; // Size of scan area in transparency mode in mm - FixedFloat y_size_ta = 0; + float y_size_ta = 0; // The position of the sensor when it's aligned with the lamp for transparency scanning - FixedFloat y_offset_sensor_to_ta = 0; + float y_offset_sensor_to_ta = 0; // Start of white strip in transparency mode in mm - FixedFloat y_offset_calib_white_ta = 0; + float y_offset_calib_white_ta = 0; // Start of black strip in transparency mode in mm - FixedFloat y_offset_calib_black_ta = 0; + float y_offset_calib_black_ta = 0; + + // The size of the scan area that is used to acquire shading data in transparency mode in mm + float y_size_calib_ta_mm = 0; // Size of scan area after paper sensor stop sensing document in mm - FixedFloat post_scan = 0; + float post_scan = 0; // Amount of feeding needed to eject document after finishing scanning in mm - FixedFloat eject_feed = 0; + float eject_feed = 0; // Line-distance correction (in pixel at optical_ydpi) for CCD scanners SANE_Int ld_shift_r = 0; @@ -210,22 +209,24 @@ struct Genesys_Model // stepper motor type MotorId motor_id = MotorId::UNKNOWN; - // Which hacks are needed for this scanner? - SANE_Word flags = 0; + // Which customizations are needed for this scanner? + ModelFlag flags = ModelFlag::NONE; // Button flags, described existing buttons for the model SANE_Word buttons = 0; - // how many lines are used for shading calibration - SANE_Int shading_lines = 0; - // how many lines are used for shading calibration in TA mode - SANE_Int shading_ta_lines = 0; // how many lines are used to search start position SANE_Int search_lines = 0; + // returns nullptr if method is not supported + const MethodResolutions* get_resolution_settings_ptr(ScanMethod method) const; + + // throws if method is not supported const MethodResolutions& get_resolution_settings(ScanMethod method) const; std::vector get_resolutions(ScanMethod method) const; + + bool has_method(ScanMethod method) const; }; /** @@ -267,36 +268,18 @@ struct Genesys_Device std::unique_ptr cmd_set; Genesys_Register_Set reg; - Genesys_Register_Set calib_reg; + Genesys_Register_Set initial_regs; Genesys_Settings settings; Genesys_Frontend frontend, frontend_initial; - - // whether the frontend is initialized. This is currently used just to preserve historical - // behavior - bool frontend_is_init = false; - Genesys_Gpo gpo; Genesys_Motor motor; std::uint8_t control[6] = {}; size_t average_size = 0; - // number of pixels used during shading calibration - size_t calib_pixels = 0; - // number of lines used during shading calibration - size_t calib_lines = 0; - size_t calib_channels = 0; - size_t calib_resolution = 0; - // bytes to read from USB when calibrating. If 0, this is not set - size_t calib_total_bytes_to_read = 0; // the session that was configured for calibration ScanSession calib_session; - // certain scanners support much higher resolution when scanning transparency, but we can't - // read whole width of the scanner as a single line at that resolution. Thus for stuff like - // calibration we want to read only the possible calibration area. - size_t calib_pixels_offset = 0; - // gamma overrides. If a respective array is not empty then it means that the gamma for that // color is overridden. std::vector gamma_override_tables[3]; @@ -360,7 +343,7 @@ struct Genesys_Device bool is_head_pos_known(ScanHeadId scan_head) const; unsigned head_pos(ScanHeadId scan_head) const; - void set_head_pos_unknown(); + void set_head_pos_unknown(ScanHeadId scan_head); void set_head_pos_zero(ScanHeadId scan_head); void advance_head_pos_by_session(ScanHeadId scan_head); void advance_head_pos_by_steps(ScanHeadId scan_head, Direction direction, unsigned steps); @@ -382,6 +365,10 @@ std::ostream& operator<<(std::ostream& out, const Genesys_Device& dev); void apply_reg_settings_to_device(Genesys_Device& dev, const GenesysRegisterSettingSet& regs); +GenesysRegisterSettingSet + apply_reg_settings_to_device_with_backup(Genesys_Device& dev, + const GenesysRegisterSettingSet& regs); + } // namespace genesys #endif diff --git a/backend/genesys/enums.h b/backend/genesys/enums.h index c14f6c406..ddcfc11a5 100644 --- a/backend/genesys/enums.h +++ b/backend/genesys/enums.h @@ -192,7 +192,7 @@ enum class ModelId : unsigned DCT_DOCKETPORT_487, HP_SCANJET_2300C, HP_SCANJET_2400C, - HP_SCANJET_3670C, + HP_SCANJET_3670, HP_SCANJET_4850C, HP_SCANJET_G4010, HP_SCANJET_G4050, @@ -431,6 +431,76 @@ enum class AsicType : unsigned }; +enum class ModelFlag : unsigned +{ + // no flags + NONE = 0, + + // scanner is not tested, print a warning as it's likely it won't work + UNTESTED = 1 << 0, + + // use 14-bit gamma table instead of 12-bit + GAMMA_14BIT = 1 << 1, + + // skip lamp warmup (genesys_warmup()) + SKIP_WARMUP = 1 << 4, + + // repark head and check for lock by moving without scanning + REPARK = 1 << 7, + + // do dark calibration + DARK_CALIBRATION = 1 << 8, + + // whether scanner must wait for the head while parking + MUST_WAIT = 1 << 10, + + // do dark and white calibration in one run + DARK_WHITE_CALIBRATION = 1 << 12, + + // allow custom gamma tables + CUSTOM_GAMMA = 1 << 13, + + // skip calibration completely, this is needed for sheet-fed scanners + NO_CALIBRATION = 1 << 14, + + // the scanner uses multi-segment sensors that must be handled during calibration + SIS_SENSOR = 1 << 16, + + // the head must be reparked between shading scans + SHADING_REPARK = 1 << 18, + + // the scanner always uses maximum hwdpi to setup the sensor + FULL_HWDPI_MODE = 1 << 19, + + // the scanner outputs 16-bit data that is byte-inverted + INVERTED_16BIT_DATA = 1 << 20, + + // the scanner has transparency, but it's implemented using only one motor + UTA_NO_SECONDARY_MOTOR = 1 << 21 +}; + +inline ModelFlag operator|(ModelFlag left, ModelFlag right) +{ + return static_cast(static_cast(left) | static_cast(right)); +} + +inline ModelFlag& operator|=(ModelFlag& left, ModelFlag right) +{ + left = left | right; + return left; +} + +inline ModelFlag operator&(ModelFlag left, ModelFlag right) +{ + return static_cast(static_cast(left) & static_cast(right)); +} + +inline bool has_flag(ModelFlag flags, ModelFlag which) +{ + return (flags & which) == which; +} + + enum class ScanFlag : unsigned { NONE = 0, @@ -438,14 +508,22 @@ enum class ScanFlag : unsigned DISABLE_SHADING = 1 << 1, DISABLE_GAMMA = 1 << 2, DISABLE_BUFFER_FULL_MOVE = 1 << 3, - IGNORE_LINE_DISTANCE = 1 << 4, - DISABLE_LAMP = 1 << 5, - CALIBRATION = 1 << 6, - FEEDING = 1 << 7, - USE_XPA = 1 << 8, - ENABLE_LEDADD = 1 << 9, - USE_XCORRECTION = 1 << 10, - REVERSE = 1 << 11, + + // if this flag is set the sensor will always be handled ignoring staggering of multiple + // sensors to achieve high resolution. + IGNORE_STAGGER_OFFSET = 1 << 4, + + // if this flag is set the sensor will always be handled as if the components that scan + // different colors are at the same position. + IGNORE_COLOR_OFFSET = 1 << 5, + + DISABLE_LAMP = 1 << 6, + CALIBRATION = 1 << 7, + FEEDING = 1 << 8, + USE_XPA = 1 << 9, + ENABLE_LEDADD = 1 << 10, + USE_XCORRECTION = 1 << 11, + REVERSE = 1 << 12, }; inline ScanFlag operator|(ScanFlag left, ScanFlag right) @@ -524,6 +602,12 @@ enum class Direction : unsigned BACKWARD = 1 }; +enum class MotorMode : unsigned +{ + PRIMARY = 0, + PRIMARY_AND_SECONDARY, + SECONDARY, +}; } // namespace genesys diff --git a/backend/genesys/fwd.h b/backend/genesys/fwd.h index 2d55f981b..1a025b015 100644 --- a/backend/genesys/fwd.h +++ b/backend/genesys/fwd.h @@ -56,7 +56,6 @@ struct Genesys_Calibration_Cache; class CommandSet; // device.h -class FixedFloat; struct Genesys_Gpo; struct MethodResolutions; struct Genesys_Model; @@ -75,7 +74,6 @@ class Image; // image_buffer.h class ImageBuffer; -class FakeBufferModel; class ImageBufferGenesysUsb; // image_pipeline.h @@ -89,11 +87,11 @@ struct RawPixel; // low.h struct Genesys_USB_Device_Entry; -struct Motor_Profile; // motor.h struct Genesys_Motor; struct MotorSlope; +struct MotorProfile; struct MotorSlopeTable; // register.h @@ -113,6 +111,7 @@ class ScannerInterfaceUsb; class TestScannerInterface; // sensor.h +class ScanMethodFilter; class ResolutionFilter; struct GenesysFrontendLayout; struct Genesys_Frontend; diff --git a/backend/genesys/genesys.cpp b/backend/genesys/genesys.cpp index 7c25168d1..f9f2013e3 100644 --- a/backend/genesys/genesys.cpp +++ b/backend/genesys/genesys.cpp @@ -162,9 +162,9 @@ static const SANE_Range u16_range = { }; static const SANE_Range percentage_range = { - SANE_FIX (0), /* minimum */ - SANE_FIX (100), /* maximum */ - SANE_FIX (1) /* quantization */ + float_to_fixed(0), // minimum + float_to_fixed(100), // maximum + float_to_fixed(1) // quantization }; static const SANE_Range threshold_curve_range = { @@ -339,8 +339,8 @@ MotorSlopeTable sanei_genesys_create_slope_table3(AsicType asic_type, const Gene { unsigned target_speed_w = (exposure_time * yres) / motor.base_ydpi; - return create_slope_table(motor.get_slope(step_type), target_speed_w, step_type, 1, 1, - get_slope_table_max_size(asic_type)); + return create_slope_table(motor.get_slope_with_step_type(step_type), target_speed_w, + step_type, 1, 1, get_slope_table_max_size(asic_type)); } /** @brief computes gamma table @@ -382,7 +382,7 @@ void sanei_genesys_create_default_gamma_table(Genesys_Device* dev, int size = 0; int max = 0; if (dev->model->asic_type == AsicType::GL646) { - if (dev->model->flags & GENESYS_FLAG_14BIT_GAMMA) { + if (has_flag(dev->model->flags, ModelFlag::GAMMA_14BIT)) { size = 16384; } else { size = 4096; @@ -415,7 +415,7 @@ SANE_Int sanei_genesys_exposure_time2(Genesys_Device * dev, float ydpi, StepType step_type, int endpixel, int exposure_by_led) { int exposure_by_ccd = endpixel + 32; - unsigned max_speed_motor_w = dev->motor.get_slope(step_type).max_speed_w; + unsigned max_speed_motor_w = dev->motor.get_slope_with_step_type(step_type).max_speed_w; int exposure_by_motor = static_cast((max_speed_motor_w * dev->motor.base_ydpi) / ydpi); int exposure = exposure_by_ccd; @@ -500,41 +500,25 @@ static void genesys_send_offset_and_shading(Genesys_Device* dev, const Genesys_S dev->interface->write_buffer(0x3c, start_address, data, size); } -// ? void sanei_genesys_init_shading_data(Genesys_Device* dev, const Genesys_Sensor& sensor, int pixels_per_line) { DBG_HELPER_ARGS(dbg, "pixels_per_line: %d", pixels_per_line); - if (dev->model->flags & GENESYS_FLAG_CALIBRATION_HOST_SIDE) { - return; - } - - int channels; - int i; - if (dev->cmd_set->has_send_shading_data()) { return; } DBG(DBG_proc, "%s (pixels_per_line = %d)\n", __func__, pixels_per_line); - // BUG: GRAY shouldn't probably be in the if condition below. Discovered when refactoring - if (dev->settings.scan_mode == ScanColorMode::GRAY || - dev->settings.scan_mode == ScanColorMode::COLOR_SINGLE_PASS) - { - channels = 3; - } else { - channels = 1; - } + unsigned channels = dev->settings.get_channels(); // 16 bit black, 16 bit white std::vector shading_data(pixels_per_line * 4 * channels, 0); uint8_t* shading_data_ptr = shading_data.data(); - for (i = 0; i < pixels_per_line * channels; i++) - { + for (unsigned i = 0; i < pixels_per_line * channels; i++) { *shading_data_ptr++ = 0x00; /* dark lo */ *shading_data_ptr++ = 0x00; /* dark hi */ *shading_data_ptr++ = 0x00; /* white lo */ @@ -545,184 +529,6 @@ void sanei_genesys_init_shading_data(Genesys_Device* dev, const Genesys_Sensor& pixels_per_line * 4 * channels); } - -// Find the position of the reference point: takes gray level 8 bits data and find -// first CCD usable pixel and top of scanning area -void sanei_genesys_search_reference_point(Genesys_Device* dev, Genesys_Sensor& sensor, - const uint8_t* src_data, int start_pixel, int dpi, - int width, int height) -{ - DBG_HELPER(dbg); - int x, y; - int current, left, top = 0; - int size, count; - int level = 80; /* edge threshold level */ - - // sanity check - if ((width < 3) || (height < 3)) { - throw SaneException("invalid width or height"); - } - - /* transformed image data */ - size = width * height; - std::vector image2(size, 0); - std::vector image(size, 0); - - /* laplace filter to denoise picture */ - std::memcpy(image2.data(), src_data, size); - std::memcpy(image.data(), src_data, size); // to initialize unprocessed part of the image buffer - - for (y = 1; y < height - 1; y++) { - for (x = 1; x < width - 1; x++) { - image[y * width + x] = - (image2[(y - 1) * width + x + 1] + 2 * image2[(y - 1) * width + x] + - image2[(y - 1) * width + x - 1] + 2 * image2[y * width + x + 1] + - 4 * image2[y * width + x] + 2 * image2[y * width + x - 1] + - image2[(y + 1) * width + x + 1] + 2 * image2[(y + 1) * width + x] + - image2[(y + 1) * width + x - 1]) / 16; - } - } - - image2 = image; - if (DBG_LEVEL >= DBG_data) - sanei_genesys_write_pnm_file("gl_laplace.pnm", image.data(), 8, 1, width, height); - - /* apply X direction sobel filter - -1 0 1 - -2 0 2 - -1 0 1 - and finds threshold level - */ - level = 0; - for (y = 2; y < height - 2; y++) { - for (x = 2; x < width - 2; x++) { - current = image2[(y - 1) * width + x + 1] - image2[(y - 1) * width + x - 1] + - 2 * image2[y * width + x + 1] - 2 * image2[y * width + x - 1] + - image2[(y + 1) * width + x + 1] - image2[(y + 1) * width + x - 1]; - if (current < 0) - current = -current; - if (current > 255) - current = 255; - image[y * width + x] = current; - if (current > level) - level = current; - } - } - if (DBG_LEVEL >= DBG_data) - sanei_genesys_write_pnm_file("gl_xsobel.pnm", image.data(), 8, 1, width, height); - - /* set up detection level */ - level = level / 3; - - /* find left black margin first - todo: search top before left - we average the result of N searches */ - left = 0; - count = 0; - for (y = 2; y < 11; y++) - { - x = 8; - while ((x < width / 2) && (image[y * width + x] < level)) - { - image[y * width + x] = 255; - x++; - } - count++; - left += x; - } - if (DBG_LEVEL >= DBG_data) - sanei_genesys_write_pnm_file("gl_detected-xsobel.pnm", image.data(), 8, 1, width, height); - left = left / count; - - // turn it in CCD pixel at full sensor optical resolution - sensor.ccd_start_xoffset = start_pixel + (left * sensor.optical_res) / dpi; - - /* find top edge by detecting black strip */ - /* apply Y direction sobel filter - -1 -2 -1 - 0 0 0 - 1 2 1 - */ - level = 0; - for (y = 2; y < height - 2; y++) { - for (x = 2; x < width - 2; x++) { - current = -image2[(y - 1) * width + x + 1] - 2 * image2[(y - 1) * width + x] - - image2[(y - 1) * width + x - 1] + image2[(y + 1) * width + x + 1] + - 2 * image2[(y + 1) * width + x] + image2[(y + 1) * width + x - 1]; - if (current < 0) - current = -current; - if (current > 255) - current = 255; - image[y * width + x] = current; - if (current > level) - level = current; - } - } - if (DBG_LEVEL >= DBG_data) - sanei_genesys_write_pnm_file("gl_ysobel.pnm", image.data(), 8, 1, width, height); - - /* set up detection level */ - level = level / 3; - - /* search top of horizontal black stripe : TODO yet another flag */ - if (dev->model->sensor_id == SensorId::CCD_5345 - && dev->model->motor_id == MotorId::MD_5345) - { - top = 0; - count = 0; - for (x = width / 2; x < width - 1; x++) - { - y = 2; - while ((y < height) && (image[x + y * width] < level)) - { - image[y * width + x] = 255; - y++; - } - count++; - top += y; - } - if (DBG_LEVEL >= DBG_data) - sanei_genesys_write_pnm_file("gl_detected-ysobel.pnm", image.data(), 8, 1, width, height); - top = top / count; - - /* bottom of black stripe is of fixed witdh, this hardcoded value - * will be moved into device struct if more such values are needed */ - top += 10; - dev->model->y_offset_calib_white = (top * MM_PER_INCH) / dpi; - DBG(DBG_info, "%s: black stripe y_offset = %f mm \n", __func__, - dev->model->y_offset_calib_white.value()); - } - - /* find white corner in dark area : TODO yet another flag */ - if ((dev->model->sensor_id == SensorId::CCD_HP2300 && dev->model->motor_id == MotorId::HP2300) || - (dev->model->sensor_id == SensorId::CCD_HP2400 && dev->model->motor_id == MotorId::HP2400) || - (dev->model->sensor_id == SensorId::CCD_HP3670 && dev->model->motor_id == MotorId::HP3670)) - { - top = 0; - count = 0; - for (x = 10; x < 60; x++) - { - y = 2; - while ((y < height) && (image[x + y * width] < level)) - y++; - top += y; - count++; - } - top = top / count; - dev->model->y_offset_calib_white = (top * MM_PER_INCH) / dpi; - DBG(DBG_info, "%s: white corner y_offset = %f mm\n", __func__, - dev->model->y_offset_calib_white.value()); - } - - DBG(DBG_proc, "%s: ccd_start_xoffset = %d, left = %d, top = %d\n", __func__, - sensor.ccd_start_xoffset, left, top); -} - -namespace gl843 { - void gl843_park_xpa_lamp(Genesys_Device* dev); - void gl843_set_xpa_motor_power(Genesys_Device* dev, Genesys_Register_Set& regs, bool set); -} // namespace gl843 - namespace gl124 { void gl124_setup_scan_gpio(Genesys_Device* dev, int resolution); } // namespace gl124 @@ -730,6 +536,11 @@ namespace gl124 { void scanner_clear_scan_and_feed_counts(Genesys_Device& dev) { switch (dev.model->asic_type) { + case AsicType::GL841: { + dev.interface->write_register(gl841::REG_0x0D, + gl841::REG_0x0D_CLRLNCNT); + break; + } case AsicType::GL843: { dev.interface->write_register(gl843::REG_0x0D, gl843::REG_0x0D_CLRLNCNT | gl843::REG_0x0D_CLRMCNT); @@ -756,36 +567,6 @@ void scanner_clear_scan_and_feed_counts(Genesys_Device& dev) } } -void scanner_clear_scan_and_feed_counts2(Genesys_Device& dev) -{ - // FIXME: switch to scanner_clear_scan_and_feed_counts when updating tests - switch (dev.model->asic_type) { - case AsicType::GL843: { - dev.interface->write_register(gl843::REG_0x0D, gl843::REG_0x0D_CLRLNCNT); - dev.interface->write_register(gl843::REG_0x0D, gl843::REG_0x0D_CLRMCNT); - break; - } - case AsicType::GL845: - case AsicType::GL846: { - dev.interface->write_register(gl846::REG_0x0D, gl846::REG_0x0D_CLRLNCNT); - dev.interface->write_register(gl846::REG_0x0D, gl846::REG_0x0D_CLRMCNT); - break; - } - case AsicType::GL847: { - dev.interface->write_register(gl847::REG_0x0D, gl847::REG_0x0D_CLRLNCNT); - dev.interface->write_register(gl847::REG_0x0D, gl847::REG_0x0D_CLRMCNT); - break; - } - case AsicType::GL124: { - dev.interface->write_register(gl124::REG_0x0D, gl124::REG_0x0D_CLRLNCNT); - dev.interface->write_register(gl124::REG_0x0D, gl124::REG_0x0D_CLRMCNT); - break; - } - default: - throw SaneException("Unsupported asic type"); - } -} - bool scanner_is_motor_stopped(Genesys_Device& dev) { switch (dev.model->asic_type) { @@ -837,6 +618,7 @@ void scanner_stop_action(Genesys_Device& dev) DBG_HELPER(dbg); switch (dev.model->asic_type) { + case AsicType::GL841: case AsicType::GL843: case AsicType::GL845: case AsicType::GL846: @@ -908,7 +690,9 @@ void scanner_move(Genesys_Device& dev, ScanMethod scan_method, unsigned steps, D const auto& sensor = sanei_genesys_find_sensor(&dev, resolution, 3, scan_method); bool uses_secondary_head = (scan_method == ScanMethod::TRANSPARENCY || - scan_method == ScanMethod::TRANSPARENCY_INFRARED); + scan_method == ScanMethod::TRANSPARENCY_INFRARED) && + (!has_flag(dev.model->flags, ModelFlag::UTA_NO_SECONDARY_MOTOR)); + bool uses_secondary_pos = uses_secondary_head && dev.model->default_method == ScanMethod::FLATBED; @@ -934,21 +718,19 @@ void scanner_move(Genesys_Device& dev, ScanMethod scan_method, unsigned steps, D session.params.yres = resolution; session.params.startx = 0; session.params.starty = steps; - session.params.pixels = 100; + session.params.pixels = 50; session.params.lines = 3; session.params.depth = 8; - session.params.channels = 3; + session.params.channels = 1; session.params.scan_method = scan_method; - session.params.scan_mode = ScanColorMode::COLOR_SINGLE_PASS; - if (dev.model->asic_type == AsicType::GL843) { - session.params.color_filter = ColorFilter::RED; - } else { - session.params.color_filter = dev.settings.color_filter; - } + session.params.scan_mode = ScanColorMode::GRAY; + session.params.color_filter = ColorFilter::GREEN; + session.params.flags = ScanFlag::DISABLE_SHADING | ScanFlag::DISABLE_GAMMA | ScanFlag::FEEDING | - ScanFlag::IGNORE_LINE_DISTANCE; + ScanFlag::IGNORE_STAGGER_OFFSET | + ScanFlag::IGNORE_COLOR_OFFSET; if (dev.model->asic_type == AsicType::GL124) { session.params.flags |= ScanFlag::DISABLE_BUFFER_FULL_MOVE; @@ -963,20 +745,21 @@ void scanner_move(Genesys_Device& dev, ScanMethod scan_method, unsigned steps, D dev.cmd_set->init_regs_for_scan_session(&dev, sensor, &local_reg, session); if (dev.model->asic_type != AsicType::GL843) { - regs_set_exposure(dev.model->asic_type, local_reg, {0, 0, 0}); + regs_set_exposure(dev.model->asic_type, local_reg, + sanei_genesys_fixup_exposure({0, 0, 0})); } - scanner_clear_scan_and_feed_counts2(dev); + scanner_clear_scan_and_feed_counts(dev); dev.interface->write_registers(local_reg); if (uses_secondary_head) { - gl843::gl843_set_xpa_motor_power(&dev, local_reg, true); + dev.cmd_set->set_motor_mode(dev, local_reg, MotorMode::PRIMARY_AND_SECONDARY); } try { scanner_start_action(dev, true); } catch (...) { catch_all_exceptions(__func__, [&]() { - gl843::gl843_set_xpa_motor_power(&dev, local_reg, false); + dev.cmd_set->set_motor_mode(dev, local_reg, MotorMode::PRIMARY); }); catch_all_exceptions(__func__, [&]() { scanner_stop_action(dev); }); // restore original registers @@ -992,12 +775,9 @@ void scanner_move(Genesys_Device& dev, ScanMethod scan_method, unsigned steps, D dev.advance_head_pos_by_steps(ScanHeadId::SECONDARY, direction, steps); } - // FIXME: why don't we stop the scanner like on other ASICs - if (dev.model->asic_type != AsicType::GL843) { - scanner_stop_action(dev); - } + scanner_stop_action(dev); if (uses_secondary_head) { - gl843::gl843_set_xpa_motor_power(&dev, local_reg, false); + dev.cmd_set->set_motor_mode(dev, local_reg, MotorMode::PRIMARY); } return; } @@ -1015,12 +795,9 @@ void scanner_move(Genesys_Device& dev, ScanMethod scan_method, unsigned steps, D dev.interface->sleep_ms(10); } - // FIXME: why don't we stop the scanner like on other ASICs - if (dev.model->asic_type != AsicType::GL843) { - scanner_stop_action(dev); - } + scanner_stop_action(dev); if (uses_secondary_head) { - gl843::gl843_set_xpa_motor_power(&dev, local_reg, false); + dev.cmd_set->set_motor_mode(dev, local_reg, MotorMode::PRIMARY); } dev.advance_head_pos_by_steps(ScanHeadId::PRIMARY, direction, steps); @@ -1048,10 +825,11 @@ void scanner_move_back_home(Genesys_Device& dev, bool wait_until_home) } // FIXME: also check whether the scanner actually has a secondary head - if (!dev.is_head_pos_known(ScanHeadId::SECONDARY) || + if ((!dev.is_head_pos_known(ScanHeadId::SECONDARY) || dev.head_pos(ScanHeadId::SECONDARY) > 0 || dev.settings.scan_method == ScanMethod::TRANSPARENCY || - dev.settings.scan_method == ScanMethod::TRANSPARENCY_INFRARED) + dev.settings.scan_method == ScanMethod::TRANSPARENCY_INFRARED) && + (!has_flag(dev.model->flags, ModelFlag::UTA_NO_SECONDARY_MOTOR))) { scanner_move_back_home_ta(dev); } @@ -1076,15 +854,6 @@ void scanner_move_back_home(Genesys_Device& dev, bool wait_until_home) return; } - if (dev.model->model_id == ModelId::CANON_LIDE_210) { - // move the head back a little first - if (dev.is_head_pos_known(ScanHeadId::PRIMARY) && - dev.head_pos(ScanHeadId::PRIMARY) > 30) - { - scanner_move(dev, dev.model->default_method, 20, Direction::BACKWARD); - } - } - Genesys_Register_Set local_reg = dev.reg; unsigned resolution = sanei_genesys_get_lowest_ydpi(&dev); @@ -1093,28 +862,22 @@ void scanner_move_back_home(Genesys_Device& dev, bool wait_until_home) ScanSession session; session.params.xres = resolution; session.params.yres = resolution; - session.params.startx = 100; - if (dev.model->asic_type == AsicType::GL843) { - session.params.starty = 40000; - } else { - session.params.starty = 30000; - } - session.params.pixels = 100; - session.params.lines = 100; + session.params.startx = 0; + session.params.starty = 40000; + session.params.pixels = 50; + session.params.lines = 3; session.params.depth = 8; session.params.channels = 1; session.params.scan_method = dev.settings.scan_method; - if (dev.model->asic_type == AsicType::GL843) { - session.params.scan_mode = ScanColorMode::LINEART; - session.params.color_filter = dev.settings.color_filter; - } else { - session.params.scan_mode = ScanColorMode::GRAY; - session.params.color_filter = ColorFilter::RED; - } + session.params.scan_mode = ScanColorMode::GRAY; + session.params.color_filter = ColorFilter::GREEN; + session.params.flags = ScanFlag::DISABLE_SHADING | ScanFlag::DISABLE_GAMMA | - ScanFlag::IGNORE_LINE_DISTANCE | + ScanFlag::IGNORE_STAGGER_OFFSET | + ScanFlag::IGNORE_COLOR_OFFSET | ScanFlag::REVERSE; + if (dev.model->asic_type == AsicType::GL843) { session.params.flags |= ScanFlag::DISABLE_BUFFER_FULL_MOVE; } @@ -1174,12 +937,41 @@ void scanner_move_back_home(Genesys_Device& dev, bool wait_until_home) // when we come here then the scanner needed too much time for this, so we better stop // the motor catch_all_exceptions(__func__, [&](){ scanner_stop_action(dev); }); - dev.set_head_pos_unknown(); + dev.set_head_pos_unknown(ScanHeadId::PRIMARY | ScanHeadId::SECONDARY); throw SaneException(SANE_STATUS_IO_ERROR, "timeout while waiting for scanhead to go home"); } dbg.log(DBG_info, "scanhead is still moving"); } +namespace { + bool should_use_secondary_motor_mode(Genesys_Device& dev) + { + bool should_use = !dev.is_head_pos_known(ScanHeadId::SECONDARY) || + !dev.is_head_pos_known(ScanHeadId::PRIMARY) || + dev.head_pos(ScanHeadId::SECONDARY) > dev.head_pos(ScanHeadId::PRIMARY); + bool supports = dev.model->model_id == ModelId::CANON_8600F; + return should_use && supports; + } + + void handle_motor_position_after_move_back_home_ta(Genesys_Device& dev, MotorMode motor_mode) + { + if (motor_mode == MotorMode::SECONDARY) { + dev.set_head_pos_zero(ScanHeadId::SECONDARY); + return; + } + + if (dev.is_head_pos_known(ScanHeadId::PRIMARY)) { + if (dev.head_pos(ScanHeadId::PRIMARY) > dev.head_pos(ScanHeadId::SECONDARY)) { + dev.advance_head_pos_by_steps(ScanHeadId::PRIMARY, Direction::BACKWARD, + dev.head_pos(ScanHeadId::SECONDARY)); + } else { + dev.set_head_pos_zero(ScanHeadId::PRIMARY); + } + dev.set_head_pos_zero(ScanHeadId::SECONDARY); + } + } +} // namespace + void scanner_move_back_home_ta(Genesys_Device& dev) { DBG_HELPER(dbg); @@ -1199,7 +991,9 @@ void scanner_move_back_home_ta(Genesys_Device& dev) const auto& sensor = sanei_genesys_find_sensor(&dev, resolution, 1, scan_method); if (dev.is_head_pos_known(ScanHeadId::SECONDARY) && - dev.head_pos(ScanHeadId::SECONDARY) > 1000) + dev.is_head_pos_known(ScanHeadId::PRIMARY) && + dev.head_pos(ScanHeadId::SECONDARY) > 1000 && + dev.head_pos(ScanHeadId::SECONDARY) <= dev.head_pos(ScanHeadId::PRIMARY)) { // leave 500 steps for regular slow back home scanner_move(dev, scan_method, dev.head_pos(ScanHeadId::SECONDARY) - 500, @@ -1209,18 +1003,20 @@ void scanner_move_back_home_ta(Genesys_Device& dev) ScanSession session; session.params.xres = resolution; session.params.yres = resolution; - session.params.startx = 100; - session.params.starty = 30000; - session.params.pixels = 100; - session.params.lines = 100; + session.params.startx = 0; + session.params.starty = 40000; + session.params.pixels = 50; + session.params.lines = 3; session.params.depth = 8; session.params.channels = 1; session.params.scan_method = scan_method; session.params.scan_mode = ScanColorMode::GRAY; - session.params.color_filter = ColorFilter::RED; + session.params.color_filter = ColorFilter::GREEN; + session.params.flags = ScanFlag::DISABLE_SHADING | ScanFlag::DISABLE_GAMMA | - ScanFlag::IGNORE_LINE_DISTANCE | + ScanFlag::IGNORE_STAGGER_OFFSET | + ScanFlag::IGNORE_COLOR_OFFSET | ScanFlag::REVERSE; compute_session(&dev, session, sensor); @@ -1230,7 +1026,11 @@ void scanner_move_back_home_ta(Genesys_Device& dev) scanner_clear_scan_and_feed_counts(dev); dev.interface->write_registers(local_reg); - gl843::gl843_set_xpa_motor_power(&dev, local_reg, true); + + auto motor_mode = should_use_secondary_motor_mode(dev) ? MotorMode::SECONDARY + : MotorMode::PRIMARY_AND_SECONDARY; + + dev.cmd_set->set_motor_mode(dev, local_reg, motor_mode); try { scanner_start_action(dev, true); @@ -1244,18 +1044,10 @@ void scanner_move_back_home_ta(Genesys_Device& dev) if (is_testing_mode()) { dev.interface->test_checkpoint("move_back_home_ta"); - if (dev.is_head_pos_known(ScanHeadId::PRIMARY)) { - if (dev.head_pos(ScanHeadId::PRIMARY) > dev.head_pos(ScanHeadId::SECONDARY)) { - dev.advance_head_pos_by_steps(ScanHeadId::PRIMARY, Direction::BACKWARD, - dev.head_pos(ScanHeadId::SECONDARY)); - } else { - dev.set_head_pos_zero(ScanHeadId::PRIMARY); - } - dev.set_head_pos_zero(ScanHeadId::SECONDARY); - } + handle_motor_position_after_move_back_home_ta(dev, motor_mode); scanner_stop_action(dev); - gl843::gl843_set_xpa_motor_power(&dev, local_reg, false); + dev.cmd_set->set_motor_mode(dev, local_reg, MotorMode::PRIMARY); return; } @@ -1266,18 +1058,10 @@ void scanner_move_back_home_ta(Genesys_Device& dev) if (status.is_at_home) { dbg.log(DBG_info, "TA reached home position"); - if (dev.is_head_pos_known(ScanHeadId::PRIMARY)) { - if (dev.head_pos(ScanHeadId::PRIMARY) > dev.head_pos(ScanHeadId::SECONDARY)) { - dev.advance_head_pos_by_steps(ScanHeadId::PRIMARY, Direction::BACKWARD, - dev.head_pos(ScanHeadId::SECONDARY)); - } else { - dev.set_head_pos_zero(ScanHeadId::PRIMARY); - } - dev.set_head_pos_zero(ScanHeadId::SECONDARY); - } + handle_motor_position_after_move_back_home_ta(dev, motor_mode); scanner_stop_action(dev); - gl843::gl843_set_xpa_motor_power(&dev, local_reg, false); + dev.cmd_set->set_motor_mode(dev, local_reg, MotorMode::PRIMARY); return; } @@ -1287,6 +1071,208 @@ void scanner_move_back_home_ta(Genesys_Device& dev) throw SaneException("Timeout waiting for XPA lamp to park"); } +namespace gl841 { + void gl841_stop_action(Genesys_Device* dev); +} // namespace gl841 + +void scanner_search_strip(Genesys_Device& dev, bool forward, bool black) +{ + DBG_HELPER_ARGS(dbg, "%s %s", black ? "black" : "white", forward ? "forward" : "reverse"); + + if (dev.model->asic_type == AsicType::GL841 && !black && forward) { + dev.frontend.set_gain(0, 0xff); + dev.frontend.set_gain(1, 0xff); + dev.frontend.set_gain(2, 0xff); + } + + // set up for a gray scan at lowest dpi + const auto& resolution_settings = dev.model->get_resolution_settings(dev.settings.scan_method); + unsigned dpi = resolution_settings.get_min_resolution_x(); + unsigned channels = 1; + + auto& sensor = sanei_genesys_find_sensor(&dev, dpi, channels, dev.settings.scan_method); + dev.cmd_set->set_fe(&dev, sensor, AFE_SET); + scanner_stop_action(dev); + + + // shading calibration is done with dev.motor.base_ydpi + unsigned lines = static_cast(dev.model->y_size_calib_mm * dpi / MM_PER_INCH); + if (dev.model->asic_type == AsicType::GL841) { + lines = 10; // TODO: use dev.model->search_lines + lines = static_cast((lines * dpi) / MM_PER_INCH); + } + + unsigned pixels = dev.model->x_size_calib_mm * dpi / MM_PER_INCH; + + dev.set_head_pos_zero(ScanHeadId::PRIMARY); + + unsigned length = 20; + if (dev.model->asic_type == AsicType::GL841) { + // 20 cm max length for calibration sheet + length = static_cast(((200 * dpi) / MM_PER_INCH) / lines); + } + + auto local_reg = dev.reg; + + ScanSession session; + session.params.xres = dpi; + session.params.yres = dpi; + session.params.startx = 0; + session.params.starty = 0; + session.params.pixels = pixels; + session.params.lines = lines; + session.params.depth = 8; + session.params.channels = channels; + session.params.scan_method = dev.settings.scan_method; + session.params.scan_mode = ScanColorMode::GRAY; + session.params.color_filter = ColorFilter::RED; + session.params.flags = ScanFlag::DISABLE_SHADING | + ScanFlag::DISABLE_GAMMA; + if (dev.model->asic_type != AsicType::GL841 && !forward) { + session.params.flags |= ScanFlag::REVERSE; + } + compute_session(&dev, session, sensor); + + dev.cmd_set->init_regs_for_scan_session(&dev, sensor, &local_reg, session); + + dev.interface->write_registers(local_reg); + + dev.cmd_set->begin_scan(&dev, sensor, &local_reg, true); + + if (is_testing_mode()) { + dev.interface->test_checkpoint("search_strip"); + if (dev.model->asic_type == AsicType::GL841) { + gl841::gl841_stop_action(&dev); + } else { + scanner_stop_action(dev); + } + return; + } + + wait_until_buffer_non_empty(&dev); + + // now we're on target, we can read data + auto image = read_unshuffled_image_from_scanner(&dev, session, session.output_total_bytes); + + if (dev.model->asic_type == AsicType::GL841) { + gl841::gl841_stop_action(&dev); + } else { + scanner_stop_action(dev); + } + + unsigned pass = 0; + if (DBG_LEVEL >= DBG_data) { + char title[80]; + std::sprintf(title, "gl_search_strip_%s_%s%02d.pnm", + black ? "black" : "white", forward ? "fwd" : "bwd", pass); + sanei_genesys_write_pnm_file(title, image); + } + + // loop until strip is found or maximum pass number done + bool found = false; + while (pass < length && !found) { + dev.interface->write_registers(local_reg); + + // now start scan + dev.cmd_set->begin_scan(&dev, sensor, &local_reg, true); + + wait_until_buffer_non_empty(&dev); + + // now we're on target, we can read data + image = read_unshuffled_image_from_scanner(&dev, session, session.output_total_bytes); + + scanner_stop_action(dev); + + if (DBG_LEVEL >= DBG_data) { + char title[80]; + std::sprintf(title, "gl_search_strip_%s_%s%02d.pnm", + black ? "black" : "white", + forward ? "fwd" : "bwd", static_cast(pass)); + sanei_genesys_write_pnm_file(title, image); + } + + unsigned white_level = 90; + unsigned black_level = 60; + + std::size_t count = 0; + // Search data to find black strip + // When searching forward, we only need one line of the searched color since we + // will scan forward. But when doing backward search, we need all the area of the ame color + if (forward) { + + for (std::size_t y = 0; y < image.get_height() && !found; y++) { + count = 0; + + // count of white/black pixels depending on the color searched + for (std::size_t x = 0; x < image.get_width(); x++) { + + // when searching for black, detect white pixels + if (black && image.get_raw_channel(x, y, 0) > white_level) { + count++; + } + + // when searching for white, detect black pixels + if (!black && image.get_raw_channel(x, y, 0) < black_level) { + count++; + } + } + + // at end of line, if count >= 3%, line is not fully of the desired color + // so we must go to next line of the buffer */ + // count*100/pixels < 3 + + auto found_percentage = (count * 100 / image.get_width()); + if (found_percentage < 3) { + found = 1; + DBG(DBG_data, "%s: strip found forward during pass %d at line %zu\n", __func__, + pass, y); + } else { + DBG(DBG_data, "%s: pixels=%zu, count=%zu (%zu%%)\n", __func__, + image.get_width(), count, found_percentage); + } + } + } else { + /* since calibration scans are done forward, we need the whole area + to be of the required color when searching backward + */ + count = 0; + for (std::size_t y = 0; y < image.get_height(); y++) { + // count of white/black pixels depending on the color searched + for (std::size_t x = 0; x < image.get_width(); x++) { + // when searching for black, detect white pixels + if (black && image.get_raw_channel(x, y, 0) > white_level) { + count++; + } + // when searching for white, detect black pixels + if (!black && image.get_raw_channel(x, y, 0) < black_level) { + count++; + } + } + } + + // at end of area, if count >= 3%, area is not fully of the desired color + // so we must go to next buffer + auto found_percentage = count * 100 / (image.get_width() * image.get_height()); + if (found_percentage < 3) { + found = 1; + DBG(DBG_data, "%s: strip found backward during pass %d \n", __func__, pass); + } else { + DBG(DBG_data, "%s: pixels=%zu, count=%zu (%zu%%)\n", __func__, image.get_width(), + count, found_percentage); + } + } + pass++; + } + + if (found) { + DBG(DBG_info, "%s: %s strip found\n", __func__, black ? "black" : "white"); + } else { + throw SaneException(SANE_STATUS_UNSUPPORTED, "%s strip not found", + black ? "black" : "white"); + } +} + + void sanei_genesys_calculate_zmod(bool two_table, uint32_t exposure_time, const std::vector& slope_table, @@ -1295,8 +1281,6 @@ void sanei_genesys_calculate_zmod(bool two_table, unsigned buffer_acceleration_steps, uint32_t* out_z1, uint32_t* out_z2) { - DBG(DBG_info, "%s: two_table=%d\n", __func__, two_table); - // acceleration total time unsigned sum = std::accumulate(slope_table.begin(), slope_table.begin() + acceleration_steps, 0, std::plus()); @@ -1321,315 +1305,43 @@ void sanei_genesys_calculate_zmod(bool two_table, *out_z2 = sum % exposure_time; } -static uint8_t genesys_adjust_gain(double* applied_multi, double multi, uint8_t gain) -{ - double voltage, original_voltage; - uint8_t new_gain = 0; - - DBG(DBG_proc, "%s: multi=%f, gain=%d\n", __func__, multi, gain); - - voltage = 0.5 + gain * 0.25; - original_voltage = voltage; - - voltage *= multi; - - new_gain = static_cast((voltage - 0.5) * 4); - if (new_gain > 0x0e) - new_gain = 0x0e; - - voltage = 0.5 + (new_gain) * 0.25; - - *applied_multi = voltage / original_voltage; - - DBG(DBG_proc, "%s: orig voltage=%.2f, new voltage=%.2f, *applied_multi=%f, new_gain=%d\n", - __func__, original_voltage, voltage, *applied_multi, new_gain); - - return new_gain; -} - - -// todo: is return status necessary (unchecked?) -static void genesys_average_white(Genesys_Device* dev, Genesys_Sensor& sensor, int channels, - int channel, uint8_t* data, int size, int *max_average) -{ - - DBG_HELPER_ARGS(dbg, "channels=%d, channel=%d, size=%d", channels, channel, size); - int gain_white_ref, sum, range; - int average; - int i; - - range = size / 50; - - if (dev->settings.scan_method == ScanMethod::TRANSPARENCY || - dev->settings.scan_method == ScanMethod::TRANSPARENCY_INFRARED) - { - gain_white_ref = sensor.fau_gain_white_ref * 256; - } else { - gain_white_ref = sensor.gain_white_ref * 256; - } - - if (range < 1) - range = 1; - - size = size / (2 * range * channels); - - data += (channel * 2); - - *max_average = 0; - - while (size--) - { - sum = 0; - for (i = 0; i < range; i++) - { - sum += (*data); - sum += *(data + 1) * 256; - data += (2 * channels); /* byte based */ - } - - average = (sum / range); - if (average > *max_average) - *max_average = average; - } - - DBG(DBG_proc, "%s: max_average=%d, gain_white_ref = %d, finished\n", __func__, *max_average, - gain_white_ref); - - if (*max_average >= gain_white_ref) - throw SaneException(SANE_STATUS_INVAL); -} - -/* todo: understand, values are too high */ -static int -genesys_average_black (Genesys_Device * dev, int channel, - uint8_t * data, int pixels) -{ - int i; - int sum; - int pixel_step; - - DBG(DBG_proc, "%s: channel=%d, pixels=%d\n", __func__, channel, pixels); - - sum = 0; - - if (dev->settings.scan_mode == ScanColorMode::COLOR_SINGLE_PASS) - { - data += (channel * 2); - pixel_step = 3 * 2; - } - else - { - pixel_step = 2; - } - - for (i = 0; i < pixels; i++) - { - sum += *data; - sum += *(data + 1) * 256; - - data += pixel_step; - } - - DBG(DBG_proc, "%s = %d\n", __func__, sum / pixels); - - return sum / pixels; -} - - -// todo: check; it works but the lines 1, 2, and 3 are too dark even with the -// same offset and gain settings? -static void genesys_coarse_calibration(Genesys_Device* dev, Genesys_Sensor& sensor) -{ - DBG_HELPER_ARGS(dbg, "scan_mode = %d", static_cast(dev->settings.scan_mode)); - int black_pixels; - int white_average; - uint8_t offset[4] = { 0xa0, 0x00, 0xa0, 0x40 }; /* first value isn't used */ - uint16_t white[12], dark[12]; - int i, j; - - black_pixels = sensor.black_pixels - * dev->settings.xres / sensor.optical_res; - - unsigned channels = dev->settings.get_channels(); - - DBG(DBG_info, "channels %d y_size %f xres %d\n", channels, dev->model->y_size.value(), - dev->settings.xres); - unsigned size = static_cast(channels * 2 * dev->model->y_size * dev->settings.xres / - MM_PER_INCH); - /* 1 1 mm 1/inch inch/mm */ - - std::vector calibration_data(size); - std::vector all_data(size * 4, 1); - - dev->cmd_set->set_fe(dev, sensor, AFE_INIT); - - dev->frontend.set_gain(0, 2); - dev->frontend.set_gain(1, 2); - dev->frontend.set_gain(2, 2); // TODO: ? was 2 - dev->frontend.set_offset(0, offset[0]); - dev->frontend.set_offset(1, offset[0]); - dev->frontend.set_offset(2, offset[0]); - - for (i = 0; i < 4; i++) /* read 4 lines */ - { - if (i < 3) /* first 3 lines */ - { - dev->frontend.set_offset(0, offset[i]); - dev->frontend.set_offset(1, offset[i]); - dev->frontend.set_offset(2, offset[i]); - } - - if (i == 1) /* second line */ - { - double applied_multi; - double gain_white_ref; - - if (dev->settings.scan_method == ScanMethod::TRANSPARENCY || - dev->settings.scan_method == ScanMethod::TRANSPARENCY_INFRARED) - { - gain_white_ref = sensor.fau_gain_white_ref * 256; - } else { - gain_white_ref = sensor.gain_white_ref * 256; - } - - // white and black are defined downwards - - uint8_t gain0 = genesys_adjust_gain(&applied_multi, - gain_white_ref / (white[0] - dark[0]), - dev->frontend.get_gain(0)); - uint8_t gain1 = genesys_adjust_gain(&applied_multi, - gain_white_ref / (white[1] - dark[1]), - dev->frontend.get_gain(1)); - uint8_t gain2 = genesys_adjust_gain(&applied_multi, - gain_white_ref / (white[2] - dark[2]), - dev->frontend.get_gain(2)); - // FIXME: looks like overwritten data. Are the above calculations doing - // anything at all? - dev->frontend.set_gain(0, gain0); - dev->frontend.set_gain(1, gain1); - dev->frontend.set_gain(2, gain2); - dev->frontend.set_gain(0, 2); - dev->frontend.set_gain(1, 2); - dev->frontend.set_gain(2, 2); - - dev->interface->write_fe_register(0x28, dev->frontend.get_gain(0)); - dev->interface->write_fe_register(0x29, dev->frontend.get_gain(1)); - dev->interface->write_fe_register(0x2a, dev->frontend.get_gain(2)); - } - - if (i == 3) /* last line */ - { - double x, y, rate; - - for (j = 0; j < 3; j++) - { - - x = static_cast(dark[(i - 2) * 3 + j] - - dark[(i - 1) * 3 + j]) * 254 / (offset[i - 1] / 2 - - offset[i - 2] / 2); - y = x - x * (offset[i - 1] / 2) / 254 - dark[(i - 1) * 3 + j]; - rate = (x - DARK_VALUE - y) * 254 / x + 0.5; - - uint8_t curr_offset = static_cast(rate); - - if (curr_offset > 0x7f) { - curr_offset = 0x7f; - } - curr_offset <<= 1; - dev->frontend.set_offset(j, curr_offset); - } - } - dev->interface->write_fe_register(0x20, dev->frontend.get_offset(0)); - dev->interface->write_fe_register(0x21, dev->frontend.get_offset(1)); - dev->interface->write_fe_register(0x22, dev->frontend.get_offset(2)); - - DBG(DBG_info, - "%s: doing scan: gain: %d/%d/%d, offset: %d/%d/%d\n", __func__, - dev->frontend.get_gain(0), - dev->frontend.get_gain(1), - dev->frontend.get_gain(2), - dev->frontend.get_offset(0), - dev->frontend.get_offset(1), - dev->frontend.get_offset(2)); - - - dev->cmd_set->begin_scan(dev, sensor, &dev->calib_reg, false); - - if (is_testing_mode()) { - dev->interface->test_checkpoint("coarse_calibration"); - dev->cmd_set->end_scan(dev, &dev->calib_reg, true); - return; - } - - sanei_genesys_read_data_from_scanner(dev, calibration_data.data(), size); - std::memcpy(all_data.data() + i * size, calibration_data.data(), size); - if (i == 3) /* last line */ - { - std::vector all_data_8(size * 4 / 2); - unsigned int count; - - for (count = 0; count < static_cast(size * 4 / 2); count++) { - all_data_8[count] = all_data[count * 2 + 1]; - } - sanei_genesys_write_pnm_file("gl_coarse.pnm", all_data_8.data(), 8, channels, size / 6, 4); - } - - dev->cmd_set->end_scan(dev, &dev->calib_reg, true); - - if (dev->settings.scan_mode == ScanColorMode::COLOR_SINGLE_PASS) - { - for (j = 0; j < 3; j++) - { - genesys_average_white(dev, sensor, 3, j, calibration_data.data(), size, &white_average); - white[i * 3 + j] = white_average; - dark[i * 3 + j] = - genesys_average_black (dev, j, calibration_data.data(), - black_pixels); - DBG(DBG_info, "%s: white[%d]=%d, black[%d]=%d\n", __func__, - i * 3 + j, white[i * 3 + j], i * 3 + j, dark[i * 3 + j]); - } - } - else /* one color-component modes */ - { - genesys_average_white(dev, sensor, 1, 0, calibration_data.data(), size, &white_average); - white[i * 3 + 0] = white[i * 3 + 1] = white[i * 3 + 2] = - white_average; - dark[i * 3 + 0] = dark[i * 3 + 1] = dark[i * 3 + 2] = - genesys_average_black (dev, 0, calibration_data.data(), black_pixels); - } - } /* for (i = 0; i < 4; i++) */ - - DBG(DBG_info, "%s: final: gain: %d/%d/%d, offset: %d/%d/%d\n", __func__, - dev->frontend.get_gain(0), - dev->frontend.get_gain(1), - dev->frontend.get_gain(2), - dev->frontend.get_offset(0), - dev->frontend.get_offset(1), - dev->frontend.get_offset(2)); -} - /** * scans a white area with motor and lamp off to get the per CCD pixel offset * that will be used to compute shading coefficient * @param dev scanner's device */ static void genesys_shading_calibration_impl(Genesys_Device* dev, const Genesys_Sensor& sensor, + Genesys_Register_Set& local_reg, std::vector& out_average_data, bool is_dark, const std::string& log_filename_prefix) { DBG_HELPER(dbg); + if (dev->model->asic_type == AsicType::GL646) { + dev->cmd_set->init_regs_for_shading(dev, sensor, local_reg); + local_reg = dev->reg; + } else { + local_reg = dev->reg; + dev->cmd_set->init_regs_for_shading(dev, sensor, local_reg); + dev->interface->write_registers(local_reg); + } + debug_dump(DBG_info, dev->calib_session); size_t size; uint32_t pixels_per_line; - uint8_t channels; - /* end pixel - start pixel */ - pixels_per_line = dev->calib_pixels; - channels = dev->calib_channels; + if (dev->model->asic_type == AsicType::GL843) { + pixels_per_line = dev->calib_session.output_pixels; + } else { + pixels_per_line = dev->calib_session.params.pixels; + } + unsigned channels = dev->calib_session.params.channels; - uint32_t out_pixels_per_line = pixels_per_line + dev->calib_pixels_offset; + // BUG: we are using wrong pixel number here + unsigned start_offset = + dev->calib_session.params.startx * sensor.optical_res / dev->calib_session.params.xres; + unsigned out_pixels_per_line = pixels_per_line + start_offset; // FIXME: we set this during both dark and white calibration. A cleaner approach should // probably be used @@ -1644,61 +1356,52 @@ static void genesys_shading_calibration_impl(Genesys_Device* dev, const Genesys_ } // FIXME: the current calculation is likely incorrect on non-GL843 implementations, - // but this needs checking - if (dev->calib_total_bytes_to_read > 0) { - size = dev->calib_total_bytes_to_read; - } else if (dev->model->asic_type == AsicType::GL843) { - size = channels * 2 * pixels_per_line * dev->calib_lines; + // but this needs checking. Note the extra line when computing size. + if (dev->model->asic_type == AsicType::GL843) { + size = dev->calib_session.output_total_bytes_raw; } else { - size = channels * 2 * pixels_per_line * (dev->calib_lines + 1); + size = channels * 2 * pixels_per_line * (dev->calib_session.params.lines + 1); } std::vector calibration_data(size / 2); - bool motor = true; - if (dev->model->flags & GENESYS_FLAG_SHADING_NO_MOVE) - { - motor = false; - } - // turn off motor and lamp power for flatbed scanners, but not for sheetfed scanners // because they have a calibration sheet with a sufficient black strip if (is_dark && !dev->model->is_sheetfed) { - sanei_genesys_set_lamp_power(dev, sensor, dev->calib_reg, false); - sanei_genesys_set_motor_power(dev->calib_reg, motor); + sanei_genesys_set_lamp_power(dev, sensor, local_reg, false); } else { - sanei_genesys_set_lamp_power(dev, sensor, dev->calib_reg, true); - sanei_genesys_set_motor_power(dev->calib_reg, motor); + sanei_genesys_set_lamp_power(dev, sensor, local_reg, true); } + sanei_genesys_set_motor_power(local_reg, true); - dev->interface->write_registers(dev->calib_reg); + dev->interface->write_registers(local_reg); if (is_dark) { // wait some time to let lamp to get dark dev->interface->sleep_ms(200); - } else if (dev->model->flags & GENESYS_FLAG_DARK_CALIBRATION) { + } else if (has_flag(dev->model->flags, ModelFlag::DARK_CALIBRATION)) { // make sure lamp is bright again // FIXME: what about scanners that take a long time to warm the lamp? dev->interface->sleep_ms(500); } bool start_motor = !is_dark; - dev->cmd_set->begin_scan(dev, sensor, &dev->calib_reg, start_motor); + dev->cmd_set->begin_scan(dev, sensor, &local_reg, start_motor); if (is_testing_mode()) { dev->interface->test_checkpoint(is_dark ? "dark_shading_calibration" : "white_shading_calibration"); - dev->cmd_set->end_scan(dev, &dev->calib_reg, true); + dev->cmd_set->end_scan(dev, &local_reg, true); return; } sanei_genesys_read_data_from_scanner(dev, reinterpret_cast(calibration_data.data()), size); - dev->cmd_set->end_scan(dev, &dev->calib_reg, true); + dev->cmd_set->end_scan(dev, &local_reg, true); - if (dev->model->flags & GENESYS_FLAG_16BIT_DATA_INVERTED) { + if (has_flag(dev->model->flags, ModelFlag::INVERTED_16BIT_DATA)) { for (std::size_t i = 0; i < size / 2; ++i) { auto value = calibration_data[i]; value = ((value >> 8) & 0xff) | ((value << 8) & 0xff00); @@ -1707,17 +1410,18 @@ static void genesys_shading_calibration_impl(Genesys_Device* dev, const Genesys_ } std::fill(out_average_data.begin(), - out_average_data.begin() + dev->calib_pixels_offset * channels, 0); + out_average_data.begin() + start_offset * channels, 0); - compute_array_percentile_approx(out_average_data.data() + dev->calib_pixels_offset * channels, + compute_array_percentile_approx(out_average_data.data() + + start_offset * channels, calibration_data.data(), - dev->calib_lines, pixels_per_line * channels, + dev->calib_session.params.lines, pixels_per_line * channels, 0.5f); if (DBG_LEVEL >= DBG_data) { sanei_genesys_write_pnm_file16((log_filename_prefix + "_shading.pnm").c_str(), calibration_data.data(), - channels, pixels_per_line, dev->calib_lines); + channels, pixels_per_line, dev->calib_session.params.lines); sanei_genesys_write_pnm_file16((log_filename_prefix + "_average.pnm").c_str(), out_average_data.data(), channels, out_pixels_per_line, 1); @@ -1725,10 +1429,12 @@ static void genesys_shading_calibration_impl(Genesys_Device* dev, const Genesys_ } -static void genesys_dark_shading_calibration(Genesys_Device* dev, const Genesys_Sensor& sensor) +static void genesys_dark_shading_calibration(Genesys_Device* dev, const Genesys_Sensor& sensor, + Genesys_Register_Set& local_reg) { DBG_HELPER(dbg); - genesys_shading_calibration_impl(dev, sensor, dev->dark_average_data, true, "gl_black_"); + genesys_shading_calibration_impl(dev, sensor, local_reg, dev->dark_average_data, true, + "gl_black"); } /* * this function builds dummy dark calibration data so that we can @@ -1741,14 +1447,22 @@ static void genesys_dummy_dark_shading(Genesys_Device* dev, const Genesys_Sensor { DBG_HELPER(dbg); uint32_t pixels_per_line; - uint8_t channels; uint32_t skip, xend; int dummy1, dummy2, dummy3; /* dummy black average per channel */ - pixels_per_line = dev->calib_pixels; - channels = dev->calib_channels; + if (dev->model->asic_type == AsicType::GL843) { + pixels_per_line = dev->calib_session.output_pixels; + } else { + pixels_per_line = dev->calib_session.params.pixels; + } - uint32_t out_pixels_per_line = pixels_per_line + dev->calib_pixels_offset; + unsigned channels = dev->calib_session.params.channels; + + // BUG: we are using wrong pixel number here + unsigned start_offset = + dev->calib_session.params.startx * sensor.optical_res / dev->calib_session.params.xres; + + unsigned out_pixels_per_line = pixels_per_line + start_offset; dev->average_size = channels * out_pixels_per_line; dev->dark_average_data.clear(); @@ -1811,7 +1525,7 @@ static void genesys_dummy_dark_shading(Genesys_Device* dev, const Genesys_Sensor static void genesys_repark_sensor_before_shading(Genesys_Device* dev) { DBG_HELPER(dbg); - if (dev->model->flags & GENESYS_FLAG_SHADING_REPARK) { + if (has_flag(dev->model->flags, ModelFlag::SHADING_REPARK)) { dev->cmd_set->move_back_home(dev, true); if (dev->settings.scan_method == ScanMethod::TRANSPARENCY || @@ -1825,34 +1539,55 @@ static void genesys_repark_sensor_before_shading(Genesys_Device* dev) static void genesys_repark_sensor_after_white_shading(Genesys_Device* dev) { DBG_HELPER(dbg); - if (dev->model->flags & GENESYS_FLAG_SHADING_REPARK) { + if (has_flag(dev->model->flags, ModelFlag::SHADING_REPARK)) { dev->cmd_set->move_back_home(dev, true); } } -static void genesys_white_shading_calibration(Genesys_Device* dev, const Genesys_Sensor& sensor) +static void genesys_white_shading_calibration(Genesys_Device* dev, const Genesys_Sensor& sensor, + Genesys_Register_Set& local_reg) { DBG_HELPER(dbg); - genesys_shading_calibration_impl(dev, sensor, dev->white_average_data, false, "gl_white_"); + genesys_shading_calibration_impl(dev, sensor, local_reg, dev->white_average_data, false, + "gl_white"); } // This calibration uses a scan over the calibration target, comprising a black and a white strip. // (So the motor must be on.) static void genesys_dark_white_shading_calibration(Genesys_Device* dev, - const Genesys_Sensor& sensor) + const Genesys_Sensor& sensor, + Genesys_Register_Set& local_reg) { - DBG_HELPER_ARGS(dbg, "lines = %zu", dev->calib_lines); + DBG_HELPER(dbg); + + if (dev->model->asic_type == AsicType::GL646) { + dev->cmd_set->init_regs_for_shading(dev, sensor, local_reg); + local_reg = dev->reg; + } else { + local_reg = dev->reg; + dev->cmd_set->init_regs_for_shading(dev, sensor, local_reg); + dev->interface->write_registers(local_reg); + } + size_t size; uint32_t pixels_per_line; - uint8_t channels; unsigned int x; uint32_t dark, white, dark_sum, white_sum, dark_count, white_count, col, dif; - pixels_per_line = dev->calib_pixels; - channels = dev->calib_channels; + if (dev->model->asic_type == AsicType::GL843) { + pixels_per_line = dev->calib_session.output_pixels; + } else { + pixels_per_line = dev->calib_session.params.pixels; + } - uint32_t out_pixels_per_line = pixels_per_line + dev->calib_pixels_offset; + unsigned channels = dev->calib_session.params.channels; + + // BUG: we are using wrong pixel number here + unsigned start_offset = + dev->calib_session.params.startx * sensor.optical_res / dev->calib_session.params.xres; + + unsigned out_pixels_per_line = pixels_per_line + start_offset; dev->average_size = channels * out_pixels_per_line; @@ -1862,36 +1597,33 @@ static void genesys_dark_white_shading_calibration(Genesys_Device* dev, dev->dark_average_data.clear(); dev->dark_average_data.resize(dev->average_size); - if (dev->calib_total_bytes_to_read > 0) - size = dev->calib_total_bytes_to_read; - else - size = channels * 2 * pixels_per_line * dev->calib_lines; + if (dev->model->asic_type == AsicType::GL843) { + size = dev->calib_session.output_total_bytes_raw; + } else { + // FIXME: on GL841 this is different than dev->calib_session.output_total_bytes_raw, + // needs checking + size = channels * 2 * pixels_per_line * dev->calib_session.params.lines; + } std::vector calibration_data(size); - bool motor = true; - if (dev->model->flags & GENESYS_FLAG_SHADING_NO_MOVE) - { - motor = false; - } - // turn on motor and lamp power - sanei_genesys_set_lamp_power(dev, sensor, dev->calib_reg, true); - sanei_genesys_set_motor_power(dev->calib_reg, motor); + sanei_genesys_set_lamp_power(dev, sensor, local_reg, true); + sanei_genesys_set_motor_power(local_reg, true); - dev->interface->write_registers(dev->calib_reg); + dev->interface->write_registers(local_reg); - dev->cmd_set->begin_scan(dev, sensor, &dev->calib_reg, false); + dev->cmd_set->begin_scan(dev, sensor, &local_reg, false); if (is_testing_mode()) { dev->interface->test_checkpoint("dark_white_shading_calibration"); - dev->cmd_set->end_scan(dev, &dev->calib_reg, true); + dev->cmd_set->end_scan(dev, &local_reg, true); return; } sanei_genesys_read_data_from_scanner(dev, calibration_data.data(), size); - dev->cmd_set->end_scan(dev, &dev->calib_reg, true); + dev->cmd_set->end_scan(dev, &local_reg, true); if (DBG_LEVEL >= DBG_data) { @@ -1899,31 +1631,33 @@ static void genesys_dark_white_shading_calibration(Genesys_Device* dev, { sanei_genesys_write_pnm_file("gl_black_white_shading.pnm", calibration_data.data(), 16, 1, pixels_per_line*channels, - dev->calib_lines); + dev->calib_session.params.lines); } else { sanei_genesys_write_pnm_file("gl_black_white_shading.pnm", calibration_data.data(), 16, channels, pixels_per_line, - dev->calib_lines); + dev->calib_session.params.lines); } } std::fill(dev->dark_average_data.begin(), - dev->dark_average_data.begin() + dev->calib_pixels_offset * channels, 0); + dev->dark_average_data.begin() + start_offset * channels, 0); std::fill(dev->white_average_data.begin(), - dev->white_average_data.begin() + dev->calib_pixels_offset * channels, 0); + dev->white_average_data.begin() + start_offset * channels, 0); - uint16_t* average_white = dev->white_average_data.data() + dev->calib_pixels_offset * channels; - uint16_t* average_dark = dev->dark_average_data.data() + dev->calib_pixels_offset * channels; + uint16_t* average_white = dev->white_average_data.data() + + start_offset * channels; + uint16_t* average_dark = dev->dark_average_data.data() + + start_offset * channels; for (x = 0; x < pixels_per_line * channels; x++) { dark = 0xffff; white = 0; - for (std::size_t y = 0; y < dev->calib_lines; y++) + for (std::size_t y = 0; y < dev->calib_session.params.lines; y++) { col = calibration_data[(x + y * pixels_per_line * channels) * 2]; col |= @@ -1947,7 +1681,7 @@ static void genesys_dark_white_shading_calibration(Genesys_Device* dev, white_count = 0; white_sum = 0; - for (std::size_t y = 0; y < dev->calib_lines; y++) + for (std::size_t y = 0; y < dev->calib_session.params.lines; y++) { col = calibration_data[(x + y * pixels_per_line * channels) * 2]; col |= @@ -2451,19 +2185,28 @@ static void genesys_send_shading_coefficient(Genesys_Device* dev, const Genesys_ { DBG_HELPER(dbg); - if (dev->model->flags & GENESYS_FLAG_CALIBRATION_HOST_SIDE) { + if (sensor.use_host_side_calib) { return; } uint32_t pixels_per_line; - uint8_t channels; int o; unsigned int length; /**> number of shading calibration data words */ unsigned int factor; unsigned int coeff, target_code, words_per_color = 0; - pixels_per_line = dev->calib_pixels + dev->calib_pixels_offset; - channels = dev->calib_channels; + + // BUG: we are using wrong pixel number here + unsigned start_offset = + dev->calib_session.params.startx * sensor.optical_res / dev->calib_session.params.xres; + + if (dev->model->asic_type == AsicType::GL843) { + pixels_per_line = dev->calib_session.output_pixels + start_offset; + } else { + pixels_per_line = dev->calib_session.params.pixels + start_offset; + } + + unsigned channels = dev->calib_session.params.channels; /* we always build data for three channels, even for gray * we make the shading data such that each color channel data line is contiguous @@ -2504,12 +2247,17 @@ static void genesys_send_shading_coefficient(Genesys_Device* dev, const Genesys_ // contains 16bit words in little endian std::vector shading_data(length, 0); + if (!dev->calib_session.computed) { + genesys_send_offset_and_shading(dev, sensor, shading_data.data(), length); + return; + } + /* TARGET/(Wn-Dn) = white gain -> ~1.xxx then it is multiplied by 0x2000 or 0x4000 to give an integer Wn = white average for column n Dn = dark average for column n */ - if (get_registers_gain4_bit(dev->model->asic_type, dev->calib_reg)) { + if (get_registers_gain4_bit(dev->model->asic_type, dev->reg)) { coeff = 0x4000; } else { coeff = 0x2000; @@ -2756,9 +2504,8 @@ genesys_restore_calibration(Genesys_Device * dev, Genesys_Sensor& sensor) /* we don't restore the gamma fields */ sensor.exposure = cache.sensor.exposure; + dev->calib_session = cache.session; dev->average_size = cache.average_size; - dev->calib_pixels = cache.calib_pixels; - dev->calib_channels = cache.calib_channels; dev->dark_average_data = cache.dark_average_data; dev->white_average_data = cache.white_average_data; @@ -2812,8 +2559,7 @@ static void genesys_save_calibration(Genesys_Device* dev, const Genesys_Sensor& found_cache_it->frontend = dev->frontend; found_cache_it->sensor = sensor; - found_cache_it->calib_pixels = dev->calib_pixels; - found_cache_it->calib_channels = dev->calib_channels; + found_cache_it->session = dev->calib_session; #ifdef HAVE_SYS_TIME_H gettimeofday(&time, nullptr); @@ -2848,24 +2594,14 @@ static void genesys_flatbed_calibration(Genesys_Device* dev, Genesys_Sensor& sen coarse_res = 1200; } - /* do offset calibration if needed */ - if (dev->model->flags & GENESYS_FLAG_OFFSET_CALIBRATION) - { - dev->interface->record_progress_message("offset_calibration"); - dev->cmd_set->offset_calibration(dev, sensor, dev->calib_reg); + auto local_reg = dev->initial_regs; - /* since all the registers are set up correctly, just use them */ - dev->interface->record_progress_message("coarse_gain_calibration"); - dev->cmd_set->coarse_gain_calibration(dev, sensor, dev->calib_reg, coarse_res); - } else { - /* since we have 2 gain calibration proc, skip second if first one was - used. */ - dev->interface->record_progress_message("init_regs_for_coarse_calibration"); - dev->cmd_set->init_regs_for_coarse_calibration(dev, sensor, dev->calib_reg); + // do offset calibration if needed + dev->interface->record_progress_message("offset_calibration"); + dev->cmd_set->offset_calibration(dev, sensor, local_reg); - dev->interface->record_progress_message("genesys_coarse_calibration"); - genesys_coarse_calibration(dev, sensor); - } + dev->interface->record_progress_message("coarse_gain_calibration"); + dev->cmd_set->coarse_gain_calibration(dev, sensor, local_reg, coarse_res); if (dev->model->is_cis) { @@ -2876,7 +2612,7 @@ static void genesys_flatbed_calibration(Genesys_Device* dev, Genesys_Sensor& sen case AsicType::GL845: case AsicType::GL846: case AsicType::GL847: { - auto calib_exposure = dev->cmd_set->led_calibration(dev, sensor, dev->calib_reg); + auto calib_exposure = dev->cmd_set->led_calibration(dev, sensor, local_reg); for (auto& sensor_update : sanei_genesys_find_sensors_all_for_write(dev, sensor.method)) { sensor_update.get().exposure = calib_exposure; @@ -2885,39 +2621,26 @@ static void genesys_flatbed_calibration(Genesys_Device* dev, Genesys_Sensor& sen break; } default: { - sensor.exposure = dev->cmd_set->led_calibration(dev, sensor, dev->calib_reg); + sensor.exposure = dev->cmd_set->led_calibration(dev, sensor, local_reg); } } - /* calibrate afe again to match new exposure */ - if (dev->model->flags & GENESYS_FLAG_OFFSET_CALIBRATION) { - dev->interface->record_progress_message("offset_calibration"); - dev->cmd_set->offset_calibration(dev, sensor, dev->calib_reg); + // calibrate afe again to match new exposure + dev->interface->record_progress_message("offset_calibration"); + dev->cmd_set->offset_calibration(dev, sensor, local_reg); - // since all the registers are set up correctly, just use them - - dev->interface->record_progress_message("coarse_gain_calibration"); - dev->cmd_set->coarse_gain_calibration(dev, sensor, dev->calib_reg, coarse_res); - } else { - // since we have 2 gain calibration proc, skip second if first one was used - dev->interface->record_progress_message("init_regs_for_coarse_calibration"); - dev->cmd_set->init_regs_for_coarse_calibration(dev, sensor, dev->calib_reg); - - dev->interface->record_progress_message("genesys_coarse_calibration"); - genesys_coarse_calibration(dev, sensor); - } + dev->interface->record_progress_message("coarse_gain_calibration"); + dev->cmd_set->coarse_gain_calibration(dev, sensor, local_reg, coarse_res); } /* we always use sensor pixel number when the ASIC can't handle multi-segments sensor */ - if (!(dev->model->flags & GENESYS_FLAG_SIS_SENSOR)) - { + if (!has_flag(dev->model->flags, ModelFlag::SIS_SENSOR)) { pixels_per_line = static_cast((dev->model->x_size * dev->settings.xres) / MM_PER_INCH); - } - else - { - pixels_per_line = sensor.sensor_pixels; + } else { + pixels_per_line = static_cast((dev->model->x_size_calib_mm * dev->settings.xres) + / MM_PER_INCH); } // send default shading data @@ -2931,33 +2654,25 @@ static void genesys_flatbed_calibration(Genesys_Device* dev, Genesys_Sensor& sen } // shading calibration - if (dev->model->flags & GENESYS_FLAG_DARK_WHITE_CALIBRATION) { - dev->interface->record_progress_message("init_regs_for_shading"); - dev->cmd_set->init_regs_for_shading(dev, sensor, dev->calib_reg); - + if (has_flag(dev->model->flags, ModelFlag::DARK_WHITE_CALIBRATION)) { dev->interface->record_progress_message("genesys_dark_white_shading_calibration"); - genesys_dark_white_shading_calibration(dev, sensor); + genesys_dark_white_shading_calibration(dev, sensor, local_reg); } else { - DBG(DBG_proc, "%s : genesys_dark_shading_calibration dev->calib_reg ", __func__); - debug_dump(DBG_proc, dev->calib_reg); - - if (dev->model->flags & GENESYS_FLAG_DARK_CALIBRATION) { - dev->interface->record_progress_message("init_regs_for_shading"); - dev->cmd_set->init_regs_for_shading(dev, sensor, dev->calib_reg); + DBG(DBG_proc, "%s : genesys_dark_shading_calibration local_reg ", __func__); + debug_dump(DBG_proc, local_reg); + if (has_flag(dev->model->flags, ModelFlag::DARK_CALIBRATION)) { dev->interface->record_progress_message("genesys_dark_shading_calibration"); - genesys_dark_shading_calibration(dev, sensor); + genesys_dark_shading_calibration(dev, sensor, local_reg); genesys_repark_sensor_before_shading(dev); } - dev->interface->record_progress_message("init_regs_for_shading2"); - dev->cmd_set->init_regs_for_shading(dev, sensor, dev->calib_reg); - dev->interface->record_progress_message("genesys_white_shading_calibration"); - genesys_white_shading_calibration(dev, sensor); + genesys_white_shading_calibration(dev, sensor, local_reg); + genesys_repark_sensor_after_white_shading(dev); - if (!(dev->model->flags & GENESYS_FLAG_DARK_CALIBRATION)) { + if (!has_flag(dev->model->flags, ModelFlag::DARK_CALIBRATION)) { genesys_dummy_dark_shading(dev, sensor); } } @@ -2982,6 +2697,8 @@ static void genesys_sheetfed_calibration(Genesys_Device* dev, Genesys_Sensor& se DBG_HELPER(dbg); bool forward = true; + auto local_reg = dev->initial_regs; + // first step, load document dev->cmd_set->load_document(dev); @@ -2999,7 +2716,7 @@ static void genesys_sheetfed_calibration(Genesys_Device* dev, Genesys_Sensor& se /* go to a white area */ try { - dev->cmd_set->search_strip(dev, sensor, forward, false); + scanner_search_strip(*dev, forward, false); } catch (...) { catch_all_exceptions(__func__, [&](){ dev->cmd_set->eject_document(dev); }); throw; @@ -3007,43 +2724,26 @@ static void genesys_sheetfed_calibration(Genesys_Device* dev, Genesys_Sensor& se if (dev->model->is_cis) { - dev->cmd_set->led_calibration(dev, sensor, dev->calib_reg); + dev->cmd_set->led_calibration(dev, sensor, local_reg); } - /* calibrate afe */ - if (dev->model->flags & GENESYS_FLAG_OFFSET_CALIBRATION) - { - dev->cmd_set->offset_calibration(dev, sensor, dev->calib_reg); + dev->cmd_set->offset_calibration(dev, sensor, local_reg); - /* since all the registers are set up correctly, just use them */ - - dev->cmd_set->coarse_gain_calibration(dev, sensor, dev->calib_reg, sensor.optical_res); - } - else - /* since we have 2 gain calibration proc, skip second if first one was - used. */ - { - dev->cmd_set->init_regs_for_coarse_calibration(dev, sensor, dev->calib_reg); - - genesys_coarse_calibration(dev, sensor); - } + dev->cmd_set->coarse_gain_calibration(dev, sensor, local_reg, sensor.optical_res); /* search for a full width black strip and then do a 16 bit scan to * gather black shading data */ - if (dev->model->flags & GENESYS_FLAG_DARK_CALIBRATION) - { - /* seek black/white reverse/forward */ + if (has_flag(dev->model->flags, ModelFlag::DARK_CALIBRATION)) { + // seek black/white reverse/forward try { - dev->cmd_set->search_strip(dev, sensor, forward, true); + scanner_search_strip(*dev, forward, true); } catch (...) { catch_all_exceptions(__func__, [&](){ dev->cmd_set->eject_document(dev); }); throw; } - dev->cmd_set->init_regs_for_shading(dev, sensor, dev->calib_reg); - try { - genesys_dark_shading_calibration(dev, sensor); + genesys_dark_shading_calibration(dev, sensor, local_reg); } catch (...) { catch_all_exceptions(__func__, [&](){ dev->cmd_set->eject_document(dev); }); throw; @@ -3054,7 +2754,7 @@ static void genesys_sheetfed_calibration(Genesys_Device* dev, Genesys_Sensor& se /* go to a white area */ try { - dev->cmd_set->search_strip(dev, sensor, forward, false); + scanner_search_strip(*dev, forward, false); } catch (...) { catch_all_exceptions(__func__, [&](){ dev->cmd_set->eject_document(dev); }); throw; @@ -3062,10 +2762,8 @@ static void genesys_sheetfed_calibration(Genesys_Device* dev, Genesys_Sensor& se genesys_repark_sensor_before_shading(dev); - dev->cmd_set->init_regs_for_shading(dev, sensor, dev->calib_reg); - try { - genesys_white_shading_calibration(dev, sensor); + genesys_white_shading_calibration(dev, sensor, local_reg); genesys_repark_sensor_after_white_shading(dev); } catch (...) { catch_all_exceptions(__func__, [&](){ dev->cmd_set->eject_document(dev); }); @@ -3074,14 +2772,14 @@ static void genesys_sheetfed_calibration(Genesys_Device* dev, Genesys_Sensor& se // in case we haven't black shading data, build it from black pixels of white calibration // FIXME: shouldn't we use genesys_dummy_dark_shading() ? - if (!(dev->model->flags & GENESYS_FLAG_DARK_CALIBRATION)) { - dev->dark_average_data.clear(); + if (!has_flag(dev->model->flags, ModelFlag::DARK_CALIBRATION)) { + dev->dark_average_data.clear(); dev->dark_average_data.resize(dev->average_size, 0x0f0f); /* XXX STEF XXX * with black point in white shading, build an average black * pixel and use it to fill the dark_average * dev->calib_pixels - (sensor.sensor_pixels * dev->settings.xres) / sensor.optical_res, + (sensor.x_size_calib_mm * dev->settings.xres) / MM_PER_INCH, dev->calib_lines, */ } @@ -3139,6 +2837,8 @@ static void genesys_warmup_lamp(Genesys_Device* dev) const auto& sensor = sanei_genesys_find_sensor_any(dev); dev->cmd_set->init_regs_for_warmup(dev, sensor, &dev->reg, &channels, &total_size); + dev->interface->write_registers(dev->reg); + std::vector first_line(total_size); std::vector second_line(total_size); @@ -3254,31 +2954,17 @@ static void genesys_start_scan(Genesys_Device* dev, bool lamp_off) /* wait for lamp warmup : until a warmup for TRANSPARENCY is designed, skip * it when scanning from XPA. */ - if (!(dev->model->flags & GENESYS_FLAG_SKIP_WARMUP) - && (dev->settings.scan_method == ScanMethod::FLATBED)) + if (!has_flag(dev->model->flags, ModelFlag::SKIP_WARMUP) && + (dev->settings.scan_method == ScanMethod::FLATBED)) { genesys_warmup_lamp(dev); } /* set top left x and y values by scanning the internals if flatbed scanners */ if (!dev->model->is_sheetfed) { - /* do the geometry detection only once */ - if ((dev->model->flags & GENESYS_FLAG_SEARCH_START) - && (dev->model->y_offset_calib_white == 0)) - { - dev->cmd_set->search_start_position (dev); - - dev->parking = false; - dev->cmd_set->move_back_home(dev, true); - } - else - { - /* Go home */ - /* TODO: check we can drop this since we cannot have the - scanner's head wandering here */ - dev->parking = false; - dev->cmd_set->move_back_home(dev, true); - } + // TODO: check we can drop this since we cannot have the scanner's head wandering here + dev->parking = false; + dev->cmd_set->move_back_home(dev, true); } /* move to calibration area for transparency adapter */ @@ -3306,7 +2992,7 @@ static void genesys_start_scan(Genesys_Device* dev, bool lamp_off) { /* calibration : sheetfed scanners can't calibrate before each scan */ /* and also those who have the NO_CALIBRATION flag */ - if (!(dev->model->flags & GENESYS_FLAG_NO_CALIBRATION) && !dev->model->is_sheetfed) { + if (!has_flag(dev->model->flags, ModelFlag::NO_CALIBRATION) && !dev->model->is_sheetfed) { genesys_scanner_calibration(dev, sensor); genesys_save_calibration (dev, sensor); } @@ -3334,7 +3020,7 @@ static void genesys_start_scan(Genesys_Device* dev, bool lamp_off) dev->cmd_set->move_to_ta(dev); } - dev->cmd_set->init_regs_for_scan(dev, sensor); + dev->cmd_set->init_regs_for_scan(dev, sensor, dev->reg); /* no lamp during scan */ if (lamp_off) { @@ -3344,7 +3030,7 @@ static void genesys_start_scan(Genesys_Device* dev, bool lamp_off) /* GL124 is using SHDAREA, so we have to wait for scan to be set up before * sending shading data */ if (dev->cmd_set->has_send_shading_data() && - !(dev->model->flags & GENESYS_FLAG_NO_CALIBRATION)) + !has_flag(dev->model->flags, ModelFlag::NO_CALIBRATION)) { genesys_send_shading_coefficient(dev, sensor); } @@ -3439,7 +3125,7 @@ static void genesys_read_ordered_data(Genesys_Device* dev, SANE_Byte* destinatio { /* issue park command immediatly in case scanner can handle it * so we save time */ - if (!dev->model->is_sheetfed && !(dev->model->flags & GENESYS_FLAG_MUST_WAIT) && + if (!dev->model->is_sheetfed && !has_flag(dev->model->flags, ModelFlag::MUST_WAIT) && !dev->parking) { dev->cmd_set->move_back_home(dev, false); @@ -3579,12 +3265,12 @@ static unsigned pick_resolution(const std::vector& resolutions, unsign static void calc_parameters(Genesys_Scanner* s) { DBG_HELPER(dbg); - double tl_x = 0, tl_y = 0, br_x = 0, br_y = 0; + float tl_x = 0, tl_y = 0, br_x = 0, br_y = 0; - tl_x = SANE_UNFIX(s->pos_top_left_x); - tl_y = SANE_UNFIX(s->pos_top_left_y); - br_x = SANE_UNFIX(s->pos_bottom_right_x); - br_y = SANE_UNFIX(s->pos_bottom_right_y); + tl_x = fixed_to_float(s->pos_top_left_x); + tl_y = fixed_to_float(s->pos_top_left_y); + br_x = fixed_to_float(s->pos_bottom_right_x); + br_y = fixed_to_float(s->pos_bottom_right_y); s->params.last_frame = true; /* only single pass scanning supported */ @@ -3631,7 +3317,7 @@ static void calc_parameters(Genesys_Scanner* s) /* we need an even pixels number * TODO invert test logic or generalize behaviour across all ASICs */ - if ((s->dev->model->flags & GENESYS_FLAG_SIS_SENSOR) || + if (has_flag(s->dev->model->flags, ModelFlag::SIS_SENSOR) || s->dev->model->asic_type == AsicType::GL847 || s->dev->model->asic_type == AsicType::GL124 || s->dev->model->asic_type == AsicType::GL845 || @@ -3698,7 +3384,7 @@ static void calc_parameters(Genesys_Scanner* s) s->dev->settings.tl_y = tl_y; // threshold setting - s->dev->settings.threshold = static_cast(2.55 * (SANE_UNFIX(s->threshold))); + s->dev->settings.threshold = static_cast(2.55f * (fixed_to_float(s->threshold))); // color filter if (s->color_filter == "Red") { @@ -3724,9 +3410,9 @@ static void calc_parameters(Genesys_Scanner* s) /* some digital processing requires the whole picture to be buffered */ /* no digital processing takes place when doing preview, or when bit depth is * higher than 8 bits */ - if ((s->swdespeck || s->swcrop || s->swdeskew || s->swderotate ||(SANE_UNFIX(s->swskip)>0)) - && (!s->preview) - && (s->bit_depth <= 8)) + if ((s->swdespeck || s->swcrop || s->swdeskew || s->swderotate ||(fixed_to_float(s->swskip)>0)) + && (!s->preview) + && (s->bit_depth <= 8)) { s->dev->buffer_image = true; } @@ -3760,7 +3446,7 @@ static void create_bpp_list (Genesys_Scanner * s, const std::vector& b /** @brief this function initialize a gamma vector based on the ASIC: * Set up a default gamma table vector based on device description - * gl646: 12 or 14 bits gamma table depending on GENESYS_FLAG_14BIT_GAMMA + * gl646: 12 or 14 bits gamma table depending on ModelFlag::GAMMA_14BIT * gl84x: 16 bits * gl12x: 16 bits * @param scanner pointer to scanner session to get options @@ -3776,8 +3462,7 @@ init_gamma_vector_option (Genesys_Scanner * scanner, int option) scanner->opt[option].unit = SANE_UNIT_NONE; scanner->opt[option].constraint_type = SANE_CONSTRAINT_RANGE; if (scanner->dev->model->asic_type == AsicType::GL646) { - if ((scanner->dev->model->flags & GENESYS_FLAG_14BIT_GAMMA) != 0) - { + if (has_flag(scanner->dev->model->flags, ModelFlag::GAMMA_14BIT)) { scanner->opt[option].size = 16384 * sizeof (SANE_Word); scanner->opt[option].constraint.range = &u14_range; } @@ -3802,9 +3487,9 @@ init_gamma_vector_option (Genesys_Scanner * scanner, int option) static SANE_Range create_range(float size) { SANE_Range range; - range.min = SANE_FIX(0.0); - range.max = SANE_FIX(size); - range.quant = SANE_FIX(0.0); + range.min = float_to_fixed(0.0); + range.max = float_to_fixed(size); + range.quant = float_to_fixed(0.0); return range; } @@ -3921,13 +3606,13 @@ static void set_xy_range_option_values(Genesys_Scanner& s) { if (s.scan_method == ScanMethod::FLATBED) { - s.opt_x_range = create_range(static_cast(s.dev->model->x_size)); - s.opt_y_range = create_range(static_cast(s.dev->model->y_size)); + s.opt_x_range = create_range(s.dev->model->x_size); + s.opt_y_range = create_range(s.dev->model->y_size); } else { - s.opt_x_range = create_range(static_cast(s.dev->model->x_size_ta)); - s.opt_y_range = create_range(static_cast(s.dev->model->y_size_ta)); + s.opt_x_range = create_range(s.dev->model->x_size_ta); + s.opt_y_range = create_range(s.dev->model->y_size_ta); } s.opt[OPT_TL_X].constraint.range = &s.opt_x_range; @@ -4038,8 +3723,8 @@ static void init_options(Genesys_Scanner* s) s->opt[OPT_GEOMETRY_GROUP].size = 0; s->opt[OPT_GEOMETRY_GROUP].constraint_type = SANE_CONSTRAINT_NONE; - s->opt_x_range = create_range(static_cast(model->x_size)); - s->opt_y_range = create_range(static_cast(model->y_size)); + s->opt_x_range = create_range(model->x_size); + s->opt_y_range = create_range(model->y_size); // scan area s->opt[OPT_TL_X].name = SANE_NAME_SCAN_TL_X; @@ -4116,8 +3801,7 @@ static void init_options(Genesys_Scanner* s) /* currently, there are only gamma table options in this group, * so if the scanner doesn't support gamma table, disable the * whole group */ - if (!(model->flags & GENESYS_FLAG_CUSTOM_GAMMA)) - { + if (!has_flag(model->flags, ModelFlag::CUSTOM_GAMMA)) { s->opt[OPT_ENHANCEMENT_GROUP].cap |= SANE_CAP_INACTIVE; s->opt[OPT_CUSTOM_GAMMA].cap |= SANE_CAP_INACTIVE; DBG(DBG_info, "%s: custom gamma disabled\n", __func__); @@ -4222,7 +3906,7 @@ static void init_options(Genesys_Scanner* s) s->opt[OPT_THRESHOLD].unit = SANE_UNIT_PERCENT; s->opt[OPT_THRESHOLD].constraint_type = SANE_CONSTRAINT_RANGE; s->opt[OPT_THRESHOLD].constraint.range = &percentage_range; - s->threshold = SANE_FIX(50); + s->threshold = float_to_fixed(50); /* BW threshold curve */ s->opt[OPT_THRESHOLD_CURVE].name = "threshold-curve"; @@ -4637,7 +4321,7 @@ static void probe_genesys_devices() of Genesys_Calibration_Cache as is. */ static const char* CALIBRATION_IDENT = "sane_genesys"; -static const int CALIBRATION_VERSION = 21; +static const int CALIBRATION_VERSION = 27; bool read_calibration(std::istream& str, Genesys_Device::Calibration& calibration, const std::string& path) @@ -4781,8 +4465,8 @@ static void genesys_buffer_image(Genesys_Scanner *s) * computing so we can save time */ if (!dev->model->is_sheetfed && !dev->parking) { - dev->cmd_set->move_back_home(dev, dev->model->flags & GENESYS_FLAG_MUST_WAIT); - dev->parking = !(s->dev->model->flags & GENESYS_FLAG_MUST_WAIT); + dev->cmd_set->move_back_home(dev, has_flag(dev->model->flags, ModelFlag::MUST_WAIT)); + dev->parking = !has_flag(s->dev->model->flags, ModelFlag::MUST_WAIT); } /* in case of dynamic lineart, we have buffered gray data which @@ -4851,7 +4535,6 @@ void sane_init_impl(SANE_Int * version_code, SANE_Auth_Callback authorize) genesys_init_frontend_tables(); genesys_init_gpo_tables(); genesys_init_motor_tables(); - genesys_init_motor_profile_tables(); genesys_init_usb_device_tables(); @@ -4991,8 +4674,7 @@ static void sane_open_impl(SANE_String_Const devicename, SANE_Handle * handle) throw SaneException("could not find the device to open: %s", devicename); } - if (dev->model->flags & GENESYS_FLAG_UNTESTED) - { + if (has_flag(dev->model->flags, ModelFlag::UNTESTED)) { DBG(DBG_error0, "WARNING: Your scanner is not fully supported or at least \n"); DBG(DBG_error0, " had only limited testing. Please be careful and \n"); DBG(DBG_error0, " report any failure/success to \n"); @@ -5174,7 +4856,7 @@ static void print_option(DebugMessageHelper& dbg, const Genesys_Scanner& s, int return; } case SANE_TYPE_FIXED: { - dbg.vlog(DBG_proc, "value: %f", SANE_UNFIX(*reinterpret_cast(val))); + dbg.vlog(DBG_proc, "value: %f", fixed_to_float(*reinterpret_cast(val))); return; } case SANE_TYPE_STRING: { @@ -5639,9 +5321,7 @@ static void set_option_value(Genesys_Scanner* s, int option, void *val, SANE_Int case OPT_EXPIRATION_TIME: if (*reinterpret_cast(val) != s->expiration_time) { s->expiration_time = *reinterpret_cast(val); - // BUG: this is most likely not intended behavior, found out during refactor - s->dev->cmd_set->set_powersaving(s->dev, s->expiration_time); - } + } break; case OPT_CUSTOM_GAMMA: @@ -5902,7 +5582,7 @@ void sane_start_impl(SANE_Handle handle) if (s->swskip > 0 && IS_ACTIVE(OPT_SWSKIP)) { auto status = sanei_magic_isBlank(&s->params, s->dev->img_buffer.data(), - SANE_UNFIX(s->swskip)); + fixed_to_float(s->swskip)); if (status == SANE_STATUS_NO_DOCS && s->dev->model->is_sheetfed) { DBG(DBG_info, "%s: blank page, recurse\n", __func__); @@ -5986,7 +5666,7 @@ void sane_read_impl(SANE_Handle handle, SANE_Byte * buf, SANE_Int max_len, SANE_ /* issue park command immediatly in case scanner can handle it * so we save time */ - if (!dev->model->is_sheetfed && !(dev->model->flags & GENESYS_FLAG_MUST_WAIT) && + if (!dev->model->is_sheetfed && !has_flag(dev->model->flags, ModelFlag::MUST_WAIT) && !dev->parking) { dev->cmd_set->move_back_home(dev, false); @@ -6086,10 +5766,10 @@ void sane_cancel_impl(SANE_Handle handle) /* park head if flatbed scanner */ if (!s->dev->model->is_sheetfed) { if (!s->dev->parking) { - s->dev->cmd_set->move_back_home (s->dev, s->dev->model->flags & - GENESYS_FLAG_MUST_WAIT); + s->dev->cmd_set->move_back_home (s->dev, has_flag(s->dev->model->flags, + ModelFlag::MUST_WAIT)); - s->dev->parking = !(s->dev->model->flags & GENESYS_FLAG_MUST_WAIT); + s->dev->parking = !has_flag(s->dev->model->flags, ModelFlag::MUST_WAIT); } } else diff --git a/backend/genesys/gl124.cpp b/backend/genesys/gl124.cpp index 054f1ef0b..41ad9eaa5 100644 --- a/backend/genesys/gl124.cpp +++ b/backend/genesys/gl124.cpp @@ -337,8 +337,6 @@ gl124_init_registers (Genesys_Device * dev) // fine tune upon device description const auto& sensor = sanei_genesys_find_sensor_any(dev); sanei_genesys_set_dpihw(dev->reg, sensor, sensor.optical_res); - - dev->calib_reg = dev->reg; } /**@brief send slope table for motor movement @@ -466,7 +464,7 @@ void CommandSetGl124::set_fe(Genesys_Device* dev, const Genesys_Sensor& sensor, static void gl124_init_motor_regs_scan(Genesys_Device* dev, const Genesys_Sensor& sensor, Genesys_Register_Set* reg, - const Motor_Profile& motor_profile, + const MotorProfile& motor_profile, unsigned int scan_exposure_time, unsigned scan_yres, unsigned int scan_lines, @@ -711,7 +709,7 @@ static void gl124_init_optical_regs_scan(Genesys_Device* dev, const Genesys_Sens regs_set_optical_off(dev->model->asic_type, *reg); r = sanei_genesys_get_address (reg, REG_0x01); if (has_flag(session.params.flags, ScanFlag::DISABLE_SHADING) || - (dev->model->flags & GENESYS_FLAG_NO_CALIBRATION)) + has_flag(dev->model->flags, ModelFlag::NO_CALIBRATION)) { r->value &= ~REG_0x01_DVDSET; } else { @@ -818,7 +816,7 @@ static void gl124_init_optical_regs_scan(Genesys_Device* dev, const Genesys_Sens dev->line_count = 0; - build_image_pipeline(dev, session); + build_image_pipeline(dev, sensor, session); // MAXWD is expressed in 2 words unit @@ -856,9 +854,7 @@ void CommandSetGl124::init_regs_for_scan_session(Genesys_Device* dev, const Gene } else { exposure_time = sensor.exposure_lperiod; } - const auto& motor_profile = sanei_genesys_get_motor_profile(*gl124_motor_profiles, - dev->model->motor_id, - exposure_time); + const auto& motor_profile = get_motor_profile(dev->motor.profiles, exposure_time, session); DBG(DBG_info, "%s : exposure_time=%d pixels\n", __func__, exposure_time); DBG(DBG_info, "%s : scan_step_type=%d\n", __func__, static_cast(motor_profile.step_type)); @@ -885,8 +881,7 @@ void CommandSetGl124::init_regs_for_scan_session(Genesys_Device* dev, const Gene mflags |= MotorFlag::REVERSE; } gl124_init_motor_regs_scan(dev, sensor, reg, motor_profile, exposure_time, slope_dpi, - dev->model->is_cis ? session.output_line_count * session.params.channels : - session.output_line_count, + session.optical_line_count, dummy, move, session.params.scan_mode, mflags); /*** prepares data reordering ***/ @@ -909,21 +904,24 @@ ScanSession CommandSetGl124::calculate_scan_session(const Genesys_Device* dev, const Genesys_Sensor& sensor, const Genesys_Settings& settings) const { - int start; - DBG(DBG_info, "%s ", __func__); debug_dump(DBG_info, settings); - /* start */ - start = static_cast(dev->model->x_offset); - start += static_cast(settings.tl_x); - start = static_cast((start * sensor.optical_res) / MM_PER_INCH); + unsigned move_dpi = dev->motor.base_ydpi / 4; + float move = dev->model->y_offset; + move += dev->settings.tl_y; + move = static_cast((move * move_dpi) / MM_PER_INCH); + + float start = dev->model->x_offset; + start += settings.tl_x; + start /= sensor.get_ccd_size_divisor_for_dpi(settings.xres); + start = static_cast((start * settings.xres) / MM_PER_INCH); ScanSession session; session.params.xres = settings.xres; session.params.yres = settings.yres; - session.params.startx = start; - session.params.starty = 0; // not used + session.params.startx = static_cast(start); + session.params.starty = static_cast(move); session.params.pixels = settings.pixels; session.params.requested_pixels = settings.requested_pixels; session.params.lines = settings.lines; @@ -1031,8 +1029,7 @@ void CommandSetGl124::begin_scan(Genesys_Device* dev, const Genesys_Sensor& sens // set up GPIO for scan gl124_setup_scan_gpio(dev,dev->settings.yres); - // clear scan and feed count - dev->interface->write_register(REG_0x0D, REG_0x0D_CLRLNCNT | REG_0x0D_CLRMCNT); + scanner_clear_scan_and_feed_counts(*dev); // enable scan and motor uint8_t val = dev->interface->read_register(REG_0x01); @@ -1069,155 +1066,27 @@ void CommandSetGl124::move_back_home(Genesys_Device* dev, bool wait_until_home) scanner_move_back_home(*dev, wait_until_home); } -// Automatically set top-left edge of the scan area by scanning a 200x200 pixels area at 600 dpi -// from very top of scanner -void CommandSetGl124::search_start_position(Genesys_Device* dev) const -{ - DBG_HELPER(dbg); - int size; - Genesys_Register_Set local_reg = dev->reg; - - int pixels = 600; - int dpi = 300; - - /* sets for a 200 lines * 600 pixels */ - /* normal scan with no shading */ - - // FIXME: the current approach of doing search only for one resolution does not work on scanners - // whith employ different sensors with potentially different settings. - const auto& sensor = sanei_genesys_find_sensor(dev, dpi, 1, ScanMethod::FLATBED); - - ScanSession session; - session.params.xres = dpi; - session.params.yres = dpi; - session.params.startx = 0; - session.params.starty = 0; /*we should give a small offset here~60 steps */ - session.params.pixels = 600; - session.params.lines = dev->model->search_lines; - session.params.depth = 8; - session.params.channels = 1; - session.params.scan_method = dev->settings.scan_method; - session.params.scan_mode = ScanColorMode::GRAY; - session.params.color_filter = ColorFilter::GREEN; - session.params.flags = ScanFlag::DISABLE_SHADING | - ScanFlag::DISABLE_GAMMA | - ScanFlag::IGNORE_LINE_DISTANCE | - ScanFlag::DISABLE_BUFFER_FULL_MOVE; - compute_session(dev, session, sensor); - - init_regs_for_scan_session(dev, sensor, &local_reg, session); - - // send to scanner - dev->interface->write_registers(local_reg); - - size = pixels * dev->model->search_lines; - - std::vector data(size); - - begin_scan(dev, sensor, &local_reg, true); - - if (is_testing_mode()) { - dev->interface->test_checkpoint("search_start_position"); - end_scan(dev, &local_reg, true); - dev->reg = local_reg; - return; - } - - wait_until_buffer_non_empty(dev); - - // now we're on target, we can read data - sanei_genesys_read_data_from_scanner(dev, data.data(), size); - - if (DBG_LEVEL >= DBG_data) { - sanei_genesys_write_pnm_file("gl124_search_position.pnm", data.data(), 8, 1, pixels, - dev->model->search_lines); - } - - end_scan(dev, &local_reg, true); - - /* update regs to copy ASIC internal state */ - dev->reg = local_reg; - - for (auto& sensor_update : - sanei_genesys_find_sensors_all_for_write(dev, dev->model->default_method)) - { - sanei_genesys_search_reference_point(dev, sensor_update, data.data(), 0, dpi, pixels, - dev->model->search_lines); - } -} - -// sets up register for coarse gain calibration -// todo: check it for scanners using it -void CommandSetGl124::init_regs_for_coarse_calibration(Genesys_Device* dev, - const Genesys_Sensor& sensor, - Genesys_Register_Set& regs) const -{ - DBG_HELPER(dbg); - - ScanSession session; - session.params.xres = dev->settings.xres; - session.params.yres = dev->settings.yres; - session.params.startx = 0; - session.params.starty = 0; - session.params.pixels = sensor.optical_res / sensor.ccd_pixels_per_system_pixel(); - session.params.lines = 20; - session.params.depth = 16; - session.params.channels = dev->settings.get_channels(); - session.params.scan_method = dev->settings.scan_method; - session.params.scan_mode = dev->settings.scan_mode; - session.params.color_filter = dev->settings.color_filter; - session.params.flags = ScanFlag::DISABLE_SHADING | - ScanFlag::DISABLE_GAMMA | - ScanFlag::SINGLE_LINE | - ScanFlag::FEEDING | - ScanFlag::IGNORE_LINE_DISTANCE; - compute_session(dev, session, sensor); - - init_regs_for_scan_session(dev, sensor, ®s, session); - - sanei_genesys_set_motor_power(regs, false); - - DBG(DBG_info, "%s: optical sensor res: %d dpi, actual res: %d\n", __func__, - sensor.optical_res / sensor.ccd_pixels_per_system_pixel(), dev->settings.xres); - - dev->interface->write_registers(regs); -} - - // init registers for shading calibration shading calibration is done at dpihw void CommandSetGl124::init_regs_for_shading(Genesys_Device* dev, const Genesys_Sensor& sensor, Genesys_Register_Set& regs) const { DBG_HELPER(dbg); - int move, resolution, dpihw, factor; - /* initial calibration reg values */ - regs = dev->reg; - - dev->calib_channels = 3; - dev->calib_lines = dev->model->shading_lines; - dpihw = sensor.get_register_hwdpi(dev->settings.xres); - if(dpihw>=2400) - { - dev->calib_lines *= 2; - } - resolution=dpihw; + unsigned channels = 3; + unsigned dpihw = sensor.get_register_hwdpi(dev->settings.xres); + unsigned resolution = dpihw; unsigned ccd_size_divisor = sensor.get_ccd_size_divisor_for_dpi(dev->settings.xres); resolution /= ccd_size_divisor; - dev->calib_lines /= ccd_size_divisor; // reducing just because we reduced the resolution + unsigned calib_lines = + static_cast(dev->model->y_size_calib_mm * resolution / MM_PER_INCH); - const auto& calib_sensor = sanei_genesys_find_sensor(dev, resolution, - dev->calib_channels, + const auto& calib_sensor = sanei_genesys_find_sensor(dev, resolution, channels, dev->settings.scan_method); - dev->calib_resolution = resolution; - dev->calib_total_bytes_to_read = 0; - factor = calib_sensor.optical_res / resolution; - dev->calib_pixels = calib_sensor.sensor_pixels / factor; /* distance to move to reach white target at high resolution */ - move=0; + unsigned move=0; if (dev->settings.yres >= 1200) { move = static_cast(dev->model->y_offset_calib_white); move = static_cast((move * (dev->motor.base_ydpi/4)) / MM_PER_INCH); @@ -1229,17 +1098,16 @@ void CommandSetGl124::init_regs_for_shading(Genesys_Device* dev, const Genesys_S session.params.yres = resolution; session.params.startx = 0; session.params.starty = move; - session.params.pixels = dev->calib_pixels; - session.params.lines = dev->calib_lines; + session.params.pixels = dev->model->x_size_calib_mm * resolution / MM_PER_INCH; + session.params.lines = calib_lines; session.params.depth = 16; - session.params.channels = dev->calib_channels; + session.params.channels = channels; session.params.scan_method = dev->settings.scan_method; session.params.scan_mode = ScanColorMode::COLOR_SINGLE_PASS; session.params.color_filter = ColorFilter::RED; session.params.flags = ScanFlag::DISABLE_SHADING | ScanFlag::DISABLE_GAMMA | - ScanFlag::DISABLE_BUFFER_FULL_MOVE | - ScanFlag::IGNORE_LINE_DISTANCE; + ScanFlag::DISABLE_BUFFER_FULL_MOVE; compute_session(dev, session, calib_sensor); try { @@ -1250,7 +1118,7 @@ void CommandSetGl124::init_regs_for_shading(Genesys_Device* dev, const Genesys_S } sanei_genesys_set_motor_power(regs, false); - dev->interface->write_registers(regs); + dev->calib_session = session; } void CommandSetGl124::wait_for_motor_stop(Genesys_Device* dev) const @@ -1274,52 +1142,21 @@ void CommandSetGl124::wait_for_motor_stop(Genesys_Device* dev) const /** @brief set up registers for the actual scan */ -void CommandSetGl124::init_regs_for_scan(Genesys_Device* dev, const Genesys_Sensor& sensor) const +void CommandSetGl124::init_regs_for_scan(Genesys_Device* dev, const Genesys_Sensor& sensor, + Genesys_Register_Set& regs) const { DBG_HELPER(dbg); - float move; - int move_dpi; - float start; + auto session = calculate_scan_session(dev, sensor, dev->settings); - debug_dump(DBG_info, dev->settings); - - /* y (motor) distance to move to reach scanned area */ - move_dpi = dev->motor.base_ydpi/4; - move = static_cast(dev->model->y_offset); - move += static_cast(dev->settings.tl_y); - move = static_cast((move * move_dpi) / MM_PER_INCH); - DBG (DBG_info, "%s: move=%f steps\n", __func__, move); - - if (dev->settings.get_channels() * dev->settings.yres >= 600 && move > 700) { - scanner_move(*dev, dev->model->default_method, static_cast(move - 500), + if (dev->settings.get_channels() * dev->settings.yres >= 600 && session.params.starty > 700) { + scanner_move(*dev, dev->model->default_method, + static_cast(session.params.starty - 500), Direction::FORWARD); - move=500; + session.params.starty = 500; } - DBG(DBG_info, "%s: move=%f steps\n", __func__, move); - - /* start */ - start = static_cast(dev->model->x_offset); - start += static_cast(dev->settings.tl_x); - start /= sensor.get_ccd_size_divisor_for_dpi(dev->settings.xres); - start = static_cast((start * sensor.optical_res) / MM_PER_INCH); - - ScanSession session; - session.params.xres = dev->settings.xres; - session.params.yres = dev->settings.yres; - session.params.startx = static_cast(start); - session.params.starty = static_cast(move); - session.params.pixels = dev->settings.pixels; - session.params.requested_pixels = dev->settings.requested_pixels; - session.params.lines = dev->settings.lines; - session.params.depth = dev->settings.depth; - session.params.channels = dev->settings.get_channels(); - session.params.scan_method = dev->settings.scan_method; - session.params.scan_mode = dev->settings.scan_mode; - session.params.color_filter = dev->settings.color_filter; - session.params.flags = ScanFlag::NONE; compute_session(dev, session, sensor); - init_regs_for_scan_session(dev, sensor, &dev->reg, session); + init_regs_for_scan_session(dev, sensor, ®s, session); } /** @@ -1439,14 +1276,11 @@ static void move_to_calibration_area(Genesys_Device* dev, const Genesys_Sensor& (void) sensor; DBG_HELPER(dbg); - int pixels; - int size; unsigned resolution = 600; unsigned channels = 3; const auto& move_sensor = sanei_genesys_find_sensor(dev, resolution, channels, dev->settings.scan_method); - pixels = (move_sensor.sensor_pixels * 600) / move_sensor.optical_res; /* initial calibration reg values */ regs = dev->reg; @@ -1456,7 +1290,7 @@ static void move_to_calibration_area(Genesys_Device* dev, const Genesys_Sensor& session.params.yres = resolution; session.params.startx = 0; session.params.starty = 0; - session.params.pixels = pixels; + session.params.pixels = dev->model->x_size_calib_mm * resolution / MM_PER_INCH; session.params.lines = 1; session.params.depth = 8; session.params.channels = channels; @@ -1466,14 +1300,12 @@ static void move_to_calibration_area(Genesys_Device* dev, const Genesys_Sensor& session.params.flags = ScanFlag::DISABLE_SHADING | ScanFlag::DISABLE_GAMMA | ScanFlag::SINGLE_LINE | - ScanFlag::IGNORE_LINE_DISTANCE; + ScanFlag::IGNORE_STAGGER_OFFSET | + ScanFlag::IGNORE_COLOR_OFFSET; compute_session(dev, session, move_sensor); dev->cmd_set->init_regs_for_scan_session(dev, move_sensor, ®s, session); - size = pixels * 3; - std::vector line(size); - // write registers and scan data dev->interface->write_registers(regs); @@ -1486,14 +1318,13 @@ static void move_to_calibration_area(Genesys_Device* dev, const Genesys_Sensor& return; } - sanei_genesys_read_data_from_scanner(dev, line.data(), size); + auto image = read_unshuffled_image_from_scanner(dev, session, session.output_line_bytes); // stop scanning scanner_stop_action(*dev); - if (DBG_LEVEL >= DBG_data) - { - sanei_genesys_write_pnm_file("gl124_movetocalarea.pnm", line.data(), 8, 3, pixels, 1); + if (DBG_LEVEL >= DBG_data) { + sanei_genesys_write_pnm_file("gl124_movetocalarea.pnm", image); } } @@ -1506,13 +1337,9 @@ SensorExposure CommandSetGl124::led_calibration(Genesys_Device* dev, const Genes Genesys_Register_Set& regs) const { DBG_HELPER(dbg); - int num_pixels; - int total_size; int resolution; int dpihw; - int i, j; - int val; - int channels; + int i; int avg[3]; int turn; uint16_t exp[3],target; @@ -1521,7 +1348,7 @@ SensorExposure CommandSetGl124::led_calibration(Genesys_Device* dev, const Genes move_to_calibration_area(dev, sensor, regs); /* offset calibration is always done in 16 bit depth color mode */ - channels = 3; + unsigned channels = 3; dpihw = sensor.get_register_hwdpi(dev->settings.xres); resolution = dpihw; unsigned ccd_size_divisor = sensor.get_ccd_size_divisor_for_dpi(dev->settings.xres); @@ -1529,7 +1356,6 @@ SensorExposure CommandSetGl124::led_calibration(Genesys_Device* dev, const Genes const auto& calib_sensor = sanei_genesys_find_sensor(dev, resolution, channels, dev->settings.scan_method); - num_pixels = (calib_sensor.sensor_pixels * resolution) / calib_sensor.optical_res; /* initial calibration reg values */ regs = dev->reg; @@ -1539,7 +1365,7 @@ SensorExposure CommandSetGl124::led_calibration(Genesys_Device* dev, const Genes session.params.yres = resolution; session.params.startx = 0; session.params.starty = 0; - session.params.pixels = num_pixels; + session.params.pixels = dev->model->x_size_calib_mm * resolution / MM_PER_INCH;; session.params.lines = 1; session.params.depth = 16; session.params.channels = channels; @@ -1549,14 +1375,12 @@ SensorExposure CommandSetGl124::led_calibration(Genesys_Device* dev, const Genes session.params.flags = ScanFlag::DISABLE_SHADING | ScanFlag::DISABLE_GAMMA | ScanFlag::SINGLE_LINE | - ScanFlag::IGNORE_LINE_DISTANCE; + ScanFlag::IGNORE_STAGGER_OFFSET | + ScanFlag::IGNORE_COLOR_OFFSET; compute_session(dev, session, calib_sensor); init_regs_for_scan_session(dev, calib_sensor, ®s, session); - total_size = num_pixels * channels * (session.params.depth / 8) * 1; - std::vector line(total_size); - // initial loop values and boundaries exp[0] = calib_sensor.exposure.red; exp[1] = calib_sensor.exposure.green; @@ -1587,7 +1411,7 @@ SensorExposure CommandSetGl124::led_calibration(Genesys_Device* dev, const Genes return calib_sensor.exposure; } - sanei_genesys_read_data_from_scanner(dev, line.data(), total_size); + auto image = read_unshuffled_image_from_scanner(dev, session, session.output_line_bytes); // stop scanning scanner_stop_action(*dev); @@ -1596,29 +1420,16 @@ SensorExposure CommandSetGl124::led_calibration(Genesys_Device* dev, const Genes { char fn[30]; std::snprintf(fn, 30, "gl124_led_%02d.pnm", turn); - sanei_genesys_write_pnm_file(fn, line.data(), session.params.depth, channels, num_pixels, - 1); - } + sanei_genesys_write_pnm_file(fn, image); + } - /* compute average */ - for (j = 0; j < channels; j++) - { - avg[j] = 0; - for (i = 0; i < num_pixels; i++) - { - if (dev->model->is_cis) - val = - line[i * 2 + j * 2 * num_pixels + 1] * 256 + - line[i * 2 + j * 2 * num_pixels]; - else - val = - line[i * 2 * channels + 2 * j + 1] * 256 + - line[i * 2 * channels + 2 * j]; - avg[j] += val; - } - - avg[j] /= num_pixels; - } + for (unsigned ch = 0; ch < channels; ch++) { + avg[ch] = 0; + for (std::size_t x = 0; x < image.get_width(); x++) { + avg[ch] += image.get_raw_channel(x, 0, ch); + } + avg[ch] /= image.get_width(); + } DBG(DBG_info, "%s: average: %d,%d,%d\n", __func__, avg[0], avg[1], avg[2]); @@ -1692,9 +1503,9 @@ void CommandSetGl124::offset_calibration(Genesys_Device* dev, const Genesys_Sens { DBG_HELPER(dbg); unsigned channels; - int pass = 0, avg, total_size; + int pass = 0, avg; int topavg, bottomavg, lines; - int top, bottom, black_pixels, pixels; + int top, bottom, black_pixels; // no gain nor offset for TI AFE uint8_t reg0a = dev->interface->read_register(REG_0x0A); @@ -1704,9 +1515,8 @@ void CommandSetGl124::offset_calibration(Genesys_Device* dev, const Genesys_Sens /* offset calibration is always done in color mode */ channels = 3; - dev->calib_pixels = sensor.sensor_pixels; lines=1; - pixels = (sensor.sensor_pixels * sensor.optical_res) / sensor.optical_res; + unsigned pixels = dev->model->x_size_calib_mm * sensor.optical_res / MM_PER_INCH; black_pixels = (sensor.black_pixels * sensor.optical_res) / sensor.optical_res; DBG(DBG_io2, "%s: black_pixels=%d\n", __func__, black_pixels); @@ -1725,19 +1535,14 @@ void CommandSetGl124::offset_calibration(Genesys_Device* dev, const Genesys_Sens session.params.flags = ScanFlag::DISABLE_SHADING | ScanFlag::DISABLE_GAMMA | ScanFlag::SINGLE_LINE | - ScanFlag::IGNORE_LINE_DISTANCE; + ScanFlag::IGNORE_STAGGER_OFFSET | + ScanFlag::IGNORE_COLOR_OFFSET; compute_session(dev, session, sensor); init_regs_for_scan_session(dev, sensor, ®s, session); sanei_genesys_set_motor_power(regs, false); - /* allocate memory for scans */ - total_size = pixels * channels * lines * (session.params.depth / 8); - - std::vector first_line(total_size); - std::vector second_line(total_size); - /* init gain */ dev->frontend.set_gain(0, 0); dev->frontend.set_gain(1, 0); @@ -1759,16 +1564,16 @@ void CommandSetGl124::offset_calibration(Genesys_Device* dev, const Genesys_Sens return; } - sanei_genesys_read_data_from_scanner(dev, first_line.data(), total_size); + auto first_line = read_unshuffled_image_from_scanner(dev, session, session.output_line_bytes); + if (DBG_LEVEL >= DBG_data) { char title[30]; std::snprintf(title, 30, "gl124_offset%03d.pnm", bottom); - sanei_genesys_write_pnm_file(title, first_line.data(), session.params.depth, - channels, pixels, lines); + sanei_genesys_write_pnm_file(title, first_line); } - bottomavg = dark_average(first_line.data(), pixels, lines, channels, black_pixels); + bottomavg = dark_average(first_line.get_row_ptr(0), pixels, lines, channels, black_pixels); DBG(DBG_io2, "%s: bottom avg=%d\n", __func__, bottomavg); /* now top value */ @@ -1780,9 +1585,10 @@ void CommandSetGl124::offset_calibration(Genesys_Device* dev, const Genesys_Sens dev->interface->write_registers(regs); DBG(DBG_info, "%s: starting second line reading\n", __func__); begin_scan(dev, sensor, ®s, true); - sanei_genesys_read_data_from_scanner(dev, second_line.data(), total_size); - topavg = dark_average(second_line.data(), pixels, lines, channels, black_pixels); + auto second_line = read_unshuffled_image_from_scanner(dev, session, session.output_line_bytes); + + topavg = dark_average(second_line.get_row_ptr(0), pixels, lines, channels, black_pixels); DBG(DBG_io2, "%s: top avg=%d\n", __func__, topavg); /* loop until acceptable level */ @@ -1800,17 +1606,15 @@ void CommandSetGl124::offset_calibration(Genesys_Device* dev, const Genesys_Sens dev->interface->write_registers(regs); DBG(DBG_info, "%s: starting second line reading\n", __func__); begin_scan(dev, sensor, ®s, true); - sanei_genesys_read_data_from_scanner(dev, second_line.data(), total_size); + second_line = read_unshuffled_image_from_scanner(dev, session, session.output_line_bytes); - if (DBG_LEVEL >= DBG_data) - { + if (DBG_LEVEL >= DBG_data) { char title[30]; std::snprintf(title, 30, "gl124_offset%03d.pnm", dev->frontend.get_offset(1)); - sanei_genesys_write_pnm_file(title, second_line.data(), session.params.depth, - channels, pixels, lines); - } + sanei_genesys_write_pnm_file(title, second_line); + } - avg = dark_average(second_line.data(), pixels, lines, channels, black_pixels); + avg = dark_average(second_line.get_row_ptr(0), pixels, lines, channels, black_pixels); DBG(DBG_info, "%s: avg=%d offset=%d\n", __func__, avg, dev->frontend.get_offset(1)); /* compute new boundaries */ @@ -1845,12 +1649,8 @@ void CommandSetGl124::coarse_gain_calibration(Genesys_Device* dev, const Genesys Genesys_Register_Set& regs, int dpi) const { DBG_HELPER_ARGS(dbg, "dpi = %d", dpi); - int pixels; - int total_size; - int i, j, channels; - int max[3]; float gain[3],coeff; - int val, code, lines; + int code, lines; // no gain nor offset for TI AFE uint8_t reg0a = dev->interface->read_register(REG_0x0A); @@ -1859,7 +1659,7 @@ void CommandSetGl124::coarse_gain_calibration(Genesys_Device* dev, const Genesys } /* coarse gain calibration is always done in color mode */ - channels = 3; + unsigned channels = 3; if(dev->settings.xresmodel->x_size_calib_mm * sensor.optical_res / MM_PER_INCH;; session.params.lines = lines; session.params.depth = 8; session.params.channels = channels; @@ -1885,7 +1684,8 @@ void CommandSetGl124::coarse_gain_calibration(Genesys_Device* dev, const Genesys session.params.flags = ScanFlag::DISABLE_SHADING | ScanFlag::DISABLE_GAMMA | ScanFlag::SINGLE_LINE | - ScanFlag::IGNORE_LINE_DISTANCE; + ScanFlag::IGNORE_STAGGER_OFFSET | + ScanFlag::IGNORE_COLOR_OFFSET; compute_session(dev, session, sensor); try { @@ -1899,9 +1699,7 @@ void CommandSetGl124::coarse_gain_calibration(Genesys_Device* dev, const Genesys dev->interface->write_registers(regs); - total_size = pixels * channels * (16 / session.params.depth) * lines; - - std::vector line(total_size); + std::vector line(session.output_line_bytes); set_fe(dev, sensor, AFE_SET); begin_scan(dev, sensor, ®s, true); @@ -1913,41 +1711,35 @@ void CommandSetGl124::coarse_gain_calibration(Genesys_Device* dev, const Genesys return; } - sanei_genesys_read_data_from_scanner(dev, line.data(), total_size); + // BUG: we probably want to read whole image, not just first line + auto image = read_unshuffled_image_from_scanner(dev, session, session.output_line_bytes); if (DBG_LEVEL >= DBG_data) { - sanei_genesys_write_pnm_file("gl124_gain.pnm", line.data(), session.params.depth, - channels, pixels, lines); + sanei_genesys_write_pnm_file("gl124_gain.pnm", image); } /* average value on each channel */ - for (j = 0; j < channels; j++) - { - max[j] = 0; - for (i = pixels/4; i < (pixels*3/4); i++) - { - if (dev->model->is_cis) { - val = line[i + j * pixels]; - } else { - val = line[i * channels + j]; - } + for (unsigned ch = 0; ch < channels; ch++) { - max[j] += val; - } - max[j] = max[j] / (pixels/2); + auto width = image.get_width(); - gain[j] = (static_cast(sensor.gain_white_ref) * coeff) / max[j]; + std::uint64_t total = 0; + for (std::size_t x = width / 4; x < (width * 3 / 4); x++) { + total += image.get_raw_channel(x, 0, ch); + } + + total /= width / 2; + + gain[ch] = (static_cast(sensor.gain_white_ref) * coeff) / total; /* turn logical gain value into gain code, checking for overflow */ - code = static_cast(283 - 208 / gain[j]); - if (code > 255) - code = 255; - else if (code < 0) - code = 0; - dev->frontend.set_gain(j, code); + code = static_cast(283 - 208 / gain[ch]); + code = clamp(code, 0, 255); + dev->frontend.set_gain(ch, code); - DBG(DBG_proc, "%s: channel %d, max=%d, gain = %f, setting:%d\n", __func__, j, max[j], - gain[j], dev->frontend.get_gain(j)); + DBG(DBG_proc, "%s: channel %d, total=%d, gain = %f, setting:%d\n", __func__, ch, + static_cast(total), + gain[ch], dev->frontend.get_gain(ch)); } if (dev->model->is_cis) { @@ -1989,9 +1781,9 @@ void CommandSetGl124::init_regs_for_warmup(Genesys_Device* dev, const Genesys_Se ScanSession session; session.params.xres = sensor.optical_res; session.params.yres = dev->motor.base_ydpi; - session.params.startx = sensor.sensor_pixels / 4; + session.params.startx = dev->model->x_size_calib_mm * sensor.optical_res / MM_PER_INCH / 4; session.params.starty = 0; - session.params.pixels = sensor.sensor_pixels / 2; + session.params.pixels = dev->model->x_size_calib_mm * sensor.optical_res / MM_PER_INCH / 2; session.params.lines = 1; session.params.depth = 8; session.params.channels = *channels; @@ -2001,7 +1793,8 @@ void CommandSetGl124::init_regs_for_warmup(Genesys_Device* dev, const Genesys_Se session.params.flags = ScanFlag::DISABLE_SHADING | ScanFlag::DISABLE_GAMMA | ScanFlag::SINGLE_LINE | - ScanFlag::IGNORE_LINE_DISTANCE; + ScanFlag::IGNORE_STAGGER_OFFSET | + ScanFlag::IGNORE_COLOR_OFFSET; compute_session(dev, session, sensor); init_regs_for_scan_session(dev, sensor, reg, session); @@ -2011,7 +1804,6 @@ void CommandSetGl124::init_regs_for_warmup(Genesys_Device* dev, const Genesys_Se *total_size = num_pixels * 3 * 1; /* colors * bytes_per_color * scan lines */ sanei_genesys_set_motor_power(*reg, false); - dev->interface->write_registers(*reg); } /** @brief default GPIO values @@ -2244,16 +2036,6 @@ void CommandSetGl124::eject_document(Genesys_Device* dev) const throw SaneException("not implemented"); } -void CommandSetGl124::search_strip(Genesys_Device* dev, const Genesys_Sensor& sensor, - bool forward, bool black) const -{ - (void) dev; - (void) sensor; - (void) forward; - (void) black; - throw SaneException("not implemented"); -} - void CommandSetGl124::move_to_ta(Genesys_Device* dev) const { (void) dev; diff --git a/backend/genesys/gl124.h b/backend/genesys/gl124.h index cdf8faf5a..a69507862 100644 --- a/backend/genesys/gl124.h +++ b/backend/genesys/gl124.h @@ -45,7 +45,7 @@ #define BACKEND_GENESYS_GL124_H #include "genesys.h" -#include "command_set.h" +#include "command_set_common.h" namespace genesys { namespace gl124 { @@ -112,7 +112,7 @@ static Memory_layout layouts[]={ static void gl124_send_slope_table(Genesys_Device* dev, int table_nr, const std::vector& slope_table, int steps); -class CommandSetGl124 : public CommandSet +class CommandSetGl124 : public CommandSetCommon { public: ~CommandSetGl124() override = default; @@ -125,13 +125,11 @@ public: Genesys_Register_Set* regs, int* channels, int* total_size) const override; - void init_regs_for_coarse_calibration(Genesys_Device* dev, const Genesys_Sensor& sensor, - Genesys_Register_Set& regs) const override; - void init_regs_for_shading(Genesys_Device* dev, const Genesys_Sensor& sensor, Genesys_Register_Set& regs) const override; - void init_regs_for_scan(Genesys_Device* dev, const Genesys_Sensor& sensor) const override; + void init_regs_for_scan(Genesys_Device* dev, const Genesys_Sensor& sensor, + Genesys_Register_Set& regs) const override; void init_regs_for_scan_session(Genesys_Device* dev, const Genesys_Sensor& sensor, Genesys_Register_Set* reg, @@ -148,8 +146,6 @@ public: void send_gamma_table(Genesys_Device* dev, const Genesys_Sensor& sensor) const override; - void search_start_position(Genesys_Device* dev) const override; - void offset_calibration(Genesys_Device* dev, const Genesys_Sensor& sensor, Genesys_Register_Set& regs) const override; @@ -175,9 +171,6 @@ public: void eject_document(Genesys_Device* dev) const override; - void search_strip(Genesys_Device* dev, const Genesys_Sensor& sensor, - bool forward, bool black) const override; - void move_to_ta(Genesys_Device* dev) const override; void send_shading_data(Genesys_Device* dev, const Genesys_Sensor& sensor, uint8_t* data, diff --git a/backend/genesys/gl646.cpp b/backend/genesys/gl646.cpp index 04ee85ec2..8eaf6d247 100644 --- a/backend/genesys/gl646.cpp +++ b/backend/genesys/gl646.cpp @@ -232,9 +232,8 @@ void CommandSetGl646::init_regs_for_scan_session(Genesys_Device* dev, const Gene regs->find_reg(0x01).value &= ~REG_0x01_CISSET; } - /* if device has no calibration, don't enable shading correction */ - if (dev->model->flags & GENESYS_FLAG_NO_CALIBRATION) - { + // if device has no calibration, don't enable shading correction + if (has_flag(dev->model->flags, ModelFlag::NO_CALIBRATION)) { regs->find_reg(0x01).value &= ~REG_0x01_DVDSET; } @@ -317,7 +316,7 @@ void CommandSetGl646::init_regs_for_scan_session(Genesys_Device* dev, const Gene sanei_genesys_set_dpihw(*regs, sensor, sensor.optical_res); /* gamma enable for scans */ - if (dev->model->flags & GENESYS_FLAG_14BIT_GAMMA) { + if (has_flag(dev->model->flags, ModelFlag::GAMMA_14BIT)) { regs->find_reg(0x05).value |= REG_0x05_GMM14BIT; } @@ -551,7 +550,7 @@ void CommandSetGl646::init_regs_for_scan_session(Genesys_Device* dev, const Gene dev->read_buffer.clear(); dev->read_buffer.alloc(session.buffer_size_read); - build_image_pipeline(dev, session); + build_image_pipeline(dev, sensor, session); dev->read_active = true; @@ -666,7 +665,7 @@ gl646_init_regs (Genesys_Device * dev) dev->reg.find_reg(0x05).value = 0x00; /* 12 bits gamma, disable gamma, 24 clocks/pixel */ sanei_genesys_set_dpihw(dev->reg, sensor, sensor.optical_res); - if (dev->model->flags & GENESYS_FLAG_14BIT_GAMMA) { + if (has_flag(dev->model->flags, ModelFlag::GAMMA_14BIT)) { dev->reg.find_reg(0x05).value |= REG_0x05_GMM14BIT; } if (dev->model->adc_id == AdcId::AD_XP200) { @@ -1473,7 +1472,7 @@ void CommandSetGl646::move_back_home(Genesys_Device* dev, bool wait_until_home) if (!i) /* the loop counted down to 0, scanner still is busy */ { - dev->set_head_pos_unknown(); + dev->set_head_pos_unknown(ScanHeadId::PRIMARY | ScanHeadId::SECONDARY); throw SaneException(SANE_STATUS_DEVICE_BUSY, "motor is still on: device busy"); } @@ -1567,7 +1566,7 @@ void CommandSetGl646::move_back_home(Genesys_Device* dev, bool wait_until_home) // stop the motor catch_all_exceptions(__func__, [&](){ gl646_stop_motor (dev); }); catch_all_exceptions(__func__, [&](){ end_scan_impl(dev, &dev->reg, true, false); }); - dev->set_head_pos_unknown(); + dev->set_head_pos_unknown(ScanHeadId::PRIMARY | ScanHeadId::SECONDARY); throw SaneException(SANE_STATUS_IO_ERROR, "timeout while waiting for scanhead to go home"); } @@ -1575,90 +1574,6 @@ void CommandSetGl646::move_back_home(Genesys_Device* dev, bool wait_until_home) DBG(DBG_info, "%s: scanhead is still moving\n", __func__); } -/** - * Automatically set top-left edge of the scan area by scanning an - * area at 300 dpi from very top of scanner - * @param dev device stucture describing the scanner - */ -void CommandSetGl646::search_start_position(Genesys_Device* dev) const -{ - DBG_HELPER(dbg); - Genesys_Settings settings; - unsigned int resolution, x, y; - - /* we scan at 300 dpi */ - resolution = get_closest_resolution(dev->model->sensor_id, 300, 1); - - // FIXME: the current approach of doing search only for one resolution does not work on scanners - // whith employ different sensors with potentially different settings. - const auto& sensor = sanei_genesys_find_sensor(dev, resolution, 1, - dev->model->default_method); - - /* fill settings for a gray level scan */ - settings.scan_method = dev->model->default_method; - settings.scan_mode = ScanColorMode::GRAY; - settings.xres = resolution; - settings.yres = resolution; - settings.tl_x = 0; - settings.tl_y = 0; - settings.pixels = 600; - settings.requested_pixels = settings.pixels; - settings.lines = dev->model->search_lines; - settings.depth = 8; - settings.color_filter = ColorFilter::RED; - - settings.disable_interpolation = 0; - settings.threshold = 0; - - // scan the desired area - std::vector data; - simple_scan(dev, sensor, settings, true, true, false, data, "search_start_position"); - - // handle stagger case : reorder gray data and thus loose some lines - auto staggered_lines = dev->session.num_staggered_lines; - if (staggered_lines > 0) { - DBG(DBG_proc, "%s: 'un-staggering'\n", __func__); - for (y = 0; y < settings.lines - staggered_lines; y++) { - /* one point out of 2 is 'unaligned' */ - for (x = 0; x < settings.pixels; x += 2) - { - data[y * settings.pixels + x] = data[(y + staggered_lines) * settings.pixels + x]; - } - } - /* correct line number */ - settings.lines -= staggered_lines; - } - - if (DBG_LEVEL >= DBG_data) - { - sanei_genesys_write_pnm_file("gl646_search_position.pnm", data.data(), settings.depth, 1, - settings.pixels, settings.lines); - } - - // now search reference points on the data - for (auto& sensor_update : - sanei_genesys_find_sensors_all_for_write(dev, dev->model->default_method)) - { - sanei_genesys_search_reference_point(dev, sensor_update, data.data(), 0, - resolution, settings.pixels, settings.lines); - } -} - -/** - * internally overriden during effective calibration - * sets up register for coarse gain calibration - */ -void CommandSetGl646::init_regs_for_coarse_calibration(Genesys_Device* dev, - const Genesys_Sensor& sensor, - Genesys_Register_Set& regs) const -{ - DBG_HELPER(dbg); - (void) dev; - (void) sensor; - (void) regs; -} - - /** * init registers for shading calibration * we assume that scanner's head is on an area suiting shading calibration. @@ -1694,10 +1609,13 @@ void CommandSetGl646::init_regs_for_shading(Genesys_Device* dev, const Genesys_S settings.yres = settings.xres; settings.tl_x = 0; settings.tl_y = 0; - settings.pixels = (calib_sensor.sensor_pixels * settings.xres) / calib_sensor.optical_res; + settings.pixels = dev->model->x_size_calib_mm * settings.xres / MM_PER_INCH; settings.requested_pixels = settings.pixels; - dev->calib_lines = dev->model->shading_lines; - settings.lines = dev->calib_lines * (3 - ccd_size_divisor); + + unsigned calib_lines = + static_cast(dev->model->y_size_calib_mm * settings.yres / MM_PER_INCH); + settings.lines = calib_lines; + settings.depth = 16; settings.color_filter = dev->settings.color_filter; @@ -1706,14 +1624,8 @@ void CommandSetGl646::init_regs_for_shading(Genesys_Device* dev, const Genesys_S // we don't want top offset, but we need right margin to be the same than the one for the final // scan - setup_for_scan(dev, calib_sensor, &dev->reg, settings, true, false, false, false); - - /* used when sending shading calibration data */ - dev->calib_pixels = settings.pixels; - dev->calib_channels = dev->session.params.channels; - if (!dev->model->is_cis) { - dev->calib_channels = 3; - } + dev->calib_session = setup_for_scan(dev, calib_sensor, &dev->reg, settings, + true, false, false, false); /* no shading */ dev->reg.find_reg(0x01).value &= ~REG_0x01_DVDSET; @@ -1725,14 +1637,11 @@ void CommandSetGl646::init_regs_for_shading(Genesys_Device* dev, const Genesys_S /* TODO another flag to setup regs ? */ /* enforce needed LINCNT, getting rid of extra lines for color reordering */ if (!dev->model->is_cis) { - dev->reg.set24(REG_LINCNT, dev->calib_lines); + dev->reg.set24(REG_LINCNT, calib_lines); } else { - dev->reg.set24(REG_LINCNT, dev->calib_lines * 3); + dev->reg.set24(REG_LINCNT, calib_lines * 3); } - /* copy reg to calib_reg */ - dev->calib_reg = dev->reg; - DBG(DBG_info, "%s:\n\tdev->settings.xres=%d\n\tdev->settings.yres=%d\n", __func__, dev->settings.xres, dev->settings.yres); } @@ -1748,7 +1657,8 @@ bool CommandSetGl646::needs_home_before_init_regs_for_scan(Genesys_Device* dev) * set up registers for the actual scan. The scan's parameters are given * through the device settings. It allocates the scan buffers. */ -void CommandSetGl646::init_regs_for_scan(Genesys_Device* dev, const Genesys_Sensor& sensor) const +void CommandSetGl646::init_regs_for_scan(Genesys_Device* dev, const Genesys_Sensor& sensor, + Genesys_Register_Set& regs) const { DBG_HELPER(dbg); @@ -1756,11 +1666,11 @@ void CommandSetGl646::init_regs_for_scan(Genesys_Device* dev, const Genesys_Sens ScanSession session = calculate_scan_session(dev, sensor, dev->settings); - init_regs_for_scan_session(dev, sensor, &dev->reg, session); + init_regs_for_scan_session(dev, sensor, ®s, session); /* gamma is only enabled at final scan time */ if (dev->settings.depth < 16) { - dev->reg.find_reg(0x05).value |= REG_0x05_GMMENB; + regs.find_reg(0x05).value |= REG_0x05_GMMENB; } } @@ -1775,14 +1685,14 @@ void CommandSetGl646::init_regs_for_scan(Genesys_Device* dev, const Genesys_Sens * @param xcorrection take x geometry correction into account (fixed and detected offsets) * @param ycorrection take y geometry correction into account */ -static void setup_for_scan(Genesys_Device* dev, - const Genesys_Sensor& sensor, - Genesys_Register_Set*regs, - Genesys_Settings settings, - bool split, - bool xcorrection, - bool ycorrection, - bool reverse) +static ScanSession setup_for_scan(Genesys_Device* dev, + const Genesys_Sensor& sensor, + Genesys_Register_Set*regs, + Genesys_Settings settings, + bool split, + bool xcorrection, + bool ycorrection, + bool reverse) { DBG_HELPER(dbg); @@ -1794,12 +1704,12 @@ static void setup_for_scan(Genesys_Device* dev, if (!split) { if (!dev->model->is_sheetfed) { if (ycorrection) { - move = static_cast(dev->model->y_offset); + move = dev->model->y_offset; } // add tl_y to base movement } - move += static_cast(settings.tl_y); + move += settings.tl_y; if (move < 0) { DBG(DBG_error, "%s: overriding negative move value %f\n", __func__, move); @@ -1809,15 +1719,15 @@ static void setup_for_scan(Genesys_Device* dev, move = static_cast((move * dev->motor.optical_ydpi) / MM_PER_INCH); DBG(DBG_info, "%s: move=%f steps\n", __func__, move); - float start = static_cast(settings.tl_x); + float start = settings.tl_x; if (xcorrection) { if (settings.scan_method == ScanMethod::FLATBED) { - start += static_cast(dev->model->x_offset); + start += dev->model->x_offset; } else { - start += static_cast(dev->model->x_offset_ta); + start += dev->model->x_offset_ta; } } - start = static_cast((start * sensor.optical_res) / MM_PER_INCH); + start = static_cast((start * settings.xres) / MM_PER_INCH); ScanSession session; session.params.xres = settings.xres; @@ -1845,6 +1755,8 @@ static void setup_for_scan(Genesys_Device* dev, compute_session(dev, session, sensor); dev->cmd_set->init_regs_for_scan_session(dev, sensor, regs, session); + + return session; } /** @@ -1857,9 +1769,7 @@ void CommandSetGl646::send_gamma_table(Genesys_Device* dev, const Genesys_Sensor int address; int bits; - /* gamma table size */ - if (dev->model->flags & GENESYS_FLAG_14BIT_GAMMA) - { + if (has_flag(dev->model->flags, ModelFlag::GAMMA_14BIT)) { size = 16384; bits = 14; } @@ -1931,7 +1841,7 @@ SensorExposure CommandSetGl646::led_calibration(Genesys_Device* dev, const Genes settings.yres = resolution; settings.tl_x = 0; settings.tl_y = 0; - settings.pixels = (sensor.sensor_pixels * resolution) / sensor.optical_res; + settings.pixels = dev->model->x_size_calib_mm * resolution / MM_PER_INCH; settings.requested_pixels = settings.pixels; settings.lines = 1; settings.depth = 16; @@ -2105,7 +2015,7 @@ static void ad_fe_offset_calibration(Genesys_Device* dev, const Genesys_Sensor& settings.yres = resolution; settings.tl_x = 0; settings.tl_y = 0; - settings.pixels = (calib_sensor.sensor_pixels * resolution) / calib_sensor.optical_res; + settings.pixels = dev->model->x_size_calib_mm * resolution / MM_PER_INCH; settings.requested_pixels = settings.pixels; settings.lines = CALIBRATION_LINES; settings.depth = 8; @@ -2216,7 +2126,7 @@ void CommandSetGl646::offset_calibration(Genesys_Device* dev, const Genesys_Sens settings.yres = resolution; settings.tl_x = 0; settings.tl_y = 0; - settings.pixels = (calib_sensor.sensor_pixels * resolution) / calib_sensor.optical_res; + settings.pixels = dev->model->x_size_calib_mm * resolution / MM_PER_INCH; settings.requested_pixels = settings.pixels; settings.lines = CALIBRATION_LINES; settings.depth = 8; @@ -2352,7 +2262,7 @@ static void ad_fe_coarse_gain_calibration(Genesys_Device* dev, const Genesys_Sen settings.yres = resolution; settings.tl_x = 0; settings.tl_y = 0; - settings.pixels = (calib_sensor.sensor_pixels * resolution) / calib_sensor.optical_res; + settings.pixels = dev->model->x_size_calib_mm * resolution / MM_PER_INCH; settings.requested_pixels = settings.pixels; settings.lines = CALIBRATION_LINES; settings.depth = 8; @@ -2459,7 +2369,7 @@ void CommandSetGl646::coarse_gain_calibration(Genesys_Device* dev, const Genesys if (settings.scan_method == ScanMethod::FLATBED) { settings.tl_x = 0; - settings.pixels = (calib_sensor.sensor_pixels * resolution) / calib_sensor.optical_res; + settings.pixels = dev->model->x_size_calib_mm * resolution / MM_PER_INCH; } else { @@ -2608,7 +2518,7 @@ void CommandSetGl646::init_regs_for_warmup(Genesys_Device* dev, const Genesys_Se settings.yres = resolution; settings.tl_x = 0; settings.tl_y = 0; - settings.pixels = (local_sensor.sensor_pixels * resolution) / local_sensor.optical_res; + settings.pixels = dev->model->x_size_calib_mm * resolution / MM_PER_INCH; settings.requested_pixels = settings.pixels; settings.lines = 2; settings.depth = 8; @@ -2639,7 +2549,6 @@ void CommandSetGl646::init_regs_for_warmup(Genesys_Device* dev, const Genesys_Se // now registers are ok, write them to scanner gl646_set_fe(dev, local_sensor, AFE_SET, settings.xres); - dev->interface->write_registers(*local_reg); } @@ -2731,10 +2640,11 @@ void CommandSetGl646::init(Genesys_Device* dev) const gl646_init_regs (dev); // Init shading data - sanei_genesys_init_shading_data(dev, sensor, sensor.sensor_pixels); + sanei_genesys_init_shading_data(dev, sensor, + dev->model->x_size_calib_mm * sensor.optical_res / + MM_PER_INCH); - /* initial calibration reg values */ - dev->calib_reg = dev->reg; + dev->initial_regs = dev->reg; } // execute physical unit init only if cold @@ -2828,16 +2738,13 @@ void CommandSetGl646::init(Genesys_Device* dev) const /* ensure head is correctly parked, and check lock */ if (!dev->model->is_sheetfed) { - if (dev->model->flags & GENESYS_FLAG_REPARK) - { + if (has_flag(dev->model->flags, ModelFlag::REPARK)) { // FIXME: if repark fails, we should print an error message that the scanner is locked and // the user should unlock the lock. We should also rethrow with SANE_STATUS_JAMMED gl646_repark_head(dev); - } - else - { + } else { move_back_home(dev, true); - } + } } /* here session and device are initialized */ @@ -3015,7 +2922,7 @@ static void simple_move(Genesys_Device* dev, SANE_Int distance) settings.yres = resolution; settings.tl_y = 0; settings.tl_x = 0; - settings.pixels = (sensor.sensor_pixels * settings.xres) / sensor.optical_res; + settings.pixels = dev->model->x_size_calib_mm * settings.xres / MM_PER_INCH; settings.requested_pixels = settings.pixels; settings.lines = static_cast((distance * settings.xres) / MM_PER_INCH); settings.depth = 8; @@ -3130,8 +3037,7 @@ void CommandSetGl646::update_hardware_sensors(Genesys_Scanner* session) const } /* XPA detection */ - if (dev->model->flags & GENESYS_FLAG_XPA) - { + if (dev->model->has_method(ScanMethod::TRANSPARENCY)) { switch (dev->model->gpio_id) { case GpioId::HP3670: case GpioId::HP2400: @@ -3208,154 +3114,6 @@ static void write_control(Genesys_Device* dev, const Genesys_Sensor& sensor, int dev->interface->write_buffer(0x3c, addr, control, 4); } -/** - * search for a full width black or white strip. - * @param dev scanner device - * @param forward true if searching forward, false if searching backward - * @param black true if searching for a black strip, false for a white strip - */ -void CommandSetGl646::search_strip(Genesys_Device* dev, const Genesys_Sensor& sensor, bool forward, - bool black) const -{ - DBG_HELPER(dbg); - (void) sensor; - - Genesys_Settings settings; - int res = get_closest_resolution(dev->model->sensor_id, 75, 1); - unsigned int pass, count, found, x, y; - char title[80]; - - const auto& calib_sensor = sanei_genesys_find_sensor(dev, res, 1, ScanMethod::FLATBED); - - /* we set up for a lowest available resolution color grey scan, full width */ - settings.scan_method = dev->model->default_method; - settings.scan_mode = ScanColorMode::GRAY; - settings.xres = res; - settings.yres = res; - settings.tl_x = 0; - settings.tl_y = 0; - settings.pixels = static_cast((dev->model->x_size * res) / MM_PER_INCH); - settings.pixels /= calib_sensor.get_ccd_size_divisor_for_dpi(res); - settings.requested_pixels = settings.pixels; - - /* 15 mm at at time */ - settings.lines = static_cast((15 * settings.yres) / MM_PER_INCH); - settings.depth = 8; - settings.color_filter = ColorFilter::RED; - - settings.disable_interpolation = 0; - settings.threshold = 0; - - /* signals if a strip of the given color has been found */ - found = 0; - - /* detection pass done */ - pass = 0; - - std::vector data; - - /* loop until strip is found or maximum pass number done */ - while (pass < 20 && !found) - { - // scan a full width strip - simple_scan(dev, calib_sensor, settings, true, forward, false, data, "search_strip"); - - if (is_testing_mode()) { - return; - } - - if (DBG_LEVEL >= DBG_data) - { - std::sprintf(title, "gl646_search_strip_%s%02d.pnm", forward ? "fwd" : "bwd", pass); - sanei_genesys_write_pnm_file (title, data.data(), settings.depth, 1, - settings.pixels, settings.lines); - } - - /* search data to find black strip */ - /* when searching forward, we only need one line of the searched color since we - * will scan forward. But when doing backward search, we need all the area of the - * same color */ - if (forward) - { - for (y = 0; y < settings.lines && !found; y++) - { - count = 0; - /* count of white/black pixels depending on the color searched */ - for (x = 0; x < settings.pixels; x++) - { - /* when searching for black, detect white pixels */ - if (black && data[y * settings.pixels + x] > 90) - { - count++; - } - /* when searching for white, detect black pixels */ - if (!black && data[y * settings.pixels + x] < 60) - { - count++; - } - } - - /* at end of line, if count >= 3%, line is not fully of the desired color - * so we must go to next line of the buffer */ - /* count*100/pixels < 3 */ - if ((count * 100) / settings.pixels < 3) - { - found = 1; - DBG(DBG_data, "%s: strip found forward during pass %d at line %d\n", __func__, - pass, y); - } - else - { - DBG(DBG_data, "%s: pixels=%d, count=%d\n", __func__, settings.pixels, count); - } - } - } - else /* since calibration scans are done forward, we need the whole area - to be of the required color when searching backward */ - { - count = 0; - for (y = 0; y < settings.lines; y++) - { - /* count of white/black pixels depending on the color searched */ - for (x = 0; x < settings.pixels; x++) - { - /* when searching for black, detect white pixels */ - if (black && data[y * settings.pixels + x] > 60) - { - count++; - } - /* when searching for white, detect black pixels */ - if (!black && data[y * settings.pixels + x] < 60) - { - count++; - } - } - } - - /* at end of area, if count >= 3%, area is not fully of the desired color - * so we must go to next buffer */ - if ((count * 100) / (settings.pixels * settings.lines) < 3) - { - found = 1; - DBG(DBG_data, "%s: strip found backward during pass %d \n", __func__, pass); - } - else - { - DBG(DBG_data, "%s: pixels=%d, count=%d\n", __func__, settings.pixels, count); - } - } - pass++; - } - if (found) - { - DBG(DBG_info, "%s: strip found\n", __func__); - } - else - { - throw SaneException(SANE_STATUS_UNSUPPORTED, "%s strip not found", black ? "black" : "white"); - } -} - void CommandSetGl646::wait_for_motor_stop(Genesys_Device* dev) const { (void) dev; @@ -3379,10 +3137,10 @@ ScanSession CommandSetGl646::calculate_scan_session(const Genesys_Device* dev, float move = 0; // XXX STEF XXX MD5345 -> optical_ydpi, other base_ydpi => half/full step ? */ if (!dev->model->is_sheetfed) { - move = static_cast(dev->model->y_offset); + move = dev->model->y_offset; // add tl_y to base movement } - move += static_cast(settings.tl_y); + move += settings.tl_y; if (move < 0) { DBG(DBG_error, "%s: overriding negative move value %f\n", __func__, move); @@ -3390,13 +3148,13 @@ ScanSession CommandSetGl646::calculate_scan_session(const Genesys_Device* dev, } move = static_cast((move * dev->motor.optical_ydpi) / MM_PER_INCH); - float start = static_cast(settings.tl_x); + float start = settings.tl_x; if (settings.scan_method == ScanMethod::FLATBED) { - start += static_cast(dev->model->x_offset); + start += dev->model->x_offset; } else { - start += static_cast(dev->model->x_offset_ta); + start += dev->model->x_offset_ta; } - start = static_cast((start * sensor.optical_res) / MM_PER_INCH); + start = static_cast((start * settings.xres) / MM_PER_INCH); ScanSession session; session.params.xres = settings.xres; diff --git a/backend/genesys/gl646.h b/backend/genesys/gl646.h index 9a4ec84c4..ad9a1104f 100644 --- a/backend/genesys/gl646.h +++ b/backend/genesys/gl646.h @@ -48,7 +48,7 @@ #define BACKEND_GENESYS_GL646_H #include "genesys.h" -#include "command_set.h" +#include "command_set_common.h" #include "motor.h" namespace genesys { @@ -68,14 +68,14 @@ static void gl646_set_fe(Genesys_Device* dev, const Genesys_Sensor& sensor, uint * @param ycorrection true if scanner's Y geometry must be taken into account to * compute Y, ie add top margins */ -static void setup_for_scan(Genesys_Device* device, - const Genesys_Sensor& sensor, - Genesys_Register_Set*regs, - Genesys_Settings settings, - bool split, - bool xcorrection, - bool ycorrection, - bool reverse); +static ScanSession setup_for_scan(Genesys_Device* device, + const Genesys_Sensor& sensor, + Genesys_Register_Set*regs, + Genesys_Settings settings, + bool split, + bool xcorrection, + bool ycorrection, + bool reverse); /** * Does a simple move of the given distance by doing a scan at lowest resolution @@ -144,6 +144,10 @@ typedef struct */ static Motor_Master motor_master[] = { /* HP3670 motor settings */ + {MotorId::HP3670, 50, 3, StepType::HALF, false, true, 1, + MotorSlope::create_from_steps(2329, 120, 229), + MotorSlope::create_from_steps(3399, 337, 192), 192}, + {MotorId::HP3670, 75, 3, StepType::FULL, false, true, 1, MotorSlope::create_from_steps(3429, 305, 200), MotorSlope::create_from_steps(3399, 337, 192), 192}, @@ -168,8 +172,8 @@ static Motor_Master motor_master[] = { MotorSlope::create_from_steps(15937, 6375, 3), MotorSlope::create_from_steps(3399, 337, 192), 192}, - {MotorId::HP3670,2400, 3, StepType::HALF, false, true, 0, - MotorSlope::create_from_steps(15937, 12750, 3), + {MotorId::HP3670, 50, 1, StepType::HALF, false, true, 1, + MotorSlope::create_from_steps(2329, 120, 229), MotorSlope::create_from_steps(3399, 337, 192), 192}, {MotorId::HP3670, 75, 1, StepType::FULL, false, true, 1, @@ -196,10 +200,6 @@ static Motor_Master motor_master[] = { MotorSlope::create_from_steps(15937, 6375, 3), MotorSlope::create_from_steps(3399, 337, 192), 192}, - {MotorId::HP3670,2400, 3, StepType::HALF, false, true, 0, - MotorSlope::create_from_steps(15937, 12750, 3), - MotorSlope::create_from_steps(3399, 337, 192), 192}, - /* HP2400/G2410 motor settings base motor dpi = 600 */ {MotorId::HP2400, 50, 3, StepType::FULL, false, true, 63, MotorSlope::create_from_steps(8736, 601, 120), @@ -436,7 +436,7 @@ static Motor_Master motor_master[] = { MotorSlope::create_from_steps(2000, 300, 255), 146}, /* 5500 guessed */ }; -class CommandSetGl646 : public CommandSet +class CommandSetGl646 : public CommandSetCommon { public: ~CommandSetGl646() override = default; @@ -449,13 +449,11 @@ public: Genesys_Register_Set* regs, int* channels, int* total_size) const override; - void init_regs_for_coarse_calibration(Genesys_Device* dev, const Genesys_Sensor& sensor, - Genesys_Register_Set& regs) const override; - void init_regs_for_shading(Genesys_Device* dev, const Genesys_Sensor& sensor, Genesys_Register_Set& regs) const override; - void init_regs_for_scan(Genesys_Device* dev, const Genesys_Sensor& sensor) const override; + void init_regs_for_scan(Genesys_Device* dev, const Genesys_Sensor& sensor, + Genesys_Register_Set& regs) const override; void init_regs_for_scan_session(Genesys_Device* dev, const Genesys_Sensor& sensor, Genesys_Register_Set* reg, @@ -472,8 +470,6 @@ public: void send_gamma_table(Genesys_Device* dev, const Genesys_Sensor& sensor) const override; - void search_start_position(Genesys_Device* dev) const override; - void offset_calibration(Genesys_Device* dev, const Genesys_Sensor& sensor, Genesys_Register_Set& regs) const override; @@ -495,9 +491,6 @@ public: void eject_document(Genesys_Device* dev) const override; - void search_strip(Genesys_Device* dev, const Genesys_Sensor& sensor, - bool forward, bool black) const override; - void move_to_ta(Genesys_Device* dev) const override; void send_shading_data(Genesys_Device* dev, const Genesys_Sensor& sensor, uint8_t* data, diff --git a/backend/genesys/gl841.cpp b/backend/genesys/gl841.cpp index 470f9bab6..1e4ac36ae 100644 --- a/backend/genesys/gl841.cpp +++ b/backend/genesys/gl841.cpp @@ -323,42 +323,17 @@ gl841_init_lide80 (Genesys_Device * dev) } // specific scanner settings, clock and gpio first - // FIXME: remove the dummy reads as we don't use the values - if (!is_testing_mode()) { - dev->interface->read_register(REG_0x6B); - } dev->interface->write_register(REG_0x6B, 0x0c); dev->interface->write_register(0x06, 0x10); dev->interface->write_register(REG_0x6E, 0x6d); dev->interface->write_register(REG_0x6F, 0x80); dev->interface->write_register(REG_0x6B, 0x0e); - if (!is_testing_mode()) { - dev->interface->read_register(REG_0x6C); - } dev->interface->write_register(REG_0x6C, 0x00); - if (!is_testing_mode()) { - dev->interface->read_register(REG_0x6D); - } dev->interface->write_register(REG_0x6D, 0x8f); - if (!is_testing_mode()) { - dev->interface->read_register(REG_0x6B); - } dev->interface->write_register(REG_0x6B, 0x0e); - if (!is_testing_mode()) { - dev->interface->read_register(REG_0x6B); - } dev->interface->write_register(REG_0x6B, 0x0e); - if (!is_testing_mode()) { - dev->interface->read_register(REG_0x6B); - } dev->interface->write_register(REG_0x6B, 0x0a); - if (!is_testing_mode()) { - dev->interface->read_register(REG_0x6B); - } dev->interface->write_register(REG_0x6B, 0x02); - if (!is_testing_mode()) { - dev->interface->read_register(REG_0x6B); - } dev->interface->write_register(REG_0x6B, 0x06); dev->interface->write_0x8c(0x10, 0x94); @@ -435,14 +410,15 @@ gl841_init_registers (Genesys_Device * dev) dev->reg.find_reg(0x05).value = 0x00; /* disable gamma, 24 clocks/pixel */ unsigned dpihw = 0; - if (sensor.sensor_pixels < 0x1500) { + unsigned sensor_pixels = dev->model->x_size_calib_mm * sensor.optical_res / MM_PER_INCH; + if (sensor_pixels < 0x1500) { dpihw = 600; - } else if (sensor.sensor_pixels < 0x2a80) { + } else if (sensor_pixels < 0x2a80) { dpihw = 1200; - } else if (sensor.sensor_pixels < 0x5400) { + } else if (sensor_pixels < 0x5400) { dpihw = 2400; } else { - throw SaneException("Cannot handle sensor pixel count %d", sensor.sensor_pixels); + throw SaneException("Cannot handle sensor pixel count %d", sensor_pixels); } sanei_genesys_set_dpihw(dev->reg, sensor, dpihw); @@ -537,7 +513,6 @@ static void gl841_send_slope_table(Genesys_Device* dev, int table_nr, DBG_HELPER_ARGS(dbg, "table_nr = %d, steps = %d", table_nr, steps); int dpihw; int start_address; - char msg[4000]; /*#ifdef WORDS_BIGENDIAN*/ int i; /*#endif*/ @@ -560,15 +535,6 @@ static void gl841_send_slope_table(Genesys_Device* dev, int table_nr, table[i * 2 + 1] = slope_table[i] >> 8; } - if (DBG_LEVEL >= DBG_io) - { - std::sprintf(msg, "write slope %d (%d)=", table_nr, steps); - for (i = 0; i < steps; i++) { - std::sprintf (msg+strlen(msg), ",%d", slope_table[i]); - } - DBG(DBG_io, "%s: %s\n", __func__, msg); - } - if (dev->interface->is_mock()) { dev->interface->record_slope_table(table_nr, slope_table); } @@ -814,8 +780,7 @@ uint8_t *table; table=tdefault; } dev->interface->write_register(0x66, 0x00); - dev->interface->write_gamma(0x28, 0xc000, table, 128, - ScannerInterface::FLAG_SWAP_REGISTERS); + dev->interface->write_gamma(0x28, 0xc000, table, 128); dev->interface->write_register(0x5b, 0x00); dev->interface->write_register(0x5c, 0x00); } @@ -860,7 +825,7 @@ static void gl841_init_motor_regs(Genesys_Device* dev, const Genesys_Sensor& sen if (action == MOTOR_ACTION_HOME_FREE) { /* HOME_FREE must be able to stop in one step, so do not try to get faster */ - fast_exposure = dev->motor.get_slope(StepType::FULL).max_speed_w; + fast_exposure = dev->motor.get_slope_with_step_type(StepType::FULL).max_speed_w; } auto fast_table = sanei_genesys_create_slope_table3(dev->model->asic_type, dev->motor, @@ -1308,7 +1273,7 @@ static void gl841_init_optical_regs_scan(Genesys_Device* dev, const Genesys_Sens r = sanei_genesys_get_address (reg, 0x01); r->value |= REG_0x01_SCAN; if (has_flag(session.params.flags, ScanFlag::DISABLE_SHADING) || - (dev->model->flags & GENESYS_FLAG_NO_CALIBRATION)) { + has_flag(dev->model->flags, ModelFlag::NO_CALIBRATION)) { r->value &= ~REG_0x01_DVDSET; } else { r->value |= REG_0x01_DVDSET; @@ -1603,22 +1568,19 @@ dummy \ scanned lines DBG(DBG_info, "%s: move=%d steps\n", __func__, move);*/ if (has_flag(session.params.flags, ScanFlag::SINGLE_LINE)) { - gl841_init_motor_regs_off(reg, dev->model->is_cis ? session.output_line_count * session.params.channels - : session.output_line_count); + gl841_init_motor_regs_off(reg, session.optical_line_count); } else { auto motor_flag = has_flag(session.params.flags, ScanFlag::DISABLE_BUFFER_FULL_MOVE) ? MotorFlag::DISABLE_BUFFER_FULL_MOVE : MotorFlag::NONE; gl841_init_motor_regs_scan(dev, sensor, reg, exposure_time, slope_dpi, scan_step_type, - dev->model->is_cis ? session.output_line_count * session.params.channels - : session.output_line_count, - dummy, move, motor_flag); + session.optical_line_count, dummy, move, motor_flag); } dev->read_buffer.clear(); dev->read_buffer.alloc(session.buffer_size_read); - build_image_pipeline(dev, session); + build_image_pipeline(dev, sensor, session); dev->read_active = true; @@ -1634,32 +1596,63 @@ ScanSession CommandSetGl841::calculate_scan_session(const Genesys_Device* dev, const Genesys_Sensor& sensor, const Genesys_Settings& settings) const { - int start; - - DBG(DBG_info, "%s ", __func__); + DBG_HELPER(dbg); debug_dump(DBG_info, settings); -/* start */ - start = static_cast(dev->model->x_offset); - start += static_cast(settings.tl_x); + /* steps to move to reach scanning area: + - first we move to physical start of scanning + either by a fixed steps amount from the black strip + or by a fixed amount from parking position, + minus the steps done during shading calibration + - then we move by the needed offset whitin physical + scanning area - start = static_cast((start * sensor.optical_res) / MM_PER_INCH); + assumption: steps are expressed at maximum motor resolution + + we need: + float y_offset; + float y_size; + float y_offset_calib; + mm_to_steps()=motor dpi / 2.54 / 10=motor dpi / MM_PER_INCH + */ + float move = dev->model->y_offset; + move += dev->settings.tl_y; + + int move_dpi = dev->motor.base_ydpi; + move = static_cast((move * move_dpi) / MM_PER_INCH); + + float start = dev->model->x_offset; + start += dev->settings.tl_x; + start = static_cast((start * dev->settings.xres) / MM_PER_INCH); + + // we enable true gray for cis scanners only, and just when doing + // scan since color calibration is OK for this mode + ScanFlag flags = ScanFlag::NONE; + + // true gray (led add for cis scanners) + if (dev->model->is_cis && dev->settings.true_gray && + dev->settings.scan_mode != ScanColorMode::COLOR_SINGLE_PASS && + dev->model->sensor_id != SensorId::CIS_CANON_LIDE_80) + { + // on Lide 80 the LEDADD bit results in only red LED array being lit + DBG(DBG_io, "%s: activating LEDADD\n", __func__); + flags |= ScanFlag::ENABLE_LEDADD; + } ScanSession session; - session.params.xres = settings.xres; - session.params.yres = settings.yres; - session.params.startx = start; - session.params.starty = 0; // not used - session.params.pixels = settings.pixels; - session.params.requested_pixels = settings.requested_pixels; - session.params.lines = settings.lines; - session.params.depth = settings.depth; - session.params.channels = settings.get_channels(); - session.params.scan_method = settings.scan_method; - session.params.scan_mode = settings.scan_mode; - session.params.color_filter = settings.color_filter; - session.params.flags = ScanFlag::NONE; - + session.params.xres = dev->settings.xres; + session.params.yres = dev->settings.yres; + session.params.startx = static_cast(start); + session.params.starty = static_cast(move); + session.params.pixels = dev->settings.pixels; + session.params.requested_pixels = dev->settings.requested_pixels; + session.params.lines = dev->settings.lines; + session.params.depth = dev->settings.depth; + session.params.channels = dev->settings.get_channels(); + session.params.scan_method = dev->settings.scan_method; + session.params.scan_mode = dev->settings.scan_mode; + session.params.color_filter = dev->settings.color_filter; + session.params.flags = flags; compute_session(dev, session, sensor); return session; @@ -1709,7 +1702,7 @@ void CommandSetGl841::save_power(Genesys_Device* dev, bool enable) const uint8_t val = dev->interface->read_register(REG_0x6B); dev->interface->write_register(REG_0x6B, val & ~REG_0x6B_GPO17); dev->reg.find_reg(0x6b).value &= ~REG_0x6B_GPO17; - dev->calib_reg.find_reg(0x6b).value &= ~REG_0x6B_GPO17; + dev->initial_regs.find_reg(0x6b).value &= ~REG_0x6B_GPO17; } set_fe(dev, sensor, AFE_POWER_SAVE); @@ -1741,13 +1734,13 @@ void CommandSetGl841::save_power(Genesys_Device* dev, bool enable) const val = dev->interface->read_register(REG_0x6B); dev->interface->write_register(REG_0x6B, val | REG_0x6B_GPO17); dev->reg.find_reg(0x6b).value |= REG_0x6B_GPO17; - dev->calib_reg.find_reg(0x6b).value |= REG_0x6B_GPO17; + dev->initial_regs.find_reg(0x6b).value |= REG_0x6B_GPO17; /*enable GPO18*/ val = dev->interface->read_register(REG_0x6B); dev->interface->write_register(REG_0x6B, val | REG_0x6B_GPO18); dev->reg.find_reg(0x6b).value |= REG_0x6B_GPO18; - dev->calib_reg.find_reg(0x6b).value |= REG_0x6B_GPO18; + dev->initial_regs.find_reg(0x6b).value |= REG_0x6B_GPO18; } if (dev->model->gpio_id == GpioId::DP665 @@ -1756,7 +1749,7 @@ void CommandSetGl841::save_power(Genesys_Device* dev, bool enable) const uint8_t val = dev->interface->read_register(REG_0x6B); dev->interface->write_register(REG_0x6B, val | REG_0x6B_GPO17); dev->reg.find_reg(0x6b).value |= REG_0x6B_GPO17; - dev->calib_reg.find_reg(0x6b).value |= REG_0x6B_GPO17; + dev->initial_regs.find_reg(0x6b).value |= REG_0x6B_GPO17; } } @@ -1826,7 +1819,7 @@ void CommandSetGl841::set_powersaving(Genesys_Device* dev, int delay /* in minut dev->interface->write_registers(local_reg); } -static void gl841_stop_action(Genesys_Device* dev) +void gl841_stop_action(Genesys_Device* dev) { DBG_HELPER(dbg); Genesys_Register_Set local_reg; @@ -1954,10 +1947,9 @@ void CommandSetGl841::eject_document(Genesys_Device* dev) const } } - feed_mm = static_cast(dev->model->eject_feed); - if (dev->document) - { - feed_mm += static_cast(dev->model->post_scan); + feed_mm = dev->model->eject_feed; + if (dev->document) { + feed_mm += dev->model->post_scan; } sanei_genesys_read_feed_steps(dev, &init_steps); @@ -2127,67 +2119,6 @@ void CommandSetGl841::end_scan(Genesys_Device* dev, Genesys_Register_Set __sane_ } } -// Moves the slider to steps -static void gl841_feed(Genesys_Device* dev, int steps) -{ - DBG_HELPER_ARGS(dbg, "steps = %d", steps); - Genesys_Register_Set local_reg; - int loop; - - gl841_stop_action(dev); - - // FIXME: we should pick sensor according to the resolution scanner is currently operating on - const auto& sensor = sanei_genesys_find_sensor_any(dev); - - local_reg = dev->reg; - - regs_set_optical_off(dev->model->asic_type, local_reg); - - gl841_init_motor_regs(dev, sensor, &local_reg, steps, MOTOR_ACTION_FEED, MotorFlag::NONE); - - dev->interface->write_registers(local_reg); - - try { - scanner_start_action(*dev, true); - } catch (...) { - catch_all_exceptions(__func__, [&]() { gl841_stop_action (dev); }); - // restore original registers - catch_all_exceptions(__func__, [&]() - { - dev->interface->write_registers(dev->reg); - }); - throw; - } - - if (is_testing_mode()) { - dev->interface->test_checkpoint("feed"); - dev->advance_head_pos_by_steps(ScanHeadId::PRIMARY, Direction::FORWARD, steps); - gl841_stop_action(dev); - return; - } - - loop = 0; - while (loop < 300) /* do not wait longer then 30 seconds */ - { - auto status = scanner_read_status(*dev); - - if (!status.is_motor_enabled) { - DBG(DBG_proc, "%s: finished\n", __func__); - dev->advance_head_pos_by_steps(ScanHeadId::PRIMARY, Direction::FORWARD, steps); - return; - } - dev->interface->sleep_ms(100); - ++loop; - } - - /* when we come here then the scanner needed too much time for this, so we better stop the motor */ - gl841_stop_action (dev); - - dev->set_head_pos_unknown(); - - throw SaneException(SANE_STATUS_IO_ERROR, "timeout while waiting for scanhead to go home"); -} - // Moves the slider to the home (top) position slowly void CommandSetGl841::move_back_home(Genesys_Device* dev, bool wait_until_home) const { @@ -2279,280 +2210,61 @@ void CommandSetGl841::move_back_home(Genesys_Device* dev, bool wait_until_home) // when we come here then the scanner needed too much time for this, so we better stop // the motor catch_all_exceptions(__func__, [&](){ gl841_stop_action(dev); }); - dev->set_head_pos_unknown(); + dev->set_head_pos_unknown(ScanHeadId::PRIMARY); throw SaneException(SANE_STATUS_IO_ERROR, "timeout while waiting for scanhead to go home"); } DBG(DBG_info, "%s: scanhead is still moving\n", __func__); } -// Automatically set top-left edge of the scan area by scanning a 200x200 pixels area at 600 dpi -// from very top of scanner -void CommandSetGl841::search_start_position(Genesys_Device* dev) const -{ - DBG_HELPER(dbg); - int size; - Genesys_Register_Set local_reg; - - int pixels = 600; - int dpi = 300; - - local_reg = dev->reg; - - /* sets for a 200 lines * 600 pixels */ - /* normal scan with no shading */ - - // FIXME: the current approach of doing search only for one resolution does not work on scanners - // whith employ different sensors with potentially different settings. - const auto& sensor = sanei_genesys_find_sensor(dev, dpi, 1, dev->model->default_method); - - ScanSession session; - session.params.xres = dpi; - session.params.yres = dpi; - session.params.startx = 0; - session.params.starty = 0; /*we should give a small offset here~60 steps*/ - session.params.pixels = 600; - session.params.lines = dev->model->search_lines; - session.params.depth = 8; - session.params.channels = 1; - session.params.scan_method = dev->settings.scan_method; - session.params.scan_mode = ScanColorMode::GRAY; - session.params.color_filter = ColorFilter::GREEN; - session.params.flags = ScanFlag::DISABLE_SHADING | - ScanFlag::DISABLE_GAMMA | - ScanFlag::IGNORE_LINE_DISTANCE | - ScanFlag::DISABLE_BUFFER_FULL_MOVE; - compute_session(dev, session, sensor); - - init_regs_for_scan_session(dev, sensor, &local_reg, session); - - // send to scanner - dev->interface->write_registers(local_reg); - - size = pixels * dev->model->search_lines; - - std::vector data(size); - - dev->cmd_set->begin_scan(dev, sensor, &local_reg, true); - - if (is_testing_mode()) { - dev->interface->test_checkpoint("search_start_position"); - dev->cmd_set->end_scan(dev, &local_reg, true); - dev->reg = local_reg; - return; - } - - wait_until_buffer_non_empty(dev); - - // now we're on target, we can read data - sanei_genesys_read_data_from_scanner(dev, data.data(), size); - - if (DBG_LEVEL >= DBG_data) { - sanei_genesys_write_pnm_file("gl841_search_position.pnm", data.data(), 8, 1, pixels, - dev->model->search_lines); - } - - dev->cmd_set->end_scan(dev, &local_reg, true); - - /* update regs to copy ASIC internal state */ - dev->reg = local_reg; - - for (auto& sensor_update : - sanei_genesys_find_sensors_all_for_write(dev, dev->model->default_method)) - { - sanei_genesys_search_reference_point(dev, sensor_update, data.data(), 0, dpi, pixels, - dev->model->search_lines); - } -} - -// sets up register for coarse gain calibration -// todo: check it for scanners using it -void CommandSetGl841::init_regs_for_coarse_calibration(Genesys_Device* dev, - const Genesys_Sensor& sensor, - Genesys_Register_Set& regs) const -{ - DBG_HELPER(dbg); - - ScanSession session; - session.params.xres = dev->settings.xres; - session.params.yres = dev->settings.yres; - session.params.startx = 0; - session.params.starty = 0; - session.params.pixels = sensor.optical_res / sensor.ccd_pixels_per_system_pixel(); - session.params.lines = 20; - session.params.depth = 16; - session.params.channels = dev->settings.get_channels(); - session.params.scan_method = dev->settings.scan_method; - session.params.scan_mode = dev->settings.scan_mode; - session.params.color_filter = dev->settings.color_filter; - session.params.flags = ScanFlag::DISABLE_SHADING | - ScanFlag::DISABLE_GAMMA | - ScanFlag::SINGLE_LINE | - ScanFlag::IGNORE_LINE_DISTANCE; - compute_session(dev, session, sensor); - - init_regs_for_scan_session(dev, sensor, ®s, session); - - DBG(DBG_info, "%s: optical sensor res: %d dpi, actual res: %d\n", __func__, - sensor.optical_res / sensor.ccd_pixels_per_system_pixel(), dev->settings.xres); - - dev->interface->write_registers(regs); - -/* if (DBG_LEVEL >= DBG_info) - sanei_gl841_print_registers (regs);*/ -} - - // init registers for shading calibration void CommandSetGl841::init_regs_for_shading(Genesys_Device* dev, const Genesys_Sensor& sensor, Genesys_Register_Set& regs) const { - DBG_HELPER_ARGS(dbg, "lines = %zu", dev->calib_lines); - SANE_Int ydpi; - unsigned starty = 0; + DBG_HELPER(dbg); - /* initial calibration reg values */ - regs = dev->reg; + unsigned channels = 3; - ydpi = dev->motor.base_ydpi; - if (dev->model->motor_id == MotorId::PLUSTEK_OPTICPRO_3600) /* TODO PLUSTEK_3600: 1200dpi not yet working, produces dark bar */ - { - ydpi = 600; - } - if (dev->model->motor_id == MotorId::CANON_LIDE_80) { - ydpi = gl841_get_dpihw(dev); - /* get over extra dark area for this model. - It looks like different devices have dark areas of different width - due to manufacturing variability. The initial value of starty was 140, - but it moves the sensor almost past the dark area completely in places - on certain devices. + unsigned resolution = sensor.get_register_hwdpi(dev->settings.xres); - On a particular device the black area starts at roughly position - 160 to 230 depending on location (the dark area is not completely - parallel to the frame). - */ - starty = 70; - } - - dev->calib_channels = 3; - dev->calib_lines = dev->model->shading_lines; - - unsigned resolution = sensor.get_logical_hwdpi(dev->settings.xres); - unsigned factor = sensor.optical_res / resolution; - - const auto& calib_sensor = sanei_genesys_find_sensor(dev, resolution, dev->calib_channels, + const auto& calib_sensor = sanei_genesys_find_sensor(dev, resolution, channels, dev->settings.scan_method); - dev->calib_pixels = calib_sensor.sensor_pixels / factor; - + unsigned calib_lines = + static_cast(dev->model->y_size_calib_dark_white_mm * resolution / MM_PER_INCH); + unsigned starty = + static_cast(dev->model->y_offset_calib_dark_white_mm * dev->motor.base_ydpi / MM_PER_INCH); ScanSession session; session.params.xres = resolution; - session.params.yres = ydpi; + session.params.yres = resolution; session.params.startx = 0; session.params.starty = starty; - session.params.pixels = dev->calib_pixels; - session.params.lines = dev->calib_lines; + session.params.pixels = dev->model->x_size_calib_mm * resolution / MM_PER_INCH; + session.params.lines = calib_lines; session.params.depth = 16; - session.params.channels = dev->calib_channels; + session.params.channels = channels; session.params.scan_method = dev->settings.scan_method; session.params.scan_mode = ScanColorMode::COLOR_SINGLE_PASS; session.params.color_filter = dev->settings.color_filter; session.params.flags = ScanFlag::DISABLE_SHADING | - ScanFlag::DISABLE_GAMMA | - /*ScanFlag::DISABLE_BUFFER_FULL_MOVE |*/ - ScanFlag::IGNORE_LINE_DISTANCE; + ScanFlag::DISABLE_GAMMA; compute_session(dev, session, calib_sensor); init_regs_for_scan_session(dev, calib_sensor, ®s, session); - dev->interface->write_registers(regs); + dev->calib_session = session; } // set up registers for the actual scan -void CommandSetGl841::init_regs_for_scan(Genesys_Device* dev, const Genesys_Sensor& sensor) const +void CommandSetGl841::init_regs_for_scan(Genesys_Device* dev, const Genesys_Sensor& sensor, + Genesys_Register_Set& regs) const { DBG_HELPER(dbg); - float move; - int move_dpi; - float start; debug_dump(DBG_info, dev->settings); - /* steps to move to reach scanning area: - - first we move to physical start of scanning - either by a fixed steps amount from the black strip - or by a fixed amount from parking position, - minus the steps done during shading calibration - - then we move by the needed offset whitin physical - scanning area - - assumption: steps are expressed at maximum motor resolution - - we need: - float y_offset; - float y_size; - float y_offset_calib; - mm_to_steps()=motor dpi / 2.54 / 10=motor dpi / MM_PER_INCH */ - - /* if scanner uses GENESYS_FLAG_SEARCH_START y_offset is - relative from origin, else, it is from parking position */ - - move_dpi = dev->motor.base_ydpi; - - move = 0; - if (dev->model->flags & GENESYS_FLAG_SEARCH_START) { - move += static_cast(dev->model->y_offset_calib_white); - } - - DBG(DBG_info, "%s move=%f steps\n", __func__, move); - - move += static_cast(dev->model->y_offset); - DBG(DBG_info, "%s: move=%f steps\n", __func__, move); - - move += static_cast(dev->settings.tl_y); - DBG(DBG_info, "%s: move=%f steps\n", __func__, move); - - move = static_cast((move * move_dpi) / MM_PER_INCH); - -/* start */ - start = static_cast(dev->model->x_offset); - - start += static_cast(dev->settings.tl_x); - - start = static_cast((start * sensor.optical_res) / MM_PER_INCH); - - /* we enable true gray for cis scanners only, and just when doing - * scan since color calibration is OK for this mode - */ - ScanFlag flags = ScanFlag::NONE; - - /* true gray (led add for cis scanners) */ - if(dev->model->is_cis && dev->settings.true_gray - && dev->settings.scan_mode != ScanColorMode::COLOR_SINGLE_PASS - && dev->model->sensor_id != SensorId::CIS_CANON_LIDE_80) - { - // on Lide 80 the LEDADD bit results in only red LED array being lit - DBG(DBG_io, "%s: activating LEDADD\n", __func__); - flags |= ScanFlag::ENABLE_LEDADD; - } - - ScanSession session; - session.params.xres = dev->settings.xres; - session.params.yres = dev->settings.yres; - session.params.startx = static_cast(start); - session.params.starty = static_cast(move); - session.params.pixels = dev->settings.pixels; - session.params.requested_pixels = dev->settings.requested_pixels; - session.params.lines = dev->settings.lines; - session.params.depth = dev->settings.depth; - session.params.channels = dev->settings.get_channels(); - session.params.scan_method = dev->settings.scan_method; - session.params.scan_mode = dev->settings.scan_mode; - session.params.color_filter = dev->settings.color_filter; - session.params.flags = flags; - compute_session(dev, session, sensor); - - init_regs_for_scan_session(dev, sensor, &dev->reg, session); + auto session = calculate_scan_session(dev, sensor, dev->settings); + init_regs_for_scan_session(dev, sensor, ®s, session); } @@ -2582,15 +2294,10 @@ SensorExposure CommandSetGl841::led_calibration(Genesys_Device* dev, const Genes Genesys_Register_Set& regs) const { DBG_HELPER(dbg); - int num_pixels; - int total_size; - int i, j; - int val; - int channels; + int i; int avg[3], avga, avge; int turn; uint16_t exp[3], target; - int move; /* these 2 boundaries should be per sensor */ uint16_t min_exposure=500; @@ -2598,29 +2305,25 @@ SensorExposure CommandSetGl841::led_calibration(Genesys_Device* dev, const Genes /* feed to white strip if needed */ if (dev->model->y_offset_calib_white > 0) { - move = static_cast(dev->model->y_offset_calib_white); - move = static_cast((move * (dev->motor.base_ydpi)) / MM_PER_INCH); - DBG(DBG_io, "%s: move=%d lines\n", __func__, move); - gl841_feed(dev, move); + unsigned move = static_cast( + (dev->model->y_offset_calib_white * (dev->motor.base_ydpi)) / MM_PER_INCH); + scanner_move(*dev, dev->model->default_method, move, Direction::FORWARD); } /* offset calibration is always done in color mode */ - channels = 3; + unsigned channels = 3; - unsigned resolution = sensor.get_logical_hwdpi(dev->settings.xres); - unsigned factor = sensor.optical_res / resolution; + unsigned resolution = sensor.get_register_hwdpi(dev->settings.xres); const auto& calib_sensor_base = sanei_genesys_find_sensor(dev, resolution, channels, dev->settings.scan_method); - num_pixels = calib_sensor_base.sensor_pixels / factor; - ScanSession session; session.params.xres = resolution; session.params.yres = dev->settings.yres; session.params.startx = 0; session.params.starty = 0; - session.params.pixels = num_pixels; + session.params.pixels = dev->model->x_size_calib_mm * resolution / MM_PER_INCH; session.params.lines = 1; session.params.depth = 16; session.params.channels = channels; @@ -2630,17 +2333,15 @@ SensorExposure CommandSetGl841::led_calibration(Genesys_Device* dev, const Genes session.params.flags = ScanFlag::DISABLE_SHADING | ScanFlag::DISABLE_GAMMA | ScanFlag::SINGLE_LINE | - ScanFlag::IGNORE_LINE_DISTANCE; + ScanFlag::IGNORE_STAGGER_OFFSET | + ScanFlag::IGNORE_COLOR_OFFSET; compute_session(dev, session, calib_sensor_base); init_regs_for_scan_session(dev, calib_sensor_base, ®s, session); dev->interface->write_registers(regs); - - total_size = num_pixels * channels * 2 * 1; /* colors * bytes_per_color * scan lines */ - - std::vector line(total_size); + std::vector line(session.output_line_bytes); /* we try to get equal bright leds here: @@ -2687,33 +2388,21 @@ SensorExposure CommandSetGl841::led_calibration(Genesys_Device* dev, const Genes return calib_sensor.exposure; } - sanei_genesys_read_data_from_scanner(dev, line.data(), total_size); + auto image = read_unshuffled_image_from_scanner(dev, session, session.output_line_bytes); - if (DBG_LEVEL >= DBG_data) { - char fn[30]; - std::snprintf(fn, 30, "gl841_led_%d.pnm", turn); - sanei_genesys_write_pnm_file(fn, line.data(), 16, channels, num_pixels, 1); - } + if (DBG_LEVEL >= DBG_data) { + char fn[30]; + std::snprintf(fn, 30, "gl841_led_%d.pnm", turn); + sanei_genesys_write_pnm_file(fn, image); + } - /* compute average */ - for (j = 0; j < channels; j++) - { - avg[j] = 0; - for (i = 0; i < num_pixels; i++) - { - if (dev->model->is_cis) - val = - line[i * 2 + j * 2 * num_pixels + 1] * 256 + - line[i * 2 + j * 2 * num_pixels]; - else - val = - line[i * 2 * channels + 2 * j + 1] * 256 + - line[i * 2 * channels + 2 * j]; - avg[j] += val; - } - - avg[j] /= num_pixels; - } + for (unsigned ch = 0; ch < channels; ch++) { + avg[ch] = 0; + for (std::size_t x = 0; x < image.get_width(); x++) { + avg[ch] += image.get_raw_channel(x, 0, ch); + } + avg[ch] /= image.get_width(); + } DBG(DBG_info,"%s: average: %d,%d,%d\n", __func__, avg[0], avg[1], avg[2]); @@ -2804,9 +2493,6 @@ static void ad_fe_offset_calibration(Genesys_Device* dev, const Genesys_Sensor& Genesys_Register_Set& regs) { DBG_HELPER(dbg); - int num_pixels; - int total_size; - int i; int average; int turn; int top; @@ -2818,14 +2504,12 @@ static void ad_fe_offset_calibration(Genesys_Device* dev, const Genesys_Sensor& return; } - unsigned resolution = sensor.get_logical_hwdpi(dev->settings.xres); - unsigned factor = sensor.optical_res / resolution; + unsigned resolution = sensor.get_register_hwdpi(dev->settings.xres); const auto& calib_sensor = sanei_genesys_find_sensor(dev, resolution, 3, dev->settings.scan_method); - num_pixels = calib_sensor.sensor_pixels / factor; - + unsigned num_pixels = dev->model->x_size_calib_mm * resolution / MM_PER_INCH; ScanSession session; session.params.xres = resolution; session.params.yres = dev->settings.yres; @@ -2841,14 +2525,15 @@ static void ad_fe_offset_calibration(Genesys_Device* dev, const Genesys_Sensor& session.params.flags = ScanFlag::DISABLE_SHADING | ScanFlag::DISABLE_GAMMA | ScanFlag::SINGLE_LINE | - ScanFlag::IGNORE_LINE_DISTANCE; + ScanFlag::IGNORE_STAGGER_OFFSET | + ScanFlag::IGNORE_COLOR_OFFSET; compute_session(dev, session, calib_sensor); dev->cmd_set->init_regs_for_scan_session(dev, calib_sensor, ®s, session); - total_size = num_pixels * 3 * 2 * 1; - - std::vector line(total_size); + // FIXME: we're reading twice as much data for no reason + std::size_t total_size = session.output_line_bytes * 2; + std::vector line(total_size); dev->frontend.set_gain(0, 0); dev->frontend.set_gain(1, 0); @@ -2887,9 +2572,9 @@ static void ad_fe_offset_calibration(Genesys_Device* dev, const Genesys_Sensor& /* search for minimal value */ average=0; - for(i=0;ireg.find_reg(0x04).value & REG_0x04_FESET) == 0x02) { - return ad_fe_offset_calibration(dev, sensor, regs); + ad_fe_offset_calibration(dev, sensor, regs); + return; } /* offset calibration is always done in color mode */ - channels = 3; + unsigned channels = 3; - unsigned resolution = sensor.get_logical_hwdpi(dev->settings.xres); - unsigned factor = sensor.optical_res / resolution; + unsigned resolution = sensor.get_register_hwdpi(dev->settings.xres); const auto& calib_sensor = sanei_genesys_find_sensor(dev, resolution, channels, dev->settings.scan_method); - num_pixels = calib_sensor.sensor_pixels / factor; - ScanSession session; session.params.xres = resolution; session.params.yres = dev->settings.yres; session.params.startx = 0; session.params.starty = 0; - session.params.pixels = num_pixels; + session.params.pixels = dev->model->x_size_calib_mm * resolution / MM_PER_INCH; session.params.lines = 1; session.params.depth = 16; session.params.channels = channels; @@ -2970,17 +2646,13 @@ void CommandSetGl841::offset_calibration(Genesys_Device* dev, const Genesys_Sens session.params.flags = ScanFlag::DISABLE_SHADING | ScanFlag::DISABLE_GAMMA | ScanFlag::SINGLE_LINE | - ScanFlag::IGNORE_LINE_DISTANCE | + ScanFlag::IGNORE_STAGGER_OFFSET | + ScanFlag::IGNORE_COLOR_OFFSET | ScanFlag::DISABLE_LAMP; compute_session(dev, session, calib_sensor); init_regs_for_scan_session(dev, calib_sensor, ®s, session); - total_size = num_pixels * channels * 2 * 1; /* colors * bytes_per_color * scan lines */ - - std::vector first_line(total_size); - std::vector second_line(total_size); - /* scan first line of data with no offset nor gain */ /*WM8199: gain=0.73; offset=-260mV*/ /*okay. the sensor black level is now at -260mV. we only get 0 from AFE...*/ @@ -3011,12 +2683,14 @@ void CommandSetGl841::offset_calibration(Genesys_Device* dev, const Genesys_Sens offl[2] = 0x00; turn = 0; + Image first_line; + bool acceptable = false; do { dev->interface->write_registers(regs); - for (j=0; j < channels; j++) { + for (unsigned j = 0; j < channels; j++) { off[j] = (offh[j]+offl[j])/2; dev->frontend.set_offset(j, off[j]); } @@ -3031,57 +2705,51 @@ void CommandSetGl841::offset_calibration(Genesys_Device* dev, const Genesys_Sens return; } - sanei_genesys_read_data_from_scanner(dev, first_line.data(), total_size); + first_line = read_unshuffled_image_from_scanner(dev, session, session.output_total_bytes); - if (DBG_LEVEL >= DBG_data) { - char fn[30]; - std::snprintf(fn, 30, "gl841_offset1_%02d.pnm", turn); - sanei_genesys_write_pnm_file(fn, first_line.data(), 16, channels, num_pixels, 1); - } + if (DBG_LEVEL >= DBG_data) { + char fn[30]; + std::snprintf(fn, 30, "gl841_offset1_%02d.pnm", turn); + sanei_genesys_write_pnm_file(fn, first_line); + } acceptable = true; - for (j = 0; j < channels; j++) - { - cmin[j] = 0; - cmax[j] = 0; + for (unsigned ch = 0; ch < channels; ch++) { + cmin[ch] = 0; + cmax[ch] = 0; - for (i = 0; i < num_pixels; i++) - { - if (dev->model->is_cis) - val = - first_line[i * 2 + j * 2 * num_pixels + 1] * 256 + - first_line[i * 2 + j * 2 * num_pixels]; - else - val = - first_line[i * 2 * channels + 2 * j + 1] * 256 + - first_line[i * 2 * channels + 2 * j]; - if (val < 10) - cmin[j]++; - if (val > 65525) - cmax[j]++; - } + for (std::size_t x = 0; x < first_line.get_width(); x++) { + auto value = first_line.get_raw_channel(x, 0, ch); + if (value < 10) { + cmin[ch]++; + } + if (value > 65525) { + cmax[ch]++; + } + } /* TODO the DP685 has a black strip in the middle of the sensor * should be handled in a more elegant way , could be a bug */ - if (dev->model->sensor_id == SensorId::CCD_DP685) - cmin[j] -= 20; + if (dev->model->sensor_id == SensorId::CCD_DP685) { + cmin[ch] -= 20; + } - if (cmin[j] > num_pixels/100) { + if (cmin[ch] > first_line.get_width() / 100) { acceptable = false; if (dev->model->is_cis) offl[0] = off[0]; else - offl[j] = off[j]; - } - if (cmax[j] > num_pixels/100) { + offl[ch] = off[ch]; + } + if (cmax[ch] > first_line.get_width() / 100) { acceptable = false; if (dev->model->is_cis) offh[0] = off[0]; else - offh[j] = off[j]; - } - } + offh[ch] = off[ch]; + } + } DBG(DBG_info,"%s: black/white pixels: %d/%d,%d/%d,%d/%d\n", __func__, cmin[0], cmax[0], cmin[1], cmax[1], cmin[2], cmax[2]); @@ -3099,26 +2767,19 @@ void CommandSetGl841::offset_calibration(Genesys_Device* dev, const Genesys_Sens DBG(DBG_info,"%s: acceptable offsets: %d,%d,%d\n", __func__, off[0], off[1], off[2]); - for (j = 0; j < channels; j++) - { - off1[j] = off[j]; + for (unsigned ch = 0; ch < channels; ch++) { + off1[ch] = off[ch]; - min1[j] = 65536; + min1[ch] = 65536; - for (i = 0; i < num_pixels; i++) - { - if (dev->model->is_cis) - val = - first_line[i * 2 + j * 2 * num_pixels + 1] * 256 + - first_line[i * 2 + j * 2 * num_pixels]; - else - val = - first_line[i * 2 * channels + 2 * j + 1] * 256 + - first_line[i * 2 * channels + 2 * j]; - if (min1[j] > val && val >= 10) - min1[j] = val; - } - } + for (std::size_t x = 0; x < first_line.get_width(); x++) { + auto value = first_line.get_raw_channel(x, 0, ch); + + if (min1[ch] > value && value >= 10) { + min1[ch] = value; + } + } + } offl[0] = off[0]; @@ -3126,64 +2787,59 @@ void CommandSetGl841::offset_calibration(Genesys_Device* dev, const Genesys_Sens offl[2] = off[0]; turn = 0; + Image second_line; do { - for (j=0; j < channels; j++) { + for (unsigned j=0; j < channels; j++) { off[j] = (offh[j]+offl[j])/2; dev->frontend.set_offset(j, off[j]); - } + } dev->cmd_set->set_fe(dev, calib_sensor, AFE_SET); DBG(DBG_info, "%s: starting second line reading\n", __func__); dev->interface->write_registers(regs); dev->cmd_set->begin_scan(dev, calib_sensor, ®s, true); - sanei_genesys_read_data_from_scanner(dev, second_line.data(), total_size); + second_line = read_unshuffled_image_from_scanner(dev, session, session.output_total_bytes); - if (DBG_LEVEL >= DBG_data) { - char fn[30]; - std::snprintf(fn, 30, "gl841_offset2_%02d.pnm", turn); - sanei_genesys_write_pnm_file(fn, second_line.data(), 16, channels, num_pixels, 1); - } + if (DBG_LEVEL >= DBG_data) { + char fn[30]; + std::snprintf(fn, 30, "gl841_offset2_%02d.pnm", turn); + sanei_genesys_write_pnm_file(fn, second_line); + } acceptable = true; - for (j = 0; j < channels; j++) - { - cmin[j] = 0; - cmax[j] = 0; + for (unsigned ch = 0; ch < channels; ch++) { + cmin[ch] = 0; + cmax[ch] = 0; - for (i = 0; i < num_pixels; i++) - { - if (dev->model->is_cis) - val = - second_line[i * 2 + j * 2 * num_pixels + 1] * 256 + - second_line[i * 2 + j * 2 * num_pixels]; - else - val = - second_line[i * 2 * channels + 2 * j + 1] * 256 + - second_line[i * 2 * channels + 2 * j]; - if (val < 10) - cmin[j]++; - if (val > 65525) - cmax[j]++; - } + for (std::size_t x = 0; x < second_line.get_width(); x++) { + auto value = second_line.get_raw_channel(x, 0, ch); - if (cmin[j] > num_pixels/100) { + if (value < 10) { + cmin[ch]++; + } + if (value > 65525) { + cmax[ch]++; + } + } + + if (cmin[ch] > second_line.get_width() / 100) { acceptable = false; if (dev->model->is_cis) offl[0] = off[0]; else - offl[j] = off[j]; - } - if (cmax[j] > num_pixels/100) { + offl[ch] = off[ch]; + } + if (cmax[ch] > second_line.get_width() / 100) { acceptable = false; if (dev->model->is_cis) offh[0] = off[0]; else - offh[j] = off[j]; - } - } + offh[ch] = off[ch]; + } + } DBG(DBG_info, "%s: black/white pixels: %d/%d,%d/%d,%d/%d\n", __func__, cmin[0], cmax[0], cmin[1], cmax[1], cmin[2], cmax[2]); @@ -3202,26 +2858,19 @@ void CommandSetGl841::offset_calibration(Genesys_Device* dev, const Genesys_Sens DBG(DBG_info, "%s: acceptable offsets: %d,%d,%d\n", __func__, off[0], off[1], off[2]); - for (j = 0; j < channels; j++) - { - off2[j] = off[j]; + for (unsigned ch = 0; ch < channels; ch++) { + off2[ch] = off[ch]; - min2[j] = 65536; + min2[ch] = 65536; - for (i = 0; i < num_pixels; i++) - { - if (dev->model->is_cis) - val = - second_line[i * 2 + j * 2 * num_pixels + 1] * 256 + - second_line[i * 2 + j * 2 * num_pixels]; - else - val = - second_line[i * 2 * channels + 2 * j + 1] * 256 + - second_line[i * 2 * channels + 2 * j]; - if (min2[j] > val && val != 0) - min2[j] = val; - } - } + for (std::size_t x = 0; x < second_line.get_width(); x++) { + auto value = second_line.get_raw_channel(x, 0, ch); + + if (min2[ch] > value && value != 0) { + min2[ch] = value; + } + } + } DBG(DBG_info, "%s: first set: %d/%d,%d/%d,%d/%d\n", __func__, off1[0], min1[0], off1[1], min1[1], off1[2], min1[2]); @@ -3247,22 +2896,25 @@ void CommandSetGl841::offset_calibration(Genesys_Device* dev, const Genesys_Sens off=(min*(off1-off2)+min1*off2-off1*min2)/(min1-min2) */ - for (j = 0; j < channels; j++) - { - if (min2[j]-min1[j] == 0) { + for (unsigned ch = 0; ch < channels; ch++) { + if (min2[ch] - min1[ch] == 0) { /*TODO: try to avoid this*/ DBG(DBG_warn, "%s: difference too small\n", __func__); - if (mintgt * (off1[j] - off2[j]) + min1[j] * off2[j] - min2[j] * off1[j] >= 0) - off[j] = 0x0000; - else - off[j] = 0xffff; - } else - off[j] = (mintgt * (off1[j] - off2[j]) + min1[j] * off2[j] - min2[j] * off1[j])/(min1[j]-min2[j]); - if (off[j] > 255) - off[j] = 255; - if (off[j] < 0) - off[j] = 0; - dev->frontend.set_offset(j, off[j]); + if (mintgt * (off1[ch] - off2[ch]) + min1[ch] * off2[ch] - min2[ch] * off1[ch] >= 0) { + off[ch] = 0x0000; + } else { + off[ch] = 0xffff; + } + } else { + off[ch] = (mintgt * (off1[ch] - off2[ch]) + min1[ch] * off2[ch] - min2[ch] * off1[ch])/(min1[ch]-min2[ch]); + } + if (off[ch] > 255) { + off[ch] = 255; + } + if (off[ch] < 0) { + off[ch] = 0; + } + dev->frontend.set_offset(ch, off[ch]); } DBG(DBG_info, "%s: final offsets: %d,%d,%d\n", __func__, off[0], off[1], off[2]); @@ -3298,33 +2950,25 @@ void CommandSetGl841::coarse_gain_calibration(Genesys_Device* dev, const Genesys Genesys_Register_Set& regs, int dpi) const { DBG_HELPER_ARGS(dbg, "dpi=%d", dpi); - int num_pixels; - int total_size; - int i, j, channels; - int max[3]; float gain[3]; - int val; int lines=1; - int move; // feed to white strip if needed if (dev->model->y_offset_calib_white > 0) { - move = static_cast(dev->model->y_offset_calib_white); - move = static_cast((move * (dev->motor.base_ydpi)) / MM_PER_INCH); - DBG(DBG_io, "%s: move=%d lines\n", __func__, move); - gl841_feed(dev, move); + unsigned move = static_cast( + (dev->model->y_offset_calib_white * (dev->motor.base_ydpi)) / MM_PER_INCH); + scanner_move(*dev, dev->model->default_method, move, Direction::FORWARD); } /* coarse gain calibration is allways done in color mode */ - channels = 3; + unsigned channels = 3; - unsigned resolution = sensor.get_logical_hwdpi(dev->settings.xres); - unsigned factor = sensor.optical_res / resolution; + unsigned resolution = sensor.get_register_hwdpi(dev->settings.xres); const auto& calib_sensor = sanei_genesys_find_sensor(dev, resolution, channels, dev->settings.scan_method); - num_pixels = calib_sensor.sensor_pixels / factor; + unsigned num_pixels = dev->model->x_size_calib_mm * resolution / MM_PER_INCH; ScanSession session; session.params.xres = resolution; @@ -3341,16 +2985,15 @@ void CommandSetGl841::coarse_gain_calibration(Genesys_Device* dev, const Genesys session.params.flags = ScanFlag::DISABLE_SHADING | ScanFlag::DISABLE_GAMMA | ScanFlag::SINGLE_LINE | - ScanFlag::IGNORE_LINE_DISTANCE; + ScanFlag::IGNORE_STAGGER_OFFSET | + ScanFlag::IGNORE_COLOR_OFFSET; compute_session(dev, session, calib_sensor); init_regs_for_scan_session(dev, calib_sensor, ®s, session); dev->interface->write_registers(regs); - total_size = num_pixels * channels * 2 * lines; /* colors * bytes_per_color * scan lines */ - - std::vector line(total_size); + std::vector line(session.output_total_bytes); dev->cmd_set->begin_scan(dev, calib_sensor, ®s, true); @@ -3361,7 +3004,7 @@ void CommandSetGl841::coarse_gain_calibration(Genesys_Device* dev, const Genesys return; } - sanei_genesys_read_data_from_scanner(dev, line.data(), total_size); + auto image = read_unshuffled_image_from_scanner(dev, session, session.output_total_bytes); if (DBG_LEVEL >= DBG_data) sanei_genesys_write_pnm_file("gl841_gain.pnm", line.data(), 16, channels, num_pixels, lines); @@ -3369,25 +3012,17 @@ void CommandSetGl841::coarse_gain_calibration(Genesys_Device* dev, const Genesys /* average high level for each channel and compute gain to reach the target code we only use the central half of the CCD data */ - for (j = 0; j < channels; j++) - { - max[j] = 0; - for (i = 0; i < num_pixels; i++) - { - if (dev->model->is_cis) - val = - line[i * 2 + j * 2 * num_pixels + 1] * 256 + - line[i * 2 + j * 2 * num_pixels]; - else - val = - line[i * 2 * channels + 2 * j + 1] * 256 + - line[i * 2 * channels + 2 * j]; - if (val > max[j]) - max[j] = val; - } + for (unsigned ch = 0; ch < channels; ch++) { + unsigned max = 0; + for (std::size_t x = 0; x < image.get_width(); x++) { + auto value = image.get_raw_channel(x, 0, ch); + if (value > max) { + max = value; + } + } - gain[j] = 65535.0f / max[j]; + gain[ch] = 65535.0f / max; uint8_t out_gain = 0; @@ -3395,26 +3030,25 @@ void CommandSetGl841::coarse_gain_calibration(Genesys_Device* dev, const Genesys dev->model->adc_id == AdcId::WOLFSON_XP300 || dev->model->adc_id == AdcId::WOLFSON_DSM600) { - gain[j] *= 0.69f; // seems we don't get the real maximum. empirically derived - if (283 - 208/gain[j] > 255) - out_gain = 255; - else if (283 - 208/gain[j] < 0) - out_gain = 0; - else - out_gain = static_cast(283 - 208 / gain[j]); + gain[ch] *= 0.69f; // seems we don't get the real maximum. empirically derived + if (283 - 208 / gain[ch] > 255) { + out_gain = 255; + } else if (283 - 208 / gain[ch] < 0) { + out_gain = 0; + } else { + out_gain = static_cast(283 - 208 / gain[ch]); + } } else if (dev->model->adc_id == AdcId::CANON_LIDE_80) { - out_gain = static_cast(gain[j] * 12); + out_gain = static_cast(gain[ch] * 12); } - dev->frontend.set_gain(j, out_gain); + dev->frontend.set_gain(ch, out_gain); - DBG(DBG_proc, "%s: channel %d, max=%d, gain = %f, setting:%d\n", __func__, j, max[j], gain[j], - out_gain); + DBG(DBG_proc, "%s: channel %d, max=%d, gain = %f, setting:%d\n", __func__, ch, max, + gain[ch], out_gain); } - for (j = 0; j < channels; j++) - { - if(gain[j] > 10) - { + for (unsigned j = 0; j < channels; j++) { + if (gain[j] > 30) { DBG (DBG_error0, "**********************************************\n"); DBG (DBG_error0, "**********************************************\n"); DBG (DBG_error0, "**** ****\n"); @@ -3494,7 +3128,8 @@ void CommandSetGl841::init_regs_for_warmup(Genesys_Device* dev, const Genesys_Se session.params.flags = ScanFlag::DISABLE_SHADING | ScanFlag::DISABLE_GAMMA | ScanFlag::SINGLE_LINE | - ScanFlag::IGNORE_LINE_DISTANCE; + ScanFlag::IGNORE_STAGGER_OFFSET | + ScanFlag::IGNORE_COLOR_OFFSET; compute_session(dev, session, sensor); init_regs_for_scan_session(dev, sensor, local_reg, session); @@ -3502,24 +3137,6 @@ void CommandSetGl841::init_regs_for_warmup(Genesys_Device* dev, const Genesys_Se num_pixels = session.output_pixels; *total_size = num_pixels * 3 * 2 * 1; /* colors * bytes_per_color * scan lines */ - - dev->interface->write_registers(*local_reg); -} - - -/* - * this function moves head without scanning, forward, then backward - * so that the head goes to park position. - * as a by-product, also check for lock - */ -static void sanei_gl841_repark_head(Genesys_Device* dev) -{ - DBG_HELPER(dbg); - - gl841_feed(dev,232); - - // toggle motor flag, put an huge step number and redo move backward - dev->cmd_set->move_back_home(dev, true); } /* @@ -3528,9 +3145,7 @@ static void sanei_gl841_repark_head(Genesys_Device* dev) */ void CommandSetGl841::init(Genesys_Device* dev) const { - size_t size; - - DBG_INIT (); + DBG_INIT(); DBG_HELPER(dbg); dev->set_head_pos_zero(ScanHeadId::PRIMARY); @@ -3565,31 +3180,32 @@ void CommandSetGl841::init(Genesys_Device* dev) const // Set analog frontend dev->cmd_set->set_fe(dev, sensor, AFE_INIT); - // FIXME: move_back_home modifies dev->calib_reg and requires it to be filled - dev->calib_reg = dev->reg; + // FIXME: move_back_home modifies dev->initial_regs and requires it to be filled + dev->initial_regs = dev->reg; // Move home dev->cmd_set->move_back_home(dev, true); // Init shading data - sanei_genesys_init_shading_data(dev, sensor, sensor.sensor_pixels); + unsigned sensor_pixels = dev->model->x_size_calib_mm * sensor.optical_res / MM_PER_INCH; + sanei_genesys_init_shading_data(dev, sensor, sensor_pixels); /* ensure head is correctly parked, and check lock */ - if (dev->model->flags & GENESYS_FLAG_REPARK) - { + if (has_flag(dev->model->flags, ModelFlag::REPARK)) { // FIXME: if repark fails, we should print an error message that the scanner is locked and // the user should unlock the lock. We should also rethrow with SANE_STATUS_JAMMED - sanei_gl841_repark_head(dev); + scanner_move(*dev, dev->model->default_method, 232, Direction::FORWARD); + dev->cmd_set->move_back_home(dev, true); } // send gamma tables dev->cmd_set->send_gamma_table(dev, sensor); /* initial calibration reg values */ - Genesys_Register_Set& regs = dev->calib_reg; + Genesys_Register_Set& regs = dev->initial_regs; regs = dev->reg; - unsigned resolution = sensor.get_logical_hwdpi(300); + unsigned resolution = sensor.get_register_hwdpi(300); unsigned factor = sensor.optical_res / resolution; const auto& calib_sensor = sanei_genesys_find_sensor(dev, resolution, 3, @@ -3612,16 +3228,15 @@ void CommandSetGl841::init(Genesys_Device* dev) const session.params.flags = ScanFlag::DISABLE_SHADING | ScanFlag::DISABLE_GAMMA | ScanFlag::SINGLE_LINE | - ScanFlag::IGNORE_LINE_DISTANCE; + ScanFlag::IGNORE_STAGGER_OFFSET | + ScanFlag::IGNORE_COLOR_OFFSET; compute_session(dev, session, calib_sensor); init_regs_for_scan_session(dev, calib_sensor, ®s, session); dev->interface->write_registers(regs); - size = num_pixels * 3 * 2 * 1; // colors * bytes_per_color * scan lines - - std::vector line(size); + std::vector line(session.output_line_bytes); DBG(DBG_info, "%s: starting dummy data reading\n", __func__); dev->cmd_set->begin_scan(dev, calib_sensor, ®s, true); @@ -3632,8 +3247,10 @@ void CommandSetGl841::init(Genesys_Device* dev) const dev->interface->test_checkpoint("init"); } else { // ignore errors. next read will succeed - catch_all_exceptions(__func__, - [&](){ sanei_genesys_read_data_from_scanner(dev, line.data(), size); }); + catch_all_exceptions(__func__, [&]() + { + sanei_genesys_read_data_from_scanner(dev, line.data(), session.output_line_bytes); + }); } sanei_usb_set_timeout(30 * 1000);/* 30 seconds*/ @@ -3676,225 +3293,6 @@ void CommandSetGl841::update_hardware_sensors(Genesys_Scanner* s) const } } -/** @brief search for a full width black or white strip. - * This function searches for a black or white stripe across the scanning area. - * When searching backward, the searched area must completely be of the desired - * color since this area will be used for calibration which scans forward. - * @param dev scanner device - * @param forward true if searching forward, false if searching backward - * @param black true if searching for a black strip, false for a white strip - */ -void CommandSetGl841::search_strip(Genesys_Device* dev, const Genesys_Sensor& sensor, bool forward, - bool black) const -{ - DBG_HELPER_ARGS(dbg, "%s %s", black ? "black" : "white", forward ? "forward" : "reverse"); - unsigned int pixels, lines, channels; - Genesys_Register_Set local_reg; - size_t size; - unsigned int pass, count, found, x, y, length; - char title[80]; - GenesysRegister *r; - uint8_t white_level=90; /**< default white level to detect white dots */ - uint8_t black_level=60; /**< default black level to detect black dots */ - - /* use maximum gain when doing forward white strip detection - * since we don't have calibrated the sensor yet */ - if(!black && forward) - { - dev->frontend.set_gain(0, 0xff); - dev->frontend.set_gain(1, 0xff); - dev->frontend.set_gain(2, 0xff); - } - - dev->cmd_set->set_fe(dev, sensor, AFE_SET); - gl841_stop_action(dev); - - // set up for a gray scan at lowest dpi - const auto& resolution_settings = dev->model->get_resolution_settings(dev->settings.scan_method); - unsigned dpi = resolution_settings.get_min_resolution_x(); - channels = 1; - - /* shading calibation is done with dev->motor.base_ydpi */ - /* lines = (dev->model->shading_lines * dpi) / dev->motor.base_ydpi; */ - lines = static_cast((10 * dpi) / MM_PER_INCH); - - pixels = (sensor.sensor_pixels * dpi) / sensor.optical_res; - - /* 20 cm max length for calibration sheet */ - length = static_cast(((200 * dpi) / MM_PER_INCH) / lines); - - dev->set_head_pos_zero(ScanHeadId::PRIMARY); - - local_reg = dev->reg; - - ScanSession session; - session.params.xres = dpi; - session.params.yres = dpi; - session.params.startx = 0; - session.params.starty = 0; - session.params.pixels = pixels; - session.params.lines = lines; - session.params.depth = 8; - session.params.channels = channels; - session.params.scan_method = dev->settings.scan_method; - session.params.scan_mode = ScanColorMode::GRAY; - session.params.color_filter = ColorFilter::RED; - session.params.flags = ScanFlag::DISABLE_SHADING | ScanFlag::DISABLE_GAMMA; - compute_session(dev, session, sensor); - - size = pixels * channels * lines * (session.params.depth / 8); - std::vector data(size); - - init_regs_for_scan_session(dev, sensor, &local_reg, session); - - /* set up for reverse or forward */ - r = sanei_genesys_get_address(&local_reg, 0x02); - if (forward) { - r->value &= ~4; - } else { - r->value |= 4; - } - - dev->interface->write_registers(local_reg); - - dev->cmd_set->begin_scan(dev, sensor, &local_reg, true); - - if (is_testing_mode()) { - dev->interface->test_checkpoint("search_strip"); - gl841_stop_action(dev); - return; - } - - // waits for valid data - wait_until_buffer_non_empty(dev); - - // now we're on target, we can read data - sanei_genesys_read_data_from_scanner(dev, data.data(), size); - - gl841_stop_action(dev); - - pass = 0; - if (DBG_LEVEL >= DBG_data) - { - std::sprintf(title, "gl841_search_strip_%s_%s%02u.pnm", black ? "black" : "white", - forward ? "fwd" : "bwd", pass); - sanei_genesys_write_pnm_file(title, data.data(), session.params.depth, - channels, pixels, lines); - } - - /* loop until strip is found or maximum pass number done */ - found = 0; - while (pass < length && !found) - { - dev->interface->write_registers(local_reg); - - //now start scan - dev->cmd_set->begin_scan(dev, sensor, &local_reg, true); - - // waits for valid data - wait_until_buffer_non_empty(dev); - - // now we're on target, we can read data - sanei_genesys_read_data_from_scanner(dev, data.data(), size); - - gl841_stop_action (dev); - - if (DBG_LEVEL >= DBG_data) - { - std::sprintf(title, "gl841_search_strip_%s_%s%02u.pnm", - black ? "black" : "white", forward ? "fwd" : "bwd", pass); - sanei_genesys_write_pnm_file(title, data.data(), session.params.depth, - channels, pixels, lines); - } - - /* search data to find black strip */ - /* when searching forward, we only need one line of the searched color since we - * will scan forward. But when doing backward search, we need all the area of the - * same color */ - if (forward) - { - for (y = 0; y < lines && !found; y++) - { - count = 0; - /* count of white/black pixels depending on the color searched */ - for (x = 0; x < pixels; x++) - { - /* when searching for black, detect white pixels */ - if (black && data[y * pixels + x] > white_level) - { - count++; - } - /* when searching for white, detect black pixels */ - if (!black && data[y * pixels + x] < black_level) - { - count++; - } - } - - /* at end of line, if count >= 3%, line is not fully of the desired color - * so we must go to next line of the buffer */ - /* count*100/pixels < 3 */ - if ((count * 100) / pixels < 3) - { - found = 1; - DBG(DBG_data, "%s: strip found forward during pass %d at line %d\n", __func__, - pass, y); - } - else - { - DBG(DBG_data, "%s: pixels=%d, count=%d (%d%%)\n", __func__, pixels, count, - (100 * count) / pixels); - } - } - } - else /* since calibration scans are done forward, we need the whole area - to be of the required color when searching backward */ - { - count = 0; - for (y = 0; y < lines; y++) - { - /* count of white/black pixels depending on the color searched */ - for (x = 0; x < pixels; x++) - { - /* when searching for black, detect white pixels */ - if (black && data[y * pixels + x] > white_level) - { - count++; - } - /* when searching for white, detect black pixels */ - if (!black && data[y * pixels + x] < black_level) - { - count++; - } - } - } - - /* at end of area, if count >= 3%, area is not fully of the desired color - * so we must go to next buffer */ - if ((count * 100) / (pixels * lines) < 3) - { - found = 1; - DBG(DBG_data, "%s: strip found backward during pass %d \n", __func__, pass); - } - else - { - DBG(DBG_data, "%s: pixels=%d, count=%d (%d%%)\n", __func__, pixels, count, - (100 * count) / pixels); - } - } - pass++; - } - - if (found) - { - DBG(DBG_info, "%s: %s strip found\n", __func__, black ? "black" : "white"); - } - else - { - throw SaneException(SANE_STATUS_UNSUPPORTED, "%s strip not found", black ? "black" : "white"); - } -} - /** * Send shading calibration data. The buffer is considered to always hold values * for all the channels. diff --git a/backend/genesys/gl841.h b/backend/genesys/gl841.h index 5e24249db..9e010bb30 100644 --- a/backend/genesys/gl841.h +++ b/backend/genesys/gl841.h @@ -42,7 +42,7 @@ */ #include "genesys.h" -#include "command_set.h" +#include "command_set_common.h" #ifndef BACKEND_GENESYS_GL841_H #define BACKEND_GENESYS_GL841_H @@ -50,7 +50,7 @@ namespace genesys { namespace gl841 { -class CommandSetGl841 : public CommandSet +class CommandSetGl841 : public CommandSetCommon { public: ~CommandSetGl841() override = default; @@ -63,13 +63,11 @@ public: Genesys_Register_Set* regs, int* channels, int* total_size) const override; - void init_regs_for_coarse_calibration(Genesys_Device* dev, const Genesys_Sensor& sensor, - Genesys_Register_Set& regs) const override; - void init_regs_for_shading(Genesys_Device* dev, const Genesys_Sensor& sensor, Genesys_Register_Set& regs) const override; - void init_regs_for_scan(Genesys_Device* dev, const Genesys_Sensor& sensor) const override; + void init_regs_for_scan(Genesys_Device* dev, const Genesys_Sensor& sensor, + Genesys_Register_Set& regs) const override; void init_regs_for_scan_session(Genesys_Device* dev, const Genesys_Sensor& sensor, Genesys_Register_Set* reg, @@ -86,8 +84,6 @@ public: void send_gamma_table(Genesys_Device* dev, const Genesys_Sensor& sensor) const override; - void search_start_position(Genesys_Device* dev) const override; - void offset_calibration(Genesys_Device* dev, const Genesys_Sensor& sensor, Genesys_Register_Set& regs) const override; @@ -109,9 +105,6 @@ public: void eject_document(Genesys_Device* dev) const override; - void search_strip(Genesys_Device* dev, const Genesys_Sensor& sensor, - bool forward, bool black) const override; - void move_to_ta(Genesys_Device* dev) const override; void send_shading_data(Genesys_Device* dev, const Genesys_Sensor& sensor, uint8_t* data, diff --git a/backend/genesys/gl843.cpp b/backend/genesys/gl843.cpp index f83ac8d46..08db58920 100644 --- a/backend/genesys/gl843.cpp +++ b/backend/genesys/gl843.cpp @@ -54,15 +54,6 @@ namespace genesys { namespace gl843 { -// Set address for writing data -static void gl843_set_buffer_address(Genesys_Device* dev, uint32_t addr) -{ - DBG_HELPER_ARGS(dbg, "setting address to 0x%05x", addr & 0xffff); - - dev->interface->write_register(0x5b, ((addr >> 8) & 0xff)); - dev->interface->write_register(0x5c, (addr & 0xff)); -} - /** * compute the step multiplier used */ @@ -96,7 +87,7 @@ static void gl843_setup_sensor(Genesys_Device* dev, const Genesys_Sensor& sensor for (const auto& custom_reg : sensor.custom_regs) { regs->set8(custom_reg.address, custom_reg.value); } - if (!(dev->model->flags & GENESYS_FLAG_FULL_HWDPI_MODE) && + if (!has_flag(dev->model->flags, ModelFlag::FULL_HWDPI_MODE) && dev->model->model_id != ModelId::PLUSTEK_OPTICFILM_7200I && dev->model->model_id != ModelId::PLUSTEK_OPTICFILM_7300 && dev->model->model_id != ModelId::PLUSTEK_OPTICFILM_7500I) @@ -402,11 +393,11 @@ gl843_init_registers (Genesys_Device * dev) // STEPSEL[0:1]. Motor movement step mode selection for tables 1-3 in // scanning mode. // MTRPWM[0:5]. Motor phase PWM duty cycle setting for tables 1-3 - dev->reg.init_reg(0x67, 0x7f); + dev->reg.init_reg(0x67, 0x7f); // MOTOR_PROFILE // FSTPSEL[0:1]: Motor movement step mode selection for tables 4-5 in // command mode. // FASTPWM[5:0]: Motor phase PWM duty cycle setting for tables 4-5 - dev->reg.init_reg(0x68, 0x7f); + dev->reg.init_reg(0x68, 0x7f); // MOTOR_PROFILE if (dev->model->model_id == ModelId::PLUSTEK_OPTICFILM_7300) { dev->reg.init_reg(0x67, 0x80); @@ -415,17 +406,11 @@ gl843_init_registers (Genesys_Device * dev) // FSHDEC[0:7]: The number of deceleration steps after scanning is finished // (table 3) - dev->reg.init_reg(0x69, 0x01); - if (dev->model->model_id == ModelId::CANON_8600F) { - dev->reg.init_reg(0x69, 64); - } + dev->reg.init_reg(0x69, 0x01); // MOTOR_PROFILE // FMOVNO[0:7] The number of acceleration or deceleration steps for fast // moving (table 4) - dev->reg.init_reg(0x6a, 0x04); - if (dev->model->model_id == ModelId::CANON_8600F) { - dev->reg.init_reg(0x69, 64); - } + dev->reg.init_reg(0x6a, 0x04); // MOTOR_PROFILE // GPIO-related register bits dev->reg.init_reg(0x6b, 0x30); @@ -516,7 +501,7 @@ gl843_init_registers (Genesys_Device * dev) // VRHOME, VRMOVE, VRBACK, VRSCAN: Vref settings of the motor driver IC for // moving in various situations. - dev->reg.init_reg(0x80, 0x00); + dev->reg.init_reg(0x80, 0x00); // MOTOR_PROFILE if (dev->model->model_id == ModelId::CANON_4400F) { dev->reg.init_reg(0x80, 0x0c); } @@ -632,7 +617,7 @@ gl843_init_registers (Genesys_Device * dev) dev->reg.init_reg(0xaa, 0x00); } - // GPOM9, MULSTOP[0-2], NODECEL, TB3TB1, TB5TB2, FIX16CLK. Not documented + // GPOM9, MULSTOP[0-2], NODECEL, TB3TB1, TB5TB2, FIX16CLK. if (dev->model->model_id != ModelId::CANON_8400F && dev->model->model_id != ModelId::PLUSTEK_OPTICFILM_7200I && dev->model->model_id != ModelId::PLUSTEK_OPTICFILM_7300) { @@ -643,10 +628,9 @@ gl843_init_registers (Genesys_Device * dev) } if (dev->model->model_id == ModelId::HP_SCANJET_G4010 || dev->model->model_id == ModelId::HP_SCANJET_G4050 || + dev->model->model_id == ModelId::CANON_8600F || dev->model->model_id == ModelId::HP_SCANJET_4850C) { - // BUG: this should apply to ModelId::CANON_CANOSCAN_8600F too, but due to previous bug - // the 8400F case overwrote it dev->reg.init_reg(0xab, 0x40); } @@ -660,8 +644,6 @@ gl843_init_registers (Genesys_Device * dev) dev->reg.init_reg(0xac, 0x00); } - dev->calib_reg = dev->reg; - if (dev->model->model_id == ModelId::PLUSTEK_OPTICFILM_7200I) { uint8_t data[32] = { 0x8c, 0x8f, 0xc9, 0x00, 0x01, 0x00, 0x00, 0x00, @@ -670,8 +652,7 @@ gl843_init_registers (Genesys_Device * dev) 0x6a, 0x73, 0x63, 0x68, 0x69, 0x65, 0x6e, 0x00, }; - dev->interface->write_buffer(0x3c, 0x3ff000, data, 32, - ScannerInterface::FLAG_SWAP_REGISTERS); + dev->interface->write_buffer(0x3c, 0x3ff000, data, 32); } } @@ -683,7 +664,6 @@ static void gl843_send_slope_table(Genesys_Device* dev, int table_nr, DBG_HELPER_ARGS(dbg, "table_nr = %d, steps = %d", table_nr, steps); int i; - char msg[10000]; std::vector table(steps * 2); for (i = 0; i < steps; i++) @@ -692,26 +672,13 @@ static void gl843_send_slope_table(Genesys_Device* dev, int table_nr, table[i * 2 + 1] = slope_table[i] >> 8; } - if (DBG_LEVEL >= DBG_io) - { - std::sprintf(msg, "write slope %d (%d)=", table_nr, steps); - for (i = 0; i < steps; i++) { - std::sprintf (msg+strlen(msg), "%d", slope_table[i]); - } - DBG(DBG_io, "%s: %s\n", __func__, msg); - } - if (dev->interface->is_mock()) { dev->interface->record_slope_table(table_nr, slope_table); } // slope table addresses are fixed : 0x40000, 0x48000, 0x50000, 0x58000, 0x60000 // XXX STEF XXX USB 1.1 ? sanei_genesys_write_0x8c (dev, 0x0f, 0x14); - dev->interface->write_gamma(0x28, 0x40000 + 0x8000 * table_nr, table.data(), steps * 2, - ScannerInterface::FLAG_SWAP_REGISTERS); - - // FIXME: remove this when updating tests - gl843_set_buffer_address(dev, 0); + dev->interface->write_gamma(0x28, 0x40000 + 0x8000 * table_nr, table.data(), steps * 2); } static void gl843_set_ad_fe(Genesys_Device* dev) @@ -728,14 +695,12 @@ void CommandSetGl843::set_fe(Genesys_Device* dev, const Genesys_Sensor& sensor, set == AFE_SET ? "set" : set == AFE_POWER_SAVE ? "powersave" : "huh?"); (void) sensor; - int i; if (set == AFE_INIT) { DBG(DBG_proc, "%s(): setting DAC %u\n", __func__, static_cast(dev->model->adc_id)); - dev->frontend = dev->frontend_initial; - dev->frontend_is_init = true; + dev->frontend = dev->frontend_initial; } // check analog frontend type @@ -751,57 +716,33 @@ void CommandSetGl843::set_fe(Genesys_Device* dev, const Genesys_Sensor& sensor, DBG(DBG_proc, "%s(): frontend reset complete\n", __func__); - for (i = 1; i <= 3; i++) - { - // FIXME: the check below is just historical artifact, we can remove it when convenient - if (!dev->frontend_is_init) { - dev->interface->write_fe_register(i, 0x00); - } else { - dev->interface->write_fe_register(i, dev->frontend.regs.get_value(0x00 + i)); - } + for (unsigned i = 1; i <= 3; i++) { + dev->interface->write_fe_register(i, dev->frontend.regs.get_value(0x00 + i)); } for (const auto& reg : sensor.custom_fe_regs) { dev->interface->write_fe_register(reg.address, reg.value); } - for (i = 0; i < 3; i++) - { - // FIXME: the check below is just historical artifact, we can remove it when convenient - if (!dev->frontend_is_init) { - dev->interface->write_fe_register(0x20 + i, 0x00); - } else { - dev->interface->write_fe_register(0x20 + i, dev->frontend.get_offset(i)); - } + for (unsigned i = 0; i < 3; i++) { + dev->interface->write_fe_register(0x20 + i, dev->frontend.get_offset(i)); } if (dev->model->sensor_id == SensorId::CCD_KVSS080) { - for (i = 0; i < 3; i++) - { - // FIXME: the check below is just historical artifact, we can remove it when convenient - if (!dev->frontend_is_init) { - dev->interface->write_fe_register(0x24 + i, 0x00); - } else { - dev->interface->write_fe_register(0x24 + i, dev->frontend.regs.get_value(0x24 + i)); - } - } + for (unsigned i = 0; i < 3; i++) { + dev->interface->write_fe_register(0x24 + i, dev->frontend.regs.get_value(0x24 + i)); + } } - for (i = 0; i < 3; i++) - { - // FIXME: the check below is just historical artifact, we can remove it when convenient - if (!dev->frontend_is_init) { - dev->interface->write_fe_register(0x28 + i, 0x00); - } else { - dev->interface->write_fe_register(0x28 + i, dev->frontend.get_gain(i)); - } + for (unsigned i = 0; i < 3; i++) { + dev->interface->write_fe_register(0x28 + i, dev->frontend.get_gain(i)); } } - static void gl843_init_motor_regs_scan(Genesys_Device* dev, const Genesys_Sensor& sensor, + const ScanSession& session, Genesys_Register_Set* reg, - const Motor_Profile& motor_profile, + const MotorProfile& motor_profile, unsigned int exposure, unsigned scan_yres, unsigned int scan_lines, @@ -863,29 +804,44 @@ static void gl843_init_motor_regs_scan(Genesys_Device* dev, r->value &= ~REG_0x02_MTRREV; } - /* scan and backtracking slope table */ + + + // scan and backtracking slope table auto scan_table = sanei_genesys_slope_table(dev->model->asic_type, scan_yres, exposure, dev->motor.base_ydpi, step_multiplier, motor_profile); gl843_send_slope_table(dev, SCAN_TABLE, scan_table.table, scan_table.steps_count); gl843_send_slope_table(dev, BACKTRACK_TABLE, scan_table.table, scan_table.steps_count); + gl843_send_slope_table(dev, STOP_TABLE, scan_table.table, scan_table.steps_count); reg->set8(REG_STEPNO, scan_table.steps_count / step_multiplier); reg->set8(REG_FASTNO, scan_table.steps_count / step_multiplier); + reg->set8(REG_FSHDEC, scan_table.steps_count / step_multiplier); // fast table - unsigned fast_yres = sanei_genesys_get_lowest_ydpi(dev); - auto fast_table = sanei_genesys_slope_table(dev->model->asic_type, fast_yres, exposure, - dev->motor.base_ydpi, step_multiplier, - motor_profile); - gl843_send_slope_table(dev, STOP_TABLE, fast_table.table, fast_table.steps_count); + const auto* fast_profile = get_motor_profile_ptr(dev->motor.fast_profiles, 0, session); + if (fast_profile == nullptr) { + fast_profile = &motor_profile; + } + + auto fast_table = create_slope_table_fastest(dev->model->asic_type, step_multiplier, + *fast_profile); + gl843_send_slope_table(dev, FAST_TABLE, fast_table.table, fast_table.steps_count); gl843_send_slope_table(dev, HOME_TABLE, fast_table.table, fast_table.steps_count); - reg->set8(REG_FSHDEC, fast_table.steps_count / step_multiplier); reg->set8(REG_FMOVNO, fast_table.steps_count / step_multiplier); + if (motor_profile.motor_vref != -1 && fast_profile->motor_vref != 1) { + std::uint8_t vref = 0; + vref |= (motor_profile.motor_vref << REG_0x80S_TABLE1_NORMAL) & REG_0x80_TABLE1_NORMAL; + vref |= (motor_profile.motor_vref << REG_0x80S_TABLE2_BACK) & REG_0x80_TABLE2_BACK; + vref |= (fast_profile->motor_vref << REG_0x80S_TABLE4_FAST) & REG_0x80_TABLE4_FAST; + vref |= (fast_profile->motor_vref << REG_0x80S_TABLE5_GO_HOME) & REG_0x80_TABLE5_GO_HOME; + reg->set8(REG_0x80, vref); + } + /* substract acceleration distance from feedl */ feedl=feed_steps; feedl <<= static_cast(motor_profile.step_type); @@ -934,14 +890,14 @@ static void gl843_init_motor_regs_scan(Genesys_Device* dev, r->value |= scan_dummy; /* dummy lines */ reg->set8_mask(REG_0x67, static_cast(motor_profile.step_type) << REG_0x67S_STEPSEL, 0xc0); - reg->set8_mask(REG_0x68, static_cast(motor_profile.step_type) << REG_0x68S_FSTPSEL, 0xc0); + reg->set8_mask(REG_0x68, static_cast(fast_profile->step_type) << REG_0x68S_FSTPSEL, 0xc0); // steps for STOP table reg->set8(REG_FMOVDEC, fast_table.steps_count / step_multiplier); /* Vref XXX STEF XXX : optical divider or step type ? */ r = sanei_genesys_get_address (reg, 0x80); - if (!(dev->model->flags & GENESYS_FLAG_FULL_HWDPI_MODE)) + if (!has_flag(dev->model->flags, ModelFlag::FULL_HWDPI_MODE)) { r->value = 0x50; coeff = sensor.get_hwdpi_divisor_for_dpi(scan_yres); @@ -1016,8 +972,8 @@ static void gl843_init_optical_regs_scan(Genesys_Device* dev, const Genesys_Sens regs_set_optical_off(dev->model->asic_type, *reg); r = sanei_genesys_get_address (reg, REG_0x01); if (has_flag(session.params.flags, ScanFlag::DISABLE_SHADING) || - (dev->model->flags & GENESYS_FLAG_NO_CALIBRATION || - (dev->model->flags & GENESYS_FLAG_CALIBRATION_HOST_SIDE))) + has_flag(dev->model->flags, ModelFlag::NO_CALIBRATION) || + session.use_host_side_calib) { r->value &= ~REG_0x01_DVDSET; } else { @@ -1029,6 +985,8 @@ static void gl843_init_optical_regs_scan(Genesys_Device* dev, const Genesys_Sens use_shdarea = session.params.xres <= 600; } else if (dev->model->model_id == ModelId::CANON_8400F) { use_shdarea = session.params.xres <= 400; + } else if (dev->model->model_id == ModelId::CANON_8600F) { + use_shdarea = true; } if (use_shdarea) { r->value |= REG_0x01_SHDAREA; @@ -1170,9 +1128,7 @@ void CommandSetGl843::init_regs_for_scan_session(Genesys_Device* dev, const Gene if (exposure < 0) { throw std::runtime_error("Exposure not defined in sensor definition"); } - const auto& motor_profile = sanei_genesys_get_motor_profile(*gl843_motor_profiles, - dev->model->motor_id, - exposure); + const auto& motor_profile = get_motor_profile(dev->motor.profiles, exposure, session); DBG(DBG_info, "%s : exposure=%d pixels\n", __func__, exposure); DBG(DBG_info, "%s : scan_step_type=%d\n", __func__, @@ -1196,16 +1152,13 @@ void CommandSetGl843::init_regs_for_scan_session(Genesys_Device* dev, const Gene mflags |= MotorFlag::REVERSE; } - unsigned scan_lines = dev->model->is_cis ? session.output_line_count * session.params.channels - : session.output_line_count; - - gl843_init_motor_regs_scan(dev, sensor, reg, motor_profile, exposure, slope_dpi, - scan_lines, dummy, session.params.starty, mflags); + gl843_init_motor_regs_scan(dev, sensor, session, reg, motor_profile, exposure, slope_dpi, + session.optical_line_count, dummy, session.params.starty, mflags); dev->read_buffer.clear(); dev->read_buffer.alloc(session.buffer_size_read); - build_image_pipeline(dev, session); + build_image_pipeline(dev, sensor, session); dev->read_active = true; @@ -1217,6 +1170,18 @@ void CommandSetGl843::init_regs_for_scan_session(Genesys_Device* dev, const Gene DBG(DBG_info, "%s: total bytes to send = %zu\n", __func__, dev->total_bytes_to_read); } +static float get_model_x_offset_ta(const Genesys_Device& dev, + const Genesys_Settings& settings) +{ + if (dev.model->model_id == ModelId::CANON_8600F && settings.xres == 4800) { + return 85.0f; + } + if (dev.model->model_id == ModelId::CANON_4400F && settings.xres == 4800) { + return dev.model->x_offset_ta - 10.0; + } + return dev.model->x_offset_ta; +} + ScanSession CommandSetGl843::calculate_scan_session(const Genesys_Device* dev, const Genesys_Sensor& sensor, const Genesys_Settings& settings) const @@ -1224,33 +1189,55 @@ ScanSession CommandSetGl843::calculate_scan_session(const Genesys_Device* dev, DBG_HELPER(dbg); debug_dump(DBG_info, settings); - int start; - - /* we have 2 domains for ccd: xres below or above half ccd max dpi */ - unsigned ccd_size_divisor = sensor.get_ccd_size_divisor_for_dpi(settings.xres); + ScanFlag flags = ScanFlag::NONE; + float move = 0.0f; if (settings.scan_method == ScanMethod::TRANSPARENCY || settings.scan_method == ScanMethod::TRANSPARENCY_INFRARED) { - start = static_cast(dev->model->x_offset_ta); + // note: move_to_ta() function has already been called and the sensor is at the + // transparency adapter + if (!dev->ignore_offsets) { + move = dev->model->y_offset_ta - dev->model->y_offset_sensor_to_ta; + } + flags |= ScanFlag::USE_XPA; } else { - start = static_cast(dev->model->x_offset); + if (!dev->ignore_offsets) { + move = dev->model->y_offset; + } } - if (dev->model->model_id == ModelId::CANON_8600F) + move += settings.tl_y; + + int move_dpi = dev->motor.base_ydpi; + move = static_cast((move * move_dpi) / MM_PER_INCH); + + float start = 0.0f; + if (settings.scan_method==ScanMethod::TRANSPARENCY || + settings.scan_method == ScanMethod::TRANSPARENCY_INFRARED) + { + start = get_model_x_offset_ta(*dev, settings); + } else { + start = dev->model->x_offset; + } + start = start + settings.tl_x; + + if ((dev->model->model_id == ModelId::CANON_4400F && + settings.scan_method == ScanMethod::TRANSPARENCY) || + dev->model->model_id == ModelId::CANON_8400F || + dev->model->model_id == ModelId::CANON_8600F) { // FIXME: this is probably just an artifact of a bug elsewhere - start /= ccd_size_divisor; + start /= sensor.get_ccd_size_divisor_for_dpi(settings.xres); } - start += static_cast(settings.tl_x); - start = static_cast((start * sensor.optical_res) / MM_PER_INCH); + start = static_cast((start * settings.xres) / MM_PER_INCH); ScanSession session; session.params.xres = settings.xres; session.params.yres = settings.yres; - session.params.startx = start; // not used - session.params.starty = 0; // not used + session.params.startx = static_cast(start); + session.params.starty = static_cast(move); session.params.pixels = settings.pixels; session.params.requested_pixels = settings.requested_pixels; session.params.lines = settings.lines; @@ -1259,8 +1246,7 @@ ScanSession CommandSetGl843::calculate_scan_session(const Genesys_Device* dev, session.params.scan_method = settings.scan_method; session.params.scan_mode = settings.scan_mode; session.params.color_filter = settings.color_filter; - session.params.flags = ScanFlag::NONE; - + session.params.flags = flags; compute_session(dev, session, sensor); return session; @@ -1363,194 +1349,6 @@ void CommandSetGl843::detect_document_end(Genesys_Device* dev) const } } -// enables or disables XPA slider motor -void gl843_set_xpa_motor_power(Genesys_Device* dev, Genesys_Register_Set& regs, bool set) -{ - DBG_HELPER(dbg); - uint8_t val; - - if (dev->model->model_id == ModelId::CANON_8400F) { - - if (set) { - val = dev->interface->read_register(0x6c); - val &= ~(REG_0x6C_GPIO16 | REG_0x6C_GPIO13); - if (dev->session.output_resolution >= 2400) { - val &= ~REG_0x6C_GPIO10; - } - dev->interface->write_register(0x6c, val); - - val = dev->interface->read_register(0xa9); - val |= REG_0xA9_GPO30; - val &= ~REG_0xA9_GPO29; - dev->interface->write_register(0xa9, val); - } else { - val = dev->interface->read_register(0x6c); - val |= REG_0x6C_GPIO16 | REG_0x6C_GPIO13; - dev->interface->write_register(0x6c, val); - - val = dev->interface->read_register(0xa9); - val &= ~REG_0xA9_GPO30; - val |= REG_0xA9_GPO29; - dev->interface->write_register(0xa9, val); - } - } else if (dev->model->model_id == ModelId::CANON_8600F) { - if (set) { - val = dev->interface->read_register(REG_0x6C); - val &= ~REG_0x6C_GPIO14; - if (dev->session.output_resolution >= 2400) { - val |= REG_0x6C_GPIO10; - } - dev->interface->write_register(REG_0x6C, val); - - val = dev->interface->read_register(REG_0xA6); - val |= REG_0xA6_GPIO17; - val &= ~REG_0xA6_GPIO23; - dev->interface->write_register(REG_0xA6, val); - } else { - val = dev->interface->read_register(REG_0x6C); - val |= REG_0x6C_GPIO14; - val &= ~REG_0x6C_GPIO10; - dev->interface->write_register(REG_0x6C, val); - - val = dev->interface->read_register(REG_0xA6); - val &= ~REG_0xA6_GPIO17; - val &= ~REG_0xA6_GPIO23; - dev->interface->write_register(REG_0xA6, val); - } - } else if (dev->model->model_id == ModelId::HP_SCANJET_G4050) { - if (set) { - // set MULTFILM et GPOADF - val = dev->interface->read_register(REG_0x6B); - val |=REG_0x6B_MULTFILM|REG_0x6B_GPOADF; - dev->interface->write_register(REG_0x6B, val); - - val = dev->interface->read_register(REG_0x6C); - val &= ~REG_0x6C_GPIO15; - dev->interface->write_register(REG_0x6C, val); - - /* Motor power ? No move at all without this one */ - val = dev->interface->read_register(REG_0xA6); - val |= REG_0xA6_GPIO20; - dev->interface->write_register(REG_0xA6, val); - - val = dev->interface->read_register(REG_0xA8); - val &= ~REG_0xA8_GPO27; - dev->interface->write_register(REG_0xA8, val); - - val = dev->interface->read_register(REG_0xA9); - val |= REG_0xA9_GPO32|REG_0xA9_GPO31; - dev->interface->write_register(REG_0xA9, val); - } else { - // unset GPOADF - val = dev->interface->read_register(REG_0x6B); - val &= ~REG_0x6B_GPOADF; - dev->interface->write_register(REG_0x6B, val); - - val = dev->interface->read_register(REG_0xA8); - val |= REG_0xA8_GPO27; - dev->interface->write_register(REG_0xA8, val); - - val = dev->interface->read_register(REG_0xA9); - val &= ~REG_0xA9_GPO31; - dev->interface->write_register(REG_0xA9, val); - } - } - regs.state.is_xpa_motor_on = set; -} - - -/** @brief light XPA lamp - * toggle gpios to switch off regular lamp and light on the - * XPA light - * @param dev device to set up - */ -static void gl843_set_xpa_lamp_power(Genesys_Device* dev, bool set) -{ - DBG_HELPER(dbg); - - struct LampSettings { - ModelId model_id; - ScanMethod scan_method; - GenesysRegisterSettingSet regs_on; - GenesysRegisterSettingSet regs_off; - }; - - // FIXME: BUG: we're not clearing the registers to the previous state when returning back when - // turning off the lamp - LampSettings settings[] = { - { ModelId::CANON_8400F, ScanMethod::TRANSPARENCY, { - { 0xa6, 0x34, 0xf4 }, - }, { - { 0xa6, 0x40, 0x70 }, - } - }, - { ModelId::CANON_8400F, ScanMethod::TRANSPARENCY_INFRARED, { - { 0x6c, 0x40, 0x40 }, - { 0xa6, 0x01, 0xff }, - }, { - { 0x6c, 0x00, 0x40 }, - { 0xa6, 0x00, 0xff }, - } - }, - { ModelId::CANON_8600F, ScanMethod::TRANSPARENCY, { - { 0xa6, 0x34, 0xf4 }, - { 0xa7, 0xe0, 0xe0 }, - }, { - { 0xa6, 0x40, 0x70 }, - } - }, - { ModelId::CANON_8600F, ScanMethod::TRANSPARENCY_INFRARED, { - { 0xa6, 0x00, 0xc0 }, - { 0xa7, 0xe0, 0xe0 }, - { 0x6c, 0x80, 0x80 }, - }, { - { 0xa6, 0x00, 0xc0 }, - { 0x6c, 0x00, 0x80 }, - } - }, - { ModelId::PLUSTEK_OPTICFILM_7200I, ScanMethod::TRANSPARENCY, { - }, { - { 0xa6, 0x40, 0x70 }, // BUG: remove this cleanup write, it was enabled by accident - } - }, - { ModelId::PLUSTEK_OPTICFILM_7200I, ScanMethod::TRANSPARENCY_INFRARED, { - { 0xa8, 0x07, 0x07 }, - }, { - { 0xa8, 0x00, 0x07 }, - } - }, - { ModelId::PLUSTEK_OPTICFILM_7300, ScanMethod::TRANSPARENCY, {}, {} }, - { ModelId::PLUSTEK_OPTICFILM_7500I, ScanMethod::TRANSPARENCY, {}, {} }, - { ModelId::PLUSTEK_OPTICFILM_7500I, ScanMethod::TRANSPARENCY_INFRARED, { - { 0xa8, 0x07, 0x07 }, - }, { - { 0xa8, 0x00, 0x07 }, - } - }, - }; - - for (const auto& setting : settings) { - if (setting.model_id == dev->model->model_id && - setting.scan_method == dev->settings.scan_method) - { - apply_reg_settings_to_device(*dev, set ? setting.regs_on : setting.regs_off); - return; - } - } - - // BUG: we're currently calling the function in shut down path of regular lamp - if (set) { - throw SaneException("Unexpected code path entered"); - } - - GenesysRegisterSettingSet regs = { - { 0xa6, 0x40, 0x70 }, - }; - apply_reg_settings_to_device(*dev, regs); - // TODO: throw exception when we're only calling this function in error return path - // throw SaneException("Could not find XPA lamp settings"); -} - // Send the low-level scan command void CommandSetGl843::begin_scan(Genesys_Device* dev, const Genesys_Sensor& sensor, Genesys_Register_Set* reg, bool start_motor) const @@ -1580,30 +1378,44 @@ void CommandSetGl843::begin_scan(Genesys_Device* dev, const Genesys_Sensor& sens } if (reg->state.is_xpa_on && reg->state.is_lamp_on) { - gl843_set_xpa_lamp_power(dev, true); + dev->cmd_set->set_xpa_lamp_power(*dev, true); } if (reg->state.is_xpa_on) { - gl843_set_xpa_motor_power(dev, *reg, true); + dev->cmd_set->set_motor_mode(*dev, *reg, MotorMode::PRIMARY_AND_SECONDARY); } // blinking led dev->interface->write_register(REG_0x7E, 0x01); break; case GpioId::CANON_8400F: - case GpioId::CANON_8600F: + if (dev->session.params.xres == 3200) + { + GenesysRegisterSettingSet reg_settings = { + { 0x6c, 0x00, 0x02 }, + }; + apply_reg_settings_to_device(*dev, reg_settings); + } if (reg->state.is_xpa_on && reg->state.is_lamp_on) { - gl843_set_xpa_lamp_power(dev, true); + dev->cmd_set->set_xpa_lamp_power(*dev, true); } if (reg->state.is_xpa_on) { - gl843_set_xpa_motor_power(dev, *reg, true); + dev->cmd_set->set_motor_mode(*dev, *reg, MotorMode::PRIMARY_AND_SECONDARY); + } + break; + case GpioId::CANON_8600F: + if (reg->state.is_xpa_on && reg->state.is_lamp_on) { + dev->cmd_set->set_xpa_lamp_power(*dev, true); + } + if (reg->state.is_xpa_on) { + dev->cmd_set->set_motor_mode(*dev, *reg, MotorMode::PRIMARY_AND_SECONDARY); } break; case GpioId::PLUSTEK_OPTICFILM_7200I: case GpioId::PLUSTEK_OPTICFILM_7300: case GpioId::PLUSTEK_OPTICFILM_7500I: { if (reg->state.is_xpa_on && reg->state.is_lamp_on) { - gl843_set_xpa_lamp_power(dev, true); + dev->cmd_set->set_xpa_lamp_power(*dev, true); } break; } @@ -1612,8 +1424,7 @@ void CommandSetGl843::begin_scan(Genesys_Device* dev, const Genesys_Sensor& sens break; } - // clear scan and feed count - dev->interface->write_register(REG_0x0D, REG_0x0D_CLRLNCNT | REG_0x0D_CLRMCNT); + scanner_clear_scan_and_feed_counts(*dev); // enable scan and motor uint8_t val = dev->interface->read_register(REG_0x01); @@ -1622,11 +1433,26 @@ void CommandSetGl843::begin_scan(Genesys_Device* dev, const Genesys_Sensor& sens scanner_start_action(*dev, start_motor); - if (reg->state.is_motor_on) { - dev->advance_head_pos_by_session(ScanHeadId::PRIMARY); - } - if (reg->state.is_xpa_motor_on) { - dev->advance_head_pos_by_session(ScanHeadId::SECONDARY); + switch (reg->state.motor_mode) { + case MotorMode::PRIMARY: { + if (reg->state.is_motor_on) { + dev->advance_head_pos_by_session(ScanHeadId::PRIMARY); + } + break; + } + case MotorMode::PRIMARY_AND_SECONDARY: { + if (reg->state.is_motor_on) { + dev->advance_head_pos_by_session(ScanHeadId::PRIMARY); + dev->advance_head_pos_by_session(ScanHeadId::SECONDARY); + } + break; + } + case MotorMode::SECONDARY: { + if (reg->state.is_motor_on) { + dev->advance_head_pos_by_session(ScanHeadId::SECONDARY); + } + break; + } } } @@ -1640,10 +1466,8 @@ void CommandSetGl843::end_scan(Genesys_Device* dev, Genesys_Register_Set* reg, // post scan gpio dev->interface->write_register(0x7e, 0x00); - // turn off XPA lamp if needed - // BUG: the if condition below probably shouldn't be enabled when XPA is off - if (reg->state.is_xpa_on || reg->state.is_lamp_on) { - gl843_set_xpa_lamp_power(dev, false); + if (reg->state.is_xpa_on) { + dev->cmd_set->set_xpa_lamp_power(*dev, false); } if (!dev->model->is_sheetfed) { @@ -1658,122 +1482,20 @@ void CommandSetGl843::move_back_home(Genesys_Device* dev, bool wait_until_home) scanner_move_back_home(*dev, wait_until_home); } -// Automatically set top-left edge of the scan area by scanning a 200x200 pixels area at 600 dpi -// from very top of scanner -void CommandSetGl843::search_start_position(Genesys_Device* dev) const +static bool should_calibrate_only_active_area(const Genesys_Device& dev, + const Genesys_Settings& settings) { - DBG_HELPER(dbg); - Genesys_Register_Set local_reg; - - int pixels = 600; - int dpi = 300; - - local_reg = dev->reg; - - /* sets for a 200 lines * 600 pixels */ - /* normal scan with no shading */ - - // FIXME: the current approach of doing search only for one resolution does not work on scanners - // whith employ different sensors with potentially different settings. - const auto& sensor = sanei_genesys_find_sensor(dev, dpi, 1, dev->model->default_method); - - ScanSession session; - session.params.xres = dpi; - session.params.yres = dpi; - session.params.startx = 0; - session.params.starty = 0; // we should give a small offset here - ~60 steps - session.params.pixels = 600; - session.params.lines = dev->model->search_lines; - session.params.depth = 8; - session.params.channels = 1; - session.params.scan_method = dev->settings.scan_method; - session.params.scan_mode = ScanColorMode::GRAY; - session.params.color_filter = ColorFilter::GREEN; - session.params.flags = ScanFlag::DISABLE_SHADING | - ScanFlag::DISABLE_GAMMA | - ScanFlag::IGNORE_LINE_DISTANCE | - ScanFlag::DISABLE_BUFFER_FULL_MOVE; - compute_session(dev, session, sensor); - - init_regs_for_scan_session(dev, sensor, &local_reg, session); - - // send to scanner - dev->interface->write_registers(local_reg); - - dev->cmd_set->begin_scan(dev, sensor, &local_reg, true); - - if (is_testing_mode()) { - dev->interface->test_checkpoint("search_start_position"); - end_scan(dev, &local_reg, true); - dev->reg = local_reg; - return; - } - - wait_until_buffer_non_empty(dev); - - // now we're on target, we can read data - Image image = read_unshuffled_image_from_scanner(dev, session, session.output_total_bytes_raw); - - scanner_stop_action_no_move(*dev, local_reg); - - if (DBG_LEVEL >= DBG_data) { - sanei_genesys_write_pnm_file("gl843_search_position.pnm", image); - } - - dev->cmd_set->end_scan(dev, &local_reg, true); - - /* update regs to copy ASIC internal state */ - dev->reg = local_reg; - - for (auto& sensor_update : - sanei_genesys_find_sensors_all_for_write(dev, dev->model->default_method)) + if (settings.scan_method == ScanMethod::TRANSPARENCY || + settings.scan_method == ScanMethod::TRANSPARENCY_INFRARED) { - sanei_genesys_search_reference_point(dev, sensor_update, image.get_row_ptr(0), 0, dpi, - pixels, dev->model->search_lines); + if (dev.model->model_id == ModelId::CANON_4400F && settings.xres >= 4800) { + return true; + } + if (dev.model->model_id == ModelId::CANON_8600F && settings.xres == 4800) { + return true; + } } -} - -// sets up register for coarse gain calibration -// todo: check it for scanners using it -void CommandSetGl843::init_regs_for_coarse_calibration(Genesys_Device* dev, - const Genesys_Sensor& sensor, - Genesys_Register_Set& regs) const -{ - DBG_HELPER(dbg); - - ScanFlag flags = ScanFlag::DISABLE_SHADING | - ScanFlag::DISABLE_GAMMA | - ScanFlag::SINGLE_LINE | - ScanFlag::IGNORE_LINE_DISTANCE; - - if (dev->settings.scan_method == ScanMethod::TRANSPARENCY || - dev->settings.scan_method == ScanMethod::TRANSPARENCY_INFRARED) { - flags |= ScanFlag::USE_XPA; - } - - ScanSession session; - session.params.xres = dev->settings.xres; - session.params.yres = dev->settings.yres; - session.params.startx = 0; - session.params.starty = 0; - session.params.pixels = sensor.optical_res / sensor.ccd_pixels_per_system_pixel(); - session.params.lines = 20; - session.params.depth = 16; - session.params.channels = dev->settings.get_channels(); - session.params.scan_method = dev->settings.scan_method; - session.params.scan_mode = dev->settings.scan_mode; - session.params.color_filter = dev->settings.color_filter; - session.params.flags = flags; - compute_session(dev, session, sensor); - - init_regs_for_scan_session(dev, sensor, ®s, session); - - sanei_genesys_set_motor_power(regs, false); - - DBG(DBG_info, "%s: optical sensor res: %d dpi, actual res: %d\n", __func__, - sensor.optical_res / sensor.ccd_pixels_per_system_pixel(), dev->settings.xres); - - dev->interface->write_registers(regs); + return false; } // init registers for shading calibration shading calibration is done at dpihw @@ -1781,56 +1503,45 @@ void CommandSetGl843::init_regs_for_shading(Genesys_Device* dev, const Genesys_S Genesys_Register_Set& regs) const { DBG_HELPER(dbg); - int move, resolution, dpihw, factor; - - /* initial calibration reg values */ - regs = dev->reg; - - dev->calib_channels = 3; + int move; + float calib_size_mm = 0; if (dev->settings.scan_method == ScanMethod::TRANSPARENCY || dev->settings.scan_method == ScanMethod::TRANSPARENCY_INFRARED) { - dev->calib_lines = dev->model->shading_ta_lines; + calib_size_mm = dev->model->y_size_calib_ta_mm; } else { - dev->calib_lines = dev->model->shading_lines; + calib_size_mm = dev->model->y_size_calib_mm; } - dpihw = sensor.get_logical_hwdpi(dev->settings.xres); - factor=sensor.optical_res/dpihw; - resolution=dpihw; + unsigned resolution = sensor.get_register_hwdpi(dev->settings.xres); - const auto& calib_sensor = sanei_genesys_find_sensor(dev, resolution, dev->calib_channels, + unsigned channels = 3; + const auto& calib_sensor = sanei_genesys_find_sensor(dev, resolution, channels, dev->settings.scan_method); - if ((dev->settings.scan_method == ScanMethod::TRANSPARENCY || - dev->settings.scan_method == ScanMethod::TRANSPARENCY_INFRARED) && - dev->model->model_id == ModelId::CANON_8600F && - dev->settings.xres == 4800) - { - float offset = static_cast(dev->model->x_offset_ta); + unsigned calib_pixels = 0; + unsigned calib_pixels_offset = 0; + + if (should_calibrate_only_active_area(*dev, dev->settings)) { + float offset = get_model_x_offset_ta(*dev, dev->settings); offset /= calib_sensor.get_ccd_size_divisor_for_dpi(resolution); - offset = static_cast((offset * calib_sensor.optical_res) / MM_PER_INCH); + offset = static_cast((offset * resolution) / MM_PER_INCH); - float size = static_cast(dev->model->x_size_ta); + float size = dev->model->x_size_ta; size /= calib_sensor.get_ccd_size_divisor_for_dpi(resolution); - size = static_cast((size * calib_sensor.optical_res) / MM_PER_INCH); + size = static_cast((size * resolution) / MM_PER_INCH); - dev->calib_pixels_offset = static_cast(offset); - dev->calib_pixels = static_cast(size); + calib_pixels_offset = static_cast(offset); + calib_pixels = static_cast(size); + } else { + calib_pixels_offset = 0; + calib_pixels = dev->model->x_size_calib_mm * resolution / MM_PER_INCH; } - else - { - dev->calib_pixels_offset = 0; - dev->calib_pixels = calib_sensor.sensor_pixels / factor; - } - - dev->calib_resolution = resolution; ScanFlag flags = ScanFlag::DISABLE_SHADING | ScanFlag::DISABLE_GAMMA | - ScanFlag::DISABLE_BUFFER_FULL_MOVE | - ScanFlag::IGNORE_LINE_DISTANCE; + ScanFlag::DISABLE_BUFFER_FULL_MOVE; if (dev->settings.scan_method == ScanMethod::TRANSPARENCY || dev->settings.scan_method == ScanMethod::TRANSPARENCY_INFRARED) @@ -1844,16 +1555,17 @@ void CommandSetGl843::init_regs_for_shading(Genesys_Device* dev, const Genesys_S } move = static_cast((move * resolution) / MM_PER_INCH); + unsigned calib_lines = static_cast(calib_size_mm * resolution / MM_PER_INCH); ScanSession session; session.params.xres = resolution; session.params.yres = resolution; - session.params.startx = dev->calib_pixels_offset; + session.params.startx = calib_pixels_offset; session.params.starty = move; - session.params.pixels = dev->calib_pixels; - session.params.lines = dev->calib_lines; + session.params.pixels = calib_pixels; + session.params.lines = calib_lines; session.params.depth = 16; - session.params.channels = dev->calib_channels; + session.params.channels = channels; session.params.scan_method = dev->settings.scan_method; session.params.scan_mode = dev->settings.scan_mode; session.params.color_filter = dev->settings.color_filter; @@ -1862,89 +1574,18 @@ void CommandSetGl843::init_regs_for_shading(Genesys_Device* dev, const Genesys_S init_regs_for_scan_session(dev, calib_sensor, ®s, session); - // the pixel number may be updated to conform to scanner constraints - dev->calib_pixels = session.output_pixels; - dev->calib_session = session; - dev->calib_total_bytes_to_read = session.output_total_bytes_raw; - - dev->interface->write_registers(regs); } /** @brief set up registers for the actual scan */ -void CommandSetGl843::init_regs_for_scan(Genesys_Device* dev, const Genesys_Sensor& sensor) const +void CommandSetGl843::init_regs_for_scan(Genesys_Device* dev, const Genesys_Sensor& sensor, + Genesys_Register_Set& regs) const { DBG_HELPER(dbg); - float move; - int move_dpi; - float start; + ScanSession session = calculate_scan_session(dev, sensor, dev->settings); - debug_dump(DBG_info, dev->settings); - - move_dpi = dev->motor.base_ydpi; - - ScanFlag flags = ScanFlag::NONE; - - if (dev->settings.scan_method == ScanMethod::TRANSPARENCY || - dev->settings.scan_method == ScanMethod::TRANSPARENCY_INFRARED) - { - // note: move_to_ta() function has already been called and the sensor is at the - // transparency adapter - if (dev->ignore_offsets) { - move = 0; - } else { - move = static_cast(dev->model->y_offset_ta - dev->model->y_offset_sensor_to_ta); - } - flags |= ScanFlag::USE_XPA; - } else { - if (dev->ignore_offsets) { - move = 0; - } else { - move = static_cast(dev->model->y_offset); - } - } - - move += static_cast(dev->settings.tl_y); - move = static_cast((move * move_dpi) / MM_PER_INCH); - DBG(DBG_info, "%s: move=%f steps\n", __func__, move); - - /* start */ - if (dev->settings.scan_method==ScanMethod::TRANSPARENCY || - dev->settings.scan_method == ScanMethod::TRANSPARENCY_INFRARED) - { - start = static_cast(dev->model->x_offset_ta); - } else { - start = static_cast(dev->model->x_offset); - } - - if (dev->model->model_id == ModelId::CANON_8400F || - dev->model->model_id == ModelId::CANON_8600F) - { - // FIXME: this is probably just an artifact of a bug elsewhere - start /= sensor.get_ccd_size_divisor_for_dpi(dev->settings.xres); - } - - start = static_cast(start + dev->settings.tl_x); - start = static_cast((start * sensor.optical_res) / MM_PER_INCH); - - ScanSession session; - session.params.xres = dev->settings.xres; - session.params.yres = dev->settings.yres; - session.params.startx = static_cast(start); - session.params.starty = static_cast(move); - session.params.pixels = dev->settings.pixels; - session.params.requested_pixels = dev->settings.requested_pixels; - session.params.lines = dev->settings.lines; - session.params.depth = dev->settings.depth; - session.params.channels = dev->settings.get_channels(); - session.params.scan_method = dev->settings.scan_method; - session.params.scan_mode = dev->settings.scan_mode; - session.params.color_filter = dev->settings.color_filter; - session.params.flags = flags; - compute_session(dev, session, sensor); - - init_regs_for_scan_session(dev, sensor, &dev->reg, session); + init_regs_for_scan_session(dev, sensor, ®s, session); } /** @@ -1975,8 +1616,7 @@ void CommandSetGl843::send_gamma_table(Genesys_Device* dev, const Genesys_Sensor gamma[i * 2 + size * 4 + 1] = (bgamma[i] >> 8) & 0xff; } - dev->interface->write_gamma(0x28, 0x0000, gamma.data(), size * 2 * 3, - ScannerInterface::FLAG_SWAP_REGISTERS); + dev->interface->write_gamma(0x28, 0x0000, gamma.data(), size * 2 * 3); } /* this function does the led calibration by scanning one line of the calibration @@ -1988,7 +1628,6 @@ SensorExposure CommandSetGl843::led_calibration(Genesys_Device* dev, const Genes Genesys_Register_Set& regs) const { DBG_HELPER(dbg); - int num_pixels; int avg[3], avga, avge; int turn; uint16_t expr, expg, expb; @@ -2000,17 +1639,15 @@ SensorExposure CommandSetGl843::led_calibration(Genesys_Device* dev, const Genes auto calib_sensor = sanei_genesys_find_sensor(dev, sensor.optical_res, channels, dev->settings.scan_method); - num_pixels = (calib_sensor.sensor_pixels * calib_sensor.optical_res) / calib_sensor.optical_res; - /* initial calibration reg values */ regs = dev->reg; ScanSession session; - session.params.xres = calib_sensor.sensor_pixels; + session.params.xres = calib_sensor.optical_res; session.params.yres = dev->motor.base_ydpi; session.params.startx = 0; session.params.starty = 0; - session.params.pixels = num_pixels; + session.params.pixels = dev->model->x_size_calib_mm * calib_sensor.optical_res / MM_PER_INCH; session.params.lines = 1; session.params.depth = 16; session.params.channels = channels; @@ -2020,7 +1657,8 @@ SensorExposure CommandSetGl843::led_calibration(Genesys_Device* dev, const Genes session.params.flags = ScanFlag::DISABLE_SHADING | ScanFlag::DISABLE_GAMMA | ScanFlag::SINGLE_LINE | - ScanFlag::IGNORE_LINE_DISTANCE; + ScanFlag::IGNORE_STAGGER_OFFSET | + ScanFlag::IGNORE_COLOR_OFFSET; compute_session(dev, session, calib_sensor); init_regs_for_scan_session(dev, calib_sensor, ®s, session); @@ -2191,35 +1829,38 @@ void CommandSetGl843::offset_calibration(Genesys_Device* dev, const Genesys_Sens lines = 8; // compute divider factor to compute final pixels number - dpihw = sensor.get_logical_hwdpi(dev->settings.xres); + dpihw = sensor.get_register_hwdpi(dev->settings.xres); factor = sensor.optical_res / dpihw; resolution = dpihw; const auto& calib_sensor = sanei_genesys_find_sensor(dev, resolution, channels, dev->settings.scan_method); - int target_pixels = calib_sensor.sensor_pixels / factor; + int target_pixels = dev->model->x_size_calib_mm * resolution / MM_PER_INCH; int start_pixel = 0; black_pixels = calib_sensor.black_pixels / factor; - if ((dev->settings.scan_method == ScanMethod::TRANSPARENCY || - dev->settings.scan_method == ScanMethod::TRANSPARENCY_INFRARED) && - dev->model->model_id == ModelId::CANON_8600F && - dev->settings.xres == 4800) - { - start_pixel = static_cast(dev->model->x_offset_ta); - start_pixel /= calib_sensor.get_ccd_size_divisor_for_dpi(resolution); - start_pixel = static_cast((start_pixel * calib_sensor.optical_res) / MM_PER_INCH); + if (should_calibrate_only_active_area(*dev, dev->settings)) { + float offset = get_model_x_offset_ta(*dev, dev->settings); + offset /= calib_sensor.get_ccd_size_divisor_for_dpi(resolution); + start_pixel = static_cast((offset * resolution) / MM_PER_INCH); - target_pixels = static_cast(dev->model->x_size_ta); - target_pixels /= calib_sensor.get_ccd_size_divisor_for_dpi(resolution); - target_pixels = static_cast((target_pixels * calib_sensor.optical_res) / MM_PER_INCH); + float size = dev->model->x_size_ta; + size /= calib_sensor.get_ccd_size_divisor_for_dpi(resolution); + target_pixels = static_cast((size * resolution) / MM_PER_INCH); + } + + if (dev->model->model_id == ModelId::CANON_4400F && + dev->settings.scan_method == ScanMethod::FLATBED) + { + return; } ScanFlag flags = ScanFlag::DISABLE_SHADING | ScanFlag::DISABLE_GAMMA | ScanFlag::SINGLE_LINE | - ScanFlag::IGNORE_LINE_DISTANCE; + ScanFlag::IGNORE_STAGGER_OFFSET | + ScanFlag::IGNORE_COLOR_OFFSET; if (dev->settings.scan_method == ScanMethod::TRANSPARENCY || dev->settings.scan_method == ScanMethod::TRANSPARENCY_INFRARED) @@ -2403,7 +2044,7 @@ void CommandSetGl843::coarse_gain_calibration(Genesys_Device* dev, const Genesys Genesys_Register_Set& regs, int dpi) const { DBG_HELPER_ARGS(dbg, "dpi = %d", dpi); - int factor, dpihw; + int dpihw; float coeff; int lines; int resolution; @@ -2411,8 +2052,7 @@ void CommandSetGl843::coarse_gain_calibration(Genesys_Device* dev, const Genesys if (dev->frontend.layout.type != FrontendType::WOLFSON) return; - dpihw = sensor.get_logical_hwdpi(dpi); - factor=sensor.optical_res/dpihw; + dpihw = sensor.get_register_hwdpi(dpi); // coarse gain calibration is always done in color mode unsigned channels = 3; @@ -2434,12 +2074,12 @@ void CommandSetGl843::coarse_gain_calibration(Genesys_Device* dev, const Genesys } resolution=dpihw; lines=10; - int target_pixels = sensor.sensor_pixels / factor; ScanFlag flags = ScanFlag::DISABLE_SHADING | ScanFlag::DISABLE_GAMMA | ScanFlag::SINGLE_LINE | - ScanFlag::IGNORE_LINE_DISTANCE; + ScanFlag::IGNORE_STAGGER_OFFSET | + ScanFlag::IGNORE_COLOR_OFFSET; if (dev->settings.scan_method == ScanMethod::TRANSPARENCY || dev->settings.scan_method == ScanMethod::TRANSPARENCY_INFRARED) @@ -2455,7 +2095,7 @@ void CommandSetGl843::coarse_gain_calibration(Genesys_Device* dev, const Genesys session.params.yres = resolution; session.params.startx = 0; session.params.starty = 0; - session.params.pixels = target_pixels; + session.params.pixels = dev->model->x_size_calib_mm * resolution / MM_PER_INCH; session.params.lines = lines; session.params.depth = 8; session.params.channels = channels; @@ -2547,21 +2187,18 @@ void CommandSetGl843::init_regs_for_warmup(Genesys_Device* dev, const Genesys_Se int* total_size) const { DBG_HELPER(dbg); - int num_pixels; int dpihw; int resolution; - int factor; /* setup scan */ *channels=3; resolution=600; - dpihw = sensor.get_logical_hwdpi(resolution); + dpihw = sensor.get_register_hwdpi(resolution); resolution=dpihw; const auto& calib_sensor = sanei_genesys_find_sensor(dev, resolution, *channels, dev->settings.scan_method); - factor = calib_sensor.optical_res/dpihw; - num_pixels = calib_sensor.sensor_pixels/(factor*2); + unsigned num_pixels = dev->model->x_size_calib_mm * resolution / MM_PER_INCH / 2; *total_size = num_pixels * 3 * 1; *reg = dev->reg; @@ -2569,7 +2206,7 @@ void CommandSetGl843::init_regs_for_warmup(Genesys_Device* dev, const Genesys_Se ScanSession session; session.params.xres = resolution; session.params.yres = resolution; - session.params.startx = num_pixels/2; + session.params.startx = (num_pixels / 2) * resolution / calib_sensor.optical_res; session.params.starty = 0; session.params.pixels = num_pixels; session.params.lines = 1; @@ -2581,13 +2218,13 @@ void CommandSetGl843::init_regs_for_warmup(Genesys_Device* dev, const Genesys_Se session.params.flags = ScanFlag::DISABLE_SHADING | ScanFlag::DISABLE_GAMMA | ScanFlag::SINGLE_LINE | - ScanFlag::IGNORE_LINE_DISTANCE; + ScanFlag::IGNORE_STAGGER_OFFSET | + ScanFlag::IGNORE_COLOR_OFFSET; compute_session(dev, session, calib_sensor); init_regs_for_scan_session(dev, calib_sensor, reg, session); sanei_genesys_set_motor_power(*reg, false); - dev->interface->write_registers(*reg); } /** @@ -2696,13 +2333,6 @@ void CommandSetGl843::asic_boot(Genesys_Device* dev, bool cold) const /* prevent further writings by bulk write register */ dev->reg.remove_reg(0x0b); - if (dev->model->model_id != ModelId::CANON_8600F) { - // set up end access - // FIXME: this is overwritten in gl843_init_gpio - dev->interface->write_register(REG_0xA7, 0x04); - dev->interface->write_register(REG_0xA9, 0x00); - } - // set RAM read address dev->interface->write_register(REG_0x29, 0x00); dev->interface->write_register(REG_0x2A, 0x00); @@ -2766,7 +2396,8 @@ void CommandSetGl843::move_to_ta(Genesys_Device* dev) const float resolution = resolution_settings.get_min_resolution_y(); unsigned multiplier = 16; - if (dev->model->model_id == ModelId::CANON_8400F) { + if (dev->model->model_id == ModelId::CANON_8400F || + dev->model->model_id == ModelId::CANON_4400F) { multiplier = 4; } unsigned feed = static_cast(multiplier * (dev->model->y_offset_sensor_to_ta * resolution) / @@ -2774,198 +2405,6 @@ void CommandSetGl843::move_to_ta(Genesys_Device* dev) const scanner_move(*dev, dev->model->default_method, feed, Direction::FORWARD); } - -/** @brief search for a full width black or white strip. - * This function searches for a black or white stripe across the scanning area. - * When searching backward, the searched area must completely be of the desired - * color since this area will be used for calibration which scans forward. - * @param dev scanner device - * @param forward true if searching forward, false if searching backward - * @param black true if searching for a black strip, false for a white strip - */ -void CommandSetGl843::search_strip(Genesys_Device* dev, const Genesys_Sensor& sensor, - bool forward, bool black) const -{ - DBG_HELPER_ARGS(dbg, "%s %s", black ? "black" : "white", forward ? "forward" : "reverse"); - unsigned int pixels, lines, channels; - Genesys_Register_Set local_reg; - int dpi; - unsigned int pass, count, found, x, y; - - dev->cmd_set->set_fe(dev, sensor, AFE_SET); - scanner_stop_action(*dev); - - /* set up for a gray scan at lowest dpi */ - dpi = sanei_genesys_get_lowest_dpi(dev); - channels = 1; - - const auto& calib_sensor = sanei_genesys_find_sensor(dev, dpi, channels, - dev->settings.scan_method); - - /* 10 MM */ - /* lines = (10 * dpi) / MM_PER_INCH; */ - /* shading calibation is done with dev->motor.base_ydpi */ - lines = (dev->model->shading_lines * dpi) / dev->motor.base_ydpi; - pixels = (calib_sensor.sensor_pixels * dpi) / calib_sensor.optical_res; - - dev->set_head_pos_zero(ScanHeadId::PRIMARY); - - local_reg = dev->reg; - - ScanSession session; - session.params.xres = dpi; - session.params.yres = dpi; - session.params.startx = 0; - session.params.starty = 0; - session.params.pixels = pixels; - session.params.lines = lines; - session.params.depth = 8; - session.params.channels = channels; - session.params.scan_method = dev->settings.scan_method; - session.params.scan_mode = ScanColorMode::GRAY; - session.params.color_filter = ColorFilter::RED; - session.params.flags = ScanFlag::DISABLE_SHADING | ScanFlag::DISABLE_SHADING; - if (!forward) { - session.params.flags = ScanFlag::REVERSE; - } - compute_session(dev, session, calib_sensor); - - init_regs_for_scan_session(dev, calib_sensor, &local_reg, session); - - dev->interface->write_registers(local_reg); - - dev->cmd_set->begin_scan(dev, calib_sensor, &local_reg, true); - - if (is_testing_mode()) { - dev->interface->test_checkpoint("search_strip"); - scanner_stop_action(*dev); - return; - } - - wait_until_buffer_non_empty(dev); - - // now we're on target, we can read data - auto data = read_unshuffled_image_from_scanner(dev, session, - session.output_total_bytes_raw); - - scanner_stop_action(*dev); - - pass = 0; - if (DBG_LEVEL >= DBG_data) - { - char fn[40]; - std::snprintf(fn, 40, "gl843_search_strip_%s_%s%02d.pnm", - black ? "black" : "white", forward ? "fwd" : "bwd", pass); - sanei_genesys_write_pnm_file(fn, data); - } - - /* loop until strip is found or maximum pass number done */ - found = 0; - while (pass < 20 && !found) - { - dev->interface->write_registers(local_reg); - - // now start scan - dev->cmd_set->begin_scan(dev, calib_sensor, &local_reg, true); - - wait_until_buffer_non_empty(dev); - - // now we're on target, we can read data - data = read_unshuffled_image_from_scanner(dev, session, session.output_total_bytes_raw); - - scanner_stop_action(*dev); - - if (DBG_LEVEL >= DBG_data) - { - char fn[40]; - std::snprintf(fn, 40, "gl843_search_strip_%s_%s%02d.pnm", - black ? "black" : "white", forward ? "fwd" : "bwd", pass); - sanei_genesys_write_pnm_file(fn, data); - } - - /* search data to find black strip */ - /* when searching forward, we only need one line of the searched color since we - * will scan forward. But when doing backward search, we need all the area of the - * same color */ - if (forward) - { - for (y = 0; y < lines && !found; y++) - { - count = 0; - /* count of white/black pixels depending on the color searched */ - for (x = 0; x < pixels; x++) - { - /* when searching for black, detect white pixels */ - if (black && data.get_raw_channel(x, y, 0) > 90) { - count++; - } - /* when searching for white, detect black pixels */ - if (!black && data.get_raw_channel(x, y, 0) < 60) { - count++; - } - } - - /* at end of line, if count >= 3%, line is not fully of the desired color - * so we must go to next line of the buffer */ - /* count*100/pixels < 3 */ - if ((count * 100) / pixels < 3) - { - found = 1; - DBG(DBG_data, "%s: strip found forward during pass %d at line %d\n", __func__, - pass, y); - } - else - { - DBG(DBG_data, "%s: pixels=%d, count=%d (%d%%)\n", __func__, pixels, count, - (100 * count) / pixels); - } - } - } - else /* since calibration scans are done forward, we need the whole area - to be of the required color when searching backward */ - { - count = 0; - for (y = 0; y < lines; y++) - { - /* count of white/black pixels depending on the color searched */ - for (x = 0; x < pixels; x++) - { - // when searching for black, detect white pixels - if (black && data.get_raw_channel(x, y, 0) > 90) { - count++; - } - // when searching for white, detect black pixels - if (!black && data.get_raw_channel(x, y, 0) < 60) { - count++; - } - } - } - - /* at end of area, if count >= 3%, area is not fully of the desired color - * so we must go to next buffer */ - if ((count * 100) / (pixels * lines) < 3) - { - found = 1; - DBG(DBG_data, "%s: strip found backward during pass %d \n", __func__, pass); - } - else - { - DBG(DBG_data, "%s: pixels=%d, count=%d (%d%%)\n", __func__, pixels, count, - (100 * count) / pixels); - } - } - pass++; - } - if (found) - { - DBG(DBG_info, "%s: %s strip found\n", __func__, black ? "black" : "white"); - } - else - { - throw SaneException(SANE_STATUS_UNSUPPORTED, "%s strip not found", black ? "black" : "white"); - } -} - /** * Send shading calibration data. The buffer is considered to always hold values * for all the channels. @@ -3001,7 +2440,7 @@ void CommandSetGl843::send_shading_data(Genesys_Device* dev, const Genesys_Senso dev->model->model_id == ModelId::CANON_8600F) { int half_ccd_factor = dev->session.optical_resolution / - sensor.get_logical_hwdpi(dev->session.output_resolution); + sensor.get_register_hwdpi(dev->session.output_resolution); strpixel /= half_ccd_factor * sensor.ccd_pixels_per_system_pixel(); endpixel /= half_ccd_factor * sensor.ccd_pixels_per_system_pixel(); } @@ -3036,8 +2475,7 @@ void CommandSetGl843::send_shading_data(Genesys_Device* dev, const Genesys_Senso } } - dev->interface->write_buffer(0x3c, 0, final_data.data(), count, - ScannerInterface::FLAG_SMALL_ADDRESS); + dev->interface->write_buffer(0x3c, 0, final_data.data(), count); } bool CommandSetGl843::needs_home_before_init_regs_for_scan(Genesys_Device* dev) const diff --git a/backend/genesys/gl843.h b/backend/genesys/gl843.h index 9f0a9e9d3..7cd46fcab 100644 --- a/backend/genesys/gl843.h +++ b/backend/genesys/gl843.h @@ -42,7 +42,7 @@ */ #include "genesys.h" -#include "command_set.h" +#include "command_set_common.h" #ifndef BACKEND_GENESYS_GL843_H #define BACKEND_GENESYS_GL843_H @@ -50,7 +50,7 @@ namespace genesys { namespace gl843 { -class CommandSetGl843 : public CommandSet +class CommandSetGl843 : public CommandSetCommon { public: ~CommandSetGl843() override = default; @@ -63,13 +63,11 @@ public: Genesys_Register_Set* regs, int* channels, int* total_size) const override; - void init_regs_for_coarse_calibration(Genesys_Device* dev, const Genesys_Sensor& sensor, - Genesys_Register_Set& regs) const override; - void init_regs_for_shading(Genesys_Device* dev, const Genesys_Sensor& sensor, Genesys_Register_Set& regs) const override; - void init_regs_for_scan(Genesys_Device* dev, const Genesys_Sensor& sensor) const override; + void init_regs_for_scan(Genesys_Device* dev, const Genesys_Sensor& sensor, + Genesys_Register_Set& regs) const override; void init_regs_for_scan_session(Genesys_Device* dev, const Genesys_Sensor& sensor, Genesys_Register_Set* reg, @@ -86,8 +84,6 @@ public: void send_gamma_table(Genesys_Device* dev, const Genesys_Sensor& sensor) const override; - void search_start_position(Genesys_Device* dev) const override; - void offset_calibration(Genesys_Device* dev, const Genesys_Sensor& sensor, Genesys_Register_Set& regs) const override; @@ -109,9 +105,6 @@ public: void eject_document(Genesys_Device* dev) const override; - void search_strip(Genesys_Device* dev, const Genesys_Sensor& sensor, - bool forward, bool black) const override; - void move_to_ta(Genesys_Device* dev) const override; void send_shading_data(Genesys_Device* dev, const Genesys_Sensor& sensor, uint8_t* data, diff --git a/backend/genesys/gl843_registers.h b/backend/genesys/gl843_registers.h index 8ecb0fc04..cbc38c039 100644 --- a/backend/genesys/gl843_registers.h +++ b/backend/genesys/gl843_registers.h @@ -338,6 +338,16 @@ static constexpr RegAddr REG_CK4MAP = 0x7a; static constexpr RegAddr REG_0x7E = 0x7e; +static constexpr RegAddr REG_0x80 = 0x80; +static constexpr RegMask REG_0x80_TABLE1_NORMAL = 0x03; +static constexpr RegShift REG_0x80S_TABLE1_NORMAL = 0; +static constexpr RegMask REG_0x80_TABLE2_BACK = 0x0c; +static constexpr RegShift REG_0x80S_TABLE2_BACK = 2; +static constexpr RegMask REG_0x80_TABLE4_FAST = 0x30; +static constexpr RegShift REG_0x80S_TABLE4_FAST = 4; +static constexpr RegMask REG_0x80_TABLE5_GO_HOME = 0xc0; +static constexpr RegShift REG_0x80S_TABLE5_GO_HOME = 6; + static constexpr RegAddr REG_0x9D = 0x9d; static constexpr RegShift REG_0x9DS_STEPTIM = 2; diff --git a/backend/genesys/gl846.cpp b/backend/genesys/gl846.cpp index d309d29ca..d09f850cd 100644 --- a/backend/genesys/gl846.cpp +++ b/backend/genesys/gl846.cpp @@ -217,9 +217,6 @@ gl846_init_registers (Genesys_Device * dev) const auto& sensor = sanei_genesys_find_sensor_any(dev); sanei_genesys_set_dpihw(dev->reg, sensor, sensor.optical_res); - - /* initalize calibration reg */ - dev->calib_reg = dev->reg; } /**@brief send slope table for motor movement @@ -236,7 +233,6 @@ static void gl846_send_slope_table(Genesys_Device* dev, int table_nr, { DBG_HELPER_ARGS(dbg, "table_nr = %d, steps = %d", table_nr, steps); int i; - char msg[10000]; /* sanity check */ if(table_nr<0 || table_nr>4) @@ -251,16 +247,6 @@ static void gl846_send_slope_table(Genesys_Device* dev, int table_nr, table[i * 2 + 1] = slope_table[i] >> 8; } - if (DBG_LEVEL >= DBG_io) - { - std::sprintf(msg, "write slope %d (%d)=", table_nr, steps); - for (i = 0; i < steps; i++) - { - std::sprintf(msg+strlen(msg), "%d", slope_table[i]); - } - DBG (DBG_io, "%s: %s\n", __func__, msg); - } - if (dev->interface->is_mock()) { dev->interface->record_slope_table(table_nr, slope_table); } @@ -327,7 +313,7 @@ void CommandSetGl846::set_fe(Genesys_Device* dev, const Genesys_Sensor& sensor, static void gl846_init_motor_regs_scan(Genesys_Device* dev, const Genesys_Sensor& sensor, Genesys_Register_Set* reg, - const Motor_Profile& motor_profile, + const MotorProfile& motor_profile, unsigned int scan_exposure_time, unsigned scan_yres, unsigned int scan_lines, @@ -400,7 +386,7 @@ static void gl846_init_motor_regs_scan(Genesys_Device* dev, fast_step_type = StepType::QUARTER; } - Motor_Profile fast_motor_profile = motor_profile; + MotorProfile fast_motor_profile = motor_profile; fast_motor_profile.step_type = fast_step_type; auto fast_table = sanei_genesys_slope_table(dev->model->asic_type, fast_dpi, @@ -579,7 +565,7 @@ static void gl846_init_optical_regs_scan(Genesys_Device* dev, const Genesys_Sens r = sanei_genesys_get_address(reg, REG_0x01); r->value |= REG_0x01_SHDAREA; if (has_flag(session.params.flags, ScanFlag::DISABLE_SHADING) || - (dev->model->flags & GENESYS_FLAG_NO_CALIBRATION)) + has_flag(dev->model->flags, ModelFlag::NO_CALIBRATION)) { r->value &= ~REG_0x01_DVDSET; } @@ -665,7 +651,7 @@ static void gl846_init_optical_regs_scan(Genesys_Device* dev, const Genesys_Sens reg->set16(REG_STRPIXEL, session.pixel_startx); reg->set16(REG_ENDPIXEL, session.pixel_endx); - build_image_pipeline(dev, session); + build_image_pipeline(dev, sensor, session); /* MAXWD is expressed in 4 words unit */ // BUG: we shouldn't multiply by channels here @@ -705,9 +691,7 @@ void CommandSetGl846::init_regs_for_scan_session(Genesys_Device* dev, const Gene slope_dpi = slope_dpi * (1 + dummy); exposure_time = sensor.exposure_lperiod; - const auto& motor_profile = sanei_genesys_get_motor_profile(*gl846_motor_profiles, - dev->model->motor_id, - exposure_time); + const auto& motor_profile = get_motor_profile(dev->motor.profiles, exposure_time, session); DBG(DBG_info, "%s : exposure_time=%d pixels\n", __func__, exposure_time); DBG(DBG_info, "%s : scan_step_type=%d\n", __func__, @@ -736,9 +720,7 @@ void CommandSetGl846::init_regs_for_scan_session(Genesys_Device* dev, const Gene } gl846_init_motor_regs_scan(dev, sensor, reg, motor_profile, exposure_time, slope_dpi, - dev->model->is_cis ? session.output_line_count * session.params.channels - : session.output_line_count, - dummy, move, mflags); + session.optical_line_count, dummy, move, mflags); /*** prepares data reordering ***/ @@ -759,21 +741,33 @@ ScanSession CommandSetGl846::calculate_scan_session(const Genesys_Device* dev, const Genesys_Sensor& sensor, const Genesys_Settings& settings) const { - int start; - DBG(DBG_info, "%s ", __func__); debug_dump(DBG_info, settings); - /* start */ - start = static_cast(dev->model->x_offset); - start += static_cast(settings.tl_x); - start = static_cast((start * sensor.optical_res) / MM_PER_INCH); + /* Steps to move to reach scanning area: + + - first we move to physical start of scanning either by a fixed steps amount from the + black strip or by a fixed amount from parking position, minus the steps done during + shading calibration. + + - then we move by the needed offset whitin physical scanning area + */ + unsigned move_dpi = dev->motor.base_ydpi; + + float move = dev->model->y_offset; + move = move + settings.tl_y; + move = static_cast((move * move_dpi) / MM_PER_INCH); + move -= dev->head_pos(ScanHeadId::PRIMARY); + + float start = dev->model->x_offset; + start = start + dev->settings.tl_x; + start = static_cast((start * settings.xres) / MM_PER_INCH); ScanSession session; session.params.xres = settings.xres; session.params.yres = settings.yres; - session.params.startx = start; // not used - session.params.starty = 0; // not used + session.params.startx = static_cast(start); + session.params.starty = static_cast(move); session.params.pixels = settings.pixels; session.params.requested_pixels = settings.requested_pixels; session.params.lines = settings.lines; @@ -782,7 +776,8 @@ ScanSession CommandSetGl846::calculate_scan_session(const Genesys_Device* dev, session.params.scan_method = settings.scan_method; session.params.scan_mode = settings.scan_mode; session.params.color_filter = settings.color_filter; - session.params.flags = ScanFlag::NONE; + // backtracking isn't handled well, so don't enable it + session.params.flags = ScanFlag::DISABLE_BUFFER_FULL_MOVE; compute_session(dev, session, sensor); @@ -817,10 +812,7 @@ void CommandSetGl846::begin_scan(Genesys_Device* dev, const Genesys_Sensor& sens dev->interface->write_register(REG_0x6C, val); */ - val = REG_0x0D_CLRLNCNT; - dev->interface->write_register(REG_0x0D, val); - val = REG_0x0D_CLRMCNT; - dev->interface->write_register(REG_0x0D, val); + scanner_clear_scan_and_feed_counts(*dev); val = dev->interface->read_register(REG_0x01); val |= REG_0x01_SCAN; @@ -852,120 +844,6 @@ void CommandSetGl846::move_back_home(Genesys_Device* dev, bool wait_until_home) scanner_move_back_home(*dev, wait_until_home); } -// Automatically set top-left edge of the scan area by scanning a 200x200 pixels area at 600 dpi -// from very top of scanner -void CommandSetGl846::search_start_position(Genesys_Device* dev) const -{ - DBG_HELPER(dbg); - int size; - Genesys_Register_Set local_reg; - - int pixels = 600; - int dpi = 300; - - local_reg = dev->reg; - - /* sets for a 200 lines * 600 pixels */ - /* normal scan with no shading */ - - // FIXME: the current approach of doing search only for one resolution does not work on scanners - // whith employ different sensors with potentially different settings. - const auto& sensor = sanei_genesys_find_sensor(dev, dpi, 1, dev->model->default_method); - - ScanSession session; - session.params.xres = dpi; - session.params.yres = dpi; - session.params.startx = 0; - session.params.starty = 0; /*we should give a small offset here~60 steps */ - session.params.pixels = 600; - session.params.lines = dev->model->search_lines; - session.params.depth = 8; - session.params.channels = 1; - session.params.scan_method = dev->settings.scan_method; - session.params.scan_mode = ScanColorMode::GRAY; - session.params.color_filter = ColorFilter::GREEN; - session.params.flags = ScanFlag::DISABLE_SHADING | - ScanFlag::DISABLE_GAMMA | - ScanFlag::IGNORE_LINE_DISTANCE; - compute_session(dev, session, sensor); - - init_regs_for_scan_session(dev, sensor, &local_reg, session); - - // send to scanner - dev->interface->write_registers(local_reg); - - size = pixels * dev->model->search_lines; - - std::vector data(size); - - begin_scan(dev, sensor, &local_reg, true); - - if (is_testing_mode()) { - dev->interface->test_checkpoint("search_start_position"); - end_scan(dev, &local_reg, true); - dev->reg = local_reg; - return; - } - - wait_until_buffer_non_empty(dev); - - // now we're on target, we can read data - sanei_genesys_read_data_from_scanner(dev, data.data(), size); - - if (DBG_LEVEL >= DBG_data) { - sanei_genesys_write_pnm_file("gl846_search_position.pnm", data.data(), 8, 1, pixels, - dev->model->search_lines); - } - - end_scan(dev, &local_reg, true); - - /* update regs to copy ASIC internal state */ - dev->reg = local_reg; - - // TODO: find out where sanei_genesys_search_reference_point stores information, - // and use that correctly - for (auto& sensor_update : - sanei_genesys_find_sensors_all_for_write(dev, dev->model->default_method)) - { - sanei_genesys_search_reference_point(dev, sensor_update, data.data(), 0, dpi, pixels, - dev->model->search_lines); - } -} - -// sets up register for coarse gain calibration -// todo: check it for scanners using it -void CommandSetGl846::init_regs_for_coarse_calibration(Genesys_Device* dev, - const Genesys_Sensor& sensor, - Genesys_Register_Set& regs) const -{ - DBG_HELPER(dbg); - - ScanSession session; - session.params.xres = dev->settings.xres; - session.params.yres = dev->settings.yres; - session.params.startx = 0; - session.params.starty = 0; - session.params.pixels = sensor.optical_res / sensor.ccd_pixels_per_system_pixel(); - session.params.lines = 20; - session.params.depth = 16; - session.params.channels = dev->settings.get_channels(); - session.params.scan_method = dev->settings.scan_method; - session.params.scan_mode = dev->settings.scan_mode; - session.params.color_filter = dev->settings.color_filter; - session.params.flags = ScanFlag::DISABLE_SHADING | - ScanFlag::DISABLE_GAMMA | - ScanFlag::SINGLE_LINE | - ScanFlag::IGNORE_LINE_DISTANCE; - compute_session(dev, session, sensor); - - init_regs_for_scan_session(dev, sensor, ®s, session); - - DBG(DBG_info, "%s: optical sensor res: %d dpi, actual res: %d\n", __func__, - sensor.optical_res / sensor.ccd_pixels_per_system_pixel(), dev->settings.xres); - - dev->interface->write_registers(regs); -} - // init registers for shading calibration void CommandSetGl846::init_regs_for_shading(Genesys_Device* dev, const Genesys_Sensor& sensor, Genesys_Register_Set& regs) const @@ -973,136 +851,71 @@ void CommandSetGl846::init_regs_for_shading(Genesys_Device* dev, const Genesys_S DBG_HELPER(dbg); float move; - dev->calib_channels = 3; + unsigned channels = 3; + unsigned resolution = sensor.get_register_hwdpi(dev->settings.xres); - /* initial calibration reg values */ - regs = dev->reg; - - dev->calib_resolution = sensor.get_register_hwdpi(dev->settings.xres); - - const auto& calib_sensor = sanei_genesys_find_sensor(dev, dev->calib_resolution, - dev->calib_channels, + const auto& calib_sensor = sanei_genesys_find_sensor(dev, resolution, channels, dev->settings.scan_method); - dev->calib_total_bytes_to_read = 0; - dev->calib_lines = dev->model->shading_lines; - if (dev->calib_resolution==4800) { - dev->calib_lines *= 2; - } - dev->calib_pixels = (calib_sensor.sensor_pixels * dev->calib_resolution) / - calib_sensor.optical_res; - DBG(DBG_io, "%s: calib_lines = %zu\n", __func__, dev->calib_lines); - DBG(DBG_io, "%s: calib_pixels = %zu\n", __func__, dev->calib_pixels); + unsigned calib_lines = + static_cast(dev->model->y_size_calib_mm * resolution / MM_PER_INCH); /* this is aworkaround insufficent distance for slope * motor acceleration TODO special motor slope for shading */ move=1; - if(dev->calib_resolution<1200) - { + if (resolution < 1200) { move=40; } ScanSession session; - session.params.xres = dev->calib_resolution; - session.params.yres = dev->calib_resolution; + session.params.xres = resolution; + session.params.yres = resolution; session.params.startx = 0; session.params.starty = static_cast(move); - session.params.pixels = dev->calib_pixels; - session.params.lines = dev->calib_lines; + session.params.pixels = dev->model->x_size_calib_mm * resolution / MM_PER_INCH; + session.params.lines = calib_lines; session.params.depth = 16; - session.params.channels = dev->calib_channels; + session.params.channels = channels; session.params.scan_method = dev->settings.scan_method; session.params.scan_mode = ScanColorMode::COLOR_SINGLE_PASS; session.params.color_filter = dev->settings.color_filter; session.params.flags = ScanFlag::DISABLE_SHADING | ScanFlag::DISABLE_GAMMA | - ScanFlag::DISABLE_BUFFER_FULL_MOVE | - ScanFlag::IGNORE_LINE_DISTANCE; + ScanFlag::DISABLE_BUFFER_FULL_MOVE; compute_session(dev, session, calib_sensor); init_regs_for_scan_session(dev, calib_sensor, ®s, session); - dev->interface->write_registers(regs); - - /* we use GENESYS_FLAG_SHADING_REPARK */ + /* we use ModelFlag::SHADING_REPARK */ dev->set_head_pos_zero(ScanHeadId::PRIMARY); + + dev->calib_session = session; } /** @brief set up registers for the actual scan */ -void CommandSetGl846::init_regs_for_scan(Genesys_Device* dev, const Genesys_Sensor& sensor) const +void CommandSetGl846::init_regs_for_scan(Genesys_Device* dev, const Genesys_Sensor& sensor, + Genesys_Register_Set& regs) const { DBG_HELPER(dbg); - float move; - int move_dpi; - float start; - debug_dump(DBG_info, dev->settings); + auto session = calculate_scan_session(dev, sensor, dev->settings); - /* steps to move to reach scanning area: - - first we move to physical start of scanning - either by a fixed steps amount from the black strip - or by a fixed amount from parking position, - minus the steps done during shading calibration - - then we move by the needed offset whitin physical - scanning area + /* Fast move to scan area: - assumption: steps are expressed at maximum motor resolution - - we need: - float y_offset; - float y_size; - float y_offset_calib; - mm_to_steps()=motor dpi / 2.54 / 10=motor dpi / MM_PER_INCH */ - - /* if scanner uses GENESYS_FLAG_SEARCH_START y_offset is - relative from origin, else, it is from parking position */ - - move_dpi = dev->motor.base_ydpi; - - move = static_cast(dev->model->y_offset); - move = static_cast(move + dev->settings.tl_y); - move = static_cast((move * move_dpi) / MM_PER_INCH); - move -= dev->head_pos(ScanHeadId::PRIMARY); - DBG(DBG_info, "%s: move=%f steps\n", __func__, move); - - /* fast move to scan area */ - /* we don't move fast the whole distance since it would involve - * computing acceleration/deceleration distance for scan - * resolution. So leave a remainder for it so scan makes the final - * move tuning */ - if (dev->settings.get_channels() * dev->settings.yres >= 600 && move > 700) { - scanner_move(*dev, dev->model->default_method, static_cast(move - 500), + We don't move fast the whole distance since it would involve computing + acceleration/deceleration distance for scan resolution. So leave a remainder for it so + scan makes the final move tuning + */ + if (dev->settings.get_channels() * dev->settings.yres >= 600 && session.params.starty > 700) { + scanner_move(*dev, dev->model->default_method, + static_cast(session.params.starty - 500), Direction::FORWARD); - move=500; + session.params.starty = 500; } - - DBG(DBG_info, "%s: move=%f steps\n", __func__, move); - DBG(DBG_info, "%s: move=%f steps\n", __func__, move); - - /* start */ - start = static_cast(dev->model->x_offset); - start = static_cast(start + dev->settings.tl_x); - start = static_cast((start * sensor.optical_res) / MM_PER_INCH); - - ScanSession session; - session.params.xres = dev->settings.xres; - session.params.yres = dev->settings.yres; - session.params.startx = static_cast(start); - session.params.starty = static_cast(move); - session.params.pixels = dev->settings.pixels; - session.params.requested_pixels = dev->settings.requested_pixels; - session.params.lines = dev->settings.lines; - session.params.depth = dev->settings.depth; - session.params.channels = dev->settings.get_channels(); - session.params.scan_method = dev->settings.scan_method; - session.params.scan_mode = dev->settings.scan_mode; - session.params.color_filter = dev->settings.color_filter; - // backtracking isn't handled well, so don't enable it - session.params.flags = ScanFlag::DISABLE_BUFFER_FULL_MOVE; compute_session(dev, session, sensor); - init_regs_for_scan_session(dev, sensor, &dev->reg, session); + init_regs_for_scan_session(dev, sensor, ®s, session); } @@ -1193,17 +1006,13 @@ SensorExposure CommandSetGl846::led_calibration(Genesys_Device* dev, const Genes Genesys_Register_Set& regs) const { DBG_HELPER(dbg); - int num_pixels; - int total_size; int used_res; - int i, j; - int val; - int channels; + int i; int avg[3], top[3], bottom[3]; int turn; uint16_t exp[3]; - float move = static_cast(dev->model->y_offset_calib_white); + float move = dev->model->y_offset_calib_white; move = static_cast((move * (dev->motor.base_ydpi / 4)) / MM_PER_INCH); if(move>20) { @@ -1213,11 +1022,10 @@ SensorExposure CommandSetGl846::led_calibration(Genesys_Device* dev, const Genes DBG(DBG_io, "%s: move=%f steps\n", __func__, move); /* offset calibration is always done in color mode */ - channels = 3; + unsigned channels = 3; used_res = sensor.get_register_hwdpi(dev->settings.xres); const auto& calib_sensor = sanei_genesys_find_sensor(dev, used_res, channels, dev->settings.scan_method); - num_pixels = (calib_sensor.sensor_pixels * used_res) / calib_sensor.optical_res; /* initial calibration reg values */ regs = dev->reg; @@ -1227,7 +1035,7 @@ SensorExposure CommandSetGl846::led_calibration(Genesys_Device* dev, const Genes session.params.yres = used_res; session.params.startx = 0; session.params.starty = 0; - session.params.pixels = num_pixels; + session.params.pixels = dev->model->x_size_calib_mm * used_res / MM_PER_INCH; session.params.lines = 1; session.params.depth = 16; session.params.channels = channels; @@ -1237,14 +1045,12 @@ SensorExposure CommandSetGl846::led_calibration(Genesys_Device* dev, const Genes session.params.flags = ScanFlag::DISABLE_SHADING | ScanFlag::DISABLE_GAMMA | ScanFlag::SINGLE_LINE | - ScanFlag::IGNORE_LINE_DISTANCE; + ScanFlag::IGNORE_STAGGER_OFFSET | + ScanFlag::IGNORE_COLOR_OFFSET; compute_session(dev, session, calib_sensor); init_regs_for_scan_session(dev, calib_sensor, ®s, session); - total_size = num_pixels * channels * (session.params.depth / 8) * 1; - std::vector line(total_size); - /* initial loop values and boundaries */ exp[0] = calib_sensor.exposure.red; exp[1] = calib_sensor.exposure.green; @@ -1283,37 +1089,24 @@ SensorExposure CommandSetGl846::led_calibration(Genesys_Device* dev, const Genes return calib_sensor.exposure; } - sanei_genesys_read_data_from_scanner(dev, line.data(), total_size); + auto image = read_unshuffled_image_from_scanner(dev, session, session.output_line_bytes); // stop scanning scanner_stop_action(*dev); - if (DBG_LEVEL >= DBG_data) - { - char fn[30]; + if (DBG_LEVEL >= DBG_data) { + char fn[30]; std::snprintf(fn, 30, "gl846_led_%02d.pnm", turn); - sanei_genesys_write_pnm_file(fn, line.data(), session.params.depth, - channels, num_pixels, 1); + sanei_genesys_write_pnm_file(fn, image); } - /* compute average */ - for (j = 0; j < channels; j++) - { - avg[j] = 0; - for (i = 0; i < num_pixels; i++) - { - if (dev->model->is_cis) - val = - line[i * 2 + j * 2 * num_pixels + 1] * 256 + - line[i * 2 + j * 2 * num_pixels]; - else - val = - line[i * 2 * channels + 2 * j + 1] * 256 + - line[i * 2 * channels + 2 * j]; - avg[j] += val; + // compute average + for (unsigned ch = 0; ch < channels; ch++) { + avg[ch] = 0; + for (std::size_t x = 0; x < image.get_width(); x++) { + avg[ch] += image.get_raw_channel(x, 0, ch); } - - avg[j] /= num_pixels; + avg[ch] /= image.get_width(); } DBG(DBG_info, "%s: average: %d,%d,%d\n", __func__, avg[0], avg[1], avg[2]); @@ -1529,203 +1322,6 @@ void CommandSetGl846::update_home_sensor_gpio(Genesys_Device& dev) const dev.interface->write_register(REG_0x6C, val); } -/** @brief search for a full width black or white strip. - * This function searches for a black or white stripe across the scanning area. - * When searching backward, the searched area must completely be of the desired - * color since this area will be used for calibration which scans forward. - * @param dev scanner device - * @param forward true if searching forward, false if searching backward - * @param black true if searching for a black strip, false for a white strip - */ -void CommandSetGl846::search_strip(Genesys_Device* dev, const Genesys_Sensor& sensor, bool forward, - bool black) const -{ - DBG_HELPER_ARGS(dbg, "%s %s", black ? "black" : "white", forward ? "forward" : "reverse"); - unsigned int pixels, lines, channels; - Genesys_Register_Set local_reg; - size_t size; - unsigned int pass, count, found, x, y; - char title[80]; - - set_fe(dev, sensor, AFE_SET); - - scanner_stop_action(*dev); - - // set up for a gray scan at lowest dpi - const auto& resolution_settings = dev->model->get_resolution_settings(dev->settings.scan_method); - unsigned dpi = resolution_settings.get_min_resolution_x(); - channels = 1; - /* 10 MM */ - /* lines = (10 * dpi) / MM_PER_INCH; */ - /* shading calibation is done with dev->motor.base_ydpi */ - lines = (dev->model->shading_lines * dpi) / dev->motor.base_ydpi; - pixels = (sensor.sensor_pixels * dpi) / sensor.optical_res; - - dev->set_head_pos_zero(ScanHeadId::PRIMARY); - - local_reg = dev->reg; - - ScanSession session; - session.params.xres = dpi; - session.params.yres = dpi; - session.params.startx = 0; - session.params.starty = 0; - session.params.pixels = pixels; - session.params.lines = lines; - session.params.depth = 8; - session.params.channels = channels; - session.params.scan_mode = ScanColorMode::GRAY; - session.params.color_filter = ColorFilter::RED; - session.params.flags = ScanFlag::DISABLE_SHADING | - ScanFlag::DISABLE_GAMMA; - if (!forward) { - session.params.flags |= ScanFlag::REVERSE; - } - compute_session(dev, session, sensor); - - init_regs_for_scan_session(dev, sensor, &local_reg, session); - - size = pixels * channels * lines * (session.params.depth / 8); - std::vector data(size); - - dev->interface->write_registers(local_reg); - - begin_scan(dev, sensor, &local_reg, true); - - if (is_testing_mode()) { - dev->interface->test_checkpoint("search_strip"); - scanner_stop_action(*dev); - return; - } - - wait_until_buffer_non_empty(dev); - - // now we're on target, we can read data - sanei_genesys_read_data_from_scanner(dev, data.data(), size); - - scanner_stop_action(*dev); - - pass = 0; - if (DBG_LEVEL >= DBG_data) - { - std::sprintf(title, "gl846_search_strip_%s_%s%02d.pnm", - black ? "black" : "white", forward ? "fwd" : "bwd", pass); - sanei_genesys_write_pnm_file(title, data.data(), session.params.depth, - channels, pixels, lines); - } - - /* loop until strip is found or maximum pass number done */ - found = 0; - while (pass < 20 && !found) - { - dev->interface->write_registers(local_reg); - - // now start scan - begin_scan(dev, sensor, &local_reg, true); - - wait_until_buffer_non_empty(dev); - - // now we're on target, we can read data - sanei_genesys_read_data_from_scanner(dev, data.data(), size); - - scanner_stop_action(*dev); - - if (DBG_LEVEL >= DBG_data) - { - std::sprintf(title, "gl846_search_strip_%s_%s%02d.pnm", - black ? "black" : "white", forward ? "fwd" : "bwd", pass); - sanei_genesys_write_pnm_file(title, data.data(), session.params.depth, - channels, pixels, lines); - } - - /* search data to find black strip */ - /* when searching forward, we only need one line of the searched color since we - * will scan forward. But when doing backward search, we need all the area of the - * same color */ - if (forward) - { - for (y = 0; y < lines && !found; y++) - { - count = 0; - /* count of white/black pixels depending on the color searched */ - for (x = 0; x < pixels; x++) - { - /* when searching for black, detect white pixels */ - if (black && data[y * pixels + x] > 90) - { - count++; - } - /* when searching for white, detect black pixels */ - if (!black && data[y * pixels + x] < 60) - { - count++; - } - } - - /* at end of line, if count >= 3%, line is not fully of the desired color - * so we must go to next line of the buffer */ - /* count*100/pixels < 3 */ - if ((count * 100) / pixels < 3) - { - found = 1; - DBG(DBG_data, "%s: strip found forward during pass %d at line %d\n", __func__, - pass, y); - } - else - { - DBG(DBG_data, "%s: pixels=%d, count=%d (%d%%)\n", __func__, pixels, count, - (100 * count) / pixels); - } - } - } - else /* since calibration scans are done forward, we need the whole area - to be of the required color when searching backward */ - { - count = 0; - for (y = 0; y < lines; y++) - { - /* count of white/black pixels depending on the color searched */ - for (x = 0; x < pixels; x++) - { - /* when searching for black, detect white pixels */ - if (black && data[y * pixels + x] > 90) - { - count++; - } - /* when searching for white, detect black pixels */ - if (!black && data[y * pixels + x] < 60) - { - count++; - } - } - } - - /* at end of area, if count >= 3%, area is not fully of the desired color - * so we must go to next buffer */ - if ((count * 100) / (pixels * lines) < 3) - { - found = 1; - DBG(DBG_data, "%s: strip found backward during pass %d \n", __func__, pass); - } - else - { - DBG(DBG_data, "%s: pixels=%d, count=%d (%d%%)\n", __func__, pixels, count, - (100 * count) / pixels); - } - } - pass++; - } - - if (found) - { - DBG(DBG_info, "%s: %s strip found\n", __func__, black ? "black" : "white"); - } - else - { - throw SaneException(SANE_STATUS_UNSUPPORTED, "%s strip not found", black ? "black" : "white"); - } -} - /** * average dark pixels of a 8 bits scan */ @@ -1768,9 +1364,9 @@ void CommandSetGl846::offset_calibration(Genesys_Device* dev, const Genesys_Sens { DBG_HELPER(dbg); unsigned channels; - int pass = 0, avg, total_size; + int pass = 0, avg; int topavg, bottomavg, lines; - int top, bottom, black_pixels, pixels; + int top, bottom, black_pixels; // no gain nor offset for AKM AFE uint8_t reg04 = dev->interface->read_register(REG_0x04); @@ -1780,9 +1376,8 @@ void CommandSetGl846::offset_calibration(Genesys_Device* dev, const Genesys_Sens /* offset calibration is always done in color mode */ channels = 3; - dev->calib_pixels = sensor.sensor_pixels; lines=1; - pixels = (sensor.sensor_pixels * sensor.optical_res) / sensor.optical_res; + unsigned pixels = dev->model->x_size_calib_mm * sensor.optical_res / MM_PER_INCH; black_pixels = (sensor.black_pixels * sensor.optical_res) / sensor.optical_res; DBG(DBG_io2, "%s: black_pixels=%d\n", __func__, black_pixels); @@ -1801,18 +1396,14 @@ void CommandSetGl846::offset_calibration(Genesys_Device* dev, const Genesys_Sens session.params.flags = ScanFlag::DISABLE_SHADING | ScanFlag::DISABLE_GAMMA | ScanFlag::SINGLE_LINE | - ScanFlag::IGNORE_LINE_DISTANCE; + ScanFlag::IGNORE_STAGGER_OFFSET | + ScanFlag::IGNORE_COLOR_OFFSET; compute_session(dev, session, sensor); init_regs_for_scan_session(dev, sensor, ®s, session); sanei_genesys_set_motor_power(regs, false); - total_size = pixels * channels * lines * (session.params.depth / 8); - - std::vector first_line(total_size); - std::vector second_line(total_size); - /* init gain */ dev->frontend.set_gain(0, 0); dev->frontend.set_gain(1, 0); @@ -1834,16 +1425,15 @@ void CommandSetGl846::offset_calibration(Genesys_Device* dev, const Genesys_Sens return; } - sanei_genesys_read_data_from_scanner(dev, first_line.data(), total_size); + auto first_line = read_unshuffled_image_from_scanner(dev, session, session.output_total_bytes); if (DBG_LEVEL >= DBG_data) { char fn[30]; std::snprintf(fn, 30, "gl846_offset%03d.pnm", bottom); - sanei_genesys_write_pnm_file(fn, first_line.data(), session.params.depth, - channels, pixels, lines); + sanei_genesys_write_pnm_file(fn, first_line); } - bottomavg = dark_average(first_line.data(), pixels, lines, channels, black_pixels); + bottomavg = dark_average(first_line.get_row_ptr(0), pixels, lines, channels, black_pixels); DBG(DBG_io2, "%s: bottom avg=%d\n", __func__, bottomavg); /* now top value */ @@ -1855,9 +1445,9 @@ void CommandSetGl846::offset_calibration(Genesys_Device* dev, const Genesys_Sens dev->interface->write_registers(regs); DBG(DBG_info, "%s: starting second line reading\n", __func__); begin_scan(dev, sensor, ®s, true); - sanei_genesys_read_data_from_scanner(dev, second_line.data(), total_size); + auto second_line = read_unshuffled_image_from_scanner(dev, session, session.output_total_bytes); - topavg = dark_average(second_line.data(), pixels, lines, channels, black_pixels); + topavg = dark_average(second_line.get_row_ptr(0), pixels, lines, channels, black_pixels); DBG(DBG_io2, "%s: top avg=%d\n", __func__, topavg); /* loop until acceptable level */ @@ -1875,17 +1465,15 @@ void CommandSetGl846::offset_calibration(Genesys_Device* dev, const Genesys_Sens dev->interface->write_registers(regs); DBG(DBG_info, "%s: starting second line reading\n", __func__); begin_scan(dev, sensor, ®s, true); - sanei_genesys_read_data_from_scanner(dev, second_line.data(), total_size); + second_line = read_unshuffled_image_from_scanner(dev, session, session.output_total_bytes); - if (DBG_LEVEL >= DBG_data) - { - char fn[30]; + if (DBG_LEVEL >= DBG_data) { + char fn[30]; std::snprintf(fn, 30, "gl846_offset%03d.pnm", dev->frontend.get_offset(1)); - sanei_genesys_write_pnm_file(fn, second_line.data(), session.params.depth, - channels, pixels, lines); + sanei_genesys_write_pnm_file(fn, second_line); } - avg = dark_average(second_line.data(), pixels, lines, channels, black_pixels); + avg = dark_average(second_line.get_row_ptr(0), pixels, lines, channels, black_pixels); DBG(DBG_info, "%s: avg=%d offset=%d\n", __func__, avg, dev->frontend.get_offset(1)); /* compute new boundaries */ @@ -1910,12 +1498,8 @@ void CommandSetGl846::coarse_gain_calibration(Genesys_Device* dev, const Genesys Genesys_Register_Set& regs, int dpi) const { DBG_HELPER(dbg); - int pixels; - int total_size; - int i, j, channels; - int max[3]; float gain[3],coeff; - int val, code, lines; + int code, lines; DBG(DBG_proc, "%s: dpi = %d\n", __func__, dpi); @@ -1926,7 +1510,7 @@ void CommandSetGl846::coarse_gain_calibration(Genesys_Device* dev, const Genesys } /* coarse gain calibration is always done in color mode */ - channels = 3; + unsigned channels = 3; /* follow CKSEL */ if(dev->settings.xresmodel->x_size_calib_mm * sensor.optical_res / MM_PER_INCH; session.params.lines = lines; session.params.depth = 8; session.params.channels = channels; @@ -1955,7 +1538,8 @@ void CommandSetGl846::coarse_gain_calibration(Genesys_Device* dev, const Genesys session.params.flags = ScanFlag::DISABLE_SHADING | ScanFlag::DISABLE_GAMMA | ScanFlag::SINGLE_LINE | - ScanFlag::IGNORE_LINE_DISTANCE; + ScanFlag::IGNORE_STAGGER_OFFSET | + ScanFlag::IGNORE_COLOR_OFFSET; compute_session(dev, session, sensor); try { @@ -1969,10 +1553,6 @@ void CommandSetGl846::coarse_gain_calibration(Genesys_Device* dev, const Genesys dev->interface->write_registers(regs); - total_size = pixels * channels * (16 / session.params.depth) * lines; - - std::vector line(total_size); - set_fe(dev, sensor, AFE_SET); begin_scan(dev, sensor, ®s, true); @@ -1983,40 +1563,33 @@ void CommandSetGl846::coarse_gain_calibration(Genesys_Device* dev, const Genesys return; } - sanei_genesys_read_data_from_scanner(dev, line.data(), total_size); + auto image = read_unshuffled_image_from_scanner(dev, session, session.output_total_bytes); if (DBG_LEVEL >= DBG_data) { - sanei_genesys_write_pnm_file("gl846_gain.pnm", line.data(), session.params.depth, - channels, pixels, lines); + sanei_genesys_write_pnm_file("gl846_gain.pnm", image); } /* average value on each channel */ - for (j = 0; j < channels; j++) - { - max[j] = 0; - for (i = pixels/4; i < (pixels*3/4); i++) - { - if (dev->model->is_cis) - val = line[i + j * pixels]; - else - val = line[i * channels + j]; + for (unsigned ch = 0; ch < channels; ch++) { - max[j] += val; + auto width = image.get_width(); + + std::uint64_t total = 0; + for (std::size_t x = width / 4; x < (width * 3 / 4); x++) { + total += image.get_raw_channel(x, 0, ch); } - max[j] = max[j] / (pixels/2); - gain[j] = (static_cast(sensor.gain_white_ref) * coeff) / max[j]; + total /= width / 2; + + gain[ch] = (static_cast(sensor.gain_white_ref) * coeff) / total; /* turn logical gain value into gain code, checking for overflow */ - code = static_cast(283 - 208 / gain[j]); - if (code > 255) - code = 255; - else if (code < 0) - code = 0; - dev->frontend.set_gain(j, code); + code = static_cast(283 - 208 / gain[ch]); + code = clamp(code, 0, 255); + dev->frontend.set_gain(ch, code); - DBG(DBG_proc, "%s: channel %d, max=%d, gain = %f, setting:%d\n", __func__, j, max[j], gain[j], - dev->frontend.get_gain(j)); + DBG(DBG_proc, "%s: channel %d, total=%d, gain = %f, setting:%d\n", __func__, ch, + static_cast(total), gain[ch], dev->frontend.get_gain(ch)); } if (dev->model->is_cis) { diff --git a/backend/genesys/gl846.h b/backend/genesys/gl846.h index 258015aa2..88387d208 100644 --- a/backend/genesys/gl846.h +++ b/backend/genesys/gl846.h @@ -42,7 +42,7 @@ */ #include "genesys.h" -#include "command_set.h" +#include "command_set_common.h" #ifndef BACKEND_GENESYS_GL846_H #define BACKEND_GENESYS_GL846_H @@ -125,7 +125,7 @@ static Memory_layout layouts[]={ { nullptr, 0, 0, 0, 0, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} } }; -class CommandSetGl846 : public CommandSet +class CommandSetGl846 : public CommandSetCommon { public: ~CommandSetGl846() override = default; @@ -138,13 +138,11 @@ public: Genesys_Register_Set* regs, int* channels, int* total_size) const override; - void init_regs_for_coarse_calibration(Genesys_Device* dev, const Genesys_Sensor& sensor, - Genesys_Register_Set& regs) const override; - void init_regs_for_shading(Genesys_Device* dev, const Genesys_Sensor& sensor, Genesys_Register_Set& regs) const override; - void init_regs_for_scan(Genesys_Device* dev, const Genesys_Sensor& sensor) const override; + void init_regs_for_scan(Genesys_Device* dev, const Genesys_Sensor& sensor, + Genesys_Register_Set& regs) const override; void init_regs_for_scan_session(Genesys_Device* dev, const Genesys_Sensor& sensor, Genesys_Register_Set* reg, @@ -161,8 +159,6 @@ public: void send_gamma_table(Genesys_Device* dev, const Genesys_Sensor& sensor) const override; - void search_start_position(Genesys_Device* dev) const override; - void offset_calibration(Genesys_Device* dev, const Genesys_Sensor& sensor, Genesys_Register_Set& regs) const override; @@ -188,9 +184,6 @@ public: void eject_document(Genesys_Device* dev) const override; - void search_strip(Genesys_Device* dev, const Genesys_Sensor& sensor, - bool forward, bool black) const override; - void move_to_ta(Genesys_Device* dev) const override; void send_shading_data(Genesys_Device* dev, const Genesys_Sensor& sensor, uint8_t* data, diff --git a/backend/genesys/gl847.cpp b/backend/genesys/gl847.cpp index cb0b52704..f7c13fbd3 100644 --- a/backend/genesys/gl847.cpp +++ b/backend/genesys/gl847.cpp @@ -238,9 +238,6 @@ gl847_init_registers (Genesys_Device * dev) const auto& sensor = sanei_genesys_find_sensor_any(dev); sanei_genesys_set_dpihw(dev->reg, sensor, sensor.optical_res); - - /* initalize calibration reg */ - dev->calib_reg = dev->reg; } /**@brief send slope table for motor movement @@ -257,7 +254,6 @@ static void gl847_send_slope_table(Genesys_Device* dev, int table_nr, { DBG_HELPER_ARGS(dbg, "table_nr = %d, steps = %d", table_nr, steps); int i; - char msg[10000]; /* sanity check */ if(table_nr<0 || table_nr>4) @@ -272,16 +268,6 @@ static void gl847_send_slope_table(Genesys_Device* dev, int table_nr, table[i * 2 + 1] = slope_table[i] >> 8; } - if (DBG_LEVEL >= DBG_io) - { - std::sprintf(msg, "write slope %d (%d)=", table_nr, steps); - for (i = 0; i < steps; i++) - { - std::sprintf(msg + std::strlen(msg), "%d", slope_table[i]); - } - DBG (DBG_io, "%s: %s\n", __func__, msg); - } - if (dev->interface->is_mock()) { dev->interface->record_slope_table(table_nr, slope_table); } @@ -354,7 +340,7 @@ void CommandSetGl847::set_fe(Genesys_Device* dev, const Genesys_Sensor& sensor, static void gl847_init_motor_regs_scan(Genesys_Device* dev, const Genesys_Sensor& sensor, Genesys_Register_Set* reg, - const Motor_Profile& motor_profile, + const MotorProfile& motor_profile, unsigned int scan_exposure_time, unsigned scan_yres, unsigned int scan_lines, @@ -429,7 +415,7 @@ static void gl847_init_motor_regs_scan(Genesys_Device* dev, fast_step_type = StepType::QUARTER; } - Motor_Profile fast_motor_profile = motor_profile; + MotorProfile fast_motor_profile = motor_profile; fast_motor_profile.step_type = fast_step_type; auto fast_table = sanei_genesys_slope_table(dev->model->asic_type, fast_dpi, @@ -585,7 +571,7 @@ static void gl847_init_optical_regs_scan(Genesys_Device* dev, const Genesys_Sens r->value |= REG_0x01_SHDAREA; if (has_flag(session.params.flags, ScanFlag::DISABLE_SHADING) || - (dev->model->flags & GENESYS_FLAG_NO_CALIBRATION)) + has_flag(dev->model->flags, ModelFlag::NO_CALIBRATION)) { r->value &= ~REG_0x01_DVDSET; } @@ -672,7 +658,7 @@ static void gl847_init_optical_regs_scan(Genesys_Device* dev, const Genesys_Sens reg->set16(REG_STRPIXEL, session.pixel_startx); reg->set16(REG_ENDPIXEL, session.pixel_endx); - build_image_pipeline(dev, session); + build_image_pipeline(dev, sensor, session); /* MAXWD is expressed in 4 words unit */ // BUG: we shouldn't multiply by channels here @@ -712,9 +698,7 @@ void CommandSetGl847::init_regs_for_scan_session(Genesys_Device* dev, const Gene slope_dpi = slope_dpi * (1 + dummy); exposure_time = sensor.exposure_lperiod; - const auto& motor_profile = sanei_genesys_get_motor_profile(*gl847_motor_profiles, - dev->model->motor_id, - exposure_time); + const auto& motor_profile = get_motor_profile(dev->motor.profiles, exposure_time, session); DBG(DBG_info, "%s : exposure_time=%d pixels\n", __func__, exposure_time); DBG(DBG_info, "%s : scan_step_type=%d\n", __func__, @@ -740,9 +724,7 @@ void CommandSetGl847::init_regs_for_scan_session(Genesys_Device* dev, const Gene } gl847_init_motor_regs_scan(dev, sensor, reg, motor_profile, exposure_time, slope_dpi, - dev->model->is_cis ? session.output_line_count * session.params.channels - : session.output_line_count, - dummy, move, mflags); + session.optical_line_count, dummy, move, mflags); dev->read_buffer.clear(); dev->read_buffer.alloc(session.buffer_size_read); @@ -761,21 +743,33 @@ ScanSession CommandSetGl847::calculate_scan_session(const Genesys_Device* dev, const Genesys_Sensor& sensor, const Genesys_Settings& settings) const { - int start; - DBG(DBG_info, "%s ", __func__); debug_dump(DBG_info, settings); - /* start */ - start = static_cast(dev->model->x_offset); - start = static_cast(start + settings.tl_x); - start = static_cast((start * sensor.optical_res) / MM_PER_INCH); + /* Steps to move to reach scanning area: + + - first we move to physical start of scanning either by a fixed steps amount from the + black strip or by a fixed amount from parking position, minus the steps done during + shading calibration. + + - then we move by the needed offset whitin physical scanning area + */ + unsigned move_dpi = dev->motor.base_ydpi; + + float move = dev->model->y_offset; + move = move + settings.tl_y; + move = static_cast((move * move_dpi) / MM_PER_INCH); + move -= dev->head_pos(ScanHeadId::PRIMARY); + + float start = dev->model->x_offset; + start = start + dev->settings.tl_x; + start = static_cast((start * settings.xres) / MM_PER_INCH); ScanSession session; session.params.xres = settings.xres; session.params.yres = settings.yres; - session.params.startx = start; // not used - session.params.starty = 0; // not used + session.params.startx = static_cast(start); + session.params.starty = static_cast(move); session.params.pixels = settings.pixels; session.params.requested_pixels = settings.requested_pixels; session.params.lines = settings.lines; @@ -784,7 +778,8 @@ ScanSession CommandSetGl847::calculate_scan_session(const Genesys_Device* dev, session.params.scan_method = settings.scan_method; session.params.scan_mode = settings.scan_mode; session.params.color_filter = settings.color_filter; - session.params.flags = ScanFlag::NONE; + // backtracking isn't handled well, so don't enable it + session.params.flags = ScanFlag::DISABLE_BUFFER_FULL_MOVE; compute_session(dev, session, sensor); @@ -860,249 +855,71 @@ void CommandSetGl847::move_back_home(Genesys_Device* dev, bool wait_until_home) scanner_move_back_home(*dev, wait_until_home); } -// Automatically set top-left edge of the scan area by scanning a 200x200 pixels area at 600 dpi -// from very top of scanner -void CommandSetGl847::search_start_position(Genesys_Device* dev) const -{ - DBG_HELPER(dbg); - int size; - Genesys_Register_Set local_reg; - - int pixels = 600; - int dpi = 300; - - local_reg = dev->reg; - - /* sets for a 200 lines * 600 pixels */ - /* normal scan with no shading */ - - // FIXME: the current approach of doing search only for one resolution does not work on scanners - // whith employ different sensors with potentially different settings. - const auto& sensor = sanei_genesys_find_sensor(dev, dpi, 1, dev->model->default_method); - - ScanSession session; - session.params.xres = dpi; - session.params.yres = dpi; - session.params.startx = 0; - session.params.starty = 0; /*we should give a small offset here~60 steps */ - session.params.pixels = 600; - session.params.lines = dev->model->search_lines; - session.params.depth = 8; - session.params.channels = 1; - session.params.scan_method = dev->settings.scan_method; - session.params.scan_mode = ScanColorMode::GRAY; - session.params.color_filter = ColorFilter::GREEN; - session.params.flags = ScanFlag::DISABLE_SHADING | - ScanFlag::DISABLE_GAMMA | - ScanFlag::IGNORE_LINE_DISTANCE; - compute_session(dev, session, sensor); - - init_regs_for_scan_session(dev, sensor, &local_reg, session); - - // send to scanner - dev->interface->write_registers(local_reg); - - size = pixels * dev->model->search_lines; - - std::vector data(size); - - begin_scan(dev, sensor, &local_reg, true); - - if (is_testing_mode()) { - dev->interface->test_checkpoint("search_start_position"); - end_scan(dev, &local_reg, true); - dev->reg = local_reg; - return; - } - - wait_until_buffer_non_empty(dev); - - // now we're on target, we can read data - sanei_genesys_read_data_from_scanner(dev, data.data(), size); - - if (DBG_LEVEL >= DBG_data) { - sanei_genesys_write_pnm_file("gl847_search_position.pnm", data.data(), 8, 1, pixels, - dev->model->search_lines); - } - - end_scan(dev, &local_reg, true); - - /* update regs to copy ASIC internal state */ - dev->reg = local_reg; - - // TODO: find out where sanei_genesys_search_reference_point stores information, - // and use that correctly - for (auto& sensor_update : - sanei_genesys_find_sensors_all_for_write(dev, dev->model->default_method)) - { - sanei_genesys_search_reference_point(dev, sensor_update, data.data(), 0, dpi, pixels, - dev->model->search_lines); - } -} - -// sets up register for coarse gain calibration -// todo: check it for scanners using it -void CommandSetGl847::init_regs_for_coarse_calibration(Genesys_Device* dev, - const Genesys_Sensor& sensor, - Genesys_Register_Set& regs) const -{ - DBG_HELPER(dbg); - - ScanSession session; - session.params.xres = dev->settings.xres; - session.params.yres = dev->settings.yres; - session.params.startx = 0; - session.params.starty = 0; - session.params.pixels = sensor.optical_res / sensor.ccd_pixels_per_system_pixel(); - session.params.lines = 20; - session.params.depth = 16; - session.params.channels = dev->settings.get_channels(); - session.params.scan_method = dev->settings.scan_method; - session.params.scan_mode = dev->settings.scan_mode; - session.params.color_filter = dev->settings.color_filter; - session.params.flags = ScanFlag::DISABLE_SHADING | - ScanFlag::DISABLE_GAMMA | - ScanFlag::SINGLE_LINE | - ScanFlag::IGNORE_LINE_DISTANCE; - compute_session(dev, session, sensor); - - init_regs_for_scan_session(dev, sensor, ®s, session); - - DBG(DBG_info, "%s: optical sensor res: %d dpi, actual res: %d\n", __func__, - sensor.optical_res / sensor.ccd_pixels_per_system_pixel(), dev->settings.xres); - - dev->interface->write_registers(regs); -} - // init registers for shading calibration void CommandSetGl847::init_regs_for_shading(Genesys_Device* dev, const Genesys_Sensor& sensor, Genesys_Register_Set& regs) const { DBG_HELPER(dbg); - dev->calib_channels = 3; + unsigned channels = 3; - /* initial calibration reg values */ - regs = dev->reg; + unsigned resolution = sensor.get_register_hwdpi(dev->settings.xres); - dev->calib_resolution = sensor.get_register_hwdpi(dev->settings.xres); - - const auto& calib_sensor = sanei_genesys_find_sensor(dev, dev->calib_resolution, - dev->calib_channels, + const auto& calib_sensor = sanei_genesys_find_sensor(dev, resolution, channels, dev->settings.scan_method); - dev->calib_total_bytes_to_read = 0; - dev->calib_lines = dev->model->shading_lines; - if (dev->calib_resolution == 4800) { - dev->calib_lines *= 2; - } - dev->calib_pixels = (calib_sensor.sensor_pixels * dev->calib_resolution) / - calib_sensor.optical_res; - - DBG(DBG_io, "%s: calib_lines = %zu\n", __func__, dev->calib_lines); - DBG(DBG_io, "%s: calib_pixels = %zu\n", __func__, dev->calib_pixels); + unsigned calib_lines = + static_cast(dev->model->y_size_calib_mm * resolution / MM_PER_INCH); ScanSession session; - session.params.xres = dev->calib_resolution; - session.params.yres = dev->motor.base_ydpi; + session.params.xres = resolution; + session.params.yres = resolution; session.params.startx = 0; session.params.starty = 20; - session.params.pixels = dev->calib_pixels; - session.params.lines = dev->calib_lines; + session.params.pixels = dev->model->x_size_calib_mm * resolution / MM_PER_INCH;; + session.params.lines = calib_lines; session.params.depth = 16; - session.params.channels = dev->calib_channels; + session.params.channels = channels; session.params.scan_method = dev->settings.scan_method; session.params.scan_mode = ScanColorMode::COLOR_SINGLE_PASS; session.params.color_filter = dev->settings.color_filter; session.params.flags = ScanFlag::DISABLE_SHADING | ScanFlag::DISABLE_GAMMA | - ScanFlag::DISABLE_BUFFER_FULL_MOVE | - ScanFlag::IGNORE_LINE_DISTANCE; + ScanFlag::DISABLE_BUFFER_FULL_MOVE; compute_session(dev, session, calib_sensor); init_regs_for_scan_session(dev, calib_sensor, ®s, session); - dev->interface->write_registers(regs); - - /* we use GENESYS_FLAG_SHADING_REPARK */ + /* we use ModelFlag::SHADING_REPARK */ dev->set_head_pos_zero(ScanHeadId::PRIMARY); + + dev->calib_session = session; } /** @brief set up registers for the actual scan */ -void CommandSetGl847::init_regs_for_scan(Genesys_Device* dev, const Genesys_Sensor& sensor) const +void CommandSetGl847::init_regs_for_scan(Genesys_Device* dev, const Genesys_Sensor& sensor, + Genesys_Register_Set& regs) const { DBG_HELPER(dbg); - float move; - int move_dpi; - float start; - debug_dump(DBG_info, dev->settings); + auto session = calculate_scan_session(dev, sensor, dev->settings); - /* steps to move to reach scanning area: - - first we move to physical start of scanning - either by a fixed steps amount from the black strip - or by a fixed amount from parking position, - minus the steps done during shading calibration - - then we move by the needed offset whitin physical - scanning area + /* Fast move to scan area: - assumption: steps are expressed at maximum motor resolution - - we need: - float y_offset; - float y_size; - float y_offset_calib; - mm_to_steps()=motor dpi / 2.54 / 10=motor dpi / MM_PER_INCH */ - - /* if scanner uses GENESYS_FLAG_SEARCH_START y_offset is - relative from origin, else, it is from parking position */ - - move_dpi = dev->motor.base_ydpi; - - move = static_cast(dev->model->y_offset); - move = static_cast(move + dev->settings.tl_y); - move = static_cast((move * move_dpi) / MM_PER_INCH); - move -= dev->head_pos(ScanHeadId::PRIMARY); - DBG(DBG_info, "%s: move=%f steps\n", __func__, move); - - /* fast move to scan area */ - /* we don't move fast the whole distance since it would involve - * computing acceleration/deceleration distance for scan - * resolution. So leave a remainder for it so scan makes the final - * move tuning */ - if (dev->settings.get_channels() * dev->settings.yres >= 600 && move > 700) { - scanner_move(*dev, dev->model->default_method, static_cast(move - 500), + We don't move fast the whole distance since it would involve computing + acceleration/deceleration distance for scan resolution. So leave a remainder for it so + scan makes the final move tuning + */ + if (dev->settings.get_channels() * dev->settings.yres >= 600 && session.params.starty > 700) { + scanner_move(*dev, dev->model->default_method, + static_cast(session.params.starty - 500), Direction::FORWARD); - move=500; + session.params.starty = 500; } - - DBG(DBG_info, "%s: move=%f steps\n", __func__, move); - DBG(DBG_info, "%s: move=%f steps\n", __func__, move); - - /* start */ - start = static_cast(dev->model->x_offset); - start = static_cast(start + dev->settings.tl_x); - start = static_cast((start * sensor.optical_res) / MM_PER_INCH); - - ScanSession session; - session.params.xres = dev->settings.xres; - session.params.yres = dev->settings.yres; - session.params.startx = static_cast(start); - session.params.starty = static_cast(move); - session.params.pixels = dev->settings.pixels; - session.params.requested_pixels = dev->settings.requested_pixels; - session.params.lines = dev->settings.lines; - session.params.depth = dev->settings.depth; - session.params.channels = dev->settings.get_channels(); - session.params.scan_method = dev->settings.scan_method; - session.params.scan_mode = dev->settings.scan_mode; - session.params.color_filter = dev->settings.color_filter; - // backtracking isn't handled well, so don't enable it - session.params.flags = ScanFlag::DISABLE_BUFFER_FULL_MOVE; compute_session(dev, session, sensor); - init_regs_for_scan_session(dev, sensor, &dev->reg, session); + init_regs_for_scan_session(dev, sensor, ®s, session); } @@ -1193,18 +1010,14 @@ SensorExposure CommandSetGl847::led_calibration(Genesys_Device* dev, const Genes Genesys_Register_Set& regs) const { DBG_HELPER(dbg); - int num_pixels; - int total_size; int used_res; - int i, j; - int val; - int channels; + int i; int avg[3], top[3], bottom[3]; int turn; uint16_t exp[3]; float move; - move = static_cast(dev->model->y_offset_calib_white); + move = dev->model->y_offset_calib_white; move = static_cast((move * (dev->motor.base_ydpi / 4)) / MM_PER_INCH); if (move > 20) { scanner_move(*dev, dev->model->default_method, static_cast(move), @@ -1213,11 +1026,10 @@ SensorExposure CommandSetGl847::led_calibration(Genesys_Device* dev, const Genes DBG(DBG_io, "%s: move=%f steps\n", __func__, move); /* offset calibration is always done in color mode */ - channels = 3; + unsigned channels = 3; used_res = sensor.get_register_hwdpi(dev->settings.xres); const auto& calib_sensor = sanei_genesys_find_sensor(dev, used_res, channels, dev->settings.scan_method); - num_pixels = (calib_sensor.sensor_pixels * used_res) / calib_sensor.optical_res; /* initial calibration reg values */ regs = dev->reg; @@ -1227,7 +1039,7 @@ SensorExposure CommandSetGl847::led_calibration(Genesys_Device* dev, const Genes session.params.yres = used_res; session.params.startx = 0; session.params.starty = 0; - session.params.pixels = num_pixels; + session.params.pixels = dev->model->x_size_calib_mm * used_res / MM_PER_INCH; session.params.lines = 1; session.params.depth = 16; session.params.channels = channels; @@ -1237,14 +1049,12 @@ SensorExposure CommandSetGl847::led_calibration(Genesys_Device* dev, const Genes session.params.flags = ScanFlag::DISABLE_SHADING | ScanFlag::DISABLE_GAMMA | ScanFlag::SINGLE_LINE | - ScanFlag::IGNORE_LINE_DISTANCE; + ScanFlag::IGNORE_STAGGER_OFFSET | + ScanFlag::IGNORE_COLOR_OFFSET; compute_session(dev, session, calib_sensor); init_regs_for_scan_session(dev, calib_sensor, ®s, session); - total_size = num_pixels * channels * (session.params.depth/8) * 1; - std::vector line(total_size); - // initial loop values and boundaries exp[0] = calib_sensor.exposure.red; exp[1] = calib_sensor.exposure.green; @@ -1283,38 +1093,25 @@ SensorExposure CommandSetGl847::led_calibration(Genesys_Device* dev, const Genes return calib_sensor.exposure; } - sanei_genesys_read_data_from_scanner(dev, line.data(), total_size); + auto image = read_unshuffled_image_from_scanner(dev, session, session.output_line_bytes); // stop scanning scanner_stop_action(*dev); - if (DBG_LEVEL >= DBG_data) - { - char fn[30]; + if (DBG_LEVEL >= DBG_data) { + char fn[30]; std::snprintf(fn, 30, "gl847_led_%02d.pnm", turn); - sanei_genesys_write_pnm_file(fn, line.data(), session.params.depth, - channels, num_pixels, 1); - } + sanei_genesys_write_pnm_file(fn, image); + } - /* compute average */ - for (j = 0; j < channels; j++) - { - avg[j] = 0; - for (i = 0; i < num_pixels; i++) - { - if (dev->model->is_cis) - val = - line[i * 2 + j * 2 * num_pixels + 1] * 256 + - line[i * 2 + j * 2 * num_pixels]; - else - val = - line[i * 2 * channels + 2 * j + 1] * 256 + - line[i * 2 * channels + 2 * j]; - avg[j] += val; - } - - avg[j] /= num_pixels; - } + // compute average + for (unsigned ch = 0; ch < channels; ch++) { + avg[ch] = 0; + for (std::size_t x = 0; x < image.get_width(); x++) { + avg[ch] += image.get_raw_channel(x, 0, ch); + } + avg[ch] /= image.get_width(); + } DBG(DBG_info, "%s: average: %d,%d,%d\n", __func__, avg[0], avg[1], avg[2]); @@ -1566,203 +1363,6 @@ void CommandSetGl847::update_home_sensor_gpio(Genesys_Device& dev) const } } -/** @brief search for a full width black or white strip. - * This function searches for a black or white stripe across the scanning area. - * When searching backward, the searched area must completely be of the desired - * color since this area will be used for calibration which scans forward. - * @param dev scanner device - * @param forward true if searching forward, false if searching backward - * @param black true if searching for a black strip, false for a white strip - */ -void CommandSetGl847::search_strip(Genesys_Device* dev, const Genesys_Sensor& sensor, bool forward, - bool black) const -{ - DBG_HELPER_ARGS(dbg, "%s %s", black ? "black" : "white", forward ? "forward" : "reverse"); - unsigned int pixels, lines, channels; - Genesys_Register_Set local_reg; - size_t size; - unsigned int pass, count, found, x, y; - char title[80]; - - set_fe(dev, sensor, AFE_SET); - scanner_stop_action(*dev); - - // set up for a gray scan at lowest dpi - const auto& resolution_settings = dev->model->get_resolution_settings(dev->settings.scan_method); - unsigned dpi = resolution_settings.get_min_resolution_x(); - channels = 1; - /* 10 MM */ - /* lines = (10 * dpi) / MM_PER_INCH; */ - /* shading calibation is done with dev->motor.base_ydpi */ - lines = (dev->model->shading_lines * dpi) / dev->motor.base_ydpi; - pixels = (sensor.sensor_pixels * dpi) / sensor.optical_res; - dev->set_head_pos_zero(ScanHeadId::PRIMARY); - - local_reg = dev->reg; - - ScanSession session; - session.params.xres = dpi; - session.params.yres = dpi; - session.params.startx = 0; - session.params.starty = 0; - session.params.pixels = pixels; - session.params.lines = lines; - session.params.depth = 8; - session.params.channels = channels; - session.params.scan_method = dev->settings.scan_method; - session.params.scan_mode = ScanColorMode::GRAY; - session.params.color_filter = ColorFilter::RED; - session.params.flags = ScanFlag::DISABLE_SHADING | - ScanFlag::DISABLE_GAMMA; - if (!forward) { - session.params.flags |= ScanFlag::REVERSE; - } - compute_session(dev, session, sensor); - - size = pixels * channels * lines * (session.params.depth / 8); - std::vector data(size); - - init_regs_for_scan_session(dev, sensor, &local_reg, session); - - dev->interface->write_registers(local_reg); - - begin_scan(dev, sensor, &local_reg, true); - - if (is_testing_mode()) { - dev->interface->test_checkpoint("search_strip"); - scanner_stop_action(*dev); - return; - } - - wait_until_buffer_non_empty(dev); - - // now we're on target, we can read data - sanei_genesys_read_data_from_scanner(dev, data.data(), size); - - scanner_stop_action(*dev); - - pass = 0; - if (DBG_LEVEL >= DBG_data) - { - std::sprintf(title, "gl847_search_strip_%s_%s%02d.pnm", - black ? "black" : "white", forward ? "fwd" : "bwd", pass); - sanei_genesys_write_pnm_file(title, data.data(), session.params.depth, - channels, pixels, lines); - } - - /* loop until strip is found or maximum pass number done */ - found = 0; - while (pass < 20 && !found) - { - dev->interface->write_registers(local_reg); - - // now start scan - begin_scan(dev, sensor, &local_reg, true); - - wait_until_buffer_non_empty(dev); - - // now we're on target, we can read data - sanei_genesys_read_data_from_scanner(dev, data.data(), size); - - scanner_stop_action(*dev); - - if (DBG_LEVEL >= DBG_data) - { - std::sprintf(title, "gl847_search_strip_%s_%s%02d.pnm", - black ? "black" : "white", - forward ? "fwd" : "bwd", static_cast(pass)); - sanei_genesys_write_pnm_file(title, data.data(), session.params.depth, - channels, pixels, lines); - } - - /* search data to find black strip */ - /* when searching forward, we only need one line of the searched color since we - * will scan forward. But when doing backward search, we need all the area of the - * same color */ - if (forward) - { - for (y = 0; y < lines && !found; y++) - { - count = 0; - /* count of white/black pixels depending on the color searched */ - for (x = 0; x < pixels; x++) - { - /* when searching for black, detect white pixels */ - if (black && data[y * pixels + x] > 90) - { - count++; - } - /* when searching for white, detect black pixels */ - if (!black && data[y * pixels + x] < 60) - { - count++; - } - } - - /* at end of line, if count >= 3%, line is not fully of the desired color - * so we must go to next line of the buffer */ - /* count*100/pixels < 3 */ - if ((count * 100) / pixels < 3) - { - found = 1; - DBG(DBG_data, "%s: strip found forward during pass %d at line %d\n", __func__, - pass, y); - } - else - { - DBG(DBG_data, "%s: pixels=%d, count=%d (%d%%)\n", __func__, pixels, count, - (100 * count) / pixels); - } - } - } - else /* since calibration scans are done forward, we need the whole area - to be of the required color when searching backward */ - { - count = 0; - for (y = 0; y < lines; y++) - { - /* count of white/black pixels depending on the color searched */ - for (x = 0; x < pixels; x++) - { - /* when searching for black, detect white pixels */ - if (black && data[y * pixels + x] > 90) - { - count++; - } - /* when searching for white, detect black pixels */ - if (!black && data[y * pixels + x] < 60) - { - count++; - } - } - } - - /* at end of area, if count >= 3%, area is not fully of the desired color - * so we must go to next buffer */ - if ((count * 100) / (pixels * lines) < 3) - { - found = 1; - DBG(DBG_data, "%s: strip found backward during pass %d \n", __func__, pass); - } - else - { - DBG(DBG_data, "%s: pixels=%d, count=%d (%d%%)\n", __func__, pixels, count, - (100 * count) / pixels); - } - } - pass++; - } - - if (found) - { - DBG(DBG_info, "%s: %s strip found\n", __func__, black ? "black" : "white"); - } - else - { - throw SaneException(SANE_STATUS_UNSUPPORTED, "%s strip not found", black ? "black" : "white"); - } -} - /** * average dark pixels of a 8 bits scan */ @@ -1805,9 +1405,9 @@ void CommandSetGl847::offset_calibration(Genesys_Device* dev, const Genesys_Sens { DBG_HELPER(dbg); unsigned channels; - int pass = 0, avg, total_size; + int pass = 0, avg; int topavg, bottomavg, lines; - int top, bottom, black_pixels, pixels; + int top, bottom, black_pixels; // no gain nor offset for AKM AFE uint8_t reg04 = dev->interface->read_register(REG_0x04); @@ -1817,9 +1417,8 @@ void CommandSetGl847::offset_calibration(Genesys_Device* dev, const Genesys_Sens /* offset calibration is always done in color mode */ channels = 3; - dev->calib_pixels = sensor.sensor_pixels; lines=1; - pixels= (sensor.sensor_pixels * sensor.optical_res) / sensor.optical_res; + unsigned pixels = dev->model->x_size_calib_mm * sensor.optical_res / MM_PER_INCH; black_pixels = (sensor.black_pixels * sensor.optical_res) / sensor.optical_res; DBG(DBG_io2, "%s: black_pixels=%d\n", __func__, black_pixels); @@ -1838,19 +1437,14 @@ void CommandSetGl847::offset_calibration(Genesys_Device* dev, const Genesys_Sens session.params.flags = ScanFlag::DISABLE_SHADING | ScanFlag::DISABLE_GAMMA | ScanFlag::SINGLE_LINE | - ScanFlag::IGNORE_LINE_DISTANCE; + ScanFlag::IGNORE_STAGGER_OFFSET | + ScanFlag::IGNORE_COLOR_OFFSET; compute_session(dev, session, sensor); init_regs_for_scan_session(dev, sensor, ®s, session); sanei_genesys_set_motor_power(regs, false); - /* allocate memory for scans */ - total_size = pixels * channels * lines * (session.params.depth / 8); /* colors * bytes_per_color * scan lines */ - - std::vector first_line(total_size); - std::vector second_line(total_size); - /* init gain */ dev->frontend.set_gain(0, 0); dev->frontend.set_gain(1, 0); @@ -1872,16 +1466,14 @@ void CommandSetGl847::offset_calibration(Genesys_Device* dev, const Genesys_Sens return; } - sanei_genesys_read_data_from_scanner(dev, first_line.data(), total_size); - if (DBG_LEVEL >= DBG_data) - { - char fn[30]; + auto first_line = read_unshuffled_image_from_scanner(dev, session, session.output_total_bytes); + if (DBG_LEVEL >= DBG_data) { + char fn[30]; std::snprintf(fn, 30, "gl847_offset%03d.pnm", bottom); - sanei_genesys_write_pnm_file(fn, first_line.data(), session.params.depth, - channels, pixels, lines); - } + sanei_genesys_write_pnm_file(fn, first_line); + } - bottomavg = dark_average (first_line.data(), pixels, lines, channels, black_pixels); + bottomavg = dark_average(first_line.get_row_ptr(0), pixels, lines, channels, black_pixels); DBG(DBG_io2, "%s: bottom avg=%d\n", __func__, bottomavg); /* now top value */ @@ -1893,9 +1485,9 @@ void CommandSetGl847::offset_calibration(Genesys_Device* dev, const Genesys_Sens dev->interface->write_registers(regs); DBG(DBG_info, "%s: starting second line reading\n", __func__); begin_scan(dev, sensor, ®s, true); - sanei_genesys_read_data_from_scanner(dev, second_line.data(), total_size); + auto second_line = read_unshuffled_image_from_scanner(dev, session, session.output_total_bytes); - topavg = dark_average(second_line.data(), pixels, lines, channels, black_pixels); + topavg = dark_average(second_line.get_row_ptr(0), pixels, lines, channels, black_pixels); DBG(DBG_io2, "%s: top avg=%d\n", __func__, topavg); /* loop until acceptable level */ @@ -1913,17 +1505,15 @@ void CommandSetGl847::offset_calibration(Genesys_Device* dev, const Genesys_Sens dev->interface->write_registers(regs); DBG(DBG_info, "%s: starting second line reading\n", __func__); begin_scan(dev, sensor, ®s, true); - sanei_genesys_read_data_from_scanner(dev, second_line.data(), total_size); + second_line = read_unshuffled_image_from_scanner(dev, session, session.output_total_bytes); - if (DBG_LEVEL >= DBG_data) - { - char fn[30]; + if (DBG_LEVEL >= DBG_data) { + char fn[30]; std::snprintf(fn, 30, "gl847_offset%03d.pnm", dev->frontend.get_offset(1)); - sanei_genesys_write_pnm_file(fn, second_line.data(), session.params.depth, - channels, pixels, lines); - } + sanei_genesys_write_pnm_file(fn, second_line); + } - avg = dark_average(second_line.data(), pixels, lines, channels, black_pixels); + avg = dark_average(second_line.get_row_ptr(0), pixels, lines, channels, black_pixels); DBG(DBG_info, "%s: avg=%d offset=%d\n", __func__, avg, dev->frontend.get_offset(1)); /* compute new boundaries */ @@ -1948,12 +1538,8 @@ void CommandSetGl847::coarse_gain_calibration(Genesys_Device* dev, const Genesys Genesys_Register_Set& regs, int dpi) const { DBG_HELPER_ARGS(dbg, "dpi = %d", dpi); - int pixels; - int total_size; - int i, j, channels; - int max[3]; float gain[3],coeff; - int val, code, lines; + int code, lines; // no gain nor offset for AKM AFE uint8_t reg04 = dev->interface->read_register(REG_0x04); @@ -1962,7 +1548,7 @@ void CommandSetGl847::coarse_gain_calibration(Genesys_Device* dev, const Genesys } /* coarse gain calibration is always done in color mode */ - channels = 3; + unsigned channels = 3; /* follow CKSEL */ if(dev->settings.xresmodel->x_size_calib_mm * sensor.optical_res / MM_PER_INCH; session.params.lines = lines; session.params.depth = 8; session.params.channels = channels; @@ -1991,7 +1576,8 @@ void CommandSetGl847::coarse_gain_calibration(Genesys_Device* dev, const Genesys session.params.flags = ScanFlag::DISABLE_SHADING | ScanFlag::DISABLE_GAMMA | ScanFlag::SINGLE_LINE | - ScanFlag::IGNORE_LINE_DISTANCE; + ScanFlag::IGNORE_STAGGER_OFFSET | + ScanFlag::IGNORE_COLOR_OFFSET; compute_session(dev, session, sensor); try { @@ -2005,10 +1591,6 @@ void CommandSetGl847::coarse_gain_calibration(Genesys_Device* dev, const Genesys dev->interface->write_registers(regs); - total_size = pixels * channels * (16 / session.params.depth) * lines; - - std::vector line(total_size); - set_fe(dev, sensor, AFE_SET); begin_scan(dev, sensor, ®s, true); @@ -2019,41 +1601,33 @@ void CommandSetGl847::coarse_gain_calibration(Genesys_Device* dev, const Genesys return; } - sanei_genesys_read_data_from_scanner(dev, line.data(), total_size); + auto image = read_unshuffled_image_from_scanner(dev, session, session.output_total_bytes); if (DBG_LEVEL >= DBG_data) { - sanei_genesys_write_pnm_file("gl847_gain.pnm", line.data(), session.params.depth, - channels, pixels, lines); + sanei_genesys_write_pnm_file("gl847_gain.pnm", image); } /* average value on each channel */ - for (j = 0; j < channels; j++) - { - max[j] = 0; - for (i = pixels/4; i < (pixels*3/4); i++) - { - if (dev->model->is_cis) { - val = line[i + j * pixels]; - } else { - val = line[i * channels + j]; - } + for (unsigned ch = 0; ch < channels; ch++) { - max[j] += val; - } - max[j] = max[j] / (pixels/2); + auto width = image.get_width(); - gain[j] = (static_cast(sensor.gain_white_ref) * coeff) / max[j]; + std::uint64_t total = 0; + for (std::size_t x = width / 4; x < (width * 3 / 4); x++) { + total += image.get_raw_channel(x, 0, ch); + } + + total /= width / 2; + + gain[ch] = (static_cast(sensor.gain_white_ref) * coeff) / total; /* turn logical gain value into gain code, checking for overflow */ - code = static_cast(283 - 208 / gain[j]); - if (code > 255) - code = 255; - else if (code < 0) - code = 0; - dev->frontend.set_gain(j, code); + code = static_cast(283 - 208 / gain[ch]); + code = clamp(code, 0, 255); + dev->frontend.set_gain(ch, code); - DBG(DBG_proc, "%s: channel %d, max=%d, gain = %f, setting:%d\n", __func__, j, max[j], gain[j], - dev->frontend.get_gain(j)); + DBG(DBG_proc, "%s: channel %d, total=%d, gain = %f, setting:%d\n", __func__, ch, + static_cast(total), gain[ch], dev->frontend.get_gain(ch)); } if (dev->model->is_cis) { diff --git a/backend/genesys/gl847.h b/backend/genesys/gl847.h index a51c2936f..70c711043 100644 --- a/backend/genesys/gl847.h +++ b/backend/genesys/gl847.h @@ -45,7 +45,7 @@ #define BACKEND_GENESYS_GL847_H #include "genesys.h" -#include "command_set.h" +#include "command_set_common.h" namespace genesys { namespace gl847 { @@ -113,7 +113,7 @@ static Memory_layout layouts[]={ } }; -class CommandSetGl847 : public CommandSet +class CommandSetGl847 : public CommandSetCommon { public: ~CommandSetGl847() override = default; @@ -126,13 +126,11 @@ public: Genesys_Register_Set* regs, int* channels, int* total_size) const override; - void init_regs_for_coarse_calibration(Genesys_Device* dev, const Genesys_Sensor& sensor, - Genesys_Register_Set& regs) const override; - void init_regs_for_shading(Genesys_Device* dev, const Genesys_Sensor& sensor, Genesys_Register_Set& regs) const override; - void init_regs_for_scan(Genesys_Device* dev, const Genesys_Sensor& sensor) const override; + void init_regs_for_scan(Genesys_Device* dev, const Genesys_Sensor& sensor, + Genesys_Register_Set& regs) const override; void init_regs_for_scan_session(Genesys_Device* dev, const Genesys_Sensor& sensor, Genesys_Register_Set* reg, @@ -149,8 +147,6 @@ public: void send_gamma_table(Genesys_Device* dev, const Genesys_Sensor& sensor) const override; - void search_start_position(Genesys_Device* dev) const override; - void offset_calibration(Genesys_Device* dev, const Genesys_Sensor& sensor, Genesys_Register_Set& regs) const override; @@ -176,9 +172,6 @@ public: void eject_document(Genesys_Device* dev) const override; - void search_strip(Genesys_Device* dev, const Genesys_Sensor& sensor, - bool forward, bool black) const override; - void move_to_ta(Genesys_Device* dev) const override; void send_shading_data(Genesys_Device* dev, const Genesys_Sensor& sensor, uint8_t* data, diff --git a/backend/genesys/image_buffer.cpp b/backend/genesys/image_buffer.cpp index 07c698725..fe4d75517 100644 --- a/backend/genesys/image_buffer.cpp +++ b/backend/genesys/image_buffer.cpp @@ -89,47 +89,11 @@ bool ImageBuffer::get_data(std::size_t size, std::uint8_t* out_data) return got_data; } -void FakeBufferModel::push_step(std::size_t buffer_size, std::size_t row_bytes) -{ - sizes_.push_back(buffer_size); - available_sizes_.push_back(0); - row_bytes_.push_back(row_bytes); -} - -std::size_t FakeBufferModel::available_space() const -{ - if (sizes_.empty()) - throw SaneException("Model has not been setup"); - return sizes_.front() - available_sizes_.front(); -} - -void FakeBufferModel::simulate_read(std::size_t size) -{ - if (sizes_.empty()) { - throw SaneException("Model has not been setup"); - } - if (available_space() < size) { - throw SaneException("Attempted to simulate read of too much memory"); - } - - available_sizes_.front() += size; - - for (unsigned i = 1; i < sizes_.size(); ++i) { - auto avail_src = available_sizes_[i - 1]; - auto avail_dst = sizes_[i] - available_sizes_[i]; - - auto avail = (std::min(avail_src, avail_dst) / row_bytes_[i]) * row_bytes_[i]; - available_sizes_[i - 1] -= avail; - available_sizes_[i] += avail; - } - available_sizes_.back() = 0; -} - ImageBufferGenesysUsb::ImageBufferGenesysUsb(std::size_t total_size, - const FakeBufferModel& buffer_model, + std::size_t buffer_size, ProducerCallback producer) : remaining_size_{total_size}, - buffer_model_{buffer_model}, + buffer_size_{buffer_size}, producer_{producer} {} @@ -179,7 +143,7 @@ bool ImageBufferGenesysUsb::get_data(std::size_t size, std::uint8_t* out_data) std::size_t ImageBufferGenesysUsb::get_read_size() { - std::size_t size = buffer_model_.available_space(); + std::size_t size = buffer_size_; // never read an odd number. exception: last read // the chip internal counter does not count half words. @@ -195,8 +159,6 @@ std::size_t ImageBufferGenesysUsb::get_read_size() size &= ~0xff; } - buffer_model_.simulate_read(size); - return size; } diff --git a/backend/genesys/image_buffer.h b/backend/genesys/image_buffer.h index 43c3eb751..0b3c4f844 100644 --- a/backend/genesys/image_buffer.h +++ b/backend/genesys/image_buffer.h @@ -73,23 +73,6 @@ private: std::vector buffer_; }; -class FakeBufferModel -{ -public: - FakeBufferModel() {} - - void push_step(std::size_t buffer_size, std::size_t row_bytes); - - std::size_t available_space() const; - - void simulate_read(std::size_t size); - -private: - std::vector sizes_; - std::vector available_sizes_; - std::vector row_bytes_; -}; - // This class is similar to ImageBuffer, but preserves historical peculiarities of buffer handling // in the backend to preserve exact behavior class ImageBufferGenesysUsb @@ -98,7 +81,7 @@ public: using ProducerCallback = std::function; ImageBufferGenesysUsb() {} - ImageBufferGenesysUsb(std::size_t total_size, const FakeBufferModel& buffer_model, + ImageBufferGenesysUsb(std::size_t total_size, std::size_t buffer_size, ProducerCallback producer); std::size_t remaining_size() const { return remaining_size_; } @@ -115,12 +98,12 @@ private: std::size_t remaining_size_ = 0; + std::size_t buffer_size_ = 0; + std::size_t buffer_offset_ = 0; std::size_t buffer_end_ = 0; std::vector buffer_; - FakeBufferModel buffer_model_; - ProducerCallback producer_; }; diff --git a/backend/genesys/image_pipeline.cpp b/backend/genesys/image_pipeline.cpp index c01b7f487..d8178263d 100644 --- a/backend/genesys/image_pipeline.cpp +++ b/backend/genesys/image_pipeline.cpp @@ -109,11 +109,11 @@ bool ImagePipelineNodeBufferedCallableSource::get_next_row_data(std::uint8_t* ou ImagePipelineNodeBufferedGenesysUsb::ImagePipelineNodeBufferedGenesysUsb( std::size_t width, std::size_t height, PixelFormat format, std::size_t total_size, - const FakeBufferModel& buffer_model, ProducerCallback producer) : + std::size_t buffer_size, ProducerCallback producer) : width_{width}, height_{height}, format_{format}, - buffer_{total_size, buffer_model, producer} + buffer_{total_size, buffer_size, producer} { set_remaining_bytes(total_size); } @@ -666,16 +666,21 @@ bool ImagePipelineNodeExtract::get_next_row_data(std::uint8_t* out_data) ImagePipelineNodeCalibrate::ImagePipelineNodeCalibrate(ImagePipelineNode& source, const std::vector& bottom, - const std::vector& top) : + const std::vector& top, + std::size_t x_start) : source_{source} { - auto size = std::min(bottom.size(), top.size()); + std::size_t size = 0; + if (bottom.size() >= x_start && top.size() >= x_start) { + size = std::min(bottom.size() - x_start, top.size() - x_start); + } + offset_.reserve(size); multiplier_.reserve(size); for (std::size_t i = 0; i < size; ++i) { - offset_.push_back(bottom[i] / 65535.0f); - multiplier_.push_back(65535.0f / (top[i] - bottom[i])); + offset_.push_back(bottom[i + x_start] / 65535.0f); + multiplier_.push_back(65535.0f / (top[i + x_start] - bottom[i + x_start])); } } diff --git a/backend/genesys/image_pipeline.h b/backend/genesys/image_pipeline.h index 29868374d..cdda9758d 100644 --- a/backend/genesys/image_pipeline.h +++ b/backend/genesys/image_pipeline.h @@ -157,8 +157,7 @@ public: ImagePipelineNodeBufferedGenesysUsb(std::size_t width, std::size_t height, PixelFormat format, std::size_t total_size, - const FakeBufferModel& buffer_model, - ProducerCallback producer); + std::size_t buffer_size, ProducerCallback producer); std::size_t get_width() const override { return width_; } std::size_t get_height() const override { return height_; } @@ -476,7 +475,7 @@ class ImagePipelineNodeCalibrate : public ImagePipelineNode public: ImagePipelineNodeCalibrate(ImagePipelineNode& source, const std::vector& bottom, - const std::vector& top); + const std::vector& top, std::size_t x_start); std::size_t get_width() const override { return source_.get_width(); } std::size_t get_height() const override { return source_.get_height(); } diff --git a/backend/genesys/low.cpp b/backend/genesys/low.cpp index 7937fcc34..b94d52883 100644 --- a/backend/genesys/low.cpp +++ b/backend/genesys/low.cpp @@ -516,7 +516,7 @@ Image read_unshuffled_image_from_scanner(Genesys_Device* dev, const ScanSession& dev->model->line_mode_color_order); auto width = get_pixels_from_row_bytes(format, session.output_line_bytes_raw); - auto height = session.output_line_count * (dev->model->is_cis ? session.params.channels : 1); + auto height = session.optical_line_count; Image image(width, height, format); @@ -534,26 +534,33 @@ Image read_unshuffled_image_from_scanner(Genesys_Device* dev, const ScanSession& ImagePipelineStack pipeline; pipeline.push_first_node(image); - if ((dev->model->flags & GENESYS_FLAG_16BIT_DATA_INVERTED) && session.params.depth == 16) { - dev->pipeline.push_node(); + if (session.segment_count > 1) { + auto output_width = session.output_segment_pixel_group_count * session.segment_count; + pipeline.push_node(output_width, dev->segment_order, + session.conseq_pixel_dist, + 1, 1); + } + + if (has_flag(dev->model->flags, ModelFlag::INVERTED_16BIT_DATA) && session.params.depth == 16) { + pipeline.push_node(); } #ifdef WORDS_BIGENDIAN - if (depth == 16) { - dev->pipeline.push_node(); + if (session.params.depth == 16) { + pipeline.push_node(); } #endif if (dev->model->is_cis && session.params.channels == 3) { - dev->pipeline.push_node(dev->model->line_mode_color_order); + pipeline.push_node(dev->model->line_mode_color_order); } - if (dev->pipeline.get_output_format() == PixelFormat::BGR888) { - dev->pipeline.push_node(PixelFormat::RGB888); + if (pipeline.get_output_format() == PixelFormat::BGR888) { + pipeline.push_node(PixelFormat::RGB888); } - if (dev->pipeline.get_output_format() == PixelFormat::BGR161616) { - dev->pipeline.push_node(PixelFormat::RGB161616); + if (pipeline.get_output_format() == PixelFormat::BGR161616) { + pipeline.push_node(PixelFormat::RGB161616); } return pipeline.get_image(); @@ -615,20 +622,9 @@ void sanei_genesys_set_lamp_power(Genesys_Device* dev, const Genesys_Sensor& sen regs.find_reg(0x03).value &= ~REG_0x03_LAMPPWR; if (dev->model->asic_type == AsicType::GL841) { - regs_set_exposure(dev->model->asic_type, regs, {0x0101, 0x0101, 0x0101}); + regs_set_exposure(dev->model->asic_type, regs, sanei_genesys_fixup_exposure({0, 0, 0})); regs.set8(0x19, 0xff); } - - if (dev->model->asic_type == AsicType::GL843) { - if (dev->model->model_id == ModelId::PANASONIC_KV_SS080 || - dev->model->model_id == ModelId::HP_SCANJET_4850C || - dev->model->model_id == ModelId::HP_SCANJET_G4010 || - dev->model->model_id == ModelId::HP_SCANJET_G4050) - { - // BUG: datasheet says we shouldn't set exposure to zero - regs_set_exposure(dev->model->asic_type, regs, {0, 0, 0}); - } - } } regs.state.is_lamp_on = set; } @@ -794,70 +790,9 @@ static unsigned align_int_up(unsigned num, unsigned alignment) return num; } -void compute_session_buffer_sizes(AsicType asic, ScanSession& s) +std::size_t compute_session_buffer_sizes(const ScanSession& s) { - size_t line_bytes = s.output_line_bytes; - size_t line_bytes_stagger = s.output_line_bytes; - - if (asic != AsicType::GL646) { - // BUG: this is historical artifact and should be removed. Note that buffer sizes affect - // how often we request the scanner for data and thus change the USB traffic. - line_bytes_stagger = - multiply_by_depth_ceil(s.optical_pixels, s.params.depth) * s.params.channels; - } - - struct BufferConfig { - size_t* result_size = nullptr; - size_t lines = 0; - size_t lines_mult = 0; - size_t max_size = 0; // does not apply if 0 - size_t stagger_lines = 0; - - BufferConfig() = default; - BufferConfig(std::size_t* rs, std::size_t l, std::size_t lm, std::size_t ms, - std::size_t sl) : - result_size{rs}, - lines{l}, - lines_mult{lm}, - max_size{ms}, - stagger_lines{sl} - {} - }; - - std::array configs; - if (asic == AsicType::GL124 || asic == AsicType::GL843) { - configs = { { - { &s.buffer_size_read, 32, 1, 0, s.max_color_shift_lines + s.num_staggered_lines }, - { &s.buffer_size_lines, 32, 1, 0, s.max_color_shift_lines + s.num_staggered_lines }, - { &s.buffer_size_shrink, 16, 1, 0, 0 }, - { &s.buffer_size_out, 8, 1, 0, 0 }, - } }; - } else if (asic == AsicType::GL841) { - size_t max_buf = sanei_genesys_get_bulk_max_size(asic); - configs = { { - { &s.buffer_size_read, 8, 2, max_buf, s.max_color_shift_lines + s.num_staggered_lines }, - { &s.buffer_size_lines, 8, 2, max_buf, s.max_color_shift_lines + s.num_staggered_lines }, - { &s.buffer_size_shrink, 8, 1, max_buf, 0 }, - { &s.buffer_size_out, 8, 1, 0, 0 }, - } }; - } else { - configs = { { - { &s.buffer_size_read, 16, 1, 0, s.max_color_shift_lines + s.num_staggered_lines }, - { &s.buffer_size_lines, 16, 1, 0, s.max_color_shift_lines + s.num_staggered_lines }, - { &s.buffer_size_shrink, 8, 1, 0, 0 }, - { &s.buffer_size_out, 8, 1, 0, 0 }, - } }; - } - - for (BufferConfig& config : configs) { - size_t buf_size = line_bytes * config.lines; - if (config.max_size > 0 && buf_size > config.max_size) { - buf_size = (config.max_size / line_bytes) * line_bytes; - } - buf_size *= config.lines_mult; - buf_size += line_bytes_stagger * config.stagger_lines; - *config.result_size = buf_size; - } + return s.output_line_bytes * (32 + s.max_color_shift_lines + s.num_staggered_lines); } void compute_session_pipeline(const Genesys_Device* dev, ScanSession& s) @@ -900,7 +835,7 @@ void compute_session_pixel_offsets(const Genesys_Device* dev, ScanSession& s, if (has_flag(s.params.flags, ScanFlag::USE_XCORRECTION) && sensor.ccd_start_xoffset > 0) { s.pixel_startx = sensor.ccd_start_xoffset; } - s.pixel_startx += s.params.startx; + s.pixel_startx += s.params.startx * sensor.optical_res / s.params.xres; if (sensor.stagger_config.stagger_at_resolution(s.params.xres, s.params.yres) > 0) { s.pixel_startx |= 1; @@ -912,7 +847,9 @@ void compute_session_pixel_offsets(const Genesys_Device* dev, ScanSession& s, s.pixel_endx /= sensor.ccd_pixels_per_system_pixel() * s.ccd_size_divisor; } else if (dev->model->asic_type == AsicType::GL841) { - s.pixel_startx = ((sensor.ccd_start_xoffset + s.params.startx) * s.optical_resolution) + unsigned startx = s.params.startx * sensor.optical_res / s.params.xres; + + s.pixel_startx = ((sensor.ccd_start_xoffset + startx) * s.optical_resolution) / sensor.optical_res; s.pixel_startx += sensor.dummy_pixel + 1; @@ -937,15 +874,22 @@ void compute_session_pixel_offsets(const Genesys_Device* dev, ScanSession& s, s.pixel_endx = s.pixel_startx + s.optical_pixels; } else if (dev->model->asic_type == AsicType::GL843) { + unsigned startx = s.params.startx * sensor.optical_res / s.params.xres; - s.pixel_startx = (s.params.startx + sensor.dummy_pixel) / ccd_pixels_per_system_pixel; + s.pixel_startx = (startx + sensor.dummy_pixel) / ccd_pixels_per_system_pixel; s.pixel_endx = s.pixel_startx + s.optical_pixels / ccd_pixels_per_system_pixel; s.pixel_startx /= s.hwdpi_divisor; s.pixel_endx /= s.hwdpi_divisor; // in case of stagger we have to start at an odd coordinate - bool stagger_starts_even = dev->model->model_id == ModelId::CANON_8400F; + bool stagger_starts_even = false; + if (dev->model->model_id == ModelId::CANON_4400F || + dev->model->model_id == ModelId::CANON_8400F) + { + stagger_starts_even = true; + } + if (s.num_staggered_lines > 0) { if (!stagger_starts_even && (s.pixel_startx & 1) == 0) { s.pixel_startx++; @@ -960,7 +904,9 @@ void compute_session_pixel_offsets(const Genesys_Device* dev, ScanSession& s, dev->model->asic_type == AsicType::GL846 || dev->model->asic_type == AsicType::GL847) { - s.pixel_startx = s.params.startx; + unsigned startx = s.params.startx * sensor.optical_res / s.params.xres; + + s.pixel_startx = startx; if (s.num_staggered_lines > 0) { s.pixel_startx |= 1; @@ -973,7 +919,9 @@ void compute_session_pixel_offsets(const Genesys_Device* dev, ScanSession& s, s.pixel_endx /= s.hwdpi_divisor * s.segment_count * ccd_pixels_per_system_pixel; } else if (dev->model->asic_type == AsicType::GL124) { - s.pixel_startx = s.params.startx; + unsigned startx = s.params.startx * sensor.optical_res / s.params.xres; + + s.pixel_startx = startx; if (s.num_staggered_lines > 0) { s.pixel_startx |= 1; @@ -1067,9 +1015,8 @@ void compute_session(const Genesys_Device* dev, ScanSession& s, const Genesys_Se // to retrieve from the chip s.output_pixels = (s.optical_pixels * s.output_resolution) / s.optical_resolution; - // Note: staggering is not applied for calibration. Staggering starts at 2400 dpi s.num_staggered_lines = 0; - if (!has_flag(s.params.flags, ScanFlag::IGNORE_LINE_DISTANCE)) + if (!has_flag(s.params.flags, ScanFlag::IGNORE_STAGGER_OFFSET)) { s.num_staggered_lines = sensor.stagger_config.stagger_at_resolution(s.params.xres, s.params.yres); @@ -1091,12 +1038,14 @@ void compute_session(const Genesys_Device* dev, ScanSession& s, const Genesys_Se s.color_shift_lines_b = (s.color_shift_lines_b * s.params.yres) / dev->motor.base_ydpi; s.max_color_shift_lines = 0; - if (s.params.channels > 1 && !has_flag(s.params.flags, ScanFlag::IGNORE_LINE_DISTANCE)) { + if (s.params.channels > 1 && !has_flag(s.params.flags, ScanFlag::IGNORE_COLOR_OFFSET)) { s.max_color_shift_lines = std::max(s.color_shift_lines_r, std::max(s.color_shift_lines_g, s.color_shift_lines_b)); } s.output_line_count = s.params.lines + s.max_color_shift_lines + s.num_staggered_lines; + s.optical_line_count = dev->model->is_cis ? s.output_line_count * s.params.channels + : s.output_line_count; s.output_channel_bytes = multiply_by_depth_ceil(s.output_pixels, s.params.depth); s.output_line_bytes = s.output_channel_bytes * s.params.channels; @@ -1150,16 +1099,15 @@ void compute_session(const Genesys_Device* dev, ScanSession& s, const Genesys_Se if (dev->model->asic_type == AsicType::GL124 || dev->model->asic_type == AsicType::GL843) { - s.output_segment_pixel_group_count = multiply_by_depth_ceil( - s.output_pixels / s.ccd_size_divisor / s.segment_count, s.params.depth); + s.output_segment_pixel_group_count = s.output_pixels / + (s.ccd_size_divisor * s.segment_count); } if (dev->model->asic_type == AsicType::GL845 || dev->model->asic_type == AsicType::GL846 || dev->model->asic_type == AsicType::GL847) { - s.output_segment_pixel_group_count = multiply_by_depth_ceil( - s.optical_pixels / (s.hwdpi_divisor * s.segment_count * ccd_pixels_per_system_pixel), - s.params.depth); + s.output_segment_pixel_group_count = s.optical_pixels / + (s.hwdpi_divisor * s.segment_count * ccd_pixels_per_system_pixel); } s.output_line_bytes_requested = multiply_by_depth_ceil( @@ -1168,7 +1116,7 @@ void compute_session(const Genesys_Device* dev, ScanSession& s, const Genesys_Se s.output_total_bytes_raw = s.output_line_bytes_raw * s.output_line_count; s.output_total_bytes = s.output_line_bytes * s.output_line_count; - compute_session_buffer_sizes(dev->model->asic_type, s); + s.buffer_size_read = compute_session_buffer_sizes(s); compute_session_pipeline(dev, s); compute_session_pixel_offsets(dev, s, sensor); @@ -1179,6 +1127,8 @@ void compute_session(const Genesys_Device* dev, ScanSession& s, const Genesys_Se s.enable_ledadd = (s.params.channels == 1 && dev->model->is_cis && dev->settings.true_gray); } + s.use_host_side_calib = sensor.use_host_side_calib; + if (dev->model->asic_type == AsicType::GL841 || dev->model->asic_type == AsicType::GL843) { @@ -1219,25 +1169,8 @@ static std::size_t get_usb_buffer_read_size(AsicType asic, const ScanSession& se } } -static FakeBufferModel get_fake_usb_buffer_model(const ScanSession& session) -{ - FakeBufferModel model; - model.push_step(session.buffer_size_read, 1); - - if (session.pipeline_needs_reorder) { - model.push_step(session.buffer_size_lines, session.output_line_bytes); - } - if (session.pipeline_needs_ccd) { - model.push_step(session.buffer_size_shrink, session.output_line_bytes); - } - if (session.pipeline_needs_shrink) { - model.push_step(session.buffer_size_out, session.output_line_bytes); - } - - return model; -} - -void build_image_pipeline(Genesys_Device* dev, const ScanSession& session) +void build_image_pipeline(Genesys_Device* dev, const Genesys_Sensor& sensor, + const ScanSession& session) { static unsigned s_pipeline_index = 0; @@ -1255,7 +1188,7 @@ void build_image_pipeline(Genesys_Device* dev, const ScanSession& session) return true; }; - auto lines = session.output_line_count * (dev->model->is_cis ? session.params.channels : 1); + auto lines = session.optical_line_count; dev->pipeline.clear(); @@ -1281,7 +1214,7 @@ void build_image_pipeline(Genesys_Device* dev, const ScanSession& session) dev->pipeline.push_first_node( width, lines, format, read_bytes_left_after_deseg, - get_fake_usb_buffer_model(session), read_data_from_usb); + session.buffer_size_read, read_data_from_usb); } if (DBG_LEVEL >= DBG_io2) { @@ -1290,7 +1223,7 @@ void build_image_pipeline(Genesys_Device* dev, const ScanSession& session) "_0_before_swap.pnm"); } - if ((dev->model->flags & GENESYS_FLAG_16BIT_DATA_INVERTED) && depth == 16) { + if (has_flag(dev->model->flags, ModelFlag::INVERTED_16BIT_DATA) && depth == 16) { dev->pipeline.push_node(); } @@ -1342,11 +1275,19 @@ void build_image_pipeline(Genesys_Device* dev, const ScanSession& session) "_3_after_stagger.pnm"); } - if ((dev->model->flags & GENESYS_FLAG_CALIBRATION_HOST_SIDE) && - !(dev->model->flags & GENESYS_FLAG_NO_CALIBRATION)) + if (session.use_host_side_calib && + !has_flag(dev->model->flags, ModelFlag::NO_CALIBRATION) && + !has_flag(session.params.flags, ScanFlag::DISABLE_SHADING)) { + unsigned pixel_shift = session.params.startx; + if (dev->model->model_id == ModelId::CANON_4400F) { + pixel_shift = + session.params.startx * sensor.optical_res / dev->calib_session.params.xres; + } dev->pipeline.push_node(dev->dark_average_data, - dev->white_average_data); + dev->white_average_data, + pixel_shift * + dev->calib_session.params.channels); if (DBG_LEVEL >= DBG_io2) { dev->pipeline.push_node("gl_pipeline_" + @@ -1486,8 +1427,7 @@ void sanei_genesys_asic_init(Genesys_Device* dev, bool /*max_regs*/) dev->settings.color_filter = ColorFilter::RED; - /* duplicate initial values into calibration registers */ - dev->calib_reg = dev->reg; + dev->initial_regs = dev->reg; const auto& sensor = sanei_genesys_find_sensor_any(dev); @@ -1497,8 +1437,15 @@ void sanei_genesys_asic_init(Genesys_Device* dev, bool /*max_regs*/) dev->already_initialized = true; // Move to home if needed + if (dev->model->model_id == ModelId::CANON_8600F) { + if (!dev->cmd_set->is_head_home(*dev, ScanHeadId::SECONDARY)) { + dev->set_head_pos_unknown(ScanHeadId::SECONDARY); + } + if (!dev->cmd_set->is_head_home(*dev, ScanHeadId::PRIMARY)) { + dev->set_head_pos_unknown(ScanHeadId::SECONDARY); + } + } dev->cmd_set->move_back_home(dev, true); - dev->set_head_pos_zero(ScanHeadId::PRIMARY); // Set powersaving (default = 15 minutes) dev->cmd_set->set_powersaving(dev, 15); @@ -1706,63 +1653,61 @@ void sanei_genesys_wait_for_home(Genesys_Device* dev) } } -/** @brief motor profile - * search for the database of motor profiles and get the best one. Each - * profile is at full step and at a reference exposure. Use first entry - * by default. - * @param motors motor profile database - * @param motor_type motor id - * @param exposure exposure time - * @return a pointer to a Motor_Profile struct - */ -const Motor_Profile& sanei_genesys_get_motor_profile(const std::vector& motors, - MotorId motor_id, int exposure) +const MotorProfile* get_motor_profile_ptr(const std::vector& profiles, + unsigned exposure, + const ScanSession& session) { - int idx; + int best_i = -1; - idx=-1; - for (std::size_t i = 0; i < motors.size(); ++i) { - // exact match - if (motors[i].motor_id == motor_id && motors[i].exposure==exposure) { - return motors[i]; + for (unsigned i = 0; i < profiles.size(); ++i) { + const auto& profile = profiles[i]; + + if (!profile.resolutions.matches(session.params.yres)) { + continue; + } + if (!profile.scan_methods.matches(session.params.scan_method)) { + continue; } - // closest match - if (motors[i].motor_id == motor_id) { - /* if profile exposure is higher than the required one, - * the entry is a candidate for the closest match */ - if (motors[i].exposure == 0 || motors[i].exposure >= exposure) - { - if(idx<0) - { - /* no match found yet */ - idx=i; - } - else - { - /* test for better match */ - if(motors[i].exposure= exposure) { + if (best_i < 0) { + // no match found yet + best_i = i; + } else { + // test for better match + if (profiles[i].max_exposure < profiles[best_i].max_exposure) { + best_i = i; } } } } - /* default fallback */ - if(idx<0) - { - DBG (DBG_warn,"%s: using default motor profile\n",__func__); - idx=0; + if (best_i < 0) { + return nullptr; } - return motors[idx]; + return &profiles[best_i]; +} + +const MotorProfile& get_motor_profile(const std::vector& profiles, + unsigned exposure, + const ScanSession& session) +{ + const auto* profile = get_motor_profile_ptr(profiles, exposure, session); + if (profile == nullptr) { + throw SaneException("Motor slope is not configured"); + } + + return *profile; } MotorSlopeTable sanei_genesys_slope_table(AsicType asic_type, int dpi, int exposure, int base_dpi, unsigned step_multiplier, - const Motor_Profile& motor_profile) + const MotorProfile& motor_profile) { unsigned target_speed_w = ((exposure * dpi) / base_dpi); @@ -1773,7 +1718,7 @@ MotorSlopeTable sanei_genesys_slope_table(AsicType asic_type, int dpi, int expos } MotorSlopeTable create_slope_table_fastest(AsicType asic_type, unsigned step_multiplier, - const Motor_Profile& motor_profile) + const MotorProfile& motor_profile) { return create_slope_table(motor_profile.slope, motor_profile.slope.max_speed_w, motor_profile.step_type, diff --git a/backend/genesys/low.h b/backend/genesys/low.h index d7f5dd2d7..575a2058a 100644 --- a/backend/genesys/low.h +++ b/backend/genesys/low.h @@ -108,39 +108,6 @@ #define GENESYS_GREEN 1 #define GENESYS_BLUE 2 -/* Flags */ -#define GENESYS_FLAG_UNTESTED (1 << 0) /**< Print a warning for these scanners */ -#define GENESYS_FLAG_14BIT_GAMMA (1 << 1) /**< use 14bit Gamma table instead of 12 */ -#define GENESYS_FLAG_XPA (1 << 3) -#define GENESYS_FLAG_SKIP_WARMUP (1 << 4) /**< skip genesys_warmup() */ -/** @brief offset calibration flag - * signals that the scanner does offset calibration. In this case off_calibration() and - * coarse_gain_calibration() functions must be implemented - */ -#define GENESYS_FLAG_OFFSET_CALIBRATION (1 << 5) -#define GENESYS_FLAG_SEARCH_START (1 << 6) /**< do start search before scanning */ -#define GENESYS_FLAG_REPARK (1 << 7) /**< repark head (and check for lock) by - moving without scanning */ -#define GENESYS_FLAG_DARK_CALIBRATION (1 << 8) /**< do dark calibration */ - -#define GENESYS_FLAG_MUST_WAIT (1 << 10) /**< tells wether the scanner must wait for the head when parking */ - - -#define GENESYS_FLAG_HAS_UTA (1 << 11) /**< scanner has a transparency adapter */ - -#define GENESYS_FLAG_DARK_WHITE_CALIBRATION (1 << 12) /**< yet another calibration method. does white and dark shading in one run, depending on a black and a white strip*/ -#define GENESYS_FLAG_CUSTOM_GAMMA (1 << 13) /**< allow custom gamma tables */ -#define GENESYS_FLAG_NO_CALIBRATION (1 << 14) /**< allow scanners to use skip the calibration, needed for sheetfed scanners */ -#define GENESYS_FLAG_SIS_SENSOR (1 << 16) /**< handling of multi-segments sensors in software */ -#define GENESYS_FLAG_SHADING_NO_MOVE (1 << 17) /**< scanner doesn't move sensor during shading calibration */ -#define GENESYS_FLAG_SHADING_REPARK (1 << 18) /**< repark head between shading scans */ -#define GENESYS_FLAG_FULL_HWDPI_MODE (1 << 19) /**< scanner always use maximum hw dpi to setup the sensor */ -// scanner has infrared transparency scanning capability -#define GENESYS_FLAG_HAS_UTA_INFRARED (1 << 20) -// scanner calibration is handled on the host side -#define GENESYS_FLAG_CALIBRATION_HOST_SIDE (1 << 21) -#define GENESYS_FLAG_16BIT_DATA_INVERTED (1 << 22) - #define GENESYS_HAS_NO_BUTTONS 0 /**< scanner has no supported button */ #define GENESYS_HAS_SCAN_SW (1 << 0) /**< scanner has SCAN button */ #define GENESYS_HAS_FILE_SW (1 << 1) /**< scanner has FILE button */ @@ -215,22 +182,6 @@ struct Genesys_USB_Device_Entry { Genesys_Model model; }; -/** - * structure for motor database - */ -struct Motor_Profile -{ - MotorId motor_id; - int exposure; // used only to select the wanted motor - StepType step_type; // default step type for given exposure - MotorSlope slope; -}; - -extern StaticInit> gl843_motor_profiles; -extern StaticInit> gl846_motor_profiles; -extern StaticInit> gl847_motor_profiles; -extern StaticInit> gl124_motor_profiles; - /*--------------------------------------------------------------------------*/ /* common functions needed by low level specific functions */ /*--------------------------------------------------------------------------*/ @@ -335,16 +286,23 @@ void sanei_genesys_send_gamma_table(Genesys_Device* dev, const Genesys_Sensor& s extern void sanei_genesys_stop_motor(Genesys_Device* dev); -extern void sanei_genesys_search_reference_point(Genesys_Device* dev, Genesys_Sensor& sensor, - const uint8_t* src_data, int start_pixel, int dpi, - int width, int height); - // moves the scan head by the specified steps at the motor base dpi void scanner_move(Genesys_Device& dev, ScanMethod scan_method, unsigned steps, Direction direction); void scanner_move_back_home(Genesys_Device& dev, bool wait_until_home); void scanner_move_back_home_ta(Genesys_Device& dev); +/** Search for a full width black or white strip. + This function searches for a black or white stripe across the scanning area. + When searching backward, the searched area must completely be of the desired + color since this area will be used for calibration which scans forward. + + @param dev scanner device + @param forward true if searching forward, false if searching backward + @param black true if searching for a black strip, false for a white strip + */ +void scanner_search_strip(Genesys_Device& dev, bool forward, bool black); + void scanner_clear_scan_and_feed_counts(Genesys_Device& dev); extern void sanei_genesys_write_file(const char* filename, const std::uint8_t* data, @@ -373,22 +331,11 @@ void regs_set_optical_off(AsicType asic_type, Genesys_Register_Set& regs); void sanei_genesys_set_dpihw(Genesys_Register_Set& regs, const Genesys_Sensor& sensor, unsigned dpihw); -inline uint16_t sanei_genesys_fixup_exposure_value(uint16_t value) -{ - if ((value & 0xff00) == 0) { - value |= 0x100; - } - if ((value & 0x00ff) == 0) { - value |= 0x1; - } - return value; -} - inline SensorExposure sanei_genesys_fixup_exposure(SensorExposure exposure) { - exposure.red = sanei_genesys_fixup_exposure_value(exposure.red); - exposure.green = sanei_genesys_fixup_exposure_value(exposure.green); - exposure.blue = sanei_genesys_fixup_exposure_value(exposure.blue); + exposure.red = std::max(1, exposure.red); + exposure.green = std::max(1, exposure.green); + exposure.blue = std::max(1, exposure.blue); return exposure; } @@ -404,15 +351,20 @@ void scanner_stop_action_no_move(Genesys_Device& dev, Genesys_Register_Set& regs bool scanner_is_motor_stopped(Genesys_Device& dev); -const Motor_Profile& sanei_genesys_get_motor_profile(const std::vector& motors, - MotorId motor_id, int exposure); +const MotorProfile* get_motor_profile_ptr(const std::vector& profiles, + unsigned exposure, + const ScanSession& session); + +const MotorProfile& get_motor_profile(const std::vector& profiles, + unsigned exposure, + const ScanSession& session); MotorSlopeTable sanei_genesys_slope_table(AsicType asic_type, int dpi, int exposure, int base_dpi, unsigned step_multiplier, - const Motor_Profile& motor_profile); + const MotorProfile& motor_profile); MotorSlopeTable create_slope_table_fastest(AsicType asic_type, unsigned step_multiplier, - const Motor_Profile& motor_profile); + const MotorProfile& motor_profile); /** @brief find lowest motor resolution for the device. * Parses the resolution list for motor and @@ -451,7 +403,8 @@ extern void sanei_genesys_generate_gamma_buffer(Genesys_Device* dev, void compute_session(const Genesys_Device* dev, ScanSession& s, const Genesys_Sensor& sensor); -void build_image_pipeline(Genesys_Device* dev, const ScanSession& session); +void build_image_pipeline(Genesys_Device* dev, const Genesys_Sensor& sensor, + const ScanSession& session); std::uint8_t compute_frontend_gain(float value, float target_value, FrontendType frontend_type); @@ -509,8 +462,8 @@ void genesys_init_sensor_tables(); void genesys_init_frontend_tables(); void genesys_init_gpo_tables(); void genesys_init_motor_tables(); -void genesys_init_motor_profile_tables(); void genesys_init_usb_device_tables(); +void verify_usb_device_tables(); template void debug_dump(unsigned level, const T& value) diff --git a/backend/genesys/motor.cpp b/backend/genesys/motor.cpp index 910266aa7..f625bf4f6 100644 --- a/backend/genesys/motor.cpp +++ b/backend/genesys/motor.cpp @@ -164,15 +164,31 @@ std::ostream& operator<<(std::ostream& out, const MotorSlope& slope) return out; } +std::ostream& operator<<(std::ostream& out, const MotorProfile& profile) +{ + out << "MotorProfile{\n" + << " max_exposure: " << profile.max_exposure << '\n' + << " step_type: " << profile.step_type << '\n' + << " motor_vref: " << profile.motor_vref << '\n' + << " resolutions: " << format_indent_braced_list(4, profile.resolutions) << '\n' + << " scan_methods: " << format_indent_braced_list(4, profile.scan_methods) << '\n' + << " slope: " << format_indent_braced_list(4, profile.slope) << '\n' + << '}'; + return out; +} + std::ostream& operator<<(std::ostream& out, const Genesys_Motor& motor) { out << "Genesys_Motor{\n" << " id: " << static_cast(motor.id) << '\n' << " base_ydpi: " << motor.base_ydpi << '\n' << " optical_ydpi: " << motor.optical_ydpi << '\n' - << " slopes: " - << format_indent_braced_list(4, format_vector_indent_braced(4, "MotorSlope", - motor.slopes)) + << " profiles: " + << format_indent_braced_list(4, format_vector_indent_braced(4, "MotorProfile", + motor.profiles)) << '\n' + << " fast_profiles: " + << format_indent_braced_list(4, format_vector_indent_braced(4, "MotorProfile", + motor.fast_profiles)) << '\n' << '}'; return out; } diff --git a/backend/genesys/motor.h b/backend/genesys/motor.h index d80da6dce..aacbbba3e 100644 --- a/backend/genesys/motor.h +++ b/backend/genesys/motor.h @@ -44,9 +44,11 @@ #ifndef BACKEND_GENESYS_MOTOR_H #define BACKEND_GENESYS_MOTOR_H +#include #include #include #include "enums.h" +#include "sensor.h" namespace genesys { @@ -137,6 +139,26 @@ MotorSlopeTable create_slope_table(const MotorSlope& slope, unsigned target_spee std::ostream& operator<<(std::ostream& out, const MotorSlope& slope); +struct MotorProfile +{ + MotorProfile() = default; + MotorProfile(const MotorSlope& a_slope, StepType a_step_type, unsigned a_max_exposure) : + slope{a_slope}, step_type{a_step_type}, max_exposure{a_max_exposure} + {} + + MotorSlope slope; + StepType step_type = StepType::FULL; + int motor_vref = -1; + + // the resolutions this profile is good for + ResolutionFilter resolutions = ResolutionFilter::ANY; + // the scan method this profile is good for. If the list is empty, good for any method. + ScanMethodFilter scan_methods = ScanMethodFilter::ANY; + + unsigned max_exposure = 0; // 0 - any exposure +}; + +std::ostream& operator<<(std::ostream& out, const MotorProfile& profile); struct Genesys_Motor { @@ -149,24 +171,40 @@ struct Genesys_Motor // maximum resolution in y-direction. Unit: 1/inch int optical_ydpi = 0; // slopes to derive individual slopes from - std::vector slopes; + std::vector profiles; + // slopes to derive individual slopes from for fast moving + std::vector fast_profiles; - MotorSlope& get_slope(StepType step_type) + MotorSlope& get_slope_with_step_type(StepType step_type) { - return slopes[static_cast(step_type)]; + for (auto& p : profiles) { + if (p.step_type == step_type) + return p.slope; + } + throw SaneException("No motor profile with step type"); } - const MotorSlope& get_slope(StepType step_type) const + const MotorSlope& get_slope_with_step_type(StepType step_type) const { - return slopes[static_cast(step_type)]; + for (const auto& p : profiles) { + if (p.step_type == step_type) + return p.slope; + } + throw SaneException("No motor profile with step type"); } StepType max_step_type() const { - if (slopes.empty()) { - throw std::runtime_error("Slopes table is empty"); + if (profiles.empty()) { + throw std::runtime_error("Profiles table is empty"); } - return static_cast(slopes.size() - 1); + StepType step_type = StepType::FULL; + for (const auto& p : profiles) { + step_type = static_cast( + std::max(static_cast(step_type), + static_cast(p.step_type))); + } + return step_type; } }; diff --git a/backend/genesys/register.h b/backend/genesys/register.h index bbc7ec8a4..da834a7ff 100644 --- a/backend/genesys/register.h +++ b/backend/genesys/register.h @@ -44,6 +44,7 @@ #ifndef BACKEND_GENESYS_REGISTER_H #define BACKEND_GENESYS_REGISTER_H +#include "enums.h" #include "utilities.h" #include @@ -76,7 +77,7 @@ struct GenesysRegisterSetState bool is_lamp_on = false; bool is_xpa_on = false; bool is_motor_on = false; - bool is_xpa_motor_on = false; + MotorMode motor_mode = MotorMode::PRIMARY; }; template diff --git a/backend/genesys/scanner_interface.h b/backend/genesys/scanner_interface.h index 03c713249..e9c26abf2 100644 --- a/backend/genesys/scanner_interface.h +++ b/backend/genesys/scanner_interface.h @@ -56,11 +56,6 @@ namespace genesys { class ScannerInterface { public: - enum Flags { - FLAG_NONE = 0, - FLAG_SWAP_REGISTERS = 1 << 0, - FLAG_SMALL_ADDRESS = 1 << 1 - }; virtual ~ScannerInterface(); @@ -77,10 +72,10 @@ public: // GL646, GL841, GL843 have different ways to write to RAM and to gamma tables // FIXME: remove flags when updating tests virtual void write_buffer(std::uint8_t type, std::uint32_t addr, std::uint8_t* data, - std::size_t size, Flags flags = FLAG_NONE) = 0; + std::size_t size) = 0; virtual void write_gamma(std::uint8_t type, std::uint32_t addr, std::uint8_t* data, - std::size_t size, Flags flags = FLAG_NONE) = 0; + std::size_t size) = 0; // GL845, GL846, GL847 and GL124 have a uniform way to write to RAM tables virtual void write_ahb(std::uint32_t addr, std::uint32_t size, std::uint8_t* data) = 0; diff --git a/backend/genesys/scanner_interface_usb.cpp b/backend/genesys/scanner_interface_usb.cpp index d4d83dd99..592276750 100644 --- a/backend/genesys/scanner_interface_usb.cpp +++ b/backend/genesys/scanner_interface_usb.cpp @@ -351,7 +351,7 @@ void ScannerInterfaceUsb::bulk_write_data(std::uint8_t addr, std::uint8_t* data, } void ScannerInterfaceUsb::write_buffer(std::uint8_t type, std::uint32_t addr, std::uint8_t* data, - std::size_t size, Flags flags) + std::size_t size) { DBG_HELPER_ARGS(dbg, "type: 0x%02x, addr: 0x%08x, size: 0x%08zx", type, addr, size); if (dev_->model->asic_type != AsicType::GL646 && @@ -362,19 +362,9 @@ void ScannerInterfaceUsb::write_buffer(std::uint8_t type, std::uint32_t addr, st } if (dev_->model->asic_type == AsicType::GL843) { - if (flags & FLAG_SWAP_REGISTERS) { - if (!(flags & FLAG_SMALL_ADDRESS)) { - write_register(0x29, ((addr >> 20) & 0xff)); - } - write_register(0x2a, ((addr >> 12) & 0xff)); - write_register(0x2b, ((addr >> 4) & 0xff)); - } else { - write_register(0x2b, ((addr >> 4) & 0xff)); - write_register(0x2a, ((addr >> 12) & 0xff)); - if (!(flags & FLAG_SMALL_ADDRESS)) { - write_register(0x29, ((addr >> 20) & 0xff)); - } - } + write_register(0x2b, ((addr >> 4) & 0xff)); + write_register(0x2a, ((addr >> 12) & 0xff)); + write_register(0x29, ((addr >> 20) & 0xff)); } else { write_register(0x2b, ((addr >> 4) & 0xff)); write_register(0x2a, ((addr >> 12) & 0xff)); @@ -383,24 +373,25 @@ void ScannerInterfaceUsb::write_buffer(std::uint8_t type, std::uint32_t addr, st } void ScannerInterfaceUsb::write_gamma(std::uint8_t type, std::uint32_t addr, std::uint8_t* data, - std::size_t size, Flags flags) + std::size_t size) { DBG_HELPER_ARGS(dbg, "type: 0x%02x, addr: 0x%08x, size: 0x%08zx", type, addr, size); - if (dev_->model->asic_type != AsicType::GL646 && - dev_->model->asic_type != AsicType::GL841 && + if (dev_->model->asic_type != AsicType::GL841 && dev_->model->asic_type != AsicType::GL843) { throw SaneException("Unsupported transfer mode"); } - if (flags & FLAG_SWAP_REGISTERS) { - write_register(0x5b, ((addr >> 12) & 0xff)); - write_register(0x5c, ((addr >> 4) & 0xff)); - } else { - write_register(0x5c, ((addr >> 4) & 0xff)); - write_register(0x5b, ((addr >> 12) & 0xff)); - } + write_register(0x5b, ((addr >> 12) & 0xff)); + write_register(0x5c, ((addr >> 4) & 0xff)); bulk_write_data(type, data, size); + + if (dev_->model->asic_type == AsicType::GL843) { + // it looks like we need to reset the address so that subsequent buffer operations work. + // Most likely the MTRTBL register is to blame. + write_register(0x5b, 0); + write_register(0x5c, 0); + } } void ScannerInterfaceUsb::write_ahb(std::uint32_t addr, std::uint32_t size, std::uint8_t* data) diff --git a/backend/genesys/scanner_interface_usb.h b/backend/genesys/scanner_interface_usb.h index 06b51ffb0..33fb8fed2 100644 --- a/backend/genesys/scanner_interface_usb.h +++ b/backend/genesys/scanner_interface_usb.h @@ -67,9 +67,9 @@ public: void bulk_write_data(std::uint8_t addr, std::uint8_t* data, std::size_t size) override; void write_buffer(std::uint8_t type, std::uint32_t addr, std::uint8_t* data, - std::size_t size, Flags flags) override; + std::size_t size) override; void write_gamma(std::uint8_t type, std::uint32_t addr, std::uint8_t* data, - std::size_t size, Flags flags) override; + std::size_t size) override; void write_ahb(std::uint32_t addr, std::uint32_t size, std::uint8_t* data) override; diff --git a/backend/genesys/sensor.cpp b/backend/genesys/sensor.cpp index e54af654d..f471a7282 100644 --- a/backend/genesys/sensor.cpp +++ b/backend/genesys/sensor.cpp @@ -122,6 +122,16 @@ std::ostream& operator<<(std::ostream& out, const ResolutionFilter& resolutions) return out; } +std::ostream& operator<<(std::ostream& out, const ScanMethodFilter& methods) +{ + if (methods.matches_any()) { + out << "ANY"; + return out; + } + out << format_vector_unsigned(4, methods.methods()); + return out; +} + std::ostream& operator<<(std::ostream& out, const Genesys_Sensor& sensor) { out << "Genesys_Sensor{\n" @@ -138,7 +148,6 @@ std::ostream& operator<<(std::ostream& out, const Genesys_Sensor& sensor) << " black_pixels: " << sensor.black_pixels << '\n' << " dummy_pixel: " << sensor.dummy_pixel << '\n' << " ccd_start_xoffset: " << sensor.ccd_start_xoffset << '\n' - << " sensor_pixels: " << sensor.sensor_pixels << '\n' << " fau_gain_white_ref: " << sensor.fau_gain_white_ref << '\n' << " gain_white_ref: " << sensor.gain_white_ref << '\n' << " exposure: " << format_indent_braced_list(4, sensor.exposure) << '\n' @@ -147,6 +156,7 @@ std::ostream& operator<<(std::ostream& out, const Genesys_Sensor& sensor) << " segment_order: " << format_indent_braced_list(4, format_vector_unsigned(4, sensor.segment_order)) << '\n' << " stagger_config: " << format_indent_braced_list(4, sensor.stagger_config) << '\n' + << " use_host_side_calib: " << sensor.use_host_side_calib << '\n' << " custom_base_regs: " << format_indent_braced_list(4, sensor.custom_base_regs) << '\n' << " custom_regs: " << format_indent_braced_list(4, sensor.custom_regs) << '\n' << " custom_fe_regs: " << format_indent_braced_list(4, sensor.custom_fe_regs) << '\n' diff --git a/backend/genesys/sensor.h b/backend/genesys/sensor.h index e70728e66..46110ebfc 100644 --- a/backend/genesys/sensor.h +++ b/backend/genesys/sensor.h @@ -290,6 +290,46 @@ void serialize(Stream& str, ResolutionFilter& x) } +class ScanMethodFilter +{ +public: + struct Any {}; + static constexpr Any ANY{}; + + ScanMethodFilter() : matches_any_{false} {} + ScanMethodFilter(Any) : matches_any_{true} {} + ScanMethodFilter(std::initializer_list methods) : + matches_any_{false}, + methods_{methods} + {} + + bool matches(ScanMethod method) const + { + if (matches_any_) + return true; + auto it = std::find(methods_.begin(), methods_.end(), method); + return it != methods_.end(); + } + + bool operator==(const ScanMethodFilter& other) const + { + return matches_any_ == other.matches_any_ && methods_ == other.methods_; + } + + bool matches_any() const { return matches_any_; } + const std::vector& methods() const { return methods_; } + +private: + bool matches_any_ = false; + std::vector methods_; + + template + friend void serialize(Stream& str, ResolutionFilter& x); +}; + +std::ostream& operator<<(std::ostream& out, const ScanMethodFilter& methods); + + struct Genesys_Sensor { Genesys_Sensor() = default; @@ -334,8 +374,6 @@ struct Genesys_Sensor { int dummy_pixel = 0; // last pixel of CCD margin at optical resolution int ccd_start_xoffset = 0; - // total pixels used by the sensor - int sensor_pixels = 0; // TA CCD target code (reference gain) int fau_gain_white_ref = 0; // CCD target code (reference gain) @@ -359,6 +397,9 @@ struct Genesys_Sensor { // high-enough resolution, every other pixel column is shifted StaggerConfig stagger_config; + // True if calibration should be performed on host-side + bool use_host_side_calib = false; + GenesysRegisterSettingSet custom_base_regs; // gl646-specific GenesysRegisterSettingSet custom_regs; GenesysRegisterSettingSet custom_fe_regs; @@ -366,12 +407,10 @@ struct Genesys_Sensor { // red, green and blue gamma coefficient for default gamma tables AssignableArray gamma; - std::function get_logical_hwdpi_fun; std::function get_register_hwdpi_fun; std::function get_ccd_size_divisor_fun; std::function get_hwdpi_divisor_fun; - unsigned get_logical_hwdpi(unsigned xres) const { return get_logical_hwdpi_fun(*this, xres); } unsigned get_register_hwdpi(unsigned xres) const { return get_register_hwdpi_fun(*this, xres); } unsigned get_ccd_size_divisor_for_dpi(unsigned xres) const { @@ -412,7 +451,6 @@ struct Genesys_Sensor { black_pixels == other.black_pixels && dummy_pixel == other.dummy_pixel && ccd_start_xoffset == other.ccd_start_xoffset && - sensor_pixels == other.sensor_pixels && fau_gain_white_ref == other.fau_gain_white_ref && gain_white_ref == other.gain_white_ref && exposure == other.exposure && @@ -420,6 +458,7 @@ struct Genesys_Sensor { segment_size == other.segment_size && segment_order == other.segment_order && stagger_config == other.stagger_config && + use_host_side_calib == other.use_host_side_calib && custom_base_regs == other.custom_base_regs && custom_regs == other.custom_regs && custom_fe_regs == other.custom_fe_regs && @@ -438,7 +477,6 @@ void serialize(Stream& str, Genesys_Sensor& x) serialize(str, x.black_pixels); serialize(str, x.dummy_pixel); serialize(str, x.ccd_start_xoffset); - serialize(str, x.sensor_pixels); serialize(str, x.fau_gain_white_ref); serialize(str, x.gain_white_ref); serialize_newline(str); @@ -453,6 +491,8 @@ void serialize(Stream& str, Genesys_Sensor& x) serialize_newline(str); serialize(str, x.stagger_config); serialize_newline(str); + serialize(str, x.use_host_side_calib); + serialize_newline(str); serialize(str, x.custom_base_regs); serialize_newline(str); serialize(str, x.custom_regs); diff --git a/backend/genesys/settings.cpp b/backend/genesys/settings.cpp index 41c66de78..3fdaa88df 100644 --- a/backend/genesys/settings.cpp +++ b/backend/genesys/settings.cpp @@ -72,14 +72,20 @@ std::ostream& operator<<(std::ostream& out, const SetupParams& params) { StreamStateSaver state_saver{out}; + bool reverse = has_flag(params.flags, ScanFlag::REVERSE); + out << "SetupParams{\n" - << " xres: " << params.xres << " yres: " << params.yres << '\n' - << " lines: " << params.lines << '\n' - << " pixels per line (actual): " << params.pixels << '\n' - << " pixels per line (requested): " << params.requested_pixels << '\n' + << " xres: " << params.xres + << " startx: " << params.startx + << " pixels per line (actual): " << params.pixels + << " pixels per line (requested): " << params.requested_pixels << '\n' + + << " yres: " << params.yres + << " lines: " << params.lines + << " starty: " << params.starty << (reverse ? " (reverse)" : "") << '\n' + << " depth: " << params.depth << '\n' << " channels: " << params.channels << '\n' - << " startx: " << params.startx << " starty: " << params.starty << '\n' << " scan_mode: " << params.scan_mode << '\n' << " color_filter: " << params.color_filter << '\n' << " flags: " << params.flags << '\n' @@ -87,6 +93,45 @@ std::ostream& operator<<(std::ostream& out, const SetupParams& params) return out; } +bool ScanSession::operator==(const ScanSession& other) const +{ + return params == other.params && + computed == other.computed && + hwdpi_divisor == other.hwdpi_divisor && + ccd_size_divisor == other.ccd_size_divisor && + optical_resolution == other.optical_resolution && + optical_pixels == other.optical_pixels && + optical_pixels_raw == other.optical_pixels_raw && + optical_line_count == other.optical_line_count && + output_resolution == other.output_resolution && + output_pixels == other.output_pixels && + output_channel_bytes == other.output_channel_bytes && + output_line_bytes == other.output_line_bytes && + output_line_bytes_raw == other.output_line_bytes_raw && + output_line_bytes_requested == other.output_line_bytes_requested && + output_line_count == other.output_line_count && + output_total_bytes_raw == other.output_total_bytes_raw && + output_total_bytes == other.output_total_bytes && + num_staggered_lines == other.num_staggered_lines && + max_color_shift_lines == other.max_color_shift_lines && + color_shift_lines_r == other.color_shift_lines_r && + color_shift_lines_g == other.color_shift_lines_g && + color_shift_lines_b == other.color_shift_lines_b && + segment_count == other.segment_count && + pixel_startx == other.pixel_startx && + pixel_endx == other.pixel_endx && + pixel_count_multiplier == other.pixel_count_multiplier && + conseq_pixel_dist == other.conseq_pixel_dist && + output_segment_pixel_group_count == other.output_segment_pixel_group_count && + output_segment_start_offset == other.output_segment_start_offset && + buffer_size_read == other.buffer_size_read && + enable_ledadd == other.enable_ledadd && + use_host_side_calib == other.use_host_side_calib && + pipeline_needs_reorder == other.pipeline_needs_reorder && + pipeline_needs_ccd == other.pipeline_needs_ccd && + pipeline_needs_shrink == other.pipeline_needs_shrink; +} + std::ostream& operator<<(std::ostream& out, const ScanSession& session) { out << "ScanSession{\n" @@ -96,6 +141,7 @@ std::ostream& operator<<(std::ostream& out, const ScanSession& session) << " optical_resolution: " << session.optical_resolution << '\n' << " optical_pixels: " << session.optical_pixels << '\n' << " optical_pixels_raw: " << session.optical_pixels_raw << '\n' + << " optical_line_count: " << session.optical_line_count << '\n' << " output_resolution: " << session.output_resolution << '\n' << " output_pixels: " << session.output_pixels << '\n' << " output_line_bytes: " << session.output_line_bytes << '\n' @@ -114,9 +160,8 @@ std::ostream& operator<<(std::ostream& out, const ScanSession& session) << " output_segment_pixel_group_count: " << session.output_segment_pixel_group_count << '\n' << " buffer_size_read: " << session.buffer_size_read << '\n' - << " buffer_size_read: " << session.buffer_size_lines << '\n' - << " buffer_size_shrink: " << session.buffer_size_shrink << '\n' - << " buffer_size_out: " << session.buffer_size_out << '\n' + << " enable_ledadd: " << session.enable_ledadd << '\n' + << " use_host_side_calib: " << session.use_host_side_calib << '\n' << " filters: " << (session.pipeline_needs_reorder ? " reorder": "") << (session.pipeline_needs_ccd ? " ccd": "") diff --git a/backend/genesys/settings.h b/backend/genesys/settings.h index a697e604a..914ecbde0 100644 --- a/backend/genesys/settings.h +++ b/backend/genesys/settings.h @@ -60,9 +60,9 @@ struct Genesys_Settings unsigned yres = 0; //x start on scan table in mm - double tl_x = 0; + float tl_x = 0; // y start on scan table in mm - double tl_y = 0; + float tl_y = 0; // number of lines at scan resolution unsigned int lines = 0; @@ -116,7 +116,7 @@ struct SetupParams { unsigned xres = NOT_SET; // resolution in y direction unsigned yres = NOT_SET; - // start pixel in X direction, from dummy_pixel + 1 + // start pixel in X direction, from dummy_pixel + 1. Counted in terms of xres. unsigned startx = NOT_SET; // start pixel in Y direction, counted according to base_ydpi unsigned starty = NOT_SET; @@ -228,6 +228,9 @@ struct ScanSession { // only on gl846, g847 unsigned optical_pixels_raw = 0; + // the number of optical scan lines. Equal to output_line_count on CCD scanners. + unsigned optical_line_count = 0; + // the resolution of the output data. // gl843-only unsigned output_resolution = 0; @@ -297,15 +300,15 @@ struct ScanSession { // Currently it's always zero. unsigned output_segment_start_offset = 0; - // the sizes of the corresponding buffers + // the size of the read buffer. size_t buffer_size_read = 0; - size_t buffer_size_lines = 0; - size_t buffer_size_shrink = 0; - size_t buffer_size_out = 0; // whether to enable ledadd functionality bool enable_ledadd = false; + // whether calibration should be performed host-side + bool use_host_side_calib = false; + // what pipeline modifications are needed bool pipeline_needs_reorder = false; bool pipeline_needs_ccd = false; @@ -317,10 +320,53 @@ struct ScanSession { throw std::runtime_error("ScanSession is not computed"); } } + + bool operator==(const ScanSession& other) const; }; std::ostream& operator<<(std::ostream& out, const ScanSession& session); +template +void serialize(Stream& str, ScanSession& x) +{ + serialize(str, x.params); + serialize_newline(str); + serialize(str, x.computed); + serialize(str, x.hwdpi_divisor); + serialize(str, x.ccd_size_divisor); + serialize(str, x.optical_resolution); + serialize(str, x.optical_pixels); + serialize(str, x.optical_pixels_raw); + serialize(str, x.optical_line_count); + serialize(str, x.output_resolution); + serialize(str, x.output_pixels); + serialize(str, x.output_channel_bytes); + serialize(str, x.output_line_bytes); + serialize(str, x.output_line_bytes_raw); + serialize(str, x.output_line_bytes_requested); + serialize(str, x.output_line_count); + serialize(str, x.output_total_bytes_raw); + serialize(str, x.output_total_bytes); + serialize(str, x.num_staggered_lines); + serialize(str, x.max_color_shift_lines); + serialize(str, x.color_shift_lines_r); + serialize(str, x.color_shift_lines_g); + serialize(str, x.color_shift_lines_b); + serialize(str, x.segment_count); + serialize(str, x.pixel_startx); + serialize(str, x.pixel_endx); + serialize(str, x.pixel_count_multiplier); + serialize(str, x.conseq_pixel_dist); + serialize(str, x.output_segment_pixel_group_count); + serialize(str, x.output_segment_start_offset); + serialize(str, x.buffer_size_read); + serialize(str, x.enable_ledadd); + serialize(str, x.use_host_side_calib); + serialize(str, x.pipeline_needs_reorder); + serialize(str, x.pipeline_needs_ccd); + serialize(str, x.pipeline_needs_shrink); +} + std::ostream& operator<<(std::ostream& out, const SANE_Parameters& params); } // namespace genesys diff --git a/backend/genesys/tables_model.cpp b/backend/genesys/tables_model.cpp index d7b923472..c3509a1cd 100644 --- a/backend/genesys/tables_model.cpp +++ b/backend/genesys/tables_model.cpp @@ -62,6 +62,40 @@ StaticInit> s_usb_devices; void genesys_init_usb_device_tables() { + /* Guidelines on calibration area sizes + ------------------------------------ + + on many scanners scanning a single line takes aroung 10ms. In order not to take excessive + amount of time, the sizes of the calibration area are limited as follows: + 2400 dpi or less: 4mm (would take ~4 seconds on 2400 dpi) + 4800 dpi or less: 3mm (would take ~6 seconds on 4800 dpi) + anything more: 2mm (would take ~7 seconds on 9600 dpi) + + Optional properties + ------------------- + + All fields of the Genesys_Model class are defined even if they use default value, with + the following exceptions: + + If the scanner does not have ScanMethod::TRANSPARENCY or ScanMethod::TRANSPARENCY_INFRARED, + the following properties are optional: + + model.x_offset_ta = 0.0; + model.y_offset_ta = 0.0; + model.x_size_ta = 0.0; + model.y_size_ta = 0.0; + + model.y_offset_sensor_to_ta = 0.0; + model.y_offset_calib_white_ta = 0.0; + model.y_size_calib_ta_mm = 0.0; + + If the scanner does not have ModelFlag::DARK_WHITE_CALIBRATION, then the following + properties are optional: + + model.y_offset_calib_dark_white_mm = 0.0; + model.y_size_calib_dark_white_mm = 0.0; + */ + s_usb_devices.init(); Genesys_Model model; @@ -87,15 +121,9 @@ void genesys_init_usb_device_tables() model.y_size = 299.0; model.y_offset_calib_white = 0.0; + model.y_size_calib_mm = 4.0; model.x_offset_calib_black = 1.0; - - model.x_offset_ta = 0.0; - model.y_offset_ta = 0.0; - model.x_size_ta = 100.0; - model.y_size_ta = 100.0; - - model.y_offset_sensor_to_ta = 0.0; - model.y_offset_calib_white_ta = 0.0; + model.x_size_calib_mm = 228.6; model.post_scan = 0.0; model.eject_feed = 0.0; @@ -112,10 +140,8 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::WOLFSON_UMAX; model.gpio_id = GpioId::UMAX; model.motor_id = MotorId::UMAX; - model.flags = GENESYS_FLAG_UNTESTED; + model.flags = ModelFlag::UNTESTED; model.buttons = GENESYS_HAS_NO_BUTTONS; - model.shading_lines = 20; - model.shading_ta_lines = 0; model.search_lines = 200; s_usb_devices->emplace_back(0x0638, 0x0a10, model); @@ -144,17 +170,13 @@ void genesys_init_usb_device_tables() model.x_size = 218.0; model.y_size = 299.0; - model.y_offset_calib_white = 6.0; + model.y_offset_calib_white = 3.0; + model.y_size_calib_mm = 3.0; + model.y_offset_calib_dark_white_mm = 1.0; + model.y_size_calib_dark_white_mm = 6.0; + model.x_size_calib_mm = 220.13334; model.x_offset_calib_black = 0.0; - model.x_offset_ta = 0.0; - model.y_offset_ta = 0.0; - model.x_size_ta = 100.0; - model.y_size_ta = 100.0; - - model.y_offset_sensor_to_ta = 0.0; - model.y_offset_calib_white_ta = 0.0; - model.post_scan = 0.0; model.eject_feed = 0.0; @@ -170,16 +192,13 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::CANON_LIDE_35; model.gpio_id = GpioId::CANON_LIDE_35; model.motor_id = MotorId::CANON_LIDE_35; - model.flags = GENESYS_FLAG_SKIP_WARMUP | - GENESYS_FLAG_OFFSET_CALIBRATION | - GENESYS_FLAG_DARK_WHITE_CALIBRATION | - GENESYS_FLAG_CUSTOM_GAMMA; + model.flags = ModelFlag::SKIP_WARMUP | + ModelFlag::DARK_WHITE_CALIBRATION | + ModelFlag::CUSTOM_GAMMA; model.buttons = GENESYS_HAS_SCAN_SW | GENESYS_HAS_FILE_SW | GENESYS_HAS_EMAIL_SW | GENESYS_HAS_COPY_SW; - model.shading_lines = 280; - model.shading_ta_lines = 0; model.search_lines = 400; s_usb_devices->emplace_back(0x04a9, 0x2213, model); @@ -209,15 +228,9 @@ void genesys_init_usb_device_tables() model.y_size = 300.0; model.y_offset_calib_white = 9.0; + model.y_size_calib_mm = 4.0; model.x_offset_calib_black = 0.0; - - model.x_offset_ta = 0.0; - model.y_offset_ta = 0.0; - model.x_size_ta = 0.0; - model.y_size_ta = 0.0; - - model.y_offset_sensor_to_ta = 0.0; - model.y_offset_calib_white_ta = 0.0; + model.x_size_calib_mm = 227.584; model.post_scan = 0.0; model.eject_feed = 0.0; @@ -234,12 +247,9 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::KVSS080; model.gpio_id = GpioId::KVSS080; model.motor_id = MotorId::KVSS080; - model.flags = GENESYS_FLAG_SKIP_WARMUP | - GENESYS_FLAG_OFFSET_CALIBRATION | - GENESYS_FLAG_CUSTOM_GAMMA; + model.flags = ModelFlag::SKIP_WARMUP | + ModelFlag::CUSTOM_GAMMA; model.buttons = GENESYS_HAS_SCAN_SW; - model.shading_lines = 100; - model.shading_ta_lines = 0; model.search_lines = 100; s_usb_devices->emplace_back(0x04da, 0x100f, model); @@ -269,15 +279,9 @@ void genesys_init_usb_device_tables() model.y_size = 314.5; model.y_offset_calib_white = 0.0; + model.y_size_calib_mm = 4.0; model.x_offset_calib_black = 0.0; - - model.x_offset_ta = 0.0; - model.y_offset_ta = 0.0; - model.x_size_ta = 100.0; - model.y_size_ta = 100.0; - - model.y_offset_sensor_to_ta = 0.0; - model.y_offset_calib_white_ta = 0.0; + model.x_size_calib_mm = 226.9067; model.post_scan = 0.0; model.eject_feed = 0.0; @@ -294,13 +298,10 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::G4050; model.gpio_id = GpioId::G4050; model.motor_id = MotorId::G4050; - model.flags = GENESYS_FLAG_OFFSET_CALIBRATION | - GENESYS_FLAG_SHADING_REPARK | - GENESYS_FLAG_SKIP_WARMUP | - GENESYS_FLAG_CUSTOM_GAMMA; + model.flags = ModelFlag::SHADING_REPARK | + ModelFlag::SKIP_WARMUP | + ModelFlag::CUSTOM_GAMMA; model.buttons = GENESYS_HAS_SCAN_SW | GENESYS_HAS_FILE_SW | GENESYS_HAS_COPY_SW; - model.shading_lines = 100; - model.shading_ta_lines = 0; model.search_lines = 100; s_usb_devices->emplace_back(0x03f0, 0x1b05, model); @@ -329,15 +330,9 @@ void genesys_init_usb_device_tables() model.y_size = 315.0; model.y_offset_calib_white = 3.0; + model.y_size_calib_mm = 4.0; model.x_offset_calib_black = 0.0; - - model.x_offset_ta = 0.0; - model.y_offset_ta = 0.0; - model.x_size_ta = 100.0; - model.y_size_ta = 100.0; - - model.y_offset_sensor_to_ta = 0.0; - model.y_offset_calib_white_ta = 0.0; + model.x_size_calib_mm = 226.9067; model.post_scan = 0.0; model.eject_feed = 0.0; @@ -353,13 +348,10 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::G4050; model.gpio_id = GpioId::G4050; model.motor_id = MotorId::G4050; - model.flags = GENESYS_FLAG_OFFSET_CALIBRATION | - GENESYS_FLAG_SKIP_WARMUP | - GENESYS_FLAG_DARK_CALIBRATION | - GENESYS_FLAG_CUSTOM_GAMMA; + model.flags = ModelFlag::SKIP_WARMUP | + ModelFlag::DARK_CALIBRATION | + ModelFlag::CUSTOM_GAMMA; model.buttons = GENESYS_HAS_SCAN_SW | GENESYS_HAS_FILE_SW | GENESYS_HAS_COPY_SW; - model.shading_lines = 100; - model.shading_ta_lines = 0; model.search_lines = 100; s_usb_devices->emplace_back(0x03f0, 0x4505, model); @@ -389,15 +381,9 @@ void genesys_init_usb_device_tables() model.y_size = 315.0; model.y_offset_calib_white = 0.0; + model.y_size_calib_mm = 4.0; model.x_offset_calib_black = 0.0; - - model.x_offset_ta = 8.0; - model.y_offset_ta = 13.00; - model.x_size_ta = 217.9; - model.y_size_ta = 250.0; - - model.y_offset_sensor_to_ta = 0.0; - model.y_offset_calib_white_ta = 40.0; + model.x_size_calib_mm = 226.9067; model.post_scan = 0.0; model.eject_feed = 0.0; @@ -414,13 +400,10 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::G4050; model.gpio_id = GpioId::G4050; model.motor_id = MotorId::G4050; - model.flags = GENESYS_FLAG_OFFSET_CALIBRATION | - GENESYS_FLAG_SKIP_WARMUP | - GENESYS_FLAG_DARK_CALIBRATION | - GENESYS_FLAG_CUSTOM_GAMMA; + model.flags = ModelFlag::SKIP_WARMUP | + ModelFlag::DARK_CALIBRATION | + ModelFlag::CUSTOM_GAMMA; model.buttons = GENESYS_HAS_SCAN_SW | GENESYS_HAS_FILE_SW | GENESYS_HAS_COPY_SW; - model.shading_lines = 100; - model.shading_ta_lines = 0; model.search_lines = 100; s_usb_devices->emplace_back(0x03f0, 0x4605, model); @@ -438,6 +421,10 @@ void genesys_init_usb_device_tables() { ScanMethod::FLATBED }, { 1200, 600, 300 }, { 1200, 600, 300 }, + }, { + { ScanMethod::TRANSPARENCY }, + { 4800, 2400, 1200 }, + { 9600, 4800, 2400, 1200 }, } }; @@ -449,16 +436,19 @@ void genesys_init_usb_device_tables() model.x_size = 215.9; model.y_size = 297.0; - model.y_offset_calib_white = 0.0; + model.y_offset_calib_white = 2.0; + model.y_size_calib_mm = 4.0; model.x_offset_calib_black = 0.0; + model.x_size_calib_mm = 241.3; - model.x_offset_ta = 8.0; - model.y_offset_ta = 13.00; - model.x_size_ta = 217.9; - model.y_size_ta = 250.0; + model.x_offset_ta = 115.0; + model.y_offset_ta = 60.0; + model.x_size_ta = 35.0; + model.y_size_ta = 230.0; - model.y_offset_sensor_to_ta = 0.0; - model.y_offset_calib_white_ta = 40.0; + model.y_offset_sensor_to_ta = 46.0; + model.y_offset_calib_white_ta = 47.0; + model.y_size_calib_ta_mm = 2.0; model.post_scan = 0.0; model.eject_feed = 0.0; @@ -475,15 +465,14 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::CANON_4400F; model.gpio_id = GpioId::CANON_4400F; model.motor_id = MotorId::CANON_4400F; - model.flags = GENESYS_FLAG_OFFSET_CALIBRATION | - GENESYS_FLAG_SKIP_WARMUP | - GENESYS_FLAG_DARK_CALIBRATION | - GENESYS_FLAG_FULL_HWDPI_MODE | - GENESYS_FLAG_CUSTOM_GAMMA | - GENESYS_FLAG_SHADING_REPARK; + model.flags = ModelFlag::SKIP_WARMUP | + ModelFlag::DARK_CALIBRATION | + ModelFlag::FULL_HWDPI_MODE | + ModelFlag::CUSTOM_GAMMA | + ModelFlag::SHADING_REPARK | + ModelFlag::UTA_NO_SECONDARY_MOTOR; + model.buttons = GENESYS_HAS_SCAN_SW | GENESYS_HAS_FILE_SW | GENESYS_HAS_COPY_SW; - model.shading_lines = 100; - model.shading_ta_lines = 0; model.search_lines = 100; s_usb_devices->emplace_back(0x04a9, 0x2228, model); @@ -515,13 +504,15 @@ void genesys_init_usb_device_tables() model.bpp_gray_values = { 8, 16 }; model.bpp_color_values = { 8, 16 }; - model.x_offset = 3.5; + model.x_offset = 5.5; model.y_offset = 17.00; model.x_size = 219.9; model.y_size = 300.0; model.y_offset_calib_white = 0.0; + model.y_size_calib_mm = 3.0; model.x_offset_calib_black = 10.0; + model.x_size_calib_mm = 225.425; model.x_offset_ta = 75.0; model.y_offset_ta = 45.00; @@ -530,6 +521,7 @@ void genesys_init_usb_device_tables() model.y_offset_sensor_to_ta = 22.0; model.y_offset_calib_white_ta = 25.0; + model.y_size_calib_ta_mm = 3.0; model.post_scan = 0.0; model.eject_feed = 0.0; @@ -546,17 +538,12 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::CANON_8400F; model.gpio_id = GpioId::CANON_8400F; model.motor_id = MotorId::CANON_8400F; - model.flags = GENESYS_FLAG_HAS_UTA | - GENESYS_FLAG_HAS_UTA_INFRARED | - GENESYS_FLAG_OFFSET_CALIBRATION | - GENESYS_FLAG_SKIP_WARMUP | - GENESYS_FLAG_DARK_CALIBRATION | - GENESYS_FLAG_FULL_HWDPI_MODE | - GENESYS_FLAG_CUSTOM_GAMMA | - GENESYS_FLAG_SHADING_REPARK; + model.flags = ModelFlag::SKIP_WARMUP | + ModelFlag::DARK_CALIBRATION | + ModelFlag::FULL_HWDPI_MODE | + ModelFlag::CUSTOM_GAMMA | + ModelFlag::SHADING_REPARK; model.buttons = GENESYS_HAS_SCAN_SW | GENESYS_HAS_FILE_SW | GENESYS_HAS_COPY_SW; - model.shading_lines = 100; - model.shading_ta_lines = 50; model.search_lines = 100; s_usb_devices->emplace_back(0x04a9, 0x221e, model); @@ -590,15 +577,18 @@ void genesys_init_usb_device_tables() model.y_size = 297.0; model.y_offset_calib_white = 0.0; + model.y_size_calib_mm = 4.0; model.x_offset_calib_black = 8.0; + model.x_size_calib_mm = 240.70734; - model.x_offset_ta = 85.0; + model.x_offset_ta = 94.0; model.y_offset_ta = 26.0; model.x_size_ta = 70.0; model.y_size_ta = 230.0; model.y_offset_sensor_to_ta = 11.5; model.y_offset_calib_white_ta = 14.0; + model.y_size_calib_ta_mm = 3.0; model.post_scan = 0.0; model.eject_feed = 0.0; @@ -615,17 +605,12 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::CANON_8600F; model.gpio_id = GpioId::CANON_8600F; model.motor_id = MotorId::CANON_8600F; - model.flags = GENESYS_FLAG_HAS_UTA | - GENESYS_FLAG_HAS_UTA_INFRARED | - GENESYS_FLAG_OFFSET_CALIBRATION | - GENESYS_FLAG_SKIP_WARMUP | - GENESYS_FLAG_DARK_CALIBRATION | - GENESYS_FLAG_FULL_HWDPI_MODE | - GENESYS_FLAG_CUSTOM_GAMMA | - GENESYS_FLAG_SHADING_REPARK; + model.flags = ModelFlag::SKIP_WARMUP | + ModelFlag::DARK_CALIBRATION | + ModelFlag::FULL_HWDPI_MODE | + ModelFlag::CUSTOM_GAMMA | + ModelFlag::SHADING_REPARK; model.buttons = GENESYS_HAS_SCAN_SW | GENESYS_HAS_FILE_SW | GENESYS_HAS_COPY_SW; - model.shading_lines = 50; - model.shading_ta_lines = 50; model.search_lines = 100; s_usb_devices->emplace_back(0x04a9, 0x2229, model); @@ -655,15 +640,9 @@ void genesys_init_usb_device_tables() model.y_size = 299.0; model.y_offset_calib_white = 1.0; + model.y_size_calib_mm = 3.0; model.x_offset_calib_black = 0.0; - - model.x_offset_ta = 0.0; - model.y_offset_ta = 0.0; - model.x_size_ta = 100.0; - model.y_size_ta = 100.0; - - model.y_offset_sensor_to_ta = 0.0; - model.y_offset_calib_white_ta = 0.0; + model.x_size_calib_mm = 217.4241; model.post_scan = 0.0; model.eject_feed = 0.0; @@ -680,18 +659,15 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::CANON_LIDE_200; model.gpio_id = GpioId::CANON_LIDE_200; model.motor_id = MotorId::CANON_LIDE_100; - model.flags = GENESYS_FLAG_SKIP_WARMUP | - GENESYS_FLAG_SIS_SENSOR | - GENESYS_FLAG_DARK_CALIBRATION | - GENESYS_FLAG_SHADING_REPARK | - GENESYS_FLAG_OFFSET_CALIBRATION | - GENESYS_FLAG_CUSTOM_GAMMA; + model.flags = ModelFlag::SKIP_WARMUP | + ModelFlag::SIS_SENSOR | + ModelFlag::DARK_CALIBRATION | + ModelFlag::SHADING_REPARK | + ModelFlag::CUSTOM_GAMMA; model.buttons = GENESYS_HAS_SCAN_SW | GENESYS_HAS_COPY_SW | GENESYS_HAS_EMAIL_SW | GENESYS_HAS_FILE_SW; - model.shading_lines = 50; - model.shading_ta_lines = 0; model.search_lines = 400; s_usb_devices->emplace_back(0x04a9, 0x1904, model); @@ -721,15 +697,9 @@ void genesys_init_usb_device_tables() model.y_size = 300.0; model.y_offset_calib_white = 0.0; + model.y_size_calib_mm = 3.0; model.x_offset_calib_black = 0.0; - - model.x_offset_ta = 0.0; - model.y_offset_ta = 0.0; - model.x_size_ta = 100.0; - model.y_size_ta = 100.0; - - model.y_offset_sensor_to_ta = 0.0; - model.y_offset_calib_white_ta = 0.0; + model.x_size_calib_mm = 218.7787; model.post_scan = 0.0; model.eject_feed = 0.0; @@ -745,17 +715,14 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::CANON_LIDE_110; model.gpio_id = GpioId::CANON_LIDE_110; model.motor_id = MotorId::CANON_LIDE_110; - model.flags = GENESYS_FLAG_SKIP_WARMUP | - GENESYS_FLAG_OFFSET_CALIBRATION | - GENESYS_FLAG_DARK_CALIBRATION | - GENESYS_FLAG_SHADING_REPARK | - GENESYS_FLAG_CUSTOM_GAMMA; + model.flags = ModelFlag::SKIP_WARMUP | + ModelFlag::DARK_CALIBRATION | + ModelFlag::SHADING_REPARK | + ModelFlag::CUSTOM_GAMMA; model.buttons = GENESYS_HAS_SCAN_SW | GENESYS_HAS_COPY_SW | GENESYS_HAS_EMAIL_SW | GENESYS_HAS_FILE_SW; - model.shading_lines = 25; - model.shading_ta_lines = 0; model.search_lines = 400; s_usb_devices->emplace_back(0x04a9, 0x1909, model); @@ -785,15 +752,9 @@ void genesys_init_usb_device_tables() model.y_size = 300.0; model.y_offset_calib_white = 1.0; + model.y_size_calib_mm = 3.0; model.x_offset_calib_black = 0.0; - - model.x_offset_ta = 0.0; - model.y_offset_ta = 0.0; - model.x_size_ta = 100.0; - model.y_size_ta = 100.0; - - model.y_offset_sensor_to_ta = 0.0; - model.y_offset_calib_white_ta = 0.0; + model.x_size_calib_mm = 216.0694; model.post_scan = 0.0; model.eject_feed = 0.0; @@ -808,17 +769,14 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::CANON_LIDE_120; model.gpio_id = GpioId::CANON_LIDE_120; model.motor_id = MotorId::CANON_LIDE_120; - model.flags = GENESYS_FLAG_SKIP_WARMUP | - GENESYS_FLAG_OFFSET_CALIBRATION | - GENESYS_FLAG_DARK_CALIBRATION | - GENESYS_FLAG_SHADING_REPARK | - GENESYS_FLAG_CUSTOM_GAMMA; + model.flags = ModelFlag::SKIP_WARMUP | + ModelFlag::DARK_CALIBRATION | + ModelFlag::SHADING_REPARK | + ModelFlag::CUSTOM_GAMMA; model.buttons = GENESYS_HAS_SCAN_SW | GENESYS_HAS_COPY_SW | GENESYS_HAS_EMAIL_SW | GENESYS_HAS_FILE_SW; - model.shading_lines = 50; - model.shading_ta_lines = 0; model.search_lines = 400; s_usb_devices->emplace_back(0x04a9, 0x190e, model); @@ -849,15 +807,9 @@ void genesys_init_usb_device_tables() model.y_size = 297.5; model.y_offset_calib_white = 0.0; + model.y_size_calib_mm = 3.0; model.x_offset_calib_black = 0.0; - - model.x_offset_ta = 0.0; - model.y_offset_ta = 0.0; - model.x_size_ta = 100.0; - model.y_size_ta = 100.0; - - model.y_offset_sensor_to_ta = 0.0; - model.y_offset_calib_white_ta = 0.0; + model.x_size_calib_mm = 218.7787; model.post_scan = 0.0; model.eject_feed = 0.0; @@ -874,18 +826,15 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::CANON_LIDE_110; model.gpio_id = GpioId::CANON_LIDE_210; model.motor_id = MotorId::CANON_LIDE_210; - model.flags = GENESYS_FLAG_SKIP_WARMUP | - GENESYS_FLAG_OFFSET_CALIBRATION | - GENESYS_FLAG_DARK_CALIBRATION | - GENESYS_FLAG_SHADING_REPARK | - GENESYS_FLAG_CUSTOM_GAMMA; + model.flags = ModelFlag::SKIP_WARMUP | + ModelFlag::DARK_CALIBRATION | + ModelFlag::SHADING_REPARK | + ModelFlag::CUSTOM_GAMMA; model.buttons = GENESYS_HAS_SCAN_SW | GENESYS_HAS_COPY_SW | GENESYS_HAS_EMAIL_SW | GENESYS_HAS_FILE_SW | GENESYS_HAS_EXTRA_SW; - model.shading_lines = 60; - model.shading_ta_lines = 0; model.search_lines = 400; s_usb_devices->emplace_back(0x04a9, 0x190a, model); @@ -916,15 +865,9 @@ void genesys_init_usb_device_tables() model.y_size = 297.5; model.y_offset_calib_white = 0.0; + model.y_size_calib_mm = 3.0; model.x_offset_calib_black = 0.0; - - model.x_offset_ta = 0.0; - model.y_offset_ta = 0.0; - model.x_size_ta = 100.0; - model.y_size_ta = 100.0; - - model.y_offset_sensor_to_ta = 0.0; - model.y_offset_calib_white_ta = 0.0; + model.x_size_calib_mm = 218.7787; model.post_scan = 0.0; model.eject_feed = 0.0; @@ -940,18 +883,15 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::CANON_LIDE_110; model.gpio_id = GpioId::CANON_LIDE_210; model.motor_id = MotorId::CANON_LIDE_210; - model.flags = GENESYS_FLAG_SKIP_WARMUP | - GENESYS_FLAG_OFFSET_CALIBRATION | - GENESYS_FLAG_DARK_CALIBRATION | - GENESYS_FLAG_SHADING_REPARK | - GENESYS_FLAG_CUSTOM_GAMMA; + model.flags = ModelFlag::SKIP_WARMUP | + ModelFlag::DARK_CALIBRATION | + ModelFlag::SHADING_REPARK | + ModelFlag::CUSTOM_GAMMA; model.buttons = GENESYS_HAS_SCAN_SW | GENESYS_HAS_COPY_SW | GENESYS_HAS_EMAIL_SW | GENESYS_HAS_FILE_SW | GENESYS_HAS_EXTRA_SW; - model.shading_lines = 60; - model.shading_ta_lines = 0; model.search_lines = 400; s_usb_devices->emplace_back(0x04a9, 0x190f, model); @@ -981,15 +921,9 @@ void genesys_init_usb_device_tables() model.y_size = 299.0; model.y_offset_calib_white = 3.0; + model.y_size_calib_mm = 3.0; model.x_offset_calib_black = 0.0; - - model.x_offset_ta = 0.0; - model.y_offset_ta = 0.0; - model.x_size_ta = 100.0; - model.y_size_ta = 100.0; - - model.y_offset_sensor_to_ta = 0.0; - model.y_offset_calib_white_ta = 0.0; + model.x_size_calib_mm = 217.4241; model.post_scan = 0.0; model.eject_feed = 0.0; @@ -1006,18 +940,15 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::CANON_LIDE_200; model.gpio_id = GpioId::CANON_LIDE_200; model.motor_id = MotorId::CANON_LIDE_200; - model.flags = GENESYS_FLAG_UNTESTED | - GENESYS_FLAG_SKIP_WARMUP | - GENESYS_FLAG_SIS_SENSOR | - GENESYS_FLAG_DARK_CALIBRATION | - GENESYS_FLAG_OFFSET_CALIBRATION | - GENESYS_FLAG_CUSTOM_GAMMA; + model.flags = ModelFlag::UNTESTED | + ModelFlag::SKIP_WARMUP | + ModelFlag::SIS_SENSOR | + ModelFlag::DARK_CALIBRATION | + ModelFlag::CUSTOM_GAMMA; model.buttons = GENESYS_HAS_SCAN_SW | GENESYS_HAS_COPY_SW | GENESYS_HAS_EMAIL_SW | GENESYS_HAS_FILE_SW; - model.shading_lines = 50; - model.shading_ta_lines = 0; model.search_lines = 400; s_usb_devices->emplace_back(0x04a9, 0x1906, model); @@ -1047,15 +978,10 @@ void genesys_init_usb_device_tables() model.y_size = 297.0; model.y_offset_calib_white = 1.0; + model.y_size_calib_mm = 3.0; model.x_offset_calib_black = 0.0; + model.x_size_calib_mm = 219.6254; - model.x_offset_ta = 0.0; - model.y_offset_ta = 0.0; - model.x_size_ta = 100.0; - model.y_size_ta = 100.0; - - model.y_offset_sensor_to_ta = 0.0; - model.y_offset_calib_white_ta = 0.0; model.post_scan = 0.0; model.eject_feed = 0.0; @@ -1071,18 +997,15 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::CANON_LIDE_700F; model.gpio_id = GpioId::CANON_LIDE_700F; model.motor_id = MotorId::CANON_LIDE_700; - model.flags = GENESYS_FLAG_SKIP_WARMUP | - GENESYS_FLAG_SIS_SENSOR | - GENESYS_FLAG_OFFSET_CALIBRATION | - GENESYS_FLAG_DARK_CALIBRATION | - GENESYS_FLAG_SHADING_REPARK | - GENESYS_FLAG_CUSTOM_GAMMA; + model.flags = ModelFlag::SKIP_WARMUP | + ModelFlag::SIS_SENSOR | + ModelFlag::DARK_CALIBRATION | + ModelFlag::SHADING_REPARK | + ModelFlag::CUSTOM_GAMMA; model.buttons = GENESYS_HAS_SCAN_SW | GENESYS_HAS_COPY_SW | GENESYS_HAS_EMAIL_SW | GENESYS_HAS_FILE_SW; - model.shading_lines = 70; - model.shading_ta_lines = 0; model.search_lines = 400; s_usb_devices->emplace_back(0x04a9, 0x1907, model); @@ -1112,15 +1035,9 @@ void genesys_init_usb_device_tables() model.y_size = 299.0; model.y_offset_calib_white = 0.0; + model.y_size_calib_mm = 3.0; model.x_offset_calib_black = 0.0; - - model.x_offset_ta = 0.0; - model.y_offset_ta = 0.0; - model.x_size_ta = 100.0; - model.y_size_ta = 100.0; - - model.y_offset_sensor_to_ta = 0.0; - model.y_offset_calib_white_ta = 0.0; + model.x_size_calib_mm = 217.4241; model.post_scan = 0.0; model.eject_feed = 0.0; @@ -1136,18 +1053,15 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::CANON_LIDE_200; model.gpio_id = GpioId::CANON_LIDE_200; model.motor_id = MotorId::CANON_LIDE_200; - model.flags = GENESYS_FLAG_SKIP_WARMUP | - GENESYS_FLAG_SIS_SENSOR | - GENESYS_FLAG_OFFSET_CALIBRATION | - GENESYS_FLAG_DARK_CALIBRATION | - GENESYS_FLAG_SHADING_REPARK | - GENESYS_FLAG_CUSTOM_GAMMA; + model.flags = ModelFlag::SKIP_WARMUP | + ModelFlag::SIS_SENSOR | + ModelFlag::DARK_CALIBRATION | + ModelFlag::SHADING_REPARK | + ModelFlag::CUSTOM_GAMMA; model.buttons = GENESYS_HAS_SCAN_SW | GENESYS_HAS_COPY_SW | GENESYS_HAS_EMAIL_SW | GENESYS_HAS_FILE_SW; - model.shading_lines = 50; - model.shading_ta_lines = 0; model.search_lines = 400; s_usb_devices->emplace_back(0x04a9, 0x1905, model); @@ -1176,16 +1090,12 @@ void genesys_init_usb_device_tables() model.x_size = 218.0; model.y_size = 299.0; - model.y_offset_calib_white = 6.0; + model.y_offset_calib_white = 3.0; + model.y_size_calib_mm = 3.0; + model.y_offset_calib_dark_white_mm = 1.0; + model.y_size_calib_dark_white_mm = 6.0; model.x_offset_calib_black = 0.0; - - model.x_offset_ta = 0.0; - model.y_offset_ta = 0.0; - model.x_size_ta = 100.0; - model.y_size_ta = 100.0; - - model.y_offset_sensor_to_ta = 0.0; - model.y_offset_calib_white_ta = 0.0; + model.x_size_calib_mm = 220.13334; model.post_scan = 0.0; model.eject_feed = 0.0; @@ -1201,19 +1111,15 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::CANON_LIDE_35; model.gpio_id = GpioId::CANON_LIDE_35; model.motor_id = MotorId::CANON_LIDE_35; - model.flags = GENESYS_FLAG_SKIP_WARMUP | - GENESYS_FLAG_OFFSET_CALIBRATION | - GENESYS_FLAG_DARK_WHITE_CALIBRATION | - GENESYS_FLAG_CUSTOM_GAMMA; + model.flags = ModelFlag::SKIP_WARMUP | + ModelFlag::DARK_WHITE_CALIBRATION | + ModelFlag::CUSTOM_GAMMA; model.buttons = GENESYS_HAS_COPY_SW | GENESYS_HAS_SCAN_SW | GENESYS_HAS_FILE_SW | GENESYS_HAS_EMAIL_SW; - model.shading_lines = 300; - model.shading_ta_lines = 0; model.search_lines = 400; - // this is completely untested s_usb_devices->emplace_back(0x04a9, 0x221c, model); @@ -1240,15 +1146,11 @@ void genesys_init_usb_device_tables() model.y_size = 299.0; model.y_offset_calib_white = 4.5; + model.y_size_calib_mm = 3.0; + model.y_offset_calib_dark_white_mm = 1.0; + model.y_size_calib_dark_white_mm = 6.0; model.x_offset_calib_black = 0.0; - - model.x_offset_ta = 0.0; - model.y_offset_ta = 0.0; - model.x_size_ta = 100.0; - model.y_size_ta = 100.0; - - model.y_offset_sensor_to_ta = 0.0; - model.y_offset_calib_white_ta = 0.0; + model.x_size_calib_mm = 216.7467; model.post_scan = 0.0; model.eject_feed = 0.0; @@ -1265,16 +1167,13 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::CANON_LIDE_80; model.gpio_id = GpioId::CANON_LIDE_80; model.motor_id = MotorId::CANON_LIDE_80; - model.flags = GENESYS_FLAG_SKIP_WARMUP | - GENESYS_FLAG_OFFSET_CALIBRATION | - GENESYS_FLAG_DARK_WHITE_CALIBRATION | - GENESYS_FLAG_CUSTOM_GAMMA; + model.flags = ModelFlag::SKIP_WARMUP | + ModelFlag::DARK_WHITE_CALIBRATION | + ModelFlag::CUSTOM_GAMMA; model.buttons = GENESYS_HAS_SCAN_SW | GENESYS_HAS_FILE_SW | GENESYS_HAS_EMAIL_SW | GENESYS_HAS_COPY_SW; - model.shading_lines = 160; - model.shading_ta_lines = 0; model.search_lines = 400; s_usb_devices->emplace_back(0x04a9, 0x2214, model); @@ -1298,21 +1197,15 @@ void genesys_init_usb_device_tables() model.bpp_gray_values = { 8, 16 }; model.bpp_color_values = { 8, 16 }; - model.x_offset = 2.0; - model.y_offset = 7.5; + model.x_offset = 6.5; + model.y_offset = 8; model.x_size = 215.9; model.y_size = 295.0; model.y_offset_calib_white = 0.0; + model.y_size_calib_mm = 4.0; model.x_offset_calib_black = 1.0; - - model.x_offset_ta = 0.0; - model.y_offset_ta = 0.0; - model.x_size_ta = 100.0; - model.y_size_ta = 100.0; - - model.y_offset_sensor_to_ta = 0.0; - model.y_offset_calib_white_ta = 0.0; + model.x_size_calib_mm = 227.2454; model.post_scan = 0.0; model.eject_feed = 0.0; @@ -1328,15 +1221,11 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::WOLFSON_HP2300; model.gpio_id = GpioId::HP2300; model.motor_id = MotorId::HP2300; - model.flags = GENESYS_FLAG_14BIT_GAMMA | - GENESYS_FLAG_SKIP_WARMUP | - GENESYS_FLAG_SEARCH_START | - GENESYS_FLAG_DARK_CALIBRATION | - GENESYS_FLAG_OFFSET_CALIBRATION | - GENESYS_FLAG_CUSTOM_GAMMA; + model.flags = ModelFlag::GAMMA_14BIT | + ModelFlag::SKIP_WARMUP | + ModelFlag::DARK_CALIBRATION | + ModelFlag::CUSTOM_GAMMA; model.buttons = GENESYS_HAS_SCAN_SW | GENESYS_HAS_COPY_SW; - model.shading_lines = 40; - model.shading_ta_lines = 0; model.search_lines = 132; s_usb_devices->emplace_back(0x03f0, 0x0901, model); @@ -1366,15 +1255,9 @@ void genesys_init_usb_device_tables() model.y_size = 297.2; model.y_offset_calib_white = 0.0; + model.y_size_calib_mm = 2.0; // FIXME: check if white area is really so small model.x_offset_calib_black = 1.0; - - model.x_offset_ta = 0.0; - model.y_offset_ta = 0.0; - model.x_size_ta = 100.0; - model.y_size_ta = 100.0; - - model.y_offset_sensor_to_ta = 0.0; - model.y_offset_calib_white_ta = 0.0; + model.x_size_calib_mm = 230.1241; model.post_scan = 0.0; model.eject_feed = 0.0; @@ -1391,14 +1274,11 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::WOLFSON_HP2400; model.gpio_id = GpioId::HP2400; model.motor_id = MotorId::HP2400; - model.flags = GENESYS_FLAG_14BIT_GAMMA | - GENESYS_FLAG_DARK_CALIBRATION | - GENESYS_FLAG_OFFSET_CALIBRATION | - GENESYS_FLAG_SKIP_WARMUP | - GENESYS_FLAG_CUSTOM_GAMMA; + model.flags = ModelFlag::GAMMA_14BIT | + ModelFlag::DARK_CALIBRATION | + ModelFlag::SKIP_WARMUP | + ModelFlag::CUSTOM_GAMMA; model.buttons = GENESYS_HAS_COPY_SW | GENESYS_HAS_EMAIL_SW | GENESYS_HAS_SCAN_SW; - model.shading_lines = 20; - model.shading_ta_lines = 0; model.search_lines = 132; s_usb_devices->emplace_back(0x03f0, 0x0a01, model); @@ -1428,15 +1308,9 @@ void genesys_init_usb_device_tables() model.y_size = 297.2; model.y_offset_calib_white = 0.0; + model.y_size_calib_mm = 4.0; model.x_offset_calib_black = 0.0; - - model.x_offset_ta = 0.0; - model.y_offset_ta = 0.0; - model.x_size_ta = 100.0; - model.y_size_ta = 100.0; - - model.y_offset_sensor_to_ta = 0.0; - model.y_offset_calib_white_ta = 0.0; + model.x_size_calib_mm = 220.1334; model.post_scan = 0.0; model.eject_feed = 0.0; @@ -1453,31 +1327,28 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::AD_XP200; model.gpio_id = GpioId::XP200; model.motor_id = MotorId::XP200; - model.flags = GENESYS_FLAG_14BIT_GAMMA | - GENESYS_FLAG_CUSTOM_GAMMA | - GENESYS_FLAG_SKIP_WARMUP | - GENESYS_FLAG_DARK_CALIBRATION | - GENESYS_FLAG_OFFSET_CALIBRATION; + model.flags = ModelFlag::GAMMA_14BIT | + ModelFlag::CUSTOM_GAMMA | + ModelFlag::SKIP_WARMUP | + ModelFlag::DARK_CALIBRATION; model.buttons = GENESYS_HAS_SCAN_SW | GENESYS_HAS_PAGE_LOADED_SW | GENESYS_HAS_CALIBRATE; - model.shading_lines = 120; - model.shading_ta_lines = 0; model.search_lines = 132; s_usb_devices->emplace_back(0x04a7, 0x0426, model); model = Genesys_Model(); - model.name = "hewlett-packard-scanjet-3670c"; + model.name = "hewlett-packard-scanjet-3670"; model.vendor = "Hewlett Packard"; - model.model = "ScanJet 3670c"; - model.model_id = ModelId::HP_SCANJET_3670C; + model.model = "ScanJet 3670"; + model.model_id = ModelId::HP_SCANJET_3670; model.asic_type = AsicType::GL646; model.resolutions = { { { ScanMethod::FLATBED }, - { 1200, 600, 300, 150, 100, 75 }, - { 1200, 600, 300, 150, 100, 75 }, + { 1200, 600, 300, 150, 100, 75, 50 }, + { 1200, 600, 300, 150, 100, 75, 50 }, } }; @@ -1490,15 +1361,9 @@ void genesys_init_usb_device_tables() model.y_size = 300.0; model.y_offset_calib_white = 0.0; + model.y_size_calib_mm = 4.0; model.x_offset_calib_black = 1.0; - - model.x_offset_ta = 104.0; - model.y_offset_ta = 55.6; - model.x_size_ta = 25.6; - model.y_size_ta = 78.0; - - model.y_offset_sensor_to_ta = 0.0; - model.y_offset_calib_white_ta = 76.0; + model.x_size_calib_mm = 230.1241; model.post_scan = 0.0; model.eject_feed = 0.0; @@ -1515,14 +1380,10 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::WOLFSON_HP3670; model.gpio_id = GpioId::HP3670; model.motor_id = MotorId::HP3670; - model.flags = GENESYS_FLAG_14BIT_GAMMA | - GENESYS_FLAG_XPA | - GENESYS_FLAG_DARK_CALIBRATION | - GENESYS_FLAG_OFFSET_CALIBRATION | - GENESYS_FLAG_CUSTOM_GAMMA; + model.flags = ModelFlag::GAMMA_14BIT | + ModelFlag::DARK_CALIBRATION | + ModelFlag::CUSTOM_GAMMA; model.buttons = GENESYS_HAS_COPY_SW | GENESYS_HAS_EMAIL_SW | GENESYS_HAS_SCAN_SW; - model.shading_lines = 20; - model.shading_ta_lines = 0; model.search_lines = 200; s_usb_devices->emplace_back(0x03f0, 0x1405, model); @@ -1552,15 +1413,9 @@ void genesys_init_usb_device_tables() model.y_size = 299.0; model.y_offset_calib_white = 0.0; + model.y_size_calib_mm = 4.0; model.x_offset_calib_black = 1.0; - - model.x_offset_ta = 0.0; - model.y_offset_ta = 0.0; - model.x_size_ta = 100.0; - model.y_size_ta = 100.0; - - model.y_offset_sensor_to_ta = 0.0; - model.y_offset_calib_white_ta = 0.0; + model.x_size_calib_mm = 229.2774; model.post_scan = 0.0; model.eject_feed = 0.0; @@ -1577,10 +1432,8 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::WOLFSON_ST12; model.gpio_id = GpioId::ST12; model.motor_id = MotorId::UMAX; - model.flags = GENESYS_FLAG_UNTESTED | GENESYS_FLAG_14BIT_GAMMA; + model.flags = ModelFlag::UNTESTED | ModelFlag::GAMMA_14BIT; model.buttons = GENESYS_HAS_NO_BUTTONS; - model.shading_lines = 20; - model.shading_ta_lines = 0; model.search_lines = 200; s_usb_devices->emplace_back(0x07b3, 0x0600, model); @@ -1604,20 +1457,14 @@ void genesys_init_usb_device_tables() model.bpp_color_values = { 8, 16 }; model.x_offset = 3.5; - model.y_offset = 7.5; + model.y_offset = 7.5; // FIXME: incorrect, needs updating model.x_size = 218.0; model.y_size = 299.0; model.y_offset_calib_white = 0.0; + model.y_size_calib_mm = 4.0; model.x_offset_calib_black = 1.0; - - model.x_offset_ta = 0.0; - model.y_offset_ta = 0.0; - model.x_size_ta = 100.0; - model.y_size_ta = 100.0; - - model.y_offset_sensor_to_ta = 0.0; - model.y_offset_calib_white_ta = 0.0; + model.x_size_calib_mm = 228.6; model.post_scan = 0.0; model.eject_feed = 0.0; @@ -1634,14 +1481,10 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::WOLFSON_ST24; model.gpio_id = GpioId::ST24; model.motor_id = MotorId::ST24; - model.flags = GENESYS_FLAG_UNTESTED | - GENESYS_FLAG_14BIT_GAMMA | - GENESYS_FLAG_CUSTOM_GAMMA | - GENESYS_FLAG_SEARCH_START | - GENESYS_FLAG_OFFSET_CALIBRATION; + model.flags = ModelFlag::UNTESTED | + ModelFlag::GAMMA_14BIT | + ModelFlag::CUSTOM_GAMMA; model.buttons = GENESYS_HAS_NO_BUTTONS; - model.shading_lines = 20; - model.shading_ta_lines = 0; model.search_lines = 200; s_usb_devices->emplace_back(0x07b3, 0x0601, model); @@ -1665,20 +1508,14 @@ void genesys_init_usb_device_tables() model.bpp_color_values = { 8, 16 }; model.x_offset = 0.30; - model.y_offset = 0.80; + model.y_offset = 4.0; // FIXME: incorrect, needs updating model.x_size = 220.0; model.y_size = 296.4; model.y_offset_calib_white = 0.00; + model.y_size_calib_mm = 2.0; model.x_offset_calib_black = 0.00; - - model.x_offset_ta = 0.00; - model.y_offset_ta = 0.00; - model.x_size_ta = 0.00; - model.y_size_ta = 0.00; - - model.y_offset_sensor_to_ta = 0.0; - model.y_offset_calib_white_ta = 0.00; + model.x_size_calib_mm = 230.1241; model.post_scan = 0.0; model.eject_feed = 0.0; @@ -1694,19 +1531,14 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::WOLFSON_5345; model.gpio_id = GpioId::MD_5345; model.motor_id = MotorId::MD_5345; - model.flags = GENESYS_FLAG_14BIT_GAMMA | - GENESYS_FLAG_SEARCH_START | - GENESYS_FLAG_DARK_CALIBRATION | - GENESYS_FLAG_OFFSET_CALIBRATION | - GENESYS_FLAG_SHADING_NO_MOVE | - GENESYS_FLAG_CUSTOM_GAMMA; + model.flags = ModelFlag::GAMMA_14BIT | + ModelFlag::DARK_CALIBRATION | + ModelFlag::CUSTOM_GAMMA; model.buttons = GENESYS_HAS_COPY_SW | GENESYS_HAS_EMAIL_SW | GENESYS_HAS_POWER_SW | GENESYS_HAS_OCR_SW | GENESYS_HAS_SCAN_SW; - model.shading_lines = 40; - model.shading_ta_lines = 0; model.search_lines = 200; s_usb_devices->emplace_back(0x0461, 0x0377, model); @@ -1735,15 +1567,9 @@ void genesys_init_usb_device_tables() model.y_size = 511; model.y_offset_calib_white = 0.0; + model.y_size_calib_mm = 4.0; model.x_offset_calib_black = 0.0; - - model.x_offset_ta = 0.0; - model.y_offset_ta = 0.0; - model.x_size_ta = 100.0; - model.y_size_ta = 100.0; - - model.y_offset_sensor_to_ta = 0.0; - model.y_offset_calib_white_ta = 0.0; + model.x_size_calib_mm = 433.4934; model.post_scan = 26.5; // this is larger than needed -- accounts for second sensor head, which is a calibration item @@ -1760,13 +1586,10 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::WOLFSON_XP300; model.gpio_id = GpioId::XP300; model.motor_id = MotorId::XP300; - model.flags = GENESYS_FLAG_SKIP_WARMUP | - GENESYS_FLAG_OFFSET_CALIBRATION | - GENESYS_FLAG_DARK_CALIBRATION | - GENESYS_FLAG_CUSTOM_GAMMA; + model.flags = ModelFlag::SKIP_WARMUP | + ModelFlag::DARK_CALIBRATION | + ModelFlag::CUSTOM_GAMMA; model.buttons = GENESYS_HAS_SCAN_SW | GENESYS_HAS_PAGE_LOADED_SW | GENESYS_HAS_CALIBRATE; - model.shading_lines = 100; - model.shading_ta_lines = 0; model.search_lines = 400; s_usb_devices->emplace_back(0x04a7, 0x0474, model); @@ -1795,15 +1618,9 @@ void genesys_init_usb_device_tables() model.y_size = 511; model.y_offset_calib_white = 0.0; + model.y_size_calib_mm = 4.0; model.x_offset_calib_black = 0.0; - - model.x_offset_ta = 0.0; - model.y_offset_ta = 0.0; - model.x_size_ta = 100.0; - model.y_size_ta = 100.0; - - model.y_offset_sensor_to_ta = 0.0; - model.y_offset_calib_white_ta = 0.0; + model.x_size_calib_mm = 105.664; model.post_scan = 17.5; model.eject_feed = 0.0; @@ -1820,13 +1637,10 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::WOLFSON_XP300; model.gpio_id = GpioId::DP665; model.motor_id = MotorId::DP665; - model.flags = GENESYS_FLAG_SKIP_WARMUP | - GENESYS_FLAG_OFFSET_CALIBRATION | - GENESYS_FLAG_DARK_CALIBRATION | - GENESYS_FLAG_CUSTOM_GAMMA; + model.flags = ModelFlag::SKIP_WARMUP | + ModelFlag::DARK_CALIBRATION | + ModelFlag::CUSTOM_GAMMA; model.buttons = GENESYS_HAS_SCAN_SW | GENESYS_HAS_PAGE_LOADED_SW | GENESYS_HAS_CALIBRATE; - model.shading_lines = 100; - model.shading_ta_lines = 0; model.search_lines = 400; s_usb_devices->emplace_back(0x0a82, 0x4803, model); @@ -1855,15 +1669,9 @@ void genesys_init_usb_device_tables() model.y_size = 511; model.y_offset_calib_white = 0.0; + model.y_size_calib_mm = 4.0; model.x_offset_calib_black = 0.0; - - model.x_offset_ta = 0.0; - model.y_offset_ta = 0.0; - model.x_size_ta = 100.0; - model.y_size_ta = 100.0; - - model.y_offset_sensor_to_ta = 0.0; - model.y_offset_calib_white_ta = 0.0; + model.x_size_calib_mm = 220.1334; model.post_scan = 16.0; model.eject_feed = 0.0; @@ -1880,13 +1688,10 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::WOLFSON_XP300; model.gpio_id = GpioId::DP665; model.motor_id = MotorId::ROADWARRIOR; - model.flags = GENESYS_FLAG_SKIP_WARMUP | - GENESYS_FLAG_OFFSET_CALIBRATION | - GENESYS_FLAG_CUSTOM_GAMMA | - GENESYS_FLAG_DARK_CALIBRATION; + model.flags = ModelFlag::SKIP_WARMUP | + ModelFlag::CUSTOM_GAMMA | + ModelFlag::DARK_CALIBRATION; model.buttons = GENESYS_HAS_SCAN_SW | GENESYS_HAS_PAGE_LOADED_SW | GENESYS_HAS_CALIBRATE; - model.shading_lines = 100; - model.shading_ta_lines = 0; model.search_lines = 400; s_usb_devices->emplace_back(0x04a7, 0x0494, model); @@ -1915,15 +1720,9 @@ void genesys_init_usb_device_tables() model.y_size = 511; model.y_offset_calib_white = 0.0; + model.y_size_calib_mm = 4.0; model.x_offset_calib_black = 0.0; - - model.x_offset_ta = 0.0; - model.y_offset_ta = 0.0; - model.x_size_ta = 100.0; - model.y_size_ta = 100.0; - - model.y_offset_sensor_to_ta = 0.0; - model.y_offset_calib_white_ta = 0.0; + model.x_size_calib_mm = 220.1334; model.post_scan = 16.0; model.eject_feed = 0.0; @@ -1940,13 +1739,11 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::WOLFSON_XP300; model.gpio_id = GpioId::DP665; model.motor_id = MotorId::ROADWARRIOR; - model.flags = GENESYS_FLAG_SKIP_WARMUP | - GENESYS_FLAG_NO_CALIBRATION | - GENESYS_FLAG_CUSTOM_GAMMA | - GENESYS_FLAG_UNTESTED; + model.flags = ModelFlag::SKIP_WARMUP | + ModelFlag::NO_CALIBRATION | + ModelFlag::CUSTOM_GAMMA | + ModelFlag::UNTESTED; model.buttons = GENESYS_HAS_SCAN_SW | GENESYS_HAS_PAGE_LOADED_SW; - model.shading_lines = 300; - model.shading_ta_lines = 0; model.search_lines = 400; s_usb_devices->emplace_back(0x0a82, 0x4802, model); @@ -1976,15 +1773,9 @@ void genesys_init_usb_device_tables() model.y_size = 511; model.y_offset_calib_white = 0.0; + model.y_size_calib_mm = 4.0; model.x_offset_calib_black = 0.0; - - model.x_offset_ta = 0.0; - model.y_offset_ta = 0.0; - model.x_size_ta = 100.0; - model.y_size_ta = 100.0; - - model.y_offset_sensor_to_ta = 0.0; - model.y_offset_calib_white_ta = 0.0; + model.x_size_calib_mm = 220.1334; model.post_scan = 16.0; model.eject_feed = 0.0; @@ -2001,13 +1792,10 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::WOLFSON_XP300; model.gpio_id = GpioId::DP665; model.motor_id = MotorId::ROADWARRIOR; - model.flags = GENESYS_FLAG_SKIP_WARMUP | - GENESYS_FLAG_OFFSET_CALIBRATION | - GENESYS_FLAG_CUSTOM_GAMMA | - GENESYS_FLAG_DARK_CALIBRATION; + model.flags = ModelFlag::SKIP_WARMUP | + ModelFlag::CUSTOM_GAMMA | + ModelFlag::DARK_CALIBRATION; model.buttons = GENESYS_HAS_SCAN_SW | GENESYS_HAS_PAGE_LOADED_SW | GENESYS_HAS_CALIBRATE; - model.shading_lines = 100; - model.shading_ta_lines = 0; model.search_lines = 400; s_usb_devices->emplace_back(0x04a7, 0x049b, model); @@ -2036,15 +1824,9 @@ void genesys_init_usb_device_tables() model.y_size = 511; model.y_offset_calib_white = 0.0; + model.y_size_calib_mm = 4.0; model.x_offset_calib_black = 0.0; - - model.x_offset_ta = 0.0; - model.y_offset_ta = 0.0; - model.x_size_ta = 100.0; - model.y_size_ta = 100.0; - - model.y_offset_sensor_to_ta = 0.0; - model.y_offset_calib_white_ta = 0.0; + model.x_size_calib_mm = 220.1334; model.post_scan = 16.0; model.eject_feed = 0.0; @@ -2061,13 +1843,10 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::WOLFSON_DSM600; model.gpio_id = GpioId::DP665; model.motor_id = MotorId::DSMOBILE_600; - model.flags = GENESYS_FLAG_SKIP_WARMUP | - GENESYS_FLAG_OFFSET_CALIBRATION | - GENESYS_FLAG_CUSTOM_GAMMA | - GENESYS_FLAG_DARK_CALIBRATION; + model.flags = ModelFlag::SKIP_WARMUP | + ModelFlag::CUSTOM_GAMMA | + ModelFlag::DARK_CALIBRATION; model.buttons = GENESYS_HAS_SCAN_SW | GENESYS_HAS_PAGE_LOADED_SW | GENESYS_HAS_CALIBRATE; - model.shading_lines = 100; - model.shading_ta_lines = 0; model.search_lines = 400; s_usb_devices->emplace_back(0x0a17, 0x3210, model); @@ -2098,15 +1877,9 @@ void genesys_init_usb_device_tables() model.y_size = 511; model.y_offset_calib_white = 0.0; + model.y_size_calib_mm = 4.0; model.x_offset_calib_black = 0.0; - - model.x_offset_ta = 0.0; - model.y_offset_ta = 0.0; - model.x_size_ta = 100.0; - model.y_size_ta = 100.0; - - model.y_offset_sensor_to_ta = 0.0; - model.y_offset_calib_white_ta = 0.0; + model.x_size_calib_mm = 220.1334; model.post_scan = 16.0; model.eject_feed = 0.0; @@ -2122,13 +1895,10 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::WOLFSON_DSM600; model.gpio_id = GpioId::DP665; model.motor_id = MotorId::DSMOBILE_600; - model.flags = GENESYS_FLAG_SKIP_WARMUP | - GENESYS_FLAG_OFFSET_CALIBRATION | - GENESYS_FLAG_CUSTOM_GAMMA | - GENESYS_FLAG_DARK_CALIBRATION; + model.flags = ModelFlag::SKIP_WARMUP | + ModelFlag::CUSTOM_GAMMA | + ModelFlag::DARK_CALIBRATION; model.buttons = GENESYS_HAS_SCAN_SW | GENESYS_HAS_PAGE_LOADED_SW | GENESYS_HAS_CALIBRATE; - model.shading_lines = 100; - model.shading_ta_lines = 0; model.search_lines = 400; s_usb_devices->emplace_back(0x1dcc, 0x4812, model); @@ -2157,15 +1927,9 @@ void genesys_init_usb_device_tables() model.y_size = 500; model.y_offset_calib_white = 0.0; + model.y_size_calib_mm = 4.0; model.x_offset_calib_black = 0.0; - - model.x_offset_ta = 0.0; - model.y_offset_ta = 0.0; - model.x_size_ta = 100.0; - model.y_size_ta = 100.0; - - model.y_offset_sensor_to_ta = 0.0; - model.y_offset_calib_white_ta = 0.0; + model.x_size_calib_mm = 212.5134; model.post_scan = 26.5; // this is larger than needed -- accounts for second sensor head, which is a calibration item @@ -2182,13 +1946,10 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::WOLFSON_DSM600; model.gpio_id = GpioId::DP685; model.motor_id = MotorId::XP300; - model.flags = GENESYS_FLAG_SKIP_WARMUP | - GENESYS_FLAG_OFFSET_CALIBRATION | - GENESYS_FLAG_CUSTOM_GAMMA | - GENESYS_FLAG_DARK_CALIBRATION; + model.flags = ModelFlag::SKIP_WARMUP | + ModelFlag::CUSTOM_GAMMA | + ModelFlag::DARK_CALIBRATION; model.buttons = GENESYS_HAS_SCAN_SW | GENESYS_HAS_PAGE_LOADED_SW | GENESYS_HAS_CALIBRATE; - model.shading_lines = 100; - model.shading_ta_lines = 0; model.search_lines = 400; @@ -2219,15 +1980,9 @@ void genesys_init_usb_device_tables() model.y_size = 511; model.y_offset_calib_white = 0.0; + model.y_size_calib_mm = 4.0; model.x_offset_calib_black = 0.0; - - model.x_offset_ta = 0.0; - model.y_offset_ta = 0.0; - model.x_size_ta = 100.0; - model.y_size_ta = 100.0; - - model.y_offset_sensor_to_ta = 0.0; - model.y_offset_calib_white_ta = 0.0; + model.x_size_calib_mm = 433.4934; model.post_scan = 26.5; // this is larger than needed -- accounts for second sensor head, which is a calibration item @@ -2244,13 +1999,10 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::WOLFSON_XP300; model.gpio_id = GpioId::XP300; model.motor_id = MotorId::XP300; - model.flags = GENESYS_FLAG_SKIP_WARMUP | - GENESYS_FLAG_OFFSET_CALIBRATION | - GENESYS_FLAG_CUSTOM_GAMMA | - GENESYS_FLAG_DARK_CALIBRATION; + model.flags = ModelFlag::SKIP_WARMUP | + ModelFlag::CUSTOM_GAMMA | + ModelFlag::DARK_CALIBRATION; model.buttons = GENESYS_HAS_SCAN_SW | GENESYS_HAS_PAGE_LOADED_SW | GENESYS_HAS_CALIBRATE; - model.shading_lines = 100; - model.shading_ta_lines = 0; model.search_lines = 400; s_usb_devices->emplace_back(0x0a82, 0x4800, model); @@ -2280,19 +2032,14 @@ void genesys_init_usb_device_tables() model.y_size = 511; model.y_offset_calib_white = 0.0; + model.y_size_calib_mm = 4.0; model.x_offset_calib_black = 0.0; - - model.x_offset_ta = 0.0; - model.y_offset_ta = 0.0; - model.x_size_ta = 100.0; - model.y_size_ta = 100.0; - - model.y_offset_sensor_to_ta = 0.0; - model.y_offset_calib_white_ta = 0.0; + model.x_size_calib_mm = 433.4934; model.post_scan = 26.5; // this is larger than needed -- accounts for second sensor head, which is a calibration item model.eject_feed = 0.0; + model.ld_shift_r = 0; model.ld_shift_g = 0; model.ld_shift_b = 0; @@ -2305,14 +2052,11 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::WOLFSON_XP300; model.gpio_id = GpioId::XP300; model.motor_id = MotorId::XP300; - model.flags = GENESYS_FLAG_SKIP_WARMUP | - GENESYS_FLAG_OFFSET_CALIBRATION | - GENESYS_FLAG_DARK_CALIBRATION | - GENESYS_FLAG_CUSTOM_GAMMA | - GENESYS_FLAG_UNTESTED; + model.flags = ModelFlag::SKIP_WARMUP | + ModelFlag::DARK_CALIBRATION | + ModelFlag::CUSTOM_GAMMA | + ModelFlag::UNTESTED; model.buttons = GENESYS_HAS_SCAN_SW | GENESYS_HAS_PAGE_LOADED_SW | GENESYS_HAS_CALIBRATE; - model.shading_lines = 100; - model.shading_ta_lines = 0; model.search_lines = 400; s_usb_devices->emplace_back(0x1dcc, 0x4810, model); @@ -2337,20 +2081,14 @@ void genesys_init_usb_device_tables() model.bpp_color_values = { 8, 16 }; model.x_offset = 4.00; - model.y_offset = 0.80; + model.y_offset = 5.0; // FIXME: incorrect, needs updating model.x_size = 215.9; model.y_size = 296.4; model.y_offset_calib_white = 0.00; + model.y_size_calib_mm = 4.0; model.x_offset_calib_black = 0.00; - - model.x_offset_ta = 0.00; - model.y_offset_ta = 0.00; - model.x_size_ta = 0.00; - model.y_size_ta = 0.00; - - model.y_offset_sensor_to_ta = 0.0; - model.y_offset_calib_white_ta = 0.00; + model.x_size_calib_mm = 230.1241; model.post_scan = 0.0; model.eject_feed = 0.0; @@ -2366,18 +2104,14 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::WOLFSON_5345; model.gpio_id = GpioId::MD_5345; model.motor_id = MotorId::MD_5345; - model.flags = GENESYS_FLAG_14BIT_GAMMA | - GENESYS_FLAG_SEARCH_START | - GENESYS_FLAG_DARK_CALIBRATION | - GENESYS_FLAG_OFFSET_CALIBRATION | - GENESYS_FLAG_CUSTOM_GAMMA; + model.flags = ModelFlag::GAMMA_14BIT | + ModelFlag::DARK_CALIBRATION | + ModelFlag::CUSTOM_GAMMA; model.buttons = GENESYS_HAS_COPY_SW | GENESYS_HAS_EMAIL_SW | GENESYS_HAS_POWER_SW | GENESYS_HAS_OCR_SW | GENESYS_HAS_SCAN_SW; - model.shading_lines = 40; - model.shading_ta_lines = 0; model.search_lines = 200; s_usb_devices->emplace_back(0x04a7, 0x0229, model); @@ -2402,20 +2136,14 @@ void genesys_init_usb_device_tables() model.bpp_color_values = { 8, 16 }; model.x_offset = 4.00; - model.y_offset = 0.80; + model.y_offset = 5.0; // FIXME: incorrect, needs updating model.x_size = 215.9; model.y_size = 296.4; model.y_offset_calib_white = 0.00; + model.y_size_calib_mm = 4.0; model.x_offset_calib_black = 0.00; - - model.x_offset_ta = 0.00; - model.y_offset_ta = 0.00; - model.x_size_ta = 0.00; - model.y_size_ta = 0.00; - - model.y_offset_sensor_to_ta = 0.0; - model.y_offset_calib_white_ta = 0.00; + model.x_size_calib_mm = 230.1241; model.post_scan = 0.0; model.eject_feed = 0.0; @@ -2431,18 +2159,14 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::WOLFSON_5345; model.gpio_id = GpioId::MD_5345; model.motor_id = MotorId::MD_5345; - model.flags = GENESYS_FLAG_14BIT_GAMMA | - GENESYS_FLAG_SEARCH_START | - GENESYS_FLAG_DARK_CALIBRATION | - GENESYS_FLAG_OFFSET_CALIBRATION | - GENESYS_FLAG_CUSTOM_GAMMA; + model.flags = ModelFlag::GAMMA_14BIT | + ModelFlag::DARK_CALIBRATION | + ModelFlag::CUSTOM_GAMMA; model.buttons = GENESYS_HAS_COPY_SW | GENESYS_HAS_EMAIL_SW | GENESYS_HAS_POWER_SW | GENESYS_HAS_OCR_SW | GENESYS_HAS_SCAN_SW; - model.shading_lines = 40; - model.shading_ta_lines = 0; model.search_lines = 200; s_usb_devices->emplace_back(0x0461, 0x038b, model); @@ -2472,15 +2196,9 @@ void genesys_init_usb_device_tables() model.y_size = 511; model.y_offset_calib_white = 0.0; + model.y_size_calib_mm = 4.0; model.x_offset_calib_black = 0.0; - - model.x_offset_ta = 0.0; - model.y_offset_ta = 0.0; - model.x_size_ta = 100.0; - model.y_size_ta = 100.0; - - model.y_offset_sensor_to_ta = 0.0; - model.y_offset_calib_white_ta = 0.0; + model.x_size_calib_mm = 220.1334; model.post_scan = 16.0; model.eject_feed = 0.0; @@ -2497,13 +2215,10 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::WOLFSON_XP300; model.gpio_id = GpioId::DP665; model.motor_id = MotorId::ROADWARRIOR; - model.flags = GENESYS_FLAG_SKIP_WARMUP | - GENESYS_FLAG_OFFSET_CALIBRATION | - GENESYS_FLAG_CUSTOM_GAMMA | - GENESYS_FLAG_DARK_CALIBRATION; + model.flags = ModelFlag::SKIP_WARMUP | + ModelFlag::CUSTOM_GAMMA | + ModelFlag::DARK_CALIBRATION; model.buttons = GENESYS_HAS_SCAN_SW | GENESYS_HAS_PAGE_LOADED_SW | GENESYS_HAS_CALIBRATE; - model.shading_lines = 100; - model.shading_ta_lines = 0; model.search_lines = 400; s_usb_devices->emplace_back(0x04a7, 0x04ac, model); @@ -2533,15 +2248,9 @@ void genesys_init_usb_device_tables() model.y_size = 297.0; model.y_offset_calib_white = 0.0; + model.y_size_calib_mm = 4.0; model.x_offset_calib_black = 0.0; - - model.x_offset_ta = 0.0; - model.y_offset_ta = 0.0; - model.x_size_ta = 0.0; - model.y_size_ta = 0.0; - - model.y_offset_sensor_to_ta = 0.0; - model.y_offset_calib_white_ta = 0.0; + model.x_size_calib_mm = 213.7834; model.post_scan = 0.0; model.eject_feed = 0.0; @@ -2558,14 +2267,11 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::PLUSTEK_OPTICPRO_3600; model.gpio_id = GpioId::PLUSTEK_OPTICPRO_3600; model.motor_id = MotorId::PLUSTEK_OPTICPRO_3600; - model.flags = GENESYS_FLAG_UNTESTED | // not fully working yet - GENESYS_FLAG_CUSTOM_GAMMA | - GENESYS_FLAG_SKIP_WARMUP | - GENESYS_FLAG_DARK_CALIBRATION | - GENESYS_FLAG_OFFSET_CALIBRATION; + model.flags = ModelFlag::UNTESTED | // not fully working yet + ModelFlag::CUSTOM_GAMMA | + ModelFlag::SKIP_WARMUP | + ModelFlag::DARK_CALIBRATION; model.buttons = GENESYS_HAS_NO_BUTTONS; - model.shading_lines = 7; - model.shading_ta_lines = 0; model.search_lines = 200; s_usb_devices->emplace_back(0x07b3, 0x0900, model); @@ -2594,16 +2300,22 @@ void genesys_init_usb_device_tables() model.y_offset = 0.0; model.x_size = 36.0; model.y_size = 44.0; + model.y_offset_calib_white = 0.0; + model.y_size_calib_mm = 0.0; model.x_offset_calib_black = 6.5; + model.x_size_calib_mm = 35.9834; model.x_offset_ta = 0.0; model.y_offset_ta = 29.0; model.x_size_ta = 36.0; model.y_size_ta = 24.0; + model.y_offset_sensor_to_ta = 0.0; model.y_offset_calib_black_ta = 6.5; model.y_offset_calib_white_ta = 0.0; + model.y_size_calib_ta_mm = 2.0; + model.post_scan = 0.0; model.eject_feed = 0.0; @@ -2621,19 +2333,12 @@ void genesys_init_usb_device_tables() model.gpio_id = GpioId::PLUSTEK_OPTICFILM_7200I; model.motor_id = MotorId::PLUSTEK_OPTICFILM_7200I; - model.flags = GENESYS_FLAG_HAS_UTA | - GENESYS_FLAG_HAS_UTA_INFRARED | - GENESYS_FLAG_CUSTOM_GAMMA | - GENESYS_FLAG_SKIP_WARMUP | - GENESYS_FLAG_DARK_CALIBRATION | - GENESYS_FLAG_OFFSET_CALIBRATION | - GENESYS_HAS_NO_BUTTONS | - GENESYS_FLAG_SHADING_REPARK | - GENESYS_FLAG_CALIBRATION_HOST_SIDE | - GENESYS_FLAG_16BIT_DATA_INVERTED; + model.flags = ModelFlag::CUSTOM_GAMMA | + ModelFlag::SKIP_WARMUP | + ModelFlag::DARK_CALIBRATION | + ModelFlag::SHADING_REPARK | + ModelFlag::INVERTED_16BIT_DATA; - model.shading_lines = 7; - model.shading_ta_lines = 50; model.search_lines = 200; s_usb_devices->emplace_back(0x07b3, 0x0c04, model); @@ -2661,16 +2366,22 @@ void genesys_init_usb_device_tables() model.y_offset = 0.0; model.x_size = 36.0; model.y_size = 44.0; + model.y_offset_calib_white = 0.0; + model.y_size_calib_mm = 0.0; model.x_offset_calib_black = 6.5; + model.x_size_calib_mm = 35.9834; model.x_offset_ta = 0.0; model.y_offset_ta = 29.0; model.x_size_ta = 36.0; model.y_size_ta = 24.0; + model.y_offset_sensor_to_ta = 0.0; model.y_offset_calib_black_ta = 6.5; model.y_offset_calib_white_ta = 0.0; + model.y_size_calib_ta_mm = 2.0; + model.post_scan = 0.0; model.eject_feed = 0.0; @@ -2688,17 +2399,11 @@ void genesys_init_usb_device_tables() model.gpio_id = GpioId::PLUSTEK_OPTICFILM_7300; model.motor_id = MotorId::PLUSTEK_OPTICFILM_7300; - model.flags = GENESYS_FLAG_HAS_UTA | - GENESYS_FLAG_CUSTOM_GAMMA | - GENESYS_FLAG_SKIP_WARMUP | - GENESYS_FLAG_DARK_CALIBRATION | - GENESYS_FLAG_OFFSET_CALIBRATION | - GENESYS_HAS_NO_BUTTONS | - GENESYS_FLAG_SHADING_REPARK | - GENESYS_FLAG_CALIBRATION_HOST_SIDE; + model.flags = ModelFlag::CUSTOM_GAMMA | + ModelFlag::SKIP_WARMUP | + ModelFlag::DARK_CALIBRATION | + ModelFlag::SHADING_REPARK; - model.shading_lines = 7; - model.shading_ta_lines = 50; model.search_lines = 200; s_usb_devices->emplace_back(0x07b3, 0x0c12, model); @@ -2726,16 +2431,22 @@ void genesys_init_usb_device_tables() model.y_offset = 0.0; model.x_size = 36.0; model.y_size = 44.0; + model.y_offset_calib_white = 0.0; + model.y_size_calib_mm = 0.0; model.x_offset_calib_black = 6.5; model.x_offset_ta = 0.0; model.y_offset_ta = 29.0; model.x_size_ta = 36.0; model.y_size_ta = 24.0; + model.x_size_calib_mm = 35.9834; + model.y_offset_sensor_to_ta = 0.0; model.y_offset_calib_black_ta = 6.5; model.y_offset_calib_white_ta = 0.0; + model.y_size_calib_ta_mm = 2.0; + model.post_scan = 0.0; model.eject_feed = 0.0; @@ -2753,18 +2464,11 @@ void genesys_init_usb_device_tables() model.gpio_id = GpioId::PLUSTEK_OPTICFILM_7500I; model.motor_id = MotorId::PLUSTEK_OPTICFILM_7500I; - model.flags = GENESYS_FLAG_HAS_UTA | - GENESYS_FLAG_HAS_UTA_INFRARED | - GENESYS_FLAG_CUSTOM_GAMMA | - GENESYS_FLAG_SKIP_WARMUP | - GENESYS_FLAG_DARK_CALIBRATION | - GENESYS_FLAG_OFFSET_CALIBRATION | - GENESYS_HAS_NO_BUTTONS | - GENESYS_FLAG_SHADING_REPARK | - GENESYS_FLAG_CALIBRATION_HOST_SIDE; + model.flags = ModelFlag::CUSTOM_GAMMA | + ModelFlag::SKIP_WARMUP | + ModelFlag::DARK_CALIBRATION | + ModelFlag::SHADING_REPARK; - model.shading_lines = 7; - model.shading_ta_lines = 50; model.search_lines = 200; s_usb_devices->emplace_back(0x07b3, 0x0c13, model); @@ -2792,16 +2496,10 @@ void genesys_init_usb_device_tables() model.x_size = 216; model.y_size = 511; - model.y_offset_calib_white = 3.0; + model.y_offset_calib_white = 0.0; + model.y_size_calib_mm = 4.0; // FIXME: y_offset is liely incorrect model.x_offset_calib_black = 0.0; - - model.x_offset_ta = 0.0; - model.y_offset_ta = 0.0; - model.x_size_ta = 100.0; - model.y_size_ta = 100.0; - - model.y_offset_sensor_to_ta = 0.0; - model.y_offset_calib_white_ta = 0; + model.x_size_calib_mm = 452.12; model.post_scan = 0; model.eject_feed = 0; @@ -2818,17 +2516,14 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::CANON_LIDE_200; // Not defined yet for N6310 model.gpio_id = GpioId::HP_N6310; model.motor_id = MotorId::CANON_LIDE_200; // Not defined yet for N6310 - model.flags = GENESYS_FLAG_UNTESTED | - GENESYS_FLAG_14BIT_GAMMA | - GENESYS_FLAG_DARK_CALIBRATION | - GENESYS_FLAG_OFFSET_CALIBRATION | - GENESYS_FLAG_CUSTOM_GAMMA | - GENESYS_FLAG_SKIP_WARMUP | - GENESYS_FLAG_NO_CALIBRATION; + model.flags = ModelFlag::UNTESTED | + ModelFlag::GAMMA_14BIT | + ModelFlag::DARK_CALIBRATION | + ModelFlag::CUSTOM_GAMMA | + ModelFlag::SKIP_WARMUP | + ModelFlag::NO_CALIBRATION; model.buttons = GENESYS_HAS_NO_BUTTONS; - model.shading_lines = 100; - model.shading_ta_lines = 0; model.search_lines = 100; s_usb_devices->emplace_back(0x03f0, 0x4705, model); @@ -2858,15 +2553,9 @@ void genesys_init_usb_device_tables() model.y_size = 300.0; model.y_offset_calib_white = 9.0; + model.y_size_calib_mm = 4.0; model.x_offset_calib_black = 0.0; - - model.x_offset_ta = 0.0; - model.y_offset_ta = 0.0; - model.x_size_ta = 0.0; - model.y_size_ta = 0.0; - - model.y_offset_sensor_to_ta = 0.0; - model.y_offset_calib_white_ta = 0.0; + model.x_size_calib_mm = 215.9; model.post_scan = 0.0; model.eject_feed = 0.0; @@ -2883,12 +2572,9 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::PLUSTEK_OPTICBOOK_3800; model.gpio_id = GpioId::PLUSTEK_OPTICBOOK_3800; model.motor_id = MotorId::PLUSTEK_OPTICBOOK_3800; - model.flags = GENESYS_FLAG_SKIP_WARMUP | - GENESYS_FLAG_OFFSET_CALIBRATION | - GENESYS_FLAG_CUSTOM_GAMMA; + model.flags = ModelFlag::SKIP_WARMUP | + ModelFlag::CUSTOM_GAMMA; model.buttons = GENESYS_HAS_NO_BUTTONS; // TODO there are 4 buttons to support - model.shading_lines = 100; - model.shading_ta_lines = 0; model.search_lines = 100; s_usb_devices->emplace_back(0x07b3, 0x1300, model); @@ -2918,15 +2604,9 @@ void genesys_init_usb_device_tables() model.y_size = 300.0; model.y_offset_calib_white = 9.0; + model.y_size_calib_mm = 4.0; model.x_offset_calib_black = 0.0; - - model.x_offset_ta = 0.0; - model.y_offset_ta = 0.0; - model.x_size_ta = 0.0; - model.y_size_ta = 0.0; - - model.y_offset_sensor_to_ta = 0.0; - model.y_offset_calib_white_ta = 0.0; + model.x_size_calib_mm = 228.6; model.post_scan = 0.0; model.eject_feed = 0.0; @@ -2943,16 +2623,37 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::IMG101; model.gpio_id = GpioId::IMG101; model.motor_id = MotorId::IMG101; - model.flags = GENESYS_FLAG_SKIP_WARMUP | - GENESYS_FLAG_OFFSET_CALIBRATION | - GENESYS_FLAG_CUSTOM_GAMMA | - GENESYS_FLAG_UNTESTED; + model.flags = ModelFlag::SKIP_WARMUP | + ModelFlag::CUSTOM_GAMMA | + ModelFlag::UNTESTED; model.buttons = GENESYS_HAS_NO_BUTTONS ; - model.shading_lines = 100; - model.shading_ta_lines = 0; model.search_lines = 100; s_usb_devices->emplace_back(0x1083, 0x162e, model); - } +} + +void verify_usb_device_tables() +{ + for (const auto& device : *s_usb_devices) { + const auto& model = device.model; + + if (model.x_size_calib_mm == 0.0f) { + throw SaneException("Calibration width can't be zero"); + } + + if (model.has_method(ScanMethod::FLATBED)) { + if (model.y_size_calib_mm == 0.0f) { + throw SaneException("Calibration size can't be zero"); + } + } + if (model.has_method(ScanMethod::TRANSPARENCY) || + model.has_method(ScanMethod::TRANSPARENCY_INFRARED)) + { + if (model.y_size_calib_ta_mm == 0.0f) { + throw SaneException("Calibration size can't be zero"); + } + } + } +} } // namespace genesys diff --git a/backend/genesys/tables_motor.cpp b/backend/genesys/tables_motor.cpp index aff31f9cc..c6895d18e 100644 --- a/backend/genesys/tables_motor.cpp +++ b/backend/genesys/tables_motor.cpp @@ -53,12 +53,14 @@ void genesys_init_motor_tables() { s_motors.init(); + MotorProfile profile; + Genesys_Motor motor; motor.id = MotorId::UMAX; motor.base_ydpi = 1200; motor.optical_ydpi = 2400; - motor.slopes.push_back(MotorSlope::create_from_steps(11000, 3000, 128)); - motor.slopes.push_back(MotorSlope::create_from_steps(11000, 3000, 128)); + motor.profiles.push_back({MotorSlope::create_from_steps(11000, 3000, 128), StepType::FULL, 0}); + motor.profiles.push_back({MotorSlope::create_from_steps(11000, 3000, 128), StepType::HALF, 0}); s_motors->push_back(std::move(motor)); @@ -66,8 +68,8 @@ void genesys_init_motor_tables() motor.id = MotorId::MD_5345; // MD5345/6228/6471 motor.base_ydpi = 1200; motor.optical_ydpi = 2400; - motor.slopes.push_back(MotorSlope::create_from_steps(2000, 1375, 128)); - motor.slopes.push_back(MotorSlope::create_from_steps(2000, 1375, 128)); + motor.profiles.push_back({MotorSlope::create_from_steps(2000, 1375, 128), StepType::FULL, 0}); + motor.profiles.push_back({MotorSlope::create_from_steps(2000, 1375, 128), StepType::HALF, 0}); s_motors->push_back(std::move(motor)); @@ -75,17 +77,17 @@ void genesys_init_motor_tables() motor.id = MotorId::ST24; motor.base_ydpi = 2400; motor.optical_ydpi = 2400; - motor.slopes.push_back(MotorSlope::create_from_steps(2289, 2100, 128)); - motor.slopes.push_back(MotorSlope::create_from_steps(2289, 2100, 128)); + motor.profiles.push_back({MotorSlope::create_from_steps(2289, 2100, 128), StepType::FULL, 0}); + motor.profiles.push_back({MotorSlope::create_from_steps(2289, 2100, 128), StepType::HALF, 0}); s_motors->push_back(std::move(motor)); motor = Genesys_Motor(); motor.id = MotorId::HP3670; motor.base_ydpi = 1200; - motor.optical_ydpi = 2400; - motor.slopes.push_back(MotorSlope::create_from_steps(11000, 3000, 128)); - motor.slopes.push_back(MotorSlope::create_from_steps(11000, 3000, 128)); + motor.optical_ydpi = 1200; + motor.profiles.push_back({MotorSlope::create_from_steps(11000, 3000, 128), StepType::FULL, 0}); + motor.profiles.push_back({MotorSlope::create_from_steps(11000, 3000, 128), StepType::HALF, 0}); s_motors->push_back(std::move(motor)); @@ -93,8 +95,8 @@ void genesys_init_motor_tables() motor.id = MotorId::HP2400; motor.base_ydpi = 1200; motor.optical_ydpi = 1200; - motor.slopes.push_back(MotorSlope::create_from_steps(11000, 3000, 128)); - motor.slopes.push_back(MotorSlope::create_from_steps(11000, 3000, 128)); + motor.profiles.push_back({MotorSlope::create_from_steps(11000, 3000, 128), StepType::FULL, 0}); + motor.profiles.push_back({MotorSlope::create_from_steps(11000, 3000, 128), StepType::HALF, 0}); s_motors->push_back(std::move(motor)); @@ -102,8 +104,8 @@ void genesys_init_motor_tables() motor.id = MotorId::HP2300; motor.base_ydpi = 600; motor.optical_ydpi = 1200; - motor.slopes.push_back(MotorSlope::create_from_steps(3200, 1200, 128)); - motor.slopes.push_back(MotorSlope::create_from_steps(3200, 1200, 128)); + motor.profiles.push_back({MotorSlope::create_from_steps(3200, 1200, 128), StepType::FULL, 0}); + motor.profiles.push_back({MotorSlope::create_from_steps(3200, 1200, 128), StepType::HALF, 0}); s_motors->push_back(std::move(motor)); @@ -111,8 +113,8 @@ void genesys_init_motor_tables() motor.id = MotorId::CANON_LIDE_35; motor.base_ydpi = 1200; motor.optical_ydpi = 2400; - motor.slopes.push_back(MotorSlope::create_from_steps(3500, 1300, 60)); - motor.slopes.push_back(MotorSlope::create_from_steps(3500, 1400, 60)); + motor.profiles.push_back({MotorSlope::create_from_steps(3500, 1300, 60), StepType::FULL, 0}); + motor.profiles.push_back({MotorSlope::create_from_steps(3500, 1400, 60), StepType::HALF, 0}); s_motors->push_back(std::move(motor)); @@ -120,8 +122,8 @@ void genesys_init_motor_tables() motor.id = MotorId::XP200; motor.base_ydpi = 600; motor.optical_ydpi = 600; - motor.slopes.push_back(MotorSlope::create_from_steps(3500, 1300, 60)); - motor.slopes.push_back(MotorSlope::create_from_steps(3500, 1300, 60)); + motor.profiles.push_back({MotorSlope::create_from_steps(3500, 1300, 60), StepType::FULL, 0}); + motor.profiles.push_back({MotorSlope::create_from_steps(3500, 1300, 60), StepType::HALF, 0}); s_motors->push_back(std::move(motor)); @@ -130,8 +132,8 @@ void genesys_init_motor_tables() motor.base_ydpi = 300; motor.optical_ydpi = 600; // works best with GPIO10, GPIO14 off - motor.slopes.push_back(MotorSlope::create_from_steps(3700, 3700, 2)); - motor.slopes.push_back(MotorSlope::create_from_steps(11000, 11000, 2)); + motor.profiles.push_back({MotorSlope::create_from_steps(3700, 3700, 2), StepType::FULL, 0}); + motor.profiles.push_back({MotorSlope::create_from_steps(11000, 11000, 2), StepType::HALF, 0}); s_motors->push_back(std::move(motor)); @@ -139,8 +141,8 @@ void genesys_init_motor_tables() motor.id = MotorId::DP665; motor.base_ydpi = 750; motor.optical_ydpi = 1500; - motor.slopes.push_back(MotorSlope::create_from_steps(3000, 2500, 10)); - motor.slopes.push_back(MotorSlope::create_from_steps(11000, 11000, 2)); + motor.profiles.push_back({MotorSlope::create_from_steps(3000, 2500, 10), StepType::FULL, 0}); + motor.profiles.push_back({MotorSlope::create_from_steps(11000, 11000, 2), StepType::HALF, 0}); s_motors->push_back(std::move(motor)); @@ -148,8 +150,8 @@ void genesys_init_motor_tables() motor.id = MotorId::ROADWARRIOR; motor.base_ydpi = 750; motor.optical_ydpi = 1500; - motor.slopes.push_back(MotorSlope::create_from_steps(3000, 2600, 10)); - motor.slopes.push_back(MotorSlope::create_from_steps(11000, 11000, 2)); + motor.profiles.push_back({MotorSlope::create_from_steps(3000, 2600, 10), StepType::FULL, 0}); + motor.profiles.push_back({MotorSlope::create_from_steps(11000, 11000, 2), StepType::HALF, 0}); s_motors->push_back(std::move(motor)); @@ -157,8 +159,8 @@ void genesys_init_motor_tables() motor.id = MotorId::DSMOBILE_600; motor.base_ydpi = 750; motor.optical_ydpi = 1500; - motor.slopes.push_back(MotorSlope::create_from_steps(6666, 3700, 8)); - motor.slopes.push_back(MotorSlope::create_from_steps(6666, 3700, 8)); + motor.profiles.push_back({MotorSlope::create_from_steps(6666, 3700, 8), StepType::FULL, 0}); + motor.profiles.push_back({MotorSlope::create_from_steps(6666, 3700, 8), StepType::HALF, 0}); s_motors->push_back(std::move(motor)); @@ -166,9 +168,12 @@ void genesys_init_motor_tables() motor.id = MotorId::CANON_LIDE_100; motor.base_ydpi = 1200; motor.optical_ydpi = 6400; - motor.slopes.push_back(MotorSlope::create_from_steps(3000, 1000, 127)); - motor.slopes.push_back(MotorSlope::create_from_steps(3000, 1500, 127)); - motor.slopes.push_back(MotorSlope::create_from_steps(3 * 2712, 3 * 2712, 16)); + motor.profiles.push_back({MotorSlope::create_from_steps(46876, 864, 255), + StepType::HALF, 1432}); + motor.profiles.push_back({MotorSlope::create_from_steps(46876, 864, 279), + StepType::QUARTER, 2712}); + motor.profiles.push_back({MotorSlope::create_from_steps(31680, 864, 247), + StepType::EIGHTH, 5280}); s_motors->push_back(std::move(motor)); @@ -176,9 +181,14 @@ void genesys_init_motor_tables() motor.id = MotorId::CANON_LIDE_200; motor.base_ydpi = 1200; motor.optical_ydpi = 6400; - motor.slopes.push_back(MotorSlope::create_from_steps(3000, 1000, 127)); - motor.slopes.push_back(MotorSlope::create_from_steps(3000, 1500, 127)); - motor.slopes.push_back(MotorSlope::create_from_steps(3 * 2712, 3 * 2712, 16)); + motor.profiles.push_back({MotorSlope::create_from_steps(46876, 864, 255), + StepType::HALF, 1432}); + motor.profiles.push_back({MotorSlope::create_from_steps(46876, 864, 279), + StepType::QUARTER, 2712}); + motor.profiles.push_back({MotorSlope::create_from_steps(31680, 864, 247), + StepType::EIGHTH, 5280}); + motor.profiles.push_back({MotorSlope::create_from_steps(31680, 864, 247), + StepType::EIGHTH, 10416}); s_motors->push_back(std::move(motor)); @@ -186,9 +196,16 @@ void genesys_init_motor_tables() motor.id = MotorId::CANON_LIDE_700; motor.base_ydpi = 1200; motor.optical_ydpi = 6400; - motor.slopes.push_back(MotorSlope::create_from_steps(3000, 1000, 127)); - motor.slopes.push_back(MotorSlope::create_from_steps(3000, 1500, 127)); - motor.slopes.push_back(MotorSlope::create_from_steps(3 * 2712, 3 * 2712, 16)); + motor.profiles.push_back({MotorSlope::create_from_steps(46876, 534, 255), + StepType::HALF, 1424}); + motor.profiles.push_back({MotorSlope::create_from_steps(46876, 534, 255), + StepType::HALF, 1504}); + motor.profiles.push_back({MotorSlope::create_from_steps(46876, 2022, 127), + StepType::HALF, 2696}); + motor.profiles.push_back({MotorSlope::create_from_steps(46876, 534, 255), + StepType::HALF, 2848}); + motor.profiles.push_back({MotorSlope::create_from_steps(46876, 15864, 2), + StepType::EIGHTH, 10576}); s_motors->push_back(std::move(motor)); @@ -196,9 +213,8 @@ void genesys_init_motor_tables() motor.id = MotorId::KVSS080; motor.base_ydpi = 1200; motor.optical_ydpi = 1200; - motor.slopes.push_back(MotorSlope::create_from_steps(22222, 500, 246)); - motor.slopes.push_back(MotorSlope::create_from_steps(22222, 500, 246)); - motor.slopes.push_back(MotorSlope::create_from_steps(22222, 500, 246)); + motor.profiles.push_back({MotorSlope::create_from_steps(44444, 500, 489), + StepType::HALF, 8000}); s_motors->push_back(std::move(motor)); @@ -206,9 +222,14 @@ void genesys_init_motor_tables() motor.id = MotorId::G4050; motor.base_ydpi = 2400; motor.optical_ydpi = 9600; - motor.slopes.push_back(MotorSlope::create_from_steps(3961, 240, 246)); - motor.slopes.push_back(MotorSlope::create_from_steps(3961, 240, 246)); - motor.slopes.push_back(MotorSlope::create_from_steps(3961, 240, 246)); + motor.profiles.push_back({MotorSlope::create_from_steps(7842, 320, 602), + StepType::HALF, 8016}); + motor.profiles.push_back({MotorSlope::create_from_steps(9422, 254, 1004), + StepType::HALF, 15624}); + motor.profiles.push_back({MotorSlope::create_from_steps(28032, 2238, 604), + StepType::HALF, 56064}); + motor.profiles.push_back({MotorSlope::create_from_steps(42752, 1706, 610), + StepType::QUARTER, 42752}); s_motors->push_back(std::move(motor)); @@ -216,9 +237,27 @@ void genesys_init_motor_tables() motor.id = MotorId::CANON_4400F; motor.base_ydpi = 2400; motor.optical_ydpi = 9600; - motor.slopes.push_back(MotorSlope::create_from_steps(3961, 240, 246)); - motor.slopes.push_back(MotorSlope::create_from_steps(3961, 240, 246)); - motor.slopes.push_back(MotorSlope::create_from_steps(3961, 240, 246)); + + profile = MotorProfile(); + profile.slope = MotorSlope::create_from_steps(28597 * 2, 727 * 2, 200); + profile.step_type = StepType::QUARTER; + profile.motor_vref = 1; + profile.resolutions = { 300, 600 }; + motor.profiles.push_back(std::move(profile)); + + profile = MotorProfile(); + profile.slope = MotorSlope::create_from_steps(28597 * 2, 727 * 2, 200); + profile.step_type = StepType::QUARTER; + profile.motor_vref = 0; + profile.resolutions = { 1200, 2400, 4800, 9600 }; + motor.profiles.push_back(std::move(profile)); + + profile = MotorProfile(); + profile.slope = MotorSlope::create_from_steps(28597 * 2, 279 * 2, 1000); + profile.step_type = StepType::QUARTER; + profile.motor_vref = 0; + motor.fast_profiles.push_back(std::move(profile)); + s_motors->push_back(std::move(motor)); @@ -226,9 +265,31 @@ void genesys_init_motor_tables() motor.id = MotorId::CANON_8400F; motor.base_ydpi = 1600; motor.optical_ydpi = 6400; - motor.slopes.push_back(MotorSlope::create_from_steps(3961, 240, 246)); - motor.slopes.push_back(MotorSlope::create_from_steps(3961, 240, 246)); - motor.slopes.push_back(MotorSlope::create_from_steps(3961, 240, 246)); + + profile = MotorProfile(); + profile.slope = MotorSlope::create_from_steps(20202 * 4, 333 * 4, 100); + profile.step_type = StepType::QUARTER; + profile.motor_vref = 0; + profile.resolutions = ResolutionFilter::ANY; + profile.scan_methods = { ScanMethod::FLATBED }; + motor.profiles.push_back(std::move(profile)); + + profile = MotorProfile(); + profile.slope = MotorSlope::create_from_steps(65535 * 4, 333 * 4, 100); + profile.step_type = StepType::QUARTER; + profile.motor_vref = 2; + profile.resolutions = ResolutionFilter::ANY; + profile.scan_methods = { ScanMethod::TRANSPARENCY, ScanMethod::TRANSPARENCY_INFRARED }; + motor.profiles.push_back(std::move(profile)); + + profile = MotorProfile(); + profile.slope = MotorSlope::create_from_steps(65535 * 4, 333 * 4, 200); + profile.step_type = StepType::QUARTER; + profile.motor_vref = 2; + profile.resolutions = ResolutionFilter::ANY; + profile.scan_methods = ScanMethodFilter::ANY; + motor.fast_profiles.push_back(std::move(profile)); + s_motors->push_back(std::move(motor)); @@ -236,9 +297,64 @@ void genesys_init_motor_tables() motor.id = MotorId::CANON_8600F; motor.base_ydpi = 2400; motor.optical_ydpi = 9600; - motor.slopes.push_back(MotorSlope::create_from_steps(3961, 240, 246)); - motor.slopes.push_back(MotorSlope::create_from_steps(3961, 240, 246)); - motor.slopes.push_back(MotorSlope::create_from_steps(3961, 240, 246)); + + profile = MotorProfile(); + profile.slope = MotorSlope::create_from_steps(54612, 1500, 219); + profile.step_type = StepType::QUARTER; + profile.motor_vref = 3; + profile.resolutions = { 300, 600 }; + profile.scan_methods = { ScanMethod::FLATBED }; + motor.profiles.push_back(std::move(profile)); + + profile = MotorProfile(); + profile.slope = MotorSlope::create_from_steps(54612, 1500, 219); + profile.step_type = StepType::QUARTER; + profile.motor_vref = 2; + profile.resolutions = { 1200, 2400 }; + profile.scan_methods = { ScanMethod::FLATBED }; + motor.profiles.push_back(std::move(profile)); + + profile = MotorProfile(); + profile.slope = MotorSlope::create_from_steps(54612, 1500, 219); + profile.step_type = StepType::QUARTER; + profile.motor_vref = 2; + profile.resolutions = { 4800 }; + profile.scan_methods = { ScanMethod::FLATBED }; + motor.profiles.push_back(std::move(profile)); + + profile = MotorProfile(); + profile.slope = MotorSlope::create_from_steps(54612, 1500, 219); + profile.step_type = StepType::QUARTER; + profile.motor_vref = 2; + profile.resolutions = { 300, 600 }; + profile.scan_methods = { ScanMethod::TRANSPARENCY, + ScanMethod::TRANSPARENCY_INFRARED }; + motor.profiles.push_back(std::move(profile)); + + profile = MotorProfile(); + profile.slope = MotorSlope::create_from_steps(54612, 1500, 219); + profile.step_type = StepType::QUARTER; + profile.motor_vref = 1; + profile.resolutions = { 1200, 2400 }; + profile.scan_methods = { ScanMethod::TRANSPARENCY, + ScanMethod::TRANSPARENCY_INFRARED }; + motor.profiles.push_back(std::move(profile)); + + profile = MotorProfile(); + profile.slope = MotorSlope::create_from_steps(54612, 1500, 219); + profile.step_type = StepType::QUARTER; + profile.motor_vref = 0; + profile.resolutions = { 4800 }; + profile.scan_methods = { ScanMethod::TRANSPARENCY, + ScanMethod::TRANSPARENCY_INFRARED }; + motor.profiles.push_back(std::move(profile)); + + profile = MotorProfile(); + profile.slope = MotorSlope::create_from_steps(59240, 582, 1020); + profile.step_type = StepType::QUARTER; + profile.motor_vref = 2; + motor.fast_profiles.push_back(std::move(profile)); + s_motors->push_back(std::move(motor)); @@ -246,7 +362,14 @@ void genesys_init_motor_tables() motor.id = MotorId::CANON_LIDE_110; motor.base_ydpi = 4800; motor.optical_ydpi = 9600; - motor.slopes.push_back(MotorSlope::create_from_steps(3000, 1000, 256)); + motor.profiles.push_back({MotorSlope::create_from_steps(62496, 335, 255), + StepType::FULL, 2768}); + motor.profiles.push_back({MotorSlope::create_from_steps(62496, 335, 469), + StepType::HALF, 5360}); + motor.profiles.push_back({MotorSlope::create_from_steps(62496, 2632, 3), + StepType::HALF, 10528}); + motor.profiles.push_back({MotorSlope::create_from_steps(62496, 10432, 3), + StepType::QUARTER, 20864}); s_motors->push_back(std::move(motor)); @@ -254,7 +377,14 @@ void genesys_init_motor_tables() motor.id = MotorId::CANON_LIDE_120; motor.base_ydpi = 4800; motor.optical_ydpi = 9600; - motor.slopes.push_back(MotorSlope::create_from_steps(3000, 1000, 256)); + motor.profiles.push_back({MotorSlope::create_from_steps(62496, 864, 127), + StepType::FULL, 4608}); + motor.profiles.push_back({MotorSlope::create_from_steps(62496, 2010, 63), + StepType::HALF, 5360}); + motor.profiles.push_back({MotorSlope::create_from_steps(62464, 2632, 3), + StepType::QUARTER, 10528}); + motor.profiles.push_back({MotorSlope::create_from_steps(62592, 10432, 5), + StepType::QUARTER, 20864}); s_motors->push_back(std::move(motor)); @@ -262,7 +392,14 @@ void genesys_init_motor_tables() motor.id = MotorId::CANON_LIDE_210; motor.base_ydpi = 4800; motor.optical_ydpi = 9600; - motor.slopes.push_back(MotorSlope::create_from_steps(3000, 1000, 256)); + motor.profiles.push_back({MotorSlope::create_from_steps(62496, 335, 255), + StepType::FULL, 2768}); + motor.profiles.push_back({MotorSlope::create_from_steps(62496, 335, 469), + StepType::HALF, 5360}); + motor.profiles.push_back({MotorSlope::create_from_steps(62496, 2632, 3), + StepType::HALF, 10528}); + motor.profiles.push_back({MotorSlope::create_from_steps(62496, 10432, 4), + StepType::QUARTER, 20864}); s_motors->push_back(std::move(motor)); @@ -270,8 +407,8 @@ void genesys_init_motor_tables() motor.id = MotorId::PLUSTEK_OPTICPRO_3600; motor.base_ydpi = 1200; motor.optical_ydpi = 2400; - motor.slopes.push_back(MotorSlope::create_from_steps(3500, 1300, 60)); - motor.slopes.push_back(MotorSlope::create_from_steps(3500, 3250, 60)); + motor.profiles.push_back({MotorSlope::create_from_steps(3500, 1300, 60), StepType::FULL, 0}); + motor.profiles.push_back({MotorSlope::create_from_steps(3500, 3250, 60), StepType::HALF, 0}); s_motors->push_back(std::move(motor)); @@ -279,6 +416,19 @@ void genesys_init_motor_tables() motor.id = MotorId::PLUSTEK_OPTICFILM_7200I; motor.base_ydpi = 3600; motor.optical_ydpi = 3600; + + profile = MotorProfile(); + profile.slope = MotorSlope::create_from_steps(34722 * 2, 454 * 2, 40); + profile.step_type = StepType::HALF; + profile.motor_vref = 3; + motor.profiles.push_back(std::move(profile)); + + profile = MotorProfile(); + profile.slope = MotorSlope::create_from_steps(34722 * 2, 454 * 2, 40); + profile.step_type = StepType::HALF; + profile.motor_vref = 0; + motor.fast_profiles.push_back(std::move(profile)); + s_motors->push_back(std::move(motor)); @@ -286,6 +436,19 @@ void genesys_init_motor_tables() motor.id = MotorId::PLUSTEK_OPTICFILM_7300; motor.base_ydpi = 3600; motor.optical_ydpi = 3600; + + profile = MotorProfile(); + profile.slope = MotorSlope::create_from_steps(56818 * 4, 454 * 4, 30); + profile.step_type = StepType::QUARTER; + profile.motor_vref = 3; + motor.profiles.push_back(std::move(profile)); + + profile = MotorProfile(); + profile.slope = MotorSlope::create_from_steps(56818 * 4, 454 * 4, 30); + profile.step_type = StepType::QUARTER; + profile.motor_vref = 0; + motor.fast_profiles.push_back(std::move(profile)); + s_motors->push_back(std::move(motor)); @@ -293,6 +456,19 @@ void genesys_init_motor_tables() motor.id = MotorId::PLUSTEK_OPTICFILM_7500I; motor.base_ydpi = 3600; motor.optical_ydpi = 3600; + + profile = MotorProfile(); + profile.slope = MotorSlope::create_from_steps(56818 * 4, 454 * 4, 30); + profile.step_type = StepType::QUARTER; + profile.motor_vref = 3; + motor.profiles.push_back(std::move(profile)); + + profile = MotorProfile(); + profile.slope = MotorSlope::create_from_steps(56818 * 4, 454 * 4, 30); + profile.step_type = StepType::QUARTER; + profile.motor_vref = 0; + motor.fast_profiles.push_back(std::move(profile)); + s_motors->push_back(std::move(motor)); @@ -300,8 +476,8 @@ void genesys_init_motor_tables() motor.id = MotorId::IMG101; motor.base_ydpi = 600; motor.optical_ydpi = 1200; - motor.slopes.push_back(MotorSlope::create_from_steps(3500, 1300, 60)); - motor.slopes.push_back(MotorSlope::create_from_steps(3500, 3250, 60)); + motor.profiles.push_back({MotorSlope::create_from_steps(22000, 1000, 1017), + StepType::HALF, 11000}); s_motors->push_back(std::move(motor)); @@ -309,8 +485,8 @@ void genesys_init_motor_tables() motor.id = MotorId::PLUSTEK_OPTICBOOK_3800; motor.base_ydpi = 600; motor.optical_ydpi = 1200; - motor.slopes.push_back(MotorSlope::create_from_steps(3500, 1300, 60)); - motor.slopes.push_back(MotorSlope::create_from_steps(3500, 3250, 60)); + motor.profiles.push_back({MotorSlope::create_from_steps(22000, 1000, 1017), + StepType::HALF, 11000}); s_motors->push_back(std::move(motor)); @@ -318,7 +494,7 @@ void genesys_init_motor_tables() motor.id = MotorId::CANON_LIDE_80; motor.base_ydpi = 2400; motor.optical_ydpi = 4800; // 9600 - motor.slopes.push_back(MotorSlope::create_from_steps(9560, 1912, 31)); + motor.profiles.push_back({MotorSlope::create_from_steps(9560, 1912, 31), StepType::FULL, 0}); s_motors->push_back(std::move(motor)); } diff --git a/backend/genesys/tables_motor_profile.cpp b/backend/genesys/tables_motor_profile.cpp deleted file mode 100644 index 18f727129..000000000 --- a/backend/genesys/tables_motor_profile.cpp +++ /dev/null @@ -1,380 +0,0 @@ -/* sane - Scanner Access Now Easy. - - Copyright (C) 2019 Povilas Kanapickas - - 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. -*/ - -#define DEBUG_DECLARE_ONLY - -#include "low.h" - -namespace genesys { - -StaticInit> gl843_motor_profiles; - -void genesys_init_motor_profile_tables_gl843() -{ - gl843_motor_profiles.init(); - - auto profile = Motor_Profile(); - profile.motor_id = MotorId::KVSS080; - profile.exposure = 8000; - profile.step_type = StepType::HALF; - profile.slope = MotorSlope::create_from_steps(44444, 500, 489); - gl843_motor_profiles->push_back(profile); - - profile = Motor_Profile(); - profile.motor_id = MotorId::G4050; - profile.exposure = 8016; - profile.step_type = StepType::HALF; - profile.slope = MotorSlope::create_from_steps(7842, 320, 602); - gl843_motor_profiles->push_back(profile); - - profile = Motor_Profile(); - profile.motor_id = MotorId::G4050; - profile.exposure = 15624; - profile.step_type = StepType::HALF; - profile.slope = MotorSlope::create_from_steps(9422, 254, 1004); - gl843_motor_profiles->push_back(profile); - - profile = Motor_Profile(); - profile.motor_id = MotorId::G4050; - profile.exposure = 42752; - profile.step_type = StepType::QUARTER; - profile.slope = MotorSlope::create_from_steps(42752, 1706, 610); - gl843_motor_profiles->push_back(profile); - - profile = Motor_Profile(); - profile.motor_id = MotorId::G4050; - profile.exposure = 56064; - profile.step_type = StepType::HALF; - profile.slope = MotorSlope::create_from_steps(28032, 2238, 604); - gl843_motor_profiles->push_back(profile); - - profile = Motor_Profile(); - profile.motor_id = MotorId::CANON_4400F; - profile.exposure = 11640; - profile.step_type = StepType::HALF; - profile.slope = MotorSlope::create_from_steps(49152, 484, 1014); - gl843_motor_profiles->push_back(profile); - - profile = Motor_Profile(); - profile.motor_id = MotorId::CANON_8400F; - profile.exposure = 50000; - profile.step_type = StepType::QUARTER; - profile.slope = MotorSlope::create_from_steps(8743, 300, 794); - gl843_motor_profiles->push_back(profile); - - profile = Motor_Profile(); - profile.motor_id = MotorId::CANON_8600F; - profile.exposure = 0x59d8; - profile.step_type = StepType::QUARTER; - // FIXME: if the exposure is lower then we'll select another motor - profile.slope = MotorSlope::create_from_steps(54612, 1500, 219); - gl843_motor_profiles->push_back(profile); - - profile = Motor_Profile(); - profile.motor_id = MotorId::PLUSTEK_OPTICFILM_7200I; - profile.exposure = 0; - profile.step_type = StepType::HALF; - profile.slope = MotorSlope::create_from_steps(39682, 1191, 15); - gl843_motor_profiles->push_back(profile); - - profile = Motor_Profile(); - profile.motor_id = MotorId::PLUSTEK_OPTICFILM_7300; - profile.exposure = 0x2f44; - profile.step_type = StepType::QUARTER; - profile.slope = MotorSlope::create_from_steps(31250, 1512, 6); - gl843_motor_profiles->push_back(profile); - - profile = Motor_Profile(); - profile.motor_id = MotorId::PLUSTEK_OPTICFILM_7500I; - profile.exposure = 0; - profile.step_type = StepType::QUARTER; - profile.slope = MotorSlope::create_from_steps(31250, 1375, 7); - gl843_motor_profiles->push_back(profile); -} - -StaticInit> gl846_motor_profiles; - -void genesys_init_motor_profile_tables_gl846() -{ - gl846_motor_profiles.init(); - - auto profile = Motor_Profile(); - profile.motor_id = MotorId::IMG101; - profile.exposure = 11000; - profile.step_type = StepType::HALF; - profile.slope = MotorSlope::create_from_steps(22000, 1000, 1017); - - gl846_motor_profiles->push_back(profile); - - profile = Motor_Profile(); - profile.motor_id = MotorId::PLUSTEK_OPTICBOOK_3800; - profile.exposure = 11000; - profile.step_type = StepType::HALF; - profile.slope = MotorSlope::create_from_steps(22000, 1000, 1017); - gl846_motor_profiles->push_back(profile); -} - -/** - * database of motor profiles - */ - -StaticInit> gl847_motor_profiles; - -void genesys_init_motor_profile_tables_gl847() -{ - gl847_motor_profiles.init(); - - auto profile = Motor_Profile(); - profile.motor_id = MotorId::CANON_LIDE_100; - profile.exposure = 2848; - profile.step_type = StepType::HALF; - profile.slope = MotorSlope::create_from_steps(46876, 534, 255); - gl847_motor_profiles->push_back(profile); - - profile = Motor_Profile(); - profile.motor_id = MotorId::CANON_LIDE_100; - profile.exposure = 1424; - profile.step_type = StepType::HALF; - profile.slope = MotorSlope::create_from_steps(46876, 534, 255); - gl847_motor_profiles->push_back(profile); - - profile = Motor_Profile(); - profile.motor_id = MotorId::CANON_LIDE_100; - profile.exposure = 1432; - profile.step_type = StepType::HALF; - profile.slope = MotorSlope::create_from_steps(46876, 534, 255); - gl847_motor_profiles->push_back(profile); - - profile = Motor_Profile(); - profile.motor_id = MotorId::CANON_LIDE_100; - profile.exposure = 2712; - profile.step_type = StepType::QUARTER; - profile.slope = MotorSlope::create_from_steps(46876, 534, 279); - gl847_motor_profiles->push_back(profile); - - profile = Motor_Profile(); - profile.motor_id = MotorId::CANON_LIDE_100; - profile.exposure = 5280; - profile.step_type = StepType::EIGHTH; - profile.slope = MotorSlope::create_from_steps(31680, 534, 247); - gl847_motor_profiles->push_back(profile); - - profile = Motor_Profile(); - profile.motor_id = MotorId::CANON_LIDE_200; - profile.exposure = 2848; - profile.step_type = StepType::HALF; - profile.slope = MotorSlope::create_from_steps(46876, 534, 255); - gl847_motor_profiles->push_back(profile); - - profile = Motor_Profile(); - profile.motor_id = MotorId::CANON_LIDE_200; - profile.exposure = 1424; - profile.step_type = StepType::HALF; - profile.slope = MotorSlope::create_from_steps(46876, 534, 255); - gl847_motor_profiles->push_back(profile); - - profile = Motor_Profile(); - profile.motor_id = MotorId::CANON_LIDE_200; - profile.exposure = 1432; - profile.step_type = StepType::HALF; - profile.slope = MotorSlope::create_from_steps(46876, 534, 255); - gl847_motor_profiles->push_back(profile); - - profile = Motor_Profile(); - profile.motor_id = MotorId::CANON_LIDE_200; - profile.exposure = 2712; - profile.step_type = StepType::QUARTER; - profile.slope = MotorSlope::create_from_steps(46876, 534, 279); - gl847_motor_profiles->push_back(profile); - - profile = Motor_Profile(); - profile.motor_id = MotorId::CANON_LIDE_200; - profile.exposure = 5280; - profile.step_type = StepType::EIGHTH; - profile.slope = MotorSlope::create_from_steps(31680, 534, 247); - gl847_motor_profiles->push_back(profile); - - profile = Motor_Profile(); - profile.motor_id = MotorId::CANON_LIDE_200; - profile.exposure = 10416; - profile.step_type = StepType::EIGHTH; - profile.slope = MotorSlope::create_from_steps(31680, 534, 247); - gl847_motor_profiles->push_back(profile); - - profile = Motor_Profile(); - profile.motor_id = MotorId::CANON_LIDE_700; - profile.exposure = 2848; - profile.step_type = StepType::HALF; - profile.slope = MotorSlope::create_from_steps(46876, 534, 255); - gl847_motor_profiles->push_back(profile); - - profile = Motor_Profile(); - profile.motor_id = MotorId::CANON_LIDE_700; - profile.exposure = 1424; - profile.step_type = StepType::HALF; - profile.slope = MotorSlope::create_from_steps(46876, 534, 255); - gl847_motor_profiles->push_back(profile); - - profile = Motor_Profile(); - profile.motor_id = MotorId::CANON_LIDE_700; - profile.exposure = 1504; - profile.step_type = StepType::HALF; - profile.slope = MotorSlope::create_from_steps(46876, 534, 255); - gl847_motor_profiles->push_back(profile); - - profile = Motor_Profile(); - profile.motor_id = MotorId::CANON_LIDE_700; - profile.exposure = 2696; - profile.step_type = StepType::HALF; - profile.slope = MotorSlope::create_from_steps(46876, 2022, 127); - gl847_motor_profiles->push_back(profile); - - profile = Motor_Profile(); - profile.motor_id = MotorId::CANON_LIDE_700; - profile.exposure = 10576; - profile.step_type = StepType::EIGHTH; - profile.slope = MotorSlope::create_from_steps(46876, 15864, 2); - gl847_motor_profiles->push_back(profile); -} - -StaticInit> gl124_motor_profiles; - -void genesys_init_motor_profile_tables_gl124() -{ - gl124_motor_profiles.init(); - - // NEXT LPERIOD=PREVIOUS*2-192 - Motor_Profile profile; - profile.motor_id = MotorId::CANON_LIDE_110; - profile.exposure = 2768; - profile.step_type = StepType::FULL; - profile.slope = MotorSlope::create_from_steps(62496, 335, 255); - gl124_motor_profiles->push_back(profile); - - profile = Motor_Profile(); - profile.motor_id = MotorId::CANON_LIDE_110; - profile.exposure = 5360; - profile.step_type = StepType::HALF; - profile.slope = MotorSlope::create_from_steps(62496, 335, 469); - gl124_motor_profiles->push_back(profile); - - profile = Motor_Profile(); - profile.motor_id = MotorId::CANON_LIDE_110; - profile.exposure = 10528; - profile.step_type = StepType::HALF; - profile.slope = MotorSlope::create_from_steps(62496, 2632, 3); - gl124_motor_profiles->push_back(profile); - - profile = Motor_Profile(); - profile.motor_id = MotorId::CANON_LIDE_110; - profile.exposure = 20864; - profile.step_type = StepType::QUARTER; - profile.slope = MotorSlope::create_from_steps(62496, 10432, 3); - gl124_motor_profiles->push_back(profile); - - profile = Motor_Profile(); - profile.motor_id = MotorId::CANON_LIDE_120; - profile.exposure = 4608; - profile.step_type = StepType::FULL; - profile.slope = MotorSlope::create_from_steps(62496, 864, 127); - gl124_motor_profiles->push_back(profile); - - profile = Motor_Profile(); - profile.motor_id = MotorId::CANON_LIDE_120; - profile.exposure = 5360; - profile.step_type = StepType::HALF; - profile.slope = MotorSlope::create_from_steps(62496, 2010, 63); - gl124_motor_profiles->push_back(profile); - - profile = Motor_Profile(); - profile.motor_id = MotorId::CANON_LIDE_120; - profile.exposure = 10528; - profile.step_type = StepType::QUARTER; - profile.slope = MotorSlope::create_from_steps(62464, 2632, 3); - gl124_motor_profiles->push_back(profile); - - profile = Motor_Profile(); - profile.motor_id = MotorId::CANON_LIDE_120; - profile.exposure = 20864; - profile.step_type = StepType::QUARTER; - profile.slope = MotorSlope::create_from_steps(62592, 10432, 5); - gl124_motor_profiles->push_back(profile); - - profile = Motor_Profile(); - profile.motor_id = MotorId::CANON_LIDE_210; - profile.exposure = 2768; - profile.step_type = StepType::FULL; - profile.slope = MotorSlope::create_from_steps(62496, 335, 255); - gl124_motor_profiles->push_back(profile); - - profile = Motor_Profile(); - profile.motor_id = MotorId::CANON_LIDE_210; - profile.exposure = 5360; - profile.step_type = StepType::HALF; - profile.slope = MotorSlope::create_from_steps(62496, 335, 469); - gl124_motor_profiles->push_back(profile); - - profile = Motor_Profile(); - profile.motor_id = MotorId::CANON_LIDE_210; - profile.exposure = 10528; - profile.step_type = StepType::HALF; - profile.slope = MotorSlope::create_from_steps(62496, 2632, 3); - gl124_motor_profiles->push_back(profile); - - profile = Motor_Profile(); - profile.motor_id = MotorId::CANON_LIDE_210; - profile.exposure = 20864; - profile.step_type = StepType::QUARTER; - profile.slope = MotorSlope::create_from_steps(62496, 10432, 4); - gl124_motor_profiles->push_back(profile); -} - -void genesys_init_motor_profile_tables() -{ - genesys_init_motor_profile_tables_gl843(); - genesys_init_motor_profile_tables_gl846(); - genesys_init_motor_profile_tables_gl847(); - genesys_init_motor_profile_tables_gl124(); -} - -} // namespace genesys diff --git a/backend/genesys/tables_sensor.cpp b/backend/genesys/tables_sensor.cpp index 21a90fa69..10a46ad92 100644 --- a/backend/genesys/tables_sensor.cpp +++ b/backend/genesys/tables_sensor.cpp @@ -47,7 +47,7 @@ namespace genesys { -inline unsigned default_get_logical_hwdpi(const Genesys_Sensor& sensor, unsigned xres) +inline unsigned default_get_register_hwdpi(const Genesys_Sensor& sensor, unsigned xres) { if (sensor.logical_dpihw_override) return sensor.logical_dpihw_override; @@ -106,7 +106,7 @@ inline unsigned get_ccd_size_divisor_gl124(const Genesys_Sensor& sensor, unsigne inline unsigned default_get_hwdpi_divisor_for_dpi(const Genesys_Sensor& sensor, unsigned xres) { - return sensor.optical_res / default_get_logical_hwdpi(sensor, xres); + return sensor.optical_res / default_get_register_hwdpi(sensor, xres); } StaticInit> s_sensors; @@ -123,7 +123,6 @@ void genesys_init_sensor_tables() sensor.black_pixels = 48; sensor.dummy_pixel = 64; sensor.ccd_start_xoffset = 0; - sensor.sensor_pixels = 10800; sensor.fau_gain_white_ref = 210; sensor.gain_white_ref = 230; sensor.exposure = { 0x0000, 0x0000, 0x0000 }; @@ -155,8 +154,7 @@ void genesys_init_sensor_tables() { 0x5e, 0x00 }, }; sensor.gamma = { 1.0f, 1.0f, 1.0f }; - sensor.get_logical_hwdpi_fun = default_get_logical_hwdpi; - sensor.get_register_hwdpi_fun = default_get_logical_hwdpi; + sensor.get_register_hwdpi_fun = default_get_register_hwdpi; sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi; sensor.get_ccd_size_divisor_fun = default_get_ccd_size_divisor_for_dpi; s_sensors->push_back(sensor); @@ -168,7 +166,6 @@ void genesys_init_sensor_tables() sensor.black_pixels = 48; sensor.dummy_pixel = 85; sensor.ccd_start_xoffset = 152; - sensor.sensor_pixels = 5416; sensor.fau_gain_white_ref = 210; sensor.gain_white_ref = 230; sensor.exposure = { 0x0000, 0x0000, 0x0000 }; @@ -200,8 +197,7 @@ void genesys_init_sensor_tables() { 0x5e, 0x00 }, }; sensor.gamma = { 1.0f, 1.0f, 1.0f }; - sensor.get_logical_hwdpi_fun = default_get_logical_hwdpi; - sensor.get_register_hwdpi_fun = default_get_logical_hwdpi; + sensor.get_register_hwdpi_fun = default_get_register_hwdpi; sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi; sensor.get_ccd_size_divisor_fun = default_get_ccd_size_divisor_for_dpi; s_sensors->push_back(sensor); @@ -213,7 +209,6 @@ void genesys_init_sensor_tables() sensor.black_pixels = 48; sensor.dummy_pixel = 64; sensor.ccd_start_xoffset = 0; - sensor.sensor_pixels = 10800; sensor.fau_gain_white_ref = 210; sensor.gain_white_ref = 230; sensor.exposure = { 0x0000, 0x0000, 0x0000 }; @@ -245,8 +240,7 @@ void genesys_init_sensor_tables() { 0x5e, 0x00 }, }; sensor.gamma = { 1.0f, 1.0f, 1.0f }; - sensor.get_logical_hwdpi_fun = default_get_logical_hwdpi; - sensor.get_register_hwdpi_fun = default_get_logical_hwdpi; + sensor.get_register_hwdpi_fun = default_get_register_hwdpi; sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi; sensor.get_ccd_size_divisor_fun = default_get_ccd_size_divisor_for_dpi; s_sensors->push_back(sensor); @@ -259,7 +253,6 @@ void genesys_init_sensor_tables() sensor.black_pixels = 48; sensor.dummy_pixel = 16; sensor.ccd_start_xoffset = 0; - sensor.sensor_pixels = 10872; sensor.fau_gain_white_ref = 190; sensor.gain_white_ref = 190; sensor.exposure = { 0x0000, 0x0000, 0x0000 }; @@ -292,8 +285,7 @@ void genesys_init_sensor_tables() { 0x5e, 0x00 }, }; sensor.gamma = { 2.38f, 2.35f, 2.34f }; - sensor.get_logical_hwdpi_fun = default_get_logical_hwdpi; - sensor.get_register_hwdpi_fun = default_get_logical_hwdpi; + sensor.get_register_hwdpi_fun = default_get_register_hwdpi; sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi; sensor.get_ccd_size_divisor_fun = get_ccd_size_divisor_exact; @@ -577,7 +569,6 @@ void genesys_init_sensor_tables() sensor.black_pixels = 48; sensor.dummy_pixel = 15; sensor.ccd_start_xoffset = 0; - sensor.sensor_pixels = 10872; sensor.fau_gain_white_ref = 210; sensor.gain_white_ref = 200; sensor.exposure = { 0x0000, 0x0000, 0x0000 }; @@ -610,8 +601,7 @@ void genesys_init_sensor_tables() { 0x5e, 0x00 }, }; sensor.gamma = { 2.1f, 2.1f, 2.1f }; - sensor.get_logical_hwdpi_fun = default_get_logical_hwdpi; - sensor.get_register_hwdpi_fun = default_get_logical_hwdpi; + sensor.get_register_hwdpi_fun = default_get_register_hwdpi; sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi; sensor.get_ccd_size_divisor_fun = get_ccd_size_divisor_exact; @@ -810,7 +800,6 @@ void genesys_init_sensor_tables() sensor.black_pixels = 48; sensor.dummy_pixel = 20; sensor.ccd_start_xoffset = 0; - sensor.sensor_pixels = 5368; sensor.fau_gain_white_ref = 180; sensor.gain_white_ref = 180; sensor.exposure = { 0x0000, 0x0000, 0x0000 }; @@ -842,8 +831,7 @@ void genesys_init_sensor_tables() { 0x5e, 0x16 }, }; sensor.gamma = { 2.1f, 2.1f, 2.1f }; - sensor.get_logical_hwdpi_fun = default_get_logical_hwdpi; - sensor.get_register_hwdpi_fun = default_get_logical_hwdpi; + sensor.get_register_hwdpi_fun = default_get_register_hwdpi; sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi; sensor.get_ccd_size_divisor_fun = get_ccd_size_divisor_exact; @@ -988,7 +976,6 @@ void genesys_init_sensor_tables() sensor.black_pixels = 87; sensor.dummy_pixel = 87; sensor.ccd_start_xoffset = 0; - sensor.sensor_pixels = 10400; sensor.fau_gain_white_ref = 0; sensor.gain_white_ref = 0; sensor.exposure = { 0x0400, 0x0400, 0x0400 }; @@ -1020,8 +1007,7 @@ void genesys_init_sensor_tables() { 0x5e, 0x00 }, }; sensor.gamma = { 1.0f, 1.0f, 1.0f }; - sensor.get_logical_hwdpi_fun = default_get_logical_hwdpi; - sensor.get_register_hwdpi_fun = default_get_logical_hwdpi; + sensor.get_register_hwdpi_fun = default_get_register_hwdpi; sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi; sensor.get_ccd_size_divisor_fun = default_get_ccd_size_divisor_for_dpi; s_sensors->push_back(sensor); @@ -1033,7 +1019,6 @@ void genesys_init_sensor_tables() sensor.black_pixels = 5; sensor.dummy_pixel = 38; sensor.ccd_start_xoffset = 0; - sensor.sensor_pixels = 5200; sensor.fau_gain_white_ref = 200; sensor.gain_white_ref = 200; sensor.exposure = { 0x1450, 0x0c80, 0x0a28 }; @@ -1092,8 +1077,7 @@ void genesys_init_sensor_tables() { 0x5e, 0x00 } }; sensor.gamma = { 2.1f, 2.1f, 2.1f }; - sensor.get_logical_hwdpi_fun = default_get_logical_hwdpi; - sensor.get_register_hwdpi_fun = default_get_logical_hwdpi; + sensor.get_register_hwdpi_fun = default_get_register_hwdpi; sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi; sensor.get_ccd_size_divisor_fun = get_ccd_size_divisor_exact; @@ -1135,7 +1119,6 @@ void genesys_init_sensor_tables() sensor.black_pixels = 48; sensor.dummy_pixel = 16; sensor.ccd_start_xoffset = 0; - sensor.sensor_pixels = 10872; sensor.fau_gain_white_ref = 210; sensor.gain_white_ref = 200; sensor.exposure = { 0, 0, 0 }; @@ -1168,8 +1151,7 @@ void genesys_init_sensor_tables() { 0x5e, 0x00 }, }; sensor.gamma = { 1.0f, 1.0f, 1.0f }; - sensor.get_logical_hwdpi_fun = default_get_logical_hwdpi; - sensor.get_register_hwdpi_fun = default_get_logical_hwdpi; + sensor.get_register_hwdpi_fun = default_get_register_hwdpi; sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi; sensor.get_ccd_size_divisor_fun = get_ccd_size_divisor_exact; @@ -1181,6 +1163,34 @@ void genesys_init_sensor_tables() }; CustomSensorSettings custom_settings[] = { + { { 50 }, 5758, { + { 0x08, 0x00 }, + { 0x09, 0x0a }, + { 0x0a, 0x0b }, + { 0x0b, 0x0d }, + { 0x16, 0x33 }, + { 0x17, 0x07 }, + { 0x18, 0x33 }, + { 0x19, 0x2a }, + { 0x1a, 0x02 }, + { 0x1b, 0x13 }, + { 0x1c, 0xc0 }, + { 0x1d, 0x43 }, + { 0x52, 0x0f }, + { 0x53, 0x13 }, + { 0x54, 0x17 }, + { 0x55, 0x03 }, + { 0x56, 0x07 }, + { 0x57, 0x0b }, + { 0x58, 0x83 }, + { 0x59, 0x15 }, + { 0x5a, 0xc1 }, + { 0x5b, 0x05 }, + { 0x5c, 0x0a }, + { 0x5d, 0x0f }, + { 0x5e, 0x00 } + } + }, { { 75 }, 4879, { { 0x08, 0x00 }, { 0x09, 0x0a }, @@ -1367,7 +1377,6 @@ void genesys_init_sensor_tables() sensor.black_pixels = 27; sensor.dummy_pixel = 27; sensor.ccd_start_xoffset = 0; - sensor.sensor_pixels = 2496; sensor.fau_gain_white_ref = 210; sensor.gain_white_ref = 200; sensor.exposure = { 0x1100, 0x1100, 0x1100 }; @@ -1399,8 +1408,7 @@ void genesys_init_sensor_tables() { 0x5e, 0x01 }, }; sensor.gamma = { 1.0f, 1.0f, 1.0f }; - sensor.get_logical_hwdpi_fun = default_get_logical_hwdpi; - sensor.get_register_hwdpi_fun = default_get_logical_hwdpi; + sensor.get_register_hwdpi_fun = default_get_register_hwdpi; sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi; sensor.get_ccd_size_divisor_fun = default_get_ccd_size_divisor_for_dpi; s_sensors->push_back(sensor); @@ -1412,7 +1420,6 @@ void genesys_init_sensor_tables() sensor.black_pixels = 27; sensor.dummy_pixel = 27; sensor.ccd_start_xoffset = 0; - sensor.sensor_pixels = 5200; sensor.fau_gain_white_ref = 210; sensor.gain_white_ref = 200; sensor.exposure = { 0x1100, 0x1100, 0x1100 }; @@ -1444,8 +1451,7 @@ void genesys_init_sensor_tables() { 0x5e, 0x01 }, }; sensor.gamma = { 1.0f, 1.0f, 1.0f }; - sensor.get_logical_hwdpi_fun = default_get_logical_hwdpi; - sensor.get_register_hwdpi_fun = default_get_logical_hwdpi; + sensor.get_register_hwdpi_fun = default_get_register_hwdpi; sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi; sensor.get_ccd_size_divisor_fun = default_get_ccd_size_divisor_for_dpi; s_sensors->push_back(sensor); @@ -1457,7 +1463,6 @@ void genesys_init_sensor_tables() sensor.black_pixels = 28; sensor.dummy_pixel = 28; sensor.ccd_start_xoffset = 0; - sensor.sensor_pixels = 5200; sensor.fau_gain_white_ref = 210; sensor.gain_white_ref = 200; sensor.exposure = { 0x1544, 0x1544, 0x1544 }; @@ -1489,8 +1494,7 @@ void genesys_init_sensor_tables() { 0x5e, 0x01 }, }; sensor.gamma = { 1.0f, 1.0f, 1.0f }; - sensor.get_logical_hwdpi_fun = default_get_logical_hwdpi; - sensor.get_register_hwdpi_fun = default_get_logical_hwdpi; + sensor.get_register_hwdpi_fun = default_get_register_hwdpi; sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi; sensor.get_ccd_size_divisor_fun = default_get_ccd_size_divisor_for_dpi; s_sensors->push_back(sensor); @@ -1502,7 +1506,6 @@ void genesys_init_sensor_tables() sensor.black_pixels = 27; sensor.dummy_pixel = 27; sensor.ccd_start_xoffset = 0; - sensor.sensor_pixels = 10240; sensor.fau_gain_white_ref = 210; sensor.gain_white_ref = 200; sensor.exposure = { 0x1100, 0x1100, 0x1100 }; @@ -1534,8 +1537,7 @@ void genesys_init_sensor_tables() { 0x5e, 0x01 }, }; sensor.gamma = { 1.0f, 1.0f, 1.0f }; - sensor.get_logical_hwdpi_fun = default_get_logical_hwdpi; - sensor.get_register_hwdpi_fun = default_get_logical_hwdpi; + sensor.get_register_hwdpi_fun = default_get_register_hwdpi; sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi; sensor.get_ccd_size_divisor_fun = default_get_ccd_size_divisor_for_dpi; s_sensors->push_back(sensor); @@ -1547,7 +1549,6 @@ void genesys_init_sensor_tables() sensor.black_pixels = 27; sensor.dummy_pixel = 27; sensor.ccd_start_xoffset = 0; - sensor.sensor_pixels = 5020; sensor.fau_gain_white_ref = 210; sensor.gain_white_ref = 200; sensor.exposure = { 0x1100, 0x1100, 0x1100 }; @@ -1579,8 +1580,7 @@ void genesys_init_sensor_tables() { 0x5e, 0x01 }, }; sensor.gamma = { 1.0f, 1.0f, 1.0f }; - sensor.get_logical_hwdpi_fun = default_get_logical_hwdpi; - sensor.get_register_hwdpi_fun = default_get_logical_hwdpi; + sensor.get_register_hwdpi_fun = default_get_register_hwdpi; sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi; sensor.get_ccd_size_divisor_fun = default_get_ccd_size_divisor_for_dpi; s_sensors->push_back(sensor); @@ -1592,13 +1592,11 @@ void genesys_init_sensor_tables() sensor.black_pixels = 87*4; sensor.dummy_pixel = 16*4; sensor.ccd_start_xoffset = 320*8; - sensor.sensor_pixels = 5136*8; sensor.fau_gain_white_ref = 210; sensor.gain_white_ref = 200; sensor.exposure = { 0x0000, 0x0000, 0x0000 }; sensor.gamma = { 2.2f, 2.2f, 2.2f }; - sensor.get_logical_hwdpi_fun = default_get_logical_hwdpi; - sensor.get_register_hwdpi_fun = default_get_logical_hwdpi; + sensor.get_register_hwdpi_fun = default_get_register_hwdpi; sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi; sensor.get_ccd_size_divisor_fun = default_get_ccd_size_divisor_for_dpi; @@ -1696,13 +1694,10 @@ void genesys_init_sensor_tables() sensor.dummy_pixel = 16*8; // 384 at 600 dpi sensor.ccd_start_xoffset = 384*8; - // 8x5570 segments, 5187+1 for rounding - sensor.sensor_pixels = 5188*8; sensor.fau_gain_white_ref = 210; sensor.gain_white_ref = 200; sensor.gamma = { 1.0f, 1.0f, 1.0f }; - sensor.get_logical_hwdpi_fun = default_get_logical_hwdpi; - sensor.get_register_hwdpi_fun = default_get_logical_hwdpi; + sensor.get_register_hwdpi_fun = default_get_register_hwdpi; sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi; sensor.get_ccd_size_divisor_fun = default_get_ccd_size_divisor_for_dpi; @@ -1797,13 +1792,11 @@ void genesys_init_sensor_tables() sensor.black_pixels = 87*4; sensor.dummy_pixel = 16*4; sensor.ccd_start_xoffset = 320*4; - sensor.sensor_pixels = 5136*4; sensor.fau_gain_white_ref = 210; sensor.gain_white_ref = 200; sensor.exposure = { 0x01c1, 0x0126, 0x00e5 }; sensor.gamma = { 2.2f, 2.2f, 2.2f }; - sensor.get_logical_hwdpi_fun = default_get_logical_hwdpi; - sensor.get_register_hwdpi_fun = default_get_logical_hwdpi; + sensor.get_register_hwdpi_fun = default_get_register_hwdpi; sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi; sensor.get_ccd_size_divisor_fun = default_get_ccd_size_divisor_for_dpi; @@ -1887,7 +1880,6 @@ void genesys_init_sensor_tables() sensor.black_pixels = 38; sensor.dummy_pixel = 38; sensor.ccd_start_xoffset = 152; - sensor.sensor_pixels = 5376; sensor.fau_gain_white_ref = 160; sensor.gain_white_ref = 160; sensor.exposure = { 0x0000, 0x0000, 0x0000 }; @@ -1920,8 +1912,7 @@ void genesys_init_sensor_tables() { 0x5a, 0xc0 }, }; sensor.gamma = { 1.0f, 1.0f, 1.0f }; - sensor.get_logical_hwdpi_fun = default_get_logical_hwdpi; - sensor.get_register_hwdpi_fun = default_get_logical_hwdpi; + sensor.get_register_hwdpi_fun = default_get_register_hwdpi; sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi; sensor.get_ccd_size_divisor_fun = default_get_ccd_size_divisor_for_dpi; s_sensors->push_back(sensor); @@ -1934,15 +1925,13 @@ void genesys_init_sensor_tables() // 31 at 600 dpi dummy_pixels 58 at 1200 sensor.dummy_pixel = 58; sensor.ccd_start_xoffset = 152; - sensor.sensor_pixels = 5360*8; sensor.fau_gain_white_ref = 160; sensor.gain_white_ref = 160; sensor.exposure = { 0x2c09, 0x22b8, 0x10f0 }; sensor.stagger_config = StaggerConfig{ 2400, 4 }; // FIXME: may be incorrect sensor.custom_regs = {}; sensor.gamma = { 1.0f, 1.0f, 1.0f }; - sensor.get_logical_hwdpi_fun = default_get_logical_hwdpi; - sensor.get_register_hwdpi_fun = default_get_logical_hwdpi; + sensor.get_register_hwdpi_fun = default_get_register_hwdpi; sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi; sensor.get_ccd_size_divisor_fun = default_get_ccd_size_divisor_for_dpi; @@ -2115,15 +2104,13 @@ void genesys_init_sensor_tables() sensor.black_pixels = 100; sensor.dummy_pixel = 58; sensor.ccd_start_xoffset = 152; - sensor.sensor_pixels = 5360*8; sensor.fau_gain_white_ref = 160; sensor.gain_white_ref = 160; sensor.exposure = { 0x2c09, 0x22b8, 0x10f0 }; sensor.stagger_config = StaggerConfig{ 2400, 4 }; // FIXME: may be incorrect sensor.custom_regs = {}; sensor.gamma = { 1.0f, 1.0f, 1.0f }; - sensor.get_logical_hwdpi_fun = default_get_logical_hwdpi; - sensor.get_register_hwdpi_fun = default_get_logical_hwdpi; + sensor.get_register_hwdpi_fun = default_get_register_hwdpi; sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi; sensor.get_ccd_size_divisor_fun = default_get_ccd_size_divisor_for_dpi; @@ -2223,19 +2210,18 @@ void genesys_init_sensor_tables() sensor = Genesys_Sensor(); sensor.sensor_id = SensorId::CCD_CANON_4400F; sensor.optical_res = 4800; + sensor.register_dpihw_override = 4800; sensor.ccd_size_divisor = 4; sensor.black_pixels = 50*8; // 31 at 600 dpi, 58 at 1200 dpi sensor.dummy_pixel = 20; sensor.ccd_start_xoffset = 152; - // 5360 max at 600 dpi - sensor.sensor_pixels = 5700 * 8; sensor.fau_gain_white_ref = 160; sensor.gain_white_ref = 160; sensor.exposure = { 0x9c40, 0x9c40, 0x9c40 }; + sensor.stagger_config = StaggerConfig{4800, 8}; sensor.gamma = { 1.0f, 1.0f, 1.0f }; - sensor.get_logical_hwdpi_fun = get_sensor_optical_with_ccd_divisor; - sensor.get_register_hwdpi_fun = [](const Genesys_Sensor&, unsigned) { return 4800; }; + sensor.get_register_hwdpi_fun = get_sensor_optical_with_ccd_divisor; sensor.get_hwdpi_divisor_fun = [](const Genesys_Sensor&, unsigned) { return 1; }; sensor.get_ccd_size_divisor_fun = default_get_ccd_size_divisor_for_dpi; @@ -2243,110 +2229,62 @@ void genesys_init_sensor_tables() struct CustomSensorSettings { ResolutionFilter resolutions; int exposure_lperiod; + bool use_host_side_calib; std::vector methods; GenesysRegisterSettingSet extra_custom_regs; + GenesysRegisterSettingSet extra_custom_fe_regs; }; CustomSensorSettings custom_settings[] = { - { { 300, 600, 1200 }, 11640, { ScanMethod::FLATBED }, { - { 0x16, 0x13 }, - { 0x17, 0x0a }, - { 0x18, 0x10 }, - { 0x19, 0x2a }, - { 0x1a, 0x30 }, - { 0x1b, 0x00 }, - { 0x1c, 0x00 }, - { 0x1d, 0x6b }, - { 0x52, 0x0a }, - { 0x53, 0x0d }, - { 0x54, 0x00 }, - { 0x55, 0x03 }, - { 0x56, 0x06 }, - { 0x57, 0x08 }, - { 0x58, 0x5b }, - { 0x59, 0x00 }, - { 0x5a, 0x40 }, + { { 300, 600, 1200 }, 11640, false, { ScanMethod::FLATBED }, { + { 0x16, 0x13 }, { 0x17, 0x0a }, { 0x18, 0x10 }, { 0x19, 0x2a }, + { 0x1a, 0x30 }, { 0x1b, 0x00 }, { 0x1c, 0x00 }, { 0x1d, 0x6b }, + { 0x52, 0x0a }, { 0x53, 0x0d }, { 0x54, 0x00 }, { 0x55, 0x03 }, + { 0x56, 0x06 }, { 0x57, 0x08 }, { 0x58, 0x5b }, { 0x59, 0x00 }, { 0x5a, 0x40 }, { 0x70, 0x00 }, { 0x71, 0x02 }, { 0x72, 0x01 }, { 0x73, 0x03 }, { 0x74, 0x00 }, { 0x75, 0xf8 }, { 0x76, 0x38 }, { 0x77, 0x00 }, { 0x78, 0xfc }, { 0x79, 0x00 }, { 0x7a, 0x00 }, { 0x7b, 0x92 }, { 0x7c, 0xa4 }, { 0x9e, 0x2d }, - } + }, {} }, - { { 300, 600, 1200 }, 33300, { ScanMethod::TRANSPARENCY }, { - { 0x16, 0x13 }, - { 0x17, 0x0a }, - { 0x18, 0x10 }, - { 0x19, 0x2a }, - { 0x1a, 0x30 }, - { 0x1b, 0x00 }, - { 0x1c, 0x00 }, - { 0x1d, 0x6b }, - { 0x52, 0x0a }, - { 0x53, 0x0d }, - { 0x54, 0x00 }, - { 0x55, 0x03 }, - { 0x56, 0x06 }, - { 0x57, 0x08 }, - { 0x58, 0x5b }, - { 0x59, 0x00 }, - { 0x5a, 0x40 }, + { { 1200 }, 33300, true, { ScanMethod::TRANSPARENCY }, { + { 0x16, 0x13 }, { 0x17, 0x0a }, { 0x18, 0x10 }, { 0x19, 0x2a }, + { 0x1a, 0x30 }, { 0x1b, 0x00 }, { 0x1c, 0x00 }, { 0x1d, 0x6b }, + { 0x52, 0x0a }, { 0x53, 0x0d }, { 0x54, 0x00 }, { 0x55, 0x03 }, + { 0x56, 0x06 }, { 0x57, 0x08 }, { 0x58, 0x5b }, { 0x59, 0x00 }, { 0x5a, 0x40 }, { 0x70, 0x00 }, { 0x71, 0x02 }, { 0x72, 0x00 }, { 0x73, 0x02 }, { 0x74, 0x00 }, { 0x75, 0xf8 }, { 0x76, 0x38 }, { 0x77, 0x00 }, { 0x78, 0xfc }, { 0x79, 0x00 }, { 0x7a, 0x00 }, { 0x7b, 0x92 }, { 0x7c, 0xa4 }, { 0x9e, 0x2d }, - } + }, {} }, - { { 2400 }, 33300, { ScanMethod::TRANSPARENCY }, { - { 0x16, 0x13 }, - { 0x17, 0x0a }, - { 0x18, 0x10 }, - { 0x19, 0x2a }, - { 0x1a, 0x30 }, - { 0x1b, 0x00 }, - { 0x1c, 0x01 }, - { 0x1d, 0x75 }, - { 0x52, 0x0b }, - { 0x53, 0x0d }, - { 0x54, 0x00 }, - { 0x55, 0x03 }, - { 0x56, 0x06 }, - { 0x57, 0x09 }, - { 0x58, 0x53 }, - { 0x59, 0x00 }, - { 0x5a, 0x40 }, + { { 2400 }, 33300, true, { ScanMethod::TRANSPARENCY }, { + { 0x16, 0x13 }, { 0x17, 0x15 }, { 0x18, 0x10 }, { 0x19, 0x2a }, + { 0x1a, 0x30 }, { 0x1b, 0x00 }, { 0x1c, 0x01 }, { 0x1d, 0x75 }, + { 0x52, 0x0b }, { 0x53, 0x0d }, { 0x54, 0x00 }, { 0x55, 0x03 }, + { 0x56, 0x06 }, { 0x57, 0x09 }, { 0x58, 0x53 }, { 0x59, 0x00 }, { 0x5a, 0x40 }, { 0x70, 0x00 }, { 0x71, 0x02 }, { 0x72, 0x02 }, { 0x73, 0x04 }, { 0x74, 0x00 }, { 0x75, 0xff }, { 0x76, 0x00 }, { 0x77, 0x00 }, { 0x78, 0xff }, { 0x79, 0x00 }, { 0x7a, 0x00 }, { 0x7b, 0x54 }, { 0x7c, 0x92 }, { 0x9e, 0x2d }, + }, { + { 0x03, 0x1f }, } }, - { { 4800 }, 33300, { ScanMethod::TRANSPARENCY }, { - { 0x16, 0x13 }, - { 0x17, 0x0a }, - { 0x18, 0x10 }, - { 0x19, 0x2a }, - { 0x1a, 0x30 }, - { 0x1b, 0x00 }, - { 0x1c, 0x61 }, - { 0x1d, 0x75 }, - { 0x52, 0x02 }, - { 0x53, 0x05 }, - { 0x54, 0x08 }, - { 0x55, 0x0b }, - { 0x56, 0x0d }, - { 0x57, 0x0f }, - { 0x58, 0x1b }, - { 0x59, 0x00 }, - { 0x5a, 0x40 }, + { { 4800 }, 33300, true, { ScanMethod::TRANSPARENCY }, { + { 0x16, 0x13 }, { 0x17, 0x15 }, { 0x18, 0x10 }, { 0x19, 0x2a }, + { 0x1a, 0x30 }, { 0x1b, 0x00 }, { 0x1c, 0x61 }, { 0x1d, 0x75 }, + { 0x52, 0x02 }, { 0x53, 0x05 }, { 0x54, 0x08 }, { 0x55, 0x0b }, + { 0x56, 0x0d }, { 0x57, 0x0f }, { 0x58, 0x1b }, { 0x59, 0x00 }, { 0x5a, 0x40 }, { 0x70, 0x08 }, { 0x71, 0x0a }, { 0x72, 0x0a }, { 0x73, 0x0c }, { 0x74, 0x00 }, { 0x75, 0xff }, { 0x76, 0xff }, { 0x77, 0x00 }, { 0x78, 0xff }, { 0x79, 0xff }, { 0x7a, 0x00 }, { 0x7b, 0x54 }, { 0x7c, 0x92 }, { 0x9e, 0x2d }, - } + }, {} } }; @@ -2355,8 +2293,10 @@ void genesys_init_sensor_tables() for (auto method : setting.methods) { sensor.resolutions = setting.resolutions; sensor.exposure_lperiod = setting.exposure_lperiod; + sensor.use_host_side_calib = setting.use_host_side_calib; sensor.method = method; sensor.custom_regs = setting.extra_custom_regs; + sensor.custom_fe_regs = setting.extra_custom_fe_regs; s_sensors->push_back(sensor); } } @@ -2372,15 +2312,13 @@ void genesys_init_sensor_tables() // 31 at 600 dpi, 58 at 1200 dpi sensor.dummy_pixel = 20; sensor.ccd_start_xoffset = 152; - sensor.sensor_pixels = 27200; sensor.fau_gain_white_ref = 160; sensor.gain_white_ref = 160; sensor.exposure = { 0x9c40, 0x9c40, 0x9c40 }; sensor.stagger_config = StaggerConfig{ 3200, 6 }; sensor.custom_regs = {}; sensor.gamma = { 1.0f, 1.0f, 1.0f }; - sensor.get_logical_hwdpi_fun = get_sensor_optical_with_ccd_divisor; - sensor.get_register_hwdpi_fun = [](const Genesys_Sensor&, unsigned) { return 4800; }; + sensor.get_register_hwdpi_fun = get_sensor_optical_with_ccd_divisor; sensor.get_hwdpi_divisor_fun = [](const Genesys_Sensor&, unsigned) { return 1; }; sensor.get_ccd_size_divisor_fun = default_get_ccd_size_divisor_for_dpi; @@ -2396,25 +2334,11 @@ void genesys_init_sensor_tables() }; CustomSensorSettings custom_settings[] = { - { { 400 }, 2400, 1, 7200, { ScanMethod::FLATBED }, { - { 0x16, 0x33 }, - { 0x17, 0x0c }, - { 0x18, 0x13 }, - { 0x19, 0x2a }, - { 0x1a, 0x30 }, - { 0x1b, 0x00 }, - { 0x1c, 0x00 }, - { 0x1d, 0x84 }, - { 0x1e, 0xa0 }, - { 0x52, 0x0d }, - { 0x53, 0x10 }, - { 0x54, 0x01 }, - { 0x55, 0x04 }, - { 0x56, 0x07 }, - { 0x57, 0x0a }, - { 0x58, 0x6b }, - { 0x59, 0x00 }, - { 0x5a, 0x40 }, + { { 400 }, 2400, 1, 7200, { ScanMethod::FLATBED }, { + { 0x16, 0x33 }, { 0x17, 0x0c }, { 0x18, 0x13 }, { 0x19, 0x2a }, + { 0x1a, 0x30 }, { 0x1b, 0x00 }, { 0x1c, 0x00 }, { 0x1d, 0x84 }, { 0x1e, 0xa0 }, + { 0x52, 0x0d }, { 0x53, 0x10 }, { 0x54, 0x01 }, { 0x55, 0x04 }, + { 0x56, 0x07 }, { 0x57, 0x0a }, { 0x58, 0x6b }, { 0x59, 0x00 }, { 0x5a, 0x40 }, { 0x70, 0x01 }, { 0x71, 0x02 }, { 0x72, 0x03 }, { 0x73, 0x04 }, { 0x74, 0x00 }, { 0x75, 0x0e }, { 0x76, 0x3f }, { 0x77, 0x00 }, { 0x78, 0x00 }, { 0x79, 0x00 }, @@ -2422,25 +2346,11 @@ void genesys_init_sensor_tables() { 0x80, 0x2a }, }, {} }, - { { 800 }, 4800, 1, 7200, { ScanMethod::FLATBED }, { - { 0x16, 0x33 }, - { 0x17, 0x0c }, - { 0x18, 0x13 }, - { 0x19, 0x2a }, - { 0x1a, 0x30 }, - { 0x1b, 0x00 }, - { 0x1c, 0x00 }, - { 0x1d, 0x84 }, - { 0x1e, 0xa0 }, - { 0x52, 0x0d }, - { 0x53, 0x10 }, - { 0x54, 0x01 }, - { 0x55, 0x04 }, - { 0x56, 0x07 }, - { 0x57, 0x0a }, - { 0x58, 0x6b }, - { 0x59, 0x00 }, - { 0x5a, 0x40 }, + { { 800 }, 4800, 1, 7200, { ScanMethod::FLATBED }, { + { 0x16, 0x33 }, { 0x17, 0x0c }, { 0x18, 0x13 }, { 0x19, 0x2a }, + { 0x1a, 0x30 }, { 0x1b, 0x00 }, { 0x1c, 0x00 }, { 0x1d, 0x84 }, { 0x1e, 0xa0 }, + { 0x52, 0x0d }, { 0x53, 0x10 }, { 0x54, 0x01 }, { 0x55, 0x04 }, + { 0x56, 0x07 }, { 0x57, 0x0a }, { 0x58, 0x6b }, { 0x59, 0x00 }, { 0x5a, 0x40 }, { 0x70, 0x01 }, { 0x71, 0x02 }, { 0x72, 0x03 }, { 0x73, 0x04 }, { 0x74, 0x00 }, { 0x75, 0x0e }, { 0x76, 0x3f }, { 0x77, 0x00 }, { 0x78, 0x00 }, { 0x79, 0x00 }, @@ -2448,26 +2358,12 @@ void genesys_init_sensor_tables() { 0x80, 0x20 }, }, {} }, - { { 1600 }, 4800, 1, 14400, { ScanMethod::FLATBED }, { - { 0x16, 0x33 }, - { 0x17, 0x0c }, - { 0x18, 0x11 }, - { 0x19, 0x2a }, - { 0x1a, 0x30 }, - { 0x1b, 0x00 }, - { 0x1c, 0x00 }, - { 0x1d, 0x84 }, - { 0x1e, 0xa1 }, - { 0x52, 0x0b }, - { 0x53, 0x0e }, - { 0x54, 0x11 }, - { 0x55, 0x02 }, - { 0x56, 0x05 }, - { 0x57, 0x08 }, - { 0x58, 0x63 }, - { 0x59, 0x00 }, - { 0x5a, 0x40 }, - { 0x70, 0x01 }, { 0x71, 0x02 }, { 0x72, 0x02 }, { 0x73, 0x03 }, + { { 1600 }, 4800, 1, 14400, { ScanMethod::FLATBED }, { + { 0x16, 0x33 }, { 0x17, 0x0c }, { 0x18, 0x11 }, { 0x19, 0x2a }, + { 0x1a, 0x30 }, { 0x1b, 0x00 }, { 0x1c, 0x00 }, { 0x1d, 0x84 }, { 0x1e, 0xa1 }, + { 0x52, 0x0b }, { 0x53, 0x0e }, { 0x54, 0x11 }, { 0x55, 0x02 }, + { 0x56, 0x05 }, { 0x57, 0x08 }, { 0x58, 0x63 }, { 0x59, 0x00 }, { 0x5a, 0x40 }, + { 0x70, 0x00 }, { 0x71, 0x01 }, { 0x72, 0x02 }, { 0x73, 0x03 }, { 0x74, 0x00 }, { 0x75, 0x01 }, { 0x76, 0xff }, { 0x77, 0x00 }, { 0x78, 0x00 }, { 0x79, 0x00 }, { 0x7a, 0x02 }, { 0x7b, 0x49 }, { 0x7c, 0x24 }, @@ -2476,25 +2372,11 @@ void genesys_init_sensor_tables() { 0x03, 0x1f }, } }, - { { 3200 }, 4800, 1, 28800, { ScanMethod::FLATBED }, { - { 0x16, 0x33 }, - { 0x17, 0x0c }, - { 0x18, 0x10 }, - { 0x19, 0x2a }, - { 0x1a, 0x30 }, - { 0x1b, 0x00 }, - { 0x1c, 0x20 }, - { 0x1d, 0x84 }, - { 0x1e, 0xa1 }, - { 0x52, 0x02 }, - { 0x53, 0x05 }, - { 0x54, 0x08 }, - { 0x55, 0x0b }, - { 0x56, 0x0e }, - { 0x57, 0x11 }, - { 0x58, 0x1b }, - { 0x59, 0x00 }, - { 0x5a, 0x40 }, + { { 3200 }, 4800, 1, 28800, { ScanMethod::FLATBED }, { + { 0x16, 0x33 }, { 0x17, 0x0c }, { 0x18, 0x10 }, { 0x19, 0x2a }, + { 0x1a, 0x30 }, { 0x1b, 0x00 }, { 0x1c, 0x20 }, { 0x1d, 0x84 }, { 0x1e, 0xa1 }, + { 0x52, 0x02 }, { 0x53, 0x05 }, { 0x54, 0x08 }, { 0x55, 0x0b }, + { 0x56, 0x0e }, { 0x57, 0x11 }, { 0x58, 0x1b }, { 0x59, 0x00 }, { 0x5a, 0x40 }, { 0x70, 0x09 }, { 0x71, 0x0a }, { 0x72, 0x0b }, { 0x73, 0x0c }, { 0x74, 0x00 }, { 0x75, 0x00 }, { 0x76, 0x00 }, { 0x77, 0x00 }, { 0x78, 0x00 }, { 0x79, 0x00 }, @@ -2504,26 +2386,12 @@ void genesys_init_sensor_tables() { 0x03, 0x1f }, }, }, - { { 400 }, 2400, 1, 14400, { ScanMethod::TRANSPARENCY, - ScanMethod::TRANSPARENCY_INFRARED }, { - { 0x16, 0x33 }, - { 0x17, 0x0c }, - { 0x18, 0x13 }, - { 0x19, 0x2a }, - { 0x1a, 0x30 }, - { 0x1b, 0x00 }, - { 0x1c, 0x00 }, - { 0x1d, 0x84 }, - { 0x1e, 0xa0 }, - { 0x52, 0x0d }, - { 0x53, 0x10 }, - { 0x54, 0x01 }, - { 0x55, 0x04 }, - { 0x56, 0x07 }, - { 0x57, 0x0a }, - { 0x58, 0x6b }, - { 0x59, 0x00 }, - { 0x5a, 0x40 }, + { { 400 }, 2400, 1, 14400, { ScanMethod::TRANSPARENCY, + ScanMethod::TRANSPARENCY_INFRARED }, { + { 0x16, 0x33 }, { 0x17, 0x0c }, { 0x18, 0x13 }, { 0x19, 0x2a }, + { 0x1a, 0x30 }, { 0x1b, 0x00 }, { 0x1c, 0x00 }, { 0x1d, 0x84 }, { 0x1e, 0xa0 }, + { 0x52, 0x0d }, { 0x53, 0x10 }, { 0x54, 0x01 }, { 0x55, 0x04 }, + { 0x56, 0x07 }, { 0x57, 0x0a }, { 0x58, 0x6b }, { 0x59, 0x00 }, { 0x5a, 0x40 }, { 0x70, 0x01 }, { 0x71, 0x02 }, { 0x72, 0x03 }, { 0x73, 0x04 }, { 0x74, 0x00 }, { 0x75, 0x0e }, { 0x76, 0x3f }, { 0x77, 0x00 }, { 0x78, 0x00 }, { 0x79, 0x00 }, @@ -2531,53 +2399,25 @@ void genesys_init_sensor_tables() { 0x80, 0x20 }, }, {} }, - { { 800 }, 4800, 1, 14400, { ScanMethod::TRANSPARENCY, - ScanMethod::TRANSPARENCY_INFRARED }, { - { 0x16, 0x33 }, - { 0x17, 0x0c }, - { 0x18, 0x13 }, - { 0x19, 0x2a }, - { 0x1a, 0x30 }, - { 0x1b, 0x00 }, - { 0x1c, 0x00 }, - { 0x1d, 0x84 }, - { 0x1e, 0xa0 }, - { 0x52, 0x0d }, - { 0x53, 0x10 }, - { 0x54, 0x01 }, - { 0x55, 0x04 }, - { 0x56, 0x07 }, - { 0x57, 0x0a }, - { 0x58, 0x6b }, - { 0x59, 0x00 }, - { 0x5a, 0x40 }, - { 0x70, 0x01 }, { 0x71, 0x02 }, { 0x72, 0x03 }, { 0x73, 0x04 }, + { { 800 }, 4800, 1, 14400, { ScanMethod::TRANSPARENCY, + ScanMethod::TRANSPARENCY_INFRARED }, { + { 0x16, 0x33 }, { 0x17, 0x0c }, { 0x18, 0x13 }, { 0x19, 0x2a }, + { 0x1a, 0x30 }, { 0x1b, 0x00 }, { 0x1c, 0x00 }, { 0x1d, 0x84 }, { 0x1e, 0xa0 }, + { 0x52, 0x0d }, { 0x53, 0x10 }, { 0x54, 0x01 }, { 0x55, 0x04 }, + { 0x56, 0x07 }, { 0x57, 0x0a }, { 0x58, 0x6b }, { 0x59, 0x00 }, { 0x5a, 0x40 }, + { 0x70, 0x00 }, { 0x71, 0x01 }, { 0x72, 0x02 }, { 0x73, 0x03 }, { 0x74, 0x00 }, { 0x75, 0x0e }, { 0x76, 0x3f }, { 0x77, 0x00 }, { 0x78, 0x00 }, { 0x79, 0x00 }, { 0x7a, 0x01 }, { 0x7b, 0xb6 }, { 0x7c, 0xdb }, { 0x80, 0x20 }, }, {} }, - { { 1600 }, 4800, 1, 28800, { ScanMethod::TRANSPARENCY, - ScanMethod::TRANSPARENCY_INFRARED }, { - { 0x16, 0x33 }, - { 0x17, 0x0c }, - { 0x18, 0x11 }, - { 0x19, 0x2a }, - { 0x1a, 0x30 }, - { 0x1b, 0x00 }, - { 0x1c, 0x00 }, - { 0x1d, 0x84 }, - { 0x1e, 0xa0 }, - { 0x52, 0x0b }, - { 0x53, 0x0e }, - { 0x54, 0x11 }, - { 0x55, 0x02 }, - { 0x56, 0x05 }, - { 0x57, 0x08 }, - { 0x58, 0x63 }, - { 0x59, 0x00 }, - { 0x5a, 0x40 }, + { { 1600 }, 4800, 1, 28800, { ScanMethod::TRANSPARENCY, + ScanMethod::TRANSPARENCY_INFRARED }, { + { 0x16, 0x33 }, { 0x17, 0x0c }, { 0x18, 0x11 }, { 0x19, 0x2a }, + { 0x1a, 0x30 }, { 0x1b, 0x00 }, { 0x1c, 0x00 }, { 0x1d, 0x84 }, { 0x1e, 0xa0 }, + { 0x52, 0x0b }, { 0x53, 0x0e }, { 0x54, 0x11 }, { 0x55, 0x02 }, + { 0x56, 0x05 }, { 0x57, 0x08 }, { 0x58, 0x63 }, { 0x59, 0x00 }, { 0x5a, 0x40 }, { 0x70, 0x00 }, { 0x71, 0x01 }, { 0x72, 0x02 }, { 0x73, 0x03 }, { 0x74, 0x00 }, { 0x75, 0x01 }, { 0x76, 0xff }, { 0x77, 0x00 }, { 0x78, 0x00 }, { 0x79, 0x00 }, @@ -2587,26 +2427,12 @@ void genesys_init_sensor_tables() { 0x03, 0x1f }, }, }, - { { 3200 }, 4800, 1, 28800, { ScanMethod::TRANSPARENCY, - ScanMethod::TRANSPARENCY_INFRARED }, { - { 0x16, 0x33 }, - { 0x17, 0x0c }, - { 0x18, 0x10 }, - { 0x19, 0x2a }, - { 0x1a, 0x30 }, - { 0x1b, 0x00 }, - { 0x1c, 0x20 }, - { 0x1d, 0x84 }, - { 0x1e, 0xa0 }, - { 0x52, 0x02 }, - { 0x53, 0x05 }, - { 0x54, 0x08 }, - { 0x55, 0x0b }, - { 0x56, 0x0e }, - { 0x57, 0x11 }, - { 0x58, 0x1b }, - { 0x59, 0x00 }, - { 0x5a, 0x40 }, + { { 3200 }, 4800, 1, 28800, { ScanMethod::TRANSPARENCY, + ScanMethod::TRANSPARENCY_INFRARED }, { + { 0x16, 0x33 }, { 0x17, 0x0c }, { 0x18, 0x10 }, { 0x19, 0x2a }, + { 0x1a, 0x30 }, { 0x1b, 0x00 }, { 0x1c, 0x20 }, { 0x1d, 0x84 }, { 0x1e, 0xa0 }, + { 0x52, 0x02 }, { 0x53, 0x05 }, { 0x54, 0x08 }, { 0x55, 0x0b }, + { 0x56, 0x0e }, { 0x57, 0x11 }, { 0x58, 0x1b }, { 0x59, 0x00 }, { 0x5a, 0x40 }, { 0x70, 0x09 }, { 0x71, 0x0a }, { 0x72, 0x0b }, { 0x73, 0x0c }, { 0x74, 0x00 }, { 0x75, 0x00 }, { 0x76, 0x00 }, { 0x77, 0x00 }, { 0x78, 0x00 }, { 0x79, 0x00 }, @@ -2637,20 +2463,18 @@ void genesys_init_sensor_tables() sensor = Genesys_Sensor(); sensor.sensor_id = SensorId::CCD_CANON_8600F; sensor.optical_res = 4800; + sensor.register_dpihw_override = 4800; sensor.ccd_size_divisor = 4; sensor.black_pixels = 31; sensor.dummy_pixel = 20; sensor.ccd_start_xoffset = 0; // not used at the moment - // 11372 pixels at 1200 dpi - sensor.sensor_pixels = 11372*4; sensor.fau_gain_white_ref = 160; sensor.gain_white_ref = 160; sensor.exposure = { 0x9c40, 0x9c40, 0x9c40 }; sensor.stagger_config = StaggerConfig{4800, 8}; sensor.custom_regs = {}; sensor.gamma = { 1.0f, 1.0f, 1.0f }; - sensor.get_logical_hwdpi_fun = get_sensor_optical_with_ccd_divisor; - sensor.get_register_hwdpi_fun = [](const Genesys_Sensor&, unsigned) { return 4800; }; + sensor.get_register_hwdpi_fun = get_sensor_optical_with_ccd_divisor; sensor.get_hwdpi_divisor_fun = [](const Genesys_Sensor&, unsigned) { return 1; }; sensor.get_ccd_size_divisor_fun = default_get_ccd_size_divisor_for_dpi; @@ -2750,7 +2574,6 @@ void genesys_init_sensor_tables() sensor.black_pixels = 96; sensor.dummy_pixel = 26; sensor.ccd_start_xoffset = 128; - sensor.sensor_pixels = 42720; sensor.fau_gain_white_ref = 210; sensor.gain_white_ref = 230; sensor.exposure = { 0x0000, 0x0000, 0x0000 }; @@ -2774,8 +2597,7 @@ void genesys_init_sensor_tables() { 0x5a, 0x40 }, }; sensor.gamma = { 1.0f, 1.0f, 1.0f }; - sensor.get_logical_hwdpi_fun = default_get_logical_hwdpi; - sensor.get_register_hwdpi_fun = default_get_logical_hwdpi; + sensor.get_register_hwdpi_fun = default_get_register_hwdpi; sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi; sensor.get_ccd_size_divisor_fun = default_get_ccd_size_divisor_for_dpi; s_sensors->push_back(sensor); @@ -2788,13 +2610,11 @@ void genesys_init_sensor_tables() sensor.black_pixels = 87; sensor.dummy_pixel = 16; sensor.ccd_start_xoffset = 303; - sensor.sensor_pixels = 5168*4; sensor.fau_gain_white_ref = 210; sensor.gain_white_ref = 200; sensor.exposure = { 0x0000, 0x0000, 0x0000 }; sensor.gamma = { 2.2f, 2.2f, 2.2f }; - sensor.get_logical_hwdpi_fun = default_get_logical_hwdpi; - sensor.get_register_hwdpi_fun = default_get_logical_hwdpi; + sensor.get_register_hwdpi_fun = default_get_register_hwdpi; sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi; sensor.get_ccd_size_divisor_fun = get_ccd_size_divisor_gl124; @@ -2912,14 +2732,11 @@ void genesys_init_sensor_tables() sensor.black_pixels = 87; sensor.dummy_pixel = 16; sensor.ccd_start_xoffset = 303; - // SEGCNT at 600 DPI by number of segments - sensor.sensor_pixels = 5104*4; sensor.fau_gain_white_ref = 210; sensor.gain_white_ref = 200; sensor.exposure = { 0x0000, 0x0000, 0x0000 }; sensor.gamma = { 2.2f, 2.2f, 2.2f }; - sensor.get_logical_hwdpi_fun = default_get_logical_hwdpi; - sensor.get_register_hwdpi_fun = default_get_logical_hwdpi; + sensor.get_register_hwdpi_fun = default_get_register_hwdpi; sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi; sensor.get_ccd_size_divisor_fun = get_ccd_size_divisor_gl124; @@ -3020,13 +2837,11 @@ void genesys_init_sensor_tables() sensor.black_pixels = 87; sensor.dummy_pixel = 16; sensor.ccd_start_xoffset = 303; - sensor.sensor_pixels = 5168*4; sensor.fau_gain_white_ref = 210; sensor.gain_white_ref = 200; sensor.exposure = { 0x0000, 0x0000, 0x0000 }; sensor.gamma = { 2.2f, 2.2f, 2.2f }; - sensor.get_logical_hwdpi_fun = default_get_logical_hwdpi; - sensor.get_register_hwdpi_fun = default_get_logical_hwdpi; + sensor.get_register_hwdpi_fun = default_get_register_hwdpi; sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi; sensor.get_ccd_size_divisor_fun = get_ccd_size_divisor_gl124; @@ -3131,13 +2946,11 @@ void genesys_init_sensor_tables() sensor.black_pixels = 87; sensor.dummy_pixel = 16; sensor.ccd_start_xoffset = 303; - sensor.sensor_pixels = 5168*4; sensor.fau_gain_white_ref = 210; sensor.gain_white_ref = 200; sensor.exposure = { 0x0000, 0x0000, 0x0000 }; sensor.gamma = { 2.2f, 2.2f, 2.2f }; - sensor.get_logical_hwdpi_fun = default_get_logical_hwdpi; - sensor.get_register_hwdpi_fun = default_get_logical_hwdpi; + sensor.get_register_hwdpi_fun = default_get_register_hwdpi; sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi; sensor.get_ccd_size_divisor_fun = get_ccd_size_divisor_gl124; @@ -3242,7 +3055,6 @@ void genesys_init_sensor_tables() sensor.black_pixels = 87; sensor.dummy_pixel = 87; sensor.ccd_start_xoffset = 0; - sensor.sensor_pixels = 10100; sensor.fau_gain_white_ref = 210; sensor.gain_white_ref = 230; sensor.exposure = { 0x0000, 0x0000, 0x0000 }; @@ -3274,8 +3086,7 @@ void genesys_init_sensor_tables() { 0x5e, 0x02 }, }; sensor.gamma = { 1.0f, 1.0f, 1.0f }; - sensor.get_logical_hwdpi_fun = default_get_logical_hwdpi; - sensor.get_register_hwdpi_fun = default_get_logical_hwdpi; + sensor.get_register_hwdpi_fun = default_get_register_hwdpi; sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi; sensor.get_ccd_size_divisor_fun = default_get_ccd_size_divisor_for_dpi; s_sensors->push_back(sensor); @@ -3288,11 +3099,11 @@ void genesys_init_sensor_tables() sensor.black_pixels = 88; // TODO sensor.dummy_pixel = 20; sensor.ccd_start_xoffset = 0; - sensor.sensor_pixels = 10200; // TODO sensor.fau_gain_white_ref = 210; sensor.gain_white_ref = 230; sensor.exposure = { 0x0000, 0x0000, 0x0000 }; sensor.stagger_config = StaggerConfig{7200, 4}; + sensor.use_host_side_calib = true; sensor.custom_regs = { { 0x08, 0x00 }, { 0x09, 0x00 }, @@ -3323,8 +3134,7 @@ void genesys_init_sensor_tables() { 0x7a, 0x00 }, { 0x7b, 0x00 }, { 0x7c, 0x00 }, }; sensor.gamma = { 1.0f, 1.0f, 1.0f }; - sensor.get_logical_hwdpi_fun = default_get_logical_hwdpi; - sensor.get_register_hwdpi_fun = default_get_logical_hwdpi; + sensor.get_register_hwdpi_fun = default_get_register_hwdpi; sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi; sensor.get_ccd_size_divisor_fun = get_ccd_size_divisor_exact; { @@ -3378,12 +3188,12 @@ void genesys_init_sensor_tables() sensor.black_pixels = 88; // TODO sensor.dummy_pixel = 20; sensor.ccd_start_xoffset = 0; - sensor.sensor_pixels = 10200; // TODO sensor.fau_gain_white_ref = 210; sensor.gain_white_ref = 230; sensor.exposure = { 0x0000, 0x0000, 0x0000 }; sensor.exposure_lperiod = 0x2f44; sensor.stagger_config = StaggerConfig{7200, 4}; + sensor.use_host_side_calib = true; sensor.custom_regs = { { 0x08, 0x00 }, { 0x09, 0x00 }, @@ -3414,8 +3224,7 @@ void genesys_init_sensor_tables() { 0x7a, 0x00 }, { 0x7b, 0x00 }, { 0x7c, 0x00 }, }; sensor.gamma = { 1.0f, 1.0f, 1.0f }; - sensor.get_logical_hwdpi_fun = default_get_logical_hwdpi; - sensor.get_register_hwdpi_fun = default_get_logical_hwdpi; + sensor.get_register_hwdpi_fun = default_get_register_hwdpi; sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi; sensor.get_ccd_size_divisor_fun = get_ccd_size_divisor_exact; { @@ -3453,11 +3262,11 @@ void genesys_init_sensor_tables() sensor.black_pixels = 88; // TODO sensor.dummy_pixel = 20; sensor.ccd_start_xoffset = 0; - sensor.sensor_pixels = 10200; // TODO sensor.fau_gain_white_ref = 210; sensor.gain_white_ref = 230; sensor.exposure = { 0x0000, 0x0000, 0x0000 }; sensor.stagger_config = StaggerConfig{7200, 4}; + sensor.use_host_side_calib = true; sensor.custom_regs = { { 0x08, 0x00 }, { 0x09, 0x00 }, @@ -3488,8 +3297,7 @@ void genesys_init_sensor_tables() { 0x7a, 0x00 }, { 0x7b, 0x00 }, { 0x7c, 0x00 }, }; sensor.gamma = { 1.0f, 1.0f, 1.0f }; - sensor.get_logical_hwdpi_fun = default_get_logical_hwdpi; - sensor.get_register_hwdpi_fun = default_get_logical_hwdpi; + sensor.get_register_hwdpi_fun = default_get_register_hwdpi; sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi; sensor.get_ccd_size_divisor_fun = get_ccd_size_divisor_exact; { @@ -3538,7 +3346,6 @@ void genesys_init_sensor_tables() sensor.black_pixels = 31; sensor.dummy_pixel = 31; sensor.ccd_start_xoffset = 0; - sensor.sensor_pixels = 10800; sensor.fau_gain_white_ref = 210; sensor.gain_white_ref = 200; sensor.exposure = { 0x0000, 0x0000, 0x0000 }; @@ -3552,8 +3359,7 @@ void genesys_init_sensor_tables() { 0x7a, 0x00 }, { 0x7b, 0x00 }, { 0x7c, 0x55 }, }; sensor.gamma = { 1.7f, 1.7f, 1.7f }; - sensor.get_logical_hwdpi_fun = default_get_logical_hwdpi; - sensor.get_register_hwdpi_fun = default_get_logical_hwdpi; + sensor.get_register_hwdpi_fun = default_get_register_hwdpi; sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi; sensor.get_ccd_size_divisor_fun = default_get_ccd_size_divisor_for_dpi; s_sensors->push_back(sensor); @@ -3566,7 +3372,6 @@ void genesys_init_sensor_tables() sensor.black_pixels = 31; sensor.dummy_pixel = 31; sensor.ccd_start_xoffset = 0; - sensor.sensor_pixels = 10200; sensor.fau_gain_white_ref = 210; sensor.gain_white_ref = 200; sensor.exposure = { 0, 0, 0 }; @@ -3580,8 +3385,7 @@ void genesys_init_sensor_tables() { 0x7a, 0x00 }, { 0x7b, 0x00 }, { 0x7c, 0x55 }, }; sensor.gamma = { 1.7f, 1.7f, 1.7f }; - sensor.get_logical_hwdpi_fun = default_get_logical_hwdpi; - sensor.get_register_hwdpi_fun = default_get_logical_hwdpi; + sensor.get_register_hwdpi_fun = default_get_register_hwdpi; sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi; sensor.get_ccd_size_divisor_fun = default_get_ccd_size_divisor_for_dpi; s_sensors->push_back(sensor); @@ -3595,9 +3399,6 @@ void genesys_init_sensor_tables() sensor.dummy_pixel = 6; // tuned to give 3*8 multiple startx coordinate during shading calibration sensor.ccd_start_xoffset = 34; // 14=>3, 20=>2 - // 10400, too wide=>10288 in shading data 10240~ - // 10208 too short for shading, max shading data = 10240 pixels, endpix-startpix=10208 - sensor.sensor_pixels = 10240; sensor.fau_gain_white_ref = 150; sensor.gain_white_ref = 150; // maps to 0x70-0x73 for GL841 @@ -3630,8 +3431,7 @@ void genesys_init_sensor_tables() { 0x5e, 0x41 }, }; sensor.gamma = { 1.0f, 1.0f, 1.0f }; - sensor.get_logical_hwdpi_fun = default_get_logical_hwdpi; - sensor.get_register_hwdpi_fun = default_get_logical_hwdpi; + sensor.get_register_hwdpi_fun = default_get_register_hwdpi; sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi; sensor.get_ccd_size_divisor_fun = default_get_ccd_size_divisor_for_dpi; s_sensors->push_back(sensor); diff --git a/backend/genesys/test_scanner_interface.cpp b/backend/genesys/test_scanner_interface.cpp index 12f726f32..d5dcaaa5a 100644 --- a/backend/genesys/test_scanner_interface.cpp +++ b/backend/genesys/test_scanner_interface.cpp @@ -137,23 +137,21 @@ void TestScannerInterface::bulk_write_data(std::uint8_t addr, std::uint8_t* data } void TestScannerInterface::write_buffer(std::uint8_t type, std::uint32_t addr, std::uint8_t* data, - std::size_t size, Flags flags) + std::size_t size) { (void) type; (void) addr; (void) data; (void) size; - (void) flags; } void TestScannerInterface::write_gamma(std::uint8_t type, std::uint32_t addr, std::uint8_t* data, - std::size_t size, Flags flags) + std::size_t size) { (void) type; (void) addr; (void) data; (void) size; - (void) flags; } void TestScannerInterface::write_ahb(std::uint32_t addr, std::uint32_t size, std::uint8_t* data) diff --git a/backend/genesys/test_scanner_interface.h b/backend/genesys/test_scanner_interface.h index acf0f6d4a..7861c0b83 100644 --- a/backend/genesys/test_scanner_interface.h +++ b/backend/genesys/test_scanner_interface.h @@ -74,9 +74,9 @@ public: void bulk_write_data(std::uint8_t addr, std::uint8_t* data, std::size_t size) override; void write_buffer(std::uint8_t type, std::uint32_t addr, std::uint8_t* data, - std::size_t size, Flags flags) override; + std::size_t size) override; void write_gamma(std::uint8_t type, std::uint32_t addr, std::uint8_t* data, - std::size_t size, Flags flags) override; + std::size_t size) override; void write_ahb(std::uint32_t addr, std::uint32_t size, std::uint8_t* data) override; std::uint16_t read_fe_register(std::uint8_t address) override; diff --git a/backend/genesys/utilities.h b/backend/genesys/utilities.h index 1e268b566..aa8e82b8a 100644 --- a/backend/genesys/utilities.h +++ b/backend/genesys/utilities.h @@ -50,8 +50,31 @@ #include #include + namespace genesys { +// just like SANE_FIX and SANE_UNFIX except that the conversion is done by a function and argument +// precision is handled correctly +inline SANE_Word double_to_fixed(double v) +{ + return static_cast(v * (1 << SANE_FIXED_SCALE_SHIFT)); +} + +inline SANE_Word float_to_fixed(float v) +{ + return static_cast(v * (1 << SANE_FIXED_SCALE_SHIFT)); +} + +inline float fixed_to_float(SANE_Word v) +{ + return static_cast(v) / (1 << SANE_FIXED_SCALE_SHIFT); +} + +inline double fixed_to_double(SANE_Word v) +{ + return static_cast(v) / (1 << SANE_FIXED_SCALE_SHIFT); +} + template void compute_array_percentile_approx(T* result, const T* data, std::size_t line_count, std::size_t elements_per_line, diff --git a/backend/hp5400.h b/backend/hp5400.h index b0efb4f5e..78244e0f1 100644 --- a/backend/hp5400.h +++ b/backend/hp5400.h @@ -1,4 +1,5 @@ /* sane - Scanner Access Now Easy. + Copyright (C) 20020 Ralph Little Copyright (C) 2003 Martijn van Oosterhout Copyright (C) 2003 Thomas Soumarmon @@ -138,6 +139,16 @@ typedef struct } TScanParams; +/* + * Panel settings. We can read and set these. + * + */ +typedef struct +{ + SANE_Word copycount; // 0..99 LCD display value + SANE_Word bwcolour; // 1=Colour or 2=Black/White from scan type LEDs +} +TPanelInfo; #endif /* NO _HP5400_H_ */ diff --git a/backend/hp5400_internal.c b/backend/hp5400_internal.c index 34bf55dbd..0e94d9df8 100644 --- a/backend/hp5400_internal.c +++ b/backend/hp5400_internal.c @@ -1,4 +1,5 @@ /* sane - Scanner Access Now Easy. + Copyright (C) 2020 Ralph Little Copyright (C) 2003 Martijn van Oosterhout Copyright (C) 2003 Thomas Soumarmon Copyright (c) 2003 Henning Meier-Geinitz, @@ -149,11 +150,137 @@ SetLamp (THWParams * pHWParams, int fLampOn) if (fLampOn) { if (WriteByte (pHWParams->iXferHandle, 0x0000, 0x01) == 0) - return 0; + return 0; } return -1; } + +HP5400_SANE_STATIC +int +GetSensors(THWParams * pHWParams, uint16_t *sensorMap) +{ + /* + * Read until we get 0. + * Max 10 iterations for safety. + * + */ + uint16_t thisSensorMap = 0; + size_t iterCount = 10; + do + { + if (hp5400_command_read + (pHWParams->iXferHandle, CMD_GETSENSORS, sizeof (uint16_t), &thisSensorMap) < 0) + { + HP5400_DBG (DBG_MSG, "failed to read sensors\n"); + return -1; + } + *sensorMap |= thisSensorMap; + } while (iterCount-- && (thisSensorMap > 0)); + + return 0; +} + +HP5400_SANE_STATIC +int +GetPanelInfo (THWParams * pHWParams, TPanelInfo *panelInfo) +{ + struct PanelInfo info; + if (hp5400_command_read (pHWParams->iXferHandle, CMD_READPANEL, + sizeof(info), &info) < 0) + { + HP5400_DBG (DBG_MSG, "failed to read panel info\n"); + return -1; + } + + panelInfo->copycount = (SANE_Word)info.copycount; + panelInfo->bwcolour = (SANE_Word)info.bwcolour; + + return 0; +} + +HP5400_SANE_STATIC +int +SetCopyCount(THWParams * pHWParams, SANE_Word copyCount) +{ + + /* + * I don't know what most of these things are but it is + * necessary to send something sane otherwise we get an error from the scanner. + * I got these settings from a USB trace. + * Hopefully, we will learn what it is all about at some point + * and hopefully it doesn't screw with other settings. + * + */ + uint8_t packetImage[] = {0x02, 0x06, 0x32, 0x01, + 0xf2, 0x40, 0x16, 0x01, + 0x7b, 0x41, 0x16, 0x01, + 0xdc, 0x06, 0x32, 0x01, + 0xd7, 0x5b, 0x16, 0x01, + 0xac, 0x06, 0x32, 0x01, + 0xf8, 0xd7, 0x18, 0x01, + 0xd8, 0x06, 0x32, 0x01, + 0x2c, 0xf3, 0x12, 0x00, + 0x70, 0x8d, 0x18, 0x01, + 0x7b, 0x00, 0x00, 0x00}; + + struct PanelInfo workingInfo; + (void)memcpy(&workingInfo, packetImage, sizeof(workingInfo)); + + workingInfo.copycount = (uint8_t)copyCount; + + if (hp5400_command_write (pHWParams->iXferHandle, CMD_WRITEPANEL, + sizeof(workingInfo), &workingInfo) < 0) + { + HP5400_DBG (DBG_MSG, "failed to write panel info\n"); + return -1; + } + + return 0; +} + +HP5400_SANE_STATIC +int +SetColourBW(THWParams * pHWParams, SANE_Word colourBW) +{ + + /* + * I don't know what most of these things are but it is + * necessary to send something sane otherwise we get an error from the scanner. + * I got these settings from a USB trace. + * Hopefully, we will learn what it is all about at some point + * and hopefully it doesn't screw with other settings. + * + */ + uint8_t packetImage[] = {0x03, 0x06, 0x32, 0x01, + 0xf2, 0x40, 0x16, 0x01, + 0x7b, 0x41, 0x16, 0x01, + 0xdc, 0x06, 0x32, 0x01, + 0xd7, 0x5b, 0x16, 0x01, + 0xac, 0x06, 0x32, 0x01, + 0xf8, 0xd7, 0x18, 0x01, + 0xd8, 0x06, 0x32, 0x01, + 0x68, 0xf5, 0x12, 0x00, + 0x70, 0x8d, 0x18, 0x01, + 0x7b, 0x00, 0x00, 0x00}; + + struct PanelInfo workingInfo; + (void)memcpy(&workingInfo, packetImage, sizeof(workingInfo)); + + workingInfo.bwcolour = (uint8_t)colourBW; + + if (hp5400_command_write (pHWParams->iXferHandle, CMD_WRITEPANEL, + sizeof(workingInfo), &workingInfo) < 0) + { + HP5400_DBG (DBG_MSG, "failed to write panel info\n"); + return -1; + } + + return 0; +} + + + HP5400_SANE_STATIC int WarmupLamp (int iHandle) diff --git a/backend/hp5400_internal.h b/backend/hp5400_internal.h index 981ce0b04..aa40da02b 100644 --- a/backend/hp5400_internal.h +++ b/backend/hp5400_internal.h @@ -2,6 +2,7 @@ #define _HP5400_INTERNAL_H_ /* sane - Scanner Access Now Easy. + Copyright (C) 2020 Ralph Little (C) 2003 Thomas Soumarmon (c) 2003 Martijn van Oosterhout, kleptog@svana.org (c) 2002 Bertrik Sikken, bertrik@zonnet.nl @@ -73,6 +74,9 @@ #define CMD_SCANREQUEST 0x2505 /* This is for previews */ #define CMD_SCANREQUEST2 0x2500 /* This is for real scans */ #define CMD_SCANRESPONSE 0x3400 +#define CMD_GETSENSORS 0x2000 +#define CMD_READPANEL 0x2100 // Reads info from the scanner. BW/Col + Copy Count. Others, not sure. +#define CMD_WRITEPANEL 0x2200 // Ditto for setting. /* Testing stuff to make it work */ #define CMD_SETDPI 0x1500 /* ??? */ @@ -130,11 +134,40 @@ PACKED; struct ScanResponse { - uint16_t x1; /* Usually 0x0000 or 0x4000 */ - uint32_t transfersize; /* Number of bytes to be transferred */ - uint32_t xsize; /* Shape of returned bitmap */ - uint16_t ysize; /* Why does the X get more bytes? */ - uint16_t pad[2]; /* Zero padding to 16 bytes??? */ + uint16_t x1; /* Usually 0x0000 or 0x4000 */ + uint32_t transfersize; /* Number of bytes to be transferred */ + uint32_t xsize; /* Shape of returned bitmap */ + uint16_t ysize; /* Why does the X get more bytes? */ + uint16_t pad[2]; /* Zero padding to 16 bytes??? */ +} +PACKED; + +/* + * Note: this is the structure of the response we get from CMD_READPANEL. + * We only know about two items for the moment. The rest will be ignored + * until we understand it better. + * + * 44 bytes in total. + * + * Since we don't know what the other things mean, I will assume that they + * mean the same things for Get and SET. For SET, we will have to GET, change + * what we wish change and SET it back otherwise goodness knows what evil + * we will unleash. + * + * Note that for setting, different values in the buffer seem to apply betwen the copy count + * and the colour/BW switch setting. I don't know what that means at the moment. + * + * I'm calling it PanelInfo because I can't think of anything better. + * That may change as the other values are revealed. + * + */ +struct PanelInfo +{ + uint32_t unknown1[10]; + uint8_t unknown2; + uint8_t copycount; // 0..99 from the LCD display. + uint8_t bwcolour; // 1 or 2 from the Colour/BW leds. + uint8_t unknown3; } PACKED; @@ -156,6 +189,22 @@ HP5400_SANE_STATIC int SetLamp (THWParams * pHWParams, int fLampOn); +HP5400_SANE_STATIC +int +GetSensors (THWParams * pHWParams, uint16_t *sensorMap); + +HP5400_SANE_STATIC +int +GetPanelInfo (THWParams * pHWParams, TPanelInfo *panelInfo); + +HP5400_SANE_STATIC +int +SetCopyCount(THWParams * pHWParams, SANE_Word copyCount); + +HP5400_SANE_STATIC +int +SetColourBW(THWParams * pHWParams, SANE_Word colourBW); + HP5400_SANE_STATIC int WarmupLamp (int iHandle); diff --git a/backend/hp5400_sane.c b/backend/hp5400_sane.c index e5fdf43c0..b6fa6da82 100644 --- a/backend/hp5400_sane.c +++ b/backend/hp5400_sane.c @@ -1,4 +1,5 @@ /* sane - Scanner Access Now Easy. + Copyright (C) 2020 Ralph Little Copyright (C) 2003 Martijn van Oosterhout Copyright (C) 2003 Thomas Soumarmon @@ -71,28 +72,6 @@ #include "hp5400.h" -/* includes for data transfer methods */ -#include "hp5400.h" - -#ifdef STANDALONE -#include "hp5400_scanner.h" -#endif - -#if defined(LINUX_USB_SUPPORT) - #include "hp5400_linux.c" -#endif -#if defined(USCANNER_SUPPORT) - #include "hp5400_uscanner.c" -#endif -#if defined(LIBUSB_SUPPORT) - #include "hp5400_libusb.c" -#endif -#if defined(LIBIEEE1284_SUPPORT) - #include "hp5400_ieee1284.c" -#endif - - - /* other definitions */ #ifndef min #define min(A,B) (((A)<(B)) ? (A) : (B)) @@ -115,30 +94,91 @@ typedef enum { optCount = 0, - optGroupGeometry, - optTLX, optTLY, optBRX, optBRY, optDPI, - optGroupImage, + optGroupGeometry, + optTLX, optTLY, optBRX, optBRY, + + optGroupEnhancement, optGammaTableRed, /* Gamma Tables */ optGammaTableGreen, optGammaTableBlue, + optGroupSensors, + + optSensorScanTo, + optSensorWeb, + optSensorReprint, + optSensorEmail, + optSensorCopy, + optSensorMoreOptions, + optSensorCancel, + optSensorPowerSave, + optSensorCopiesUp, + optSensorCopiesDown, + optSensorColourBW, + + optSensorColourBWState, + optSensorCopyCount, + + // Unsupported as yet. + //optGroupMisc, + //optLamp, + //optCalibrate, + optLast, /* Disable the offset code */ - - optGroupMisc, - optOffsetX, optOffsetY - - -/* put temporarily disabled options here after optLast */ -/* - optLamp, -*/ - } EOptionIndex; +/* + * Array mapping (optSensor* - optGroupSensors - 1) to the bit mask of the + * corresponding sensor bit that we get from the scanner. + * All sensor bits are reported as a complete 16-bit word with individual bits set + * to indicate that the sensor has been activated. + * They seem to be latched so that they are picked up on next query and a number + * of bits can be set in any one query. + * + */ + +#define SENSOR_BIT_SCAN 0x0400 +#define SENSOR_BIT_WEB 0x0200 +#define SENSOR_BIT_REPRINT 0x0002 +#define SENSOR_BIT_EMAIL 0x0080 +#define SENSOR_BIT_COPY 0x0040 +#define SENSOR_BIT_MOREOPTIONS 0x0004 +#define SENSOR_BIT_CANCEL 0x0100 +#define SENSOR_BIT_POWERSAVE 0x2000 +#define SENSOR_BIT_COPIESUP 0x0008 +#define SENSOR_BIT_COPIESDOWN 0x0020 +#define SENSOR_BIT_COLOURBW 0x0010 + + +uint16_t sensorMaskMap[] = +{ + SENSOR_BIT_SCAN, + SENSOR_BIT_WEB, + SENSOR_BIT_REPRINT, + SENSOR_BIT_EMAIL, + SENSOR_BIT_COPY, + SENSOR_BIT_MOREOPTIONS, + SENSOR_BIT_CANCEL, + + // Special buttons. + // These affect local machine settings, but we can still detect them being pressed. + SENSOR_BIT_POWERSAVE, + SENSOR_BIT_COPIESUP, + SENSOR_BIT_COPIESDOWN, + SENSOR_BIT_COLOURBW, + + // Extra entries to make the array up to the 16 possible bits. + 0x0000, // Unused + 0x0000, // Unused + 0x0000, // Unused + 0x0000, // Unused + 0x0000 // Unused +}; + typedef union { SANE_Word w; @@ -165,6 +205,8 @@ typedef struct int fScanning; /* TRUE if actively scanning */ int fCanceled; + + uint16_t sensorMap; /* Contains the current unreported sensor bits. */ } TScanner; @@ -191,18 +233,19 @@ static const SANE_Device **_pSaneDevList = 0; /* option constraints */ static const SANE_Range rangeGammaTable = {0, 65535, 1}; +static const SANE_Range rangeCopyCountTable = {0, 99, 1}; +static SANE_String_Const modeSwitchList[] = { + SANE_VALUE_SCAN_MODE_COLOR, + SANE_VALUE_SCAN_MODE_GRAY, + NULL +}; #ifdef SUPPORT_2400_DPI static const SANE_Int setResolutions[] = {6, 75, 150, 300, 600, 1200, 2400}; #else static const SANE_Int setResolutions[] = {5, 75, 150, 300, 600, 1200}; #endif -static const SANE_Range rangeXmm = {0, 220, 1}; -static const SANE_Range rangeYmm = {0, 300, 1}; -static const SANE_Range rangeXoffset = {0, 20, 1}; -static const SANE_Range rangeYoffset = {0, 70, 1}; -static const SANE_Int offsetX = 5; -static const SANE_Int offsetY = 52; - +static const SANE_Range rangeXmm = {0, 216, 1}; +static const SANE_Range rangeYmm = {0, 297, 1}; static void _InitOptions(TScanner *s) { @@ -248,8 +291,22 @@ static void _InitOptions(TScanner *s) pVal->w = (SANE_Word)optLast; break; + case optDPI: + pDesc->name = SANE_NAME_SCAN_RESOLUTION; + pDesc->title = SANE_TITLE_SCAN_RESOLUTION; + pDesc->desc = SANE_DESC_SCAN_RESOLUTION; + pDesc->unit = SANE_UNIT_DPI; + pDesc->constraint_type = SANE_CONSTRAINT_WORD_LIST; + pDesc->constraint.word_list = setResolutions; + pDesc->cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT; + pVal->w = setResolutions[1]; + break; + + //--------------------------------- case optGroupGeometry: - pDesc->title = "Geometry"; + pDesc->name = SANE_NAME_GEOMETRY; + pDesc->title = SANE_TITLE_GEOMETRY; + pDesc->desc = SANE_DESC_GEOMETRY; pDesc->type = SANE_TYPE_GROUP; pDesc->size = 0; break; @@ -262,7 +319,7 @@ static void _InitOptions(TScanner *s) pDesc->constraint_type = SANE_CONSTRAINT_RANGE; pDesc->constraint.range = &rangeXmm; pDesc->cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT; - pVal->w = rangeXmm.min + offsetX; + pVal->w = rangeXmm.min; break; case optTLY: @@ -273,7 +330,7 @@ static void _InitOptions(TScanner *s) pDesc->constraint_type = SANE_CONSTRAINT_RANGE; pDesc->constraint.range = &rangeYmm; pDesc->cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT; - pVal->w = rangeYmm.min + offsetY; + pVal->w = rangeYmm.min; break; case optBRX: @@ -284,7 +341,7 @@ static void _InitOptions(TScanner *s) pDesc->constraint_type = SANE_CONSTRAINT_RANGE; pDesc->constraint.range = &rangeXmm; pDesc->cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT; - pVal->w = rangeXmm.max + offsetX; + pVal->w = rangeXmm.max; break; case optBRY: @@ -295,22 +352,14 @@ static void _InitOptions(TScanner *s) pDesc->constraint_type = SANE_CONSTRAINT_RANGE; pDesc->constraint.range = &rangeYmm; pDesc->cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT; - pVal->w = rangeYmm.max + offsetY; + pVal->w = rangeYmm.max; break; - case optDPI: - pDesc->name = SANE_NAME_SCAN_RESOLUTION; - pDesc->title = SANE_TITLE_SCAN_RESOLUTION; - pDesc->desc = SANE_DESC_SCAN_RESOLUTION; - pDesc->unit = SANE_UNIT_DPI; - pDesc->constraint_type = SANE_CONSTRAINT_WORD_LIST; - pDesc->constraint.word_list = setResolutions; - pDesc->cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT; - pVal->w = setResolutions[1]; - break; - - case optGroupImage: - pDesc->title = SANE_I18N("Image"); + //--------------------------------- + case optGroupEnhancement: + pDesc->name = SANE_NAME_ENHANCEMENT; + pDesc->title = SANE_TITLE_ENHANCEMENT; + pDesc->desc = SANE_DESC_ENHANCEMENT; pDesc->type = SANE_TYPE_GROUP; pDesc->size = 0; break; @@ -348,34 +397,130 @@ static void _InitOptions(TScanner *s) pVal->wa = s->aGammaTableB; break; + //--------------------------------- + case optGroupSensors: + pDesc->name = SANE_NAME_SENSORS; + pDesc->title = SANE_TITLE_SENSORS; + pDesc->type = SANE_TYPE_GROUP; + pDesc->desc = SANE_DESC_SENSORS; + pDesc->size = 0; + break; + + case optSensorScanTo: + pDesc->name = SANE_NAME_SCAN; + pDesc->title = SANE_TITLE_SCAN; + pDesc->desc = SANE_DESC_SCAN; + pDesc->type = SANE_TYPE_BOOL; + pDesc->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_HARD_SELECT | SANE_CAP_ADVANCED; + break; + + case optSensorWeb: + pDesc->name = SANE_I18N("web"); + pDesc->title = SANE_I18N("Share-To-Web button"); + pDesc->desc = SANE_I18N("Scan an image and send it on the web"); + pDesc->type = SANE_TYPE_BOOL; + pDesc->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_HARD_SELECT | SANE_CAP_ADVANCED; + break; + + case optSensorReprint: + pDesc->name = SANE_I18N("reprint"); + pDesc->title = SANE_I18N("Reprint Photos button"); + pDesc->desc = SANE_I18N("Button for reprinting photos"); + pDesc->type = SANE_TYPE_BOOL; + pDesc->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_HARD_SELECT | SANE_CAP_ADVANCED; + break; + + case optSensorEmail: + pDesc->name = SANE_NAME_EMAIL; + pDesc->title = SANE_TITLE_EMAIL; + pDesc->desc = SANE_DESC_EMAIL; + pDesc->type = SANE_TYPE_BOOL; + pDesc->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_HARD_SELECT | SANE_CAP_ADVANCED; + break; + + case optSensorCopy: + pDesc->name = SANE_NAME_COPY; + pDesc->title = SANE_TITLE_COPY; + pDesc->desc = SANE_DESC_COPY; + pDesc->type = SANE_TYPE_BOOL; + pDesc->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_HARD_SELECT | SANE_CAP_ADVANCED; + break; + + case optSensorMoreOptions: + pDesc->name = SANE_I18N("more-options"); + pDesc->title = SANE_I18N("More Options button"); + pDesc->desc = SANE_I18N("Button for additional options/configuration"); + pDesc->type = SANE_TYPE_BOOL; + pDesc->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_HARD_SELECT | SANE_CAP_ADVANCED; + break; + + case optSensorCancel: + pDesc->name = SANE_NAME_CANCEL; + pDesc->title = SANE_TITLE_CANCEL; + pDesc->desc = SANE_DESC_CANCEL; + pDesc->type = SANE_TYPE_BOOL; + pDesc->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_HARD_SELECT | SANE_CAP_ADVANCED; + break; + + case optSensorPowerSave: + pDesc->name = SANE_I18N("power-save"); + pDesc->title = SANE_I18N("Power Save button"); + pDesc->desc = SANE_I18N("Puts the scanner in an energy-conservation mode"); + pDesc->type = SANE_TYPE_BOOL; + pDesc->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_HARD_SELECT | SANE_CAP_ADVANCED; + break; + + case optSensorCopiesUp: + pDesc->name = SANE_I18N("copies-up"); + pDesc->title = SANE_I18N("Increase Copies button"); + pDesc->desc = SANE_I18N("Increase the number of copies"); + pDesc->type = SANE_TYPE_BOOL; + pDesc->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_HARD_SELECT | SANE_CAP_ADVANCED; + break; + + case optSensorCopiesDown: + pDesc->name = SANE_I18N("copies-down"); + pDesc->title = SANE_I18N("Decrease Copies button"); + pDesc->desc = SANE_I18N("Decrease the number of copies"); + pDesc->type = SANE_TYPE_BOOL; + pDesc->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_HARD_SELECT | SANE_CAP_ADVANCED; + break; + + case optSensorColourBW: + pDesc->name = SANE_I18N("color-bw"); + pDesc->title = SANE_I18N("Select color/BW button"); + pDesc->desc = SANE_I18N("Alternates between color and black/white scanning"); + pDesc->type = SANE_TYPE_BOOL; + pDesc->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_HARD_SELECT | SANE_CAP_ADVANCED; + break; + + case optSensorColourBWState: + pDesc->name = SANE_I18N("color-bw-state"); + pDesc->title = SANE_I18N("Read color/BW button state"); + pDesc->desc = SANE_I18N("Reads state of BW/colour panel setting"); + pDesc->type = SANE_TYPE_STRING; + pDesc->constraint_type = SANE_CONSTRAINT_STRING_LIST; + pDesc->constraint.string_list = modeSwitchList; + pDesc->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT | SANE_CAP_ADVANCED; + break; + + case optSensorCopyCount: + pDesc->name = SANE_I18N("copies-count"); + pDesc->title = SANE_I18N("Read copy count value"); + pDesc->desc = SANE_I18N("Reads state of copy count panel setting"); + pDesc->type = SANE_TYPE_INT; + pDesc->constraint_type = SANE_CONSTRAINT_RANGE; + pDesc->constraint.range = &rangeCopyCountTable; + pDesc->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT | SANE_CAP_ADVANCED; + break; + +#if 0 case optGroupMisc: pDesc->title = SANE_I18N("Miscellaneous"); pDesc->type = SANE_TYPE_GROUP; pDesc->size = 0; break; - case optOffsetX: - pDesc->title = SANE_I18N("offset X"); - pDesc->desc = SANE_I18N("Hardware internal X position of the scanning area."); - pDesc->unit = SANE_UNIT_MM; - pDesc->constraint_type = SANE_CONSTRAINT_RANGE; - pDesc->constraint.range = &rangeXoffset; - pDesc->cap = SANE_CAP_SOFT_SELECT; - pVal->w = offsetX; - break; - - case optOffsetY: - pDesc->title = SANE_I18N("offset Y"); - pDesc->desc = SANE_I18N("Hardware internal Y position of the scanning area."); - pDesc->unit = SANE_UNIT_MM; - pDesc->constraint_type = SANE_CONSTRAINT_RANGE; - pDesc->constraint.range = &rangeYoffset; - pDesc->cap = SANE_CAP_SOFT_SELECT; - pVal->w = offsetY; - break; - - -#if 0 case optLamp: pDesc->name = "lamp"; pDesc->title = SANE_I18N("Lamp status"); @@ -385,8 +530,7 @@ static void _InitOptions(TScanner *s) /* switch the lamp on when starting for first the time */ pVal->w = SANE_TRUE; break; -#endif -#if 0 + case optCalibrate: pDesc->name = "calibrate"; pDesc->title = SANE_I18N("Calibrate"); @@ -467,7 +611,7 @@ sane_init (SANE_Int * piVersion, SANE_Auth_Callback pfnAuth) SANE_String_Const proper_str; int nline = 0; - /* prevent compiler from complaing about unused parameters */ + /* prevent compiler from complaining about unused parameters */ pfnAuth = pfnAuth; strcpy(usb_devfile, "/dev/usb/scanner0"); @@ -531,7 +675,6 @@ sane_init (SANE_Int * piVersion, SANE_Auth_Callback pfnAuth) *piVersion = SANE_VERSION_CODE (SANE_CURRENT_MAJOR, V_MINOR, BUILD); } - return SANE_STATUS_GOOD; } @@ -694,7 +837,7 @@ sane_control_option (SANE_Handle h, SANE_Int n, SANE_Action Action, /* Get options of type SANE_Word */ case optBRX: case optTLX: - *(SANE_Word *) pVal = s->aValues[n].w; /* Not needed anymore - s->aValues[optOffsetX].w; */ + *(SANE_Word *) pVal = s->aValues[n].w; HP5400_DBG (DBG_MSG, "sane_control_option: SANE_ACTION_GET_VALUE %d = %d\n", n, *(SANE_Word *) pVal); @@ -702,14 +845,12 @@ sane_control_option (SANE_Handle h, SANE_Int n, SANE_Action Action, case optBRY: case optTLY: - *(SANE_Word *) pVal = s->aValues[n].w; /* Not needed anymore - - s->aValues[optOffsetY].w; */ + *(SANE_Word *) pVal = s->aValues[n].w; HP5400_DBG (DBG_MSG, "sane_control_option: SANE_ACTION_GET_VALUE %d = %d\n", n, *(SANE_Word *) pVal); break; - case optOffsetX: - case optOffsetY: case optCount: case optDPI: HP5400_DBG (DBG_MSG, @@ -726,14 +867,94 @@ sane_control_option (SANE_Handle h, SANE_Int n, SANE_Action Action, memcpy (pVal, s->aValues[n].wa, s->aOptions[n].size); break; + case optSensorScanTo: + case optSensorWeb: + case optSensorReprint: + case optSensorEmail: + case optSensorCopy: + case optSensorMoreOptions: + case optSensorCancel: + case optSensorPowerSave: + case optSensorCopiesUp: + case optSensorCopiesDown: + case optSensorColourBW: + { + HP5400_DBG (DBG_MSG, "Reading sensor state\n"); + + uint16_t sensorMap; + if (GetSensors(&s->HWParams, &sensorMap) != 0) + { + HP5400_DBG (DBG_ERR, + "sane_control_option: SANE_ACTION_SET_VALUE could not retrieve sensors\n"); + return SANE_STATUS_IO_ERROR; + + } + + HP5400_DBG (DBG_MSG, "Sensor state=%x\n", sensorMap); + + // Add read flags to what we already have so that we can report them when requested. + s->sensorMap |= sensorMap; + + // Look up the mask based on the option number. + uint16_t mask = sensorMaskMap[n - optGroupSensors - 1]; + *(SANE_Word *) pVal = (s->sensorMap & mask)? 1:0; + s->sensorMap &= ~mask; + break; + } + + case optSensorCopyCount: + { + HP5400_DBG (DBG_MSG, "Reading copy count\n"); + + TPanelInfo panelInfo; + if (GetPanelInfo(&s->HWParams, &panelInfo) != 0) + { + HP5400_DBG (DBG_ERR, + "sane_control_option: SANE_ACTION_SET_VALUE could not retrieve panel info\n"); + return SANE_STATUS_IO_ERROR; + + } + + HP5400_DBG (DBG_MSG, "Copy count setting=%u\n", panelInfo.copycount); + *(SANE_Word *) pVal = panelInfo.copycount; + break; + } + + case optSensorColourBWState: + { + HP5400_DBG (DBG_MSG, "Reading BW/Colour setting\n"); + + TPanelInfo panelInfo; + if (GetPanelInfo(&s->HWParams, &panelInfo) != 0) + { + HP5400_DBG (DBG_ERR, + "sane_control_option: SANE_ACTION_SET_VALUE could not retrieve panel info\n"); + return SANE_STATUS_IO_ERROR; + + } + + HP5400_DBG (DBG_MSG, "BW/Colour setting=%u\n", panelInfo.bwcolour); + + // Just for safety: + if (panelInfo.bwcolour < 1) + { + panelInfo.bwcolour = 1; + } + else if (panelInfo.bwcolour > 2) + { + panelInfo.bwcolour = 2; + } + (void)strcpy((SANE_String)pVal, modeSwitchList[panelInfo.bwcolour - 1]); + break; + } + #if 0 /* Get options of type SANE_Bool */ case optLamp: GetLamp (&s->HWParams, &fLampIsOn); *(SANE_Bool *) pVal = fLampIsOn; break; -#endif -#if 0 + case optCalibrate: /* although this option has nothing to read, it's added here to avoid a warning when running scanimage --help */ @@ -761,26 +982,70 @@ sane_control_option (SANE_Handle h, SANE_Int n, SANE_Action Action, case optBRX: case optTLX: - info |= SANE_INFO_RELOAD_PARAMS; - s->ScanParams.iLines = 0; /* Forget actual image settings */ - s->aValues[n].w = *(SANE_Word *) pVal; /* Not needed anymore - + s->aValues[optOffsetX].w; */ - break; + { + // Check against legal values. + SANE_Word value = *(SANE_Word *) pVal; + if ((value < s->aOptions[n].constraint.range->min) || + (value > s->aOptions[n].constraint.range->max)) + { + HP5400_DBG (DBG_ERR, + "sane_control_option: SANE_ACTION_SET_VALUE out of range X value\n"); + return SANE_STATUS_INVAL; + } - case optBRY: - case optTLY: - info |= SANE_INFO_RELOAD_PARAMS; - s->ScanParams.iLines = 0; /* Forget actual image settings */ - s->aValues[n].w = *(SANE_Word *) pVal; /* Not needed anymore - + s->aValues[optOffsetY].w; */ - break; - case optDPI: - info |= SANE_INFO_RELOAD_PARAMS; - s->ScanParams.iLines = 0; /* Forget actual image settings */ -#ifdef SUPPORT_2400_DPI - (s->aValues[n].w) = *(SANE_Word *) pVal; -#else - (s->aValues[n].w) = min (1200, *(SANE_Word *) pVal); -#endif - break; + info |= SANE_INFO_RELOAD_PARAMS; + s->ScanParams.iLines = 0; /* Forget actual image settings */ + s->aValues[n].w = value; + break; + } + + case optBRY: + case optTLY: + { + // Check against legal values. + SANE_Word value = *(SANE_Word *) pVal; + if ((value < s->aOptions[n].constraint.range->min) || + (value > s->aOptions[n].constraint.range->max)) + { + HP5400_DBG (DBG_ERR, + "sane_control_option: SANE_ACTION_SET_VALUE out of range Y value\n"); + return SANE_STATUS_INVAL; + } + + info |= SANE_INFO_RELOAD_PARAMS; + s->ScanParams.iLines = 0; /* Forget actual image settings */ + s->aValues[n].w = value; + break; + } + + case optDPI: + { + // Check against legal values. + SANE_Word dpiValue = *(SANE_Word *) pVal; + + // First check too large. + SANE_Word maxRes = setResolutions[setResolutions[0]]; + if (dpiValue > maxRes) + { + dpiValue = maxRes; + } + else // Check smaller values: if not exact match, pick next higher available. + { + for (SANE_Int resIdx = 1; resIdx <= setResolutions[0]; resIdx++) + { + if (dpiValue <= setResolutions[resIdx]) + { + dpiValue = setResolutions[resIdx]; + break; + } + } + } + + info |= SANE_INFO_RELOAD_PARAMS; + s->ScanParams.iLines = 0; /* Forget actual image settings */ + (s->aValues[n].w) = dpiValue; + break; + } case optGammaTableRed: case optGammaTableGreen: @@ -788,6 +1053,70 @@ sane_control_option (SANE_Handle h, SANE_Int n, SANE_Action Action, HP5400_DBG (DBG_MSG, "Writing gamma table\n"); memcpy (s->aValues[n].wa, pVal, s->aOptions[n].size); break; + + case optSensorColourBWState: + { + SANE_String bwColour = (SANE_String)pVal; + SANE_Word bwColourValue; + + if (strcmp(bwColour, SANE_VALUE_SCAN_MODE_COLOR) == 0) + { + bwColourValue = 1; + } + else if (strcmp(bwColour, SANE_VALUE_SCAN_MODE_GRAY) == 0) + { + bwColourValue = 2; + } + else + { + HP5400_DBG (DBG_ERR, + "sane_control_option: SANE_ACTION_SET_VALUE invalid colour/bw mode\n"); + return SANE_STATUS_INVAL; + } + + HP5400_DBG (DBG_MSG, "Setting BW/Colour state=%d\n", bwColourValue); + + /* + * Now write it with the other panel settings back to the scanner. + * + */ + if (SetColourBW(&s->HWParams, bwColourValue) != 0) + { + HP5400_DBG (DBG_ERR, + "sane_control_option: SANE_ACTION_SET_VALUE could not set colour/BW mode\n"); + return SANE_STATUS_IO_ERROR; + } + break; + } + + case optSensorCopyCount: + { + SANE_Word copyCount = *(SANE_Word *) pVal; + if (copyCount < 0) + { + copyCount = 0; + } + else if (copyCount > 99) + { + copyCount = 99; + } + + HP5400_DBG (DBG_MSG, "Setting Copy Count=%d\n", copyCount); + + /* + * Now write it with the other panel settings back to the scanner. + * + */ + if (SetCopyCount(&s->HWParams, copyCount) != 0) + { + HP5400_DBG (DBG_ERR, + "sane_control_option: SANE_ACTION_SET_VALUE could not set copy count\n"); + return SANE_STATUS_IO_ERROR; + + } + break; + } + /* case optLamp: fVal = *(SANE_Bool *)pVal; @@ -924,6 +1253,7 @@ sane_start (SANE_Handle h) s->ScanParams.iLinesRead = 0; s->fScanning = TRUE; + s->fCanceled = FALSE; return SANE_STATUS_GOOD; } @@ -944,6 +1274,11 @@ sane_read (SANE_Handle h, SANE_Byte * buf, SANE_Int maxlen, SANE_Int * len) /* nothing has been read for the moment */ *len = 0; + if (!s->fScanning || s->fCanceled) + { + HP5400_DBG (DBG_MSG, "sane_read: we're not scanning.\n"); + return SANE_STATUS_EOF; + } /* if we read all the lines return EOF */ diff --git a/backend/kodakaio.c b/backend/kodakaio.c index d5c2857c0..645b21dc2 100644 --- a/backend/kodakaio.c +++ b/backend/kodakaio.c @@ -32,13 +32,13 @@ convenient lines to paste export SANE_DEBUG_KODAKAIO=20 for ubuntu prior to 12.10 -./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --enable-avahi --without-api-spec BACKENDS="kodakaio test" +./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --enable-avahi BACKENDS="kodakaio test" for ubuntu 12.10 -./configure --prefix=/usr --libdir=/usr/lib/i386-linux-gnu --sysconfdir=/etc --localstatedir=/var --enable-avahi --without-api-spec BACKENDS="kodakaio test" +./configure --prefix=/usr --libdir=/usr/lib/i386-linux-gnu --sysconfdir=/etc --localstatedir=/var --enable-avahi BACKENDS="kodakaio test" for ubuntu 14.10 up to at least 17.04 -./configure --prefix=/usr --libdir=/usr/lib/x86_64-linux-gnu --sysconfdir=/etc --localstatedir=/var --enable-avahi --without-api-spec BACKENDS="kodakaio test" +./configure --prefix=/usr --libdir=/usr/lib/x86_64-linux-gnu --sysconfdir=/etc --localstatedir=/var --enable-avahi BACKENDS="kodakaio test" If you want to use the test backend, for example with sane-troubleshoot, you should enable it in /etc/sane.d/dll.conf diff --git a/backend/kvs1025.c b/backend/kvs1025.c index c0e1fa394..fc89d8738 100644 --- a/backend/kvs1025.c +++ b/backend/kvs1025.c @@ -34,8 +34,8 @@ #include "../include/sane/sanei_debug.h" -/* SANE backend operations, see Sane standard 1.04 documents (sane_dev.pdf) - for details */ +/* SANE backend operations, see SANE Standard for details + https://sane-project.gitlab.io/standard/ */ /* Init the KV-S1025 SANE backend. This function must be called before any other SANE function can be called. */ diff --git a/backend/pixma.c b/backend/pixma/pixma.c similarity index 100% rename from backend/pixma.c rename to backend/pixma/pixma.c diff --git a/backend/pixma.h b/backend/pixma/pixma.h similarity index 99% rename from backend/pixma.h rename to backend/pixma/pixma.h index 698f82fb0..6e78834f6 100644 --- a/backend/pixma.h +++ b/backend/pixma/pixma.h @@ -119,8 +119,8 @@ typedef uint32_t uint32_t; /** \name Version of the driver */ /**@{*/ #define PIXMA_VERSION_MAJOR 0 -#define PIXMA_VERSION_MINOR 26 -#define PIXMA_VERSION_BUILD 0 +#define PIXMA_VERSION_MINOR 27 +#define PIXMA_VERSION_BUILD 2 /**@}*/ /** \name Error codes */ diff --git a/backend/pixma_bjnp.c b/backend/pixma/pixma_bjnp.c similarity index 96% rename from backend/pixma_bjnp.c rename to backend/pixma/pixma_bjnp.c index e694fa220..34ba918f2 100644 --- a/backend/pixma_bjnp.c +++ b/backend/pixma/pixma_bjnp.c @@ -39,6 +39,7 @@ whether to permit this exception to apply to your modifications. If you do not wish that, delete this exception notice. */ + #undef BACKEND_NAME #define BACKEND_NAME bjnp @@ -117,6 +118,40 @@ static int bjnp_no_devices = 0; * Private functions */ +static const struct pixma_config_t *lookup_scanner(const char *makemodel, + const struct pixma_config_t *const pixma_devices[]) +{ + int i; + const struct pixma_config_t *cfg; + char *match; + + for (i = 0; pixma_devices[i]; i++) + { + /* loop through the device classes (mp150, mp730 etc) */ + for (cfg = pixma_devices[i]; cfg->name; cfg++) + { + /* loop through devices in class */ + PDBG( bjnp_dbg( LOG_DEBUG3, "lookup_scanner: Checking for %s in %s\n", makemodel, cfg->model)); + if ((match = strcasestr (makemodel, cfg->model)) != NULL) + { + /* possible match found, make sure it is not a partial match */ + /* MP600 and MP600R are different models! */ + /* some models contain ranges, so check for a '-' too */ + + if ((match[strlen(cfg->model)] == ' ') || + (match[strlen(cfg->model)] == '\0') || + (match[strlen(cfg->model)] == '-')) + { + PDBG( bjnp_dbg (LOG_DEBUG, "lookup_scanner: Scanner model found: Name %s(%s) matches %s\n", cfg->model, cfg->name, makemodel)); + return cfg; + } + } + } + } + PDBG( bjnp_dbg (LOG_DEBUG, "lookup_scanner: Scanner model %s not found, giving up!\n", makemodel)); + return NULL; +} + static void u8tohex (char *string, const uint8_t *value, int len ) { @@ -1811,16 +1846,15 @@ static void add_scanner(SANE_Int *dev_no, const char *uri, SANE_Status (*attach_bjnp) (SANE_String_Const devname, - SANE_String_Const makemodel, SANE_String_Const serial, - const struct pixma_config_t * - const pixma_devices[]), - const struct pixma_config_t *const pixma_devices[]) + const struct pixma_config_t *cfg), + const struct pixma_config_t *const pixma_devices[]) { char scanner_host[BJNP_HOST_MAX]; char serial[BJNP_SERIAL_MAX]; char makemodel[BJNP_MODEL_MAX]; + const struct pixma_config_t *cfg = NULL; /* Allocate device structure for scanner */ switch (bjnp_allocate_device (uri, dev_no, scanner_host)) @@ -1833,17 +1867,32 @@ static void add_scanner(SANE_Int *dev_no, } else { - /* - * inform caller of found scanner - */ + /* + * fetch scanner configuration + */ + if ((cfg = lookup_scanner(makemodel, pixma_devices)) == (struct pixma_config_t *)NULL) + { + PDBG (bjnp_dbg (LOG_CRIT, "add_scanner: Scanner %s is not supported, model is unknown! Please report upstream\n", makemodel)); + break; + } - determine_scanner_serial (scanner_host, device[*dev_no].mac_address, serial); + /* + * inform caller of found scanner + */ - attach_bjnp (uri, makemodel, - serial, pixma_devices); - PDBG (bjnp_dbg (LOG_NOTICE, "add_scanner: New scanner added: %s, serial %s, mac address: %s.\n", - uri, serial, device[*dev_no].mac_address)); + determine_scanner_serial (scanner_host, device[*dev_no].mac_address, serial); + + switch (attach_bjnp (uri, serial, cfg)) + { + case SANE_STATUS_GOOD: + PDBG (bjnp_dbg (LOG_NOTICE, "add_scanner: New scanner added: %s, serial %s, mac address: %s.\n", + uri, serial, device[*dev_no].mac_address)); + break; + default: + PDBG (bjnp_dbg (LOG_CRIT, "add_scanner: unexpected error (out of memory?), adding %s\n", makemodel)); + } } + break; case BJNP_STATUS_ALREADY_ALLOCATED: PDBG (bjnp_dbg (LOG_NOTICE, "add_scanner: Scanner at %s was added before, good!\n", @@ -1898,10 +1947,7 @@ int add_timeout_to_uri(char *uri, int timeout, int max_len) return 0; } - -/* - * Public functions - */ +/** Public functions **/ /** Initialize sanei_bjnp. * @@ -1926,11 +1972,9 @@ sanei_bjnp_init (void) extern SANE_Status sanei_bjnp_find_devices (const char **conf_devices, SANE_Status (*attach_bjnp) - (SANE_String_Const devname, - SANE_String_Const makemodel, - SANE_String_Const serial, - const struct pixma_config_t * - const pixma_devices[]), + (SANE_String_Const devname, + SANE_String_Const serial, + const struct pixma_config_t *cfg), const struct pixma_config_t *const pixma_devices[]) { int numbytes = 0; diff --git a/backend/pixma_bjnp.h b/backend/pixma/pixma_bjnp.h similarity index 96% rename from backend/pixma_bjnp.h rename to backend/pixma/pixma_bjnp.h index a27082c87..79e084eb9 100644 --- a/backend/pixma_bjnp.h +++ b/backend/pixma/pixma_bjnp.h @@ -81,12 +81,10 @@ extern void sanei_bjnp_init (void); extern SANE_Status sanei_bjnp_find_devices (const char **conf_devices, SANE_Status (*attach_bjnp) - (SANE_String_Const devname, - SANE_String_Const makemodel, - SANE_String_Const serial, - const struct pixma_config_t * - const pixma_devices[]), - const struct pixma_config_t *const pixma_devices[]); + (SANE_String_Const devname, + SANE_String_Const serial, + const struct pixma_config_t *cfg), + const struct pixma_config_t *const pixma_devices[]); /** Open a BJNP device. * diff --git a/backend/pixma_bjnp_private.h b/backend/pixma/pixma_bjnp_private.h similarity index 100% rename from backend/pixma_bjnp_private.h rename to backend/pixma/pixma_bjnp_private.h diff --git a/backend/pixma_common.c b/backend/pixma/pixma_common.c similarity index 100% rename from backend/pixma_common.c rename to backend/pixma/pixma_common.c diff --git a/backend/pixma_common.h b/backend/pixma/pixma_common.h similarity index 100% rename from backend/pixma_common.h rename to backend/pixma/pixma_common.h diff --git a/backend/pixma_imageclass.c b/backend/pixma/pixma_imageclass.c similarity index 99% rename from backend/pixma_imageclass.c rename to backend/pixma/pixma_imageclass.c index d26675b62..d2dd48c03 100644 --- a/backend/pixma_imageclass.c +++ b/backend/pixma/pixma_imageclass.c @@ -119,6 +119,7 @@ #define MF420_PID 0x27f1 #define MF260_PID 0x27f4 #define MF740_PID 0x27fb +#define MF743_PID 0x27fc #define MF640_PID 0x27fe #define MF645_PID 0x27fd @@ -972,11 +973,12 @@ const pixma_config_t pixma_iclass_devices[] = { DEV ("Canon imageCLASS MF634C", "MF632C/634C", MF634_PID, 600, 0, 637, 1050, PIXMA_CAP_ADFDUP), DEV ("Canon imageCLASS MF733C", "MF731C/733C", MF731_PID, 600, 0, 637, 1050, PIXMA_CAP_ADFDUP), /* however, we need this for ethernet/wifi */ DEV ("Canon imageCLASS D570", "D570", D570_PID, 600, 0, 640, 877, 0), - DEV ("Canon i-SENSYS MF110 Series", "MF110", MF110_PID, 600, 0, 640, 1050, 0), + DEV ("Canon i-SENSYS MF110/910 Series", "MF110", MF110_PID, 600, 0, 640, 1050, 0), DEV ("Canon i-SENSYS MF520 Series", "MF520", MF520_PID, 600, 0, 640, 1050, PIXMA_CAP_ADFDUP), DEV ("Canon i-SENSYS MF420 Series", "MF420", MF420_PID, 600, 0, 640, 1050, PIXMA_CAP_ADFDUP), DEV ("Canon i-SENSYS MF260 Series", "MF260", MF260_PID, 600, 0, 640, 1050, PIXMA_CAP_ADFDUP), DEV ("Canon i-SENSYS MF740 Series", "MF740", MF740_PID, 600, 0, 640, 1050, PIXMA_CAP_ADFDUP), + DEV ("Canon i-SENSYS MF741C/743C", "MF741C/743C", MF743_PID, 600, 300, 640, 1050, PIXMA_CAP_ADFDUP), /* ADFDUP restricted to 300dpi */ DEV ("Canon i-SENSYS MF640 Series", "MF642C/643C/644C", MF640_PID, 600, 0, 640, 1050, PIXMA_CAP_ADFDUP), DEV ("Canon i-SENSYS MF645C", "MF645C", MF645_PID, 600, 0, 637, 877, PIXMA_CAP_ADFDUP), /* max. w = 216mm */ DEV (NULL, NULL, 0, 0, 0, 0, 0, 0) diff --git a/backend/pixma_io.h b/backend/pixma/pixma_io.h similarity index 100% rename from backend/pixma_io.h rename to backend/pixma/pixma_io.h diff --git a/backend/pixma_io_sanei.c b/backend/pixma/pixma_io_sanei.c similarity index 88% rename from backend/pixma_io_sanei.c rename to backend/pixma/pixma_io_sanei.c index fb2e11683..c30b4044c 100644 --- a/backend/pixma_io_sanei.c +++ b/backend/pixma/pixma_io_sanei.c @@ -107,39 +107,6 @@ get_scanner_info (unsigned devnr) return si; } -static const struct pixma_config_t *lookup_scanner(const char *makemodel, - const struct pixma_config_t *const pixma_devices[]) -{ - int i; - const struct pixma_config_t *cfg; - char *match; - - for (i = 0; pixma_devices[i]; i++) - { - /* loop through the device classes (mp150, mp730 etc) */ - for (cfg = pixma_devices[i]; cfg->name; cfg++) - { - /* loop through devices in class */ - if ((match = strcasestr (makemodel, cfg->model)) != NULL) - { - /* possible match found, make sure it is not a partial match */ - /* MP600 and MP600R are different models! */ - /* some models contain ranges, so check for a '-' too */ - - if ((match[strlen(cfg->model)] == ' ') || - (match[strlen(cfg->model)] == '\0') || - (match[strlen(cfg->model)] == '-')) - { - pixma_dbg (3, "Scanner model found: Name %s(%s) matches %s\n", cfg->model, cfg->name, makemodel); - return cfg; - } - } - pixma_dbg (20, "Scanner model %s(%s) not found, giving up! %s\n", cfg->model, cfg->name, makemodel); - } - } - return NULL; -} - static SANE_Status attach (SANE_String_Const devname) { @@ -160,13 +127,11 @@ attach (SANE_String_Const devname) static SANE_Status -attach_bjnp (SANE_String_Const devname, SANE_String_Const makemodel, +attach_bjnp (SANE_String_Const devname, SANE_String_Const serial, - const struct pixma_config_t *const pixma_devices[]) + const struct pixma_config_t *cfg) { scanner_info_t *si; - const pixma_config_t *cfg; - SANE_Status error; si = (scanner_info_t *) calloc (1, sizeof (*si)); if (!si) @@ -174,19 +139,14 @@ attach_bjnp (SANE_String_Const devname, SANE_String_Const makemodel, si->devname = strdup (devname); if (!si->devname) return SANE_STATUS_NO_MEM; - if ((cfg = lookup_scanner(makemodel, pixma_devices)) == (struct pixma_config_t *)NULL) - error = SANE_STATUS_INVAL; - else - { - si->cfg = cfg; - sprintf(si->serial, "%s_%s", cfg->model, serial); - si -> interface = INT_BJNP; - si->next = first_scanner; - first_scanner = si; - nscanners++; - error = SANE_STATUS_GOOD; - } - return error; + + si->cfg = cfg; + sprintf(si->serial, "%s_%s", cfg->model, serial); + si -> interface = INT_BJNP; + si->next = first_scanner; + first_scanner = si; + nscanners++; + return SANE_STATUS_GOOD; } static void diff --git a/backend/pixma_mp150.c b/backend/pixma/pixma_mp150.c similarity index 99% rename from backend/pixma_mp150.c rename to backend/pixma/pixma_mp150.c index 397370275..939bf92c6 100644 --- a/backend/pixma_mp150.c +++ b/backend/pixma/pixma_mp150.c @@ -1765,7 +1765,7 @@ const pixma_config_t pixma_mp150_devices[] = { /* Latest devices (2018) Generation 5 CIS */ DEVICE ("Canon MAXIFY MB5400 Series", "MB5400", MB5400_PID, 0, 1200, 0, 0, 638, 1050, PIXMA_CAP_CIS | PIXMA_CAP_ADFDUP | PIXMA_CAP_ADF_JPEG), - DEVICE ("Canon MAXIFY MB5100 Series", "MB5100", MB5100_PID, 0, 1200, 0, 0, 638, 1050, PIXMA_CAP_CIS | PIXMA_CAP_ADFDUP), + DEVICE ("Canon MAXIFY MB5100 Series", "MB5100", MB5100_PID, 0, 1200, 0, 0, 638, 1050, PIXMA_CAP_CIS | PIXMA_CAP_ADFDUP | PIXMA_CAP_ADF_JPEG), DEVICE ("Canon PIXMA TS9100 Series", "TS9100", TS9100_PID, 0, 2400, 0, 0, 638, 877, PIXMA_CAP_CIS), DEVICE ("Canon PIXMA TR8500 Series", "TR8500", TR8500_PID, 0, 1200, 0, 0, 638, 877, PIXMA_CAP_CIS | PIXMA_CAP_ADF), DEVICE ("Canon PIXMA TR7500 Series", "TR7500", TR7500_PID, 0, 1200, 0, 0, 638, 877, PIXMA_CAP_CIS | PIXMA_CAP_ADF), diff --git a/backend/pixma_mp730.c b/backend/pixma/pixma_mp730.c similarity index 100% rename from backend/pixma_mp730.c rename to backend/pixma/pixma_mp730.c diff --git a/backend/pixma_mp750.c b/backend/pixma/pixma_mp750.c similarity index 100% rename from backend/pixma_mp750.c rename to backend/pixma/pixma_mp750.c diff --git a/backend/pixma_mp800.c b/backend/pixma/pixma_mp800.c similarity index 100% rename from backend/pixma_mp800.c rename to backend/pixma/pixma_mp800.c diff --git a/backend/pixma_rename.h b/backend/pixma/pixma_rename.h similarity index 100% rename from backend/pixma_rename.h rename to backend/pixma/pixma_rename.h diff --git a/backend/pixma_sane_options.c b/backend/pixma/pixma_sane_options.c similarity index 100% rename from backend/pixma_sane_options.c rename to backend/pixma/pixma_sane_options.c diff --git a/backend/pixma_sane_options.h b/backend/pixma/pixma_sane_options.h similarity index 100% rename from backend/pixma_sane_options.h rename to backend/pixma/pixma_sane_options.h diff --git a/backend/scripts/pixma_gen_options.py b/backend/pixma/scripts/pixma_gen_options.py similarity index 100% rename from backend/scripts/pixma_gen_options.py rename to backend/pixma/scripts/pixma_gen_options.py diff --git a/backend/plustek-usbcal.c b/backend/plustek-usbcal.c index 3b9d93ad4..84a410541 100644 --- a/backend/plustek-usbcal.c +++ b/backend/plustek-usbcal.c @@ -306,7 +306,7 @@ cano_AdjustLightsource( Plustek_Device *dev ) min_rgb.Blue = hw->blue_lamp_on; if((dev->adj.rlampoff != -1) && - (dev->adj.glampoff != -1) && (dev->adj.rlampoff != -1)) { + (dev->adj.glampoff != -1) && (dev->adj.blampoff != -1)) { DBG( _DBG_INFO, "- function skipped, using frontend values!\n" ); return SANE_TRUE; } diff --git a/backend/xerox_mfp.c b/backend/xerox_mfp.c index b082634f3..f5fd70ef9 100644 --- a/backend/xerox_mfp.c +++ b/backend/xerox_mfp.c @@ -212,6 +212,7 @@ static int isSupportedDevice(struct device __sane_unused__ *dev) /* blacklist malfunctioning device(s) */ if (!strncmp(dev->sane.model, "SCX-4500W", 9) || !strncmp(dev->sane.model, "C460", 4) || + !!strstr(dev->sane.model, "CLX-3170") || !strncmp(dev->sane.model, "M288x", 5)) return 0; return 1; diff --git a/configure.ac b/configure.ac index e97d0402f..5dc1ffe67 100644 --- a/configure.ac +++ b/configure.ac @@ -769,54 +769,6 @@ AC_ARG_ENABLE(parport-directio, fi ]) -dnl ****************************************************************** -dnl SANE API specification format conversion support -dnl ****************************************************************** -AC_ARG_WITH(api-spec, - AS_HELP_STRING([--with-api-spec], - [convert API spec to supported output formats @<:@default=check@:>@]), - [], - [with_api_spec=check]) -dnl Test for all tools that may be involved. These tests are fast and -dnl running them allows for the Makefile targets to be formulated such -dnl that any non-requested formats can be made using a one-off without -dnl the need to reconfigure. -AC_PATH_PROG(MAKEINDEX, makeindex, no) -AC_PATH_PROG(DVIPS, dvips, no) -AC_PATH_PROG(LATEX, latex, no) -AC_PATH_PROG(PDFLATEX, pdflatex, no) -AC_PATH_PROG(FIG2DEV, fig2dev, no) -AC_PATH_PROG(GS, gs, no) -AC_PATH_PROG(DLH, dlh, no) -AC_PATH_PROG(PPMTOGIF, ppmtogif, no) -AS_IF([test xno != "x$with_api_spec"], - [dnl Flag formats for which all required tools have been found - AS_IF([ test xno != "x$MAKEINDEX" \ - && test xno != "x$DVIPS" \ - && test xno != "x$FIG2DEV" \ - && test xno != "x$LATEX"], [with_api_ps=yes]) - AS_IF([ test xno != "x$MAKEINDEX" \ - && test xno != "x$PDFLATEX" \ - && test xno != "x$FIG2DEV" \ - && test xno != "x$GS"], [with_api_pdf=yes]) - AS_IF([ test xno != "x$MAKEINDEX" \ - && test xno != "x$DVIPS" \ - && test xno != "x$FIG2DEV" \ - && test xno != "x$DLH" \ - && test xno != "x$GS" \ - && test xno != "x$PPMTOFIG" ], [with_api_html=yes]) - - AS_IF([test xyes = "x$with_api_spec" \ - && test xyes != "x$with_api_ps" \ - && test xyes != "x$with_api_pdf" \ - && test xyes != "x$with_api_html"], - [AC_MSG_ERROR([tools to convert the API spec are missing]) - ]) - ]) -AM_CONDITIONAL(WITH_API_PS, [test x$with_api_ps = xyes]) -AM_CONDITIONAL(WITH_API_PDF, [test x$with_api_pdf = xyes]) -AM_CONDITIONAL(WITH_API_HTML, [test x$with_api_html = xyes]) - dnl *********************************************************************** dnl Write output files dnl *********************************************************************** diff --git a/doc/.gitignore b/doc/.gitignore index 076d9753b..3abf4673f 100644 --- a/doc/.gitignore +++ b/doc/.gitignore @@ -2,24 +2,11 @@ *.5 *.7 *.8 -*.eps *.html -*.pdf descriptions-external.db descriptions.db doxygen-genesys.conf doxygen-sanei.conf doxygen_sqlite3.db genesys-html -sane.aux -sane.cb -sane.dvi -sane.idx -sane.ilg -sane.ind -sane.lof -sane.log -sane.lot -sane.ps -sane.toc sanei-html diff --git a/doc/Makefile.am b/doc/Makefile.am index bf02a66fc..5cf301128 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -82,11 +82,10 @@ HTML_PAGES = sane-backends.html sane-backends-external.html \ endif doc_DATA = $(HTML_PAGES) -all: bemans $(API_SPECS) html-pages +all: bemans html-pages dist_doc_DATA = backend-writing.txt nobase_dist_doc_DATA = $(BEDOCS) -doc_DATA += $(API_SPECS) EXTRA_DIST += descriptions.txt releases.txt sane-logo2.jpg sane-logo.png \ sane.png @@ -218,89 +217,6 @@ install-data-local: install-beman5 uninstall-local: rm -rf $(DESTDIR)$(beman5dir)/sane-*.5 -## SANE API specification format conversion support - -API_SPECS = -if WITH_API_PS -API_SPECS += sane.ps -endif -if WITH_API_PDF -API_SPECS += sane.pdf -endif -if WITH_API_HTML -API_SPECS += sane-html -endif - -API_SPEC_INPUTS = $(srcdir)/sane.tex -API_SPEC_INPUTS += $(srcdir)/net.tex -EXTRA_DIST += $(API_SPEC_INPUTS) - -API_SPEC_TEX_FIGS = -API_SPEC_TEX_FIGS += figs/area.fig -API_SPEC_TEX_FIGS += figs/flow.fig -API_SPEC_TEX_FIGS += figs/hierarchy.fig -API_SPEC_TEX_FIGS += figs/image-data.fig -API_SPEC_TEX_FIGS += figs/xfer.fig -EXTRA_DIST += $(API_SPEC_TEX_FIGS) - -API_SPEC_EPS_FIGS = -API_SPEC_EPS_FIGS += figs/area.eps -API_SPEC_EPS_FIGS += figs/flow.eps -API_SPEC_EPS_FIGS += figs/hierarchy.eps -API_SPEC_EPS_FIGS += figs/image-data.eps -API_SPEC_EPS_FIGS += figs/xfer.eps - -API_SPEC_PDF_FIGS = -API_SPEC_PDF_FIGS += figs/area.pdf -API_SPEC_PDF_FIGS += figs/flow.pdf -API_SPEC_PDF_FIGS += figs/hierarchy.pdf -API_SPEC_PDF_FIGS += figs/image-data.pdf -API_SPEC_PDF_FIGS += figs/xfer.pdf - -## These icons are referred to in the generated HTML output. -API_SPEC_HTML_ICONS = -API_SPEC_HTML_ICONS += icons/contents.gif -API_SPEC_HTML_ICONS += icons/index.gif -API_SPEC_HTML_ICONS += icons/next.gif icons/next_gr.gif -API_SPEC_HTML_ICONS += icons/previous.gif icons/previous_gr.gif -API_SPEC_HTML_ICONS += icons/references.gif icons/references_gr.gif -API_SPEC_HTML_ICONS += icons/up.gif icons/up_gr.gif -EXTRA_DIST += $(API_SPEC_HTML_ICONS) - -am_TEXINPUTS = TEXINPUTS="$(builddir):$(srcdir):$$TEXINPUTS" - -sane.ind: $(API_SPEC_INPUTS) - @echo Generating index for $<... - @touch sane.ind - @$(am_TEXINPUTS) $(LATEX) $< /dev/null && \ - $(MAKEINDEX) -q sane.idx && \ - $(am_TEXINPUTS) $(LATEX) $< /dev/null - -.fig.eps: - @test -d $(@D) || $(MKDIR_P) $(@D) - $(FIG2DEV) -L eps $< $@ - -sane.dvi: $(API_SPEC_INPUTS) $(API_SPEC_EPS_FIGS) sane.ind - @echo Generating $@ from $<... - @$(am_TEXINPUTS) $(LATEX) $< /dev/null - -sane.ps: sane.dvi - @echo Generating $@ from $<... - @$(am_TEXINPUTS) $(DVIPS) -q $< -o $@ - -.fig.pdf: - @test -d $(@D) || $(MKDIR_P) $(@D) - $(FIG2DEV) -L pdf $< $@ - -sane.pdf: $(API_SPEC_INPUTS) $(API_SPEC_PDF_FIGS) sane.ind - @echo Generating $@ from $<... - @$(am_TEXINPUTS) $(PDFLATEX) $< >/dev/null - -sane-html: sane.dvi - $(am_TEXINPUTS) $(DLH) $(srcdir)/sane.tex - -## ^^ - html-man: $(MANPAGES) @for page in $(MANPAGES); do \ echo "translating $${page} to $${page}.html..."; \ @@ -347,20 +263,12 @@ descriptions-external.db: $(DESC_EXT_FILES) ../tools/sane-desc > descriptions-external.db html-pages: $(HTML_PAGES) -html-local: html-pages html-man sane-html - -clean-local: - rm -f *.toc *.aux *.log *.cp *.fn *.tp *.vr *.pg *.ky *.blg *.idx *.cb - rm -f *.ilg - rm -f $(API_SPEC_EPS_FIGS) $(API_SPEC_PDF_FIGS) - -rmdir figs +html-local: html-pages html-man distclean-local: rm -f $(MANPAGES) - rm -f *.lot *.lof *.ind - rm -f sane.dvi sane.ps sane-backends.html sane-backends-external.html + rm -f sane-backends.html sane-backends-external.html rm -f sane-mfgs.html sane-mfgs-external.html - rm -f sane/*.html sane/*.gif rm -f doxygen-sanei.conf doxygen-genesys.conf -rm -rf sane sanei-html for manpage in $(MANPAGES) ; do \ diff --git a/doc/backend-writing.txt b/doc/backend-writing.txt index 736fcec40..5823661a6 100644 --- a/doc/backend-writing.txt +++ b/doc/backend-writing.txt @@ -12,6 +12,7 @@ GETTING STARTED about it. You should mention that the code will be open-source, however. * Read the SANE standard. + See https://sane-project.gitlab.io/standard/ * One approach is to write a stand-alone scanning program first. Debugging this program is usually easier than using the SANE libraries. However, keep @@ -157,8 +158,6 @@ sane-backends/doc/ Used by doxygen to create the documentation of the sanei code. * releases.txt: Explains how to make releases of sane-backends. - * sane.tex, net.tex: - Contains the LaTeX source of the SANE standard. * descriptions/ (directory) Contains the .desc files for every backend that is included into sane-backends. diff --git a/doc/descriptions/fujitsu.desc b/doc/descriptions/fujitsu.desc index b858415b4..be47ee27b 100644 --- a/doc/descriptions/fujitsu.desc +++ b/doc/descriptions/fujitsu.desc @@ -657,3 +657,9 @@ :status :good :usbid "0x04c5" "0x159f" :comment "small, current, WiFi not supported." + +:model "fi-800R" +:interface "USB" +:status :good +:usbid "0x04c5" "0x15fc" +:comment "small, current, both feed methods are supported." diff --git a/doc/descriptions/genesys.desc b/doc/descriptions/genesys.desc index ee155f6f2..888f25279 100644 --- a/doc/descriptions/genesys.desc +++ b/doc/descriptions/genesys.desc @@ -79,7 +79,7 @@ :status :basic :comment "clone of the HP 2400C" -:model "ScanJet 3670C" +:model "ScanJet 3670" :interface "USB" :usbid "0x03f0" "0x1405" :status :complete @@ -89,7 +89,7 @@ :interface "USB" :usbid "0x03f0" "0x1405" :status :complete -:comment "1200x1200 dpi max, same as HP 3670C" +:comment "1200x1200 dpi max, same as HP 3670" :model "ScanJet 4850C" :interface "USB" diff --git a/doc/descriptions/pixma.desc b/doc/descriptions/pixma.desc index b03d1fcee..6a8f97810 100644 --- a/doc/descriptions/pixma.desc +++ b/doc/descriptions/pixma.desc @@ -11,7 +11,7 @@ ; See doc/descriptions.txt for details. :backend "pixma" ; name of backend -:version "0.26.0" ; version of backend (or "unmaintained") +:version "0.27.2" ; version of backend (or "unmaintained") :manpage "sane-pixma" ; name of manpage (if it exists) ;:comment "Devices marked as experimantal are disabled by default. See the manual page for how to enable them." @@ -1265,6 +1265,12 @@ :status :untested :comment "Testers needed!" +:model "i-SENSYS MF741/743" +:interface "USB Ethernet WiFi" +:usbid "0x04a9" "0x27fc" +:status :complete +:comment "Flatbed and ADF scan. All resolutions supported (up to 600DPI)." + :model "i-SENSYS MF810/820" :interface "USB Ethernet" :usbid "0x04a9" "0x27a6" @@ -1562,8 +1568,8 @@ :model "MAXIFY MB5100 Series" :interface "USB Ethernet WiFi" :usbid "0x04a9" "0x1790" -:status :untested -:comment "Testers needed!" +:status :complete +:comment "Flatbed and ADF scan. All resolutions supported (up to 1200DPI)." :model "MAXIFY MB5300 Series" :interface "USB Ethernet" diff --git a/doc/figs/area.fig b/doc/figs/area.fig deleted file mode 100644 index d0e62e458..000000000 --- a/doc/figs/area.fig +++ /dev/null @@ -1,36 +0,0 @@ -#FIG 3.1 -Portrait -Center -Inches -1200 2 -6 1650 1650 1800 1800 -2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2 - 1725 1650 1725 1800 -2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2 - 1650 1725 1800 1725 --6 -6 3300 2700 3450 2850 -2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2 - 3375 2700 3375 2850 -2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2 - 3300 2775 3450 2775 --6 -6 1725 1725 3375 2775 -2 2 0 0 7 7 10 0 18 0.000 0 0 -1 0 0 5 - 1725 1725 3375 1725 3375 2775 1725 2775 1725 1725 -4 1 -1 10 0 16 12 0.0000 4 105 840 2550 2302 scan area\001 --6 -2 2 0 2 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 - 1200 675 4275 675 4275 3375 1200 3375 1200 675 -2 1 0 1 -1 7 10 0 16 0.000 0 0 -1 1 0 2 - 2 1 1.00 60.00 120.00 - 1200 525 1200 3825 -2 1 0 1 -1 7 10 0 16 0.000 0 0 -1 1 0 2 - 2 1 1.00 60.00 120.00 - 1050 675 4650 675 -4 1 -1 10 0 16 12 0.0000 4 180 1020 3375 3150 bottom-right\001 -4 1 -1 10 0 16 12 0.0000 4 180 615 1725 1500 top-left\001 -4 1 -1 10 0 16 12 0.0000 4 135 1080 2700 1050 scan surface\001 -4 1 -1 10 0 16 12 0.0000 4 150 105 1050 3600 y\001 -4 1 -1 10 0 16 12 0.0000 4 105 90 4425 525 x\001 -4 1 -1 10 0 16 12 0.0000 4 135 105 1080 585 0\001 diff --git a/doc/figs/flow.fig b/doc/figs/flow.fig deleted file mode 100644 index 3abcc0b70..000000000 --- a/doc/figs/flow.fig +++ /dev/null @@ -1,40 +0,0 @@ -#FIG 3.1 -Portrait -Center -Inches -1200 2 -6 4200 7305 9945 7575 -4 0 -1 0 0 17 18 0.0000 4 270 1500 4200 7515 - go back to\001 -4 0 -1 0 0 16 18 0.0000 4 270 1440 5775 7515 sane_start()\001 -4 0 -1 0 0 17 18 0.0000 4 210 2670 7275 7515 if more frames desired\001 --6 -2 2 0 1 -1 7 10 0 19 0.000 0 0 -1 0 0 5 - 2700 600 10200 600 10200 9600 2700 9600 2700 600 -2 2 0 1 -1 7 8 0 18 0.000 0 0 -1 0 0 5 - 3300 2400 10200 2400 10200 8925 3300 8925 3300 2400 -2 2 0 1 -1 7 8 0 17 0.000 0 0 -1 0 0 5 - 3900 2925 10200 2925 10200 4650 3900 4650 3900 2925 -2 2 0 1 -1 7 8 0 17 0.000 0 0 -1 0 0 5 - 3900 4800 10200 4800 10200 8250 3900 8250 3900 4800 -2 1 0 1 -1 7 8 0 -1 0.000 0 0 -1 0 0 4 - 10350 3000 10425 3075 10425 4500 10350 4575 -2 1 0 1 -1 7 8 0 -1 0.000 0 0 -1 0 0 4 - 10350 4875 10425 4950 10425 8100 10350 8175 -4 0 -1 0 0 17 18 0.0000 4 150 735 4200 3300 - use:\001 -4 0 -1 0 0 16 18 0.0000 4 270 1680 4200 5100 - sane_start()\001 -4 0 -1 0 0 17 18 0.0000 4 270 4950 4500 4500 repeatedly to configure device as desired\001 -4 0 -1 0 0 16 18 0.0000 4 270 2715 5400 4080 sane_control_option()\001 -4 0 -1 0 0 16 18 0.0000 4 270 3660 5400 3600 sane_get_option_descriptor()\001 -4 0 -1 0 0 17 18 0.0000 4 150 735 4200 5700 - use:\001 -4 0 -1 0 0 17 18 0.0000 4 270 4080 4500 6900 repeatedly until read returns EOF\001 -4 0 -1 0 0 16 18 0.0000 4 270 2805 5400 6000 sane_get_parameters()\001 -4 0 -1 0 0 16 18 0.0000 4 270 1440 5400 6450 sane_read()\001 -4 0 -1 0 0 16 18 0.0000 4 270 1935 4200 8100 - sane_cancel()\001 -4 0 -1 0 0 16 18 0.0000 4 270 1500 3000 1200 - sane_init()\001 -4 0 -1 0 0 16 18 0.0000 4 270 1590 3000 9300 - sane_exit()\001 -4 0 -1 0 0 17 18 0.0000 4 270 4845 3600 1800 - pick desired device, possibly by using\001 -4 0 -1 0 0 16 18 0.0000 4 270 1770 3600 2700 - sane_open()\001 -4 0 -1 0 0 16 18 0.0000 4 270 1800 3600 8700 - sane_close()\001 -4 0 -1 0 0 16 18 0.0000 4 270 2415 4800 2175 sane_get_devices()\001 -4 0 -1 8 0 17 18 0.0000 4 270 2070 10575 6600 image acquisition\001 -4 0 -1 8 0 17 18 0.0000 4 270 1500 10575 3825 device setup\001 diff --git a/doc/figs/hierarchy.fig b/doc/figs/hierarchy.fig deleted file mode 100644 index 5545b8d95..000000000 --- a/doc/figs/hierarchy.fig +++ /dev/null @@ -1,79 +0,0 @@ -#FIG 3.1 -Landscape -Center -Inches -1200 2 -6 10500 4500 12300 5400 -2 2 0 2 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 - 10650 4785 12150 4785 12150 5385 10650 5385 10650 4785 -4 1 -1 0 0 16 18 0.0000 4 210 660 11399 5182 qcam\001 --6 -6 7200 4500 9000 5400 -2 2 0 2 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 - 7350 4785 8850 4785 8850 5385 7350 5385 7350 4785 -4 1 -1 0 0 16 18 0.0000 4 270 315 8099 5182 hp\001 --6 -2 2 0 2 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 - 2250 1185 3750 1185 3750 1785 2250 1785 2250 1185 -2 2 0 2 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 - 450 2985 1950 2985 1950 3585 450 3585 450 2985 -2 2 0 2 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 - 2250 2985 3750 2985 3750 3585 2250 3585 2250 2985 -2 2 0 2 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 - 4050 2985 5550 2985 5550 3585 4050 3585 4050 2985 -2 2 0 2 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 - 8850 1185 10350 1185 10350 1785 8850 1785 8850 1185 -2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2 - 2700 1800 1200 3000 -2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2 - 3000 1800 3000 3000 -2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2 - 3300 1800 4800 3000 -2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2 - 9600 1800 9600 2100 -2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2 - 9450 2700 8100 4800 -2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2 - 11400 4200 11400 4800 -2 2 0 0 0 0 10 0 2 0.000 0 0 -1 0 0 5 - 5700 3825 300 3825 300 300 5700 300 5700 3825 -2 2 0 0 0 0 10 0 2 0.000 0 0 -1 0 0 5 - 12300 5550 7200 5550 7200 300 12300 300 12300 5550 -2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2 - 1200 3600 1200 4200 -2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2 - 3000 3600 3000 4125 -2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2 - 7875 5400 7350 5850 -2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2 - 8250 5400 8775 5850 -2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2 - 11475 5400 11475 5850 -2 2 0 2 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 - 8850 2100 10350 2100 10350 2700 8850 2700 8850 2100 -2 2 0 2 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 - 10650 3600 12150 3600 12150 4200 10650 4200 10650 3600 -2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2 - 9750 2700 11400 3600 -3 2 0 1 -1 7 0 0 -1 0.000 0 0 0 7 - 4800 3600 4275 4500 5025 5475 6150 4575 6525 1350 9450 900 - 9600 1200 - 0.00 0.00 4390.23 4024.37 4258.98 4249.38 4300.21 4894.51 - 4554.60 5418.20 5575.94 5541.53 5962.09 4914.18 6573.46 3810.63 - 5758.15 2145.68 7223.99 624.74 8573.68 446.85 9524.49 938.52 - 9561.99 1013.52 0.00 0.00 -4 1 -1 0 0 16 18 0.0000 4 210 525 1199 3382 pnm\001 -4 1 -1 0 0 16 18 0.0000 4 210 870 2999 3382 mustek\001 -4 1 -1 0 0 17 14 0.0000 4 210 855 1200 4425 pnm files\001 -4 1 -1 0 0 17 14 0.0000 4 120 765 3000 4380 scanner\001 -4 1 -1 0 0 17 14 0.0000 4 150 945 7350 6165 scanner 1\001 -4 1 -1 0 0 17 14 0.0000 4 150 945 8925 6165 scanner 2\001 -4 1 -1 0 0 17 14 0.0000 4 165 1290 11475 6135 video camera\001 -4 1 -1 0 0 17 14 0.0000 4 165 1035 3000 600 machine A\001 -4 1 -1 0 0 17 14 0.0000 4 165 1020 9600 630 machine B\001 -4 1 -1 0 0 17 14 0.0000 4 165 1860 4725 5850 network connection\001 -4 1 -1 0 0 16 18 0.0000 4 210 285 2999 1582 dll\001 -4 1 -1 0 0 16 18 0.0000 4 195 390 4799 3382 net\001 -4 1 -1 0 0 16 18 0.0000 4 210 735 9599 1582 saned\001 -4 1 -1 0 0 16 18 0.0000 4 210 285 9599 2482 dll\001 -4 1 -1 0 0 16 18 0.0000 4 210 960 11399 3982 autolum\001 diff --git a/doc/figs/image-data.fig b/doc/figs/image-data.fig deleted file mode 100644 index d52a90eee..000000000 --- a/doc/figs/image-data.fig +++ /dev/null @@ -1,63 +0,0 @@ -#FIG 3.1 -Portrait -Center -Inches -1200 2 -6 1725 450 5925 1650 -6 1800 975 3150 1350 -2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 - 1800 1200 3150 1200 3150 1350 1800 1350 1800 1200 -4 0 -1 0 0 16 12 0.0000 4 135 1260 1875 1125 7 6 5 4 3 2 1 0\001 --6 -6 3150 975 4500 1350 -2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 - 3150 1200 4500 1200 4500 1350 3150 1350 3150 1200 -4 0 -1 0 0 16 12 0.0000 4 135 1260 3225 1125 7 6 5 4 3 2 1 0\001 --6 -6 4500 975 5850 1350 -2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 - 4500 1200 5850 1200 5850 1350 4500 1350 4500 1200 -4 0 -1 0 0 16 12 0.0000 4 135 1260 4575 1125 7 6 5 4 3 2 1 0\001 --6 -2 2 0 2 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 - 1800 1200 5850 1200 5850 1350 1800 1350 1800 1200 -2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 7 - 1800 900 1950 825 3750 825 3825 750 3900 825 5700 825 - 5850 900 -4 0 -1 0 0 16 12 0.0000 4 105 60 2475 1575 r\001 -4 1 -1 0 0 16 12 0.0000 4 150 105 3825 1575 g\001 -4 1 -1 0 0 16 12 0.0000 4 135 105 5175 1575 b\001 -4 1 -1 0 0 16 12 0.0000 4 180 555 3825 600 pixel 0\001 --6 -6 5850 975 7200 1350 -2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 - 5850 1200 7200 1200 7200 1350 5850 1350 5850 1200 -4 0 -1 0 0 16 12 0.0000 4 135 1260 5925 1125 7 6 5 4 3 2 1 0\001 --6 -6 7200 975 8550 1350 -2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 - 7200 1200 8550 1200 8550 1350 7200 1350 7200 1200 -4 0 -1 0 0 16 12 0.0000 4 135 1260 7275 1125 7 6 5 4 3 2 1 0\001 --6 -6 8550 975 9900 1350 -2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 - 8550 1200 9900 1200 9900 1350 8550 1350 8550 1200 -4 0 -1 0 0 16 12 0.0000 4 135 1260 8625 1125 7 6 5 4 3 2 1 0\001 --6 -2 2 0 2 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 - 5850 1200 9900 1200 9900 1350 5850 1350 5850 1200 -2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 7 - 5850 900 6000 825 7800 825 7875 750 7950 825 9750 825 - 9900 900 -4 0 -1 0 0 16 12 0.0000 4 105 60 6525 1575 r\001 -4 1 -1 0 0 16 12 0.0000 4 150 105 7875 1575 g\001 -4 1 -1 0 0 16 12 0.0000 4 135 105 9225 1575 b\001 -4 1 -1 0 0 16 12 0.0000 4 180 555 7875 600 pixel 1\001 -4 1 -1 0 0 16 12 0.0000 4 180 525 9225 1950 byte 5\001 -4 1 -1 0 0 16 12 0.0000 4 180 525 7875 1950 byte 4\001 -4 1 -1 0 0 16 12 0.0000 4 180 525 6525 1950 byte 3\001 -4 1 -1 0 0 16 12 0.0000 4 180 525 5175 1950 byte 2\001 -4 1 -1 0 0 16 12 0.0000 4 180 465 3825 1950 byte1\001 -4 1 -1 0 0 16 12 0.0000 4 180 465 2475 1950 byte0\001 -4 1 -1 0 0 16 12 0.0000 4 15 180 10050 1275 ....\001 -4 2 -1 0 0 16 12 0.0000 4 135 240 1725 1125 bit:\001 diff --git a/doc/figs/xfer.fig b/doc/figs/xfer.fig deleted file mode 100644 index c4d8921d9..000000000 --- a/doc/figs/xfer.fig +++ /dev/null @@ -1,32 +0,0 @@ -#FIG 3.1 -Portrait -Center -Inches -1200 2 -6 2325 3150 8175 3750 -2 1 0 2 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 - 2 1 2.00 120.00 240.00 - 2400 3300 8100 3300 -2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 - 2 1 2.00 120.00 240.00 - 8100 3375 2400 3675 --6 -6 2325 3600 8175 4200 -2 1 0 2 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 - 2 1 2.00 120.00 240.00 - 2400 3750 8100 3750 -2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 - 2 1 2.00 120.00 240.00 - 8100 3825 2400 4125 --6 -2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 - 2250 3150 8250 3150 8250 6150 2250 6150 2250 3150 -2 1 0 2 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 - 2 1 2.00 120.00 240.00 - 2400 4200 8100 4200 -2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 - 2 1 2.00 120.00 240.00 - 8100 4275 2400 4575 -2 1 0 2 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 - 2 1 2.00 120.00 240.00 - 2400 4650 8100 4650 diff --git a/doc/icons/contents.gif b/doc/icons/contents.gif deleted file mode 100644 index 7b3c904b2..000000000 Binary files a/doc/icons/contents.gif and /dev/null differ diff --git a/doc/icons/index.gif b/doc/icons/index.gif deleted file mode 100644 index b9b3108aa..000000000 Binary files a/doc/icons/index.gif and /dev/null differ diff --git a/doc/icons/next.gif b/doc/icons/next.gif deleted file mode 100644 index 7a2dbe955..000000000 Binary files a/doc/icons/next.gif and /dev/null differ diff --git a/doc/icons/next_gr.gif b/doc/icons/next_gr.gif deleted file mode 100644 index 1416b1c10..000000000 Binary files a/doc/icons/next_gr.gif and /dev/null differ diff --git a/doc/icons/previous.gif b/doc/icons/previous.gif deleted file mode 100644 index aef90f1fc..000000000 Binary files a/doc/icons/previous.gif and /dev/null differ diff --git a/doc/icons/previous_gr.gif b/doc/icons/previous_gr.gif deleted file mode 100644 index c6acaabc9..000000000 Binary files a/doc/icons/previous_gr.gif and /dev/null differ diff --git a/doc/icons/references.gif b/doc/icons/references.gif deleted file mode 100644 index 68c6331fe..000000000 Binary files a/doc/icons/references.gif and /dev/null differ diff --git a/doc/icons/references_gr.gif b/doc/icons/references_gr.gif deleted file mode 100644 index 682548c06..000000000 Binary files a/doc/icons/references_gr.gif and /dev/null differ diff --git a/doc/icons/up.gif b/doc/icons/up.gif deleted file mode 100644 index 3d1aebf32..000000000 Binary files a/doc/icons/up.gif and /dev/null differ diff --git a/doc/icons/up_gr.gif b/doc/icons/up_gr.gif deleted file mode 100644 index a8b463aef..000000000 Binary files a/doc/icons/up_gr.gif and /dev/null differ diff --git a/doc/net.tex b/doc/net.tex deleted file mode 100644 index d6bc110d5..000000000 --- a/doc/net.tex +++ /dev/null @@ -1,479 +0,0 @@ -\chapter{Network Protocol}\label{chap:net} - -The SANE interface has been designed to facilitate network access to -image acquisition devices. In particular, most SANE implementations -are expected to support a network backend (net client) and a -corresponding network daemon (net server) that allows accessing image -acquisition devices through a network connection. Network access is -useful in several situations: -\begin{itemize} - -\item To provide controlled access to resources that are inaccessible - to a regular user. For example, a user may want to access a device - on a host where she has no account on. With the network protocol, - it is possible to allow certain users to access scanners without - giving them full access to the system. - - Controlling access through the network daemon can be useful even in - the local case: for example, certain backends may require root - privileges to access a device. Rather than installing each frontend - as setuid-root, a system administrator could instead install the - SANE network daemon as setuid-root. This enables regular users to - access the privileged device through the SANE daemon (which, - presumably, supports a more fine-grained access control mechanism - than the simple setuid approach). This has the added benefit that - the system administrator only needs to trust the SANE daemon, not - each and every frontend that may need access to the privileged - device. - -\item Network access provides a sense of ubiquity of the available - image acquisition devices. For example, in a local area network - environment, this allows a user to log onto any machine and have - convenient access to any resource available to any machine on the - network (subject to permission constraints). - -\item For devices that do not require physical access when used (e.g., - video cameras), network access allows a user to control and use - these devices without being in physical proximity. Indeed, if such - devices are connected to the Internet, access from any place in the - world is possible. - -\end{itemize} - -The network protocol described in this chapter has been design with -the following goals in mind: -\begin{enumerate} - -\item Image transmission should be efficient (have low encoding - overhead). - -\item Accessing option descriptors on the client side must be - efficient (since this is a very common operation). - -\item Other operations, such as setting or inquiring the value of an - option are less performance critical since they typically require - explicit user action. - -\item The network protocol should be simple and easy to implement on - any host architecture and any programming language. - -\end{enumerate} -The SANE protocol can be run across any transport protocol that -provides reliable data delivery. While SANE does not specify a -specific transport protocol, it is expected that TCP/IP will be among -the most commonly used protocols. - -\section{Data Type Encoding} - -\subsection{Primitive Data Types} - -The four primitive types of the SANE standard are encoded as follows: -\begin{description} - -\item[\code{\defn{SANE\_Byte}}:] A byte is encoded as an 8 bit value. - Since the transport protocol is assumed to be byte-orientd, the bit - order is irrelevant. - -\item[\code{\defn{SANE\_Word}}:] A word is encoded as 4 bytes (32 - bits). The bytes are ordered from most-significant to - least-significant byte (big-endian byte-order). - -\item[\code{\defn{SANE\_Char}}:] A character is currently encoded as an 8-bit - ISO LATIN-1 value. An extension to support wider character sets (16 or 32 - bits) is planned for the future, but not supported at this point. - -\item[\code{\defn{SANE\_String}}:] A string pointer is encoded as a - \code{SANE\_Char} array. The trailing NUL byte is considered part - of the array and a \code{NULL} pointer is encoded as a zero-length - array. - -\item[\code{\defn{SANE\_Handle}}:] A handle is encoded like a word. - The network backend needs to take care of converting these integer - values to the opaque pointer values that are presented to the user - of the network backend. Similarly, the SANE daemon needs to take - care of converting the opaque pointer values it receives from its - backends into 32-bit integers suitable for use for network encoding. - -\item[{\em\defn{enumeration types}}:] Enumeration types are encoded - like words. - -\end{description} - -\subsection{Type Constructors} - -Closely following the type constructors of the C language, the SANE network -protocol supports the following four constructors: -\begin{description} - -\item[{\em\defn{pointer}}:] A pointer is encoded by a word that indicates - whether the pointer is a NULL-pointer which is then followed by the - value that the pointer points to (in the case of a non-NULL pointer; - in the case of a NULL pointer, no bytes are encoded for the pointer - value). - -\item[{\em\defn{array}}:] An array is encoded by a word that indicates - the length of the array followed by the values of the elements in - the array. The length may be zero in which case no bytes are - encoded for the element values. - -\item[{\em\defn{structure}}:] A structure is encoded by simply encoding the - structure members in the order in which they appear in the - corresponding C type declaration. - -\item[{\em\defn{union}}:] A union must always be accompanied by a tag - value that indicates which of the union members is the currently the - active one. For this reason, the union itself is encoded simply by - encoding the value of the currently active member. - -\end{description} - -Note that for type constructors, the pointer, element, or member -values themselves may have a constructed type. Thus, the above rules -should be applied recursively until a sequence of primitive types has -been found. - -Also SANE had no need for encoding of circular structures. This -greatly simplifies the network protocol. - -\section{Remote Procedure Call Requests} - -The SANE network protocol is a client/server-style remote procedure -call (RPC) protocol. This means that all activity is initiated by the -client side (the network backend)---a server is restricted to -answering requests sent by the client. - -The data transferred from the client to the server is comprised of the RPC code -(as a \code{SANE\_WORD}), followed by arguments defined in the {\bf request} -column below. The format of the server's answer is given in the {\bf reply} -column. - -\subsection{\code{\defn{SANE\_NET\_INIT}}} - -RPC Code: 0 - -This RPC establishes a connection to a particular SANE network daemon. -It must be the first call in a SANE network session. The parameter -and reply arguments for this call are shown in the table below: -\begin{center} -\begin{tabular}{ll} - {\bf request:} & {\bf reply:} \\ - \code{SANE\_Word version\_code} & \code{SANE\_Word status} \\ - \code{SANE\_String user\_name} & \code{SANE\_Word version\_code} \\ -\end{tabular} -\end{center} -The \code{version\_code} argument in the request is the SANE -version-code of the network backend that is contacting the network -daemon (see Section~\ref{sec:saneversioncode}). The -``build-revision'' in the version code is used to hold the network -protocol version. The SANE network daemon receiving such a request -must make sure that the network protocol version corresponds to a -supported version since otherwise the encoding of the network stream -may be incompatible (even though the SANE interface itself may be -compatible). The \code{user\_name} argument is the name of the user -on whose behalf this call is being performed. If the network backend -cannot determine a user-name, it passes a \code{NULL} pointer for this -argument. No trust should be placed in the authenticity of this -user-name. The intent of this string is to provide more convenience -to the user. E.g., it could be used as the default-user name in -subsequent authentication calls. - -In the reply, \code{status} indicates the completion status. If the -value is anything other than \code{SANE\_STA\-TUS\_GOOD}, the -remainder of the reply has undefined values.\footnote{The sane network - daemon should be careful not to leak information in the undefined - portion of the reply.} The \code{version\_code} argument returns the -SANE version-code that the network daemon supports. See the comments -in the previous paragraph on the meaning of the build-revision in this -version code. - -\subsection{\code{\defn{SANE\_NET\_GET\_DEVICES}}} - -RPC Code: 1 - -This RPC is used to obtain the list of devices accessible by the SANE -daemon. -\begin{center} -\begin{tabular}{ll} - {\bf request:} & {\bf reply:} \\ - \code{void} & \code{SANE\_Word status} \\ - & \code{SANE\_Device ***device\_list} \\ -\end{tabular} -\end{center} -There are no arguments in the request for this call. - -In the reply, \code{status} indicates the completion status. If the -value is anything other than \code{SANE\_STA\-TUS\_GOOD}, the -remainder of the reply has undefined values. The \code{device\_list} -argument is a pointer to a \code{NULL}-terminated array of -\code{SANE\_Device} pointers. - -\subsection{\code{\defn{SANE\_NET\_OPEN}}} - -RPC Code: 2 - -This RPC is used to open a connection to a remote SANE device. -\begin{center} -\begin{tabular}{ll} - {\bf request:} & {\bf reply:} \\ - \code{SANE\_String device\_name} & \code{SANE\_Word status} \\ - & \code{SANE\_Word handle} \\ - & \code{SANE\_String resource} \\ -\end{tabular} -\end{center} -The \code{device\_name} argument specifies the name of the device to -open. - -In the reply, \code{status} indicates the completion status. If the -value is anything other than \code{SANE\_STA\-TUS\_GOOD}, the -remainder of the reply has undefined values. The \code{handle} -argument specifies the device handle that uniquely identifies the -connection. The \code{resource} argument is used to request -authentication. If it has a non-\code{NULL} value, the network -backend should authenticate the specified resource and then retry this -operation (see Section~\ref{sec:authorization} for details on how to -authorize a resource). - -\subsection{\code{\defn{SANE\_NET\_CLOSE}}} - -RPC Code: 3 - -This RPC is used to close a connection to a remote SANE device. -\begin{center} -\begin{tabular}{ll} - {\bf request:} & {\bf reply:} \\ - \code{SANE\_Word handle} & \code{SANE\_Word dummy} \\ -\end{tabular} -\end{center} -The \code{handle} argument identifies the connection that should be -closed. - -In the reply, the \code{dummy} argument is unused. Its purpose is to -ensure proper synchronization (without it, a net client would not be -able to determine when the RPC has completed). - -\subsection{\code{\defn{SANE\_NET\_GET\_OPTION\_DESCRIPTORS}}} - -RPC Code: 4 - -This RPC is used to obtain {\em all\/} the option descriptors for a -remote SANE device. -\begin{center} -\begin{tabular}{ll} - {\bf request:} & {\bf reply:} \\ - \code{SANE\_Word handle} & \code{Option\_Descriptor\_Array odesc} \\ -\end{tabular} -\end{center} -The \code{handle} argument identifies the remote device whose option -descriptors should be obtained. - -In the reply, the \code{odesc} argument is used to return the array of -option descriptors. The option descriptor array has the following -structure: -\begin{quote}\index{Option\_Descriptor\_Array} -\begin{verbatim} -struct Option_Descriptor_Array - { - SANE_Word num_options; - SANE_Option_Descriptor **desc; - }; -\end{verbatim} -\end{quote} - - -\subsection{\code{\defn{SANE\_NET\_CONTROL\_OPTION}}} - -RPC Code: 5 - -This RPC is used to control (inquire, set, or set to automatic) a -specific option of a remote SANE device. -\begin{center} -\begin{tabular}{ll} - {\bf request:} & {\bf reply:} \\ - \code{SANE\_Word handle} & \code{SANE\_Status status} \\ - \code{SANE\_Word option} & \code{SANE\_Word info} \\ - \code{SANE\_Word action} & \code{SANE\_Word value\_type} \\ - \code{SANE\_Word value\_type} & \code{SANE\_Word value\_size} \\ - \code{SANE\_Word value\_size} & \code{void *value} \\ - \code{void *value} & \code{SANE\_String *resource} \\ -\end{tabular} -\end{center} -The \code{handle} argument identifies the remote device whose option -should be controlled. Argument \code{option} is the number (index) of -the option that should be controlled. Argument \code{action} -specifies what action should be taken (get, set, or set automatic). -Argument \code{value\_type} specifies the type of the option value -(must be one of \code{SANE\_TYPE\_BOOL}, \code{SANE\_TYPE\_INT}, -\code{SANE\_TYPE\_FIXED}, \code{SANE\_TYPE\_STR\-ING}, -\code{SANE\_TYPE\_BUTTON}). Argument \code{value\_size} specifies -the size of the option value in number of bytes (see -Section~\ref{sec:valuesize} for the precise meaning of this value). -Finally, argument \code{value} is a pointer to the option value. It -must be a writeable area that is at least \code{value\_size} bytes -large. (Note that this area must be writable even if the action is to -set the option value. This is because the backend may not be able to -set the exact option value, in which case the option value is used to -return the next best value that the backend has chosen.) - -In the reply, argument \code{resource} is set to the name of the -resource that must be authorized before this call can be retried. If -this value is non-\code{NULL}, all other arguments have undefined -values (see Section~\ref{sec:authorization} for details on how to -authorize a resource). Argument \code{status} indicates the -completion status. If the value is anything other than -\code{SANE\_STA\-TUS\_GOOD}, the remainder of the reply has undefined -values. The \code{info} argument returns the information on how well -the backend was able to satisfy the request. For details, see the -description of the corresponding argument in -Section~\ref{sec:control}. Arguments \code{value\_type} and -\code{value\_size} have the same values as the arguments by the same -name in corresponding request. The values are repeated here to ensure -that both the request and the reply are self-contained (i.e., they can -be encoded and decoded independently). Argument \code{value} is holds -the value of the option that has become effective as a result of this -RPC. - - -\subsection{\code{\defn{SANE\_NET\_GET\_PARAMETERS}}} - -RPC Code: 6 - -This RPC is used to obtain the scan parameters of a remote SANE -device. -\begin{center} -\begin{tabular}{ll} - {\bf request:} & {\bf reply:} \\ - \code{SANE\_Word handle} & \code{SANE\_Status status} \\ - & \code{SANE\_Parameters params} \\ -\end{tabular} -\end{center} -The \code{handle} argument identifies the connection to the remote -device whose scan parameters should be returned. - -In the reply, \code{status} indicates the completion status. If the -value is anything other than \code{SANE\_STA\-TUS\_GOOD}, the -remainder of the reply has undefined values. The argument -\code{params} is used to return the scan parameters. - -\subsection{\code{\defn{SANE\_NET\_START}}} - -RPC Code: 7 - -This RPC is used to start image acquisition (scanning). -\begin{center} -\begin{tabular}{ll} - {\bf request:} & {\bf reply:} \\ - \code{SANE\_Word handle} & \code{SANE\_Status status} \\ - & \code{SANE\_Word port} \\ - & \code{SANE\_Word byte\_order} \\ - & \code{SANE\_String resource} \\ -\end{tabular} -\end{center} -The \code{handle} argument identifies the connection to the remote -device from which the image should be acquired. - -In the reply, argument \code{resource} is set to the name of the -resource that must be authorized before this call can be retried. If -this value is non-\code{NULL}, all other arguments have undefined -values (see Section~\ref{sec:authorization} for details on how to -authorize a resource). Argument, \code{status} indicates the -completion status. If the value is anything other than -\code{SANE\_STA\-TUS\_GOOD}, the remainder of the reply has -undefined values. The argument \code{port} returns the port number -from which the image data will be available. To read the image data, -a network client must connect to the remote host at the indicated port -number. Through this port, the image data is transmitted as a -sequence of data records. Each record starts with the data length in -bytes. The data length is transmitted as a sequence of four bytes. -These bytes should be interpreted as an unsigned integer in big-endian -format. The four length bytes are followed by the number of data -bytes indicated by the length. Except for byte-order, the data is in -the same format as defined for \code{sane\_read()}. Since some -records may contain no data at all, a length value of zero is -perfectly valid. The special length value of \code{0xffffffff} is -used to indicate the end of the data stream. That is, after receiving -a record length of \code{0xffffffff}, the network client should close -the data connection and stop reading data. - -Argument \code{byte\_order} specifies the byte-order of the image -data. A value of 0x1234 indicates little-endian format, a value of -0x4321 indicates big-endian format. All other values are presently -undefined and reserved for future enhancements of this protocol. The -intent is that a network server sends data in its own byte-order and -the client is responsible for adjusting the byte-order, if necessary. -This approach causes no unnecessary overheads in the case where the -server and client byte-order match and puts the extra burden on the -client side when there is a byte-order mismatch. Putting the burden -on the client-side improves the scalability properties of this -protocol. - -\subsection{\code{\defn{SANE\_NET\_CANCEL}}} - -RPC Code: 8 - -This RPC is used to cancel the current operation of a remote SANE -device. -\begin{center} -\begin{tabular}{ll} - {\bf request:} & {\bf reply:} \\ - \code{SANE\_Word handle} & \code{SANE\_Word dummy} \\ -\end{tabular} -\end{center} -The \code{handle} argument identifies the connection whose operation -should be cancelled. - -In the reply, the \code{dummy} argument is unused. Its purpose is to -ensure proper synchronization (without it, a net client would not be -able to determine when the RPC has completed). - -\subsection{\code{\defn{SANE\_NET\_AUTHORIZE}}}\label{sec:authorization} -\index{network authorization} - -RPC Code: 9 - -This RPC is used to pass authorization data from the net client to the -net server. -\begin{center} -\begin{tabular}{ll} - {\bf request:} & {\bf reply:} \\ - \code{SANE\_String resource} & \code{SANE\_Word dummy} \\ - \code{SANE\_String username} & \\ - \code{SANE\_String password} & \\ -\end{tabular} -\end{center} -The \code{resource} argument specifies the name of the resource to be -authorized. This argument should be set to the string returned in the -\code{resource} argument of the RPC reply that required this -authorization call. The \code{username} and \code{password} are the -name of the user that is accessing the resource and the password for -the specified resource/user pair. - -Since the password is not encrypted during network transmission, it is -recommended to use the following extension: - -If the server adds the string `\code{\$MD5\$}' to the resource-name followed -by a random string not longer then 128 bytes, the client may answer with the -MD5 digest of the concatenation of the password and the random string. To -differentiate between the MD5 digest and a strange password the client prepends -the MD5 digest with the string `\code{\$MD5\$}'. - -In the reply, \code{dummy} is completely unused. Note that there is -no direct failure indication. This is unnecessary since a net client -will retry the RPC that resulted in the authorization request until -that call succeeds (or until the request is cancelled). The RPC that resulted -in the authorization request continues after the reply from the client and may -fail with \code{SANE\_STATUS\_ACCESS\_DENIED}. - - -\subsection{\code{\defn{SANE\_NET\_EXIT}}} - -RPC Code: 10 - -This RPC is used to disconnect a net client from a net server. There -are no request or reply arguments in this call. As a result of this -call, the connection between the client and the server that was -established by the \code{SANE\_NET\_INIT} call will be closed. - -% Local Variables: -% mode: latex -% TeX-master: "sane.tex" -% End: diff --git a/doc/sane-fujitsu.man b/doc/sane-fujitsu.man index ccc3d896e..400a35eec 100644 --- a/doc/sane-fujitsu.man +++ b/doc/sane-fujitsu.man @@ -1,4 +1,4 @@ -.TH sane\-fujitsu 5 "08 Apr 2017" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" +.TH sane\-fujitsu 5 "07 Feb 2020" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" .IX sane\-fujitsu .SH NAME @@ -10,7 +10,7 @@ The library implements a SANE (Scanner Access Now Easy) backend which provides access to most Fujitsu flatbed and ADF scanners. -This document describes backend version 134, which shipped with SANE 1.0.28. +This document describes backend version 136, which shipped with SANE 1.0.30. .SH SUPPORTED HARDWARE This version supports every known model which speaks the Fujitsu SCSI and @@ -54,7 +54,7 @@ Effort has been made to expose all hardware options, including: source s .RS Selects the source for the scan. Options -may include "Flatbed", "ADF Front", "ADF Back", "ADF Duplex". +may include "Flatbed", "ADF Front", "ADF Back", "ADF Duplex", "Card Front", "Card Back", "Card Duplex". .RE .PP mode m diff --git a/doc/sane-pixma.man b/doc/sane-pixma.man index 7365e8184..8c617d2ed 100644 --- a/doc/sane-pixma.man +++ b/doc/sane-pixma.man @@ -1,4 +1,4 @@ -.TH "sane\-pixma" "5" "28 Dec 2019" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" +.TH "sane\-pixma" "5" "13 Feb 2020" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" .IX sane\-pixma .SH NAME sane\-pixma \- SANE backend for Canon Multi-Function Printers and CanoScan Scanners @@ -71,9 +71,9 @@ imageCLASS D420, D480, D530, D570 .br i-SENSYS MF210, MF230, MF240, MF620, MF630, MF640, MF645C, MF730 .br -i-SENSYS MF731/733, MF3010MF4320d, MF4330d, MF4500, MF4700 +i-SENSYS MF731/733, MF741/743, MF3010, MF4320d, MF4330d, MF4500 .br -i-SENSYS MF4800, MF6100, MF8030, MF8200C, MF8300 +i-SENSYS MF4700, MF4800, MF6100, MF8030, MF8200C, MF8300 .br imageRUNNER 1020/1024/1025, 1133 .br @@ -81,7 +81,7 @@ CanoScan 8800F, 9000F, 9000F Mark II .br CanoScan LiDE 300, 400 .br -MAXIFY MB2000, MB2100, MB2300, MB2700, MB5000, MB5400 +MAXIFY MB2000, MB2100, MB2300, MB2700, MB5000, MB5100, MB5400 .RE .PP The following models are not well tested and/or the scanner sometimes hangs @@ -129,7 +129,7 @@ i-SENSYS MF110, MF220, MF260, MF410, MF420, MF510, MF520, MF740 .br i-SENSYS MF5880dn, MF5900, MF6680dn, MF8500C .br -MAXIFY MB5100, MB5300 +MAXIFY MB5300 .RE .PP The following models may use partly the same Pixma protocol as other devices diff --git a/doc/sane.man b/doc/sane.man index a9fd50a37..265904d9f 100644 --- a/doc/sane.man +++ b/doc/sane.man @@ -1,4 +1,4 @@ -.TH sane 7 "14 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" +.TH sane 7 "03 Jan 2020" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" .IX sane .SH NAME @@ -40,9 +40,8 @@ provides some means to manage one or more other backends. .SH "SOFTWARE PACKAGES" The package .RB ` sane\-backends ' -contains a lot of backends, documentation (including the -.B SANE -standard), networking support, and the command line frontend +contains a lot of backends, documentation, networking support, and the +command line frontend .RB ` scanimage '. The frontends .RB ` xscanimage "', `" xcam "', and `" scanadf ' @@ -65,7 +64,7 @@ A name with a number in parenthesis (e.g. points to a manual page. In this case .RB ` "man 5 sane\-dll" ' will display the page. Entries like -.RI ` @DOCDIR@/sane.tex ' +.RI ` @DOCDIR@/README ' are references to text files that were copied to the .B SANE documentation directory @@ -238,8 +237,6 @@ for details. This is a SANE backend for Nikon Coolscan film-scanners. See .BR sane\-coolscan2 (5) -or -.I http://coolscan2.sourceforge.net for details. .TP .B epjitsu @@ -421,10 +418,10 @@ SCSI flatbed scanners. See for details. .TP .B pixma -The pixma backend supports Canon PIXMA MP series (multi-function devices). See +The pixma backend supports Canon PIXMA MP series (multi-function devices), +Canon imageCLASS series (laser devices), Canon MAXIFY series and some Canon +CanoScan series. See .BR sane\-pixma (5) -or -.I http://home.arcor.de/wittawat/pixma/ for details. .TP .B plustek @@ -667,14 +664,7 @@ The .B SANE standard defines the application programming interface (API) that is used to communicate between frontends and backends. It can be found at -.I @DOCDIR@/sane.ps -(if latex is installed on your system) and on the -.B SANE -website: -.I http://www.sane\-project.org/html/ -(HTML), or -.I http://www.sane\-project.org/sane.ps -(Postscript). +.I http://sane\-project.gitlab.io/standard/ . .PP There is some more information for programmers in .IR @DOCDIR@/backend\-writing.txt . @@ -714,7 +704,7 @@ support dynamic loading). .TP .I @DOCDIR@/* .B SANE -documentation: The standard, READMEs, text files for backends etc. +documentation: The READMEs, text files for backends etc. .SH "PROBLEMS" If your device isn't found but you know that it is supported, make diff --git a/doc/sane.tex b/doc/sane.tex deleted file mode 100644 index 71ff6fc31..000000000 --- a/doc/sane.tex +++ /dev/null @@ -1,1892 +0,0 @@ -\documentclass[11pt]{report} - -\usepackage{times,graphicx,url} -% Not Currently using changebar package so comment out to reduce -% external dependencies. -%\usepackage{changebar} - -\setlength{\parindent}{0pt} -\setlength{\parskip}{1.5ex plus 0.5ex minus 0.5ex} -\setlength{\textwidth}{6.5in} -\setlength{\textheight}{8.5in} -\setlength{\marginparwidth}{0pt} -\setlength{\oddsidemargin}{0pt} -\setlength{\evensidemargin}{0pt} -\setlength{\marginparsep}{0pt} -\addtolength{\topmargin}{-0.75in} - -\title{\huge SANE Standard Version 1.06} -\author{} -\date{2008-05-03} - -\makeindex - -\begin{document} - -\newcommand{\filename}[1]{{\tt #1}} -\newcommand{\code}[1]{{\tt #1}} -\newcommand{\var}[1]{{\it #1}} -\newcommand{\defn}[1]{#1\index{#1}} - -% Uncomment if adding changebars to text -%\begin{latexonly} -% \setcounter{changebargrey}{0} % black change bars -%\end{latexonly} - -\maketitle -\tableofcontents -\listoffigures -\listoftables - - -\chapter{Preface} - -The SANE standard is being developed by a group of free-software -developers. The process is open to the public and comments as well as -suggestions for improvements are welcome. Information on how to join -the SANE development process can be found in Chapter -\ref{chap:contact}. - -The SANE standard is intended to streamline software development by -providing a standard application programming interface to access -raster scanner hardware. This should reduce the number of different -driver implementations, thereby reducing the need for reimplementing -similar code. - - -\section{About This Document} - -This document is intended for developers who are creating either an -application that requires access to raster scanner hardware and for -developers who are implementing a SANE driver. It does not cover -specific implementations of SANE components. Its sole purpose is to -describe and define the SANE application interface that will enable -any application on any platform to interoperate with any SANE backend -for that platform. - -The remainder of this document is organized as follows. -Chapter~\ref{chap:intro} provides introductional material. -Chapter~\ref{chap:environ} presents the environment SANE is designed -for. Chapter~\ref{chap:api} details the SANE Application Programmer -Interface. Chapter~\ref{chap:net} specifies the network protocol that -can be used to implement the SANE API in a network transparent -fashion. Finally, Chapter~\ref{chap:contact} gives information on how -to join the SANE development process. - -\subsection{Typographic Conventions} - -Changes since the last revision of this document are highlighted -like this: - -% \begin{changebar} -% Paragraphs that changed since the last revision of the documention -% are marked like this paragraph. -% \end{changebar} - -\chapter{Introduction}\label{chap:intro} - -SANE is an application programming interface (API) that provides -standardized access to any raster image scanner hardware. The -standardized interface allows to write just one driver for each -scanner device instead of one driver for each scanner and application. -The reduction in the number of required drivers provides significant -savings in development time. More importantly, SANE raises the level -at which applications can work. As such, it will enable applications -that were previously unheard of in the UNIX world. While SANE is -primarily targeted at a UNIX environment, the standard has been -carefully designed to make it possible to implement the API on -virtually any hardware or operating system. - -SANE is an acronym for ``Scanner Access Now Easy.'' Also, the hope is -that SANE is sane in the sense that it will allow easy implementation -of the API while accommodating all features required by today's -scanner hardware and applications. Specifically, SANE should be broad -enough to accommodate devices such as scanners, digital still and -video cameras, as well as virtual devices like image file filters. - -\section{Terminology} - -An application that uses the SANE interface is called a SANE {\em - frontend}. A driver that implements the SANE interface is called a -SANE {\em backend}. A {\em meta backend\/} provides some means to -manage one or more other backends. - - -\chapter{The SANE Environment}\label{chap:environ} - -SANE is defined as a C-callable library interface. Accessing a raster -scanner device typically consists of two phases: first, various -controls of the scanner need to be setup or queried. In the second -phase, one or more images are acquired. - -Since the device controls are widely different from device to device, -SANE provides a generic interface that makes it easy for a frontend to -give a user access to all controls without having to understand each -and every device control. The design principle used here is to -abstract each device control into a SANE {\em option\/}. An option is -a self-describing name/value pair. For example, the brightness -control of a camera might be represented by an option called -\code{brightness} whose value is an integer in the range from 0 to -255. - -With self-describing options, a backend need not be concerned with -{\em presentation\/} issues: the backend simply provides a list of -options that describe all the controls available in the device. -Similarly, there are benefits to the frontend: it need not be -concerned with the {\em meaning\/} of each option. It simply provides -means to present and alter the options defined by the backend. - - -\section{Attaching to a SANE backend} - -The process through which a SANE frontend connects to a backend is -platform dependent. Several possibilities exist: -\begin{itemize} - -\item {\bf Static linking:} A SANE backend may be linked directly into - a frontend. While the simplest method of attaching to a backend, it - is somewhat limited in functionality since the available devices is - limited to the ones for which support has been linked in when the - frontend was built. But even so static linking can be quite useful, - particularly when combined with a backend that can access scanners - via a network. Also, it is possible to support multiple backends - simultaneously by implementing a meta backend that manages several - backends that have been compiled in such a manner that they export - unique function names. For example, a backend called \code{be} - would normally export a function called \code{sane\_read()}. If - each backend would provide such a function, static linking would - fail due to multiple conflicting definitions of the same symbol. - This can be resolved by having backend \code{be} include a - header file that has lines of the form: - \begin{quote} -\begin{verbatim} -#define sane_read be_sane_read -\end{verbatim} - \end{quote} - With definitions of this kind, backend \code{be} will export - function name \code{be\_sane\_read()}. Thus, all backends will - export unique names. As long as a meta backend knows about these - names, it is possible to combine several backends at link time and - select and use them dynamically at runtime. - -\item {\bf Dynamic linking:} A simpler yet more powerful way to - support multiple backends is to exploit dynamic linking on platforms - that support it. In this case, a frontend is linked against a - shared library that implements any SANE backend. Since each - dynamically linked backend exports the same set of global symbols - (all starting with the prefix \code{sane\_}), the dynamic library - that gets loaded at runtime does not necessarily have to be the same - one as one the frontend got linked against. In other words, it is - possible to switch the backend by installing the appropriate backend - dynamic library. - - More importantly, dynamic linking makes it easy to implement a meta - backend that loads other backends {\em on demand}. This is a - powerful mechanism since it allows adding new backends merely by - installing a shared library and updating a configuration file. - -\item {\bf Network connection:} Arguably the ultimate way to attach to - a scanner is by using the network to connect to a backend on a - remote machine. This makes it possible to scan images from any host - in the universe, as long as there is a network connection to that - host and provided the user is permitted to access that scanner. - -\end{itemize} - -\begin{figure}[htbp] - \begin{center} - \leavevmode - \includegraphics[width=\textwidth]{figs/hierarchy} - \caption{Example SANE Hiearchy} - \label{fig:hierarchy} - \end{center} -\end{figure} - -The above discussion lists just a few ways for frontends to attach to -a backend. It is of course possible to combine these solutions to -provide an entire hierarchy of SANE backends. Such a hierarchy is -depicted in Figure~\ref{fig:hierarchy}. The figure shows that machine -A uses a dynamic-linking based meta backend called \code{dll} to -access the backends called \code{pnm}, \code{mustek}, and \code{net}. -The first two are real backends, whereas the last one is a meta -backend that provides network transparent access to remote scanners. -In the figure, machine B provides non-local access to its scanners -through the SANE frontend called \code{saned}. The \code{saned} in -turn has access to the \code{hp} and \code{autolum} backends through -another instance of the \code{dll} backend. The \code{autolum} meta -backend is used to automatically adjust the luminance (brightness) of -the image data acquired by the camera backend called \code{qcam}. - -Note that a meta backend really is both a frontend and a backend at -the same time. It is a frontend from the viewpoint of the backends -that it manages and a backend from the viewpoint of the frontends that -access it. The name ``meta backend'' was chosen primarily because the -SANE standard describes the interface from the viewpoint of a (real) -frontend. - - -\section{Image Data Format}\label{sec:imageformat}\index{image data format} - -Arguably the most important aspect of an image acquisition system is -how images are represented. The SANE approach is to define a simple -yet powerful representation that is sufficient for vast majority of -applications and devices. While the representation is simple, the -interface has been defined carefully to allow extending it in the -future without breaking backwards compatibility. Thus, it will be -possible to accommodate future applications or devices that were not -anticipated at the time this standard was created. - -A SANE image is a rectangular area. The rectangular area is -subdivided into a number of rows and columns. At the intersection of -each row and column is a quadratic pixel. A pixel consists of one or -more sample values. Each sample value represents one channel (e.g., -the red channel). Each sample value has a certain bit depth. The bit -depth is fixed for the entire image and can be as small as one bit. -Valid bit depths are 1, 8, or 16 bits per sample. If a device's -natural bit depth is something else, it is up to the driver to scale -the sample values appropriately (e.g., a 4 bit sample could be scaled -by a factor of four to represent a sample value of depth 8). - -\subsection{Image Transmission} - -The SANE API transmits an image as a sequence of frames. Each frame -covers the same rectangular area as the entire image, but may contain -only a subset of the channels in the final image. For example, a -red/green/blue image could either be transmitted as a single frame -that contains the sample values for all three channels or it could be -transmitted as a sequence of three frames: the first frame containing -the red channel, the second the green channel, and the third the blue -channel. - -Conceptually, each frame is transmitted a byte at a time. Each byte -may contain 8 sample values (for an image bit depth of 1), one full -sample value (for an image bit depth of 8), or a partial sample value -(for an image bit depth of 16 or bigger). In the latter case, the -bytes of each sample value are transmitted in the machine's native -byte order. For depth 1, the leftmost pixel is stored in the most -significant bit, and the rightmost pixel in the least significant bit. -\begin{quote} - \begin{center} - {\bf Backend Implementation Note} - \end{center} - A network-based meta backend will have to ensure that the byte order - in image data is adjusted appropriately if necessary. For example, - when the meta backend attaches to the server proxy, the proxy may - inform the backend of the server's byte order. The backend can then - apply the adjustment if necessary. In essence, this implements a - ``receiver-makes-right'' approach. -\end{quote} - -\begin{figure}[htbp] - \begin{center} - \leavevmode - \includegraphics[width=0.5\textwidth]{figs/xfer} - \caption{Transfer order of image data bytes} - \label{fig:xfer} - \end{center} -\end{figure} - -The order in which the sample values in a frame are transmitted is -illustrated in Figure~\ref{fig:xfer}. As can be seen, the values are -transmitted row by row and each row is transmitted from left-most to -right-most column. The left-to-right, top-to-bottom transmission -order applies when the image is viewed in its normal orientation (as -it would be displayed on a screen, for example). - -If a frame contains multiple channels, then the channels are -transmitted in an interleaved fashion. Figure~\ref{fig:pixels} -illustrates this for the case where a frame contains a complete -red/green/blue image with a bit-depth of 8. For a bit depth of 1, -each byte contains 8 sample values of a {\em single\/} channel. In -other words, a bit depth 1 frame is transmitted in a byte interleaved -fashion. - -\begin{figure}[htbp] - \begin{center} - \leavevmode - \includegraphics[width=0.8\textwidth]{figs/image-data} - \caption{Bit and byte order or image data} - \label{fig:pixels} - \end{center} -\end{figure} - -When transmitting an image frame by frame, the frontend needs to know -what part of the image a frame represents (and how many frames it -should expect). For that purpose, the SANE API tags every frame with -a type. This version of the SANE standard supports the following -frame types: -\begin{quote} -\begin{description} - -\item[\code{\defn{SANE\_FRAME\_GRAY}}:] The frame contains a single - channel of data that represents sample values from a spectral band - that covers the human visual range. The image consists of this - frame only. - -\item[\code{\defn{SANE\_FRAME\_RGB}}:] The frame contains three - channels of data that represent sample values from the red, green, - and blue spectral bands. The sample values are interleaved in the - order red, green, and blue. The image consists of this frame only. - -\item[\code{\defn{SANE\_FRAME\_RED}}:] The frame contains one channel - of data that represents sample values from the red spectral band. - The complete image consists of three frames: - \code{SANE\_\-FRA\-ME\_RED}, \code{SANE\_FRAME\_GREEN}, and - \code{SANE\_FRAME\_BLUE}. The order in which the frames are - transmitted chosen by the backend. - -\item[\code{\defn{SANE\_FRAME\_GREEN}}:] The frame contains one - channel of data that represents sample values from the green - spectral band. The complete image consists of three frames: - \code{SANE\_\-FRA\-ME\_RED}, \code{SANE\_FRAME\_GREEN}, and - \code{SANE\_FRAME\_BLUE}. The order in which the frames are - transmitted chosen by the backend. - -\item[\code{\defn{SANE\_FRAME\_BLUE}}:] The frame contains one channel - of data that represents sample values from the blue spectral band. - The complete image consists of three frames: - \code{SANE\_\-FRA\-ME\_RED}, \code{SANE\_FRAME\_GREEN}, and - \code{SANE\_FRAME\_BLUE}. The order in which the frames are - transmitted chosen by the backend. - -\end{description} -\end{quote} - -In frames of type \code{SANE\_FRAME\_GRAY}, when the bit depth is 1 there are -only two sample values possible, 1 represents minimum intensity -(black) and 0 represents maximum intensity (white). For all other bit -depth and frame type combinations, a sample value of 0 represents -minimum intensity and larger values represent increasing intensity. - -The combination of bit depth 1 and \code{SANE\_FRAME\_RGB} (or -\code{SANE\_FRAME\_RED}, \code{SANE\_FRAME\_GREEN}, \code{SANE\_FRAME\_BLUE}) -is rarely used and may not be supported by every frontend. - -\chapter{The SANE Application Programmer Interface (API)}\label{chap:api} - -This Section defines version 1 of the SANE application -programmer interface (API). Any SANE frontend must depend on the -interface defined in this section only. Converseley, any SANE backend -must implement its functionality in accordance with this -specification. The interface as documented here is declared as a C -callable interface in a file called \filename{sane/sane.h}. This file should -normally be included via a C pre-processor directive of the form: -\begin{verbatim} - #include -\end{verbatim} - - -\section{Version Control} - -The SANE standard is expected to evolve over time. Whenever a change -to the SANE standard is made that may render an existing frontend or -backend incompatible with the new standard, the major version number -must be increased. Thus, any frontend/backend pair is compatible -provided the major version number of the SANE standard they implement -is the same. A frontend may implement backwards compatiblity by -allowing major numbers that are smaller than the expected major number -(provided the frontend really can cope with the older version). In -contrast, a backend always provides support for one and only one -version of the standard. If a specific application does require that -two different versions of the same backend are accessible at the same -time, it is possible to do so by installing the two versions under -different names. - -SANE version control also includes a minor version number and a build -revision. While control of these numbers remains with the implementor -of a backend, the recommended use is as follows. The minor version is -incremented with each official release of a backend. The build -revision is increased with each build of a backend. - -The SANE API provides the following five macros to manage version -numbers. -\begin{quote} - \begin{description} - \item[\code{\defn{SANE\_CURRENT\_MAJOR}}:] The value of this macro is the - number of the SANE standard that the interface implements. - - \item[\code{\defn{SANE\_VERSION\_CODE}(\var{maj},\var{min},\var{bld})}:] - \label{sec:saneversioncode} - This macro can be used to build a monotonically increasing version - code. A SANE version code consists of the SANE standard major - version number (\var{maj}), the minor version number \var{min}, - and the build revision of a backend (\var{bld}). The major and - minor version numbers must be in the range 0\ldots255 and the - build revision must be in the range 0\ldots65535. - - Version codes are monotonic in the sense that it is possible to - apply relational operators (e.g., equality or less-than test) - directly on the version code rather than individually on the three - components of the version code. - - Note that the major version number alone determines whether a - frontend/backend pair is compatible. The minor version and the - build revision are used for informational and bug-fixing purposes - only. - - \item[\code{\defn{SANE\_VERSION\_MAJOR}(\var{vc})}:] This macro returns the - major version number component of the version code passed in - argument \var{vc}. - \item[\code{SANE\_VERSION\_MINOR(\var{vc})}:] This macro returns the - minor version number component of the version code passed in - argument \var{vc}. - \item[\code{SANE\_VERSION\_BUILD(\var{vc})}:] This macro returns the - build revision component of the version code passed in argument - \var{vc}. - \end{description} -\end{quote} - - -\section{Data Types} - -\subsection{Base Types} - -The SANE standard is based on just two SANE-specific base types: the -SANE byte and word. -\begin{quote} - \code{typedef \var{some-scalar-type\/} \defn{SANE\_Byte};} \\ - \code{typedef \var{some-scalar-type\/} \defn{SANE\_Word};} -\end{quote} -\verb|SANE_Byte| must correspond to some scalar C type that is capable -of holding values in the range 0 to 255. \verb|SANE_Word| must be -capable of holding any of the following: -\begin{itemize} - \item the truth values \verb|SANE_FALSE| and \verb|SANE_TRUE| - \item signed integers in the range $-2^{31}\ldots2^{31}-1$ - \item fixed point values in the range $-32768\ldots32767.9999$ with - a resolution of $1/65536$ - \item 32 bits (for bit sets) -\end{itemize} -Note that the SANE standard does not define what C type -\verb|SANE_Byte| and \verb|SANE_Word| map to. For example, on some -platforms, the latter may map to \verb|long int| whereas on others it -may map to \verb|int|. A portable SANE frontend or backend must -therefore not depend on a particular mapping. - -\subsection{Boolean Type} - -\code{\defn{SANE\_Bool}} is used for variables that can take one of -the two truth values \code{\defn{SANE\_FALSE}} and -\code{\defn{SANE\_TRUE}}. The former value is defined to be 0, -whereas the latter is 1.\footnote{This is different from ANSI C where - any non-zero integer value represents logical TRUE.} The C -declarations for this type are given below. -\begin{quote} -\begin{verbatim} -#define SANE_FALSE 0 -#define SANE_TRUE 1 -typedef SANE_Word SANE_Bool; -\end{verbatim} -\end{quote} -Note that \verb|SANE_Bool| is simply an alias of \verb|SANE_Word|. It -is therefore always legal to use the latter type in place of the -former. However, for clarity, it is recommended to use -\verb|SANE_Bool| whenever a given variable or formal argument has a -fixed interpretation as a boolean object. - -\subsection{Integer Type} - -\code{\defn{SANE\_Int}} is used for variables that can take integer -values in the range $-2^{32}$ to $2^{31}-1$. Its C declaration is -given below. -\begin{quote} -\begin{verbatim} -typedef SANE_Word SANE_Int; -\end{verbatim} -\end{quote} -Note that \verb|SANE_Int| is simply an alias of \verb|SANE_Word|. It -is therefore always legal to use the latter type in place of the -former. However, for clarity, it is recommended to use -\verb|SANE_Int| whenever a given variable or formal argument has a -fixed interpretation as an integer object. - - -\subsection{Fixed-point Type} - -\code{\defn{SANE\_Fixed}} is used for variables that can take fixed -point values in the range $-32768$ to $32767.9999$ with a resolution -of $1/65535$. The C declarations relating to this type are given -below. -\begin{quote} -\begin{verbatim} -#define SANE_FIXED_SCALE_SHIFT 16 -typedef SANE_Word SANE_Fixed; -\end{verbatim} -\end{quote} -The macro \code{\defn{SANE\_FIXED\_SCALE\_SHIFT}} gives the location -of the fixed binary point. This standard defines that value to be 16, -which yields a resolution of $1/65536$. - -Note that \verb|SANE_Fixed| is simply an alias of \verb|SANE_Word|. -It is therefore always legal to use the latter type in place of the -former. However, for clarity, it is recommended to use -\verb|SANE_Fixed| whenever a given variable or formal argument has a -fixed interpretation as a fixed-point object. - -For convenience, SANE also defines two macros that convert fixed-point -values to and from C double floating point values. -\begin{quote} - \begin{description} - - \item[\code{\defn{SANE\_FIX}(\var{d})}:] Returns the largest SANE - fixed-point value that is smaller than the double value \var{d}. - No range checking is performed. If the value of \var{d} is out of - range, the result is undefined. - - \item[\code{\defn{SANE\_UNFIX}(\var{w})}:] Returns the nearest - double machine number that corresponds to fixed-point value - \var{w}. - - \end{description} -\end{quote} -SANE does {\em not\/} require that the following two expressions hold -true (even if the values of \var{w} and \var{d} are in range): -\begin{quote} -\begin{verbatim} -SANE_UNFIX(SANE_FIX(d)) == d -SANE_FIX(SANE_UNFIX(w)) == w -\end{verbatim} -\end{quote} -In other words, conversion between fixed and double values may be -lossy. It is therefore recommended to avoid repeated conversions -between the two representations. - - -\subsection{Text} - -\subsubsection{Character Type} - -Type \code{\defn{SANE\_Char}} represents a single text character or -symbol. At present, this type maps directly to the underlying C -\verb|char| type (typically one byte). The encoding for such -characters is currently fixed as ISO LATIN-1. Future versions of this -standard may map this type to a wider type and allow multi-byte -encodings to support internationalization. As a result of this, care -should be taken to avoid the assumption that -\verb|sizeof(SANE_Char)==sizeof(char)|. -\begin{quote} -\begin{verbatim} -typedef char SANE_Char; -\end{verbatim} -\end{quote} - -\subsubsection{String Type} - -Type \code{\defn{SANE\_String}} represents a text string as a sequence -of C \verb|char| values. The end of the sequence is indicated by a -\verb|'\0'| (\defn{NUL}) character. -\begin{quote} -\begin{verbatim} -typedef SANE_Char *SANE_String; -typedef const SANE_Char *SANE_String_Const; -\end{verbatim} -\end{quote} -The type \code{\defn{SANE\_String\_Const}} is provided by SANE to -enable declaring strings whose contents is unchangable. Note that in -ANSI C, the declaration -\begin{quote} -\begin{verbatim} -const SANE_String str; -\end{verbatim} -\end{quote} -declares a string pointer that is constant (not a string pointer that -points to a constant value). - - -\subsection{Scanner Handle Type} - -Access to a scanner is provided through an opaque type called -\code{\defn{SANE\_Handle}}. The C declaration of this type is given -below. -\begin{quote} -\begin{verbatim} -typedef void *SANE_Handle; -\end{verbatim} -\end{quote} -While this type is declared to be a void pointer, an application must -not attempt to interpret the value of a \verb|SANE_Handle|. In -particular, SANE does not require that a value of this type is a legal -pointer value. - - -\subsection{Status Type} - -Most SANE operations return a value of type \code{\defn{SANE\_Status}} -to indicate whether the completion status of the operation. If an -operation completes successfully, \verb|SANE_STATUS_GOOD| is returned. -In case of an error, a value is returned that indicates the nature of -the problem. The complete list of available status codes is listed in -Table \ref{tab:status}. It is recommended to use function -\code{sane\_strstatus()} to convert status codes into a legible -string. - -\begin{table}[htbp] - \begin{center} - \begin{tabular}{|l|r|l|} - \hline - \multicolumn{1}{|c|}{\bf Symbol} & \multicolumn{1}{c|}{\bf Code} & - \multicolumn{1}{c|}{\bf Description} \\ - \hline\hline -\code{\defn{SANE\_STATUS\_GOOD}} - & 0 & Operation completed succesfully. \\ -\code{\defn{SANE\_STATUS\_UNSUPPORTED}} - & 1 & Operation is not supported. \\ -\code{\defn{SANE\_STATUS\_CANCELLED}} - & 2 & Operation was cancelled. \\ -\code{\defn{SANE\_STATUS\_DEVICE\_BUSY}} - & 3 & Device is busy---retry later. \\ -\code{\defn{SANE\_STATUS\_INVAL}} - & 4 & Data or argument is invalid. \\ -\code{\defn{SANE\_STATUS\_EOF}} - & 5 & No more data available (end-of-file). \\ -\code{\defn{SANE\_STATUS\_JAMMED}} - & 6 & Document feeder jammed. \\ -\code{\defn{SANE\_STATUS\_NO\_DOCS}} - & 7 & Document feeder out of documents. \\ -\code{\defn{SANE\_STATUS\_COVER\_OPEN}} - & 8 & Scanner cover is open. \\ -\code{\defn{SANE\_STATUS\_IO\_ERROR}} - & 9 & Error during device I/O. \\ -\code{\defn{SANE\_STATUS\_NO\_MEM}} - & 10 & Out of memory. \\ -\code{\defn{SANE\_STATUS\_ACCESS\_DENIED}} - & 11 & Access to resource has been denied. \\ - \hline - \end{tabular} - \caption{Status Codes}\label{tab:status} - \end{center} -\end{table} - - -\subsection{Device Descriptor Type} - -Each SANE device is represented by a structure of type -\code{\defn{SANE\_Device}}. The C declaration of this type is given -below. -\begin{quote} -\begin{verbatim} -typedef struct - { - SANE_String_Const name; - SANE_String_Const vendor; - SANE_String_Const model; - SANE_String_Const type; - } -SANE_Device; -\end{verbatim} -\end{quote} -\index{device-name} -The structure provides the unique name of the scanner in member -\code{name}. It is this unique name that should be passed in a call -to \code{sane\_open()}. The format of this name is completely up to -the backend. The only constraints are that the name is unique among -all devices supported by the backend and that the name is a legal SANE -text string. To simplify presentation of unique names, their length -should not be excessive. It is {\em recommended\/} that backends keep -unique names below 32 characters in length. However, applications -{\em must\/} be able to cope with arbitrary length unique names. - -The remaining members in the device structure provide additional -information on the device corresponding to the unique name. -Specifically, members \code{vendor}, \code{model}, and \code{type} are -single-line strings that give information on the vendor -(manufacturer), model, and the type of the device. For consistency's -sake, the following strings should be used when appropriate (the lists -will be expanded as need arises): - -\begin{table}[htbp] - \begin{center} - \leavevmode - \hspace{\fill} - \begin{tabular}[t]{|ll|} - \hline - \multicolumn{2}{|c|}{\bf \defn{Vendor Strings}} \\ - \hline\hline - \code{AGFA} & \code{Microtek} \\ - \code{Abaton} & \code{Minolta} \\ - \code{Acer} & \code{Mitsubishi} \\ - \code{Apple} & \code{Mustek} \\ - \code{Artec} & \code{NEC} \\ - \code{Avision} & \code{Nikon} \\ - \code{CANON} & \code{Plustek} \\ - \code{Connectix} & \code{Polaroid} \\ - \code{Epson} & \code{Relisys} \\ - \code{Fujitsu} & \code{Ricoh} \\ - \code{Hewlett-Packard} & \code{Sharp} \\ - \code{IBM} & \code{Siemens} \\ - \code{Kodak} & \code{Tamarack} \\ - \code{Lexmark} & \code{UMAX} \\ - \code{Logitech} & \code{Noname} \\ - \hline - \end{tabular} - \hspace{\fill} - \begin{tabular}[t]{|l|} - \hline - \multicolumn{1}{|c|}{\bf \defn{Type Strings}} \\ - \hline\hline - \code{film scanner} \\ - \code{flatbed scanner} \\ - \code{frame grabber} \\ - \code{handheld scanner} \\ - \code{multi-function peripheral} \\ - \code{sheetfed scanner} \\ - \code{still camera} \\ - \code{video camera} \\ - \code{virtual device} \\ - \hline - \end{tabular} - \hspace{\fill} - \caption{Predefined Device Information Strings} - \label{tab:devinfo} - \end{center} -\end{table} -Note that vendor string \code{Noname} can be used for virtual devices -that have no physical vendor associated. Also, there are no -predefined model name strings since those are vendor specific and -therefore completely under control of the respective backends. - - -\subsection{Option Descriptor Type}\label{sec:odesc} - -Option descriptors are at the same time the most intricate and -powerful type in the SANE standard. Options are used to control -virtually all aspects of device operation. Much of the power of the -SANE API stems from the fact that most device controls are completely -described by their respective option descriptor. Thus, a frontend can -control a scanner abstractly, without requiring knowledge as to what -the purpose of any given option is. Conversely, a scanner can -describe its controls without requiring knowledge of how the frontend -operates. The C declaration of the -\code{\defn{SANE\_Option\_Descriptor}} type is given below. -\begin{quote} -\begin{verbatim} -typedef struct - { - SANE_String_Const name; - SANE_String_Const title; - SANE_String_Const desc; - SANE_Value_Type type; - SANE_Unit unit; - SANE_Int size; - SANE_Int cap; - SANE_Constraint_Type constraint_type; - union - { - const SANE_String_Const *string_list; - const SANE_Word *word_list; - const SANE_Range *range; - } - constraint; - } -SANE_Option_Descriptor; -\end{verbatim} -\end{quote} - -\subsubsection{Option Name} - -Member \code{name} is a string that uniquely identifies the option. -The name must be unique for a given device (i.e., the option names -across different backends or devices need not be unique). The option -name must consist of lower-case ASCII letters (\code{a}--\code{z}), -digits (\code{0}--\code{9}), or the dash character (\code{-}) only. -The first character must be a lower-case ASCII character (i.e., not a -digit or a dash). - -\subsubsection{Option Title} - -Member \code{title} is a single-line string that can be used by the -frontend as a title string. This should typically be a short (one or -two-word) string that is chosen based on the function of the option. - -\subsubsection{Option Description} - -Member \code{desc} is a (potentially very) long string that can be -used as a help text to describe the option. It is the responsibility -of the frontend to break the string into managable-length lines. -Newline characters in this string should be interpreted as paragraph -breaks. - -\subsubsection{Option Value Type} - -Member \code{type} specifies the type of the option value. The -possible values for type \code{\defn{SANE\_Value\_Type}} are described -in Table \ref{tab:valuetype}. - -\begin{table}[htbp] - \begin{center} - \leavevmode - \begin{tabular}{|l|l|p{0.6\textwidth}|} -\hline -\multicolumn{1}{|c|}{\bf Symbol} & -\multicolumn{1}{c|}{\bf Code} & -\multicolumn{1}{c|}{\bf Description} \\ -\hline\hline - -\code{\defn{SANE\_TYPE\_BOOL}} & 0 & Option value is of type - \verb|SANE_Bool|. \\ - -\code{\defn{SANE\_TYPE\_INT}} & 1 & Option value is of type - \verb|SANE_Int|. \\ - -\code{\defn{SANE\_TYPE\_FIXED}}&2 & Option value is of type - \verb|SANE_Fixed|. \\ - -\code{\defn{SANE\_TYPE\_STRING}}&3 & Option value is of type - \verb|SANE_String|. \\ - -\code{\defn{SANE\_TYPE\_BUTTON}} & 4 & An option of this type has no value. -Instead, setting an option of this type has an option-specific -side-effect. For example, a button-typed option could be used by a -backend to provide a means to select default values or to the tell an -automatic document feeder to advance to the next sheet of paper. \\ - -\code{\defn{SANE\_TYPE\_GROUP}} & 5 & An option of this type has no value. -This type is used to group logically related options. A group option -is in effect up to the point where another group option is encountered -(or up to the end of the option list, if there are no other group -options). For group options, only members \code{title} and -\code{type} are valid in the option descriptor. \\ - - \hline - \end{tabular} - \caption{Option Value Types (\code{SANE\_Value\_Type})} - \label{tab:valuetype} - \end{center} -\end{table} - -\subsubsection{Option Value Unit} - -Member \code{unit} specifies what the physical unit of the option -value is. The possible values for type \code{\defn{SANE\_U\-nit}} are -described in Table \ref{tab:units}. Note that the specified unit is -what the SANE backend expects. It is entirely up to a frontend as to -how these units a presented to the user. For example, SANE expresses -all lengths in millimeters. A frontend is generally expected to -provide appropriate conversion routines so that a user can express -quantities in a customary unit (e.g., inches or centimeters). - -\begin{table}[htbp] - \begin{center} - \leavevmode - \begin{tabular}{|l|l|l|} -\hline -\multicolumn{1}{|c|}{\bf Symbol} & -\multicolumn{1}{|c|}{\bf Code} & -\multicolumn{1}{|c|}{\bf Description} \\ - -\hline\hline - -\code{\defn{SANE\_UNIT\_NONE}} & 0 & Value is unit-less (e.g., page count).\\ -\code{\defn{SANE\_UNIT\_PIXEL}} & 1 & Value is in number of pixels. \\ -\code{\defn{SANE\_UNIT\_BIT}} & 2 & Value is in number of bits. \\ -\code{\defn{SANE\_UNIT\_MM}} & 3 & Value is in millimeters. \\ -\code{\defn{SANE\_UNIT\_DPI}} & 4 & Value is a resolution in dots/inch. \\ -\code{\defn{SANE\_UNIT\_PERCENT}}& 5 & Value is a percentage. \\ -\code{\defn{SANE\_UNIT\_MICROSECOND}}& 6 & Value is time in $\mu$-seconds. \\ - -\hline - \end{tabular} - \caption{Physical Units (\code{SANE\_Unit})} - \label{tab:units} - \end{center} -\end{table} - -\subsubsection{Option Value Size}\label{sec:valuesize} - -Member \code{size} specifies the size of the option value (in bytes). -This member has a slightly different interpretation depending on the -type of the option value: -\begin{quote} - \begin{description} - \item[\code{SANE\_TYPE\_STRING}:] The size is the maximum size of - the string. For the purpose of string size calcuations, the - terminating \code{NUL} character is considered to be part of the - string. Note that the terminating \code{NUL} character must - always be present in string option values. - \item[\code{SANE\_TYPE\_INT}, \code{SANE\_TYPE\_FIXED}:] The size - must be a positive integer multiple of the size of a - \verb|SANE_Word|. The option value is a vector of length - \[ \code{size}/\code{sizeof(SANE\_Word)}. \] - \item[\code{SANE\_TYPE\_BOOL}:] The size must be set to - \code{sizeof(SANE\_Word)}. - \item[\code{SANE\_TYPE\_BUTTON}, \code{SANE\_TYPE\_GROUP}:] The - option size is ignored. - \end{description} -\end{quote} - -\subsubsection{Option Capabilities} - -Member \code{cap} describes what capabilities the option posseses. -This is a bitset that is formed as the inclusive logical OR of the -capabilities described in Table \ref{tab:capabilities}. The SANE API -provides the following to macros to test certain features of a given -capability bitset: -\begin{quote} - \begin{description} - - \item[\code{\defn{SANE\_OPTION\_IS\_ACTIVE}(\var{cap})}:] This macro - returns \code{SANE\_TRUE} if and only if the option with the - capability set \var{cap} is currently active. - - \item[\code{\defn{SANE\_OPTION\_IS\_SETTABLE}(\var{cap})}:] This - macro returns \code{SANE\_TRUE} if and only if the option with the - capability set \var{cap} is software settable. - \end{description} -\end{quote} - -\begin{table}[htbp] - \begin{center} - \leavevmode - \begin{tabular}{|l|r|p{0.59\textwidth}|} -\hline -\multicolumn{1}{|c|}{\bf Symbol} & -\multicolumn{1}{c|}{\bf Code} & -\multicolumn{1}{c|}{\bf Description} \\ -\hline\hline - -\code{\defn{SANE\_CAP\_SOFT\_SELECT}} & 1 & The option - value can be set by a call to \code{sane\_con\-trol\_opt\-ion()}.\\ - -\code{\defn{SANE\_CAP\_HARD\_SELECT}} & 2 & The option value can be set by - user-intervention (e.g., by flipping a switch). The user-interface - should prompt the user to execute the appropriate action to set such - an option. This capability is mutually exclusive with - SANE\_CAP\_SOFT\_SELECT (either one of them can be set, but not both - simultaneously). \\ - -\code{\defn{SANE\_CAP\_SOFT\_DETECT}} & 4 & The option - value can be detected by software. If - \code{SANE\_\-CAP\_\-SO\-FT\_SEL\-ECT} is set, this capability {\em must\/} - be set. If \code{SANE\_CAP\_HARD\_SELECT} is set, this capability - may or may not be set. If this capability is set but neither - \code{SANE\_CAP\_SO\-FT\_SEL\-ECT} nor \code{SANE\_CAP\_HA\-RD\_SEL\-ECT} - are, then there is no way to control the option. That is, the - option provides read-out of the current value only. \\ - -\code{\defn{SANE\_CAP\_EMULATED}} & 8 & If set, this capability indicates - that an option is not directly supported by the device and is - instead emulated in the backend. A sophisticated frontend may - elect to use its own (presumably better) emulation in lieu of an emulated - option. \\ - -\code{\defn{SANE\_CAP\_AUTOMATIC}} & 16 & If set, this capability indicates - that the backend (or the device) is capable to picking a reasonable - option value automatically. For such options, it is possible to - select automatic operation by calling \code{sane\_control\_option()} - with an action value of \code{SANE\_ACTION\_SET\_AUTO}. \\ - -\code{\defn{SANE\_CAP\_INACTIVE}} & 32 & If set, this capability indicates - that the option is not currently active (e.g., because it's - meaningful only if another option is set to some other value). \\ - -\code{\defn{SANE\_CAP\_ADVANCED}} & 64 & - If set, this capability indicates that the option should be - considered an ``advanced user option.'' A frontend typically - displays such options in a less conspicuous way than regular options - (e.g., a command line interface may list such options last or a - graphical interface may make them available in a seperate ``advanced - settings'' dialog). - \\ - -\hline - \end{tabular} - \caption{Option Capabilities} - \label{tab:capabilities} - \end{center} -\end{table} - -\subsubsection{Option Value Constraints} - -It is often useful to constrain the values that an option can take. -For example, constraints can be used by a frontend to determine how to -represent a given option. Member \code{constraint\_type} indicates -what constraint is in effect for the option. The constrained values -that are allowed for the option are described by one of the union -members of member \code{constraint}. The possible values of type -\code{\defn{SANE\_Constraint\_Type}} and the interpretation of the -\code{constraint} union is described in Table~\ref{tab:constraints}. - -\begin{table}[htbp] - \begin{center} - \leavevmode - \begin{tabular}{|l|r|p{0.5\textwidth}|} -\hline -\multicolumn{1}{|c|}{\bf Symbol} & -\multicolumn{1}{|c|}{\bf Code} & -\multicolumn{1}{|c|}{\bf Description} \\ - -\hline\hline - -\code{\defn{SANE\_CONSTRAINT\_NONE}} & 0 & The value is unconstrained. - The option can take any of the values possible for the option's - type. \\ - - \code{\defn{SANE\_CONSTRAINT\_RANGE}} & 1 & This constraint is - applicable to integer and fixed-point valued options only. It - constrains the option value to a possibly quantized range of - numbers. Option descriptor member \code{constraint.range} points to - a range of the type \code{\defn{SANE\_Range}}. This type is illustrated - below: - \begin{quote} -\begin{verbatim} -typedef struct - { - SANE_Word min; - SANE_Word max; - SANE_Word quant; - } -SANE_Range; -\end{verbatim} - \end{quote} - All three members in this structure are interpreted according to the - option value type (\verb|SANE_TYPE_INT| or \verb|SANE_TYPE_FIXED|). - Members \code{min} and \code{max} specify the minimum and maximum - values, respectively. If member \code{quant} is non-zero, it - specifies the quantization value. If $l$ is the minimum value, $u$ - the maximum value and $q$ the (non-zero) quantization of a range, - then the legal values are $v=k\cdot q+l$ for all non-negative - integer values of $k$ such that $v<=u$. \\ - -\code{\defn{SANE\_CONSTRAINT\_WORD\_LIST}} & 2 & This constraint is applicable - to integer and fixed-point valued options only. It constrains the - option value to a list of numeric values. Option descriptor member - \code{constraint.word\_list} points to a list of words that - enumerates the legal values. The first element in that list is an - integer (\verb|SANE_Int|) that specifies the length of the list (not - counting the length itself). The remaining elements in the list are - interpreted according to the type of the option value - (\verb|SANE_TYPE_INT| or \verb|SANE_TYPE_FIXED|). \\ - -\code{\defn{SANE\_CONSTRAINT\_STRING\_LIST}} & 3 & This constraint is - applicable to string-valued options only. It constrains the option - value to a list of strings. The option descriptor member - \code{con\-strai\-nt.str\-ing\_list} points to a \code{NULL} terminated - list of strings that enumerate the legal values for the option - value. -\\\hline - \end{tabular} - \caption{Option Value Constraints} - \label{tab:constraints} - \end{center} -\end{table} - - -\section{Operations} - -\subsection{\code{sane\_init}} - -This function must be called before any other SANE function can be called. -The behavior of a SANE backend is undefined if this function is not called -first or if the status code returned by \code{sane\_init} is different from -\code{\defn{SANE\_STATUS\_GOOD}}. The version code of the backend is returned -in the value pointed to by \code{version\_code}. If that pointer is -\code{NULL}, no version code is returned. Argument \code{authorize} is either -a pointer to a function that is invoked when the backend requires -authentication for a specific resource or \code{NULL} if the frontend does not -support authentication. -\begin{quote}\index{sane\_init} -\begin{verbatim} -SANE_Status sane_init (SANE_Int * version_code, - SANE_Authorization_Callback authorize); -\end{verbatim} -\end{quote} - -The authorization function may be called by a backend in response to -any of the following calls: -\begin{quote} - \code{sane\_open}, \code{sane\_control\_option}, \code{sane\_start} -\end{quote} -If a backend was initialized without authorization function, then -authorization requests that cannot be handled by the backend itself -will fail automatically and the user may be prevented from accessing -protected resources. Backends are encouraged to implement means of -authentication that do not require user assistance. E.g., on a -multi-user system that authenticates users through a login process a -backend could automatically lookup the apporpriate password based on -resource- and user-name. - -The authentication function type has the following declaration: -\begin{quote}\index{SANE\_Authorization\_Callback} - \index{domain}\index{username}\index{password} -\begin{verbatim} -#define SANE_MAX_USERNAME_LEN 128 -#define SANE_MAX_PASSWORD_LEN 128 - -typedef void (*SANE_Authorization_Callback) - (SANE_String_Const resource, - SANE_Char username[SANE_MAX_USERNAME_LEN], - SANE_Char password[SANE_MAX_PASSWORD_LEN]); -\end{verbatim} -\end{quote} -Three arguments are passed to the authorization function: -\code{resource} is a string specifying the name of the resource that -requires authorization. A frontend should use this string to build a -user-prompt requesting a username and a password. The \code{username} -and \code{password} arguments are (pointers to) an array of -\code{SANE\_MAX\_USERNAME\_LEN} and \code{SANE\_MAX\_PASSWORD\_LEN} -characters, respectively. The authorization call should place the -entered username and password in these arrays. The returned strings -{\em must\/} be ASCII-NUL terminated. - -\subsection{\code{sane\_exit}} - -This function must be called to terminate use of a backend. The -function will first close all device handles that still might be open -(it is recommended to close device handles explicitly through a call -to \code{sane\_clo\-se()}, but backends are required to release all -resources upon a call to this function). After this function returns, -no function other than \code{sane\_init()} may be called (regardless -of the status value returned by \code{sane\_exit()}. Neglecting to -call this function may result in some resources not being released -properly. -\begin{quote}\index{sane\_exit} -\begin{verbatim} -void sane_exit (void); -\end{verbatim} -\end{quote} - - -\subsection{\code{sane\_get\_devices}} - -This function can be used to query the list of devices that are -available. If the function executes successfully, it stores a pointer -to a \code{NULL} terminated array of pointers to \verb|SANE_Device| -structures in \code{*device\_list}. The returned list is guaranteed -to remain unchanged and valid until (a) another call to this function -is performed or (b) a call to \code{sane\_exit()} is performed. This -function can be called repeatedly to detect when new devices become -available. If argument \code{local\_only} is true, only local devices -are returned (devices directly attached to the machine that SANE is -running on). If it is false, the device list includes all remote -devices that are accessible to the SANE library. -\begin{quote}\index{sane\_get\_devices} -\begin{verbatim} -SANE_Status sane_get_devices (const SANE_Device *** device_list, - SANE_Bool local_only); -\end{verbatim} -\end{quote} - -This function may fail with \code{SANE\_STATUS\_NO\_MEM} if an -insufficient amount of memory is available. - -\begin{quote} - \begin{center} - {\bf Backend Implementation Note} - \end{center} - SANE does not require that this function is called before a - \code{sane\_open()} call is performed. A device name may be - specified explicitly by a user which would make it unnecessary and - undesirable to call this function first. -\end{quote} - - -\subsection{\code{sane\_open}} - -This function is used to establish a connection to a particular -device. The name of the device to be opened is passed in argument -\code{name}. If the call completes successfully, a handle for the -device is returned in \code{*h}. As a special case, specifying a -zero-length string as the device requests opening the first available -device (if there is such a device). -\begin{quote}\index{sane\_open} -\begin{verbatim} -SANE_Status sane_open (SANE_String_Const name, SANE_Handle * h); -\end{verbatim} -\end{quote} - -This function may fail with one of the following status codes. -\begin{quote} -\begin{description} -\item[\code{SANE\_STATUS\_DEVICE\_BUSY}:] The device is currently - busy (in use by somebody else). -\item[\code{SANE\_STATUS\_INVAL}:] The device name is not valid. -\item[\code{SANE\_STATUS\_IO\_ERROR}:] An error occured while - communicating with the device. -\item[\code{SANE\_STATUS\_NO\_MEM}:] An insufficent amount of memory - is available. -\item[\code{SANE\_STATUS\_ACCESS\_DENIED}:] Access to the device has - been denied due to insufficient or invalid authentication. -\end{description} -\end{quote} - - -\subsection{\code{sane\_close}} - -This function terminates the association between the device handle -passed in argument \code{h} and the device it represents. If the -device is presently active, a call to \code{sane\_cancel()} is -performed first. After this function returns, handle \code{h} must -not be used anymore. - -\begin{quote}\index{sane\_close} -\begin{verbatim} -void sane_close (SANE_Handle h); -\end{verbatim} -\end{quote} - -\subsection{\code{sane\_get\_option\_descriptor}} - -This function is used to access option descriptors. The function -returns the option descriptor for option number \code{n} of the device -represented by handle \code{h}. Option number 0 is guaranteed to be a -valid option. Its value is an integer that specifies the number of -options that are available for device handle \code{h} (the count -includes option 0). If $n$ is not a valid option index, the function -returns \code{NULL}. The returned option descriptor is guaranteed to -remain valid (and at the returned address) until the device is closed. - -\begin{quote}\index{sane\_get\_option\_descriptor} -\begin{verbatim} -const SANE_Option_Descriptor * - sane_get_option_descriptor (SANE_Handle h, SANE_Int n); -\end{verbatim} -\end{quote} - -\subsection{\code{sane\_control\_option}}\label{sec:control} - -This function is used to set or inquire the current value of option -number \code{n} of the device represented by handle \code{h}. The -manner in which the option is controlled is specified by parameter -\code{a}. The possible values of this parameter are described in more -detail below. The value of the option is passed through argument -\code{v}. It is a pointer to the memory that holds the option value. -The memory area pointed to by \code{v} must be big enough to hold the -entire option value (determined by member \code{size} in the -corresponding option descriptor). The only exception to this rule is -that when setting the value of a string option, the string pointed to -by argument \code{v} may be shorter since the backend will stop -reading the option value upon encountering the first \code{NUL} -terminator in the string. If argument \code{i} is not \code{NULL}, -the value of \code{*i} will be set to provide details on how well the -request has been met. The meaning of this argument is described in -more detail below. -\begin{quote}\index{sane\_control\_option} -\begin{verbatim} -SANE_Status sane_control_option (SANE_Handle h, SANE_Int n, - SANE_Action a, void *v, - SANE_Int * i); -\end{verbatim} -\end{quote} - -The way the option is affected by a call to this function is -controlled by parameter \code{a} which is a value of type -\code{\defn{SANE\_Action}}. The possible values and their meaning is -described in Table~\ref{tab:actions}. - -\begin{table}[h] - \begin{center} - \leavevmode - \begin{tabular}{|l|r|p{0.5\textwidth}|} -\hline -\multicolumn{1}{|c|}{\bf Symbol} & -\multicolumn{1}{|c|}{\bf Code} & -\multicolumn{1}{|c|}{\bf Description} \\ - -\hline\hline - -\code{\defn{SANE\_ACTION\_GET\_VALUE}} & 0 & Get current option value. \\ - -\code{\defn{SANE\_ACTION\_SET\_VALUE}} & 1 & Set option value. The - option value passed through argument \code{v} may be modified by the - backend if the value cannot be set exactly. \\ - -\code{\defn{SANE\_ACTION\_SET\_AUTO}} & 2 & Turn on automatic mode. Backend - or device will automatically select an appropriate value. This mode - remains effective until overridden by an explicit set value request. - The value of parameter \code{v} is completely ignored in this case and - may be \code{NULL}. \\ - -\hline - \end{tabular} - \caption{Action Values (\code{SANE\_Action})} - \label{tab:actions} - \end{center} -\end{table} - -After setting a value via an action value of -\verb|SANE_ACTION_SET_VALUE|, additional information on how well the -request has been met is returned in \code{*i} (if \code{i} is -non-\code{NULL}). The returned value is a bitset that may contain any -combination of the values described in Table~\ref{tab:info}. -\begin{table}[htbp] - \begin{center} - \leavevmode - \begin{tabular}{|l|r|p{0.5\textwidth}|} -\hline -\multicolumn{1}{|c|}{\bf Symbol} & -\multicolumn{1}{|c|}{\bf Code} & -\multicolumn{1}{|c|}{\bf Description} \\ - -\hline\hline - -\code{\defn{SANE\_INFO\_INEXACT}} & 1 & This value is returned when - setting an option value resulted in a value being selected that does - not exactly match the requested value. For example, if a scanner - can adjust the resolution in increments of 30dpi only, setting the - resolution to 307dpi may result in an actual setting of 300dpi. - When this happens, the bitset returned in \code{*i} has this member - set. In addition, the option value is modified to reflect the - actual (rounded) value that was used by the backend. Note that - inexact values are admissible for strings as well. A backend may - choose to ``round'' a string to the closest matching legal string - for a constrained string value. \\ - - \code{\defn{SANE\_INFO\_RELOAD\_OPTIONS}} & 2 & The setting of an - option may affect the value or availability of one or more {\em - other\/} options. When this happens, the SANE backend sets this - member in \code{*i} to indicate that the application should reload - all options. This member may be set if and only if at least one - option changed. \\ - -\code{\defn{SANE\_INFO\_RELOAD\_PARAMS}} & 4 & The setting of an option may - affect the parameter values (see \code{sane\_get\_parameters()}). - If setting an option affects the parameter values, this member will - be set in \code{*i}. Note that this member may be set even if the - parameters did not actually change. However, it is guaranteed that - the parameters never change without this member being set. \\ - -\hline - \end{tabular} - \caption{Additional Information Returned When Setting an Option} - \label{tab:info} - \end{center} -\end{table} - -This function may fail with one of the following status codes. -\begin{quote} -\begin{description} -\item[\code{SANE\_STATUS\_UNSUPPORTED}:] The operation is not - supported for the specified handle and option number. -\item[\code{SANE\_STATUS\_INVAL}:] The option value is not valid. -\item[\code{SANE\_STATUS\_IO\_ERROR}:] An error occured while - communicating with the device. -\item[\code{SANE\_STATUS\_NO\_MEM}:] An insufficent amount of memory - is available. -\item[\code{SANE\_STATUS\_ACCESS\_DENIED}:] Access to the option has - been denied due to insufficient or invalid authentication. -\end{description} -\end{quote} - - - -\subsection{\code{sane\_get\_parameters}} - -This function is used to obtain the current scan parameters. The -returned parameters are guaranteed to be accurate between the time a -scan has been started (\code{sane\_start()} has been called) and the -completion of that request. Outside of that window, the returned -values are best-effort estimates of what the parameters will be when -\code{sane\_start()} gets invoked. Calling this function before a -scan has actually started allows, for example, to get an estimate of -how big the scanned image will be. The parameters passed to this -function are the handle \code{h} of the device for which the -parameters should be obtained and a pointer \code{p} to a parameter -structure. The parameter structure is described in more detail below. - -\begin{quote}\index{sane\_get\_parameters} -\begin{verbatim} -SANE_Status sane_get_parameters (SANE_Handle h, - SANE_Parameters * p); -\end{verbatim} -\end{quote} - -The scan parameters are returned in a structure of type -\code{\defn{SANE\_Parameters}}. The C declaration of this structure -is given below. -\begin{quote} -\begin{verbatim} -typedef struct - { - SANE_Frame format; - SANE_Bool last_frame; - SANE_Int bytes_per_line; - SANE_Int pixels_per_line; - SANE_Int lines; - SANE_Int depth; - } -SANE_Parameters; -\end{verbatim} -\end{quote} - -Member \code{format} specifies the format of the next frame to be -returned. The possible values for type \code{\defn{SANE\_Frame}} are -described in Table~\ref{tab:frameformat}. The meaning of these -values is described in more detail in Section~\ref{sec:imageformat}. -\begin{table}[htbp] - \begin{center} - \leavevmode - \begin{tabular}{|l|r|l|} -\hline -\multicolumn{1}{|c|}{\bf Symbol} & -\multicolumn{1}{|c|}{\bf Code} & -\multicolumn{1}{|c|}{\bf Description} \\ - -\hline\hline - -\code{\defn{SANE\_FRAME\_GRAY}} & 0 & Band covering human visual range. \\ -\code{\defn{SANE\_FRAME\_RGB}} & 1 & Pixel-interleaved red/green/blue bands. \\ -\code{\defn{SANE\_FRAME\_RED}} & 2 & Red band of a red/green/blue image. \\ -\code{\defn{SANE\_FRAME\_GREEN}} & 3 & Green band of a red/green/blue image. \\ -\code{\defn{SANE\_FRAME\_BLUE}} & 4 & Blue band of a red/green/blue image. \\ - -\hline - \end{tabular} - \caption{Frame Format (\code{SANE\_Frame})} - \label{tab:frameformat} - \end{center} -\end{table} - -Member \code{last\_frame} is set to \code{SANE\_TRUE} if and only if -the frame that is currently being acquired (or the frame that will be -acquired next if there is no current frame) is the last frame of a -multi frame image (e.g., the current frame is the blue component of a -red, green, blue image). - -Member \code{lines} specifies how many scan lines the frame is -comprised of. If this value is -1, the number of lines is not known a -priori and the frontend should call \code{sane\_read()} until it -returns a status of \code{SANE\_STATUS\_EOF}. - -Member \code{bytes\_per\_line} specifies the number of bytes that -comprise one scan line. - -Member \code{depth} specifies the number of bits per sample. - -Member \code{pixels\_per\_line} specifies the number of pixels that -comprise one scan line. - -Assume $B$ is the number of channels in the frame, then the bit depth -$d$ (as given by member \code{depth}) and the number of pixels per -line $n$ (as given by this member \code{pixels\_per\_line}) are -related to $c$, the number of bytes per line (as given by member -\code{bytes\_per\_line}) as follows: -\[ - c >= \left\{ - \begin{array}{ll} - B\cdot \lfloor (n + 7) / 8\rfloor & \mbox{if $d=1$}\\ - B\cdot n \cdot d / 8 & \mbox{if $d>1$} - \end{array} - \right. -\] -Note that the number of bytes per line can be larger than the minimum -value imposed by the right side of this equation. A frontend must be -able to properly cope with such ``padded'' image formats. - - -\subsection{\code{sane\_start}} - -This function initiates aquisition of an image from the device -represented by handle \code{h}. -\begin{quote}\index{sane\_start} -\begin{verbatim} -SANE_Status sane_start (SANE_Handle h); -\end{verbatim} -\end{quote} -This function may fail with one of the following status codes. -\begin{quote} -\begin{description} -\item[\code{SANE\_STATUS\_CANCELLED}:] The operation was cancelled through - a call to \code{sane\_cancel}. -\item[\code{SANE\_STATUS\_DEVICE\_BUSY}:] The device is busy. The - operation should be retried later. -\item[\code{SANE\_STATUS\_JAMMED}:] The document feeder is jammed. -\item[\code{SANE\_STATUS\_NO\_DOCS}:] The document feeder is out of - documents. -\item[\code{SANE\_STATUS\_COVER\_OPEN}:] The scanner cover is open. -\item[\code{SANE\_STATUS\_IO\_ERROR}:] An error occurred while communicating - with the device. -\item[\code{SANE\_STATUS\_NO\_MEM}:] An insufficent amount of memory - is available. -\item[\code{SANE\_STATUS\_INVAL}:] The scan cannot be started with the current - set of options. The frontend should reload the option descriptors, as if - \code{\defn{SANE\_INFO\_RELOAD\_OPTIONS}} had been returned from a call to - \code{sane\_control\_option()}, since the device's capabilities may have - changed. -\end{description} -\end{quote} - - -\subsection{\code{sane\_read}} - -This function is used to read image data from the device represented -by handle \code{h}. Argument \code{buf} is a pointer to a memory area -that is at least \code{maxlen} bytes long. The number of bytes -returned is stored in \code{*len}. A backend must set this to zero -when a status other than \code{SANE\_STA\-TUS\_GOOD} is returned. -When the call succeeds, the number of bytes returned can be anywhere in -the range from 0 to \code{maxlen} bytes. -\begin{quote}\index{sane\_read} -\begin{verbatim} -SANE_Status sane_read (SANE_Handle h, SANE_Byte * buf, - SANE_Int maxlen, SANE_Int * len); -\end{verbatim} -\end{quote} -If this function is called when no data is available, one of two -things may happen, depending on the I/O mode that is in effect for -handle \code{h}. -\begin{enumerate} -\item If the device is in blocking I/O mode (the default mode), the - call blocks until at least one data byte is available (or until some - error occurs). - -\item If the device is in non-blocking I/O mode, the call returns - immediately with status \code{SANE\_STA\-TUS\_GOOD} and with - \code{*len} set to zero. -\end{enumerate} -The I/O mode of handle \code{h} can be set via a call to -\code{sane\_set\_io\_mode()}. - -This function may fail with one of the following status codes. -\begin{quote} -\begin{description} -\item[\code{SANE\_STATUS\_CANCELLED}:] The operation was cancelled through - a call to \code{sane\_cancel}. -\item[\code{SANE\_STATUS\_EOF}:] No more data is available for the - current frame. -\item[\code{SANE\_STATUS\_JAMMED}:] The document feeder is jammed. -\item[\code{SANE\_STATUS\_NO\_DOCS}:] The document feeder is out of - documents. -\item[\code{SANE\_STATUS\_COVER\_OPEN}:] The scanner cover is open. -\item[\code{SANE\_STATUS\_IO\_ERROR}:] An error occurred while communicating - with the device. -\item[\code{SANE\_STATUS\_NO\_MEM}:] An insufficent amount of memory - is available. -\item[\code{SANE\_STATUS\_ACCESS\_DENIED}:] Access to the device has - been denied due to insufficient or invalid authentication. -\end{description} -\end{quote} - - -\subsection{\code{sane\_cancel}} - -This function is used to immediately or as quickly as possible cancel -the currently pending operation of the device represented by handle -\code{h}. -\begin{quote}\index{sane\_cancel} -\begin{verbatim} -void sane_cancel (SANE_Handle h); -\end{verbatim} -\end{quote} -This function can be called at any time (as long as handle \code{h} is -a valid handle) but usually affects long-running operations only (such -as image is acquisition). It is safe to call this function -asynchronously (e.g., from within a signal handler). It is important -to note that completion of this operaton does {\em not\/} imply that -the currently pending operation has been cancelled. It only -guarantees that cancellation has been {\em initiated}. Cancellation -completes only when the cancelled call returns (typically with a -status value of \code{SANE\_STATUS\_CANCELLED}). Since the SANE API -does not require any other operations to be re-entrant, this implies -that a frontend must {\em not\/} call any other operation until the -cancelled operation has returned. - - -\subsection{\code{sane\_set\_io\_mode}} - -This function is used to set the I/O mode of handle \code{h}. The I/O mode -can be either blocking or non-blocking. If argument \code{m} is -\code{SANE\_TRUE}, the mode is set to non-blocking mode, otherwise it's set to -blocking mode. This function can be called only after a call to -\code{sane\_start()} has been performed. -\begin{quote}\index{sane\_set\_io\_mode} -\begin{verbatim} -SANE_Status sane_set_io_mode (SANE_Handle h, SANE_Bool m); -\end{verbatim} -\end{quote} -By default, newly opened handles operate in blocking mode. A backend -may elect not to support non-blocking I/O mode. In such a case the -status value \code{SANE\_STATUS\_UNSUPPORTED} is returned. Blocking -I/O must be supported by all backends, so calling this function with -argument \code{m} set to \code{SANE\_FALSE} is guaranteed to complete -successfully. - -This function may fail with one of the following status codes: -\begin{quote} -\begin{description} -\item[\code{SANE\_STATUS\_INVAL}:] No image acquisition is pending. -\item[\code{SANE\_STATUS\_UNSUPPORTED}:] The backend does not support - the requested I/O mode. -\end{description} -\end{quote} - - -\subsection{\code{sane\_get\_select\_fd}} - -This function is used to obtain a (platform-specific) file-descriptor -for handle \code{h} that is readable if and only if image data is -available (i.e., when a call to \code{sane\_read()} will return at -least one byte of data). If the call completes successfully, the -select file-descriptor is returned in \code{*fd}. -\begin{quote}\index{sane\_get\_select\_fd} -\begin{verbatim} -SANE_Status sane_get_select_fd (SANE_Handle h, SANE_Int *fd); -\end{verbatim} -\end{quote} -This function can be called only after a call to \code{sane\_start()} -has been performed and the returned file-descriptor is guaranteed to -remain valid for the duration of the current image acquisition (i.e., -until \code{sane\_cancel()} or \code{sane\_start()} get called again -or until \code{sane\_read()} returns with status -\code{SANE\_STA\-TUS\_EOF}). Indeed, a backend must guarantee to -close the returned select file descriptor at the point when the next -\code{sane\_read()} call would return \code{SANE\_STA\-TUS\_EOF}. -This is necessary to ensure the application can detect when this -condition occurs without actually having to call \code{sane\_read()}. - -A backend may elect not to support this operation. In such a case, -the function returns with status code -\code{SANE\_STATUS\_UNSUPPORTED}. - -Note that the only operation supported by the returned file-descriptor -is a host operating-system dependent test whether the file-descriptor -is readable (e.g., this test can be implemented using \code{select()} -or \code{poll()} under UNIX). If any other operation is performed on -the file descriptor, the behavior of the backend becomes -unpredictable. Once the file-descriptor signals ``readable'' status, -it will remain in that state until a call to \code{sane\_read()} is -performed. Since many input devices are very slow, support for this -operation is strongly encouraged as it permits an application to do -other work while image acquisition is in progress. - -This function may fail with one of the following status codes: -\begin{quote} -\begin{description} -\item[\code{SANE\_STATUS\_INVAL}:] No image acquisition is pending. -\item[\code{SANE\_STATUS\_UNSUPPORTED}:] The backend does not support - this operation. -\end{description} -\end{quote} - - -\subsection{\code{sane\_strstatus}} - -This function can be used to translate a SANE status code into a -printable string. The returned string is a single line of text that -forms a complete sentence, but without the trailing period -(full-stop). The function is guaranteed to never return \code{NULL}. -The returned pointer is valid at least until the next call to this -function is performed. -\begin{quote}\index{sane\_strstatus} -\begin{verbatim} -const SANE_String_Const sane_strstatus (SANE_Status status); -\end{verbatim} -\end{quote} - -\section{Code Flow}\index{code flow} - -The code flow for the SANE API is illustrated in -Figure~\ref{fig:flow}. Functions \code{sane\_init()} and -\code{sane\_exit()} initialize and exit the backend, respectively. -All other calls must be performed after initialization and before -exiting the backend. - -\begin{figure}[htb] - \begin{center} - \leavevmode - \includegraphics[height=0.5\textheight]{figs/flow} - \caption{Code flow} - \label{fig:flow} - \end{center} -\end{figure} - -Function \code{sane\_get\_devices()} can be called any time after -\code{sane\_init()} has been called. It returns the list of the -devices that are known at the time of the call. This list may change -over time since some devices may be turned on or off or a remote host -may boot or shutdown between different calls. It should be noted that -this operation may be relatively slow since it requires contacting all -configured devices (some of which may be on remote hosts). A frontend -may therefore want to provide the ability for a user to directly -select a desired device without requiring a call to this function. - -Once a device has been chosen, it is opened using a call to -\code{sane\_open()}. Multiple devices can be open at any given time. -A SANE backend must not impose artificial constraints on how many -devices can be open at any given time. - -An opened device can be setup through the corresponding device handle -using functions \code{sane\_get\_opt\-ion\_desc\-riptor()} and -\code{sane\_control\_option()}. While setting up a device, obtaining -option descriptors and setting and reading of option values can be -mixed freely. It is typical for a frontend to read out all available -options at the beginning and then build a dialog (either graphical or -a command-line oriented option list) that allows to control the -available options. It should be noted that the number of options is -fixed for a given handle. However, as options are set, other options -may become active or inactive. Thus, after setting an option, it -maybe necessary to re-read some or all option descriptors. While -setting up the device, it is also admissible to call -\code{sane\_get\_parameters()} to get an estimate of what the image -parameters will look like once image acquisition begins. - -The device handle can be put in blocking or non-blocking mode by a -call to \code{sane\_set\_io\_mode()}. Devices are required to support -blocking mode (which is the default mode), but support for -non-blocking I/O is strongly encouraged for operating systems such as -UNIX. - -After the device is setup properly, image acquisition can be started -by a call to \code{sane\_start()}. The backend calculates the exact -image parameters at this point. So future calls to -\code{sane\_get\_parameters()} will return the exact values, rather -than estimates. Whether the physical image acquisition starts at this -point or during the first call to \code{sane\_read()} is unspecified -by the SANE API. If non-blocking I/O and/or a select-style interface -is desired, the frontend may attempt to call -\code{sane\_set\_io\_mode()} and/or \code{sane\_get\_select\_fd()} at -this point. Either of these functions may fail if the backend does -not support the requested operation. - -Image data is collected by repeatedly calling \code{sane\_read()}. -Eventually, this function will return an end-of-file status -(\code{SANE\_STATUS\_EOF}). This indicates the end of the current -frame. If the frontend expects additional frames (e.g., the -individual channels in of a red/green/blue image or multiple images), -it can call \code{sane\_start()} again. Once all desired frames have -been acquired, function \code{sane\_cancel()} must be called. This -operation can also be called at any other time to cancel a pending -operation. Note that \code{sane\_cancel()} must be called even if the -last read operation returned \code{SANE\_STATUS\_EOF}. - -When done using the device, the handle should be closed by a call to -\code{sane\_close()}. Finally, before exiting the application, -function \code{sane\_exit()} must be called. It is important not to -forget to call this function since otherwise some resources (e.g., -temporary files or locks) may remain unclaimed. - - -\section{Well-Known Options}\index{well-known options} - -While most backend options are completely self-describing, there are a -cases where a user interface might want to special-case the handling -of certain options. For example, the scan area is typically defined -by four options that specify the top-left and bottom-right corners of -the area. With a graphical user interface, it would be tedious to -force the user to type in these four numbers. Instead, most such -interfaces will want to present to the user a preview (low-resolution -scan) of the scanner surface and let the user pick the scan area by -dragging a rectangle into the desired position. For this reason, the -SANE API specifies a small number of option names that have -well-defined meanings. - -\subsection{Option Number Count}\index{option count} - -Option number 0 has an empty string as its name. The value of this -option is of type \code{SANE\_TYPE\_INT} and it specifies the total -number of options available for a given device (the count includes -option number 0). This means that there are two ways of counting the -number of options available: a frontend can either cycle through all -option numbers starting at one until -\code{sane\_get\_option\_descriptor()} returns \code{NULL}, or a -frontend can directly read out the value of option number 0. - -\subsection{Scan Resolution Option}\index{scan resolution}\index{resolution option} - -Option \code{resolution} is used to select the resolution at which an -image should be acquired. The type of this option is either -\code{SANE\_TYPE\_INT} or \code{SANE\_TYPE\_FIXED}. The unit is -\code{SANE\_UNIT\_DPI} (dots/inch). - -This option is not mandatory, but if a backend does support it, it -must implement it in a manner consistent with the above definition. - -\subsection{Preview Mode Option}\index{preview mode} - -The boolean option \code{preview} is used by a frontend to inform the -backend when image acquisition should be optimized for speed, rather -than quality (``preview mode''). When set to \code{SANE\_TRUE}, -preview mode is in effect, when set to \code{SANE\_FALSE} image -acquisition should proceed in normal quality mode. The setting of -this option \emph{must not\/} affect any other option. That is, as -far as the other options are concerned, the preview mode is completely -side effect free. A backend can assume that the frontend will take -care of appropriately setting the scan resolution for preview mode -(through option \code{resolution}). A backend is free to override the -\code{resolution} value with its own choice for preview mode, but it -is advised to leave this choice to the frontend wherever possible. - -This option is not mandatory, but if a backend does support it, it -must implement it in a manner consistent with the above definition. - -\subsection{Scan Area Options}\index{scan area options} - -The four most important well-known options are the ones that define -the scan area. The scan area is defined by two points (x/y coordinate -pairs) that specify the top-left and the bottom-right corners. This -is illustrated in Figure~\ref{fig:area}. Note that the origin of the -coordinate system is at the top-left corner of the scan surface as -seen by the sensor (which typically is a mirror image of the scan -surface seen by the user). For this reason, the top-left corner is -the corner for which the abscissa and ordinate values are -simultaneously the {\em smallest} and the bottom-right corner is the -corner for which the abscissa and ordinate values are simulatenously -the {\em largest}. If this coordinate system is not natural for a -given device, it is the job of the backend to perform the necessary -conversions. -\begin{figure}[tbp] - \begin{center} - \leavevmode - \includegraphics[height=0.3\textheight]{figs/area} - \caption{Scan area options} - \label{fig:area} - \end{center} -\end{figure} - -The names of the four options that define the scan area are given in -the table below: -\begin{center} -\begin{tabular}{ll} -{\bf Name} & {\bf Description} \\ -\code{\defn{tl-x}} & Top-left $x$ coordinate value \\ -\code{\defn{tl-y}} & Top-left $y$ coordinate value \\ -\code{\defn{br-x}} & Bottom-right $x$ coordinate value \\ -\code{\defn{br-y}} & Bottom-right $y$ coordinate value \\ -\end{tabular} -\end{center} -There are several rules that should be followed by front and backends -regarding these options: -\begin{itemize} - -\item Backends must attach a unit of either pixels - (\code{SANE\_UNIT\_PIXEL}) or millimeters (\code{SANE\_UNIT\_MM}) to - these options. The unit of all four options must be identical. - -\item Whenever meaningful, a backend should attach a range or a - word-list constraint to these options. - -\item A frontend can determine the size of the scan surface by first - checking that the options have range constraints associated. If a - range or word-list constraints exist, the frontend can take the - minimum and maximum values of one of the x and y option - range-constraints to determine the scan surface size. - -\item A frontend must work properly with any or all of these options - missing. - -\end{itemize} - -\input{net.tex} - -\chapter{Contact Information}\label{chap:contact} - -The SANE standard is discussed and evolved via a mailing list. -Anybody with email access to the Internet can automatically join and -leave the discussion group by sending mail to the following address. -\begin{quote}\index{mailing list} -\url{sane-devel-request@alioth-lists.debian.net} -\end{quote} -To subscribe, send a mail with the body ``\verb|subscribe sane-devel|'' to the -above address. - -A complete list of commands supported can be obtained by sending a -mail with a subject of ``\code{help}'' to the above address. The -mailing list is archived and available through the SANE home page at -URL: -\begin{quote} -\url{http://www.sane-project.org/} -\end{quote} - -\newpage -\input{sane.ind} - -\end{document} diff --git a/frontend/scanimage.c b/frontend/scanimage.c index ae65ebfd9..3902092f1 100644 --- a/frontend/scanimage.c +++ b/frontend/scanimage.c @@ -369,13 +369,13 @@ print_option (SANE_Device * device, int opt_num, const SANE_Option_Descriptor *o } /* if both of these are set, option is invalid */ - if(opt->cap & SANE_CAP_SOFT_SELECT && opt->cap & SANE_CAP_HARD_SELECT){ + if((opt->cap & SANE_CAP_SOFT_SELECT) && (opt->cap & SANE_CAP_HARD_SELECT)){ fprintf (stderr, "%s: invalid option caps, SS+HS\n", prog_name); return; } /* invalid to select but not detect */ - if(opt->cap & SANE_CAP_SOFT_SELECT && !(opt->cap & SANE_CAP_SOFT_DETECT)){ + if((opt->cap & SANE_CAP_SOFT_SELECT) && !(opt->cap & SANE_CAP_SOFT_DETECT)){ fprintf (stderr, "%s: invalid option caps, SS!SD\n", prog_name); return; } @@ -609,7 +609,7 @@ print_option (SANE_Device * device, int opt_num, const SANE_Option_Descriptor *o else if(opt->cap & SANE_CAP_HARD_SELECT) fputs (" [hardware]", stdout); - else if(!(opt->cap & SANE_CAP_SOFT_SELECT) && opt->cap & SANE_CAP_SOFT_DETECT) + else if(!(opt->cap & SANE_CAP_SOFT_SELECT) && (opt->cap & SANE_CAP_SOFT_DETECT)) fputs (" [read-only]", stdout); fputs ("\n ", stdout); @@ -987,7 +987,15 @@ set_option (SANE_Handle device, int optnum, void *valuep) SANE_Int info = 0; opt = sane_get_option_descriptor (device, optnum); - if (opt && (!SANE_OPTION_IS_ACTIVE (opt->cap))) + if (!opt) + { + if (verbose > 0) + fprintf (stderr, "%s: ignored request to set invalid option %d\n", + prog_name, optnum); + return; + } + + if (!SANE_OPTION_IS_ACTIVE (opt->cap)) { if (verbose > 0) fprintf (stderr, "%s: ignored request to set inactive option %s\n", @@ -1229,7 +1237,9 @@ write_png_header (SANE_Frame format, int width, int height, int depth, int dpi, #ifdef HAVE_LIBJPEG static void -write_jpeg_header (SANE_Frame format, int width, int height, int dpi, FILE *ofp, struct jpeg_compress_struct *cinfo, struct jpeg_error_mgr *jerr) +write_jpeg_header (SANE_Frame format, int width, int height, int dpi, FILE *ofp, + struct jpeg_compress_struct *cinfo, + struct jpeg_error_mgr *jerr) { cinfo->err = jpeg_std_error(jerr); jpeg_create_compress(cinfo); @@ -2599,7 +2609,7 @@ List of available devices:", prog_name); ofp = fopen(output_file, "w"); if (ofp == NULL) { - fprintf(stderr, "%s: could not open input file '%s', " + fprintf(stderr, "%s: could not open output file '%s', " "exiting\n", prog_name, output_file); scanimage_exit(1); } diff --git a/include/sane/sanei.h b/include/sane/sanei.h index aa7003ad1..7513d2299 100644 --- a/include/sane/sanei.h +++ b/include/sane/sanei.h @@ -65,9 +65,7 @@ * This documentation is far from complete. Any help is appreciated. * * @section additional Additional documentation - * - The SANE standard can be found at the SANE webserver, - * though the PostScript version produced from the source may be more recent. + * - The SANE Standard. * - Information on how to write a backend: backend-writing.txt. * - General SANE documentation is on \n" "Language-Team: <>\n" @@ -25,23 +25,23 @@ msgid "Standard" msgstr "" #: include/sane/saneopts.h:157 backend/artec_eplus48u.c:2884 -#: backend/epson.c:3298 backend/epson2.c:1290 -#: backend/genesys/genesys.cpp:3976 backend/gt68xx.c:696 -#: backend/hp3500.c:1019 backend/hp-option.c:3300 backend/kvs1025_opt.c:639 +#: backend/epson.c:3298 backend/epson2.c:1290 backend/epsonds.c:677 +#: backend/genesys/genesys.cpp:4034 backend/gt68xx.c:696 +#: backend/hp-option.c:3300 backend/hp3500.c:1019 backend/kvs1025_opt.c:639 #: backend/kvs20xx_opt.c:285 backend/kvs40xx_opt.c:506 backend/leo.c:823 #: backend/lexmark.c:199 backend/ma1509.c:551 backend/matsushita.c:1135 #: backend/microtek2.h:599 backend/mustek.c:4373 backend/mustek_usb.c:301 -#: backend/mustek_usb2.c:465 backend/pixma_sane_options.c:160 +#: backend/mustek_usb2.c:465 backend/pixma/pixma_sane_options.c:160 #: backend/plustek.c:808 backend/plustek_pp.c:747 backend/sceptre.c:702 #: backend/snapscan-options.c:550 backend/teco1.c:1095 backend/teco2.c:1910 #: backend/teco3.c:920 backend/test.c:647 backend/u12.c:546 -#: backend/umax.c:5176 backend/umax_pp.c:576 +#: backend/umax.c:5176 backend/umax_pp.c:570 #, no-c-format msgid "Geometry" msgstr "Геометрия" #: include/sane/saneopts.h:158 backend/artec_eplus48u.c:2805 -#: backend/canon.c:1493 backend/genesys/genesys.cpp:4035 +#: backend/canon.c:1493 backend/genesys/genesys.cpp:4077 #: backend/gt68xx.c:665 backend/hp-option.c:2956 backend/kvs1025_opt.c:703 #: backend/leo.c:871 backend/ma1509.c:599 backend/matsushita.c:1189 #: backend/microtek2.h:600 backend/mustek.c:4421 backend/mustek_usb.c:349 @@ -49,7 +49,7 @@ msgstr "Геометрия" #: backend/plustek_pp.c:793 backend/sceptre.c:750 #: backend/snapscan-options.c:617 backend/stv680.c:1067 #: backend/teco1.c:1143 backend/teco2.c:1958 backend/teco3.c:968 -#: backend/u12.c:592 backend/umax.c:5226 backend/umax_pp.c:625 +#: backend/u12.c:592 backend/umax.c:5226 backend/umax_pp.c:619 #, no-c-format msgid "Enhancement" msgstr "Повишение" @@ -83,7 +83,7 @@ msgid "Bit depth" msgstr "Дълбочина на бита" #: include/sane/saneopts.h:165 backend/canon.c:1140 backend/leo.c:781 -#: backend/pixma_sane_options.c:47 +#: backend/pixma/pixma_sane_options.c:47 #, no-c-format msgid "Scan mode" msgstr "Режим на сканиране" @@ -124,7 +124,7 @@ msgid "Bottom-right y" msgstr "Долен десен y" #: include/sane/saneopts.h:173 backend/canon.c:1216 -#: backend/pixma_sane_options.c:300 +#: backend/pixma/pixma_sane_options.c:300 #, no-c-format msgid "Scan resolution" msgstr "Резолюция на сканиране" @@ -279,7 +279,7 @@ msgstr "Име на файла" msgid "Halftone pattern size" msgstr "Размер на полутоновия десен" -#: include/sane/saneopts.h:204 backend/fujitsu.c:3233 +#: include/sane/saneopts.h:204 backend/fujitsu.c:3237 #, no-c-format msgid "Halftone pattern" msgstr "Полутонов десен" @@ -289,10 +289,10 @@ msgstr "Полутонов десен" msgid "Bind X and Y resolution" msgstr "Вържи резолюцията по X и Y" -#: include/sane/saneopts.h:206 backend/hp3900_sane.c:428 -#: backend/hp3900_sane.c:1021 backend/hp3900_sane.c:1421 -#: backend/hp-option.c:3238 backend/mustek_usb2.c:121 backend/plustek.c:236 -#: backend/plustek_pp.c:205 backend/u12.c:157 +#: include/sane/saneopts.h:206 backend/hp-option.c:3238 +#: backend/hp3900_sane.c:428 backend/hp3900_sane.c:1021 +#: backend/hp3900_sane.c:1421 backend/mustek_usb2.c:121 +#: backend/plustek.c:236 backend/plustek_pp.c:205 backend/u12.c:157 #, no-c-format msgid "Negative" msgstr "Негатив" @@ -1025,78 +1025,38 @@ msgid "" "Duplex scan provides a scan of the front and back side of the document" msgstr "" -#: backend/canon630u.c:159 +#: backend/canon-sane.c:674 backend/canon.c:171 #, no-c-format -msgid "Calibrate Scanner" -msgstr "Калибрирай скенера" - -#: backend/canon630u.c:160 -#, no-c-format -msgid "Force scanner calibration before scan" -msgstr "Задължителна калибрация преди сканиране" - -#: backend/canon630u.c:259 backend/umax1220u.c:208 -#, no-c-format -msgid "Grayscale scan" -msgstr "Сканиране в сива скала" - -#: backend/canon630u.c:260 backend/umax1220u.c:209 -#, no-c-format -msgid "Do a grayscale rather than color scan" -msgstr "Направи сканиране в сива скала, не цветно" - -#: backend/canon630u.c:306 -#, no-c-format -msgid "Analog Gain" -msgstr "Аналогово увеличение" - -#: backend/canon630u.c:307 -#, no-c-format -msgid "Increase or decrease the analog gain of the CCD array" -msgstr "Повиши или намали аналоговото увеличение на CCD матрицата" - -#: backend/canon630u.c:347 backend/epson.h:68 backend/epson2.h:67 -#, no-c-format -msgid "Gamma Correction" -msgstr "Корекция на гамата" - -#: backend/canon630u.c:348 -#, no-c-format -msgid "Selects the gamma corrected transfer curve" -msgstr "Избира кривата на коригираната гама" - -#: backend/canon.c:149 backend/canon-sane.c:1318 -#, no-c-format -msgid "Raw" +msgid "Correction according to transparency ratio" msgstr "" -#: backend/canon.c:157 backend/canon-sane.c:732 backend/canon-sane.c:940 +#: backend/canon-sane.c:680 backend/canon.c:170 +#, no-c-format +msgid "Correction according to film type" +msgstr "" + +#: backend/canon-sane.c:732 backend/canon-sane.c:940 #: backend/canon-sane.c:1076 backend/canon-sane.c:1314 -#: backend/canon-sane.c:1494 backend/canon-sane.c:1643 +#: backend/canon-sane.c:1494 backend/canon-sane.c:1643 backend/canon.c:157 #, no-c-format msgid "Fine color" msgstr "" +#: backend/canon-sane.c:776 backend/canon.c:176 +#, fuzzy, no-c-format +msgid "Negatives" +msgstr "Негатив" + +#: backend/canon-sane.c:1318 backend/canon.c:149 +#, no-c-format +msgid "Raw" +msgstr "" + #: backend/canon.c:169 #, fuzzy, no-c-format msgid "No transparency correction" msgstr "Цветова корекция." -#: backend/canon.c:170 backend/canon-sane.c:680 -#, no-c-format -msgid "Correction according to film type" -msgstr "" - -#: backend/canon.c:171 backend/canon-sane.c:674 -#, no-c-format -msgid "Correction according to transparency ratio" -msgstr "" - -#: backend/canon.c:176 backend/canon-sane.c:776 -#, fuzzy, no-c-format -msgid "Negatives" -msgstr "Негатив" - #: backend/canon.c:176 #, fuzzy, no-c-format msgid "Slides" @@ -1519,94 +1479,137 @@ msgstr "Тип екран (film)" msgid "Select the film type" msgstr "Избира полутона" -#: backend/canon_dr.c:411 backend/epjitsu.c:233 backend/epson.c:501 -#: backend/epson2.c:115 backend/fujitsu.c:675 backend/gt68xx.c:148 +#: backend/canon630u.c:159 +#, no-c-format +msgid "Calibrate Scanner" +msgstr "Калибрирай скенера" + +#: backend/canon630u.c:160 +#, no-c-format +msgid "Force scanner calibration before scan" +msgstr "Задължителна калибрация преди сканиране" + +#: backend/canon630u.c:259 backend/umax1220u.c:208 +#, no-c-format +msgid "Grayscale scan" +msgstr "Сканиране в сива скала" + +#: backend/canon630u.c:260 backend/umax1220u.c:209 +#, no-c-format +msgid "Do a grayscale rather than color scan" +msgstr "Направи сканиране в сива скала, не цветно" + +#: backend/canon630u.c:306 +#, no-c-format +msgid "Analog Gain" +msgstr "Аналогово увеличение" + +#: backend/canon630u.c:307 +#, no-c-format +msgid "Increase or decrease the analog gain of the CCD array" +msgstr "Повиши или намали аналоговото увеличение на CCD матрицата" + +#: backend/canon630u.c:347 backend/epson.h:68 backend/epson2.h:67 +#, no-c-format +msgid "Gamma Correction" +msgstr "Корекция на гамата" + +#: backend/canon630u.c:348 +#, no-c-format +msgid "Selects the gamma corrected transfer curve" +msgstr "Избира кривата на коригираната гама" + +#: backend/canon_dr.c:413 backend/epjitsu.c:233 backend/epson.c:501 +#: backend/epson2-ops.c:101 backend/epson2.c:115 backend/epsonds-ops.c:32 +#: backend/epsonds.c:95 backend/epsonds.h:62 backend/fujitsu.c:677 +#: backend/genesys/genesys.h:78 backend/gt68xx.c:148 #: backend/hp3900_sane.c:418 backend/hp3900_sane.c:427 -#: backend/hp3900_sane.c:1017 backend/hp5590.c:92 backend/ma1509.c:108 -#: backend/magicolor.c:181 backend/mustek.c:156 backend/mustek.c:160 -#: backend/mustek.c:164 backend/pixma.c:920 backend/pixma_sane_options.c:92 -#: backend/snapscan-options.c:86 backend/test.c:192 backend/umax.c:181 +#: backend/hp3900_sane.c:1017 backend/hp5590.c:92 backend/kodakaio.c:617 +#: backend/ma1509.c:108 backend/magicolor.c:181 backend/mustek.c:156 +#: backend/mustek.c:160 backend/mustek.c:164 backend/pixma/pixma.c:920 +#: backend/pixma/pixma_sane_options.c:92 backend/snapscan-options.c:86 +#: backend/test.c:192 backend/umax.c:181 #, no-c-format msgid "Flatbed" msgstr "Flatbed" -#: backend/canon_dr.c:412 backend/epjitsu.c:234 backend/fujitsu.c:676 +#: backend/canon_dr.c:414 backend/epjitsu.c:234 backend/fujitsu.c:678 #: backend/kodak.c:140 #, no-c-format msgid "ADF Front" msgstr "" -#: backend/canon_dr.c:413 backend/epjitsu.c:235 backend/fujitsu.c:677 +#: backend/canon_dr.c:415 backend/epjitsu.c:235 backend/fujitsu.c:679 #: backend/kodak.c:141 #, fuzzy, no-c-format msgid "ADF Back" msgstr "ADF" -#: backend/canon_dr.c:414 backend/epjitsu.c:236 backend/fujitsu.c:678 -#: backend/hp5590.c:94 backend/kodak.c:142 backend/pixma.c:931 +#: backend/canon_dr.c:416 backend/epjitsu.c:236 backend/fujitsu.c:680 +#: backend/hp5590.c:94 backend/kodak.c:142 backend/pixma/pixma.c:931 #, fuzzy, no-c-format msgid "ADF Duplex" msgstr "Дуплексно" -#: backend/canon_dr.c:415 +#: backend/canon_dr.c:417 #, fuzzy, no-c-format msgid "Card Front" msgstr "Печат" -#: backend/canon_dr.c:416 +#: backend/canon_dr.c:418 #, no-c-format msgid "Card Back" msgstr "" -#: backend/canon_dr.c:417 +#: backend/canon_dr.c:419 #, fuzzy, no-c-format msgid "Card Duplex" msgstr "Дуплексно" -#: backend/canon_dr.c:424 backend/epson.c:599 backend/epson.c:3096 -#: backend/epson2.c:201 backend/fujitsu.c:695 -#: backend/genesys/genesys.cpp:99 backend/genesys/genesys.cpp:106 +#: backend/canon_dr.c:426 backend/epson.c:599 backend/epson.c:3096 +#: backend/epson2.c:201 backend/fujitsu.c:697 +#: backend/genesys/genesys.cpp:120 backend/genesys/genesys.cpp:127 #: backend/gt68xx_low.h:136 backend/hp-option.c:3096 #, no-c-format msgid "Red" msgstr "Червено" -#: backend/canon_dr.c:425 backend/epson.c:600 backend/epson.c:3092 -#: backend/epson2.c:202 backend/fujitsu.c:696 -#: backend/genesys/genesys.cpp:100 backend/genesys/genesys.cpp:107 +#: backend/canon_dr.c:427 backend/epson.c:600 backend/epson.c:3092 +#: backend/epson2.c:202 backend/fujitsu.c:698 +#: backend/genesys/genesys.cpp:121 backend/genesys/genesys.cpp:128 #: backend/gt68xx_low.h:137 backend/hp-option.c:3097 #, no-c-format msgid "Green" msgstr "Зелено" -#: backend/canon_dr.c:426 backend/epson.c:601 backend/epson.c:3100 -#: backend/epson2.c:203 backend/fujitsu.c:697 -#: backend/genesys/genesys.cpp:101 backend/genesys/genesys.cpp:108 +#: backend/canon_dr.c:428 backend/epson.c:601 backend/epson.c:3100 +#: backend/epson2.c:203 backend/fujitsu.c:699 +#: backend/genesys/genesys.cpp:122 backend/genesys/genesys.cpp:129 #: backend/gt68xx_low.h:138 backend/hp-option.c:3098 #, no-c-format msgid "Blue" msgstr "Синьо" -#: backend/canon_dr.c:427 +#: backend/canon_dr.c:429 #, fuzzy, no-c-format msgid "Enhance Red" msgstr "Повишение" -#: backend/canon_dr.c:428 +#: backend/canon_dr.c:430 #, fuzzy, no-c-format msgid "Enhance Green" msgstr "Повишение" -#: backend/canon_dr.c:429 +#: backend/canon_dr.c:431 #, fuzzy, no-c-format msgid "Enhance Blue" msgstr "Повишение" -#: backend/canon_dr.c:431 backend/epson.c:556 backend/epson.c:564 +#: backend/canon_dr.c:433 backend/epson.c:556 backend/epson.c:564 #: backend/epson.c:576 backend/epson.c:598 backend/epson2.c:165 #: backend/epson2.c:173 backend/epson2.c:185 backend/epson2.c:200 -#: backend/epson2.c:214 backend/fujitsu.c:701 -#: backend/genesys/genesys.cpp:109 backend/leo.c:109 +#: backend/epson2.c:214 backend/fujitsu.c:703 +#: backend/genesys/genesys.cpp:130 backend/leo.c:109 #: backend/matsushita.c:138 backend/matsushita.c:159 #: backend/matsushita.c:191 backend/matsushita.c:213 #: backend/snapscan-options.c:91 @@ -1614,42 +1617,46 @@ msgstr "Повишение" msgid "None" msgstr "Нищо" -#: backend/canon_dr.c:432 backend/fujitsu.c:702 +#: backend/canon_dr.c:434 backend/fujitsu.c:704 #, no-c-format msgid "JPEG" msgstr "" -#: backend/canon_dr.c:2477 backend/fujitsu.c:4113 -#: backend/genesys/genesys.cpp:4126 backend/kvs1025_opt.c:910 +#: backend/canon_dr.c:2479 backend/fujitsu.c:4117 +#: backend/genesys/genesys.cpp:4168 backend/kvs1025_opt.c:910 #, no-c-format msgid "Software blank skip percentage" msgstr "" -#: backend/canon_dr.c:2478 backend/fujitsu.c:4114 +#: backend/canon_dr.c:2480 backend/fujitsu.c:4118 #, no-c-format msgid "Request driver to discard pages with low percentage of dark pixels" msgstr "" -#: backend/epson.c:491 backend/epson2.c:108 backend/magicolor.c:174 +#: backend/epson.c:491 backend/epson2.c:108 backend/epsonds.c:88 +#: backend/kodakaio.c:611 backend/magicolor.c:174 #, no-c-format msgid "Simplex" msgstr "Симплексно" -#: backend/epson.c:492 backend/epson2.c:109 backend/kvs1025.h:50 -#: backend/kvs20xx_opt.c:204 backend/kvs40xx_opt.c:353 -#: backend/magicolor.c:175 backend/matsushita.h:218 +#: backend/epson.c:492 backend/epson2.c:109 backend/epsonds.c:89 +#: backend/kodakaio.c:612 backend/kvs1025.h:50 backend/kvs20xx_opt.c:204 +#: backend/kvs40xx_opt.c:353 backend/magicolor.c:175 +#: backend/matsushita.h:218 #, no-c-format msgid "Duplex" msgstr "Дуплексно" -#: backend/epson.c:502 backend/epson2.c:116 backend/pixma.c:937 +#: backend/epson.c:502 backend/epson2-ops.c:102 backend/epson2.c:116 +#: backend/epsonds-ops.c:33 backend/epsonds.h:63 backend/pixma/pixma.c:937 #, no-c-format msgid "Transparency Unit" msgstr "Прозрачност" -#: backend/epson.c:503 backend/epson2.c:118 backend/magicolor.c:182 -#: backend/mustek.c:160 backend/pixma.c:925 backend/test.c:192 -#: backend/umax.c:183 +#: backend/epson.c:503 backend/epson2-ops.c:104 backend/epson2.c:118 +#: backend/epsonds-ops.c:34 backend/epsonds.c:96 backend/epsonds.h:64 +#: backend/kodakaio.c:618 backend/magicolor.c:182 backend/mustek.c:160 +#: backend/pixma/pixma.c:925 backend/test.c:192 backend/umax.c:183 #, no-c-format msgid "Automatic Document Feeder" msgstr "Автоматично подаване на документи" @@ -1761,7 +1768,7 @@ msgstr "Мастиленоструйни принтери" msgid "CRT monitors" msgstr "CRT монитори" -#: backend/epson.c:656 backend/epson2.c:254 backend/fujitsu.c:685 +#: backend/epson.c:656 backend/epson2.c:254 backend/fujitsu.c:687 #: backend/hp-option.c:3229 backend/test.c:143 #, no-c-format msgid "Default" @@ -1825,8 +1832,8 @@ msgstr "A4" msgid "Max" msgstr "Макс." -#: backend/epson.c:2813 backend/epson2.c:976 -#: backend/genesys/genesys.cpp:3893 backend/gt68xx.c:451 +#: backend/epson.c:2813 backend/epson2.c:976 backend/epsonds.c:629 +#: backend/genesys/genesys.cpp:3965 backend/gt68xx.c:451 #: backend/hp-option.c:2917 backend/kvs1025_opt.c:521 #: backend/kvs20xx_opt.c:171 backend/kvs40xx_opt.c:320 backend/ma1509.c:501 #: backend/matsushita.c:1084 backend/microtek2.h:598 backend/mustek.c:4215 @@ -2000,17 +2007,17 @@ msgstr "Определя фактора на увеличение за скен msgid "Quick format" msgstr "Бързо форматиране" -#: backend/epson.c:3360 backend/epson2.c:1340 +#: backend/epson.c:3360 backend/epson2.c:1340 backend/epsonds.c:726 #, no-c-format msgid "Optional equipment" msgstr "Оборудване по избор" -#: backend/epson.c:3431 backend/epson2.c:1393 +#: backend/epson.c:3431 backend/epson2.c:1393 backend/epsonds.c:742 #, no-c-format msgid "Eject" msgstr "Извади" -#: backend/epson.c:3432 backend/epson2.c:1394 +#: backend/epson.c:3432 backend/epson2.c:1394 backend/epsonds.c:743 #, no-c-format msgid "Eject the sheet in the ADF" msgstr "Извади листа от ADF" @@ -2025,12 +2032,14 @@ msgstr "Авто изваждане" msgid "Eject document after scanning" msgstr "Извади документа след сканиране" -#: backend/epson.c:3457 backend/epson2.c:1416 backend/magicolor.c:2420 +#: backend/epson.c:3457 backend/epson2.c:1416 backend/epsonds.c:758 +#: backend/kodakaio.c:2855 backend/magicolor.c:2420 #, no-c-format msgid "ADF Mode" msgstr "" -#: backend/epson.c:3459 backend/epson2.c:1418 backend/magicolor.c:2422 +#: backend/epson.c:3459 backend/epson2.c:1418 backend/epsonds.c:760 +#: backend/kodakaio.c:2857 backend/magicolor.c:2422 #, no-c-format msgid "Selects the ADF mode (simplex/duplex)" msgstr "" @@ -2081,16 +2090,16 @@ msgstr "" "След изпращане на команда за сканиране, изчакай, докато бутонът на " "скенера не е натиснат, преди да започнеш самото сканиране." -#: backend/epson2.c:102 backend/pixma.c:409 -#, no-c-format -msgid "Infrared" -msgstr "" - -#: backend/epson2.c:117 +#: backend/epson2-ops.c:103 backend/epson2.c:117 #, no-c-format msgid "TPU8x10" msgstr "" +#: backend/epson2.c:102 backend/pixma/pixma.c:409 +#, no-c-format +msgid "Infrared" +msgstr "" + #: backend/epson2.c:136 #, fuzzy, no-c-format msgid "Positive Slide" @@ -2111,492 +2120,512 @@ msgstr "" msgid "User defined CCT profile" msgstr "По потребителска дефиниция" -#: backend/fujitsu.c:686 backend/hp-option.c:3330 backend/hp-option.c:3343 +#: backend/epsonds.c:750 +#, no-c-format +msgid "Load" +msgstr "" + +#: backend/epsonds.c:751 +#, fuzzy, no-c-format +msgid "Load a sheet in the ADF" +msgstr "Извади листа от ADF" + +#: backend/epsonds.c:771 +#, fuzzy, no-c-format +msgid "ADF Skew Correction" +msgstr "Без корекция" + +#: backend/epsonds.c:773 +#, fuzzy, no-c-format +msgid "Enables ADF skew correction" +msgstr "Корекция на аналоговата гама" + +#: backend/fujitsu.c:688 backend/hp-option.c:3330 backend/hp-option.c:3343 #, no-c-format msgid "On" msgstr "Вкл." -#: backend/fujitsu.c:687 backend/hp-option.c:3162 backend/hp-option.c:3329 +#: backend/fujitsu.c:689 backend/hp-option.c:3162 backend/hp-option.c:3329 #: backend/hp-option.c:3342 #, no-c-format msgid "Off" msgstr "Изкл." -#: backend/fujitsu.c:689 +#: backend/fujitsu.c:691 #, no-c-format msgid "DTC" msgstr "" -#: backend/fujitsu.c:690 +#: backend/fujitsu.c:692 #, no-c-format msgid "SDTC" msgstr "" -#: backend/fujitsu.c:692 backend/teco1.c:1152 backend/teco1.c:1153 +#: backend/fujitsu.c:694 backend/teco1.c:1152 backend/teco1.c:1153 #: backend/teco2.c:1967 backend/teco2.c:1968 backend/teco3.c:977 #: backend/teco3.c:978 #, no-c-format msgid "Dither" msgstr "Dither" -#: backend/fujitsu.c:693 +#: backend/fujitsu.c:695 #, fuzzy, no-c-format msgid "Diffusion" msgstr "Разсейка на грешките" -#: backend/fujitsu.c:698 +#: backend/fujitsu.c:700 #, fuzzy, no-c-format msgid "White" msgstr "Степен на бялото" -#: backend/fujitsu.c:699 +#: backend/fujitsu.c:701 #, fuzzy, no-c-format msgid "Black" msgstr "Степен на черното" -#: backend/fujitsu.c:704 +#: backend/fujitsu.c:706 #, fuzzy, no-c-format msgid "Continue" msgstr "Кондиционално" -#: backend/fujitsu.c:705 +#: backend/fujitsu.c:707 #, no-c-format msgid "Stop" msgstr "" -#: backend/fujitsu.c:707 +#: backend/fujitsu.c:709 #, no-c-format msgid "10mm" msgstr "" -#: backend/fujitsu.c:708 +#: backend/fujitsu.c:710 #, no-c-format msgid "15mm" msgstr "" -#: backend/fujitsu.c:709 +#: backend/fujitsu.c:711 #, no-c-format msgid "20mm" msgstr "" -#: backend/fujitsu.c:711 backend/hp-option.c:3048 +#: backend/fujitsu.c:713 backend/hp-option.c:3048 #, no-c-format msgid "Horizontal" msgstr "Хоризонтално" -#: backend/fujitsu.c:712 +#: backend/fujitsu.c:714 #, fuzzy, no-c-format msgid "Horizontal bold" msgstr "Хоризонтално" -#: backend/fujitsu.c:713 +#: backend/fujitsu.c:715 #, fuzzy, no-c-format msgid "Horizontal narrow" msgstr "Хоризонтално" -#: backend/fujitsu.c:714 backend/hp-option.c:3047 +#: backend/fujitsu.c:716 backend/hp-option.c:3047 #, no-c-format msgid "Vertical" msgstr "8x8 вертикална черта" -#: backend/fujitsu.c:715 +#: backend/fujitsu.c:717 #, fuzzy, no-c-format msgid "Vertical bold" msgstr "8x8 вертикална черта" -#: backend/fujitsu.c:717 +#: backend/fujitsu.c:719 #, no-c-format msgid "Top to bottom" msgstr "" -#: backend/fujitsu.c:718 +#: backend/fujitsu.c:720 #, no-c-format msgid "Bottom to top" msgstr "" -#: backend/fujitsu.c:720 +#: backend/fujitsu.c:722 #, fuzzy, no-c-format msgid "Front" msgstr "Печат" -#: backend/fujitsu.c:721 +#: backend/fujitsu.c:723 #, no-c-format msgid "Back" msgstr "" -#: backend/fujitsu.c:3144 backend/pixma_sane_options.c:145 +#: backend/fujitsu.c:3148 backend/pixma/pixma_sane_options.c:145 #, no-c-format msgid "Gamma function exponent" msgstr "" -#: backend/fujitsu.c:3145 backend/pixma_sane_options.c:146 +#: backend/fujitsu.c:3149 backend/pixma/pixma_sane_options.c:146 #, no-c-format msgid "Changes intensity of midtones" msgstr "" -#: backend/fujitsu.c:3194 +#: backend/fujitsu.c:3198 #, no-c-format msgid "RIF" msgstr "" -#: backend/fujitsu.c:3195 +#: backend/fujitsu.c:3199 #, no-c-format msgid "Reverse image format" msgstr "" -#: backend/fujitsu.c:3212 +#: backend/fujitsu.c:3216 #, fuzzy, no-c-format msgid "Halftone type" msgstr "Полутон" -#: backend/fujitsu.c:3213 +#: backend/fujitsu.c:3217 #, no-c-format msgid "Control type of halftone filter" msgstr "" -#: backend/fujitsu.c:3234 +#: backend/fujitsu.c:3238 #, no-c-format msgid "Control pattern of halftone filter" msgstr "" -#: backend/fujitsu.c:3256 +#: backend/fujitsu.c:3260 #, no-c-format msgid "Outline" msgstr "" -#: backend/fujitsu.c:3257 +#: backend/fujitsu.c:3261 #, fuzzy, no-c-format msgid "Perform outline extraction" msgstr "Груба калибрация" -#: backend/fujitsu.c:3268 +#: backend/fujitsu.c:3272 #, fuzzy, no-c-format msgid "Emphasis" msgstr "Подчертаване на образа" -#: backend/fujitsu.c:3269 +#: backend/fujitsu.c:3273 #, no-c-format msgid "Negative to smooth or positive to sharpen image" msgstr "" -#: backend/fujitsu.c:3287 +#: backend/fujitsu.c:3291 #, fuzzy, no-c-format msgid "Separation" msgstr "Наситеност" -#: backend/fujitsu.c:3288 +#: backend/fujitsu.c:3292 #, fuzzy, no-c-format msgid "Enable automatic separation of image and text" msgstr "Позволява автоматично определяне на прага за lineart сканиране." -#: backend/fujitsu.c:3299 +#: backend/fujitsu.c:3303 #, fuzzy, no-c-format msgid "Mirroring" msgstr "Огледален образ" -#: backend/fujitsu.c:3300 +#: backend/fujitsu.c:3304 #, fuzzy, no-c-format msgid "Reflect output image horizontally" msgstr "Прави хоризонтален огледален образ." -#: backend/fujitsu.c:3317 +#: backend/fujitsu.c:3321 #, fuzzy, no-c-format msgid "White level follower" msgstr "Степен на бялото - синьо" -#: backend/fujitsu.c:3318 +#: backend/fujitsu.c:3322 #, fuzzy, no-c-format msgid "Control white level follower" msgstr "Наглася степента на червено" -#: backend/fujitsu.c:3336 +#: backend/fujitsu.c:3340 #, fuzzy, no-c-format msgid "BP filter" msgstr "Цветно Lineart" -#: backend/fujitsu.c:3337 +#: backend/fujitsu.c:3341 #, no-c-format msgid "Improves quality of high resolution ball-point pen text" msgstr "" -#: backend/fujitsu.c:3353 backend/hp-option.h:73 +#: backend/fujitsu.c:3357 backend/hp-option.h:73 #, no-c-format msgid "Smoothing" msgstr "Изглаждане" -#: backend/fujitsu.c:3354 +#: backend/fujitsu.c:3358 #, no-c-format msgid "Enable smoothing for improved OCR" msgstr "" -#: backend/fujitsu.c:3370 +#: backend/fujitsu.c:3374 #, fuzzy, no-c-format msgid "Gamma curve" msgstr "Стойност на гамата" -#: backend/fujitsu.c:3371 +#: backend/fujitsu.c:3375 #, no-c-format msgid "Gamma curve, from light to dark, but upper two may not work" msgstr "" -#: backend/fujitsu.c:3393 backend/genesys/genesys.cpp:4187 -#: backend/pixma_sane_options.c:335 +#: backend/fujitsu.c:3397 backend/genesys/genesys.cpp:4229 +#: backend/pixma/pixma_sane_options.c:335 #, fuzzy, no-c-format msgid "Threshold curve" msgstr "Праг" -#: backend/fujitsu.c:3394 +#: backend/fujitsu.c:3398 #, no-c-format msgid "" "Threshold curve, from light to dark, but upper two may not be linear" msgstr "" -#: backend/fujitsu.c:3416 +#: backend/fujitsu.c:3420 #, fuzzy, no-c-format msgid "Threshold white" msgstr "Праг" -#: backend/fujitsu.c:3417 +#: backend/fujitsu.c:3421 #, no-c-format msgid "Set pixels equal to threshold to white instead of black" msgstr "" -#: backend/fujitsu.c:3433 backend/fujitsu.c:3434 +#: backend/fujitsu.c:3437 backend/fujitsu.c:3438 #, fuzzy, no-c-format msgid "Noise removal" msgstr "Редуциране на шума" -#: backend/fujitsu.c:3450 +#: backend/fujitsu.c:3454 #, no-c-format msgid "Matrix 5x5" msgstr "" -#: backend/fujitsu.c:3451 +#: backend/fujitsu.c:3455 #, no-c-format msgid "Remove 5 pixel square noise" msgstr "" -#: backend/fujitsu.c:3467 +#: backend/fujitsu.c:3471 #, no-c-format msgid "Matrix 4x4" msgstr "" -#: backend/fujitsu.c:3468 +#: backend/fujitsu.c:3472 #, no-c-format msgid "Remove 4 pixel square noise" msgstr "" -#: backend/fujitsu.c:3484 +#: backend/fujitsu.c:3488 #, no-c-format msgid "Matrix 3x3" msgstr "" -#: backend/fujitsu.c:3485 +#: backend/fujitsu.c:3489 #, no-c-format msgid "Remove 3 pixel square noise" msgstr "" -#: backend/fujitsu.c:3501 +#: backend/fujitsu.c:3505 #, no-c-format msgid "Matrix 2x2" msgstr "" -#: backend/fujitsu.c:3502 +#: backend/fujitsu.c:3506 #, no-c-format msgid "Remove 2 pixel square noise" msgstr "" -#: backend/fujitsu.c:3521 +#: backend/fujitsu.c:3525 #, no-c-format msgid "Variance" msgstr "" -#: backend/fujitsu.c:3522 +#: backend/fujitsu.c:3526 #, no-c-format msgid "Set SDTC variance rate (sensitivity), 0 equals 127" msgstr "" -#: backend/fujitsu.c:3555 +#: backend/fujitsu.c:3559 #, fuzzy, no-c-format msgid "Auto width detection" msgstr "Без корекция" -#: backend/fujitsu.c:3556 +#: backend/fujitsu.c:3560 #, no-c-format msgid "Scanner detects paper sides. May reduce scanning speed." msgstr "" -#: backend/fujitsu.c:3573 +#: backend/fujitsu.c:3577 #, fuzzy, no-c-format msgid "Auto length detection" msgstr "Без корекция" -#: backend/fujitsu.c:3574 +#: backend/fujitsu.c:3578 #, no-c-format msgid "Scanner detects paper lower edge. May confuse some frontends." msgstr "" -#: backend/fujitsu.c:3600 +#: backend/fujitsu.c:3604 #, no-c-format msgid "Compression" msgstr "" -#: backend/fujitsu.c:3601 +#: backend/fujitsu.c:3605 #, no-c-format msgid "Enable compressed data. May crash your front-end program" msgstr "" -#: backend/fujitsu.c:3621 +#: backend/fujitsu.c:3625 #, no-c-format msgid "Compression argument" msgstr "" -#: backend/fujitsu.c:3622 +#: backend/fujitsu.c:3626 #, no-c-format msgid "" "Level of JPEG compression. 1 is small file, 7 is large file. 0 (default) " "is same as 4" msgstr "" -#: backend/fujitsu.c:3652 +#: backend/fujitsu.c:3656 #, no-c-format msgid "DF action" msgstr "" -#: backend/fujitsu.c:3653 +#: backend/fujitsu.c:3657 #, no-c-format msgid "Action following double feed error" msgstr "" -#: backend/fujitsu.c:3669 +#: backend/fujitsu.c:3673 #, no-c-format msgid "DF skew" msgstr "" -#: backend/fujitsu.c:3670 +#: backend/fujitsu.c:3674 #, no-c-format msgid "Enable double feed error due to skew" msgstr "" -#: backend/fujitsu.c:3688 +#: backend/fujitsu.c:3692 #, no-c-format msgid "DF thickness" msgstr "" -#: backend/fujitsu.c:3689 +#: backend/fujitsu.c:3693 #, no-c-format msgid "Enable double feed error due to paper thickness" msgstr "" -#: backend/fujitsu.c:3707 +#: backend/fujitsu.c:3711 #, no-c-format msgid "DF length" msgstr "" -#: backend/fujitsu.c:3708 +#: backend/fujitsu.c:3712 #, no-c-format msgid "Enable double feed error due to paper length" msgstr "" -#: backend/fujitsu.c:3731 +#: backend/fujitsu.c:3735 #, no-c-format msgid "DF length difference" msgstr "" -#: backend/fujitsu.c:3732 +#: backend/fujitsu.c:3736 #, no-c-format msgid "Difference in page length to trigger double feed error" msgstr "" -#: backend/fujitsu.c:3755 +#: backend/fujitsu.c:3759 #, fuzzy, no-c-format msgid "DF recovery mode" msgstr "Режим на захранване" -#: backend/fujitsu.c:3756 +#: backend/fujitsu.c:3760 #, no-c-format msgid "Request scanner to reverse feed on paper jam" msgstr "" -#: backend/fujitsu.c:3775 +#: backend/fujitsu.c:3779 #, no-c-format msgid "Paper protection" msgstr "" -#: backend/fujitsu.c:3776 +#: backend/fujitsu.c:3780 #, no-c-format msgid "Request scanner to predict jams in the ADF" msgstr "" -#: backend/fujitsu.c:3795 +#: backend/fujitsu.c:3799 #, fuzzy, no-c-format msgid "Advanced paper protection" msgstr "Обнови опциите" -#: backend/fujitsu.c:3796 +#: backend/fujitsu.c:3800 #, no-c-format msgid "Request scanner to predict jams in the ADF using improved sensors" msgstr "" -#: backend/fujitsu.c:3815 +#: backend/fujitsu.c:3819 #, fuzzy, no-c-format msgid "Staple detection" msgstr "Без корекция" -#: backend/fujitsu.c:3816 +#: backend/fujitsu.c:3820 #, no-c-format msgid "Request scanner to detect jams in the ADF caused by staples" msgstr "" -#: backend/fujitsu.c:3835 +#: backend/fujitsu.c:3839 #, no-c-format msgid "Background color" msgstr "" -#: backend/fujitsu.c:3836 +#: backend/fujitsu.c:3840 #, no-c-format msgid "" "Set color of background for scans. May conflict with overscan option" msgstr "" -#: backend/fujitsu.c:3856 +#: backend/fujitsu.c:3860 #, fuzzy, no-c-format msgid "Dropout color" msgstr "Dropout" -#: backend/fujitsu.c:3857 +#: backend/fujitsu.c:3861 #, no-c-format msgid "" "One-pass scanners use only one color during gray or binary scanning, " "useful for colored paper or ink" msgstr "" -#: backend/fujitsu.c:3880 +#: backend/fujitsu.c:3884 #, fuzzy, no-c-format msgid "Buffer mode" msgstr "Режим на захранване" -#: backend/fujitsu.c:3881 +#: backend/fujitsu.c:3885 #, no-c-format msgid "Request scanner to read pages quickly from ADF into internal memory" msgstr "" -#: backend/fujitsu.c:3900 +#: backend/fujitsu.c:3904 #, no-c-format msgid "Prepick" msgstr "" -#: backend/fujitsu.c:3901 +#: backend/fujitsu.c:3905 #, no-c-format msgid "Request scanner to grab next page from ADF" msgstr "" -#: backend/fujitsu.c:3920 +#: backend/fujitsu.c:3924 #, no-c-format msgid "Overscan" msgstr "" -#: backend/fujitsu.c:3921 +#: backend/fujitsu.c:3925 #, no-c-format msgid "" "Collect a few mm of background on top side of scan, before paper enters " @@ -2604,65 +2633,65 @@ msgid "" "collection on remaining sides. May conflict with bgcolor option" msgstr "" -#: backend/fujitsu.c:3939 +#: backend/fujitsu.c:3943 #, no-c-format msgid "Sleep timer" msgstr "" -#: backend/fujitsu.c:3940 +#: backend/fujitsu.c:3944 #, no-c-format msgid "" "Time in minutes until the internal power supply switches to sleep mode" msgstr "" -#: backend/fujitsu.c:3958 +#: backend/fujitsu.c:3962 #, fuzzy, no-c-format msgid "Off timer" msgstr "Изкл. лампа" -#: backend/fujitsu.c:3959 +#: backend/fujitsu.c:3963 #, no-c-format msgid "" "Time in minutes until the internal power supply switches the scanner " "off. Will be rounded to nearest 15 minutes. Zero means never power off." msgstr "" -#: backend/fujitsu.c:3977 +#: backend/fujitsu.c:3981 #, fuzzy, no-c-format msgid "Duplex offset" msgstr "Офсет - синьо" -#: backend/fujitsu.c:3978 +#: backend/fujitsu.c:3982 #, no-c-format msgid "Adjust front/back offset" msgstr "" -#: backend/fujitsu.c:3995 backend/plustek.c:1025 backend/umax_pp.c:800 +#: backend/fujitsu.c:3999 backend/plustek.c:1025 backend/umax_pp.c:794 #, no-c-format msgid "Green offset" msgstr "Офсет - зелено" -#: backend/fujitsu.c:3996 +#: backend/fujitsu.c:4000 #, fuzzy, no-c-format msgid "Adjust green/red offset" msgstr "Офсет - зелено" -#: backend/fujitsu.c:4013 backend/plustek.c:1041 backend/umax_pp.c:812 +#: backend/fujitsu.c:4017 backend/plustek.c:1041 backend/umax_pp.c:806 #, no-c-format msgid "Blue offset" msgstr "Офсет - синьо" -#: backend/fujitsu.c:4014 +#: backend/fujitsu.c:4018 #, fuzzy, no-c-format msgid "Adjust blue/red offset" msgstr "Наглася офсета на синия канал" -#: backend/fujitsu.c:4027 +#: backend/fujitsu.c:4031 #, no-c-format msgid "Low Memory" msgstr "" -#: backend/fujitsu.c:4028 +#: backend/fujitsu.c:4032 #, no-c-format msgid "" "Limit driver memory usage for use in embedded systems. Causes some " @@ -2671,521 +2700,514 @@ msgid "" "only be used with custom front-end software." msgstr "" -#: backend/fujitsu.c:4043 +#: backend/fujitsu.c:4047 #, fuzzy, no-c-format msgid "Duplex side" msgstr "Дуплексно" -#: backend/fujitsu.c:4044 +#: backend/fujitsu.c:4048 #, no-c-format msgid "" "Tells which side (0=front, 1=back) of a duplex scan the next call to " "sane_read will return." msgstr "" -#: backend/fujitsu.c:4055 +#: backend/fujitsu.c:4059 #, no-c-format msgid "Hardware deskew and crop" msgstr "" -#: backend/fujitsu.c:4056 +#: backend/fujitsu.c:4060 #, no-c-format msgid "Request scanner to rotate and crop pages digitally." msgstr "" -#: backend/fujitsu.c:4067 backend/kvs1025_opt.c:871 +#: backend/fujitsu.c:4071 backend/kvs1025_opt.c:871 #, no-c-format msgid "Software deskew" msgstr "" -#: backend/fujitsu.c:4068 +#: backend/fujitsu.c:4072 #, no-c-format msgid "Request driver to rotate skewed pages digitally." msgstr "" -#: backend/fujitsu.c:4080 backend/kvs1025_opt.c:880 +#: backend/fujitsu.c:4084 backend/kvs1025_opt.c:880 #, no-c-format msgid "Software despeckle diameter" msgstr "" -#: backend/fujitsu.c:4081 +#: backend/fujitsu.c:4085 #, no-c-format msgid "Maximum diameter of lone dots to remove from scan." msgstr "" -#: backend/fujitsu.c:4100 backend/genesys/genesys.cpp:4117 +#: backend/fujitsu.c:4104 backend/genesys/genesys.cpp:4159 #, no-c-format msgid "Software crop" msgstr "" -#: backend/fujitsu.c:4101 +#: backend/fujitsu.c:4105 #, no-c-format msgid "Request driver to remove border from pages digitally." msgstr "" -#: backend/fujitsu.c:4130 +#: backend/fujitsu.c:4134 #, no-c-format msgid "Halt on Cancel" msgstr "" -#: backend/fujitsu.c:4131 +#: backend/fujitsu.c:4135 #, no-c-format msgid "" "Request driver to halt the paper feed instead of eject during a cancel." msgstr "" -#: backend/fujitsu.c:4142 +#: backend/fujitsu.c:4146 #, fuzzy, no-c-format msgid "Endorser Options" msgstr "Обнови опциите" -#: backend/fujitsu.c:4143 +#: backend/fujitsu.c:4147 #, no-c-format msgid "Controls for endorser unit" msgstr "" -#: backend/fujitsu.c:4154 +#: backend/fujitsu.c:4158 #, no-c-format msgid "Endorser" msgstr "" -#: backend/fujitsu.c:4155 +#: backend/fujitsu.c:4159 #, no-c-format msgid "Enable endorser unit" msgstr "" -#: backend/fujitsu.c:4170 +#: backend/fujitsu.c:4174 #, no-c-format msgid "Endorser bits" msgstr "" -#: backend/fujitsu.c:4171 +#: backend/fujitsu.c:4175 #, no-c-format msgid "Determines maximum endorser counter value." msgstr "" -#: backend/fujitsu.c:4196 +#: backend/fujitsu.c:4200 #, no-c-format msgid "Endorser value" msgstr "" -#: backend/fujitsu.c:4197 +#: backend/fujitsu.c:4201 #, no-c-format msgid "Initial endorser counter value." msgstr "" -#: backend/fujitsu.c:4220 +#: backend/fujitsu.c:4224 #, no-c-format msgid "Endorser step" msgstr "" -#: backend/fujitsu.c:4221 +#: backend/fujitsu.c:4225 #, no-c-format msgid "Change endorser counter value by this much for each page." msgstr "" -#: backend/fujitsu.c:4244 +#: backend/fujitsu.c:4248 #, no-c-format msgid "Endorser Y" msgstr "" -#: backend/fujitsu.c:4245 +#: backend/fujitsu.c:4249 #, no-c-format msgid "Endorser print offset from top of paper." msgstr "" -#: backend/fujitsu.c:4270 +#: backend/fujitsu.c:4274 #, no-c-format msgid "Endorser font" msgstr "" -#: backend/fujitsu.c:4271 +#: backend/fujitsu.c:4275 #, no-c-format msgid "Endorser printing font." msgstr "" -#: backend/fujitsu.c:4300 +#: backend/fujitsu.c:4304 #, fuzzy, no-c-format msgid "Endorser direction" msgstr "Редуциране на шума" -#: backend/fujitsu.c:4301 +#: backend/fujitsu.c:4305 #, no-c-format msgid "Endorser printing direction." msgstr "" -#: backend/fujitsu.c:4325 +#: backend/fujitsu.c:4329 #, no-c-format msgid "Endorser side" msgstr "" -#: backend/fujitsu.c:4326 +#: backend/fujitsu.c:4330 #, no-c-format msgid "Endorser printing side, requires hardware support to change" msgstr "" -#: backend/fujitsu.c:4351 +#: backend/fujitsu.c:4355 #, no-c-format msgid "Endorser string" msgstr "" -#: backend/fujitsu.c:4352 +#: backend/fujitsu.c:4356 #, no-c-format msgid "" "Endorser alphanumeric print format. %05ud or %08ud at the end will be " "replaced by counter value." msgstr "" -#: backend/fujitsu.c:4379 +#: backend/fujitsu.c:4383 #, no-c-format msgid "Top edge" msgstr "" -#: backend/fujitsu.c:4380 +#: backend/fujitsu.c:4384 #, no-c-format msgid "Paper is pulled partly into ADF" msgstr "" -#: backend/fujitsu.c:4391 +#: backend/fujitsu.c:4395 #, fuzzy, no-c-format msgid "A3 paper" msgstr "От хартия" -#: backend/fujitsu.c:4392 +#: backend/fujitsu.c:4396 #, no-c-format msgid "A3 paper detected" msgstr "" -#: backend/fujitsu.c:4403 +#: backend/fujitsu.c:4407 #, fuzzy, no-c-format msgid "B4 paper" msgstr "От хартия" -#: backend/fujitsu.c:4404 +#: backend/fujitsu.c:4408 #, no-c-format msgid "B4 paper detected" msgstr "" -#: backend/fujitsu.c:4415 +#: backend/fujitsu.c:4419 #, fuzzy, no-c-format msgid "A4 paper" msgstr "От хартия" -#: backend/fujitsu.c:4416 +#: backend/fujitsu.c:4420 #, no-c-format msgid "A4 paper detected" msgstr "" -#: backend/fujitsu.c:4427 +#: backend/fujitsu.c:4431 #, fuzzy, no-c-format msgid "B5 paper" msgstr "От хартия" -#: backend/fujitsu.c:4428 +#: backend/fujitsu.c:4432 #, no-c-format msgid "B5 paper detected" msgstr "" -#: backend/fujitsu.c:4451 +#: backend/fujitsu.c:4455 #, no-c-format msgid "OMR or DF" msgstr "" -#: backend/fujitsu.c:4452 +#: backend/fujitsu.c:4456 #, no-c-format msgid "OMR or double feed detected" msgstr "" -#: backend/fujitsu.c:4475 +#: backend/fujitsu.c:4479 #, no-c-format msgid "Power saving" msgstr "" -#: backend/fujitsu.c:4476 +#: backend/fujitsu.c:4480 #, no-c-format msgid "Scanner in power saving mode" msgstr "" -#: backend/fujitsu.c:4499 +#: backend/fujitsu.c:4503 #, fuzzy, no-c-format msgid "Manual feed" msgstr "Ръчен предв. фокус" -#: backend/fujitsu.c:4500 +#: backend/fujitsu.c:4504 #, fuzzy, no-c-format msgid "Manual feed selected" msgstr "Ръчен предв. фокус" -#: backend/fujitsu.c:4523 +#: backend/fujitsu.c:4527 #, no-c-format msgid "Function" msgstr "" -#: backend/fujitsu.c:4524 +#: backend/fujitsu.c:4528 #, no-c-format msgid "Function character on screen" msgstr "" -#: backend/fujitsu.c:4535 +#: backend/fujitsu.c:4539 #, no-c-format msgid "Ink low" msgstr "" -#: backend/fujitsu.c:4536 +#: backend/fujitsu.c:4540 #, no-c-format msgid "Imprinter ink running low" msgstr "" -#: backend/fujitsu.c:4547 +#: backend/fujitsu.c:4551 #, no-c-format msgid "Double feed" msgstr "" -#: backend/fujitsu.c:4548 +#: backend/fujitsu.c:4552 #, no-c-format msgid "Double feed detected" msgstr "" -#: backend/fujitsu.c:4559 +#: backend/fujitsu.c:4563 #, no-c-format msgid "Error code" msgstr "" -#: backend/fujitsu.c:4560 +#: backend/fujitsu.c:4564 #, fuzzy, no-c-format msgid "Hardware error code" msgstr "Резолюция на сканиране" -#: backend/fujitsu.c:4571 +#: backend/fujitsu.c:4575 #, no-c-format msgid "Skew angle" msgstr "" -#: backend/fujitsu.c:4572 +#: backend/fujitsu.c:4576 #, no-c-format msgid "Requires black background for scanning" msgstr "" -#: backend/fujitsu.c:4583 +#: backend/fujitsu.c:4587 #, no-c-format msgid "Ink remaining" msgstr "" -#: backend/fujitsu.c:4584 +#: backend/fujitsu.c:4588 #, fuzzy, no-c-format msgid "Imprinter ink level" msgstr "Степен на бялото" -#: backend/fujitsu.c:4595 +#: backend/fujitsu.c:4599 #, fuzzy, no-c-format msgid "Density" msgstr "Интензитет - червено" -#: backend/fujitsu.c:4596 +#: backend/fujitsu.c:4600 #, no-c-format msgid "Density dial" msgstr "" -#: backend/fujitsu.c:4607 backend/fujitsu.c:4608 +#: backend/fujitsu.c:4611 backend/fujitsu.c:4612 #, fuzzy, no-c-format msgid "Duplex switch" msgstr "Дуплексно" -#: backend/genesys/genesys.cpp:4118 +#: backend/genesys/genesys.cpp:4160 #, no-c-format msgid "Request backend to remove border from pages digitally" msgstr "" -#: backend/genesys/genesys.cpp:4127 backend/kvs1025_opt.c:912 +#: backend/genesys/genesys.cpp:4169 backend/kvs1025_opt.c:912 #, no-c-format msgid "Request driver to discard pages with low numbers of dark pixels" msgstr "" -#: backend/genesys/genesys.cpp:4137 backend/kvs1025_opt.c:892 +#: backend/genesys/genesys.cpp:4179 backend/kvs1025_opt.c:892 #, no-c-format msgid "Software derotate" msgstr "" -#: backend/genesys/genesys.cpp:4138 backend/kvs1025_opt.c:894 +#: backend/genesys/genesys.cpp:4180 backend/kvs1025_opt.c:894 #, no-c-format msgid "Request driver to detect and correct 90 degree image rotation" msgstr "" -#: backend/genesys/genesys.cpp:4168 backend/pixma_sane_options.c:314 +#: backend/genesys/genesys.cpp:4210 backend/pixma/pixma_sane_options.c:314 #, fuzzy, no-c-format msgid "Extras" msgstr "Екстра бързо" -#: backend/genesys/genesys.cpp:4188 backend/pixma_sane_options.c:336 +#: backend/genesys/genesys.cpp:4230 backend/pixma/pixma_sane_options.c:336 #, no-c-format msgid "Dynamic threshold curve, from light to dark, normally 50-65" msgstr "" -#: backend/genesys/genesys.cpp:4197 -#, no-c-format -msgid "Disable dynamic lineart" -msgstr "" - -#: backend/genesys/genesys.cpp:4199 -#, no-c-format -msgid "" -"Disable use of a software adaptive algorithm to generate lineart relying " -"instead on hardware lineart." -msgstr "" - -#: backend/genesys/genesys.cpp:4215 +#: backend/genesys/genesys.cpp:4240 #, fuzzy, no-c-format msgid "Disable interpolation" msgstr "Забрани връщане на главата" -#: backend/genesys/genesys.cpp:4218 +#: backend/genesys/genesys.cpp:4243 #, no-c-format msgid "" "When using high resolutions where the horizontal resolution is smaller " "than the vertical resolution this disables horizontal interpolation." msgstr "" -#: backend/genesys/genesys.cpp:4227 +#: backend/genesys/genesys.cpp:4252 #, fuzzy, no-c-format msgid "Color filter" msgstr "Цветно Lineart" -#: backend/genesys/genesys.cpp:4230 +#: backend/genesys/genesys.cpp:4255 #, no-c-format msgid "When using gray or lineart this option selects the used color." msgstr "" -#: backend/genesys/genesys.cpp:4254 +#: backend/genesys/genesys.cpp:4279 #, fuzzy, no-c-format msgid "Calibration file" msgstr "Калибрация" -#: backend/genesys/genesys.cpp:4255 +#: backend/genesys/genesys.cpp:4280 #, fuzzy, no-c-format msgid "Specify the calibration file to use" msgstr "Дефинирай режима на калибрация" -#: backend/genesys/genesys.cpp:4272 +#: backend/genesys/genesys.cpp:4297 #, fuzzy, no-c-format msgid "Calibration cache expiration time" msgstr "Режим калибрация" -#: backend/genesys/genesys.cpp:4273 +#: backend/genesys/genesys.cpp:4298 #, no-c-format msgid "" "Time (in minutes) before a cached calibration expires. A value of 0 " "means cache is not used. A negative value means cache never expires." msgstr "" -#: backend/genesys/genesys.cpp:4283 +#: backend/genesys/genesys.cpp:4308 #, fuzzy, no-c-format msgid "Lamp off time" msgstr "Изкл. лампа" -#: backend/genesys/genesys.cpp:4286 +#: backend/genesys/genesys.cpp:4311 #, no-c-format msgid "" "The lamp will be turned off after the given time (in minutes). A value " "of 0 means, that the lamp won't be turned off." msgstr "" -#: backend/genesys/genesys.cpp:4296 +#: backend/genesys/genesys.cpp:4321 #, fuzzy, no-c-format msgid "Lamp off during scan" msgstr "Груба калибрация" -#: backend/genesys/genesys.cpp:4297 +#: backend/genesys/genesys.cpp:4322 #, no-c-format msgid "The lamp will be turned off during scan. " msgstr "" -#: backend/genesys/genesys.cpp:4324 backend/genesys/genesys.cpp:4325 +#: backend/genesys/genesys.cpp:4349 backend/genesys/genesys.cpp:4350 #, fuzzy, no-c-format msgid "File button" msgstr "Изчакай натискане на бутона" -#: backend/genesys/genesys.cpp:4369 backend/genesys/genesys.cpp:4370 +#: backend/genesys/genesys.cpp:4394 backend/genesys/genesys.cpp:4395 #, no-c-format msgid "OCR button" msgstr "" -#: backend/genesys/genesys.cpp:4381 backend/genesys/genesys.cpp:4382 +#: backend/genesys/genesys.cpp:4406 backend/genesys/genesys.cpp:4407 #, fuzzy, no-c-format msgid "Power button" msgstr "Изчакай натискане на бутона" -#: backend/genesys/genesys.cpp:4393 backend/genesys/genesys.cpp:4394 +#: backend/genesys/genesys.cpp:4418 backend/genesys/genesys.cpp:4419 #, fuzzy, no-c-format msgid "Extra button" msgstr "Изчакай натискане на бутона" -#: backend/genesys/genesys.cpp:4405 backend/gt68xx.c:755 +#: backend/genesys/genesys.cpp:4430 backend/gt68xx.c:755 #, fuzzy, no-c-format msgid "Needs calibration" msgstr "Груба калибрация" -#: backend/genesys/genesys.cpp:4406 backend/gt68xx.c:756 +#: backend/genesys/genesys.cpp:4431 backend/gt68xx.c:756 backend/p5.c:1928 #, fuzzy, no-c-format msgid "The scanner needs calibration for the current settings" msgstr "Задължителна калибрация преди сканиране" -#: backend/genesys/genesys.cpp:4417 backend/gt68xx.c:780 -#: backend/gt68xx.c:781 backend/pixma_sane_options.c:226 -#: backend/plustek.c:1080 +#: backend/genesys/genesys.cpp:4442 backend/gt68xx.c:780 +#: backend/gt68xx.c:781 backend/p5.c:1937 backend/p5.c:1938 +#: backend/pixma/pixma_sane_options.c:226 backend/plustek.c:1080 #, no-c-format msgid "Buttons" msgstr "" -#: backend/genesys/genesys.cpp:4426 backend/gt68xx.c:787 -#: backend/hp5400_sane.c:392 backend/hp-option.h:97 backend/niash.c:726 -#: backend/plustek.c:941 +#: backend/genesys/genesys.cpp:4451 backend/gt68xx.c:787 +#: backend/hp-option.h:97 backend/hp5400_sane.c:392 backend/niash.c:726 +#: backend/p5.c:1945 backend/plustek.c:941 #, no-c-format msgid "Calibrate" msgstr "Калибриране" -#: backend/genesys/genesys.cpp:4428 backend/gt68xx.c:789 +#: backend/genesys/genesys.cpp:4453 backend/gt68xx.c:789 backend/p5.c:1947 #, fuzzy, no-c-format msgid "Start calibration using special sheet" msgstr "Започване на калибрацията." -#: backend/genesys/genesys.cpp:4440 backend/gt68xx.c:802 +#: backend/genesys/genesys.cpp:4465 backend/gt68xx.c:802 backend/p5.c:1958 #, fuzzy, no-c-format msgid "Clear calibration" msgstr "Груба калибрация" -#: backend/genesys/genesys.cpp:4441 backend/gt68xx.c:803 +#: backend/genesys/genesys.cpp:4466 backend/gt68xx.c:803 backend/p5.c:1960 #, fuzzy, no-c-format msgid "Clear calibration cache" msgstr "Режим калибрация" -#: backend/genesys/genesys.cpp:4451 +#: backend/genesys/genesys.cpp:4476 #, fuzzy, no-c-format msgid "Force calibration" msgstr "Груба калибрация" -#: backend/genesys/genesys.cpp:4452 +#: backend/genesys/genesys.cpp:4477 #, no-c-format msgid "Force calibration ignoring all and any calibration caches" msgstr "" -#: backend/genesys/genesys.cpp:4462 +#: backend/genesys/genesys.cpp:4487 #, fuzzy, no-c-format msgid "Ignore internal offsets" msgstr "Офсет - зелено" -#: backend/genesys/genesys.cpp:4464 +#: backend/genesys/genesys.cpp:4489 #, no-c-format msgid "" "Acquires the image including the internal calibration areas of the " "scanner" msgstr "" -#: backend/gt68xx.c:149 backend/ma1509.c:108 backend/mustek.c:164 -#: backend/snapscan-options.c:87 backend/umax.c:182 +#: backend/genesys/genesys.h:79 backend/gt68xx.c:149 backend/ma1509.c:108 +#: backend/mustek.c:164 backend/snapscan-options.c:87 backend/umax.c:182 #, no-c-format msgid "Transparency Adapter" msgstr "Адаптиране на прозрачността" +#: backend/genesys/genesys.h:80 +#, fuzzy, no-c-format +msgid "Transparency Adapter Infrared" +msgstr "Адаптиране на прозрачността" + #: backend/gt68xx.c:470 #, no-c-format msgid "Gray mode color" @@ -3286,6 +3308,310 @@ msgstr "Стойност на гамата" msgid "Sets the gamma value of all channels." msgstr "Наглася стойността на гамата за всички канали." +#: backend/hp-option.c:2987 +#, fuzzy, no-c-format +msgid "Advanced Options" +msgstr "Обнови опциите" + +#: backend/hp-option.c:3044 +#, no-c-format +msgid "Coarse" +msgstr "8х8 грубо" + +#: backend/hp-option.c:3045 +#, no-c-format +msgid "Fine" +msgstr "Име на файла" + +#: backend/hp-option.c:3046 +#, no-c-format +msgid "Bayer" +msgstr "Bayer" + +#: backend/hp-option.c:3049 backend/hp-option.c:3100 +#, no-c-format +msgid "Custom" +msgstr "8х8 по избор" + +#: backend/hp-option.c:3090 backend/hp-option.c:3146 +#: backend/hp-option.c:3161 +#, no-c-format +msgid "Auto" +msgstr "Авто" + +#: backend/hp-option.c:3091 +#, no-c-format +msgid "NTSC RGB" +msgstr "NTSC RGB" + +#: backend/hp-option.c:3092 +#, no-c-format +msgid "XPA RGB" +msgstr "XPA RGB" + +#: backend/hp-option.c:3093 +#, fuzzy, no-c-format +msgid "Pass-through" +msgstr "Pass-through" + +#: backend/hp-option.c:3094 +#, no-c-format +msgid "NTSC Gray" +msgstr "NTSC сиво" + +#: backend/hp-option.c:3095 +#, no-c-format +msgid "XPA Gray" +msgstr "XPA сиво" + +#: backend/hp-option.c:3147 +#, no-c-format +msgid "Slow" +msgstr "По-бавно" + +#: backend/hp-option.c:3148 backend/hp-option.c:3255 +#: backend/kvs40xx_opt.c:230 backend/matsushita.c:244 backend/mustek.c:149 +#: backend/plustek.c:234 backend/plustek_pp.c:203 backend/u12.c:155 +#, no-c-format +msgid "Normal" +msgstr "Нормално" + +#: backend/hp-option.c:3149 +#, no-c-format +msgid "Fast" +msgstr "По-бързо" + +#: backend/hp-option.c:3150 +#, no-c-format +msgid "Extra Fast" +msgstr "Екстра бързо" + +#: backend/hp-option.c:3163 +#, no-c-format +msgid "2-pixel" +msgstr "2-пикселно" + +#: backend/hp-option.c:3164 +#, no-c-format +msgid "4-pixel" +msgstr "4-пикселно" + +#: backend/hp-option.c:3165 +#, no-c-format +msgid "8-pixel" +msgstr "8-пикселно" + +#: backend/hp-option.c:3176 +#, no-c-format +msgid "Print" +msgstr "Печат" + +#: backend/hp-option.c:3177 backend/hp3900_sane.c:427 +#: backend/hp3900_sane.c:1019 +#, no-c-format +msgid "Slide" +msgstr "Солидно бяло" + +#: backend/hp-option.c:3178 +#, no-c-format +msgid "Film-strip" +msgstr "Тип филм" + +#: backend/hp-option.c:3256 backend/hp5590.c:93 +#, no-c-format +msgid "ADF" +msgstr "ADF" + +#: backend/hp-option.c:3257 +#, no-c-format +msgid "XPA" +msgstr "XPA" + +#: backend/hp-option.c:3331 backend/hp-option.c:3344 +#, no-c-format +msgid "Conditional" +msgstr "Кондиционално" + +#: backend/hp-option.c:3417 +#, fuzzy, no-c-format +msgid "Experiment" +msgstr "Време за експонация" + +#: backend/hp-option.h:60 +#, no-c-format +msgid "Sharpening" +msgstr "Изостряне" + +#: backend/hp-option.h:61 +#, no-c-format +msgid "Set sharpening value." +msgstr "Нагласи стойността за изостряне." + +#: backend/hp-option.h:66 +#, no-c-format +msgid "Auto Threshold" +msgstr "Автоматичен праг" + +#: backend/hp-option.h:68 +#, no-c-format +msgid "Enable automatic determination of threshold for line-art scans." +msgstr "Позволява автоматично определяне на прага за lineart сканиране." + +#: backend/hp-option.h:74 +#, no-c-format +msgid "Select smoothing filter." +msgstr "Избира полутона" + +#: backend/hp-option.h:79 +#, no-c-format +msgid "Unload media after scan" +msgstr "Отзареждане на медията след сканиране." + +#: backend/hp-option.h:80 +#, no-c-format +msgid "Unloads the media after a scan." +msgstr "Отзарежда медията след сканиране." + +#: backend/hp-option.h:85 +#, no-c-format +msgid "Change document" +msgstr "Смени документа" + +#: backend/hp-option.h:86 +#, no-c-format +msgid "Change Document." +msgstr "Смени документа." + +#: backend/hp-option.h:91 +#, no-c-format +msgid "Unload" +msgstr "Отзареди" + +#: backend/hp-option.h:92 +#, no-c-format +msgid "Unload Document." +msgstr "Отзареди документа." + +#: backend/hp-option.h:98 +#, no-c-format +msgid "Start calibration process." +msgstr "Започване на калибрацията." + +#: backend/hp-option.h:103 +#, no-c-format +msgid "Media" +msgstr "Медия" + +#: backend/hp-option.h:104 +#, no-c-format +msgid "Set type of media." +msgstr "Нагласи типа медия." + +#: backend/hp-option.h:109 +#, no-c-format +msgid "Exposure time" +msgstr "Време за експонация" + +#: backend/hp-option.h:111 +#, no-c-format +msgid "" +"A longer exposure time lets the scanner collect more light. Suggested " +"use is 175% for prints, 150% for normal slides and \"Negative\" for " +"negative film. For dark (underexposed) images you can increase this " +"value." +msgstr "" +"По-дългото време на експонация позволява на скенера да събере повече " +"светлина. Предложената употреба е 175% за разпечатки, 150% за нормални " +"слайдове и \"Негатив\" за негативен филм. За тъмни (подекспонирани) " +"изображения можете да завишите тази стойност." + +#: backend/hp-option.h:119 backend/hp-option.h:126 +#, no-c-format +msgid "Color Matrix" +msgstr "Цветна матрица" + +#: backend/hp-option.h:121 +#, fuzzy, no-c-format +msgid "Set the scanner's color matrix." +msgstr "Наглася цветната матрица на скенера." + +#: backend/hp-option.h:127 +#, no-c-format +msgid "Custom color matrix." +msgstr "Цветна матрица по избор." + +#: backend/hp-option.h:132 +#, no-c-format +msgid "Mono Color Matrix" +msgstr "Едноцветна матрица" + +#: backend/hp-option.h:133 +#, no-c-format +msgid "Custom color matrix for grayscale scans." +msgstr "Цветна матрица по избор за сканиране в сива скала." + +#: backend/hp-option.h:138 +#, no-c-format +msgid "Mirror horizontal" +msgstr "Огледало хоризонтално" + +#: backend/hp-option.h:139 +#, no-c-format +msgid "Mirror image horizontally." +msgstr "Прави хоризонтален огледален образ." + +#: backend/hp-option.h:144 +#, no-c-format +msgid "Mirror vertical" +msgstr "Огледало вертикално" + +#: backend/hp-option.h:145 +#, no-c-format +msgid "Mirror image vertically." +msgstr "Прави вертикален огледален образ" + +#: backend/hp-option.h:150 +#, no-c-format +msgid "Update options" +msgstr "Обнови опциите" + +#: backend/hp-option.h:151 +#, no-c-format +msgid "Update options." +msgstr "Обнови опциите." + +#: backend/hp-option.h:156 +#, no-c-format +msgid "8 bit output" +msgstr "8-битово извеждане." + +#: backend/hp-option.h:158 +#, no-c-format +msgid "Use bit depth greater eight internally, but output only eight bits." +msgstr "" +"Вътрешно използвай по-голяма дълбочина от осем бита, но извеждай само " +"осем бита." + +#: backend/hp-option.h:164 +#, no-c-format +msgid "Front button wait" +msgstr "Изчакай бутона" + +#: backend/hp-option.h:165 +#, no-c-format +msgid "Wait to scan for front-panel button push." +msgstr "Изчакай за натискане на бутона преди сканиране." + +#: backend/hp-option.h:172 +#, no-c-format +msgid "Shut off lamp" +msgstr "Изключи лампата" + +#: backend/hp-option.h:173 +#, no-c-format +msgid "Shut off scanner lamp." +msgstr "Изключва лампата на скенера" + #: backend/hp3500.c:1020 #, fuzzy, no-c-format msgid "Geometry Group" @@ -3296,12 +3622,6 @@ msgstr "Геометрия" msgid "Scan Mode Group" msgstr "Режим на сканиране" -#: backend/hp3900_sane.c:427 backend/hp3900_sane.c:1019 -#: backend/hp-option.c:3177 -#, no-c-format -msgid "Slide" -msgstr "Солидно бяло" - #: backend/hp3900_sane.c:1405 #, fuzzy, no-c-format msgid "Scanner model" @@ -3495,11 +3815,6 @@ msgstr "Включва/изключва лампата." msgid "Calibrates for black and white level." msgstr "" -#: backend/hp5590.c:93 backend/hp-option.c:3256 -#, no-c-format -msgid "ADF" -msgstr "ADF" - #: backend/hp5590.c:95 #, fuzzy, no-c-format msgid "TMA Slides" @@ -3610,299 +3925,6 @@ msgid "" "r*65536+256*g+b or gray value (default=violet or gray)" msgstr "" -#: backend/hp-option.c:2987 -#, fuzzy, no-c-format -msgid "Advanced Options" -msgstr "Обнови опциите" - -#: backend/hp-option.c:3044 -#, no-c-format -msgid "Coarse" -msgstr "8х8 грубо" - -#: backend/hp-option.c:3045 -#, no-c-format -msgid "Fine" -msgstr "Име на файла" - -#: backend/hp-option.c:3046 -#, no-c-format -msgid "Bayer" -msgstr "Bayer" - -#: backend/hp-option.c:3049 backend/hp-option.c:3100 -#, no-c-format -msgid "Custom" -msgstr "8х8 по избор" - -#: backend/hp-option.c:3090 backend/hp-option.c:3146 -#: backend/hp-option.c:3161 -#, no-c-format -msgid "Auto" -msgstr "Авто" - -#: backend/hp-option.c:3091 -#, no-c-format -msgid "NTSC RGB" -msgstr "NTSC RGB" - -#: backend/hp-option.c:3092 -#, no-c-format -msgid "XPA RGB" -msgstr "XPA RGB" - -#: backend/hp-option.c:3093 -#, fuzzy, no-c-format -msgid "Pass-through" -msgstr "Pass-through" - -#: backend/hp-option.c:3094 -#, no-c-format -msgid "NTSC Gray" -msgstr "NTSC сиво" - -#: backend/hp-option.c:3095 -#, no-c-format -msgid "XPA Gray" -msgstr "XPA сиво" - -#: backend/hp-option.c:3147 -#, no-c-format -msgid "Slow" -msgstr "По-бавно" - -#: backend/hp-option.c:3148 backend/hp-option.c:3255 -#: backend/kvs40xx_opt.c:230 backend/matsushita.c:244 backend/mustek.c:149 -#: backend/plustek.c:234 backend/plustek_pp.c:203 backend/u12.c:155 -#, no-c-format -msgid "Normal" -msgstr "Нормално" - -#: backend/hp-option.c:3149 -#, no-c-format -msgid "Fast" -msgstr "По-бързо" - -#: backend/hp-option.c:3150 -#, no-c-format -msgid "Extra Fast" -msgstr "Екстра бързо" - -#: backend/hp-option.c:3163 -#, no-c-format -msgid "2-pixel" -msgstr "2-пикселно" - -#: backend/hp-option.c:3164 -#, no-c-format -msgid "4-pixel" -msgstr "4-пикселно" - -#: backend/hp-option.c:3165 -#, no-c-format -msgid "8-pixel" -msgstr "8-пикселно" - -#: backend/hp-option.c:3176 -#, no-c-format -msgid "Print" -msgstr "Печат" - -#: backend/hp-option.c:3178 -#, no-c-format -msgid "Film-strip" -msgstr "Тип филм" - -#: backend/hp-option.c:3257 -#, no-c-format -msgid "XPA" -msgstr "XPA" - -#: backend/hp-option.c:3331 backend/hp-option.c:3344 -#, no-c-format -msgid "Conditional" -msgstr "Кондиционално" - -#: backend/hp-option.c:3417 -#, fuzzy, no-c-format -msgid "Experiment" -msgstr "Време за експонация" - -#: backend/hp-option.h:60 -#, no-c-format -msgid "Sharpening" -msgstr "Изостряне" - -#: backend/hp-option.h:61 -#, no-c-format -msgid "Set sharpening value." -msgstr "Нагласи стойността за изостряне." - -#: backend/hp-option.h:66 -#, no-c-format -msgid "Auto Threshold" -msgstr "Автоматичен праг" - -#: backend/hp-option.h:68 -#, no-c-format -msgid "Enable automatic determination of threshold for line-art scans." -msgstr "Позволява автоматично определяне на прага за lineart сканиране." - -#: backend/hp-option.h:74 -#, no-c-format -msgid "Select smoothing filter." -msgstr "Избира полутона" - -#: backend/hp-option.h:79 -#, no-c-format -msgid "Unload media after scan" -msgstr "Отзареждане на медията след сканиране." - -#: backend/hp-option.h:80 -#, no-c-format -msgid "Unloads the media after a scan." -msgstr "Отзарежда медията след сканиране." - -#: backend/hp-option.h:85 -#, no-c-format -msgid "Change document" -msgstr "Смени документа" - -#: backend/hp-option.h:86 -#, no-c-format -msgid "Change Document." -msgstr "Смени документа." - -#: backend/hp-option.h:91 -#, no-c-format -msgid "Unload" -msgstr "Отзареди" - -#: backend/hp-option.h:92 -#, no-c-format -msgid "Unload Document." -msgstr "Отзареди документа." - -#: backend/hp-option.h:98 -#, no-c-format -msgid "Start calibration process." -msgstr "Започване на калибрацията." - -#: backend/hp-option.h:103 -#, no-c-format -msgid "Media" -msgstr "Медия" - -#: backend/hp-option.h:104 -#, no-c-format -msgid "Set type of media." -msgstr "Нагласи типа медия." - -#: backend/hp-option.h:109 -#, no-c-format -msgid "Exposure time" -msgstr "Време за експонация" - -#: backend/hp-option.h:111 -#, no-c-format -msgid "" -"A longer exposure time lets the scanner collect more light. Suggested " -"use is 175% for prints, 150% for normal slides and \"Negative\" for " -"negative film. For dark (underexposed) images you can increase this " -"value." -msgstr "" -"По-дългото време на експонация позволява на скенера да събере повече " -"светлина. Предложената употреба е 175% за разпечатки, 150% за нормални " -"слайдове и \"Негатив\" за негативен филм. За тъмни (подекспонирани) " -"изображения можете да завишите тази стойност." - -#: backend/hp-option.h:119 backend/hp-option.h:126 -#, no-c-format -msgid "Color Matrix" -msgstr "Цветна матрица" - -#: backend/hp-option.h:121 -#, fuzzy, no-c-format -msgid "Set the scanner's color matrix." -msgstr "Наглася цветната матрица на скенера." - -#: backend/hp-option.h:127 -#, no-c-format -msgid "Custom color matrix." -msgstr "Цветна матрица по избор." - -#: backend/hp-option.h:132 -#, no-c-format -msgid "Mono Color Matrix" -msgstr "Едноцветна матрица" - -#: backend/hp-option.h:133 -#, no-c-format -msgid "Custom color matrix for grayscale scans." -msgstr "Цветна матрица по избор за сканиране в сива скала." - -#: backend/hp-option.h:138 -#, no-c-format -msgid "Mirror horizontal" -msgstr "Огледало хоризонтално" - -#: backend/hp-option.h:139 -#, no-c-format -msgid "Mirror image horizontally." -msgstr "Прави хоризонтален огледален образ." - -#: backend/hp-option.h:144 -#, no-c-format -msgid "Mirror vertical" -msgstr "Огледало вертикално" - -#: backend/hp-option.h:145 -#, no-c-format -msgid "Mirror image vertically." -msgstr "Прави вертикален огледален образ" - -#: backend/hp-option.h:150 -#, no-c-format -msgid "Update options" -msgstr "Обнови опциите" - -#: backend/hp-option.h:151 -#, no-c-format -msgid "Update options." -msgstr "Обнови опциите." - -#: backend/hp-option.h:156 -#, no-c-format -msgid "8 bit output" -msgstr "8-битово извеждане." - -#: backend/hp-option.h:158 -#, no-c-format -msgid "Use bit depth greater eight internally, but output only eight bits." -msgstr "" -"Вътрешно използвай по-голяма дълбочина от осем бита, но извеждай само " -"осем бита." - -#: backend/hp-option.h:164 -#, no-c-format -msgid "Front button wait" -msgstr "Изчакай бутона" - -#: backend/hp-option.h:165 -#, no-c-format -msgid "Wait to scan for front-panel button push." -msgstr "Изчакай за натискане на бутона преди сканиране." - -#: backend/hp-option.h:172 -#, no-c-format -msgid "Shut off lamp" -msgstr "Изключи лампата" - -#: backend/hp-option.h:173 -#, no-c-format -msgid "Shut off scanner lamp." -msgstr "Изключва лампата на скенера" - #: backend/kvs1025.h:51 backend/kvs20xx_opt.c:295 backend/kvs40xx_opt.c:516 #: backend/matsushita.h:219 #, no-c-format @@ -4001,7 +4023,7 @@ msgid "single" msgstr "" #: backend/kvs1025_opt.c:73 backend/kvs20xx.c:462 backend/kvs20xx_opt.c:56 -#: backend/kvs40xx.c:704 backend/kvs40xx.c:722 backend/kvs40xx_opt.c:102 +#: backend/kvs40xx.c:705 backend/kvs40xx.c:723 backend/kvs40xx_opt.c:102 #: backend/kvs40xx_opt.c:1087 #, fuzzy, no-c-format msgid "continuous" @@ -4300,7 +4322,7 @@ msgstr "Наглася подчертаването на образа" #: backend/kvs1025_opt.c:807 backend/kvs1025_opt.c:808 #: backend/matsushita.c:1300 backend/matsushita.c:1301 -#: backend/pixma_sane_options.c:112 +#: backend/pixma/pixma_sane_options.c:112 #, no-c-format msgid "Gamma" msgstr "Гама" @@ -4590,52 +4612,52 @@ msgstr "8x8 Bayer" msgid "8x8 Vertical Line" msgstr "8x8 вертикална черта" -#: backend/lexmark.c:273 backend/umax_pp.c:711 +#: backend/lexmark.c:273 backend/umax_pp.c:705 #, no-c-format msgid "Gain" msgstr "Увеличение" -#: backend/lexmark.c:274 backend/umax_pp.c:712 +#: backend/lexmark.c:274 backend/umax_pp.c:706 #, no-c-format msgid "Color channels gain settings" msgstr "Настройки по увеличение на цветните канали" -#: backend/lexmark.c:283 backend/umax_pp.c:719 +#: backend/lexmark.c:283 backend/umax_pp.c:713 #, no-c-format msgid "Gray gain" msgstr "Увеличение - сиво" -#: backend/lexmark.c:284 backend/umax_pp.c:720 +#: backend/lexmark.c:284 backend/umax_pp.c:714 #, no-c-format msgid "Sets gray channel gain" msgstr "Наглася увеличение на сивия канал" -#: backend/lexmark.c:297 backend/plustek.c:1001 backend/umax_pp.c:731 +#: backend/lexmark.c:297 backend/plustek.c:1001 backend/umax_pp.c:725 #, no-c-format msgid "Red gain" msgstr "Увеличение - червено" -#: backend/lexmark.c:298 backend/umax_pp.c:732 +#: backend/lexmark.c:298 backend/umax_pp.c:726 #, no-c-format msgid "Sets red channel gain" msgstr "Наглася увеличение на червения канал" -#: backend/lexmark.c:311 backend/plustek.c:1017 backend/umax_pp.c:743 +#: backend/lexmark.c:311 backend/plustek.c:1017 backend/umax_pp.c:737 #, no-c-format msgid "Green gain" msgstr "Увеличение - зелено" -#: backend/lexmark.c:312 backend/umax_pp.c:744 +#: backend/lexmark.c:312 backend/umax_pp.c:738 #, no-c-format msgid "Sets green channel gain" msgstr "Наглася увеличение на зеления канал" -#: backend/lexmark.c:325 backend/plustek.c:1033 backend/umax_pp.c:755 +#: backend/lexmark.c:325 backend/plustek.c:1033 backend/umax_pp.c:749 #, no-c-format msgid "Blue gain" msgstr "Увеличение - синьо" -#: backend/lexmark.c:326 backend/umax_pp.c:756 +#: backend/lexmark.c:326 backend/umax_pp.c:750 #, no-c-format msgid "Sets blue channel gain" msgstr "Наглася увеличение на синия канал" @@ -4721,7 +4743,7 @@ msgstr "Една страница" msgid "All pages" msgstr "Всички страници" -#: backend/matsushita.c:1034 backend/plustek.c:1333 +#: backend/matsushita.c:1034 backend/p5_device.c:8 backend/plustek.c:1333 #, fuzzy, no-c-format msgid "sheetfed scanner" msgstr "скенер с sheetfeed" @@ -5224,39 +5246,44 @@ msgstr "" "Загрявай, докато яркостта на лампата е постоянна, вместо да настояваш за " "40 секундно загряване." -#: backend/pixma.c:397 +#: backend/p5.c:1926 +#, fuzzy, no-c-format +msgid "Need calibration" +msgstr "Груба калибрация" + +#: backend/pixma/pixma.c:397 #, fuzzy, no-c-format msgid "Negative color" msgstr "Негативен филм" -#: backend/pixma.c:402 +#: backend/pixma/pixma.c:402 #, fuzzy, no-c-format msgid "Negative gray" msgstr "Негатив" -#: backend/pixma.c:415 +#: backend/pixma/pixma.c:415 #, no-c-format msgid "48 bits color" msgstr "" -#: backend/pixma.c:420 +#: backend/pixma/pixma.c:420 #, no-c-format msgid "16 bits gray" msgstr "" -#: backend/pixma_sane_options.c:84 +#: backend/pixma/pixma_sane_options.c:84 #, no-c-format msgid "" "Selects the scan source (such as a document-feeder). Set source before " "mode and resolution. Resets mode and resolution to auto values." msgstr "" -#: backend/pixma_sane_options.c:98 +#: backend/pixma/pixma_sane_options.c:98 #, no-c-format msgid "Button-controlled scan" msgstr "" -#: backend/pixma_sane_options.c:99 +#: backend/pixma/pixma_sane_options.c:99 #, no-c-format msgid "" "When enabled, scan process will not start immediately. To proceed, press " @@ -5264,37 +5291,37 @@ msgid "" "cancel, press \"GRAY\" button." msgstr "" -#: backend/pixma_sane_options.c:232 +#: backend/pixma/pixma_sane_options.c:232 #, no-c-format msgid "Update button state" msgstr "" -#: backend/pixma_sane_options.c:244 +#: backend/pixma/pixma_sane_options.c:244 #, no-c-format msgid "Button 1" msgstr "" -#: backend/pixma_sane_options.c:258 +#: backend/pixma/pixma_sane_options.c:258 #, no-c-format msgid "Button 2" msgstr "" -#: backend/pixma_sane_options.c:272 +#: backend/pixma/pixma_sane_options.c:272 #, no-c-format msgid "Type of original to scan" msgstr "" -#: backend/pixma_sane_options.c:286 +#: backend/pixma/pixma_sane_options.c:286 #, no-c-format msgid "Target operation type" msgstr "" -#: backend/pixma_sane_options.c:348 +#: backend/pixma/pixma_sane_options.c:348 #, no-c-format msgid "ADF Waiting Time" msgstr "" -#: backend/pixma_sane_options.c:349 +#: backend/pixma/pixma_sane_options.c:349 #, no-c-format msgid "" "When set, the scanner waits upto the specified time in seconds for a new " @@ -5386,7 +5413,7 @@ msgstr "Аналогова гама - червено" msgid "Red gain value of the AFE" msgstr "" -#: backend/plustek.c:1009 backend/umax_pp.c:788 +#: backend/plustek.c:1009 backend/umax_pp.c:782 #, no-c-format msgid "Red offset" msgstr "Офсет - червено" @@ -5661,7 +5688,7 @@ msgstr "" msgid "This option reflects the status of a scanner button." msgstr "" -#: backend/rts8891.c:2840 backend/umax.c:5795 backend/umax_pp.c:635 +#: backend/rts8891.c:2840 backend/umax.c:5795 backend/umax_pp.c:629 #, no-c-format msgid "Lamp on" msgstr "Вкл. лампа" @@ -5671,12 +5698,12 @@ msgstr "Вкл. лампа" msgid "Turn on scanner lamp" msgstr "Включи лампата на скенера" -#: backend/rts8891.c:2851 backend/umax1220u.c:248 backend/umax.c:5812 +#: backend/rts8891.c:2851 backend/umax.c:5812 backend/umax1220u.c:248 #, no-c-format msgid "Lamp off" msgstr "Изкл. лампа" -#: backend/rts8891.c:2852 backend/umax1220u.c:249 backend/umax.c:5813 +#: backend/rts8891.c:2852 backend/umax.c:5813 backend/umax1220u.c:249 #, no-c-format msgid "Turn off scanner lamp" msgstr "Изключва лампата на скенера" @@ -6481,52 +6508,52 @@ msgstr "Режим калибрация" msgid "Define calibration mode" msgstr "Дефинирай режима на калибрация" -#: backend/umax_pp.c:636 +#: backend/umax_pp.c:630 #, no-c-format msgid "Sets lamp on/off" msgstr "Включва/изключва лампата" -#: backend/umax_pp.c:645 +#: backend/umax_pp.c:639 #, no-c-format msgid "UTA on" msgstr "UTA вкл." -#: backend/umax_pp.c:646 +#: backend/umax_pp.c:640 #, no-c-format msgid "Sets UTA on/off" msgstr "Включва/изключва UTA" -#: backend/umax_pp.c:767 +#: backend/umax_pp.c:761 #, no-c-format msgid "Offset" msgstr "Офсет" -#: backend/umax_pp.c:769 +#: backend/umax_pp.c:763 #, no-c-format msgid "Color channels offset settings" msgstr "Настройки по офсета на цветните канали" -#: backend/umax_pp.c:776 +#: backend/umax_pp.c:770 #, no-c-format msgid "Gray offset" msgstr "Офсет - сиво" -#: backend/umax_pp.c:777 +#: backend/umax_pp.c:771 #, no-c-format msgid "Sets gray channel offset" msgstr "Наглася офсета на сивия канал" -#: backend/umax_pp.c:789 +#: backend/umax_pp.c:783 #, no-c-format msgid "Sets red channel offset" msgstr "Наглася офсета на червения канал" -#: backend/umax_pp.c:801 +#: backend/umax_pp.c:795 #, no-c-format msgid "Sets green channel offset" msgstr "Наглася офсета на зеления канал" -#: backend/umax_pp.c:813 +#: backend/umax_pp.c:807 #, no-c-format msgid "Sets blue channel offset" msgstr "Наглася офсета на синия канал" diff --git a/po/ca.po b/po/ca.po index e34020915..498ce4973 100644 --- a/po/ca.po +++ b/po/ca.po @@ -1,13 +1,13 @@ -# Copyright (C) 2018 The SANE developers +# Copyright (C) 2018-2020 The SANE developers # This file is distributed under the same license as the sane-backends package. # -# Antoni Bella Pérez , 2018. +# Antoni Bella Pérez , 2018, 2020. msgid "" msgstr "" -"Project-Id-Version: sane-backends 1.0.27git\n" +"Project-Id-Version: sane-backends 1.0.29\n" "Report-Msgid-Bugs-To: sane-devel@alioth-lists.debian.net\n" -"POT-Creation-Date: 2019-10-12 17:41+0300\n" -"PO-Revision-Date: 2018-09-10 00:37+0100\n" +"POT-Creation-Date: 2020-01-12 07:09+0000\n" +"PO-Revision-Date: 2020-01-17 11:40+0100\n" "Last-Translator: Antoni Bella Pérez \n" "Language-Team: Catalan \n" "Language: ca\n" @@ -15,7 +15,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Lokalize 2.0\n" +"X-Generator: Lokalize 20.03.70\n" #: include/sane/saneopts.h:154 #, no-c-format @@ -28,23 +28,23 @@ msgid "Standard" msgstr "Estàndard" #: include/sane/saneopts.h:157 backend/artec_eplus48u.c:2884 -#: backend/epson.c:3298 backend/epson2.c:1290 -#: backend/genesys/genesys.cpp:3976 backend/gt68xx.c:696 -#: backend/hp3500.c:1019 backend/hp-option.c:3300 backend/kvs1025_opt.c:639 +#: backend/epson.c:3298 backend/epson2.c:1290 backend/epsonds.c:677 +#: backend/genesys/genesys.cpp:4034 backend/gt68xx.c:696 +#: backend/hp-option.c:3300 backend/hp3500.c:1019 backend/kvs1025_opt.c:639 #: backend/kvs20xx_opt.c:285 backend/kvs40xx_opt.c:506 backend/leo.c:823 #: backend/lexmark.c:199 backend/ma1509.c:551 backend/matsushita.c:1135 #: backend/microtek2.h:599 backend/mustek.c:4373 backend/mustek_usb.c:301 -#: backend/mustek_usb2.c:465 backend/pixma_sane_options.c:160 +#: backend/mustek_usb2.c:465 backend/pixma/pixma_sane_options.c:160 #: backend/plustek.c:808 backend/plustek_pp.c:747 backend/sceptre.c:702 #: backend/snapscan-options.c:550 backend/teco1.c:1095 backend/teco2.c:1910 #: backend/teco3.c:920 backend/test.c:647 backend/u12.c:546 -#: backend/umax.c:5176 backend/umax_pp.c:576 +#: backend/umax.c:5176 backend/umax_pp.c:570 #, no-c-format msgid "Geometry" msgstr "Geometria" #: include/sane/saneopts.h:158 backend/artec_eplus48u.c:2805 -#: backend/canon.c:1493 backend/genesys/genesys.cpp:4035 +#: backend/canon.c:1493 backend/genesys/genesys.cpp:4077 #: backend/gt68xx.c:665 backend/hp-option.c:2956 backend/kvs1025_opt.c:703 #: backend/leo.c:871 backend/ma1509.c:599 backend/matsushita.c:1189 #: backend/microtek2.h:600 backend/mustek.c:4421 backend/mustek_usb.c:349 @@ -52,7 +52,7 @@ msgstr "Geometria" #: backend/plustek_pp.c:793 backend/sceptre.c:750 #: backend/snapscan-options.c:617 backend/stv680.c:1067 #: backend/teco1.c:1143 backend/teco2.c:1958 backend/teco3.c:968 -#: backend/u12.c:592 backend/umax.c:5226 backend/umax_pp.c:625 +#: backend/u12.c:592 backend/umax.c:5226 backend/umax_pp.c:619 #, no-c-format msgid "Enhancement" msgstr "Millora" @@ -86,7 +86,7 @@ msgid "Bit depth" msgstr "Bits de profunditat" #: include/sane/saneopts.h:165 backend/canon.c:1140 backend/leo.c:781 -#: backend/pixma_sane_options.c:47 +#: backend/pixma/pixma_sane_options.c:47 #, no-c-format msgid "Scan mode" msgstr "Mode d'escaneig" @@ -127,7 +127,7 @@ msgid "Bottom-right y" msgstr "A baix-dreta Y" #: include/sane/saneopts.h:173 backend/canon.c:1216 -#: backend/pixma_sane_options.c:300 +#: backend/pixma/pixma_sane_options.c:300 #, no-c-format msgid "Scan resolution" msgstr "Resolució de l'escàner" @@ -282,7 +282,7 @@ msgstr "Nom de fitxer" msgid "Halftone pattern size" msgstr "Mida del patró per al semi to" -#: include/sane/saneopts.h:204 backend/fujitsu.c:3233 +#: include/sane/saneopts.h:204 backend/fujitsu.c:3237 #, no-c-format msgid "Halftone pattern" msgstr "Patró per al semi to" @@ -292,10 +292,10 @@ msgstr "Patró per al semi to" msgid "Bind X and Y resolution" msgstr "Enllaça les resolucions X i Y" -#: include/sane/saneopts.h:206 backend/hp3900_sane.c:428 -#: backend/hp3900_sane.c:1021 backend/hp3900_sane.c:1421 -#: backend/hp-option.c:3238 backend/mustek_usb2.c:121 backend/plustek.c:236 -#: backend/plustek_pp.c:205 backend/u12.c:157 +#: include/sane/saneopts.h:206 backend/hp-option.c:3238 +#: backend/hp3900_sane.c:428 backend/hp3900_sane.c:1021 +#: backend/hp3900_sane.c:1421 backend/mustek_usb2.c:121 +#: backend/plustek.c:236 backend/plustek_pp.c:205 backend/u12.c:157 #, no-c-format msgid "Negative" msgstr "Negatiu" @@ -416,7 +416,7 @@ msgid "Lamp off at exit" msgstr "Apaga la làmpada en sortir" #: include/sane/saneopts.h:245 -#, fuzzy, no-c-format +#, no-c-format msgid "" "Read-only option that specifies how many options a specific device " "supports." @@ -768,7 +768,7 @@ msgid "Analog gamma-correction for blue" msgstr "Correcció de la gamma analògica per al blau" #: include/sane/saneopts.h:415 -#, fuzzy, no-c-format +#, no-c-format msgid "Warm up lamp before scanning" msgstr "Escalfament de la làmpada abans d'escanejar" @@ -918,9 +918,9 @@ msgid "Operation not supported" msgstr "Operació no admesa" #: backend/sane_strstatus.c:65 -#, fuzzy, no-c-format +#, no-c-format msgid "Operation was canceled" -msgstr "L'operació ha estat cancel·lada" +msgstr "S'ha cancel·lat l'operació" #: backend/sane_strstatus.c:68 #, no-c-format @@ -1013,7 +1013,7 @@ msgid "Only perform shading-correction" msgstr "Realitza només la correcció de les ombres" #: backend/artec_eplus48u.c:2956 -#, fuzzy, no-c-format +#, no-c-format msgid "" "If enabled, only the shading correction is performed during calibration. " "The default values for gain, offset and exposure time, either built-in " @@ -1045,86 +1045,45 @@ msgid "Duplex scan" msgstr "Escaneja a dues cares" #: backend/avision.h:783 -#, fuzzy, no-c-format +#, no-c-format msgid "" "Duplex scan provides a scan of the front and back side of the document" msgstr "" "L'escanejat de les dues cares proporciona un escanejat de l'anvers i el " "revers del document" -#: backend/canon630u.c:159 +#: backend/canon-sane.c:674 backend/canon.c:171 #, no-c-format -msgid "Calibrate Scanner" -msgstr "Calibratge de l'escàner" +msgid "Correction according to transparency ratio" +msgstr "Correcció d'acord amb la relació de transparència" -#: backend/canon630u.c:160 +#: backend/canon-sane.c:680 backend/canon.c:170 #, no-c-format -msgid "Force scanner calibration before scan" -msgstr "Força el calibratge de l'escàner abans de l'escaneig" +msgid "Correction according to film type" +msgstr "Correcció d'acord amb el tipus de pel·lícula" -#: backend/canon630u.c:259 backend/umax1220u.c:208 -#, no-c-format -msgid "Grayscale scan" -msgstr "Escaneja en escala de grisos" - -#: backend/canon630u.c:260 backend/umax1220u.c:209 -#, no-c-format -msgid "Do a grayscale rather than color scan" -msgstr "Fes un escaneig en escala de grisos en lloc d'en color" - -#: backend/canon630u.c:306 -#, no-c-format -msgid "Analog Gain" -msgstr "Guany analògic" - -#: backend/canon630u.c:307 -#, no-c-format -msgid "Increase or decrease the analog gain of the CCD array" -msgstr "Augmenta o disminueix el guany analògic per a la matriu del CCD" - -#: backend/canon630u.c:347 backend/epson.h:68 backend/epson2.h:67 -#, no-c-format -msgid "Gamma Correction" -msgstr "Correcció de la gamma" - -#: backend/canon630u.c:348 -#, no-c-format -msgid "Selects the gamma corrected transfer curve" -msgstr "" -"Selecciona la corba de transferència per a la correcció de la gamma" - -#: backend/canon.c:149 backend/canon-sane.c:1318 -#, no-c-format -msgid "Raw" -msgstr "En brut" - -#: backend/canon.c:157 backend/canon-sane.c:732 backend/canon-sane.c:940 +#: backend/canon-sane.c:732 backend/canon-sane.c:940 #: backend/canon-sane.c:1076 backend/canon-sane.c:1314 -#: backend/canon-sane.c:1494 backend/canon-sane.c:1643 +#: backend/canon-sane.c:1494 backend/canon-sane.c:1643 backend/canon.c:157 #, no-c-format msgid "Fine color" msgstr "Color fi" +#: backend/canon-sane.c:776 backend/canon.c:176 +#, no-c-format +msgid "Negatives" +msgstr "Negatius" + +#: backend/canon-sane.c:1318 backend/canon.c:149 +#, no-c-format +msgid "Raw" +msgstr "En brut" + #: backend/canon.c:169 #, no-c-format msgid "No transparency correction" msgstr "Sense correcció de la transparència" -#: backend/canon.c:170 backend/canon-sane.c:680 -#, no-c-format -msgid "Correction according to film type" -msgstr "Correcció d'acord amb el tipus de pel·lícula" - -#: backend/canon.c:171 backend/canon-sane.c:674 -#, no-c-format -msgid "Correction according to transparency ratio" -msgstr "Correcció d'acord amb la relació de transparència" - -#: backend/canon.c:176 backend/canon-sane.c:776 -#, no-c-format -msgid "Negatives" -msgstr "Negatius" - #: backend/canon.c:176 #, no-c-format msgid "Slides" @@ -1260,9 +1219,9 @@ msgid "invalid bit IDENTIFY message" msgstr "Missatge «IDENTIFY» del bit no vàlid" #: backend/canon.c:460 -#, fuzzy, no-c-format +#, no-c-format msgid "option not correct" -msgstr "L'opció no connectar" +msgstr "Opció no correcta" #: backend/canon.c:474 #, no-c-format @@ -1560,94 +1519,138 @@ msgstr "Selecciona el tipus de pel·lícula" msgid "Select the film type" msgstr "Selecciona el tipus de pel·lícula" -#: backend/canon_dr.c:411 backend/epjitsu.c:233 backend/epson.c:501 -#: backend/epson2.c:115 backend/fujitsu.c:675 backend/gt68xx.c:148 +#: backend/canon630u.c:159 +#, no-c-format +msgid "Calibrate Scanner" +msgstr "Calibratge de l'escàner" + +#: backend/canon630u.c:160 +#, no-c-format +msgid "Force scanner calibration before scan" +msgstr "Força el calibratge de l'escàner abans de l'escaneig" + +#: backend/canon630u.c:259 backend/umax1220u.c:208 +#, no-c-format +msgid "Grayscale scan" +msgstr "Escaneja en escala de grisos" + +#: backend/canon630u.c:260 backend/umax1220u.c:209 +#, no-c-format +msgid "Do a grayscale rather than color scan" +msgstr "Fes un escaneig en escala de grisos en lloc d'en color" + +#: backend/canon630u.c:306 +#, no-c-format +msgid "Analog Gain" +msgstr "Guany analògic" + +#: backend/canon630u.c:307 +#, no-c-format +msgid "Increase or decrease the analog gain of the CCD array" +msgstr "Augmenta o disminueix el guany analògic per a la matriu del CCD" + +#: backend/canon630u.c:347 backend/epson.h:68 backend/epson2.h:67 +#, no-c-format +msgid "Gamma Correction" +msgstr "Correcció de la gamma" + +#: backend/canon630u.c:348 +#, no-c-format +msgid "Selects the gamma corrected transfer curve" +msgstr "" +"Selecciona la corba de transferència per a la correcció de la gamma" + +#: backend/canon_dr.c:413 backend/epjitsu.c:233 backend/epson.c:501 +#: backend/epson2-ops.c:101 backend/epson2.c:115 backend/epsonds-ops.c:32 +#: backend/epsonds.c:95 backend/epsonds.h:62 backend/fujitsu.c:677 +#: backend/genesys/genesys.h:78 backend/gt68xx.c:148 #: backend/hp3900_sane.c:418 backend/hp3900_sane.c:427 -#: backend/hp3900_sane.c:1017 backend/hp5590.c:92 backend/ma1509.c:108 -#: backend/magicolor.c:181 backend/mustek.c:156 backend/mustek.c:160 -#: backend/mustek.c:164 backend/pixma.c:920 backend/pixma_sane_options.c:92 -#: backend/snapscan-options.c:86 backend/test.c:192 backend/umax.c:181 +#: backend/hp3900_sane.c:1017 backend/hp5590.c:92 backend/kodakaio.c:617 +#: backend/ma1509.c:108 backend/magicolor.c:181 backend/mustek.c:156 +#: backend/mustek.c:160 backend/mustek.c:164 backend/pixma/pixma.c:920 +#: backend/pixma/pixma_sane_options.c:92 backend/snapscan-options.c:86 +#: backend/test.c:192 backend/umax.c:181 #, no-c-format msgid "Flatbed" msgstr "De superfície plana" -#: backend/canon_dr.c:412 backend/epjitsu.c:234 backend/fujitsu.c:676 +#: backend/canon_dr.c:414 backend/epjitsu.c:234 backend/fujitsu.c:678 #: backend/kodak.c:140 #, no-c-format msgid "ADF Front" msgstr "ADF per a l'anvers" -#: backend/canon_dr.c:413 backend/epjitsu.c:235 backend/fujitsu.c:677 +#: backend/canon_dr.c:415 backend/epjitsu.c:235 backend/fujitsu.c:679 #: backend/kodak.c:141 #, no-c-format msgid "ADF Back" msgstr "ADF per al revers" -#: backend/canon_dr.c:414 backend/epjitsu.c:236 backend/fujitsu.c:678 -#: backend/hp5590.c:94 backend/kodak.c:142 backend/pixma.c:931 +#: backend/canon_dr.c:416 backend/epjitsu.c:236 backend/fujitsu.c:680 +#: backend/hp5590.c:94 backend/kodak.c:142 backend/pixma/pixma.c:931 #, no-c-format msgid "ADF Duplex" msgstr "ADF per a les dues cares" -#: backend/canon_dr.c:415 +#: backend/canon_dr.c:417 #, no-c-format msgid "Card Front" msgstr "Targeta per a l'anvers" -#: backend/canon_dr.c:416 +#: backend/canon_dr.c:418 #, no-c-format msgid "Card Back" msgstr "Targeta per al revers" -#: backend/canon_dr.c:417 +#: backend/canon_dr.c:419 #, no-c-format msgid "Card Duplex" msgstr "Targeta per a les dues cares" -#: backend/canon_dr.c:424 backend/epson.c:599 backend/epson.c:3096 -#: backend/epson2.c:201 backend/fujitsu.c:695 -#: backend/genesys/genesys.cpp:99 backend/genesys/genesys.cpp:106 +#: backend/canon_dr.c:426 backend/epson.c:599 backend/epson.c:3096 +#: backend/epson2.c:201 backend/fujitsu.c:697 +#: backend/genesys/genesys.cpp:120 backend/genesys/genesys.cpp:127 #: backend/gt68xx_low.h:136 backend/hp-option.c:3096 #, no-c-format msgid "Red" msgstr "Vermell" -#: backend/canon_dr.c:425 backend/epson.c:600 backend/epson.c:3092 -#: backend/epson2.c:202 backend/fujitsu.c:696 -#: backend/genesys/genesys.cpp:100 backend/genesys/genesys.cpp:107 +#: backend/canon_dr.c:427 backend/epson.c:600 backend/epson.c:3092 +#: backend/epson2.c:202 backend/fujitsu.c:698 +#: backend/genesys/genesys.cpp:121 backend/genesys/genesys.cpp:128 #: backend/gt68xx_low.h:137 backend/hp-option.c:3097 #, no-c-format msgid "Green" msgstr "Verd" -#: backend/canon_dr.c:426 backend/epson.c:601 backend/epson.c:3100 -#: backend/epson2.c:203 backend/fujitsu.c:697 -#: backend/genesys/genesys.cpp:101 backend/genesys/genesys.cpp:108 +#: backend/canon_dr.c:428 backend/epson.c:601 backend/epson.c:3100 +#: backend/epson2.c:203 backend/fujitsu.c:699 +#: backend/genesys/genesys.cpp:122 backend/genesys/genesys.cpp:129 #: backend/gt68xx_low.h:138 backend/hp-option.c:3098 #, no-c-format msgid "Blue" msgstr "Blau" -#: backend/canon_dr.c:427 +#: backend/canon_dr.c:429 #, no-c-format msgid "Enhance Red" msgstr "Vermell realçat" -#: backend/canon_dr.c:428 +#: backend/canon_dr.c:430 #, no-c-format msgid "Enhance Green" msgstr "Verd realçat" -#: backend/canon_dr.c:429 +#: backend/canon_dr.c:431 #, no-c-format msgid "Enhance Blue" msgstr "Blau realçat" -#: backend/canon_dr.c:431 backend/epson.c:556 backend/epson.c:564 +#: backend/canon_dr.c:433 backend/epson.c:556 backend/epson.c:564 #: backend/epson.c:576 backend/epson.c:598 backend/epson2.c:165 #: backend/epson2.c:173 backend/epson2.c:185 backend/epson2.c:200 -#: backend/epson2.c:214 backend/fujitsu.c:701 -#: backend/genesys/genesys.cpp:109 backend/leo.c:109 +#: backend/epson2.c:214 backend/fujitsu.c:703 +#: backend/genesys/genesys.cpp:130 backend/leo.c:109 #: backend/matsushita.c:138 backend/matsushita.c:159 #: backend/matsushita.c:191 backend/matsushita.c:213 #: backend/snapscan-options.c:91 @@ -1655,44 +1658,48 @@ msgstr "Blau realçat" msgid "None" msgstr "Cap" -#: backend/canon_dr.c:432 backend/fujitsu.c:702 +#: backend/canon_dr.c:434 backend/fujitsu.c:704 #, no-c-format msgid "JPEG" msgstr "JPEG" -#: backend/canon_dr.c:2477 backend/fujitsu.c:4113 -#: backend/genesys/genesys.cpp:4126 backend/kvs1025_opt.c:910 +#: backend/canon_dr.c:2479 backend/fujitsu.c:4117 +#: backend/genesys/genesys.cpp:4168 backend/kvs1025_opt.c:910 #, no-c-format msgid "Software blank skip percentage" msgstr "El percentatge per a saltar el blanc del programari" -#: backend/canon_dr.c:2478 backend/fujitsu.c:4114 +#: backend/canon_dr.c:2480 backend/fujitsu.c:4118 #, no-c-format msgid "Request driver to discard pages with low percentage of dark pixels" msgstr "" "Sol·licita al controlador que descarti les pàgines amb un percentatge " "baix de píxels foscos" -#: backend/epson.c:491 backend/epson2.c:108 backend/magicolor.c:174 +#: backend/epson.c:491 backend/epson2.c:108 backend/epsonds.c:88 +#: backend/kodakaio.c:611 backend/magicolor.c:174 #, no-c-format msgid "Simplex" msgstr "Una cara" -#: backend/epson.c:492 backend/epson2.c:109 backend/kvs1025.h:50 -#: backend/kvs20xx_opt.c:204 backend/kvs40xx_opt.c:353 -#: backend/magicolor.c:175 backend/matsushita.h:218 +#: backend/epson.c:492 backend/epson2.c:109 backend/epsonds.c:89 +#: backend/kodakaio.c:612 backend/kvs1025.h:50 backend/kvs20xx_opt.c:204 +#: backend/kvs40xx_opt.c:353 backend/magicolor.c:175 +#: backend/matsushita.h:218 #, no-c-format msgid "Duplex" msgstr "Dues cares" -#: backend/epson.c:502 backend/epson2.c:116 backend/pixma.c:937 +#: backend/epson.c:502 backend/epson2-ops.c:102 backend/epson2.c:116 +#: backend/epsonds-ops.c:33 backend/epsonds.h:63 backend/pixma/pixma.c:937 #, no-c-format msgid "Transparency Unit" msgstr "Unitat per a la transparència" -#: backend/epson.c:503 backend/epson2.c:118 backend/magicolor.c:182 -#: backend/mustek.c:160 backend/pixma.c:925 backend/test.c:192 -#: backend/umax.c:183 +#: backend/epson.c:503 backend/epson2-ops.c:104 backend/epson2.c:118 +#: backend/epsonds-ops.c:34 backend/epsonds.c:96 backend/epsonds.h:64 +#: backend/kodakaio.c:618 backend/magicolor.c:182 backend/mustek.c:160 +#: backend/pixma/pixma.c:925 backend/test.c:192 backend/umax.c:183 #, no-c-format msgid "Automatic Document Feeder" msgstr "Alimentador automàtic de documents" @@ -1804,7 +1811,7 @@ msgstr "Impressores d'injecció de tinta" msgid "CRT monitors" msgstr "Monitors CRT" -#: backend/epson.c:656 backend/epson2.c:254 backend/fujitsu.c:685 +#: backend/epson.c:656 backend/epson2.c:254 backend/fujitsu.c:687 #: backend/hp-option.c:3229 backend/test.c:143 #, no-c-format msgid "Default" @@ -1868,8 +1875,8 @@ msgstr "A4" msgid "Max" msgstr "Màx" -#: backend/epson.c:2813 backend/epson2.c:976 -#: backend/genesys/genesys.cpp:3893 backend/gt68xx.c:451 +#: backend/epson.c:2813 backend/epson2.c:976 backend/epsonds.c:629 +#: backend/genesys/genesys.cpp:3965 backend/gt68xx.c:451 #: backend/hp-option.c:2917 backend/kvs1025_opt.c:521 #: backend/kvs20xx_opt.c:171 backend/kvs40xx_opt.c:320 backend/ma1509.c:501 #: backend/matsushita.c:1084 backend/microtek2.h:598 backend/mustek.c:4215 @@ -2044,17 +2051,17 @@ msgstr "Defineix el factor de zoom que usarà l'escàner" msgid "Quick format" msgstr "Format ràpid" -#: backend/epson.c:3360 backend/epson2.c:1340 +#: backend/epson.c:3360 backend/epson2.c:1340 backend/epsonds.c:726 #, no-c-format msgid "Optional equipment" msgstr "Equipament opcional" -#: backend/epson.c:3431 backend/epson2.c:1393 +#: backend/epson.c:3431 backend/epson2.c:1393 backend/epsonds.c:742 #, no-c-format msgid "Eject" msgstr "Expulsa" -#: backend/epson.c:3432 backend/epson2.c:1394 +#: backend/epson.c:3432 backend/epson2.c:1394 backend/epsonds.c:743 #, no-c-format msgid "Eject the sheet in the ADF" msgstr "Expulsa el full de l'ADF" @@ -2069,12 +2076,14 @@ msgstr "Expulsa automàticament" msgid "Eject document after scanning" msgstr "Expulsa el document després de l'escaneig" -#: backend/epson.c:3457 backend/epson2.c:1416 backend/magicolor.c:2420 +#: backend/epson.c:3457 backend/epson2.c:1416 backend/epsonds.c:758 +#: backend/kodakaio.c:2855 backend/magicolor.c:2420 #, no-c-format msgid "ADF Mode" msgstr "Mode ADF" -#: backend/epson.c:3459 backend/epson2.c:1418 backend/magicolor.c:2422 +#: backend/epson.c:3459 backend/epson2.c:1418 backend/epsonds.c:760 +#: backend/kodakaio.c:2857 backend/magicolor.c:2422 #, no-c-format msgid "Selects the ADF mode (simplex/duplex)" msgstr "Seleccionar el mode de l'ADF (una cara/dues cares)" @@ -2126,17 +2135,17 @@ msgstr "" "Després d'enviar l'ordre d'escaneig, s'ha d'esperar fins que es premi el " "botó de l'escàner per iniciar realment el procés d'escaneig." -#: backend/epson2.c:102 backend/pixma.c:409 -#, no-c-format -msgid "Infrared" -msgstr "Infraroigs" - # Nota: https://github.com/Scan-o-Matic/scanomatic/wiki/Installing-scanners -#: backend/epson2.c:117 +#: backend/epson2-ops.c:103 backend/epson2.c:117 #, no-c-format msgid "TPU8x10" msgstr "TPU8x10" +#: backend/epson2.c:102 backend/pixma/pixma.c:409 +#, no-c-format +msgid "Infrared" +msgstr "Infraroigs" + #: backend/epson2.c:136 #, no-c-format msgid "Positive Slide" @@ -2158,243 +2167,263 @@ msgstr "Incorpora el perfil CCT" msgid "User defined CCT profile" msgstr "Perfil CCT definit per l'usuari" -#: backend/fujitsu.c:686 backend/hp-option.c:3330 backend/hp-option.c:3343 +#: backend/epsonds.c:750 +#, no-c-format +msgid "Load" +msgstr "Carrega" + +#: backend/epsonds.c:751 +#, no-c-format +msgid "Load a sheet in the ADF" +msgstr "Carrega un full a l'ADF" + +#: backend/epsonds.c:771 +#, no-c-format +msgid "ADF Skew Correction" +msgstr "Correcció de la inclinació a l'ADF" + +#: backend/epsonds.c:773 +#, no-c-format +msgid "Enables ADF skew correction" +msgstr "Habilita la correcció de la inclinació a l'ADF" + +#: backend/fujitsu.c:688 backend/hp-option.c:3330 backend/hp-option.c:3343 #, no-c-format msgid "On" msgstr "Actiu" -#: backend/fujitsu.c:687 backend/hp-option.c:3162 backend/hp-option.c:3329 +#: backend/fujitsu.c:689 backend/hp-option.c:3162 backend/hp-option.c:3329 #: backend/hp-option.c:3342 #, no-c-format msgid "Off" msgstr "Inactiu" -#: backend/fujitsu.c:689 +#: backend/fujitsu.c:691 #, no-c-format msgid "DTC" msgstr "DTC" -#: backend/fujitsu.c:690 +#: backend/fujitsu.c:692 #, no-c-format msgid "SDTC" msgstr "SDTC" -#: backend/fujitsu.c:692 backend/teco1.c:1152 backend/teco1.c:1153 +#: backend/fujitsu.c:694 backend/teco1.c:1152 backend/teco1.c:1153 #: backend/teco2.c:1967 backend/teco2.c:1968 backend/teco3.c:977 #: backend/teco3.c:978 #, no-c-format msgid "Dither" msgstr "Tramat" -#: backend/fujitsu.c:693 +#: backend/fujitsu.c:695 #, no-c-format msgid "Diffusion" msgstr "Difusió" -#: backend/fujitsu.c:698 +#: backend/fujitsu.c:700 #, no-c-format msgid "White" msgstr "Blanc" -#: backend/fujitsu.c:699 +#: backend/fujitsu.c:701 #, no-c-format msgid "Black" msgstr "Negre" -#: backend/fujitsu.c:704 +#: backend/fujitsu.c:706 #, no-c-format msgid "Continue" msgstr "Continua" -#: backend/fujitsu.c:705 +#: backend/fujitsu.c:707 #, no-c-format msgid "Stop" msgstr "Atura" -#: backend/fujitsu.c:707 +#: backend/fujitsu.c:709 #, no-c-format msgid "10mm" msgstr "10 mm" -#: backend/fujitsu.c:708 +#: backend/fujitsu.c:710 #, no-c-format msgid "15mm" msgstr "15 mm" -#: backend/fujitsu.c:709 +#: backend/fujitsu.c:711 #, no-c-format msgid "20mm" msgstr "20 mm" -#: backend/fujitsu.c:711 backend/hp-option.c:3048 +#: backend/fujitsu.c:713 backend/hp-option.c:3048 #, no-c-format msgid "Horizontal" msgstr "Horitzontal" -#: backend/fujitsu.c:712 +#: backend/fujitsu.c:714 #, no-c-format msgid "Horizontal bold" msgstr "Horitzontal en negre" -#: backend/fujitsu.c:713 +#: backend/fujitsu.c:715 #, no-c-format msgid "Horizontal narrow" msgstr "Horitzontal estreta" -#: backend/fujitsu.c:714 backend/hp-option.c:3047 +#: backend/fujitsu.c:716 backend/hp-option.c:3047 #, no-c-format msgid "Vertical" msgstr "Vertical" -#: backend/fujitsu.c:715 +#: backend/fujitsu.c:717 #, no-c-format msgid "Vertical bold" msgstr "Vertical en negre" -#: backend/fujitsu.c:717 +#: backend/fujitsu.c:719 #, no-c-format msgid "Top to bottom" msgstr "De dalt a baix" -#: backend/fujitsu.c:718 +#: backend/fujitsu.c:720 #, no-c-format msgid "Bottom to top" msgstr "De baix a dalt" -#: backend/fujitsu.c:720 +#: backend/fujitsu.c:722 #, no-c-format msgid "Front" msgstr "Anvers" -#: backend/fujitsu.c:721 +#: backend/fujitsu.c:723 #, no-c-format msgid "Back" msgstr "Revers" -#: backend/fujitsu.c:3144 backend/pixma_sane_options.c:145 +#: backend/fujitsu.c:3148 backend/pixma/pixma_sane_options.c:145 #, no-c-format msgid "Gamma function exponent" msgstr "Exponent de la funció gamma" -#: backend/fujitsu.c:3145 backend/pixma_sane_options.c:146 +#: backend/fujitsu.c:3149 backend/pixma/pixma_sane_options.c:146 #, no-c-format msgid "Changes intensity of midtones" msgstr "Canvia la intensitat dels semi tons" -#: backend/fujitsu.c:3194 +#: backend/fujitsu.c:3198 #, no-c-format msgid "RIF" msgstr "RIF" -#: backend/fujitsu.c:3195 +#: backend/fujitsu.c:3199 #, no-c-format msgid "Reverse image format" msgstr "Format d'imatge inversa" -#: backend/fujitsu.c:3212 +#: backend/fujitsu.c:3216 #, no-c-format msgid "Halftone type" msgstr "Tipus de semi to" -#: backend/fujitsu.c:3213 +#: backend/fujitsu.c:3217 #, no-c-format msgid "Control type of halftone filter" msgstr "Controla el tipus de filtre del semi to" -#: backend/fujitsu.c:3234 +#: backend/fujitsu.c:3238 #, no-c-format msgid "Control pattern of halftone filter" msgstr "Controla el patró del filtre del semi to" -#: backend/fujitsu.c:3256 +#: backend/fujitsu.c:3260 #, no-c-format msgid "Outline" msgstr "Contorn" -#: backend/fujitsu.c:3257 +#: backend/fujitsu.c:3261 #, no-c-format msgid "Perform outline extraction" msgstr "Realitza l'extracció del contorn" -#: backend/fujitsu.c:3268 +#: backend/fujitsu.c:3272 #, no-c-format msgid "Emphasis" msgstr "Èmfasi" -#: backend/fujitsu.c:3269 +#: backend/fujitsu.c:3273 #, no-c-format msgid "Negative to smooth or positive to sharpen image" msgstr "Negatiu per a suavitzar o positiu per aguditzar la imatge" -#: backend/fujitsu.c:3287 +#: backend/fujitsu.c:3291 #, no-c-format msgid "Separation" msgstr "Separació" -#: backend/fujitsu.c:3288 +#: backend/fujitsu.c:3292 #, no-c-format msgid "Enable automatic separation of image and text" msgstr "Habilita la separació automàtica de les imatges i el text" -#: backend/fujitsu.c:3299 +#: backend/fujitsu.c:3303 #, no-c-format msgid "Mirroring" msgstr "Emmiralla" -#: backend/fujitsu.c:3300 +#: backend/fujitsu.c:3304 #, no-c-format msgid "Reflect output image horizontally" msgstr "Reflecteix horitzontalment la imatge de sortida" -#: backend/fujitsu.c:3317 +#: backend/fujitsu.c:3321 #, no-c-format msgid "White level follower" msgstr "Seguidor del nivell de blanc" -#: backend/fujitsu.c:3318 +#: backend/fujitsu.c:3322 #, no-c-format msgid "Control white level follower" msgstr "Controla el seguidor del nivell de blanc" -#: backend/fujitsu.c:3336 +#: backend/fujitsu.c:3340 #, no-c-format msgid "BP filter" msgstr "Filtre per al bolígraf" -#: backend/fujitsu.c:3337 +#: backend/fujitsu.c:3341 #, no-c-format msgid "Improves quality of high resolution ball-point pen text" msgstr "Millora la qualitat del text del bolígraf amb alta resolució" -#: backend/fujitsu.c:3353 backend/hp-option.h:73 +#: backend/fujitsu.c:3357 backend/hp-option.h:73 #, no-c-format msgid "Smoothing" msgstr "Suavitzat" -#: backend/fujitsu.c:3354 +#: backend/fujitsu.c:3358 #, no-c-format msgid "Enable smoothing for improved OCR" msgstr "Habilita el suavitzat per a millorar l'OCR" -#: backend/fujitsu.c:3370 +#: backend/fujitsu.c:3374 #, no-c-format msgid "Gamma curve" msgstr "Corba amb interval" -#: backend/fujitsu.c:3371 +#: backend/fujitsu.c:3375 #, no-c-format msgid "Gamma curve, from light to dark, but upper two may not work" msgstr "" "La corba amb interval, des de la llum a la foscor, però la part superior " "de les dues podria no funcionar" -#: backend/fujitsu.c:3393 backend/genesys/genesys.cpp:4187 -#: backend/pixma_sane_options.c:335 +#: backend/fujitsu.c:3397 backend/genesys/genesys.cpp:4229 +#: backend/pixma/pixma_sane_options.c:335 #, no-c-format msgid "Threshold curve" msgstr "Corba del llindar" -#: backend/fujitsu.c:3394 +#: backend/fujitsu.c:3398 #, no-c-format msgid "" "Threshold curve, from light to dark, but upper two may not be linear" @@ -2402,116 +2431,116 @@ msgstr "" "La corba del llindar, des de la llum a la foscor, però la part superior " "de les dues podria no ser lineal" -#: backend/fujitsu.c:3416 +#: backend/fujitsu.c:3420 #, no-c-format msgid "Threshold white" msgstr "Llindar al blanc" -#: backend/fujitsu.c:3417 +#: backend/fujitsu.c:3421 #, no-c-format msgid "Set pixels equal to threshold to white instead of black" msgstr "" "Estableix els píxels iguals al llindar al blanc en comptes de negre" -#: backend/fujitsu.c:3433 backend/fujitsu.c:3434 +#: backend/fujitsu.c:3437 backend/fujitsu.c:3438 #, no-c-format msgid "Noise removal" msgstr "Eliminació del soroll" -#: backend/fujitsu.c:3450 +#: backend/fujitsu.c:3454 #, no-c-format msgid "Matrix 5x5" msgstr "Matriu 5x5" -#: backend/fujitsu.c:3451 +#: backend/fujitsu.c:3455 #, no-c-format msgid "Remove 5 pixel square noise" msgstr "Elimina el soroll quadrat de 5 píxels" -#: backend/fujitsu.c:3467 +#: backend/fujitsu.c:3471 #, no-c-format msgid "Matrix 4x4" msgstr "Matriu 4x4" -#: backend/fujitsu.c:3468 +#: backend/fujitsu.c:3472 #, no-c-format msgid "Remove 4 pixel square noise" msgstr "Elimina el soroll quadrat de 4 píxels" -#: backend/fujitsu.c:3484 +#: backend/fujitsu.c:3488 #, no-c-format msgid "Matrix 3x3" msgstr "Matriu 3x3" -#: backend/fujitsu.c:3485 +#: backend/fujitsu.c:3489 #, no-c-format msgid "Remove 3 pixel square noise" msgstr "Elimina el soroll quadrat de 3 píxels" -#: backend/fujitsu.c:3501 +#: backend/fujitsu.c:3505 #, no-c-format msgid "Matrix 2x2" msgstr "Matriu 2x2" -#: backend/fujitsu.c:3502 +#: backend/fujitsu.c:3506 #, no-c-format msgid "Remove 2 pixel square noise" msgstr "Elimina el soroll quadrat de 2 píxels" -#: backend/fujitsu.c:3521 +#: backend/fujitsu.c:3525 #, no-c-format msgid "Variance" msgstr "Variància" -#: backend/fujitsu.c:3522 +#: backend/fujitsu.c:3526 #, no-c-format msgid "Set SDTC variance rate (sensitivity), 0 equals 127" msgstr "" "Estableix la velocitat de la variància SDTC (sensibilitat), 0 és igual " "que 127" -#: backend/fujitsu.c:3555 +#: backend/fujitsu.c:3559 #, no-c-format msgid "Auto width detection" msgstr "Detecció automàtica de l'amplada" -#: backend/fujitsu.c:3556 +#: backend/fujitsu.c:3560 #, no-c-format msgid "Scanner detects paper sides. May reduce scanning speed." msgstr "" "L'escàner detectarà els costats del paper. Pot reduir la velocitat de " "l'escaneig." -#: backend/fujitsu.c:3573 +#: backend/fujitsu.c:3577 #, no-c-format msgid "Auto length detection" msgstr "Detecció automàtica de la llargada" -#: backend/fujitsu.c:3574 +#: backend/fujitsu.c:3578 #, no-c-format msgid "Scanner detects paper lower edge. May confuse some frontends." msgstr "" "L'escàner detectarà la vora inferior del paper. Pot confondre alguns " "frontals." -#: backend/fujitsu.c:3600 +#: backend/fujitsu.c:3604 #, no-c-format msgid "Compression" msgstr "Compressió" -#: backend/fujitsu.c:3601 +#: backend/fujitsu.c:3605 #, no-c-format msgid "Enable compressed data. May crash your front-end program" msgstr "" "Habilita les dades comprimides. Pot fer fallar el vostre programa de " "frontal" -#: backend/fujitsu.c:3621 +#: backend/fujitsu.c:3625 #, no-c-format msgid "Compression argument" msgstr "Argument per a la compressió" -#: backend/fujitsu.c:3622 +#: backend/fujitsu.c:3626 #, no-c-format msgid "" "Level of JPEG compression. 1 is small file, 7 is large file. 0 (default) " @@ -2520,110 +2549,110 @@ msgstr "" "Nivell de la compressió JPEG. 1 és un fitxer petit, 7 és un fitxer gran. " "0 (predeterminat) és igual que 4" -#: backend/fujitsu.c:3652 +#: backend/fujitsu.c:3656 #, no-c-format msgid "DF action" msgstr "Acció per a la doble alimentació" -#: backend/fujitsu.c:3653 +#: backend/fujitsu.c:3657 #, no-c-format msgid "Action following double feed error" msgstr "Acció per a després de l'error de doble alimentació" -#: backend/fujitsu.c:3669 +#: backend/fujitsu.c:3673 #, no-c-format msgid "DF skew" msgstr "Inclinació per la doble alimentació" -#: backend/fujitsu.c:3670 +#: backend/fujitsu.c:3674 #, no-c-format msgid "Enable double feed error due to skew" msgstr "Habilita l'error de doble alimentació que causa inclinació" -#: backend/fujitsu.c:3688 +#: backend/fujitsu.c:3692 #, no-c-format msgid "DF thickness" msgstr "Gruix del paper per la doble alimentació" -#: backend/fujitsu.c:3689 +#: backend/fujitsu.c:3693 #, no-c-format msgid "Enable double feed error due to paper thickness" msgstr "Habilita l'error de doble alimentació causat pel gruix del paper" -#: backend/fujitsu.c:3707 +#: backend/fujitsu.c:3711 #, no-c-format msgid "DF length" msgstr "Longitud del paper causant doble alimentació" -#: backend/fujitsu.c:3708 +#: backend/fujitsu.c:3712 #, no-c-format msgid "Enable double feed error due to paper length" msgstr "" "Habilita l'error de doble alimentació causat per la longitud del paper" -#: backend/fujitsu.c:3731 +#: backend/fujitsu.c:3735 #, no-c-format msgid "DF length difference" msgstr "Diferència en la longitud per a causar doble alimentació" -#: backend/fujitsu.c:3732 +#: backend/fujitsu.c:3736 #, no-c-format msgid "Difference in page length to trigger double feed error" msgstr "" "Diferència en la longitud de la pàgina per activar l'error de doble " "alimentació" -#: backend/fujitsu.c:3755 +#: backend/fujitsu.c:3759 #, no-c-format msgid "DF recovery mode" msgstr "El mode recuperació causa doble alimentació" -#: backend/fujitsu.c:3756 +#: backend/fujitsu.c:3760 #, no-c-format msgid "Request scanner to reverse feed on paper jam" msgstr "" "Sol·licita a l'escàner que l'alimentador recuperi el paper en embussar-se" -#: backend/fujitsu.c:3775 +#: backend/fujitsu.c:3779 #, no-c-format msgid "Paper protection" msgstr "Protecció del paper" -#: backend/fujitsu.c:3776 +#: backend/fujitsu.c:3780 #, no-c-format msgid "Request scanner to predict jams in the ADF" msgstr "Pregunta a l'escàner per a predir les embussades a l'ADF" -#: backend/fujitsu.c:3795 +#: backend/fujitsu.c:3799 #, no-c-format msgid "Advanced paper protection" msgstr "Protecció avançada del paper" -#: backend/fujitsu.c:3796 +#: backend/fujitsu.c:3800 #, no-c-format msgid "Request scanner to predict jams in the ADF using improved sensors" msgstr "" "Pregunta a l'escàner per a predir les embussades a l'ADF usant sensors " "millorats" -#: backend/fujitsu.c:3815 +#: backend/fujitsu.c:3819 #, no-c-format msgid "Staple detection" msgstr "Detecció de les grapes" -#: backend/fujitsu.c:3816 +#: backend/fujitsu.c:3820 #, no-c-format msgid "Request scanner to detect jams in the ADF caused by staples" msgstr "" "Pregunta a l'escàner per a detectar les embussades a l'ADF causades per " "les grapes" -#: backend/fujitsu.c:3835 +#: backend/fujitsu.c:3839 #, no-c-format msgid "Background color" msgstr "Color de fons" -#: backend/fujitsu.c:3836 +#: backend/fujitsu.c:3840 #, no-c-format msgid "" "Set color of background for scans. May conflict with overscan option" @@ -2631,12 +2660,12 @@ msgstr "" "Estableix un color de fons per a l'escaneig. Pot entrar en conflicte amb " "l'opció de sobreexploració" -#: backend/fujitsu.c:3856 +#: backend/fujitsu.c:3860 #, no-c-format msgid "Dropout color" msgstr "Descarta el color" -#: backend/fujitsu.c:3857 +#: backend/fujitsu.c:3861 #, no-c-format msgid "" "One-pass scanners use only one color during gray or binary scanning, " @@ -2645,34 +2674,34 @@ msgstr "" "Els escàners d'una sola passada només usen un color durant l'escaneig " "amb gris o binari, útil per a paper amb colors o tinta" -#: backend/fujitsu.c:3880 +#: backend/fujitsu.c:3884 #, no-c-format msgid "Buffer mode" msgstr "Mode de memòria intermèdia" -#: backend/fujitsu.c:3881 +#: backend/fujitsu.c:3885 #, no-c-format msgid "Request scanner to read pages quickly from ADF into internal memory" msgstr "" "Sol·licita a l'escàner que llegeixi les pàgines ràpidament des de l'ADF " "a la memòria interna" -#: backend/fujitsu.c:3900 +#: backend/fujitsu.c:3904 #, no-c-format msgid "Prepick" msgstr "Preselecciona" -#: backend/fujitsu.c:3901 +#: backend/fujitsu.c:3905 #, no-c-format msgid "Request scanner to grab next page from ADF" msgstr "Sol·licita a l'escàner que agafi la pàgina següent des de l'ADF" -#: backend/fujitsu.c:3920 +#: backend/fujitsu.c:3924 #, no-c-format msgid "Overscan" msgstr "Sobreexploració" -#: backend/fujitsu.c:3921 +#: backend/fujitsu.c:3925 #, no-c-format msgid "" "Collect a few mm of background on top side of scan, before paper enters " @@ -2684,12 +2713,12 @@ msgstr "" "de la mida del paper, per a permetre recollir els costats restants. Pot " "entrar en conflicte amb l'opció Color de fons" -#: backend/fujitsu.c:3939 +#: backend/fujitsu.c:3943 #, no-c-format msgid "Sleep timer" msgstr "Temporitzador de suspensió" -#: backend/fujitsu.c:3940 +#: backend/fujitsu.c:3944 #, no-c-format msgid "" "Time in minutes until the internal power supply switches to sleep mode" @@ -2697,12 +2726,12 @@ msgstr "" "Temps en minuts fins que la font d'alimentació interna canviarà al mode " "de suspensió" -#: backend/fujitsu.c:3958 +#: backend/fujitsu.c:3962 #, no-c-format msgid "Off timer" msgstr "Temporitzador per apagar" -#: backend/fujitsu.c:3959 +#: backend/fujitsu.c:3963 #, no-c-format msgid "" "Time in minutes until the internal power supply switches the scanner " @@ -2712,42 +2741,42 @@ msgstr "" "S'arrodonirà fins als 15 minuts més propers. Zero significa que no " "s'apagarà mai." -#: backend/fujitsu.c:3977 +#: backend/fujitsu.c:3981 #, no-c-format msgid "Duplex offset" msgstr "Desplaçament de la doble cara" -#: backend/fujitsu.c:3978 +#: backend/fujitsu.c:3982 #, no-c-format msgid "Adjust front/back offset" msgstr "Ajusta el desplaçament per a l'anvers/revers" -#: backend/fujitsu.c:3995 backend/plustek.c:1025 backend/umax_pp.c:800 +#: backend/fujitsu.c:3999 backend/plustek.c:1025 backend/umax_pp.c:794 #, no-c-format msgid "Green offset" msgstr "Desplaçament del verd" -#: backend/fujitsu.c:3996 +#: backend/fujitsu.c:4000 #, no-c-format msgid "Adjust green/red offset" msgstr "Ajusta el desplaçament del verd/vermell" -#: backend/fujitsu.c:4013 backend/plustek.c:1041 backend/umax_pp.c:812 +#: backend/fujitsu.c:4017 backend/plustek.c:1041 backend/umax_pp.c:806 #, no-c-format msgid "Blue offset" msgstr "Desplaçament del blau" -#: backend/fujitsu.c:4014 +#: backend/fujitsu.c:4018 #, no-c-format msgid "Adjust blue/red offset" msgstr "Ajusta el desplaçament del blau/vermell" -#: backend/fujitsu.c:4027 +#: backend/fujitsu.c:4031 #, no-c-format msgid "Low Memory" msgstr "Memòria baixa" -#: backend/fujitsu.c:4028 +#: backend/fujitsu.c:4032 #, no-c-format msgid "" "Limit driver memory usage for use in embedded systems. Causes some " @@ -2761,12 +2790,12 @@ msgstr "" "es pot usar per a determinar la imatge correcta. Aquesta opció només " "s'hauria d'usar amb el programari de frontal personalitzat." -#: backend/fujitsu.c:4043 +#: backend/fujitsu.c:4047 #, no-c-format msgid "Duplex side" msgstr "Cara per a les dues cares" -#: backend/fujitsu.c:4044 +#: backend/fujitsu.c:4048 #, no-c-format msgid "" "Tells which side (0=front, 1=back) of a duplex scan the next call to " @@ -2775,58 +2804,58 @@ msgstr "" "Indica a quina cara (0=anvers, 1=revers) en un escaneig de dues cares " "retornarà la següent crida al «sane_read()»." -#: backend/fujitsu.c:4055 +#: backend/fujitsu.c:4059 #, no-c-format msgid "Hardware deskew and crop" msgstr "Desinclina i escapça per maquinari" -#: backend/fujitsu.c:4056 +#: backend/fujitsu.c:4060 #, no-c-format msgid "Request scanner to rotate and crop pages digitally." msgstr "" "Sol·licita a l'escàner que giri i escapci les pàgines de forma digital." -#: backend/fujitsu.c:4067 backend/kvs1025_opt.c:871 +#: backend/fujitsu.c:4071 backend/kvs1025_opt.c:871 #, no-c-format msgid "Software deskew" msgstr "Desinclina per programari" -#: backend/fujitsu.c:4068 +#: backend/fujitsu.c:4072 #, no-c-format msgid "Request driver to rotate skewed pages digitally." msgstr "" "Sol·licita al controlador que giri les pàgines inclinades de forma " "digital." -#: backend/fujitsu.c:4080 backend/kvs1025_opt.c:880 +#: backend/fujitsu.c:4084 backend/kvs1025_opt.c:880 #, no-c-format msgid "Software despeckle diameter" msgstr "Diàmetre per eliminar els pics per programari" -#: backend/fujitsu.c:4081 +#: backend/fujitsu.c:4085 #, no-c-format msgid "Maximum diameter of lone dots to remove from scan." msgstr "" "Diàmetre màxim dels punts solitaris per eliminar-los de l'escaneig." -#: backend/fujitsu.c:4100 backend/genesys/genesys.cpp:4117 +#: backend/fujitsu.c:4104 backend/genesys/genesys.cpp:4159 #, no-c-format msgid "Software crop" msgstr "Escapça per programari" -#: backend/fujitsu.c:4101 +#: backend/fujitsu.c:4105 #, no-c-format msgid "Request driver to remove border from pages digitally." msgstr "" "Sol·licita al controlador que elimini la vora de les pàgines de forma " "digital." -#: backend/fujitsu.c:4130 +#: backend/fujitsu.c:4134 #, no-c-format msgid "Halt on Cancel" msgstr "Atura en cancel·lar" -#: backend/fujitsu.c:4131 +#: backend/fujitsu.c:4135 #, no-c-format msgid "" "Request driver to halt the paper feed instead of eject during a cancel." @@ -2834,108 +2863,108 @@ msgstr "" "Sol·licita al controlador que aturi l'alimentador de paper en lloc " "d'expulsar-lo durant una cancel·lació." -#: backend/fujitsu.c:4142 +#: backend/fujitsu.c:4146 #, no-c-format msgid "Endorser Options" msgstr "Opcions per a l'aprovador" -#: backend/fujitsu.c:4143 +#: backend/fujitsu.c:4147 #, no-c-format msgid "Controls for endorser unit" msgstr "Controls per a la unitat aprovadora" -#: backend/fujitsu.c:4154 +#: backend/fujitsu.c:4158 #, no-c-format msgid "Endorser" msgstr "Aprovador" -#: backend/fujitsu.c:4155 +#: backend/fujitsu.c:4159 #, no-c-format msgid "Enable endorser unit" msgstr "Habilita la unitat aprovadora" -#: backend/fujitsu.c:4170 +#: backend/fujitsu.c:4174 #, no-c-format msgid "Endorser bits" msgstr "Bits de l'aprovació" -#: backend/fujitsu.c:4171 +#: backend/fujitsu.c:4175 #, no-c-format msgid "Determines maximum endorser counter value." msgstr "Determina el valor màxim del comptador de l'aprovació." -#: backend/fujitsu.c:4196 +#: backend/fujitsu.c:4200 #, no-c-format msgid "Endorser value" msgstr "Valor de l'aprovació" -#: backend/fujitsu.c:4197 +#: backend/fujitsu.c:4201 #, no-c-format msgid "Initial endorser counter value." msgstr "Valor inicial del comptador de l'aprovació." -#: backend/fujitsu.c:4220 +#: backend/fujitsu.c:4224 #, no-c-format msgid "Endorser step" msgstr "Pas de l'aprovació" -#: backend/fujitsu.c:4221 +#: backend/fujitsu.c:4225 #, no-c-format msgid "Change endorser counter value by this much for each page." msgstr "" "Canvia el valor del comptador de l'aprovació en aquest tant per a cada " "pàgina." -#: backend/fujitsu.c:4244 +#: backend/fujitsu.c:4248 #, no-c-format msgid "Endorser Y" msgstr "Aprovació Y" -#: backend/fujitsu.c:4245 +#: backend/fujitsu.c:4249 #, no-c-format msgid "Endorser print offset from top of paper." msgstr "" "Desplaçament de la impressió de l'aprovador des de la part superior del " "paper." -#: backend/fujitsu.c:4270 +#: backend/fujitsu.c:4274 #, no-c-format msgid "Endorser font" msgstr "Tipus de lletra per a l'aprovador" -#: backend/fujitsu.c:4271 +#: backend/fujitsu.c:4275 #, no-c-format msgid "Endorser printing font." msgstr "El tipus de lletra amb el que imprimirà l'aprovador." -#: backend/fujitsu.c:4300 +#: backend/fujitsu.c:4304 #, no-c-format msgid "Endorser direction" msgstr "Direcció de l'aprovador" -#: backend/fujitsu.c:4301 +#: backend/fujitsu.c:4305 #, no-c-format msgid "Endorser printing direction." msgstr "Direcció amb la qual imprimirà l'aprovador." -#: backend/fujitsu.c:4325 +#: backend/fujitsu.c:4329 #, no-c-format msgid "Endorser side" msgstr "Costat de l'aprovador" -#: backend/fujitsu.c:4326 +#: backend/fujitsu.c:4330 #, no-c-format msgid "Endorser printing side, requires hardware support to change" msgstr "" "El costat de la impressió de l'aprovador, requereix maquinari per " "canviar-lo" -#: backend/fujitsu.c:4351 +#: backend/fujitsu.c:4355 #, no-c-format msgid "Endorser string" msgstr "Cadena de l'aprovador" -#: backend/fujitsu.c:4352 +#: backend/fujitsu.c:4356 #, no-c-format msgid "" "Endorser alphanumeric print format. %05ud or %08ud at the end will be " @@ -2944,220 +2973,206 @@ msgstr "" "Format d'impressió alfanumèric de l'aprovador. %05ud o %08ud al final " "serà substituït pel valor del comptador." -#: backend/fujitsu.c:4379 +#: backend/fujitsu.c:4383 #, no-c-format msgid "Top edge" msgstr "Vora superior" -#: backend/fujitsu.c:4380 -#, fuzzy, no-c-format +#: backend/fujitsu.c:4384 +#, no-c-format msgid "Paper is pulled partly into ADF" msgstr "El paper s'ha retirat parcialment dins de l'ADF" -#: backend/fujitsu.c:4391 +#: backend/fujitsu.c:4395 #, no-c-format msgid "A3 paper" msgstr "Paper A3" -#: backend/fujitsu.c:4392 +#: backend/fujitsu.c:4396 #, no-c-format msgid "A3 paper detected" msgstr "S'ha detectat un paper A3" -#: backend/fujitsu.c:4403 +#: backend/fujitsu.c:4407 #, no-c-format msgid "B4 paper" msgstr "Paper B4" -#: backend/fujitsu.c:4404 +#: backend/fujitsu.c:4408 #, no-c-format msgid "B4 paper detected" msgstr "S'ha detectat un paper B4" -#: backend/fujitsu.c:4415 +#: backend/fujitsu.c:4419 #, no-c-format msgid "A4 paper" msgstr "Paper A4" -#: backend/fujitsu.c:4416 +#: backend/fujitsu.c:4420 #, no-c-format msgid "A4 paper detected" msgstr "S'ha detectat un paper A4" -#: backend/fujitsu.c:4427 +#: backend/fujitsu.c:4431 #, no-c-format msgid "B5 paper" msgstr "Paper B5" -#: backend/fujitsu.c:4428 +#: backend/fujitsu.c:4432 #, no-c-format msgid "B5 paper detected" msgstr "S'ha detectat un paper B5" -#: backend/fujitsu.c:4451 +#: backend/fujitsu.c:4455 #, no-c-format msgid "OMR or DF" msgstr "OMR o DF" -#: backend/fujitsu.c:4452 +#: backend/fujitsu.c:4456 #, no-c-format msgid "OMR or double feed detected" msgstr "" "S'ha detectat una OMR (reconeixement de marca òptica) o alimentació de " "doble cara" -#: backend/fujitsu.c:4475 +#: backend/fujitsu.c:4479 #, no-c-format msgid "Power saving" msgstr "Estalvi d'energia" -#: backend/fujitsu.c:4476 +#: backend/fujitsu.c:4480 #, no-c-format msgid "Scanner in power saving mode" msgstr "Escàner en el mode estalvi d'energia" -#: backend/fujitsu.c:4499 +#: backend/fujitsu.c:4503 #, no-c-format msgid "Manual feed" msgstr "Alimentació manual" -#: backend/fujitsu.c:4500 +#: backend/fujitsu.c:4504 #, no-c-format msgid "Manual feed selected" msgstr "S'ha seleccionat una alimentació manual" -#: backend/fujitsu.c:4523 +#: backend/fujitsu.c:4527 #, no-c-format msgid "Function" msgstr "Funció" -#: backend/fujitsu.c:4524 +#: backend/fujitsu.c:4528 #, no-c-format msgid "Function character on screen" msgstr "Funció caràcter a la pantalla" -#: backend/fujitsu.c:4535 +#: backend/fujitsu.c:4539 #, no-c-format msgid "Ink low" msgstr "Tinta baixa" -#: backend/fujitsu.c:4536 +#: backend/fujitsu.c:4540 #, no-c-format msgid "Imprinter ink running low" msgstr "La impressora s'està executant amb la tinta baixa" -#: backend/fujitsu.c:4547 +#: backend/fujitsu.c:4551 #, no-c-format msgid "Double feed" msgstr "Alimentació de doble cara" -#: backend/fujitsu.c:4548 +#: backend/fujitsu.c:4552 #, no-c-format msgid "Double feed detected" msgstr "S'ha detectat una alimentació de doble cara" -#: backend/fujitsu.c:4559 +#: backend/fujitsu.c:4563 #, no-c-format msgid "Error code" msgstr "Codi d'error" -#: backend/fujitsu.c:4560 +#: backend/fujitsu.c:4564 #, no-c-format msgid "Hardware error code" msgstr "Codi d'error del maquinari" -#: backend/fujitsu.c:4571 +#: backend/fujitsu.c:4575 #, no-c-format msgid "Skew angle" msgstr "Angle d'inclinació" -#: backend/fujitsu.c:4572 +#: backend/fujitsu.c:4576 #, no-c-format msgid "Requires black background for scanning" msgstr "Requereix un fons negre per escanejar" -#: backend/fujitsu.c:4583 +#: backend/fujitsu.c:4587 #, no-c-format msgid "Ink remaining" msgstr "Tinta restant" -#: backend/fujitsu.c:4584 +#: backend/fujitsu.c:4588 #, no-c-format msgid "Imprinter ink level" msgstr "Nivell de tinta de la impressora" -#: backend/fujitsu.c:4595 +#: backend/fujitsu.c:4599 #, no-c-format msgid "Density" msgstr "Densitat" -#: backend/fujitsu.c:4596 +#: backend/fujitsu.c:4600 #, no-c-format msgid "Density dial" msgstr "Marcador de la densitat" -#: backend/fujitsu.c:4607 backend/fujitsu.c:4608 +#: backend/fujitsu.c:4611 backend/fujitsu.c:4612 #, no-c-format msgid "Duplex switch" msgstr "Commuta a doble cara" -#: backend/genesys/genesys.cpp:4118 +#: backend/genesys/genesys.cpp:4160 #, no-c-format msgid "Request backend to remove border from pages digitally" msgstr "" "Sol·licita al dorsal que elimini la vora de les pàgines de forma digital" -#: backend/genesys/genesys.cpp:4127 backend/kvs1025_opt.c:912 +#: backend/genesys/genesys.cpp:4169 backend/kvs1025_opt.c:912 #, no-c-format msgid "Request driver to discard pages with low numbers of dark pixels" msgstr "" "Sol·licita al controlador que descarti les pàgines amb un nombre baix de " "píxels foscos" -#: backend/genesys/genesys.cpp:4137 backend/kvs1025_opt.c:892 +#: backend/genesys/genesys.cpp:4179 backend/kvs1025_opt.c:892 #, no-c-format msgid "Software derotate" msgstr "Treu el gir per programari" -#: backend/genesys/genesys.cpp:4138 backend/kvs1025_opt.c:894 +#: backend/genesys/genesys.cpp:4180 backend/kvs1025_opt.c:894 #, no-c-format msgid "Request driver to detect and correct 90 degree image rotation" msgstr "" "Sol·licita al controlador que detecti i corregeixi el gir de 90 graus de " "la imatge" -#: backend/genesys/genesys.cpp:4168 backend/pixma_sane_options.c:314 +#: backend/genesys/genesys.cpp:4210 backend/pixma/pixma_sane_options.c:314 #, no-c-format msgid "Extras" msgstr "Extres" -#: backend/genesys/genesys.cpp:4188 backend/pixma_sane_options.c:336 +#: backend/genesys/genesys.cpp:4230 backend/pixma/pixma_sane_options.c:336 #, no-c-format msgid "Dynamic threshold curve, from light to dark, normally 50-65" msgstr "" "La corba dinàmica del llindar, des de la llum a la foscor, normalment de " "50 a 65" -#: backend/genesys/genesys.cpp:4197 -#, no-c-format -msgid "Disable dynamic lineart" -msgstr "Inhabilita l'art lineal dinàmic" - -#: backend/genesys/genesys.cpp:4199 -#, no-c-format -msgid "" -"Disable use of a software adaptive algorithm to generate lineart relying " -"instead on hardware lineart." -msgstr "" -"Inhabilita l'ús d'un algorisme adaptatiu per programari que genera art " -"lineal en comptes de per maquinari." - -#: backend/genesys/genesys.cpp:4215 +#: backend/genesys/genesys.cpp:4240 #, no-c-format msgid "Disable interpolation" msgstr "Inhabilita la interpolació" -#: backend/genesys/genesys.cpp:4218 +#: backend/genesys/genesys.cpp:4243 #, no-c-format msgid "" "When using high resolutions where the horizontal resolution is smaller " @@ -3167,33 +3182,33 @@ msgstr "" "més petita que la vertical, això inhabilitarà la interpolació " "horitzontal." -#: backend/genesys/genesys.cpp:4227 +#: backend/genesys/genesys.cpp:4252 #, no-c-format msgid "Color filter" msgstr "Filtre de color" -#: backend/genesys/genesys.cpp:4230 +#: backend/genesys/genesys.cpp:4255 #, no-c-format msgid "When using gray or lineart this option selects the used color." msgstr "" "Quan s'usa gris o art lineal, aquesta opció seleccionarà el color a usar." -#: backend/genesys/genesys.cpp:4254 +#: backend/genesys/genesys.cpp:4279 #, no-c-format msgid "Calibration file" msgstr "Fitxer de calibratge" -#: backend/genesys/genesys.cpp:4255 +#: backend/genesys/genesys.cpp:4280 #, no-c-format msgid "Specify the calibration file to use" msgstr "Especifica el fitxer de calibratge a usar" -#: backend/genesys/genesys.cpp:4272 +#: backend/genesys/genesys.cpp:4297 #, no-c-format msgid "Calibration cache expiration time" msgstr "Temps de caducitat per a la memòria cau del calibratge" -#: backend/genesys/genesys.cpp:4273 +#: backend/genesys/genesys.cpp:4298 #, no-c-format msgid "" "Time (in minutes) before a cached calibration expires. A value of 0 " @@ -3203,12 +3218,12 @@ msgstr "" "memòria cau. Un valor de 0 indicarà que no s'usarà la memòria cau. Un " "valor negatiu indicarà que la memòria cau no caducarà mai." -#: backend/genesys/genesys.cpp:4283 +#: backend/genesys/genesys.cpp:4308 #, no-c-format msgid "Lamp off time" msgstr "Temps per apagar la làmpada" -#: backend/genesys/genesys.cpp:4286 +#: backend/genesys/genesys.cpp:4311 #, no-c-format msgid "" "The lamp will be turned off after the given time (in minutes). A value " @@ -3217,103 +3232,111 @@ msgstr "" "La llum s'apagarà després del temps determinat (en minuts). Un valor de " "0 indicarà que no s'apagarà la làmpada." -#: backend/genesys/genesys.cpp:4296 +#: backend/genesys/genesys.cpp:4321 #, no-c-format msgid "Lamp off during scan" msgstr "Apaga la làmpada durant l'escaneig" -#: backend/genesys/genesys.cpp:4297 +#: backend/genesys/genesys.cpp:4322 #, no-c-format msgid "The lamp will be turned off during scan. " msgstr "La llum s'apagarà durant l'escaneig." -#: backend/genesys/genesys.cpp:4324 backend/genesys/genesys.cpp:4325 +#: backend/genesys/genesys.cpp:4349 backend/genesys/genesys.cpp:4350 #, no-c-format msgid "File button" msgstr "Botó de fitxer" -#: backend/genesys/genesys.cpp:4369 backend/genesys/genesys.cpp:4370 +#: backend/genesys/genesys.cpp:4394 backend/genesys/genesys.cpp:4395 #, no-c-format msgid "OCR button" msgstr "Botó OCR" -#: backend/genesys/genesys.cpp:4381 backend/genesys/genesys.cpp:4382 +#: backend/genesys/genesys.cpp:4406 backend/genesys/genesys.cpp:4407 #, no-c-format msgid "Power button" msgstr "Botó d'encesa" -#: backend/genesys/genesys.cpp:4393 backend/genesys/genesys.cpp:4394 +#: backend/genesys/genesys.cpp:4418 backend/genesys/genesys.cpp:4419 #, no-c-format msgid "Extra button" msgstr "Botó extra" -#: backend/genesys/genesys.cpp:4405 backend/gt68xx.c:755 -#, fuzzy, no-c-format +#: backend/genesys/genesys.cpp:4430 backend/gt68xx.c:755 +#, no-c-format msgid "Needs calibration" msgstr "Necessita calibratge" -#: backend/genesys/genesys.cpp:4406 backend/gt68xx.c:756 +#: backend/genesys/genesys.cpp:4431 backend/gt68xx.c:756 backend/p5.c:1928 #, no-c-format msgid "The scanner needs calibration for the current settings" msgstr "L'escàner necessita calibratge per als ajustaments actuals" -#: backend/genesys/genesys.cpp:4417 backend/gt68xx.c:780 -#: backend/gt68xx.c:781 backend/pixma_sane_options.c:226 -#: backend/plustek.c:1080 +#: backend/genesys/genesys.cpp:4442 backend/gt68xx.c:780 +#: backend/gt68xx.c:781 backend/p5.c:1937 backend/p5.c:1938 +#: backend/pixma/pixma_sane_options.c:226 backend/plustek.c:1080 #, no-c-format msgid "Buttons" msgstr "Botons" -#: backend/genesys/genesys.cpp:4426 backend/gt68xx.c:787 -#: backend/hp5400_sane.c:392 backend/hp-option.h:97 backend/niash.c:726 -#: backend/plustek.c:941 +#: backend/genesys/genesys.cpp:4451 backend/gt68xx.c:787 +#: backend/hp-option.h:97 backend/hp5400_sane.c:392 backend/niash.c:726 +#: backend/p5.c:1945 backend/plustek.c:941 #, no-c-format msgid "Calibrate" msgstr "Calibratge" -#: backend/genesys/genesys.cpp:4428 backend/gt68xx.c:789 +#: backend/genesys/genesys.cpp:4453 backend/gt68xx.c:789 backend/p5.c:1947 #, no-c-format msgid "Start calibration using special sheet" msgstr "Comença el calibratge emprant un full especial" -#: backend/genesys/genesys.cpp:4440 backend/gt68xx.c:802 +#: backend/genesys/genesys.cpp:4465 backend/gt68xx.c:802 backend/p5.c:1958 #, no-c-format msgid "Clear calibration" msgstr "Neteja el calibratge" -#: backend/genesys/genesys.cpp:4441 backend/gt68xx.c:803 +#: backend/genesys/genesys.cpp:4466 backend/gt68xx.c:803 backend/p5.c:1960 #, no-c-format msgid "Clear calibration cache" msgstr "Neteja la memòria cau del calibratge" -#: backend/genesys/genesys.cpp:4451 -#, fuzzy, no-c-format +#: backend/genesys/genesys.cpp:4476 +#, no-c-format msgid "Force calibration" -msgstr "Calibratge tosc" +msgstr "Força el calibratge" -#: backend/genesys/genesys.cpp:4452 +#: backend/genesys/genesys.cpp:4477 #, no-c-format msgid "Force calibration ignoring all and any calibration caches" msgstr "" +"Força el calibratge ignorant-ho tot i qualsevol memòria cau del " +"calibratge" -#: backend/genesys/genesys.cpp:4462 -#, fuzzy, no-c-format +#: backend/genesys/genesys.cpp:4487 +#, no-c-format msgid "Ignore internal offsets" -msgstr "Desplaçament del verd" +msgstr "Ignora els desplaçaments interns" -#: backend/genesys/genesys.cpp:4464 +#: backend/genesys/genesys.cpp:4489 #, no-c-format msgid "" "Acquires the image including the internal calibration areas of the " "scanner" msgstr "" +"Adquireix la imatge, incloses les àrees de calibratge intern de l'escàner" -#: backend/gt68xx.c:149 backend/ma1509.c:108 backend/mustek.c:164 -#: backend/snapscan-options.c:87 backend/umax.c:182 +#: backend/genesys/genesys.h:79 backend/gt68xx.c:149 backend/ma1509.c:108 +#: backend/mustek.c:164 backend/snapscan-options.c:87 backend/umax.c:182 #, no-c-format msgid "Transparency Adapter" msgstr "Adaptador de transparència" +#: backend/genesys/genesys.h:80 +#, no-c-format +msgid "Transparency Adapter Infrared" +msgstr "Adaptador infraroig de transparència" + #: backend/gt68xx.c:470 #, no-c-format msgid "Gray mode color" @@ -3423,6 +3446,314 @@ msgstr "Valor de la gamma" msgid "Sets the gamma value of all channels." msgstr "Estableix el valor de la gamma de tots els canals." +#: backend/hp-option.c:2987 +#, no-c-format +msgid "Advanced Options" +msgstr "Opcions avançades" + +#: backend/hp-option.c:3044 +#, no-c-format +msgid "Coarse" +msgstr "Tosc" + +#: backend/hp-option.c:3045 +#, no-c-format +msgid "Fine" +msgstr "Fina" + +#: backend/hp-option.c:3046 +#, no-c-format +msgid "Bayer" +msgstr "Bayer" + +#: backend/hp-option.c:3049 backend/hp-option.c:3100 +#, no-c-format +msgid "Custom" +msgstr "A mida" + +#: backend/hp-option.c:3090 backend/hp-option.c:3146 +#: backend/hp-option.c:3161 +#, no-c-format +msgid "Auto" +msgstr "Auto" + +# Nota: https://ca.wikipedia.org/wiki/NTSC +#: backend/hp-option.c:3091 +#, no-c-format +msgid "NTSC RGB" +msgstr "RGB del NTSC" + +# Nota: https://support.hp.com/gb-en/document/c01275842 +#: backend/hp-option.c:3092 +#, no-c-format +msgid "XPA RGB" +msgstr "RGB amb el XPA" + +#: backend/hp-option.c:3093 +#, no-c-format +msgid "Pass-through" +msgstr "Passa a través" + +#: backend/hp-option.c:3094 +#, no-c-format +msgid "NTSC Gray" +msgstr "Gris del NTSC" + +#: backend/hp-option.c:3095 +#, no-c-format +msgid "XPA Gray" +msgstr "Gris amb el XPA" + +#: backend/hp-option.c:3147 +#, no-c-format +msgid "Slow" +msgstr "Lent" + +#: backend/hp-option.c:3148 backend/hp-option.c:3255 +#: backend/kvs40xx_opt.c:230 backend/matsushita.c:244 backend/mustek.c:149 +#: backend/plustek.c:234 backend/plustek_pp.c:203 backend/u12.c:155 +#, no-c-format +msgid "Normal" +msgstr "Normal" + +#: backend/hp-option.c:3149 +#, no-c-format +msgid "Fast" +msgstr "Ràpid" + +#: backend/hp-option.c:3150 +#, no-c-format +msgid "Extra Fast" +msgstr "Extraràpid" + +#: backend/hp-option.c:3163 +#, no-c-format +msgid "2-pixel" +msgstr "2 píxels" + +#: backend/hp-option.c:3164 +#, no-c-format +msgid "4-pixel" +msgstr "4 píxels" + +#: backend/hp-option.c:3165 +#, no-c-format +msgid "8-pixel" +msgstr "8 píxels" + +#: backend/hp-option.c:3176 +#, no-c-format +msgid "Print" +msgstr "Imprimeix" + +#: backend/hp-option.c:3177 backend/hp3900_sane.c:427 +#: backend/hp3900_sane.c:1019 +#, no-c-format +msgid "Slide" +msgstr "Diapositiva" + +#: backend/hp-option.c:3178 +#, no-c-format +msgid "Film-strip" +msgstr "Tira de pel·lícules" + +#: backend/hp-option.c:3256 backend/hp5590.c:93 +#, no-c-format +msgid "ADF" +msgstr "ADF" + +#: backend/hp-option.c:3257 +#, no-c-format +msgid "XPA" +msgstr "XPA" + +#: backend/hp-option.c:3331 backend/hp-option.c:3344 +#, no-c-format +msgid "Conditional" +msgstr "Condicional" + +#: backend/hp-option.c:3417 +#, no-c-format +msgid "Experiment" +msgstr "Experimental" + +#: backend/hp-option.h:60 +#, no-c-format +msgid "Sharpening" +msgstr "Aguditzant" + +#: backend/hp-option.h:61 +#, no-c-format +msgid "Set sharpening value." +msgstr "Estableix el valor de l'agudització." + +#: backend/hp-option.h:66 +#, no-c-format +msgid "Auto Threshold" +msgstr "Llindar automàtic" + +#: backend/hp-option.h:68 +#, no-c-format +msgid "Enable automatic determination of threshold for line-art scans." +msgstr "" +"Habilita la determinació automàtica del llindar pels escaneigs amb art " +"lineal." + +#: backend/hp-option.h:74 +#, no-c-format +msgid "Select smoothing filter." +msgstr "Selecciona el filtre de suavitzat." + +#: backend/hp-option.h:79 +#, no-c-format +msgid "Unload media after scan" +msgstr "Descarrega el suport després de l'escaneig" + +#: backend/hp-option.h:80 +#, no-c-format +msgid "Unloads the media after a scan." +msgstr "Descarrega el suport després d'un escaneig." + +#: backend/hp-option.h:85 +#, no-c-format +msgid "Change document" +msgstr "Canvia el document" + +#: backend/hp-option.h:86 +#, no-c-format +msgid "Change Document." +msgstr "Canvia el document." + +#: backend/hp-option.h:91 +#, no-c-format +msgid "Unload" +msgstr "Descarrega" + +#: backend/hp-option.h:92 +#, no-c-format +msgid "Unload Document." +msgstr "Descarrega el document." + +#: backend/hp-option.h:98 +#, no-c-format +msgid "Start calibration process." +msgstr "Inicia el procés de calibratge." + +#: backend/hp-option.h:103 +#, no-c-format +msgid "Media" +msgstr "Suport" + +#: backend/hp-option.h:104 +#, no-c-format +msgid "Set type of media." +msgstr "Estableix el tipus de suport." + +#: backend/hp-option.h:109 +#, no-c-format +msgid "Exposure time" +msgstr "Temps d'exposició" + +#: backend/hp-option.h:111 +#, no-c-format +msgid "" +"A longer exposure time lets the scanner collect more light. Suggested " +"use is 175% for prints, 150% for normal slides and \"Negative\" for " +"negative film. For dark (underexposed) images you can increase this " +"value." +msgstr "" +"Un temps d'exposició més llarg permet que l'escàner recopili més llum. " +"L'ús aconsellat és el 175% per a impressions, el 150% per a diapositives " +"normals i «Negatiu» per a pel·lícules en negatiu. Per a imatges fosques " +"(sota exposades), podeu augmentar aquest valor." + +#: backend/hp-option.h:119 backend/hp-option.h:126 +#, no-c-format +msgid "Color Matrix" +msgstr "Matriu de color" + +#: backend/hp-option.h:121 +#, no-c-format +msgid "Set the scanner's color matrix." +msgstr "Estableix la matriu de color de l'escàner." + +#: backend/hp-option.h:127 +#, no-c-format +msgid "Custom color matrix." +msgstr "Matriu de color a mida." + +#: backend/hp-option.h:132 +#, no-c-format +msgid "Mono Color Matrix" +msgstr "Matriu de color monocrom" + +#: backend/hp-option.h:133 +#, no-c-format +msgid "Custom color matrix for grayscale scans." +msgstr "Matriu de color a mida pels escaneigs en escala de grisos." + +#: backend/hp-option.h:138 +#, no-c-format +msgid "Mirror horizontal" +msgstr "Emmiralla horitzontalment" + +#: backend/hp-option.h:139 +#, no-c-format +msgid "Mirror image horizontally." +msgstr "Emmiralla horitzontalment la imatge." + +#: backend/hp-option.h:144 +#, no-c-format +msgid "Mirror vertical" +msgstr "Emmiralla verticalment" + +#: backend/hp-option.h:145 +#, no-c-format +msgid "Mirror image vertically." +msgstr "Emmiralla verticalment la imatge." + +#: backend/hp-option.h:150 +#, no-c-format +msgid "Update options" +msgstr "Opcions per a l'actualització" + +#: backend/hp-option.h:151 +#, no-c-format +msgid "Update options." +msgstr "Opcions per a l'actualització." + +#: backend/hp-option.h:156 +#, no-c-format +msgid "8 bit output" +msgstr "Sortida de 8 bits" + +#: backend/hp-option.h:158 +#, no-c-format +msgid "Use bit depth greater eight internally, but output only eight bits." +msgstr "" +"Usa internament una profunditat de bits més gran que vuit, però a la " +"sortida usa només vuit bits." + +#: backend/hp-option.h:164 +#, no-c-format +msgid "Front button wait" +msgstr "Espera al botó del frontal" + +#: backend/hp-option.h:165 +#, no-c-format +msgid "Wait to scan for front-panel button push." +msgstr "Espera per escanejar que es premi el botó del panell frontal." + +#: backend/hp-option.h:172 +#, no-c-format +msgid "Shut off lamp" +msgstr "Apaga la làmpada" + +#: backend/hp-option.h:173 +#, no-c-format +msgid "Shut off scanner lamp." +msgstr "Apaga la llum de l'escàner." + #: backend/hp3500.c:1020 #, no-c-format msgid "Geometry Group" @@ -3433,26 +3764,20 @@ msgstr "Grup de geometria" msgid "Scan Mode Group" msgstr "Grup de mode d'escaneig" -#: backend/hp3900_sane.c:427 backend/hp3900_sane.c:1019 -#: backend/hp-option.c:3177 -#, no-c-format -msgid "Slide" -msgstr "Diapositiva" - #: backend/hp3900_sane.c:1405 #, no-c-format msgid "Scanner model" msgstr "Model de l'escàner" #: backend/hp3900_sane.c:1408 -#, fuzzy, no-c-format +#, no-c-format msgid "Allows one to test device behavior with other supported models" msgstr "" "Permet comprovar el comportament del dispositiu amb els altres models " "admesos" #: backend/hp3900_sane.c:1422 -#, fuzzy, no-c-format +#, no-c-format msgid "Image colors will be inverted" msgstr "Els colors de la imatge seran invertits" @@ -3643,11 +3968,6 @@ msgstr "Apaga o encén la llum." msgid "Calibrates for black and white level." msgstr "Calibra per al nivell de blanc i negre." -#: backend/hp5590.c:93 backend/hp-option.c:3256 -#, no-c-format -msgid "ADF" -msgstr "ADF" - # Nota: https://en.wikipedia.org/wiki/Tissue_microarray #: backend/hp5590.c:95 #, no-c-format @@ -3695,34 +4015,36 @@ msgid "Get ID of last button pressed (read only)" msgstr "Obtén l'ID de l'últim botó premut (només lectura)" #: backend/hp5590.c:121 -#, fuzzy, no-c-format +#, no-c-format msgid "LCD counter" -msgstr "Comptador d'escaneigs" +msgstr "Comptador LCD" #: backend/hp5590.c:122 -#, fuzzy, no-c-format +#, no-c-format msgid "Get value of LCD counter (read only)" -msgstr "Obtén l'ID de l'últim botó premut (només lectura)" +msgstr "Obtén el valor del comptador LCD (només lectura)" #: backend/hp5590.c:124 -#, fuzzy, no-c-format +#, no-c-format msgid "Color LED indicator" -msgstr "Color per a l'art lineal" +msgstr "Indicador LED del color" #: backend/hp5590.c:125 -#, fuzzy, no-c-format +#, no-c-format msgid "Get value of LED indicator (read only)" -msgstr "Obtén l'ID de l'últim botó premut (només lectura)" +msgstr "Obtén el valor del comptador LED (només lectura)" #: backend/hp5590.c:127 #, no-c-format msgid "Document available in ADF" -msgstr "" +msgstr "Document disponible a l'ADF" #: backend/hp5590.c:128 #, no-c-format msgid "Get state of document-available indicator in ADF (read only)" msgstr "" +"Obtén l'estat de l'indicador de document disponible a l'ADF (només " +"lectura)" #: backend/hp5590.c:130 #, no-c-format @@ -3768,303 +4090,6 @@ msgstr "" "Valor del «color» per al mode d'ompliment al final de les línies. Color " "RGB com a valor r*65536+256*g+b o gris (predeterminat=violeta o gris)" -#: backend/hp-option.c:2987 -#, no-c-format -msgid "Advanced Options" -msgstr "Opcions avançades" - -#: backend/hp-option.c:3044 -#, no-c-format -msgid "Coarse" -msgstr "Tosc" - -#: backend/hp-option.c:3045 -#, no-c-format -msgid "Fine" -msgstr "Fina" - -#: backend/hp-option.c:3046 -#, no-c-format -msgid "Bayer" -msgstr "Bayer" - -#: backend/hp-option.c:3049 backend/hp-option.c:3100 -#, no-c-format -msgid "Custom" -msgstr "A mida" - -#: backend/hp-option.c:3090 backend/hp-option.c:3146 -#: backend/hp-option.c:3161 -#, no-c-format -msgid "Auto" -msgstr "Auto" - -# Nota: https://ca.wikipedia.org/wiki/NTSC -#: backend/hp-option.c:3091 -#, no-c-format -msgid "NTSC RGB" -msgstr "RGB del NTSC" - -# Nota: https://support.hp.com/gb-en/document/c01275842 -#: backend/hp-option.c:3092 -#, no-c-format -msgid "XPA RGB" -msgstr "RGB amb el XPA" - -#: backend/hp-option.c:3093 -#, no-c-format -msgid "Pass-through" -msgstr "Passa a través" - -#: backend/hp-option.c:3094 -#, no-c-format -msgid "NTSC Gray" -msgstr "Gris del NTSC" - -#: backend/hp-option.c:3095 -#, no-c-format -msgid "XPA Gray" -msgstr "Gris amb el XPA" - -#: backend/hp-option.c:3147 -#, no-c-format -msgid "Slow" -msgstr "Lent" - -#: backend/hp-option.c:3148 backend/hp-option.c:3255 -#: backend/kvs40xx_opt.c:230 backend/matsushita.c:244 backend/mustek.c:149 -#: backend/plustek.c:234 backend/plustek_pp.c:203 backend/u12.c:155 -#, no-c-format -msgid "Normal" -msgstr "Normal" - -#: backend/hp-option.c:3149 -#, no-c-format -msgid "Fast" -msgstr "Ràpid" - -#: backend/hp-option.c:3150 -#, no-c-format -msgid "Extra Fast" -msgstr "Extraràpid" - -#: backend/hp-option.c:3163 -#, no-c-format -msgid "2-pixel" -msgstr "2 píxels" - -#: backend/hp-option.c:3164 -#, no-c-format -msgid "4-pixel" -msgstr "4 píxels" - -#: backend/hp-option.c:3165 -#, no-c-format -msgid "8-pixel" -msgstr "8 píxels" - -#: backend/hp-option.c:3176 -#, no-c-format -msgid "Print" -msgstr "Imprimeix" - -#: backend/hp-option.c:3178 -#, no-c-format -msgid "Film-strip" -msgstr "Tira de pel·lícules" - -#: backend/hp-option.c:3257 -#, no-c-format -msgid "XPA" -msgstr "XPA" - -#: backend/hp-option.c:3331 backend/hp-option.c:3344 -#, no-c-format -msgid "Conditional" -msgstr "Condicional" - -#: backend/hp-option.c:3417 -#, no-c-format -msgid "Experiment" -msgstr "Experimental" - -#: backend/hp-option.h:60 -#, no-c-format -msgid "Sharpening" -msgstr "Aguditzant" - -#: backend/hp-option.h:61 -#, no-c-format -msgid "Set sharpening value." -msgstr "Estableix el valor de l'agudització." - -#: backend/hp-option.h:66 -#, no-c-format -msgid "Auto Threshold" -msgstr "Llindar automàtic" - -#: backend/hp-option.h:68 -#, no-c-format -msgid "Enable automatic determination of threshold for line-art scans." -msgstr "" -"Habilita la determinació automàtica del llindar pels escaneigs amb art " -"lineal." - -#: backend/hp-option.h:74 -#, no-c-format -msgid "Select smoothing filter." -msgstr "Selecciona el filtre de suavitzat." - -#: backend/hp-option.h:79 -#, no-c-format -msgid "Unload media after scan" -msgstr "Descarrega el suport després de l'escaneig" - -#: backend/hp-option.h:80 -#, no-c-format -msgid "Unloads the media after a scan." -msgstr "Descarrega el suport després d'un escaneig." - -#: backend/hp-option.h:85 -#, no-c-format -msgid "Change document" -msgstr "Canvia el document" - -#: backend/hp-option.h:86 -#, no-c-format -msgid "Change Document." -msgstr "Canvia el document." - -#: backend/hp-option.h:91 -#, no-c-format -msgid "Unload" -msgstr "Descarrega" - -#: backend/hp-option.h:92 -#, no-c-format -msgid "Unload Document." -msgstr "Descarrega el document." - -#: backend/hp-option.h:98 -#, no-c-format -msgid "Start calibration process." -msgstr "Inicia el procés de calibratge." - -#: backend/hp-option.h:103 -#, no-c-format -msgid "Media" -msgstr "Suport" - -#: backend/hp-option.h:104 -#, no-c-format -msgid "Set type of media." -msgstr "Estableix el tipus de suport." - -#: backend/hp-option.h:109 -#, no-c-format -msgid "Exposure time" -msgstr "Temps d'exposició" - -#: backend/hp-option.h:111 -#, no-c-format -msgid "" -"A longer exposure time lets the scanner collect more light. Suggested " -"use is 175% for prints, 150% for normal slides and \"Negative\" for " -"negative film. For dark (underexposed) images you can increase this " -"value." -msgstr "" -"Un temps d'exposició més llarg permet que l'escàner recopili més llum. " -"L'ús aconsellat és el 175% per a impressions, el 150% per a diapositives " -"normals i «Negatiu» per a pel·lícules en negatiu. Per a imatges fosques " -"(sota exposades), podeu augmentar aquest valor." - -#: backend/hp-option.h:119 backend/hp-option.h:126 -#, no-c-format -msgid "Color Matrix" -msgstr "Matriu de color" - -#: backend/hp-option.h:121 -#, fuzzy, no-c-format -msgid "Set the scanner's color matrix." -msgstr "Estableix la matriu de color dels escàners." - -#: backend/hp-option.h:127 -#, no-c-format -msgid "Custom color matrix." -msgstr "Matriu de color a mida." - -#: backend/hp-option.h:132 -#, no-c-format -msgid "Mono Color Matrix" -msgstr "Matriu de color monocrom" - -#: backend/hp-option.h:133 -#, no-c-format -msgid "Custom color matrix for grayscale scans." -msgstr "Matriu de color a mida pels escaneigs en escala de grisos." - -#: backend/hp-option.h:138 -#, no-c-format -msgid "Mirror horizontal" -msgstr "Emmiralla horitzontalment" - -#: backend/hp-option.h:139 -#, no-c-format -msgid "Mirror image horizontally." -msgstr "Emmiralla horitzontalment la imatge." - -#: backend/hp-option.h:144 -#, no-c-format -msgid "Mirror vertical" -msgstr "Emmiralla verticalment" - -#: backend/hp-option.h:145 -#, no-c-format -msgid "Mirror image vertically." -msgstr "Emmiralla verticalment la imatge." - -#: backend/hp-option.h:150 -#, no-c-format -msgid "Update options" -msgstr "Opcions per a l'actualització" - -#: backend/hp-option.h:151 -#, no-c-format -msgid "Update options." -msgstr "Opcions per a l'actualització." - -#: backend/hp-option.h:156 -#, no-c-format -msgid "8 bit output" -msgstr "Sortida de 8 bits" - -#: backend/hp-option.h:158 -#, no-c-format -msgid "Use bit depth greater eight internally, but output only eight bits." -msgstr "" -"Usa internament una profunditat de bits més gran que vuit, però a la " -"sortida usa només vuit bits." - -#: backend/hp-option.h:164 -#, no-c-format -msgid "Front button wait" -msgstr "Espera al botó del frontal" - -#: backend/hp-option.h:165 -#, no-c-format -msgid "Wait to scan for front-panel button push." -msgstr "Espera per escanejar que es premi el botó del panell frontal." - -#: backend/hp-option.h:172 -#, no-c-format -msgid "Shut off lamp" -msgstr "Apaga la làmpada" - -#: backend/hp-option.h:173 -#, no-c-format -msgid "Shut off scanner lamp." -msgstr "Apaga la llum de l'escàner." - #: backend/kvs1025.h:51 backend/kvs20xx_opt.c:295 backend/kvs40xx_opt.c:516 #: backend/matsushita.h:219 #, no-c-format @@ -4163,7 +4188,7 @@ msgid "single" msgstr "individual" #: backend/kvs1025_opt.c:73 backend/kvs20xx.c:462 backend/kvs20xx_opt.c:56 -#: backend/kvs40xx.c:704 backend/kvs40xx.c:722 backend/kvs40xx_opt.c:102 +#: backend/kvs40xx.c:705 backend/kvs40xx.c:723 backend/kvs40xx_opt.c:102 #: backend/kvs40xx_opt.c:1087 #, no-c-format msgid "continuous" @@ -4331,9 +4356,9 @@ msgid "crt" msgstr "CRT" #: backend/kvs1025_opt.c:229 -#, fuzzy, no-c-format +#, no-c-format msgid "linear" -msgstr "Art lineal" +msgstr "Lineal" #: backend/kvs1025_opt.c:241 backend/kvs20xx_opt.c:138 #: backend/kvs40xx_opt.c:224 @@ -4465,7 +4490,7 @@ msgstr "Estableix l'èmfasi de la imatge" #: backend/kvs1025_opt.c:807 backend/kvs1025_opt.c:808 #: backend/matsushita.c:1300 backend/matsushita.c:1301 -#: backend/pixma_sane_options.c:112 +#: backend/pixma/pixma_sane_options.c:112 #, no-c-format msgid "Gamma" msgstr "Gamma" @@ -4539,13 +4564,13 @@ msgstr "" "digital" #: backend/kvs20xx_opt.c:233 -#, fuzzy, no-c-format +#, no-c-format msgid "" "Length Control Mode causes the scanner to read the shorter of either the " "length of the actual paper or logical document length." msgstr "" -"El mode control de la longitud és un mode on l'escàner llegirà fins a la " -"longitud més curta del paper real o la longitud lògica del document." +"El mode control de la longitud fa que l'escàner llegeixi la longitud més " +"curta real del paper o la longitud lògica del document." #: backend/kvs20xx_opt.c:424 backend/kvs20xx_opt.c:425 #: backend/kvs40xx_opt.c:668 backend/kvs40xx_opt.c:669 @@ -4575,14 +4600,14 @@ msgid "B4" msgstr "B4" #: backend/kvs40xx_opt.c:231 -#, fuzzy, no-c-format +#, no-c-format msgid "High sensitivity" -msgstr "Alta sensibilitat" +msgstr "Sensibilitat alta" #: backend/kvs40xx_opt.c:232 -#, fuzzy, no-c-format +#, no-c-format msgid "Low sensitivity" -msgstr "Baixa sensibilitat" +msgstr "Sensibilitat baixa" #: backend/kvs40xx_opt.c:243 #, no-c-format @@ -4605,13 +4630,13 @@ msgid "Enhanced mode" msgstr "Mode millorat" #: backend/kvs40xx_opt.c:396 -#, fuzzy, no-c-format +#, no-c-format msgid "" "Length Control Mode causes the scanner to read the shorter of either the " "length of the actual paper or logical document length" msgstr "" -"El mode control de la longitud és un mode on l'escàner llegirà fins a la " -"longitud més curta del paper real o la longitud lògica del document." +"El mode control de la longitud fa que l'escàner llegeixi la longitud més " +"curta real del paper o la longitud lògica del document" #: backend/kvs40xx_opt.c:405 #, no-c-format @@ -4674,10 +4699,10 @@ msgid "JPEG compression" msgstr "Compressió del JPEG" #: backend/kvs40xx_opt.c:718 -#, fuzzy, no-c-format +#, no-c-format msgid "JPEG compression (your application must be able to uncompress)" msgstr "" -"Compressió del JPEG (l'aplicació vostra l'haurà de poder descomprimir)" +"Compressió del JPEG (la vostra aplicació haurà de poder descomprimir)" #: backend/kvs40xx_opt.c:737 backend/kvs40xx_opt.c:738 #, no-c-format @@ -4710,12 +4735,12 @@ msgid "Skew adjustment" msgstr "Ajustament de la inclinació" #: backend/kvs40xx_opt.c:808 -#, fuzzy, no-c-format +#, no-c-format msgid "Stop scanner if a sheet is skewed" msgstr "Atura l'escàner quan un paper estigui inclinat" #: backend/kvs40xx_opt.c:809 -#, fuzzy, no-c-format +#, no-c-format msgid "Scanner will stop if a sheet is skewed" msgstr "S'aturarà l'escàner quan un paper estigui inclinat" @@ -4725,15 +4750,15 @@ msgid "Crop actual image area" msgstr "Escapça una àrea de la imatge real" #: backend/kvs40xx_opt.c:817 -#, fuzzy, no-c-format +#, no-c-format msgid "Scanner will automatically detect image area and crop to it" msgstr "" "L'escàner detectarà automàticament l'àrea de la imatge i l'escapçarà" #: backend/kvs40xx_opt.c:827 -#, fuzzy, no-c-format +#, no-c-format msgid "Left/right mirror image" -msgstr "Emmiralla la imatge" +msgstr "Emmiralla la imatge d'esquerra/dreta" #: backend/kvs40xx_opt.c:834 backend/kvs40xx_opt.c:835 #, no-c-format @@ -4770,52 +4795,52 @@ msgstr "Bayer 8x8" msgid "8x8 Vertical Line" msgstr "Línia vertical 8x8" -#: backend/lexmark.c:273 backend/umax_pp.c:711 +#: backend/lexmark.c:273 backend/umax_pp.c:705 #, no-c-format msgid "Gain" msgstr "Guany" -#: backend/lexmark.c:274 backend/umax_pp.c:712 +#: backend/lexmark.c:274 backend/umax_pp.c:706 #, no-c-format msgid "Color channels gain settings" msgstr "Ajustaments del guany per als canals de color" -#: backend/lexmark.c:283 backend/umax_pp.c:719 +#: backend/lexmark.c:283 backend/umax_pp.c:713 #, no-c-format msgid "Gray gain" msgstr "Guany del gris" -#: backend/lexmark.c:284 backend/umax_pp.c:720 +#: backend/lexmark.c:284 backend/umax_pp.c:714 #, no-c-format msgid "Sets gray channel gain" msgstr "Estableix el guany del canal gris" -#: backend/lexmark.c:297 backend/plustek.c:1001 backend/umax_pp.c:731 +#: backend/lexmark.c:297 backend/plustek.c:1001 backend/umax_pp.c:725 #, no-c-format msgid "Red gain" msgstr "Guany del vermell" -#: backend/lexmark.c:298 backend/umax_pp.c:732 +#: backend/lexmark.c:298 backend/umax_pp.c:726 #, no-c-format msgid "Sets red channel gain" msgstr "Estableix el guany del canal vermell" -#: backend/lexmark.c:311 backend/plustek.c:1017 backend/umax_pp.c:743 +#: backend/lexmark.c:311 backend/plustek.c:1017 backend/umax_pp.c:737 #, no-c-format msgid "Green gain" msgstr "Guany del verd" -#: backend/lexmark.c:312 backend/umax_pp.c:744 +#: backend/lexmark.c:312 backend/umax_pp.c:738 #, no-c-format msgid "Sets green channel gain" msgstr "Estableix el guany del canal verd" -#: backend/lexmark.c:325 backend/plustek.c:1033 backend/umax_pp.c:755 +#: backend/lexmark.c:325 backend/plustek.c:1033 backend/umax_pp.c:749 #, no-c-format msgid "Blue gain" msgstr "Guany del blau" -#: backend/lexmark.c:326 backend/umax_pp.c:756 +#: backend/lexmark.c:326 backend/umax_pp.c:750 #, no-c-format msgid "Sets blue channel gain" msgstr "Estableix el guany del canal blau" @@ -4901,7 +4926,7 @@ msgstr "Una pàgina" msgid "All pages" msgstr "Totes les pàgines" -#: backend/matsushita.c:1034 backend/plustek.c:1333 +#: backend/matsushita.c:1034 backend/p5_device.c:8 backend/plustek.c:1333 #, no-c-format msgid "sheetfed scanner" msgstr "escàner alimentat per fulls" @@ -5424,27 +5449,32 @@ msgstr "" "Escalfa fins que la brillantor de la làmpada sigui constant en comptes " "d'insistir en el temps d'escalfament de 40 segons." -#: backend/pixma.c:397 +#: backend/p5.c:1926 +#, no-c-format +msgid "Need calibration" +msgstr "Necessita calibratge" + +#: backend/pixma/pixma.c:397 #, no-c-format msgid "Negative color" msgstr "Color en negatiu" -#: backend/pixma.c:402 +#: backend/pixma/pixma.c:402 #, no-c-format msgid "Negative gray" msgstr "Gris en negatiu" -#: backend/pixma.c:415 +#: backend/pixma/pixma.c:415 #, no-c-format msgid "48 bits color" msgstr "Color de 48 bits" -#: backend/pixma.c:420 +#: backend/pixma/pixma.c:420 #, no-c-format msgid "16 bits gray" msgstr "Gris de 16 bits" -#: backend/pixma_sane_options.c:84 +#: backend/pixma/pixma_sane_options.c:84 #, no-c-format msgid "" "Selects the scan source (such as a document-feeder). Set source before " @@ -5454,12 +5484,12 @@ msgstr "" "Estableix la font abans del mode i la resolució. Restaura el mode i la " "resolució als valors automàtics." -#: backend/pixma_sane_options.c:98 +#: backend/pixma/pixma_sane_options.c:98 #, no-c-format msgid "Button-controlled scan" msgstr "Escaneig controlat pels botons" -#: backend/pixma_sane_options.c:99 +#: backend/pixma/pixma_sane_options.c:99 #, no-c-format msgid "" "When enabled, scan process will not start immediately. To proceed, press " @@ -5470,43 +5500,43 @@ msgstr "" "Per a continuar, premeu el botó «Escaneja» (per a MP150) o el botó " "«Color» (per a altres models). Per a cancel·lar, premeu el botó «Gris»." -#: backend/pixma_sane_options.c:232 +#: backend/pixma/pixma_sane_options.c:232 #, no-c-format msgid "Update button state" msgstr "Actualitza l'estat del botó" -#: backend/pixma_sane_options.c:244 +#: backend/pixma/pixma_sane_options.c:244 #, no-c-format msgid "Button 1" msgstr "Botó 1" -#: backend/pixma_sane_options.c:258 +#: backend/pixma/pixma_sane_options.c:258 #, no-c-format msgid "Button 2" msgstr "Botó 2" -#: backend/pixma_sane_options.c:272 +#: backend/pixma/pixma_sane_options.c:272 #, no-c-format msgid "Type of original to scan" msgstr "Tipus de l'original a escanejar" -#: backend/pixma_sane_options.c:286 +#: backend/pixma/pixma_sane_options.c:286 #, no-c-format msgid "Target operation type" msgstr "Tipus de l'operació de destinació" -#: backend/pixma_sane_options.c:348 +#: backend/pixma/pixma_sane_options.c:348 #, no-c-format msgid "ADF Waiting Time" msgstr "Temps d'espera per a l'ADF" -#: backend/pixma_sane_options.c:349 -#, fuzzy, no-c-format +#: backend/pixma/pixma_sane_options.c:349 +#, no-c-format msgid "" "When set, the scanner waits upto the specified time in seconds for a new " "document inserted into the automatic document feeder." msgstr "" -"Quan s'estableix, l'escàner cerca el temps d'espera en segons perquè " +"Quan s'estableix, l'escàner espera el temps especificat en segons perquè " "s'insereixi un document nou a l'alimentador automàtic de documents." #: backend/plustek.c:235 backend/plustek_pp.c:204 backend/u12.c:156 @@ -5594,7 +5624,7 @@ msgstr "Frontal analògic" msgid "Red gain value of the AFE" msgstr "Valor de guany del vermell de l'AFE" -#: backend/plustek.c:1009 backend/umax_pp.c:788 +#: backend/plustek.c:1009 backend/umax_pp.c:782 #, no-c-format msgid "Red offset" msgstr "Desplaçament del vermell" @@ -5871,7 +5901,7 @@ msgstr "" msgid "This option reflects the status of a scanner button." msgstr "Aquesta opció reflecteix l'estat d'un botó de l'escàner." -#: backend/rts8891.c:2840 backend/umax.c:5795 backend/umax_pp.c:635 +#: backend/rts8891.c:2840 backend/umax.c:5795 backend/umax_pp.c:629 #, no-c-format msgid "Lamp on" msgstr "Encén la làmpada" @@ -5881,12 +5911,12 @@ msgstr "Encén la làmpada" msgid "Turn on scanner lamp" msgstr "Encén la llum de l'escàner" -#: backend/rts8891.c:2851 backend/umax1220u.c:248 backend/umax.c:5812 +#: backend/rts8891.c:2851 backend/umax.c:5812 backend/umax1220u.c:248 #, no-c-format msgid "Lamp off" msgstr "Apaga la làmpada" -#: backend/rts8891.c:2852 backend/umax1220u.c:249 backend/umax.c:5813 +#: backend/rts8891.c:2852 backend/umax.c:5813 backend/umax1220u.c:249 #, no-c-format msgid "Turn off scanner lamp" msgstr "Apaga la llum de l'escàner" @@ -6033,12 +6063,12 @@ msgid "Focus point" msgstr "Punt d'enfocament" #: backend/snapscan-options.c:930 -#, fuzzy, no-c-format +#, no-c-format msgid "Color lines per read" msgstr "Línies de color per a la lectura" #: backend/snapscan-options.c:942 -#, fuzzy, no-c-format +#, no-c-format msgid "Grayscale lines per read" msgstr "Línies en escala de grisos per a la lectura" @@ -6710,56 +6740,66 @@ msgstr "Mode del calibratge" msgid "Define calibration mode" msgstr "Defineix el mode del calibratge" -#: backend/umax_pp.c:636 +#: backend/umax_pp.c:630 #, no-c-format msgid "Sets lamp on/off" msgstr "Estableix la làmpada a encesa/apagada" -#: backend/umax_pp.c:645 +#: backend/umax_pp.c:639 #, no-c-format msgid "UTA on" msgstr "Activa l'UTA" -#: backend/umax_pp.c:646 +#: backend/umax_pp.c:640 #, no-c-format msgid "Sets UTA on/off" msgstr "Estableix l'UTA a actiu/inactiu" -#: backend/umax_pp.c:767 +#: backend/umax_pp.c:761 #, no-c-format msgid "Offset" msgstr "Desplaçament" -#: backend/umax_pp.c:769 +#: backend/umax_pp.c:763 #, no-c-format msgid "Color channels offset settings" msgstr "Ajustaments del desplaçament per als canals de color" -#: backend/umax_pp.c:776 +#: backend/umax_pp.c:770 #, no-c-format msgid "Gray offset" msgstr "Desplaçament del gris" -#: backend/umax_pp.c:777 +#: backend/umax_pp.c:771 #, no-c-format msgid "Sets gray channel offset" msgstr "Estableix el desplaçament del canal gris" -#: backend/umax_pp.c:789 +#: backend/umax_pp.c:783 #, no-c-format msgid "Sets red channel offset" msgstr "Estableix el desplaçament del canal vermell" -#: backend/umax_pp.c:801 +#: backend/umax_pp.c:795 #, no-c-format msgid "Sets green channel offset" msgstr "Estableix el desplaçament del canal verd" -#: backend/umax_pp.c:813 +#: backend/umax_pp.c:807 #, no-c-format msgid "Sets blue channel offset" msgstr "Estableix el desplaçament del canal blau" +#~ msgid "Disable dynamic lineart" +#~ msgstr "Inhabilita l'art lineal dinàmic" + +#~ msgid "" +#~ "Disable use of a software adaptive algorithm to generate lineart " +#~ "relying instead on hardware lineart." +#~ msgstr "" +#~ "Inhabilita l'ús d'un algorisme adaptatiu per programari que genera " +#~ "art lineal en comptes de per maquinari." + #~ msgid "linier" #~ msgstr "Lineal" diff --git a/po/ca@valencia.po b/po/ca@valencia.po index 3b12ee99b..8111f09aa 100644 --- a/po/ca@valencia.po +++ b/po/ca@valencia.po @@ -1,13 +1,13 @@ -# Copyright (C) 2018 The SANE developers +# Copyright (C) 2018-2020 The SANE developers # This file is distributed under the same license as the sane-backends package. # -# Antoni Bella Pérez , 2018. +# Antoni Bella Pérez , 2018, 2020. msgid "" msgstr "" -"Project-Id-Version: sane-backends 1.0.27git\n" +"Project-Id-Version: sane-backends 1.0.29\n" "Report-Msgid-Bugs-To: sane-devel@alioth-lists.debian.net\n" -"POT-Creation-Date: 2019-10-12 17:41+0300\n" -"PO-Revision-Date: 2018-09-10 00:37+0100\n" +"POT-Creation-Date: 2020-01-12 07:09+0000\n" +"PO-Revision-Date: 2020-01-17 11:40+0100\n" "Last-Translator: Antoni Bella Pérez \n" "Language-Team: Catalan \n" "Language: ca@valencia\n" @@ -15,7 +15,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Lokalize 2.0\n" +"X-Generator: Lokalize 20.03.70\n" #: include/sane/saneopts.h:154 #, no-c-format @@ -28,23 +28,23 @@ msgid "Standard" msgstr "Estàndard" #: include/sane/saneopts.h:157 backend/artec_eplus48u.c:2884 -#: backend/epson.c:3298 backend/epson2.c:1290 -#: backend/genesys/genesys.cpp:3976 backend/gt68xx.c:696 -#: backend/hp3500.c:1019 backend/hp-option.c:3300 backend/kvs1025_opt.c:639 +#: backend/epson.c:3298 backend/epson2.c:1290 backend/epsonds.c:677 +#: backend/genesys/genesys.cpp:4034 backend/gt68xx.c:696 +#: backend/hp-option.c:3300 backend/hp3500.c:1019 backend/kvs1025_opt.c:639 #: backend/kvs20xx_opt.c:285 backend/kvs40xx_opt.c:506 backend/leo.c:823 #: backend/lexmark.c:199 backend/ma1509.c:551 backend/matsushita.c:1135 #: backend/microtek2.h:599 backend/mustek.c:4373 backend/mustek_usb.c:301 -#: backend/mustek_usb2.c:465 backend/pixma_sane_options.c:160 +#: backend/mustek_usb2.c:465 backend/pixma/pixma_sane_options.c:160 #: backend/plustek.c:808 backend/plustek_pp.c:747 backend/sceptre.c:702 #: backend/snapscan-options.c:550 backend/teco1.c:1095 backend/teco2.c:1910 #: backend/teco3.c:920 backend/test.c:647 backend/u12.c:546 -#: backend/umax.c:5176 backend/umax_pp.c:576 +#: backend/umax.c:5176 backend/umax_pp.c:570 #, no-c-format msgid "Geometry" msgstr "Geometria" #: include/sane/saneopts.h:158 backend/artec_eplus48u.c:2805 -#: backend/canon.c:1493 backend/genesys/genesys.cpp:4035 +#: backend/canon.c:1493 backend/genesys/genesys.cpp:4077 #: backend/gt68xx.c:665 backend/hp-option.c:2956 backend/kvs1025_opt.c:703 #: backend/leo.c:871 backend/ma1509.c:599 backend/matsushita.c:1189 #: backend/microtek2.h:600 backend/mustek.c:4421 backend/mustek_usb.c:349 @@ -52,7 +52,7 @@ msgstr "Geometria" #: backend/plustek_pp.c:793 backend/sceptre.c:750 #: backend/snapscan-options.c:617 backend/stv680.c:1067 #: backend/teco1.c:1143 backend/teco2.c:1958 backend/teco3.c:968 -#: backend/u12.c:592 backend/umax.c:5226 backend/umax_pp.c:625 +#: backend/u12.c:592 backend/umax.c:5226 backend/umax_pp.c:619 #, no-c-format msgid "Enhancement" msgstr "Millora" @@ -86,7 +86,7 @@ msgid "Bit depth" msgstr "Bits de profunditat" #: include/sane/saneopts.h:165 backend/canon.c:1140 backend/leo.c:781 -#: backend/pixma_sane_options.c:47 +#: backend/pixma/pixma_sane_options.c:47 #, no-c-format msgid "Scan mode" msgstr "Mode d'escaneig" @@ -127,7 +127,7 @@ msgid "Bottom-right y" msgstr "A baix-dreta Y" #: include/sane/saneopts.h:173 backend/canon.c:1216 -#: backend/pixma_sane_options.c:300 +#: backend/pixma/pixma_sane_options.c:300 #, no-c-format msgid "Scan resolution" msgstr "Resolució de l'escàner" @@ -282,7 +282,7 @@ msgstr "Nom de fitxer" msgid "Halftone pattern size" msgstr "Mida del patró per al semi to" -#: include/sane/saneopts.h:204 backend/fujitsu.c:3233 +#: include/sane/saneopts.h:204 backend/fujitsu.c:3237 #, no-c-format msgid "Halftone pattern" msgstr "Patró per al semi to" @@ -292,10 +292,10 @@ msgstr "Patró per al semi to" msgid "Bind X and Y resolution" msgstr "Enllaça les resolucions X i Y" -#: include/sane/saneopts.h:206 backend/hp3900_sane.c:428 -#: backend/hp3900_sane.c:1021 backend/hp3900_sane.c:1421 -#: backend/hp-option.c:3238 backend/mustek_usb2.c:121 backend/plustek.c:236 -#: backend/plustek_pp.c:205 backend/u12.c:157 +#: include/sane/saneopts.h:206 backend/hp-option.c:3238 +#: backend/hp3900_sane.c:428 backend/hp3900_sane.c:1021 +#: backend/hp3900_sane.c:1421 backend/mustek_usb2.c:121 +#: backend/plustek.c:236 backend/plustek_pp.c:205 backend/u12.c:157 #, no-c-format msgid "Negative" msgstr "Negatiu" @@ -416,7 +416,7 @@ msgid "Lamp off at exit" msgstr "Apaga la làmpada en eixir" #: include/sane/saneopts.h:245 -#, fuzzy, no-c-format +#, no-c-format msgid "" "Read-only option that specifies how many options a specific device " "supports." @@ -768,7 +768,7 @@ msgid "Analog gamma-correction for blue" msgstr "Correcció de la gamma analògica per al blau" #: include/sane/saneopts.h:415 -#, fuzzy, no-c-format +#, no-c-format msgid "Warm up lamp before scanning" msgstr "Escalfament de la làmpada abans d'escanejar" @@ -918,9 +918,9 @@ msgid "Operation not supported" msgstr "Operació no admesa" #: backend/sane_strstatus.c:65 -#, fuzzy, no-c-format +#, no-c-format msgid "Operation was canceled" -msgstr "L'operació ha estat cancel·lada" +msgstr "S'ha cancel·lat l'operació" #: backend/sane_strstatus.c:68 #, no-c-format @@ -1013,7 +1013,7 @@ msgid "Only perform shading-correction" msgstr "Realitza només la correcció de les ombres" #: backend/artec_eplus48u.c:2956 -#, fuzzy, no-c-format +#, no-c-format msgid "" "If enabled, only the shading correction is performed during calibration. " "The default values for gain, offset and exposure time, either built-in " @@ -1045,86 +1045,45 @@ msgid "Duplex scan" msgstr "Escaneja a dues cares" #: backend/avision.h:783 -#, fuzzy, no-c-format +#, no-c-format msgid "" "Duplex scan provides a scan of the front and back side of the document" msgstr "" "L'escanejat de les dues cares proporciona un escanejat de l'anvers i el " "revers del document" -#: backend/canon630u.c:159 +#: backend/canon-sane.c:674 backend/canon.c:171 #, no-c-format -msgid "Calibrate Scanner" -msgstr "Calibratge de l'escàner" +msgid "Correction according to transparency ratio" +msgstr "Correcció d'acord amb la relació de transparència" -#: backend/canon630u.c:160 +#: backend/canon-sane.c:680 backend/canon.c:170 #, no-c-format -msgid "Force scanner calibration before scan" -msgstr "Força el calibratge de l'escàner abans de l'escaneig" +msgid "Correction according to film type" +msgstr "Correcció d'acord amb el tipus de pel·lícula" -#: backend/canon630u.c:259 backend/umax1220u.c:208 -#, no-c-format -msgid "Grayscale scan" -msgstr "Escaneja en escala de grisos" - -#: backend/canon630u.c:260 backend/umax1220u.c:209 -#, no-c-format -msgid "Do a grayscale rather than color scan" -msgstr "Fes un escaneig en escala de grisos en lloc d'en color" - -#: backend/canon630u.c:306 -#, no-c-format -msgid "Analog Gain" -msgstr "Guany analògic" - -#: backend/canon630u.c:307 -#, no-c-format -msgid "Increase or decrease the analog gain of the CCD array" -msgstr "Augmenta o disminueix el guany analògic per a la matriu del CCD" - -#: backend/canon630u.c:347 backend/epson.h:68 backend/epson2.h:67 -#, no-c-format -msgid "Gamma Correction" -msgstr "Correcció de la gamma" - -#: backend/canon630u.c:348 -#, no-c-format -msgid "Selects the gamma corrected transfer curve" -msgstr "" -"Selecciona la corba de transferència per a la correcció de la gamma" - -#: backend/canon.c:149 backend/canon-sane.c:1318 -#, no-c-format -msgid "Raw" -msgstr "En brut" - -#: backend/canon.c:157 backend/canon-sane.c:732 backend/canon-sane.c:940 +#: backend/canon-sane.c:732 backend/canon-sane.c:940 #: backend/canon-sane.c:1076 backend/canon-sane.c:1314 -#: backend/canon-sane.c:1494 backend/canon-sane.c:1643 +#: backend/canon-sane.c:1494 backend/canon-sane.c:1643 backend/canon.c:157 #, no-c-format msgid "Fine color" msgstr "Color fi" +#: backend/canon-sane.c:776 backend/canon.c:176 +#, no-c-format +msgid "Negatives" +msgstr "Negatius" + +#: backend/canon-sane.c:1318 backend/canon.c:149 +#, no-c-format +msgid "Raw" +msgstr "En brut" + #: backend/canon.c:169 #, no-c-format msgid "No transparency correction" msgstr "Sense correcció de la transparència" -#: backend/canon.c:170 backend/canon-sane.c:680 -#, no-c-format -msgid "Correction according to film type" -msgstr "Correcció d'acord amb el tipus de pel·lícula" - -#: backend/canon.c:171 backend/canon-sane.c:674 -#, no-c-format -msgid "Correction according to transparency ratio" -msgstr "Correcció d'acord amb la relació de transparència" - -#: backend/canon.c:176 backend/canon-sane.c:776 -#, no-c-format -msgid "Negatives" -msgstr "Negatius" - #: backend/canon.c:176 #, no-c-format msgid "Slides" @@ -1260,9 +1219,9 @@ msgid "invalid bit IDENTIFY message" msgstr "Missatge «IDENTIFY» del bit no vàlid" #: backend/canon.c:460 -#, fuzzy, no-c-format +#, no-c-format msgid "option not correct" -msgstr "L'opció no connectar" +msgstr "Opció no correcta" #: backend/canon.c:474 #, no-c-format @@ -1560,94 +1519,138 @@ msgstr "Selecciona el tipus de pel·lícula" msgid "Select the film type" msgstr "Selecciona el tipus de pel·lícula" -#: backend/canon_dr.c:411 backend/epjitsu.c:233 backend/epson.c:501 -#: backend/epson2.c:115 backend/fujitsu.c:675 backend/gt68xx.c:148 +#: backend/canon630u.c:159 +#, no-c-format +msgid "Calibrate Scanner" +msgstr "Calibratge de l'escàner" + +#: backend/canon630u.c:160 +#, no-c-format +msgid "Force scanner calibration before scan" +msgstr "Força el calibratge de l'escàner abans de l'escaneig" + +#: backend/canon630u.c:259 backend/umax1220u.c:208 +#, no-c-format +msgid "Grayscale scan" +msgstr "Escaneja en escala de grisos" + +#: backend/canon630u.c:260 backend/umax1220u.c:209 +#, no-c-format +msgid "Do a grayscale rather than color scan" +msgstr "Fes un escaneig en escala de grisos en lloc d'en color" + +#: backend/canon630u.c:306 +#, no-c-format +msgid "Analog Gain" +msgstr "Guany analògic" + +#: backend/canon630u.c:307 +#, no-c-format +msgid "Increase or decrease the analog gain of the CCD array" +msgstr "Augmenta o disminueix el guany analògic per a la matriu del CCD" + +#: backend/canon630u.c:347 backend/epson.h:68 backend/epson2.h:67 +#, no-c-format +msgid "Gamma Correction" +msgstr "Correcció de la gamma" + +#: backend/canon630u.c:348 +#, no-c-format +msgid "Selects the gamma corrected transfer curve" +msgstr "" +"Selecciona la corba de transferència per a la correcció de la gamma" + +#: backend/canon_dr.c:413 backend/epjitsu.c:233 backend/epson.c:501 +#: backend/epson2-ops.c:101 backend/epson2.c:115 backend/epsonds-ops.c:32 +#: backend/epsonds.c:95 backend/epsonds.h:62 backend/fujitsu.c:677 +#: backend/genesys/genesys.h:78 backend/gt68xx.c:148 #: backend/hp3900_sane.c:418 backend/hp3900_sane.c:427 -#: backend/hp3900_sane.c:1017 backend/hp5590.c:92 backend/ma1509.c:108 -#: backend/magicolor.c:181 backend/mustek.c:156 backend/mustek.c:160 -#: backend/mustek.c:164 backend/pixma.c:920 backend/pixma_sane_options.c:92 -#: backend/snapscan-options.c:86 backend/test.c:192 backend/umax.c:181 +#: backend/hp3900_sane.c:1017 backend/hp5590.c:92 backend/kodakaio.c:617 +#: backend/ma1509.c:108 backend/magicolor.c:181 backend/mustek.c:156 +#: backend/mustek.c:160 backend/mustek.c:164 backend/pixma/pixma.c:920 +#: backend/pixma/pixma_sane_options.c:92 backend/snapscan-options.c:86 +#: backend/test.c:192 backend/umax.c:181 #, no-c-format msgid "Flatbed" msgstr "De superfície plana" -#: backend/canon_dr.c:412 backend/epjitsu.c:234 backend/fujitsu.c:676 +#: backend/canon_dr.c:414 backend/epjitsu.c:234 backend/fujitsu.c:678 #: backend/kodak.c:140 #, no-c-format msgid "ADF Front" msgstr "ADF per a l'anvers" -#: backend/canon_dr.c:413 backend/epjitsu.c:235 backend/fujitsu.c:677 +#: backend/canon_dr.c:415 backend/epjitsu.c:235 backend/fujitsu.c:679 #: backend/kodak.c:141 #, no-c-format msgid "ADF Back" msgstr "ADF per al revers" -#: backend/canon_dr.c:414 backend/epjitsu.c:236 backend/fujitsu.c:678 -#: backend/hp5590.c:94 backend/kodak.c:142 backend/pixma.c:931 +#: backend/canon_dr.c:416 backend/epjitsu.c:236 backend/fujitsu.c:680 +#: backend/hp5590.c:94 backend/kodak.c:142 backend/pixma/pixma.c:931 #, no-c-format msgid "ADF Duplex" msgstr "ADF per a les dues cares" -#: backend/canon_dr.c:415 +#: backend/canon_dr.c:417 #, no-c-format msgid "Card Front" msgstr "Targeta per a l'anvers" -#: backend/canon_dr.c:416 +#: backend/canon_dr.c:418 #, no-c-format msgid "Card Back" msgstr "Targeta per al revers" -#: backend/canon_dr.c:417 +#: backend/canon_dr.c:419 #, no-c-format msgid "Card Duplex" msgstr "Targeta per a les dues cares" -#: backend/canon_dr.c:424 backend/epson.c:599 backend/epson.c:3096 -#: backend/epson2.c:201 backend/fujitsu.c:695 -#: backend/genesys/genesys.cpp:99 backend/genesys/genesys.cpp:106 +#: backend/canon_dr.c:426 backend/epson.c:599 backend/epson.c:3096 +#: backend/epson2.c:201 backend/fujitsu.c:697 +#: backend/genesys/genesys.cpp:120 backend/genesys/genesys.cpp:127 #: backend/gt68xx_low.h:136 backend/hp-option.c:3096 #, no-c-format msgid "Red" msgstr "Roig" -#: backend/canon_dr.c:425 backend/epson.c:600 backend/epson.c:3092 -#: backend/epson2.c:202 backend/fujitsu.c:696 -#: backend/genesys/genesys.cpp:100 backend/genesys/genesys.cpp:107 +#: backend/canon_dr.c:427 backend/epson.c:600 backend/epson.c:3092 +#: backend/epson2.c:202 backend/fujitsu.c:698 +#: backend/genesys/genesys.cpp:121 backend/genesys/genesys.cpp:128 #: backend/gt68xx_low.h:137 backend/hp-option.c:3097 #, no-c-format msgid "Green" msgstr "Verd" -#: backend/canon_dr.c:426 backend/epson.c:601 backend/epson.c:3100 -#: backend/epson2.c:203 backend/fujitsu.c:697 -#: backend/genesys/genesys.cpp:101 backend/genesys/genesys.cpp:108 +#: backend/canon_dr.c:428 backend/epson.c:601 backend/epson.c:3100 +#: backend/epson2.c:203 backend/fujitsu.c:699 +#: backend/genesys/genesys.cpp:122 backend/genesys/genesys.cpp:129 #: backend/gt68xx_low.h:138 backend/hp-option.c:3098 #, no-c-format msgid "Blue" msgstr "Blau" -#: backend/canon_dr.c:427 +#: backend/canon_dr.c:429 #, no-c-format msgid "Enhance Red" msgstr "Roig realçat" -#: backend/canon_dr.c:428 +#: backend/canon_dr.c:430 #, no-c-format msgid "Enhance Green" msgstr "Verd realçat" -#: backend/canon_dr.c:429 +#: backend/canon_dr.c:431 #, no-c-format msgid "Enhance Blue" msgstr "Blau realçat" -#: backend/canon_dr.c:431 backend/epson.c:556 backend/epson.c:564 +#: backend/canon_dr.c:433 backend/epson.c:556 backend/epson.c:564 #: backend/epson.c:576 backend/epson.c:598 backend/epson2.c:165 #: backend/epson2.c:173 backend/epson2.c:185 backend/epson2.c:200 -#: backend/epson2.c:214 backend/fujitsu.c:701 -#: backend/genesys/genesys.cpp:109 backend/leo.c:109 +#: backend/epson2.c:214 backend/fujitsu.c:703 +#: backend/genesys/genesys.cpp:130 backend/leo.c:109 #: backend/matsushita.c:138 backend/matsushita.c:159 #: backend/matsushita.c:191 backend/matsushita.c:213 #: backend/snapscan-options.c:91 @@ -1655,44 +1658,48 @@ msgstr "Blau realçat" msgid "None" msgstr "Cap" -#: backend/canon_dr.c:432 backend/fujitsu.c:702 +#: backend/canon_dr.c:434 backend/fujitsu.c:704 #, no-c-format msgid "JPEG" msgstr "JPEG" -#: backend/canon_dr.c:2477 backend/fujitsu.c:4113 -#: backend/genesys/genesys.cpp:4126 backend/kvs1025_opt.c:910 +#: backend/canon_dr.c:2479 backend/fujitsu.c:4117 +#: backend/genesys/genesys.cpp:4168 backend/kvs1025_opt.c:910 #, no-c-format msgid "Software blank skip percentage" msgstr "El percentatge per a saltar el blanc del programari" -#: backend/canon_dr.c:2478 backend/fujitsu.c:4114 +#: backend/canon_dr.c:2480 backend/fujitsu.c:4118 #, no-c-format msgid "Request driver to discard pages with low percentage of dark pixels" msgstr "" "Sol·licita al controlador que descarti les pàgines amb un percentatge " "baix de píxels foscos" -#: backend/epson.c:491 backend/epson2.c:108 backend/magicolor.c:174 +#: backend/epson.c:491 backend/epson2.c:108 backend/epsonds.c:88 +#: backend/kodakaio.c:611 backend/magicolor.c:174 #, no-c-format msgid "Simplex" msgstr "Una cara" -#: backend/epson.c:492 backend/epson2.c:109 backend/kvs1025.h:50 -#: backend/kvs20xx_opt.c:204 backend/kvs40xx_opt.c:353 -#: backend/magicolor.c:175 backend/matsushita.h:218 +#: backend/epson.c:492 backend/epson2.c:109 backend/epsonds.c:89 +#: backend/kodakaio.c:612 backend/kvs1025.h:50 backend/kvs20xx_opt.c:204 +#: backend/kvs40xx_opt.c:353 backend/magicolor.c:175 +#: backend/matsushita.h:218 #, no-c-format msgid "Duplex" msgstr "Dues cares" -#: backend/epson.c:502 backend/epson2.c:116 backend/pixma.c:937 +#: backend/epson.c:502 backend/epson2-ops.c:102 backend/epson2.c:116 +#: backend/epsonds-ops.c:33 backend/epsonds.h:63 backend/pixma/pixma.c:937 #, no-c-format msgid "Transparency Unit" msgstr "Unitat per a la transparència" -#: backend/epson.c:503 backend/epson2.c:118 backend/magicolor.c:182 -#: backend/mustek.c:160 backend/pixma.c:925 backend/test.c:192 -#: backend/umax.c:183 +#: backend/epson.c:503 backend/epson2-ops.c:104 backend/epson2.c:118 +#: backend/epsonds-ops.c:34 backend/epsonds.c:96 backend/epsonds.h:64 +#: backend/kodakaio.c:618 backend/magicolor.c:182 backend/mustek.c:160 +#: backend/pixma/pixma.c:925 backend/test.c:192 backend/umax.c:183 #, no-c-format msgid "Automatic Document Feeder" msgstr "Alimentador automàtic de documents" @@ -1804,7 +1811,7 @@ msgstr "Impressores d'injecció de tinta" msgid "CRT monitors" msgstr "Monitors CRT" -#: backend/epson.c:656 backend/epson2.c:254 backend/fujitsu.c:685 +#: backend/epson.c:656 backend/epson2.c:254 backend/fujitsu.c:687 #: backend/hp-option.c:3229 backend/test.c:143 #, no-c-format msgid "Default" @@ -1868,8 +1875,8 @@ msgstr "A4" msgid "Max" msgstr "Màx" -#: backend/epson.c:2813 backend/epson2.c:976 -#: backend/genesys/genesys.cpp:3893 backend/gt68xx.c:451 +#: backend/epson.c:2813 backend/epson2.c:976 backend/epsonds.c:629 +#: backend/genesys/genesys.cpp:3965 backend/gt68xx.c:451 #: backend/hp-option.c:2917 backend/kvs1025_opt.c:521 #: backend/kvs20xx_opt.c:171 backend/kvs40xx_opt.c:320 backend/ma1509.c:501 #: backend/matsushita.c:1084 backend/microtek2.h:598 backend/mustek.c:4215 @@ -2044,17 +2051,17 @@ msgstr "Defineix el factor de zoom que usarà l'escàner" msgid "Quick format" msgstr "Format ràpid" -#: backend/epson.c:3360 backend/epson2.c:1340 +#: backend/epson.c:3360 backend/epson2.c:1340 backend/epsonds.c:726 #, no-c-format msgid "Optional equipment" msgstr "Equipament opcional" -#: backend/epson.c:3431 backend/epson2.c:1393 +#: backend/epson.c:3431 backend/epson2.c:1393 backend/epsonds.c:742 #, no-c-format msgid "Eject" msgstr "Expulsa" -#: backend/epson.c:3432 backend/epson2.c:1394 +#: backend/epson.c:3432 backend/epson2.c:1394 backend/epsonds.c:743 #, no-c-format msgid "Eject the sheet in the ADF" msgstr "Expulsa el full de l'ADF" @@ -2069,12 +2076,14 @@ msgstr "Expulsa automàticament" msgid "Eject document after scanning" msgstr "Expulsa el document després de l'escaneig" -#: backend/epson.c:3457 backend/epson2.c:1416 backend/magicolor.c:2420 +#: backend/epson.c:3457 backend/epson2.c:1416 backend/epsonds.c:758 +#: backend/kodakaio.c:2855 backend/magicolor.c:2420 #, no-c-format msgid "ADF Mode" msgstr "Mode ADF" -#: backend/epson.c:3459 backend/epson2.c:1418 backend/magicolor.c:2422 +#: backend/epson.c:3459 backend/epson2.c:1418 backend/epsonds.c:760 +#: backend/kodakaio.c:2857 backend/magicolor.c:2422 #, no-c-format msgid "Selects the ADF mode (simplex/duplex)" msgstr "Seleccionar el mode de l'ADF (una cara/dues cares)" @@ -2126,17 +2135,17 @@ msgstr "" "Després d'enviar l'ordre d'escaneig, s'ha d'esperar fins que es prema el " "botó de l'escàner per iniciar realment el procés d'escaneig." -#: backend/epson2.c:102 backend/pixma.c:409 -#, no-c-format -msgid "Infrared" -msgstr "Infraroigs" - # Nota: https://github.com/Scan-o-Matic/scanomatic/wiki/Installing-scanners -#: backend/epson2.c:117 +#: backend/epson2-ops.c:103 backend/epson2.c:117 #, no-c-format msgid "TPU8x10" msgstr "TPU8x10" +#: backend/epson2.c:102 backend/pixma/pixma.c:409 +#, no-c-format +msgid "Infrared" +msgstr "Infraroigs" + #: backend/epson2.c:136 #, no-c-format msgid "Positive Slide" @@ -2158,243 +2167,263 @@ msgstr "Incorpora el perfil CCT" msgid "User defined CCT profile" msgstr "Perfil CCT definit per l'usuari" -#: backend/fujitsu.c:686 backend/hp-option.c:3330 backend/hp-option.c:3343 +#: backend/epsonds.c:750 +#, no-c-format +msgid "Load" +msgstr "Carrega" + +#: backend/epsonds.c:751 +#, no-c-format +msgid "Load a sheet in the ADF" +msgstr "Carrega un full a l'ADF" + +#: backend/epsonds.c:771 +#, no-c-format +msgid "ADF Skew Correction" +msgstr "Correcció de la inclinació a l'ADF" + +#: backend/epsonds.c:773 +#, no-c-format +msgid "Enables ADF skew correction" +msgstr "Habilita la correcció de la inclinació a l'ADF" + +#: backend/fujitsu.c:688 backend/hp-option.c:3330 backend/hp-option.c:3343 #, no-c-format msgid "On" msgstr "Actiu" -#: backend/fujitsu.c:687 backend/hp-option.c:3162 backend/hp-option.c:3329 +#: backend/fujitsu.c:689 backend/hp-option.c:3162 backend/hp-option.c:3329 #: backend/hp-option.c:3342 #, no-c-format msgid "Off" msgstr "Inactiu" -#: backend/fujitsu.c:689 +#: backend/fujitsu.c:691 #, no-c-format msgid "DTC" msgstr "DTC" -#: backend/fujitsu.c:690 +#: backend/fujitsu.c:692 #, no-c-format msgid "SDTC" msgstr "SDTC" -#: backend/fujitsu.c:692 backend/teco1.c:1152 backend/teco1.c:1153 +#: backend/fujitsu.c:694 backend/teco1.c:1152 backend/teco1.c:1153 #: backend/teco2.c:1967 backend/teco2.c:1968 backend/teco3.c:977 #: backend/teco3.c:978 #, no-c-format msgid "Dither" msgstr "Tramat" -#: backend/fujitsu.c:693 +#: backend/fujitsu.c:695 #, no-c-format msgid "Diffusion" msgstr "Difusió" -#: backend/fujitsu.c:698 +#: backend/fujitsu.c:700 #, no-c-format msgid "White" msgstr "Blanc" -#: backend/fujitsu.c:699 +#: backend/fujitsu.c:701 #, no-c-format msgid "Black" msgstr "Negre" -#: backend/fujitsu.c:704 +#: backend/fujitsu.c:706 #, no-c-format msgid "Continue" msgstr "Continua" -#: backend/fujitsu.c:705 +#: backend/fujitsu.c:707 #, no-c-format msgid "Stop" msgstr "Atura" -#: backend/fujitsu.c:707 +#: backend/fujitsu.c:709 #, no-c-format msgid "10mm" msgstr "10 mm" -#: backend/fujitsu.c:708 +#: backend/fujitsu.c:710 #, no-c-format msgid "15mm" msgstr "15 mm" -#: backend/fujitsu.c:709 +#: backend/fujitsu.c:711 #, no-c-format msgid "20mm" msgstr "20 mm" -#: backend/fujitsu.c:711 backend/hp-option.c:3048 +#: backend/fujitsu.c:713 backend/hp-option.c:3048 #, no-c-format msgid "Horizontal" msgstr "Horitzontal" -#: backend/fujitsu.c:712 +#: backend/fujitsu.c:714 #, no-c-format msgid "Horizontal bold" msgstr "Horitzontal en negre" -#: backend/fujitsu.c:713 +#: backend/fujitsu.c:715 #, no-c-format msgid "Horizontal narrow" msgstr "Horitzontal estreta" -#: backend/fujitsu.c:714 backend/hp-option.c:3047 +#: backend/fujitsu.c:716 backend/hp-option.c:3047 #, no-c-format msgid "Vertical" msgstr "Vertical" -#: backend/fujitsu.c:715 +#: backend/fujitsu.c:717 #, no-c-format msgid "Vertical bold" msgstr "Vertical en negre" -#: backend/fujitsu.c:717 +#: backend/fujitsu.c:719 #, no-c-format msgid "Top to bottom" msgstr "De dalt a baix" -#: backend/fujitsu.c:718 +#: backend/fujitsu.c:720 #, no-c-format msgid "Bottom to top" msgstr "De baix a dalt" -#: backend/fujitsu.c:720 +#: backend/fujitsu.c:722 #, no-c-format msgid "Front" msgstr "Anvers" -#: backend/fujitsu.c:721 +#: backend/fujitsu.c:723 #, no-c-format msgid "Back" msgstr "Revers" -#: backend/fujitsu.c:3144 backend/pixma_sane_options.c:145 +#: backend/fujitsu.c:3148 backend/pixma/pixma_sane_options.c:145 #, no-c-format msgid "Gamma function exponent" msgstr "Exponent de la funció gamma" -#: backend/fujitsu.c:3145 backend/pixma_sane_options.c:146 +#: backend/fujitsu.c:3149 backend/pixma/pixma_sane_options.c:146 #, no-c-format msgid "Changes intensity of midtones" msgstr "Canvia la intensitat dels semi tons" -#: backend/fujitsu.c:3194 +#: backend/fujitsu.c:3198 #, no-c-format msgid "RIF" msgstr "RIF" -#: backend/fujitsu.c:3195 +#: backend/fujitsu.c:3199 #, no-c-format msgid "Reverse image format" msgstr "Format d'imatge inversa" -#: backend/fujitsu.c:3212 +#: backend/fujitsu.c:3216 #, no-c-format msgid "Halftone type" msgstr "Tipus de semi to" -#: backend/fujitsu.c:3213 +#: backend/fujitsu.c:3217 #, no-c-format msgid "Control type of halftone filter" msgstr "Controla el tipus de filtre del semi to" -#: backend/fujitsu.c:3234 +#: backend/fujitsu.c:3238 #, no-c-format msgid "Control pattern of halftone filter" msgstr "Controla el patró del filtre del semi to" -#: backend/fujitsu.c:3256 +#: backend/fujitsu.c:3260 #, no-c-format msgid "Outline" msgstr "Contorn" -#: backend/fujitsu.c:3257 +#: backend/fujitsu.c:3261 #, no-c-format msgid "Perform outline extraction" msgstr "Realitza l'extracció del contorn" -#: backend/fujitsu.c:3268 +#: backend/fujitsu.c:3272 #, no-c-format msgid "Emphasis" msgstr "Èmfasi" -#: backend/fujitsu.c:3269 +#: backend/fujitsu.c:3273 #, no-c-format msgid "Negative to smooth or positive to sharpen image" msgstr "Negatiu per a suavitzar o positiu per aguditzar la imatge" -#: backend/fujitsu.c:3287 +#: backend/fujitsu.c:3291 #, no-c-format msgid "Separation" msgstr "Separació" -#: backend/fujitsu.c:3288 +#: backend/fujitsu.c:3292 #, no-c-format msgid "Enable automatic separation of image and text" msgstr "Habilita la separació automàtica de les imatges i el text" -#: backend/fujitsu.c:3299 +#: backend/fujitsu.c:3303 #, no-c-format msgid "Mirroring" msgstr "Emmiralla" -#: backend/fujitsu.c:3300 +#: backend/fujitsu.c:3304 #, no-c-format msgid "Reflect output image horizontally" msgstr "Reflecteix horitzontalment la imatge d'eixida" -#: backend/fujitsu.c:3317 +#: backend/fujitsu.c:3321 #, no-c-format msgid "White level follower" msgstr "Seguidor del nivell de blanc" -#: backend/fujitsu.c:3318 +#: backend/fujitsu.c:3322 #, no-c-format msgid "Control white level follower" msgstr "Controla el seguidor del nivell de blanc" -#: backend/fujitsu.c:3336 +#: backend/fujitsu.c:3340 #, no-c-format msgid "BP filter" msgstr "Filtre per al bolígraf" -#: backend/fujitsu.c:3337 +#: backend/fujitsu.c:3341 #, no-c-format msgid "Improves quality of high resolution ball-point pen text" msgstr "Millora la qualitat del text del bolígraf amb alta resolució" -#: backend/fujitsu.c:3353 backend/hp-option.h:73 +#: backend/fujitsu.c:3357 backend/hp-option.h:73 #, no-c-format msgid "Smoothing" msgstr "Suavitzat" -#: backend/fujitsu.c:3354 +#: backend/fujitsu.c:3358 #, no-c-format msgid "Enable smoothing for improved OCR" msgstr "Habilita el suavitzat per a millorar l'OCR" -#: backend/fujitsu.c:3370 +#: backend/fujitsu.c:3374 #, no-c-format msgid "Gamma curve" msgstr "Corba amb interval" -#: backend/fujitsu.c:3371 +#: backend/fujitsu.c:3375 #, no-c-format msgid "Gamma curve, from light to dark, but upper two may not work" msgstr "" "La corba amb interval, des de la llum a la foscor, però la part superior " "de les dues podria no funcionar" -#: backend/fujitsu.c:3393 backend/genesys/genesys.cpp:4187 -#: backend/pixma_sane_options.c:335 +#: backend/fujitsu.c:3397 backend/genesys/genesys.cpp:4229 +#: backend/pixma/pixma_sane_options.c:335 #, no-c-format msgid "Threshold curve" msgstr "Corba del llindar" -#: backend/fujitsu.c:3394 +#: backend/fujitsu.c:3398 #, no-c-format msgid "" "Threshold curve, from light to dark, but upper two may not be linear" @@ -2402,116 +2431,116 @@ msgstr "" "La corba del llindar, des de la llum a la foscor, però la part superior " "de les dues podria no ser lineal" -#: backend/fujitsu.c:3416 +#: backend/fujitsu.c:3420 #, no-c-format msgid "Threshold white" msgstr "Llindar al blanc" -#: backend/fujitsu.c:3417 +#: backend/fujitsu.c:3421 #, no-c-format msgid "Set pixels equal to threshold to white instead of black" msgstr "" "Estableix els píxels iguals al llindar al blanc en comptes de negre" -#: backend/fujitsu.c:3433 backend/fujitsu.c:3434 +#: backend/fujitsu.c:3437 backend/fujitsu.c:3438 #, no-c-format msgid "Noise removal" msgstr "Eliminació del soroll" -#: backend/fujitsu.c:3450 +#: backend/fujitsu.c:3454 #, no-c-format msgid "Matrix 5x5" msgstr "Matriu 5x5" -#: backend/fujitsu.c:3451 +#: backend/fujitsu.c:3455 #, no-c-format msgid "Remove 5 pixel square noise" msgstr "Elimina el soroll quadrat de 5 píxels" -#: backend/fujitsu.c:3467 +#: backend/fujitsu.c:3471 #, no-c-format msgid "Matrix 4x4" msgstr "Matriu 4x4" -#: backend/fujitsu.c:3468 +#: backend/fujitsu.c:3472 #, no-c-format msgid "Remove 4 pixel square noise" msgstr "Elimina el soroll quadrat de 4 píxels" -#: backend/fujitsu.c:3484 +#: backend/fujitsu.c:3488 #, no-c-format msgid "Matrix 3x3" msgstr "Matriu 3x3" -#: backend/fujitsu.c:3485 +#: backend/fujitsu.c:3489 #, no-c-format msgid "Remove 3 pixel square noise" msgstr "Elimina el soroll quadrat de 3 píxels" -#: backend/fujitsu.c:3501 +#: backend/fujitsu.c:3505 #, no-c-format msgid "Matrix 2x2" msgstr "Matriu 2x2" -#: backend/fujitsu.c:3502 +#: backend/fujitsu.c:3506 #, no-c-format msgid "Remove 2 pixel square noise" msgstr "Elimina el soroll quadrat de 2 píxels" -#: backend/fujitsu.c:3521 +#: backend/fujitsu.c:3525 #, no-c-format msgid "Variance" msgstr "Variància" -#: backend/fujitsu.c:3522 +#: backend/fujitsu.c:3526 #, no-c-format msgid "Set SDTC variance rate (sensitivity), 0 equals 127" msgstr "" "Estableix la velocitat de la variància SDTC (sensibilitat), 0 és igual " "que 127" -#: backend/fujitsu.c:3555 +#: backend/fujitsu.c:3559 #, no-c-format msgid "Auto width detection" msgstr "Detecció automàtica de l'amplària" -#: backend/fujitsu.c:3556 +#: backend/fujitsu.c:3560 #, no-c-format msgid "Scanner detects paper sides. May reduce scanning speed." msgstr "" "L'escàner detectarà els costats del paper. Pot reduir la velocitat de " "l'escaneig." -#: backend/fujitsu.c:3573 +#: backend/fujitsu.c:3577 #, no-c-format msgid "Auto length detection" msgstr "Detecció automàtica de la llargada" -#: backend/fujitsu.c:3574 +#: backend/fujitsu.c:3578 #, no-c-format msgid "Scanner detects paper lower edge. May confuse some frontends." msgstr "" "L'escàner detectarà la vora inferior del paper. Pot confondre alguns " "frontals." -#: backend/fujitsu.c:3600 +#: backend/fujitsu.c:3604 #, no-c-format msgid "Compression" msgstr "Compressió" -#: backend/fujitsu.c:3601 +#: backend/fujitsu.c:3605 #, no-c-format msgid "Enable compressed data. May crash your front-end program" msgstr "" "Habilita les dades comprimides. Pot fer fallar el vostre programa de " "frontal" -#: backend/fujitsu.c:3621 +#: backend/fujitsu.c:3625 #, no-c-format msgid "Compression argument" msgstr "Argument per a la compressió" -#: backend/fujitsu.c:3622 +#: backend/fujitsu.c:3626 #, no-c-format msgid "" "Level of JPEG compression. 1 is small file, 7 is large file. 0 (default) " @@ -2520,110 +2549,110 @@ msgstr "" "Nivell de la compressió JPEG. 1 és un fitxer petit, 7 és un fitxer gran. " "0 (predeterminat) és igual que 4" -#: backend/fujitsu.c:3652 +#: backend/fujitsu.c:3656 #, no-c-format msgid "DF action" msgstr "Acció per a la doble alimentació" -#: backend/fujitsu.c:3653 +#: backend/fujitsu.c:3657 #, no-c-format msgid "Action following double feed error" msgstr "Acció per a després de l'error de doble alimentació" -#: backend/fujitsu.c:3669 +#: backend/fujitsu.c:3673 #, no-c-format msgid "DF skew" msgstr "Inclinació per la doble alimentació" -#: backend/fujitsu.c:3670 +#: backend/fujitsu.c:3674 #, no-c-format msgid "Enable double feed error due to skew" msgstr "Habilita l'error de doble alimentació que causa inclinació" -#: backend/fujitsu.c:3688 +#: backend/fujitsu.c:3692 #, no-c-format msgid "DF thickness" msgstr "Gruix del paper per la doble alimentació" -#: backend/fujitsu.c:3689 +#: backend/fujitsu.c:3693 #, no-c-format msgid "Enable double feed error due to paper thickness" msgstr "Habilita l'error de doble alimentació causat pel gruix del paper" -#: backend/fujitsu.c:3707 +#: backend/fujitsu.c:3711 #, no-c-format msgid "DF length" msgstr "Longitud del paper causant doble alimentació" -#: backend/fujitsu.c:3708 +#: backend/fujitsu.c:3712 #, no-c-format msgid "Enable double feed error due to paper length" msgstr "" "Habilita l'error de doble alimentació causat per la longitud del paper" -#: backend/fujitsu.c:3731 +#: backend/fujitsu.c:3735 #, no-c-format msgid "DF length difference" msgstr "Diferència en la longitud per a causar doble alimentació" -#: backend/fujitsu.c:3732 +#: backend/fujitsu.c:3736 #, no-c-format msgid "Difference in page length to trigger double feed error" msgstr "" "Diferència en la longitud de la pàgina per activar l'error de doble " "alimentació" -#: backend/fujitsu.c:3755 +#: backend/fujitsu.c:3759 #, no-c-format msgid "DF recovery mode" msgstr "El mode recuperació causa doble alimentació" -#: backend/fujitsu.c:3756 +#: backend/fujitsu.c:3760 #, no-c-format msgid "Request scanner to reverse feed on paper jam" msgstr "" "Sol·licita a l'escàner que l'alimentador recuperi el paper en embussar-se" -#: backend/fujitsu.c:3775 +#: backend/fujitsu.c:3779 #, no-c-format msgid "Paper protection" msgstr "Protecció del paper" -#: backend/fujitsu.c:3776 +#: backend/fujitsu.c:3780 #, no-c-format msgid "Request scanner to predict jams in the ADF" msgstr "Pregunta a l'escàner per a predir les embussades a l'ADF" -#: backend/fujitsu.c:3795 +#: backend/fujitsu.c:3799 #, no-c-format msgid "Advanced paper protection" msgstr "Protecció avançada del paper" -#: backend/fujitsu.c:3796 +#: backend/fujitsu.c:3800 #, no-c-format msgid "Request scanner to predict jams in the ADF using improved sensors" msgstr "" "Pregunta a l'escàner per a predir les embussades a l'ADF usant sensors " "millorats" -#: backend/fujitsu.c:3815 +#: backend/fujitsu.c:3819 #, no-c-format msgid "Staple detection" msgstr "Detecció de les grapes" -#: backend/fujitsu.c:3816 +#: backend/fujitsu.c:3820 #, no-c-format msgid "Request scanner to detect jams in the ADF caused by staples" msgstr "" "Pregunta a l'escàner per a detectar les embussades a l'ADF causades per " "les grapes" -#: backend/fujitsu.c:3835 +#: backend/fujitsu.c:3839 #, no-c-format msgid "Background color" msgstr "Color de fons" -#: backend/fujitsu.c:3836 +#: backend/fujitsu.c:3840 #, no-c-format msgid "" "Set color of background for scans. May conflict with overscan option" @@ -2631,12 +2660,12 @@ msgstr "" "Estableix un color de fons per a l'escaneig. Pot entrar en conflicte amb " "l'opció de sobreexploració" -#: backend/fujitsu.c:3856 +#: backend/fujitsu.c:3860 #, no-c-format msgid "Dropout color" msgstr "Descarta el color" -#: backend/fujitsu.c:3857 +#: backend/fujitsu.c:3861 #, no-c-format msgid "" "One-pass scanners use only one color during gray or binary scanning, " @@ -2645,34 +2674,34 @@ msgstr "" "Els escàners d'una sola passada només usen un color durant l'escaneig " "amb gris o binari, útil per a paper amb colors o tinta" -#: backend/fujitsu.c:3880 +#: backend/fujitsu.c:3884 #, no-c-format msgid "Buffer mode" msgstr "Mode de memòria intermèdia" -#: backend/fujitsu.c:3881 +#: backend/fujitsu.c:3885 #, no-c-format msgid "Request scanner to read pages quickly from ADF into internal memory" msgstr "" "Sol·licita a l'escàner que llija les pàgines ràpidament des de l'ADF a " "la memòria interna" -#: backend/fujitsu.c:3900 +#: backend/fujitsu.c:3904 #, no-c-format msgid "Prepick" msgstr "Preselecciona" -#: backend/fujitsu.c:3901 +#: backend/fujitsu.c:3905 #, no-c-format msgid "Request scanner to grab next page from ADF" msgstr "Sol·licita a l'escàner que agafi la pàgina següent des de l'ADF" -#: backend/fujitsu.c:3920 +#: backend/fujitsu.c:3924 #, no-c-format msgid "Overscan" msgstr "Sobreexploració" -#: backend/fujitsu.c:3921 +#: backend/fujitsu.c:3925 #, no-c-format msgid "" "Collect a few mm of background on top side of scan, before paper enters " @@ -2684,12 +2713,12 @@ msgstr "" "de la mida del paper, per a permetre recollir els costats restants. Pot " "entrar en conflicte amb l'opció Color de fons" -#: backend/fujitsu.c:3939 +#: backend/fujitsu.c:3943 #, no-c-format msgid "Sleep timer" msgstr "Temporitzador de suspensió" -#: backend/fujitsu.c:3940 +#: backend/fujitsu.c:3944 #, no-c-format msgid "" "Time in minutes until the internal power supply switches to sleep mode" @@ -2697,12 +2726,12 @@ msgstr "" "Temps en minuts fins que la font d'alimentació interna canviarà al mode " "de suspensió" -#: backend/fujitsu.c:3958 +#: backend/fujitsu.c:3962 #, no-c-format msgid "Off timer" msgstr "Temporitzador per apagar" -#: backend/fujitsu.c:3959 +#: backend/fujitsu.c:3963 #, no-c-format msgid "" "Time in minutes until the internal power supply switches the scanner " @@ -2712,42 +2741,42 @@ msgstr "" "S'arrodonirà fins als 15 minuts més propers. Zero significa que no " "s'apagarà mai." -#: backend/fujitsu.c:3977 +#: backend/fujitsu.c:3981 #, no-c-format msgid "Duplex offset" msgstr "Desplaçament de la doble cara" -#: backend/fujitsu.c:3978 +#: backend/fujitsu.c:3982 #, no-c-format msgid "Adjust front/back offset" msgstr "Ajusta el desplaçament per a l'anvers/revers" -#: backend/fujitsu.c:3995 backend/plustek.c:1025 backend/umax_pp.c:800 +#: backend/fujitsu.c:3999 backend/plustek.c:1025 backend/umax_pp.c:794 #, no-c-format msgid "Green offset" msgstr "Desplaçament del verd" -#: backend/fujitsu.c:3996 +#: backend/fujitsu.c:4000 #, no-c-format msgid "Adjust green/red offset" msgstr "Ajusta el desplaçament del verd/roig" -#: backend/fujitsu.c:4013 backend/plustek.c:1041 backend/umax_pp.c:812 +#: backend/fujitsu.c:4017 backend/plustek.c:1041 backend/umax_pp.c:806 #, no-c-format msgid "Blue offset" msgstr "Desplaçament del blau" -#: backend/fujitsu.c:4014 +#: backend/fujitsu.c:4018 #, no-c-format msgid "Adjust blue/red offset" msgstr "Ajusta el desplaçament del blau/roig" -#: backend/fujitsu.c:4027 +#: backend/fujitsu.c:4031 #, no-c-format msgid "Low Memory" msgstr "Memòria baixa" -#: backend/fujitsu.c:4028 +#: backend/fujitsu.c:4032 #, no-c-format msgid "" "Limit driver memory usage for use in embedded systems. Causes some " @@ -2761,12 +2790,12 @@ msgstr "" "es pot usar per a determinar la imatge correcta. Aquesta opció només " "s'hauria d'usar amb el programari de frontal personalitzat." -#: backend/fujitsu.c:4043 +#: backend/fujitsu.c:4047 #, no-c-format msgid "Duplex side" msgstr "Cara per a les dues cares" -#: backend/fujitsu.c:4044 +#: backend/fujitsu.c:4048 #, no-c-format msgid "" "Tells which side (0=front, 1=back) of a duplex scan the next call to " @@ -2775,58 +2804,58 @@ msgstr "" "Indica a quina cara (0=anvers, 1=revers) en un escaneig de dues cares " "retornarà la següent crida al «sane_read()»." -#: backend/fujitsu.c:4055 +#: backend/fujitsu.c:4059 #, no-c-format msgid "Hardware deskew and crop" msgstr "Desinclina i escapça per maquinari" -#: backend/fujitsu.c:4056 +#: backend/fujitsu.c:4060 #, no-c-format msgid "Request scanner to rotate and crop pages digitally." msgstr "" "Sol·licita a l'escàner que giri i escapci les pàgines de forma digital." -#: backend/fujitsu.c:4067 backend/kvs1025_opt.c:871 +#: backend/fujitsu.c:4071 backend/kvs1025_opt.c:871 #, no-c-format msgid "Software deskew" msgstr "Desinclina per programari" -#: backend/fujitsu.c:4068 +#: backend/fujitsu.c:4072 #, no-c-format msgid "Request driver to rotate skewed pages digitally." msgstr "" "Sol·licita al controlador que giri les pàgines inclinades de forma " "digital." -#: backend/fujitsu.c:4080 backend/kvs1025_opt.c:880 +#: backend/fujitsu.c:4084 backend/kvs1025_opt.c:880 #, no-c-format msgid "Software despeckle diameter" msgstr "Diàmetre per eliminar els pics per programari" -#: backend/fujitsu.c:4081 +#: backend/fujitsu.c:4085 #, no-c-format msgid "Maximum diameter of lone dots to remove from scan." msgstr "" "Diàmetre màxim dels punts solitaris per eliminar-los de l'escaneig." -#: backend/fujitsu.c:4100 backend/genesys/genesys.cpp:4117 +#: backend/fujitsu.c:4104 backend/genesys/genesys.cpp:4159 #, no-c-format msgid "Software crop" msgstr "Escapça per programari" -#: backend/fujitsu.c:4101 +#: backend/fujitsu.c:4105 #, no-c-format msgid "Request driver to remove border from pages digitally." msgstr "" "Sol·licita al controlador que elimini la vora de les pàgines de forma " "digital." -#: backend/fujitsu.c:4130 +#: backend/fujitsu.c:4134 #, no-c-format msgid "Halt on Cancel" msgstr "Atura en cancel·lar" -#: backend/fujitsu.c:4131 +#: backend/fujitsu.c:4135 #, no-c-format msgid "" "Request driver to halt the paper feed instead of eject during a cancel." @@ -2834,108 +2863,108 @@ msgstr "" "Sol·licita al controlador que pare l'alimentador de paper en lloc " "d'expulsar-lo durant una cancel·lació." -#: backend/fujitsu.c:4142 +#: backend/fujitsu.c:4146 #, no-c-format msgid "Endorser Options" msgstr "Opcions per a l'aprovador" -#: backend/fujitsu.c:4143 +#: backend/fujitsu.c:4147 #, no-c-format msgid "Controls for endorser unit" msgstr "Controls per a la unitat aprovadora" -#: backend/fujitsu.c:4154 +#: backend/fujitsu.c:4158 #, no-c-format msgid "Endorser" msgstr "Aprovador" -#: backend/fujitsu.c:4155 +#: backend/fujitsu.c:4159 #, no-c-format msgid "Enable endorser unit" msgstr "Habilita la unitat aprovadora" -#: backend/fujitsu.c:4170 +#: backend/fujitsu.c:4174 #, no-c-format msgid "Endorser bits" msgstr "Bits de l'aprovació" -#: backend/fujitsu.c:4171 +#: backend/fujitsu.c:4175 #, no-c-format msgid "Determines maximum endorser counter value." msgstr "Determina el valor màxim del comptador de l'aprovació." -#: backend/fujitsu.c:4196 +#: backend/fujitsu.c:4200 #, no-c-format msgid "Endorser value" msgstr "Valor de l'aprovació" -#: backend/fujitsu.c:4197 +#: backend/fujitsu.c:4201 #, no-c-format msgid "Initial endorser counter value." msgstr "Valor inicial del comptador de l'aprovació." -#: backend/fujitsu.c:4220 +#: backend/fujitsu.c:4224 #, no-c-format msgid "Endorser step" msgstr "Pas de l'aprovació" -#: backend/fujitsu.c:4221 +#: backend/fujitsu.c:4225 #, no-c-format msgid "Change endorser counter value by this much for each page." msgstr "" "Canvia el valor del comptador de l'aprovació en aquest tant per a cada " "pàgina." -#: backend/fujitsu.c:4244 +#: backend/fujitsu.c:4248 #, no-c-format msgid "Endorser Y" msgstr "Aprovació Y" -#: backend/fujitsu.c:4245 +#: backend/fujitsu.c:4249 #, no-c-format msgid "Endorser print offset from top of paper." msgstr "" "Desplaçament de la impressió de l'aprovador des de la part superior del " "paper." -#: backend/fujitsu.c:4270 +#: backend/fujitsu.c:4274 #, no-c-format msgid "Endorser font" msgstr "Tipus de lletra per a l'aprovador" -#: backend/fujitsu.c:4271 +#: backend/fujitsu.c:4275 #, no-c-format msgid "Endorser printing font." msgstr "El tipus de lletra amb el que imprimirà l'aprovador." -#: backend/fujitsu.c:4300 +#: backend/fujitsu.c:4304 #, no-c-format msgid "Endorser direction" msgstr "Direcció de l'aprovador" -#: backend/fujitsu.c:4301 +#: backend/fujitsu.c:4305 #, no-c-format msgid "Endorser printing direction." msgstr "Direcció amb la qual imprimirà l'aprovador." -#: backend/fujitsu.c:4325 +#: backend/fujitsu.c:4329 #, no-c-format msgid "Endorser side" msgstr "Costat de l'aprovador" -#: backend/fujitsu.c:4326 +#: backend/fujitsu.c:4330 #, no-c-format msgid "Endorser printing side, requires hardware support to change" msgstr "" "El costat de la impressió de l'aprovador, requereix maquinari per " "canviar-lo" -#: backend/fujitsu.c:4351 +#: backend/fujitsu.c:4355 #, no-c-format msgid "Endorser string" msgstr "Cadena de l'aprovador" -#: backend/fujitsu.c:4352 +#: backend/fujitsu.c:4356 #, no-c-format msgid "" "Endorser alphanumeric print format. %05ud or %08ud at the end will be " @@ -2944,220 +2973,206 @@ msgstr "" "Format d'impressió alfanumèric de l'aprovador. %05ud o %08ud al final " "serà substituït pel valor del comptador." -#: backend/fujitsu.c:4379 +#: backend/fujitsu.c:4383 #, no-c-format msgid "Top edge" msgstr "Vora superior" -#: backend/fujitsu.c:4380 -#, fuzzy, no-c-format +#: backend/fujitsu.c:4384 +#, no-c-format msgid "Paper is pulled partly into ADF" msgstr "El paper s'ha retirat parcialment dins de l'ADF" -#: backend/fujitsu.c:4391 +#: backend/fujitsu.c:4395 #, no-c-format msgid "A3 paper" msgstr "Paper A3" -#: backend/fujitsu.c:4392 +#: backend/fujitsu.c:4396 #, no-c-format msgid "A3 paper detected" msgstr "S'ha detectat un paper A3" -#: backend/fujitsu.c:4403 +#: backend/fujitsu.c:4407 #, no-c-format msgid "B4 paper" msgstr "Paper B4" -#: backend/fujitsu.c:4404 +#: backend/fujitsu.c:4408 #, no-c-format msgid "B4 paper detected" msgstr "S'ha detectat un paper B4" -#: backend/fujitsu.c:4415 +#: backend/fujitsu.c:4419 #, no-c-format msgid "A4 paper" msgstr "Paper A4" -#: backend/fujitsu.c:4416 +#: backend/fujitsu.c:4420 #, no-c-format msgid "A4 paper detected" msgstr "S'ha detectat un paper A4" -#: backend/fujitsu.c:4427 +#: backend/fujitsu.c:4431 #, no-c-format msgid "B5 paper" msgstr "Paper B5" -#: backend/fujitsu.c:4428 +#: backend/fujitsu.c:4432 #, no-c-format msgid "B5 paper detected" msgstr "S'ha detectat un paper B5" -#: backend/fujitsu.c:4451 +#: backend/fujitsu.c:4455 #, no-c-format msgid "OMR or DF" msgstr "OMR o DF" -#: backend/fujitsu.c:4452 +#: backend/fujitsu.c:4456 #, no-c-format msgid "OMR or double feed detected" msgstr "" "S'ha detectat una OMR (reconeixement de marca òptica) o alimentació de " "doble cara" -#: backend/fujitsu.c:4475 +#: backend/fujitsu.c:4479 #, no-c-format msgid "Power saving" msgstr "Estalvi d'energia" -#: backend/fujitsu.c:4476 +#: backend/fujitsu.c:4480 #, no-c-format msgid "Scanner in power saving mode" msgstr "Escàner en el mode estalvi d'energia" -#: backend/fujitsu.c:4499 +#: backend/fujitsu.c:4503 #, no-c-format msgid "Manual feed" msgstr "Alimentació manual" -#: backend/fujitsu.c:4500 +#: backend/fujitsu.c:4504 #, no-c-format msgid "Manual feed selected" msgstr "S'ha seleccionat una alimentació manual" -#: backend/fujitsu.c:4523 +#: backend/fujitsu.c:4527 #, no-c-format msgid "Function" msgstr "Funció" -#: backend/fujitsu.c:4524 +#: backend/fujitsu.c:4528 #, no-c-format msgid "Function character on screen" msgstr "Funció caràcter a la pantalla" -#: backend/fujitsu.c:4535 +#: backend/fujitsu.c:4539 #, no-c-format msgid "Ink low" msgstr "Tinta baixa" -#: backend/fujitsu.c:4536 +#: backend/fujitsu.c:4540 #, no-c-format msgid "Imprinter ink running low" msgstr "La impressora s'està executant amb la tinta baixa" -#: backend/fujitsu.c:4547 +#: backend/fujitsu.c:4551 #, no-c-format msgid "Double feed" msgstr "Alimentació de doble cara" -#: backend/fujitsu.c:4548 +#: backend/fujitsu.c:4552 #, no-c-format msgid "Double feed detected" msgstr "S'ha detectat una alimentació de doble cara" -#: backend/fujitsu.c:4559 +#: backend/fujitsu.c:4563 #, no-c-format msgid "Error code" msgstr "Codi d'error" -#: backend/fujitsu.c:4560 +#: backend/fujitsu.c:4564 #, no-c-format msgid "Hardware error code" msgstr "Codi d'error del maquinari" -#: backend/fujitsu.c:4571 +#: backend/fujitsu.c:4575 #, no-c-format msgid "Skew angle" msgstr "Angle d'inclinació" -#: backend/fujitsu.c:4572 +#: backend/fujitsu.c:4576 #, no-c-format msgid "Requires black background for scanning" msgstr "Requereix un fons negre per escanejar" -#: backend/fujitsu.c:4583 +#: backend/fujitsu.c:4587 #, no-c-format msgid "Ink remaining" msgstr "Tinta restant" -#: backend/fujitsu.c:4584 +#: backend/fujitsu.c:4588 #, no-c-format msgid "Imprinter ink level" msgstr "Nivell de tinta de la impressora" -#: backend/fujitsu.c:4595 +#: backend/fujitsu.c:4599 #, no-c-format msgid "Density" msgstr "Densitat" -#: backend/fujitsu.c:4596 +#: backend/fujitsu.c:4600 #, no-c-format msgid "Density dial" msgstr "Marcador de la densitat" -#: backend/fujitsu.c:4607 backend/fujitsu.c:4608 +#: backend/fujitsu.c:4611 backend/fujitsu.c:4612 #, no-c-format msgid "Duplex switch" msgstr "Commuta a doble cara" -#: backend/genesys/genesys.cpp:4118 +#: backend/genesys/genesys.cpp:4160 #, no-c-format msgid "Request backend to remove border from pages digitally" msgstr "" "Sol·licita al dorsal que elimini la vora de les pàgines de forma digital" -#: backend/genesys/genesys.cpp:4127 backend/kvs1025_opt.c:912 +#: backend/genesys/genesys.cpp:4169 backend/kvs1025_opt.c:912 #, no-c-format msgid "Request driver to discard pages with low numbers of dark pixels" msgstr "" "Sol·licita al controlador que descarti les pàgines amb un nombre baix de " "píxels foscos" -#: backend/genesys/genesys.cpp:4137 backend/kvs1025_opt.c:892 +#: backend/genesys/genesys.cpp:4179 backend/kvs1025_opt.c:892 #, no-c-format msgid "Software derotate" msgstr "Treu el gir per programari" -#: backend/genesys/genesys.cpp:4138 backend/kvs1025_opt.c:894 +#: backend/genesys/genesys.cpp:4180 backend/kvs1025_opt.c:894 #, no-c-format msgid "Request driver to detect and correct 90 degree image rotation" msgstr "" "Sol·licita al controlador que detecti i corregisca el gir de 90 graus de " "la imatge" -#: backend/genesys/genesys.cpp:4168 backend/pixma_sane_options.c:314 +#: backend/genesys/genesys.cpp:4210 backend/pixma/pixma_sane_options.c:314 #, no-c-format msgid "Extras" msgstr "Extres" -#: backend/genesys/genesys.cpp:4188 backend/pixma_sane_options.c:336 +#: backend/genesys/genesys.cpp:4230 backend/pixma/pixma_sane_options.c:336 #, no-c-format msgid "Dynamic threshold curve, from light to dark, normally 50-65" msgstr "" "La corba dinàmica del llindar, des de la llum a la foscor, normalment de " "50 a 65" -#: backend/genesys/genesys.cpp:4197 -#, no-c-format -msgid "Disable dynamic lineart" -msgstr "Inhabilita l'art lineal dinàmic" - -#: backend/genesys/genesys.cpp:4199 -#, no-c-format -msgid "" -"Disable use of a software adaptive algorithm to generate lineart relying " -"instead on hardware lineart." -msgstr "" -"Inhabilita l'ús d'un algorisme adaptatiu per programari que genera art " -"lineal en comptes de per maquinari." - -#: backend/genesys/genesys.cpp:4215 +#: backend/genesys/genesys.cpp:4240 #, no-c-format msgid "Disable interpolation" msgstr "Inhabilita la interpolació" -#: backend/genesys/genesys.cpp:4218 +#: backend/genesys/genesys.cpp:4243 #, no-c-format msgid "" "When using high resolutions where the horizontal resolution is smaller " @@ -3167,33 +3182,33 @@ msgstr "" "més petita que la vertical, això inhabilitarà la interpolació " "horitzontal." -#: backend/genesys/genesys.cpp:4227 +#: backend/genesys/genesys.cpp:4252 #, no-c-format msgid "Color filter" msgstr "Filtre de color" -#: backend/genesys/genesys.cpp:4230 +#: backend/genesys/genesys.cpp:4255 #, no-c-format msgid "When using gray or lineart this option selects the used color." msgstr "" "Quan s'usa gris o art lineal, aquesta opció seleccionarà el color a usar." -#: backend/genesys/genesys.cpp:4254 +#: backend/genesys/genesys.cpp:4279 #, no-c-format msgid "Calibration file" msgstr "Fitxer de calibratge" -#: backend/genesys/genesys.cpp:4255 +#: backend/genesys/genesys.cpp:4280 #, no-c-format msgid "Specify the calibration file to use" msgstr "Especifica el fitxer de calibratge a usar" -#: backend/genesys/genesys.cpp:4272 +#: backend/genesys/genesys.cpp:4297 #, no-c-format msgid "Calibration cache expiration time" msgstr "Temps de caducitat per a la memòria cau del calibratge" -#: backend/genesys/genesys.cpp:4273 +#: backend/genesys/genesys.cpp:4298 #, no-c-format msgid "" "Time (in minutes) before a cached calibration expires. A value of 0 " @@ -3203,12 +3218,12 @@ msgstr "" "memòria cau. Un valor de 0 indicarà que no s'usarà la memòria cau. Un " "valor negatiu indicarà que la memòria cau no caducarà mai." -#: backend/genesys/genesys.cpp:4283 +#: backend/genesys/genesys.cpp:4308 #, no-c-format msgid "Lamp off time" msgstr "Temps per apagar la làmpada" -#: backend/genesys/genesys.cpp:4286 +#: backend/genesys/genesys.cpp:4311 #, no-c-format msgid "" "The lamp will be turned off after the given time (in minutes). A value " @@ -3217,103 +3232,111 @@ msgstr "" "La llum s'apagarà després del temps determinat (en minuts). Un valor de " "0 indicarà que no s'apagarà la làmpada." -#: backend/genesys/genesys.cpp:4296 +#: backend/genesys/genesys.cpp:4321 #, no-c-format msgid "Lamp off during scan" msgstr "Apaga la làmpada durant l'escaneig" -#: backend/genesys/genesys.cpp:4297 +#: backend/genesys/genesys.cpp:4322 #, no-c-format msgid "The lamp will be turned off during scan. " msgstr "La llum s'apagarà durant l'escaneig." -#: backend/genesys/genesys.cpp:4324 backend/genesys/genesys.cpp:4325 +#: backend/genesys/genesys.cpp:4349 backend/genesys/genesys.cpp:4350 #, no-c-format msgid "File button" msgstr "Botó de fitxer" -#: backend/genesys/genesys.cpp:4369 backend/genesys/genesys.cpp:4370 +#: backend/genesys/genesys.cpp:4394 backend/genesys/genesys.cpp:4395 #, no-c-format msgid "OCR button" msgstr "Botó OCR" -#: backend/genesys/genesys.cpp:4381 backend/genesys/genesys.cpp:4382 +#: backend/genesys/genesys.cpp:4406 backend/genesys/genesys.cpp:4407 #, no-c-format msgid "Power button" msgstr "Botó d'encesa" -#: backend/genesys/genesys.cpp:4393 backend/genesys/genesys.cpp:4394 +#: backend/genesys/genesys.cpp:4418 backend/genesys/genesys.cpp:4419 #, no-c-format msgid "Extra button" msgstr "Botó extra" -#: backend/genesys/genesys.cpp:4405 backend/gt68xx.c:755 -#, fuzzy, no-c-format +#: backend/genesys/genesys.cpp:4430 backend/gt68xx.c:755 +#, no-c-format msgid "Needs calibration" msgstr "Necessita calibratge" -#: backend/genesys/genesys.cpp:4406 backend/gt68xx.c:756 +#: backend/genesys/genesys.cpp:4431 backend/gt68xx.c:756 backend/p5.c:1928 #, no-c-format msgid "The scanner needs calibration for the current settings" msgstr "L'escàner necessita calibratge per als ajustaments actuals" -#: backend/genesys/genesys.cpp:4417 backend/gt68xx.c:780 -#: backend/gt68xx.c:781 backend/pixma_sane_options.c:226 -#: backend/plustek.c:1080 +#: backend/genesys/genesys.cpp:4442 backend/gt68xx.c:780 +#: backend/gt68xx.c:781 backend/p5.c:1937 backend/p5.c:1938 +#: backend/pixma/pixma_sane_options.c:226 backend/plustek.c:1080 #, no-c-format msgid "Buttons" msgstr "Botons" -#: backend/genesys/genesys.cpp:4426 backend/gt68xx.c:787 -#: backend/hp5400_sane.c:392 backend/hp-option.h:97 backend/niash.c:726 -#: backend/plustek.c:941 +#: backend/genesys/genesys.cpp:4451 backend/gt68xx.c:787 +#: backend/hp-option.h:97 backend/hp5400_sane.c:392 backend/niash.c:726 +#: backend/p5.c:1945 backend/plustek.c:941 #, no-c-format msgid "Calibrate" msgstr "Calibratge" -#: backend/genesys/genesys.cpp:4428 backend/gt68xx.c:789 +#: backend/genesys/genesys.cpp:4453 backend/gt68xx.c:789 backend/p5.c:1947 #, no-c-format msgid "Start calibration using special sheet" msgstr "Comença el calibratge emprant un full especial" -#: backend/genesys/genesys.cpp:4440 backend/gt68xx.c:802 +#: backend/genesys/genesys.cpp:4465 backend/gt68xx.c:802 backend/p5.c:1958 #, no-c-format msgid "Clear calibration" msgstr "Neteja el calibratge" -#: backend/genesys/genesys.cpp:4441 backend/gt68xx.c:803 +#: backend/genesys/genesys.cpp:4466 backend/gt68xx.c:803 backend/p5.c:1960 #, no-c-format msgid "Clear calibration cache" msgstr "Neteja la memòria cau del calibratge" -#: backend/genesys/genesys.cpp:4451 -#, fuzzy, no-c-format +#: backend/genesys/genesys.cpp:4476 +#, no-c-format msgid "Force calibration" -msgstr "Calibratge tosc" +msgstr "Força el calibratge" -#: backend/genesys/genesys.cpp:4452 +#: backend/genesys/genesys.cpp:4477 #, no-c-format msgid "Force calibration ignoring all and any calibration caches" msgstr "" +"Força el calibratge ignorant-ho tot i qualsevol memòria cau del " +"calibratge" -#: backend/genesys/genesys.cpp:4462 -#, fuzzy, no-c-format +#: backend/genesys/genesys.cpp:4487 +#, no-c-format msgid "Ignore internal offsets" -msgstr "Desplaçament del verd" +msgstr "Ignora els desplaçaments interns" -#: backend/genesys/genesys.cpp:4464 +#: backend/genesys/genesys.cpp:4489 #, no-c-format msgid "" "Acquires the image including the internal calibration areas of the " "scanner" msgstr "" +"Adquireix la imatge, incloses les àrees de calibratge intern de l'escàner" -#: backend/gt68xx.c:149 backend/ma1509.c:108 backend/mustek.c:164 -#: backend/snapscan-options.c:87 backend/umax.c:182 +#: backend/genesys/genesys.h:79 backend/gt68xx.c:149 backend/ma1509.c:108 +#: backend/mustek.c:164 backend/snapscan-options.c:87 backend/umax.c:182 #, no-c-format msgid "Transparency Adapter" msgstr "Adaptador de transparència" +#: backend/genesys/genesys.h:80 +#, no-c-format +msgid "Transparency Adapter Infrared" +msgstr "Adaptador infraroig de transparència" + #: backend/gt68xx.c:470 #, no-c-format msgid "Gray mode color" @@ -3423,6 +3446,314 @@ msgstr "Valor de la gamma" msgid "Sets the gamma value of all channels." msgstr "Estableix el valor de la gamma de tots els canals." +#: backend/hp-option.c:2987 +#, no-c-format +msgid "Advanced Options" +msgstr "Opcions avançades" + +#: backend/hp-option.c:3044 +#, no-c-format +msgid "Coarse" +msgstr "Tosc" + +#: backend/hp-option.c:3045 +#, no-c-format +msgid "Fine" +msgstr "Fina" + +#: backend/hp-option.c:3046 +#, no-c-format +msgid "Bayer" +msgstr "Bayer" + +#: backend/hp-option.c:3049 backend/hp-option.c:3100 +#, no-c-format +msgid "Custom" +msgstr "A mida" + +#: backend/hp-option.c:3090 backend/hp-option.c:3146 +#: backend/hp-option.c:3161 +#, no-c-format +msgid "Auto" +msgstr "Auto" + +# Nota: https://ca.wikipedia.org/wiki/NTSC +#: backend/hp-option.c:3091 +#, no-c-format +msgid "NTSC RGB" +msgstr "RGB del NTSC" + +# Nota: https://support.hp.com/gb-en/document/c01275842 +#: backend/hp-option.c:3092 +#, no-c-format +msgid "XPA RGB" +msgstr "RGB amb el XPA" + +#: backend/hp-option.c:3093 +#, no-c-format +msgid "Pass-through" +msgstr "Passa a través" + +#: backend/hp-option.c:3094 +#, no-c-format +msgid "NTSC Gray" +msgstr "Gris del NTSC" + +#: backend/hp-option.c:3095 +#, no-c-format +msgid "XPA Gray" +msgstr "Gris amb el XPA" + +#: backend/hp-option.c:3147 +#, no-c-format +msgid "Slow" +msgstr "Lent" + +#: backend/hp-option.c:3148 backend/hp-option.c:3255 +#: backend/kvs40xx_opt.c:230 backend/matsushita.c:244 backend/mustek.c:149 +#: backend/plustek.c:234 backend/plustek_pp.c:203 backend/u12.c:155 +#, no-c-format +msgid "Normal" +msgstr "Normal" + +#: backend/hp-option.c:3149 +#, no-c-format +msgid "Fast" +msgstr "Ràpid" + +#: backend/hp-option.c:3150 +#, no-c-format +msgid "Extra Fast" +msgstr "Extraràpid" + +#: backend/hp-option.c:3163 +#, no-c-format +msgid "2-pixel" +msgstr "2 píxels" + +#: backend/hp-option.c:3164 +#, no-c-format +msgid "4-pixel" +msgstr "4 píxels" + +#: backend/hp-option.c:3165 +#, no-c-format +msgid "8-pixel" +msgstr "8 píxels" + +#: backend/hp-option.c:3176 +#, no-c-format +msgid "Print" +msgstr "Imprimeix" + +#: backend/hp-option.c:3177 backend/hp3900_sane.c:427 +#: backend/hp3900_sane.c:1019 +#, no-c-format +msgid "Slide" +msgstr "Diapositiva" + +#: backend/hp-option.c:3178 +#, no-c-format +msgid "Film-strip" +msgstr "Tira de pel·lícules" + +#: backend/hp-option.c:3256 backend/hp5590.c:93 +#, no-c-format +msgid "ADF" +msgstr "ADF" + +#: backend/hp-option.c:3257 +#, no-c-format +msgid "XPA" +msgstr "XPA" + +#: backend/hp-option.c:3331 backend/hp-option.c:3344 +#, no-c-format +msgid "Conditional" +msgstr "Condicional" + +#: backend/hp-option.c:3417 +#, no-c-format +msgid "Experiment" +msgstr "Experimental" + +#: backend/hp-option.h:60 +#, no-c-format +msgid "Sharpening" +msgstr "Aguditzant" + +#: backend/hp-option.h:61 +#, no-c-format +msgid "Set sharpening value." +msgstr "Estableix el valor de l'agudització." + +#: backend/hp-option.h:66 +#, no-c-format +msgid "Auto Threshold" +msgstr "Llindar automàtic" + +#: backend/hp-option.h:68 +#, no-c-format +msgid "Enable automatic determination of threshold for line-art scans." +msgstr "" +"Habilita la determinació automàtica del llindar pels escaneigs amb art " +"lineal." + +#: backend/hp-option.h:74 +#, no-c-format +msgid "Select smoothing filter." +msgstr "Selecciona el filtre de suavitzat." + +#: backend/hp-option.h:79 +#, no-c-format +msgid "Unload media after scan" +msgstr "Descarrega el suport després de l'escaneig" + +#: backend/hp-option.h:80 +#, no-c-format +msgid "Unloads the media after a scan." +msgstr "Descarrega el suport després d'un escaneig." + +#: backend/hp-option.h:85 +#, no-c-format +msgid "Change document" +msgstr "Canvia el document" + +#: backend/hp-option.h:86 +#, no-c-format +msgid "Change Document." +msgstr "Canvia el document." + +#: backend/hp-option.h:91 +#, no-c-format +msgid "Unload" +msgstr "Descarrega" + +#: backend/hp-option.h:92 +#, no-c-format +msgid "Unload Document." +msgstr "Descarrega el document." + +#: backend/hp-option.h:98 +#, no-c-format +msgid "Start calibration process." +msgstr "Inicia el procés de calibratge." + +#: backend/hp-option.h:103 +#, no-c-format +msgid "Media" +msgstr "Suport" + +#: backend/hp-option.h:104 +#, no-c-format +msgid "Set type of media." +msgstr "Estableix el tipus de suport." + +#: backend/hp-option.h:109 +#, no-c-format +msgid "Exposure time" +msgstr "Temps d'exposició" + +#: backend/hp-option.h:111 +#, no-c-format +msgid "" +"A longer exposure time lets the scanner collect more light. Suggested " +"use is 175% for prints, 150% for normal slides and \"Negative\" for " +"negative film. For dark (underexposed) images you can increase this " +"value." +msgstr "" +"Un temps d'exposició més llarg permet que l'escàner recopili més llum. " +"L'ús aconsellat és el 175% per a impressions, el 150% per a diapositives " +"normals i «Negatiu» per a pel·lícules en negatiu. Per a imatges fosques " +"(sota exposades), podeu augmentar aquest valor." + +#: backend/hp-option.h:119 backend/hp-option.h:126 +#, no-c-format +msgid "Color Matrix" +msgstr "Matriu de color" + +#: backend/hp-option.h:121 +#, no-c-format +msgid "Set the scanner's color matrix." +msgstr "Estableix la matriu de color de l'escàner." + +#: backend/hp-option.h:127 +#, no-c-format +msgid "Custom color matrix." +msgstr "Matriu de color a mida." + +#: backend/hp-option.h:132 +#, no-c-format +msgid "Mono Color Matrix" +msgstr "Matriu de color monocrom" + +#: backend/hp-option.h:133 +#, no-c-format +msgid "Custom color matrix for grayscale scans." +msgstr "Matriu de color a mida pels escaneigs en escala de grisos." + +#: backend/hp-option.h:138 +#, no-c-format +msgid "Mirror horizontal" +msgstr "Emmiralla horitzontalment" + +#: backend/hp-option.h:139 +#, no-c-format +msgid "Mirror image horizontally." +msgstr "Emmiralla horitzontalment la imatge." + +#: backend/hp-option.h:144 +#, no-c-format +msgid "Mirror vertical" +msgstr "Emmiralla verticalment" + +#: backend/hp-option.h:145 +#, no-c-format +msgid "Mirror image vertically." +msgstr "Emmiralla verticalment la imatge." + +#: backend/hp-option.h:150 +#, no-c-format +msgid "Update options" +msgstr "Opcions per a l'actualització" + +#: backend/hp-option.h:151 +#, no-c-format +msgid "Update options." +msgstr "Opcions per a l'actualització." + +#: backend/hp-option.h:156 +#, no-c-format +msgid "8 bit output" +msgstr "Eixida de 8 bits" + +#: backend/hp-option.h:158 +#, no-c-format +msgid "Use bit depth greater eight internally, but output only eight bits." +msgstr "" +"Usa internament una profunditat de bits més gran que vuit, però a " +"l'eixida usa només vuit bits." + +#: backend/hp-option.h:164 +#, no-c-format +msgid "Front button wait" +msgstr "Espera al botó del frontal" + +#: backend/hp-option.h:165 +#, no-c-format +msgid "Wait to scan for front-panel button push." +msgstr "Espera per escanejar que es prema el botó del panell frontal." + +#: backend/hp-option.h:172 +#, no-c-format +msgid "Shut off lamp" +msgstr "Apaga la làmpada" + +#: backend/hp-option.h:173 +#, no-c-format +msgid "Shut off scanner lamp." +msgstr "Apaga la llum de l'escàner." + #: backend/hp3500.c:1020 #, no-c-format msgid "Geometry Group" @@ -3433,26 +3764,20 @@ msgstr "Grup de geometria" msgid "Scan Mode Group" msgstr "Grup de mode d'escaneig" -#: backend/hp3900_sane.c:427 backend/hp3900_sane.c:1019 -#: backend/hp-option.c:3177 -#, no-c-format -msgid "Slide" -msgstr "Diapositiva" - #: backend/hp3900_sane.c:1405 #, no-c-format msgid "Scanner model" msgstr "Model de l'escàner" #: backend/hp3900_sane.c:1408 -#, fuzzy, no-c-format +#, no-c-format msgid "Allows one to test device behavior with other supported models" msgstr "" "Permet comprovar el comportament del dispositiu amb els altres models " "admesos" #: backend/hp3900_sane.c:1422 -#, fuzzy, no-c-format +#, no-c-format msgid "Image colors will be inverted" msgstr "Els colors de la imatge seran invertits" @@ -3643,11 +3968,6 @@ msgstr "Apaga o encén la llum." msgid "Calibrates for black and white level." msgstr "Calibra per al nivell de blanc i negre." -#: backend/hp5590.c:93 backend/hp-option.c:3256 -#, no-c-format -msgid "ADF" -msgstr "ADF" - # Nota: https://en.wikipedia.org/wiki/Tissue_microarray #: backend/hp5590.c:95 #, no-c-format @@ -3695,34 +4015,36 @@ msgid "Get ID of last button pressed (read only)" msgstr "Obtén l'ID de l'últim botó premut (només lectura)" #: backend/hp5590.c:121 -#, fuzzy, no-c-format +#, no-c-format msgid "LCD counter" -msgstr "Comptador d'escaneigs" +msgstr "Comptador LCD" #: backend/hp5590.c:122 -#, fuzzy, no-c-format +#, no-c-format msgid "Get value of LCD counter (read only)" -msgstr "Obtén l'ID de l'últim botó premut (només lectura)" +msgstr "Obtén el valor del comptador LCD (només lectura)" #: backend/hp5590.c:124 -#, fuzzy, no-c-format +#, no-c-format msgid "Color LED indicator" -msgstr "Color per a l'art lineal" +msgstr "Indicador LED del color" #: backend/hp5590.c:125 -#, fuzzy, no-c-format +#, no-c-format msgid "Get value of LED indicator (read only)" -msgstr "Obtén l'ID de l'últim botó premut (només lectura)" +msgstr "Obtén el valor del comptador LED (només lectura)" #: backend/hp5590.c:127 #, no-c-format msgid "Document available in ADF" -msgstr "" +msgstr "Document disponible a l'ADF" #: backend/hp5590.c:128 #, no-c-format msgid "Get state of document-available indicator in ADF (read only)" msgstr "" +"Obtén l'estat de l'indicador de document disponible a l'ADF (només " +"lectura)" #: backend/hp5590.c:130 #, no-c-format @@ -3768,303 +4090,6 @@ msgstr "" "Valor del «color» per al mode d'ompliment al final de les línies. Color " "RGB com a valor r*65536+256*g+b o gris (predeterminat=violeta o gris)" -#: backend/hp-option.c:2987 -#, no-c-format -msgid "Advanced Options" -msgstr "Opcions avançades" - -#: backend/hp-option.c:3044 -#, no-c-format -msgid "Coarse" -msgstr "Tosc" - -#: backend/hp-option.c:3045 -#, no-c-format -msgid "Fine" -msgstr "Fina" - -#: backend/hp-option.c:3046 -#, no-c-format -msgid "Bayer" -msgstr "Bayer" - -#: backend/hp-option.c:3049 backend/hp-option.c:3100 -#, no-c-format -msgid "Custom" -msgstr "A mida" - -#: backend/hp-option.c:3090 backend/hp-option.c:3146 -#: backend/hp-option.c:3161 -#, no-c-format -msgid "Auto" -msgstr "Auto" - -# Nota: https://ca.wikipedia.org/wiki/NTSC -#: backend/hp-option.c:3091 -#, no-c-format -msgid "NTSC RGB" -msgstr "RGB del NTSC" - -# Nota: https://support.hp.com/gb-en/document/c01275842 -#: backend/hp-option.c:3092 -#, no-c-format -msgid "XPA RGB" -msgstr "RGB amb el XPA" - -#: backend/hp-option.c:3093 -#, no-c-format -msgid "Pass-through" -msgstr "Passa a través" - -#: backend/hp-option.c:3094 -#, no-c-format -msgid "NTSC Gray" -msgstr "Gris del NTSC" - -#: backend/hp-option.c:3095 -#, no-c-format -msgid "XPA Gray" -msgstr "Gris amb el XPA" - -#: backend/hp-option.c:3147 -#, no-c-format -msgid "Slow" -msgstr "Lent" - -#: backend/hp-option.c:3148 backend/hp-option.c:3255 -#: backend/kvs40xx_opt.c:230 backend/matsushita.c:244 backend/mustek.c:149 -#: backend/plustek.c:234 backend/plustek_pp.c:203 backend/u12.c:155 -#, no-c-format -msgid "Normal" -msgstr "Normal" - -#: backend/hp-option.c:3149 -#, no-c-format -msgid "Fast" -msgstr "Ràpid" - -#: backend/hp-option.c:3150 -#, no-c-format -msgid "Extra Fast" -msgstr "Extraràpid" - -#: backend/hp-option.c:3163 -#, no-c-format -msgid "2-pixel" -msgstr "2 píxels" - -#: backend/hp-option.c:3164 -#, no-c-format -msgid "4-pixel" -msgstr "4 píxels" - -#: backend/hp-option.c:3165 -#, no-c-format -msgid "8-pixel" -msgstr "8 píxels" - -#: backend/hp-option.c:3176 -#, no-c-format -msgid "Print" -msgstr "Imprimeix" - -#: backend/hp-option.c:3178 -#, no-c-format -msgid "Film-strip" -msgstr "Tira de pel·lícules" - -#: backend/hp-option.c:3257 -#, no-c-format -msgid "XPA" -msgstr "XPA" - -#: backend/hp-option.c:3331 backend/hp-option.c:3344 -#, no-c-format -msgid "Conditional" -msgstr "Condicional" - -#: backend/hp-option.c:3417 -#, no-c-format -msgid "Experiment" -msgstr "Experimental" - -#: backend/hp-option.h:60 -#, no-c-format -msgid "Sharpening" -msgstr "Aguditzant" - -#: backend/hp-option.h:61 -#, no-c-format -msgid "Set sharpening value." -msgstr "Estableix el valor de l'agudització." - -#: backend/hp-option.h:66 -#, no-c-format -msgid "Auto Threshold" -msgstr "Llindar automàtic" - -#: backend/hp-option.h:68 -#, no-c-format -msgid "Enable automatic determination of threshold for line-art scans." -msgstr "" -"Habilita la determinació automàtica del llindar pels escaneigs amb art " -"lineal." - -#: backend/hp-option.h:74 -#, no-c-format -msgid "Select smoothing filter." -msgstr "Selecciona el filtre de suavitzat." - -#: backend/hp-option.h:79 -#, no-c-format -msgid "Unload media after scan" -msgstr "Descarrega el suport després de l'escaneig" - -#: backend/hp-option.h:80 -#, no-c-format -msgid "Unloads the media after a scan." -msgstr "Descarrega el suport després d'un escaneig." - -#: backend/hp-option.h:85 -#, no-c-format -msgid "Change document" -msgstr "Canvia el document" - -#: backend/hp-option.h:86 -#, no-c-format -msgid "Change Document." -msgstr "Canvia el document." - -#: backend/hp-option.h:91 -#, no-c-format -msgid "Unload" -msgstr "Descarrega" - -#: backend/hp-option.h:92 -#, no-c-format -msgid "Unload Document." -msgstr "Descarrega el document." - -#: backend/hp-option.h:98 -#, no-c-format -msgid "Start calibration process." -msgstr "Inicia el procés de calibratge." - -#: backend/hp-option.h:103 -#, no-c-format -msgid "Media" -msgstr "Suport" - -#: backend/hp-option.h:104 -#, no-c-format -msgid "Set type of media." -msgstr "Estableix el tipus de suport." - -#: backend/hp-option.h:109 -#, no-c-format -msgid "Exposure time" -msgstr "Temps d'exposició" - -#: backend/hp-option.h:111 -#, no-c-format -msgid "" -"A longer exposure time lets the scanner collect more light. Suggested " -"use is 175% for prints, 150% for normal slides and \"Negative\" for " -"negative film. For dark (underexposed) images you can increase this " -"value." -msgstr "" -"Un temps d'exposició més llarg permet que l'escàner recopili més llum. " -"L'ús aconsellat és el 175% per a impressions, el 150% per a diapositives " -"normals i «Negatiu» per a pel·lícules en negatiu. Per a imatges fosques " -"(sota exposades), podeu augmentar aquest valor." - -#: backend/hp-option.h:119 backend/hp-option.h:126 -#, no-c-format -msgid "Color Matrix" -msgstr "Matriu de color" - -#: backend/hp-option.h:121 -#, fuzzy, no-c-format -msgid "Set the scanner's color matrix." -msgstr "Estableix la matriu de color dels escàners." - -#: backend/hp-option.h:127 -#, no-c-format -msgid "Custom color matrix." -msgstr "Matriu de color a mida." - -#: backend/hp-option.h:132 -#, no-c-format -msgid "Mono Color Matrix" -msgstr "Matriu de color monocrom" - -#: backend/hp-option.h:133 -#, no-c-format -msgid "Custom color matrix for grayscale scans." -msgstr "Matriu de color a mida pels escaneigs en escala de grisos." - -#: backend/hp-option.h:138 -#, no-c-format -msgid "Mirror horizontal" -msgstr "Emmiralla horitzontalment" - -#: backend/hp-option.h:139 -#, no-c-format -msgid "Mirror image horizontally." -msgstr "Emmiralla horitzontalment la imatge." - -#: backend/hp-option.h:144 -#, no-c-format -msgid "Mirror vertical" -msgstr "Emmiralla verticalment" - -#: backend/hp-option.h:145 -#, no-c-format -msgid "Mirror image vertically." -msgstr "Emmiralla verticalment la imatge." - -#: backend/hp-option.h:150 -#, no-c-format -msgid "Update options" -msgstr "Opcions per a l'actualització" - -#: backend/hp-option.h:151 -#, no-c-format -msgid "Update options." -msgstr "Opcions per a l'actualització." - -#: backend/hp-option.h:156 -#, no-c-format -msgid "8 bit output" -msgstr "Eixida de 8 bits" - -#: backend/hp-option.h:158 -#, no-c-format -msgid "Use bit depth greater eight internally, but output only eight bits." -msgstr "" -"Usa internament una profunditat de bits més gran que vuit, però a " -"l'eixida usa només vuit bits." - -#: backend/hp-option.h:164 -#, no-c-format -msgid "Front button wait" -msgstr "Espera al botó del frontal" - -#: backend/hp-option.h:165 -#, no-c-format -msgid "Wait to scan for front-panel button push." -msgstr "Espera per escanejar que es prema el botó del panell frontal." - -#: backend/hp-option.h:172 -#, no-c-format -msgid "Shut off lamp" -msgstr "Apaga la làmpada" - -#: backend/hp-option.h:173 -#, no-c-format -msgid "Shut off scanner lamp." -msgstr "Apaga la llum de l'escàner." - #: backend/kvs1025.h:51 backend/kvs20xx_opt.c:295 backend/kvs40xx_opt.c:516 #: backend/matsushita.h:219 #, no-c-format @@ -4163,7 +4188,7 @@ msgid "single" msgstr "individual" #: backend/kvs1025_opt.c:73 backend/kvs20xx.c:462 backend/kvs20xx_opt.c:56 -#: backend/kvs40xx.c:704 backend/kvs40xx.c:722 backend/kvs40xx_opt.c:102 +#: backend/kvs40xx.c:705 backend/kvs40xx.c:723 backend/kvs40xx_opt.c:102 #: backend/kvs40xx_opt.c:1087 #, no-c-format msgid "continuous" @@ -4331,9 +4356,9 @@ msgid "crt" msgstr "CRT" #: backend/kvs1025_opt.c:229 -#, fuzzy, no-c-format +#, no-c-format msgid "linear" -msgstr "Art lineal" +msgstr "Lineal" #: backend/kvs1025_opt.c:241 backend/kvs20xx_opt.c:138 #: backend/kvs40xx_opt.c:224 @@ -4465,7 +4490,7 @@ msgstr "Estableix l'èmfasi de la imatge" #: backend/kvs1025_opt.c:807 backend/kvs1025_opt.c:808 #: backend/matsushita.c:1300 backend/matsushita.c:1301 -#: backend/pixma_sane_options.c:112 +#: backend/pixma/pixma_sane_options.c:112 #, no-c-format msgid "Gamma" msgstr "Gamma" @@ -4539,13 +4564,13 @@ msgstr "" "digital" #: backend/kvs20xx_opt.c:233 -#, fuzzy, no-c-format +#, no-c-format msgid "" "Length Control Mode causes the scanner to read the shorter of either the " "length of the actual paper or logical document length." msgstr "" -"El mode control de la longitud és un mode on l'escàner llegirà fins a la " -"longitud més curta del paper real o la longitud lògica del document." +"El mode control de la longitud fa que l'escàner llija la longitud més " +"curta real del paper o la longitud lògica del document." #: backend/kvs20xx_opt.c:424 backend/kvs20xx_opt.c:425 #: backend/kvs40xx_opt.c:668 backend/kvs40xx_opt.c:669 @@ -4575,14 +4600,14 @@ msgid "B4" msgstr "B4" #: backend/kvs40xx_opt.c:231 -#, fuzzy, no-c-format +#, no-c-format msgid "High sensitivity" -msgstr "Alta sensibilitat" +msgstr "Sensibilitat alta" #: backend/kvs40xx_opt.c:232 -#, fuzzy, no-c-format +#, no-c-format msgid "Low sensitivity" -msgstr "Baixa sensibilitat" +msgstr "Sensibilitat baixa" #: backend/kvs40xx_opt.c:243 #, no-c-format @@ -4605,13 +4630,13 @@ msgid "Enhanced mode" msgstr "Mode millorat" #: backend/kvs40xx_opt.c:396 -#, fuzzy, no-c-format +#, no-c-format msgid "" "Length Control Mode causes the scanner to read the shorter of either the " "length of the actual paper or logical document length" msgstr "" -"El mode control de la longitud és un mode on l'escàner llegirà fins a la " -"longitud més curta del paper real o la longitud lògica del document." +"El mode control de la longitud fa que l'escàner llija la longitud més " +"curta real del paper o la longitud lògica del document" #: backend/kvs40xx_opt.c:405 #, no-c-format @@ -4674,10 +4699,10 @@ msgid "JPEG compression" msgstr "Compressió del JPEG" #: backend/kvs40xx_opt.c:718 -#, fuzzy, no-c-format +#, no-c-format msgid "JPEG compression (your application must be able to uncompress)" msgstr "" -"Compressió del JPEG (l'aplicació vostra l'haurà de poder descomprimir)" +"Compressió del JPEG (la vostra aplicació haurà de poder descomprimir)" #: backend/kvs40xx_opt.c:737 backend/kvs40xx_opt.c:738 #, no-c-format @@ -4710,12 +4735,12 @@ msgid "Skew adjustment" msgstr "Ajustament de la inclinació" #: backend/kvs40xx_opt.c:808 -#, fuzzy, no-c-format +#, no-c-format msgid "Stop scanner if a sheet is skewed" msgstr "Atura l'escàner quan un paper estiga inclinat" #: backend/kvs40xx_opt.c:809 -#, fuzzy, no-c-format +#, no-c-format msgid "Scanner will stop if a sheet is skewed" msgstr "S'aturarà l'escàner quan un paper estiga inclinat" @@ -4725,15 +4750,15 @@ msgid "Crop actual image area" msgstr "Escapça una àrea de la imatge real" #: backend/kvs40xx_opt.c:817 -#, fuzzy, no-c-format +#, no-c-format msgid "Scanner will automatically detect image area and crop to it" msgstr "" "L'escàner detectarà automàticament l'àrea de la imatge i l'escapçarà" #: backend/kvs40xx_opt.c:827 -#, fuzzy, no-c-format +#, no-c-format msgid "Left/right mirror image" -msgstr "Emmiralla la imatge" +msgstr "Emmiralla la imatge d'esquerra/dreta" #: backend/kvs40xx_opt.c:834 backend/kvs40xx_opt.c:835 #, no-c-format @@ -4770,52 +4795,52 @@ msgstr "Bayer 8x8" msgid "8x8 Vertical Line" msgstr "Línia vertical 8x8" -#: backend/lexmark.c:273 backend/umax_pp.c:711 +#: backend/lexmark.c:273 backend/umax_pp.c:705 #, no-c-format msgid "Gain" msgstr "Guany" -#: backend/lexmark.c:274 backend/umax_pp.c:712 +#: backend/lexmark.c:274 backend/umax_pp.c:706 #, no-c-format msgid "Color channels gain settings" msgstr "Ajustaments del guany per als canals de color" -#: backend/lexmark.c:283 backend/umax_pp.c:719 +#: backend/lexmark.c:283 backend/umax_pp.c:713 #, no-c-format msgid "Gray gain" msgstr "Guany del gris" -#: backend/lexmark.c:284 backend/umax_pp.c:720 +#: backend/lexmark.c:284 backend/umax_pp.c:714 #, no-c-format msgid "Sets gray channel gain" msgstr "Estableix el guany del canal gris" -#: backend/lexmark.c:297 backend/plustek.c:1001 backend/umax_pp.c:731 +#: backend/lexmark.c:297 backend/plustek.c:1001 backend/umax_pp.c:725 #, no-c-format msgid "Red gain" msgstr "Guany del roig" -#: backend/lexmark.c:298 backend/umax_pp.c:732 +#: backend/lexmark.c:298 backend/umax_pp.c:726 #, no-c-format msgid "Sets red channel gain" msgstr "Estableix el guany del canal roig" -#: backend/lexmark.c:311 backend/plustek.c:1017 backend/umax_pp.c:743 +#: backend/lexmark.c:311 backend/plustek.c:1017 backend/umax_pp.c:737 #, no-c-format msgid "Green gain" msgstr "Guany del verd" -#: backend/lexmark.c:312 backend/umax_pp.c:744 +#: backend/lexmark.c:312 backend/umax_pp.c:738 #, no-c-format msgid "Sets green channel gain" msgstr "Estableix el guany del canal verd" -#: backend/lexmark.c:325 backend/plustek.c:1033 backend/umax_pp.c:755 +#: backend/lexmark.c:325 backend/plustek.c:1033 backend/umax_pp.c:749 #, no-c-format msgid "Blue gain" msgstr "Guany del blau" -#: backend/lexmark.c:326 backend/umax_pp.c:756 +#: backend/lexmark.c:326 backend/umax_pp.c:750 #, no-c-format msgid "Sets blue channel gain" msgstr "Estableix el guany del canal blau" @@ -4901,7 +4926,7 @@ msgstr "Una pàgina" msgid "All pages" msgstr "Totes les pàgines" -#: backend/matsushita.c:1034 backend/plustek.c:1333 +#: backend/matsushita.c:1034 backend/p5_device.c:8 backend/plustek.c:1333 #, no-c-format msgid "sheetfed scanner" msgstr "escàner alimentat per fulls" @@ -5423,27 +5448,32 @@ msgstr "" "Escalfa fins que la brillantor de la làmpada siga constant en comptes " "d'insistir en el temps d'escalfament de 40 segons." -#: backend/pixma.c:397 +#: backend/p5.c:1926 +#, no-c-format +msgid "Need calibration" +msgstr "Necessita calibratge" + +#: backend/pixma/pixma.c:397 #, no-c-format msgid "Negative color" msgstr "Color en negatiu" -#: backend/pixma.c:402 +#: backend/pixma/pixma.c:402 #, no-c-format msgid "Negative gray" msgstr "Gris en negatiu" -#: backend/pixma.c:415 +#: backend/pixma/pixma.c:415 #, no-c-format msgid "48 bits color" msgstr "Color de 48 bits" -#: backend/pixma.c:420 +#: backend/pixma/pixma.c:420 #, no-c-format msgid "16 bits gray" msgstr "Gris de 16 bits" -#: backend/pixma_sane_options.c:84 +#: backend/pixma/pixma_sane_options.c:84 #, no-c-format msgid "" "Selects the scan source (such as a document-feeder). Set source before " @@ -5453,12 +5483,12 @@ msgstr "" "Estableix la font abans del mode i la resolució. Restaura el mode i la " "resolució als valors automàtics." -#: backend/pixma_sane_options.c:98 +#: backend/pixma/pixma_sane_options.c:98 #, no-c-format msgid "Button-controlled scan" msgstr "Escaneig controlat pels botons" -#: backend/pixma_sane_options.c:99 +#: backend/pixma/pixma_sane_options.c:99 #, no-c-format msgid "" "When enabled, scan process will not start immediately. To proceed, press " @@ -5469,43 +5499,43 @@ msgstr "" "Per a continuar, premeu el botó «Escaneja» (per a MP150) o el botó " "«Color» (per a altres models). Per a cancel·lar, premeu el botó «Gris»." -#: backend/pixma_sane_options.c:232 +#: backend/pixma/pixma_sane_options.c:232 #, no-c-format msgid "Update button state" msgstr "Actualitza l'estat del botó" -#: backend/pixma_sane_options.c:244 +#: backend/pixma/pixma_sane_options.c:244 #, no-c-format msgid "Button 1" msgstr "Botó 1" -#: backend/pixma_sane_options.c:258 +#: backend/pixma/pixma_sane_options.c:258 #, no-c-format msgid "Button 2" msgstr "Botó 2" -#: backend/pixma_sane_options.c:272 +#: backend/pixma/pixma_sane_options.c:272 #, no-c-format msgid "Type of original to scan" msgstr "Tipus de l'original a escanejar" -#: backend/pixma_sane_options.c:286 +#: backend/pixma/pixma_sane_options.c:286 #, no-c-format msgid "Target operation type" msgstr "Tipus de l'operació de destinació" -#: backend/pixma_sane_options.c:348 +#: backend/pixma/pixma_sane_options.c:348 #, no-c-format msgid "ADF Waiting Time" msgstr "Temps d'espera per a l'ADF" -#: backend/pixma_sane_options.c:349 -#, fuzzy, no-c-format +#: backend/pixma/pixma_sane_options.c:349 +#, no-c-format msgid "" "When set, the scanner waits upto the specified time in seconds for a new " "document inserted into the automatic document feeder." msgstr "" -"Quan s'estableix, l'escàner cerca el temps d'espera en segons perquè " +"Quan s'estableix, l'escàner espera el temps especificat en segons perquè " "s'inserisca un document nou a l'alimentador automàtic de documents." #: backend/plustek.c:235 backend/plustek_pp.c:204 backend/u12.c:156 @@ -5593,7 +5623,7 @@ msgstr "Frontal analògic" msgid "Red gain value of the AFE" msgstr "Valor de guany del roig de l'AFE" -#: backend/plustek.c:1009 backend/umax_pp.c:788 +#: backend/plustek.c:1009 backend/umax_pp.c:782 #, no-c-format msgid "Red offset" msgstr "Desplaçament del roig" @@ -5870,7 +5900,7 @@ msgstr "" msgid "This option reflects the status of a scanner button." msgstr "Aquesta opció reflecteix l'estat d'un botó de l'escàner." -#: backend/rts8891.c:2840 backend/umax.c:5795 backend/umax_pp.c:635 +#: backend/rts8891.c:2840 backend/umax.c:5795 backend/umax_pp.c:629 #, no-c-format msgid "Lamp on" msgstr "Encén la làmpada" @@ -5880,12 +5910,12 @@ msgstr "Encén la làmpada" msgid "Turn on scanner lamp" msgstr "Encén la llum de l'escàner" -#: backend/rts8891.c:2851 backend/umax1220u.c:248 backend/umax.c:5812 +#: backend/rts8891.c:2851 backend/umax.c:5812 backend/umax1220u.c:248 #, no-c-format msgid "Lamp off" msgstr "Apaga la làmpada" -#: backend/rts8891.c:2852 backend/umax1220u.c:249 backend/umax.c:5813 +#: backend/rts8891.c:2852 backend/umax.c:5813 backend/umax1220u.c:249 #, no-c-format msgid "Turn off scanner lamp" msgstr "Apaga la llum de l'escàner" @@ -6032,12 +6062,12 @@ msgid "Focus point" msgstr "Punt d'enfocament" #: backend/snapscan-options.c:930 -#, fuzzy, no-c-format +#, no-c-format msgid "Color lines per read" msgstr "Línies de color per a la lectura" #: backend/snapscan-options.c:942 -#, fuzzy, no-c-format +#, no-c-format msgid "Grayscale lines per read" msgstr "Línies en escala de grisos per a la lectura" @@ -6709,56 +6739,66 @@ msgstr "Mode del calibratge" msgid "Define calibration mode" msgstr "Defineix el mode del calibratge" -#: backend/umax_pp.c:636 +#: backend/umax_pp.c:630 #, no-c-format msgid "Sets lamp on/off" msgstr "Estableix la làmpada a encesa/apagada" -#: backend/umax_pp.c:645 +#: backend/umax_pp.c:639 #, no-c-format msgid "UTA on" msgstr "Activa l'UTA" -#: backend/umax_pp.c:646 +#: backend/umax_pp.c:640 #, no-c-format msgid "Sets UTA on/off" msgstr "Estableix l'UTA a actiu/inactiu" -#: backend/umax_pp.c:767 +#: backend/umax_pp.c:761 #, no-c-format msgid "Offset" msgstr "Desplaçament" -#: backend/umax_pp.c:769 +#: backend/umax_pp.c:763 #, no-c-format msgid "Color channels offset settings" msgstr "Ajustaments del desplaçament per als canals de color" -#: backend/umax_pp.c:776 +#: backend/umax_pp.c:770 #, no-c-format msgid "Gray offset" msgstr "Desplaçament del gris" -#: backend/umax_pp.c:777 +#: backend/umax_pp.c:771 #, no-c-format msgid "Sets gray channel offset" msgstr "Estableix el desplaçament del canal gris" -#: backend/umax_pp.c:789 +#: backend/umax_pp.c:783 #, no-c-format msgid "Sets red channel offset" msgstr "Estableix el desplaçament del canal roig" -#: backend/umax_pp.c:801 +#: backend/umax_pp.c:795 #, no-c-format msgid "Sets green channel offset" msgstr "Estableix el desplaçament del canal verd" -#: backend/umax_pp.c:813 +#: backend/umax_pp.c:807 #, no-c-format msgid "Sets blue channel offset" msgstr "Estableix el desplaçament del canal blau" +#~ msgid "Disable dynamic lineart" +#~ msgstr "Inhabilita l'art lineal dinàmic" + +#~ msgid "" +#~ "Disable use of a software adaptive algorithm to generate lineart " +#~ "relying instead on hardware lineart." +#~ msgstr "" +#~ "Inhabilita l'ús d'un algorisme adaptatiu per programari que genera " +#~ "art lineal en comptes de per maquinari." + #~ msgid "linier" #~ msgstr "Lineal" diff --git a/po/cs.po b/po/cs.po index ea5a3f0ff..e07668904 100644 --- a/po/cs.po +++ b/po/cs.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: sane-backends.cs\n" "Report-Msgid-Bugs-To: sane-devel@alioth-lists.debian.net\n" -"POT-Creation-Date: 2019-10-12 17:41+0300\n" +"POT-Creation-Date: 2020-01-12 07:09+0000\n" "PO-Revision-Date: 2007-12-17 22:59+0100\n" "Last-Translator: Josef \n" "Language-Team: \n" @@ -26,23 +26,23 @@ msgid "Standard" msgstr "" #: include/sane/saneopts.h:157 backend/artec_eplus48u.c:2884 -#: backend/epson.c:3298 backend/epson2.c:1290 -#: backend/genesys/genesys.cpp:3976 backend/gt68xx.c:696 -#: backend/hp3500.c:1019 backend/hp-option.c:3300 backend/kvs1025_opt.c:639 +#: backend/epson.c:3298 backend/epson2.c:1290 backend/epsonds.c:677 +#: backend/genesys/genesys.cpp:4034 backend/gt68xx.c:696 +#: backend/hp-option.c:3300 backend/hp3500.c:1019 backend/kvs1025_opt.c:639 #: backend/kvs20xx_opt.c:285 backend/kvs40xx_opt.c:506 backend/leo.c:823 #: backend/lexmark.c:199 backend/ma1509.c:551 backend/matsushita.c:1135 #: backend/microtek2.h:599 backend/mustek.c:4373 backend/mustek_usb.c:301 -#: backend/mustek_usb2.c:465 backend/pixma_sane_options.c:160 +#: backend/mustek_usb2.c:465 backend/pixma/pixma_sane_options.c:160 #: backend/plustek.c:808 backend/plustek_pp.c:747 backend/sceptre.c:702 #: backend/snapscan-options.c:550 backend/teco1.c:1095 backend/teco2.c:1910 #: backend/teco3.c:920 backend/test.c:647 backend/u12.c:546 -#: backend/umax.c:5176 backend/umax_pp.c:576 +#: backend/umax.c:5176 backend/umax_pp.c:570 #, no-c-format msgid "Geometry" msgstr "Geometrie" #: include/sane/saneopts.h:158 backend/artec_eplus48u.c:2805 -#: backend/canon.c:1493 backend/genesys/genesys.cpp:4035 +#: backend/canon.c:1493 backend/genesys/genesys.cpp:4077 #: backend/gt68xx.c:665 backend/hp-option.c:2956 backend/kvs1025_opt.c:703 #: backend/leo.c:871 backend/ma1509.c:599 backend/matsushita.c:1189 #: backend/microtek2.h:600 backend/mustek.c:4421 backend/mustek_usb.c:349 @@ -50,7 +50,7 @@ msgstr "Geometrie" #: backend/plustek_pp.c:793 backend/sceptre.c:750 #: backend/snapscan-options.c:617 backend/stv680.c:1067 #: backend/teco1.c:1143 backend/teco2.c:1958 backend/teco3.c:968 -#: backend/u12.c:592 backend/umax.c:5226 backend/umax_pp.c:625 +#: backend/u12.c:592 backend/umax.c:5226 backend/umax_pp.c:619 #, no-c-format msgid "Enhancement" msgstr "Vylepšení" @@ -84,7 +84,7 @@ msgid "Bit depth" msgstr "Bitová hloubka" #: include/sane/saneopts.h:165 backend/canon.c:1140 backend/leo.c:781 -#: backend/pixma_sane_options.c:47 +#: backend/pixma/pixma_sane_options.c:47 #, no-c-format msgid "Scan mode" msgstr "Režim skenu" @@ -125,7 +125,7 @@ msgid "Bottom-right y" msgstr "Pravý dolní roh y" #: include/sane/saneopts.h:173 backend/canon.c:1216 -#: backend/pixma_sane_options.c:300 +#: backend/pixma/pixma_sane_options.c:300 #, no-c-format msgid "Scan resolution" msgstr "Rozlišení" @@ -280,7 +280,7 @@ msgstr "Jméno souboru" msgid "Halftone pattern size" msgstr "Rozměr vzorku polotónu" -#: include/sane/saneopts.h:204 backend/fujitsu.c:3233 +#: include/sane/saneopts.h:204 backend/fujitsu.c:3237 #, no-c-format msgid "Halftone pattern" msgstr "Vzorek polotónu" @@ -290,10 +290,10 @@ msgstr "Vzorek polotónu" msgid "Bind X and Y resolution" msgstr "Svázat rozlišení X a Y" -#: include/sane/saneopts.h:206 backend/hp3900_sane.c:428 -#: backend/hp3900_sane.c:1021 backend/hp3900_sane.c:1421 -#: backend/hp-option.c:3238 backend/mustek_usb2.c:121 backend/plustek.c:236 -#: backend/plustek_pp.c:205 backend/u12.c:157 +#: include/sane/saneopts.h:206 backend/hp-option.c:3238 +#: backend/hp3900_sane.c:428 backend/hp3900_sane.c:1021 +#: backend/hp3900_sane.c:1421 backend/mustek_usb2.c:121 +#: backend/plustek.c:236 backend/plustek_pp.c:205 backend/u12.c:157 #, no-c-format msgid "Negative" msgstr "Negativ" @@ -1025,78 +1025,38 @@ msgid "" "Duplex scan provides a scan of the front and back side of the document" msgstr "" -#: backend/canon630u.c:159 +#: backend/canon-sane.c:674 backend/canon.c:171 #, no-c-format -msgid "Calibrate Scanner" -msgstr "Kalibrovat skener" - -#: backend/canon630u.c:160 -#, no-c-format -msgid "Force scanner calibration before scan" -msgstr "Vynutit kalibraci skeneru před skenováním" - -#: backend/canon630u.c:259 backend/umax1220u.c:208 -#, no-c-format -msgid "Grayscale scan" -msgstr "Stupně šedé" - -#: backend/canon630u.c:260 backend/umax1220u.c:209 -#, no-c-format -msgid "Do a grayscale rather than color scan" -msgstr "Skenovat ve stupních šedé místo v barvě" - -#: backend/canon630u.c:306 -#, no-c-format -msgid "Analog Gain" -msgstr "Analogový zisk" - -#: backend/canon630u.c:307 -#, no-c-format -msgid "Increase or decrease the analog gain of the CCD array" -msgstr "Zvýšit nebo snížit analogový zisk CCD pole" - -#: backend/canon630u.c:347 backend/epson.h:68 backend/epson2.h:67 -#, no-c-format -msgid "Gamma Correction" -msgstr "Korekce gama" - -#: backend/canon630u.c:348 -#, no-c-format -msgid "Selects the gamma corrected transfer curve" -msgstr "Nastaví gama korekci přenosové křivky" - -#: backend/canon.c:149 backend/canon-sane.c:1318 -#, no-c-format -msgid "Raw" +msgid "Correction according to transparency ratio" msgstr "" -#: backend/canon.c:157 backend/canon-sane.c:732 backend/canon-sane.c:940 +#: backend/canon-sane.c:680 backend/canon.c:170 +#, no-c-format +msgid "Correction according to film type" +msgstr "" + +#: backend/canon-sane.c:732 backend/canon-sane.c:940 #: backend/canon-sane.c:1076 backend/canon-sane.c:1314 -#: backend/canon-sane.c:1494 backend/canon-sane.c:1643 +#: backend/canon-sane.c:1494 backend/canon-sane.c:1643 backend/canon.c:157 #, no-c-format msgid "Fine color" msgstr "" +#: backend/canon-sane.c:776 backend/canon.c:176 +#, fuzzy, no-c-format +msgid "Negatives" +msgstr "Negativ" + +#: backend/canon-sane.c:1318 backend/canon.c:149 +#, no-c-format +msgid "Raw" +msgstr "" + #: backend/canon.c:169 #, fuzzy, no-c-format msgid "No transparency correction" msgstr "Barevná korekce" -#: backend/canon.c:170 backend/canon-sane.c:680 -#, no-c-format -msgid "Correction according to film type" -msgstr "" - -#: backend/canon.c:171 backend/canon-sane.c:674 -#, no-c-format -msgid "Correction according to transparency ratio" -msgstr "" - -#: backend/canon.c:176 backend/canon-sane.c:776 -#, fuzzy, no-c-format -msgid "Negatives" -msgstr "Negativ" - #: backend/canon.c:176 #, fuzzy, no-c-format msgid "Slides" @@ -1519,94 +1479,137 @@ msgstr "Typ filmu" msgid "Select the film type" msgstr "Zvolit polotóny" -#: backend/canon_dr.c:411 backend/epjitsu.c:233 backend/epson.c:501 -#: backend/epson2.c:115 backend/fujitsu.c:675 backend/gt68xx.c:148 +#: backend/canon630u.c:159 +#, no-c-format +msgid "Calibrate Scanner" +msgstr "Kalibrovat skener" + +#: backend/canon630u.c:160 +#, no-c-format +msgid "Force scanner calibration before scan" +msgstr "Vynutit kalibraci skeneru před skenováním" + +#: backend/canon630u.c:259 backend/umax1220u.c:208 +#, no-c-format +msgid "Grayscale scan" +msgstr "Stupně šedé" + +#: backend/canon630u.c:260 backend/umax1220u.c:209 +#, no-c-format +msgid "Do a grayscale rather than color scan" +msgstr "Skenovat ve stupních šedé místo v barvě" + +#: backend/canon630u.c:306 +#, no-c-format +msgid "Analog Gain" +msgstr "Analogový zisk" + +#: backend/canon630u.c:307 +#, no-c-format +msgid "Increase or decrease the analog gain of the CCD array" +msgstr "Zvýšit nebo snížit analogový zisk CCD pole" + +#: backend/canon630u.c:347 backend/epson.h:68 backend/epson2.h:67 +#, no-c-format +msgid "Gamma Correction" +msgstr "Korekce gama" + +#: backend/canon630u.c:348 +#, no-c-format +msgid "Selects the gamma corrected transfer curve" +msgstr "Nastaví gama korekci přenosové křivky" + +#: backend/canon_dr.c:413 backend/epjitsu.c:233 backend/epson.c:501 +#: backend/epson2-ops.c:101 backend/epson2.c:115 backend/epsonds-ops.c:32 +#: backend/epsonds.c:95 backend/epsonds.h:62 backend/fujitsu.c:677 +#: backend/genesys/genesys.h:78 backend/gt68xx.c:148 #: backend/hp3900_sane.c:418 backend/hp3900_sane.c:427 -#: backend/hp3900_sane.c:1017 backend/hp5590.c:92 backend/ma1509.c:108 -#: backend/magicolor.c:181 backend/mustek.c:156 backend/mustek.c:160 -#: backend/mustek.c:164 backend/pixma.c:920 backend/pixma_sane_options.c:92 -#: backend/snapscan-options.c:86 backend/test.c:192 backend/umax.c:181 +#: backend/hp3900_sane.c:1017 backend/hp5590.c:92 backend/kodakaio.c:617 +#: backend/ma1509.c:108 backend/magicolor.c:181 backend/mustek.c:156 +#: backend/mustek.c:160 backend/mustek.c:164 backend/pixma/pixma.c:920 +#: backend/pixma/pixma_sane_options.c:92 backend/snapscan-options.c:86 +#: backend/test.c:192 backend/umax.c:181 #, no-c-format msgid "Flatbed" msgstr "Stolní" -#: backend/canon_dr.c:412 backend/epjitsu.c:234 backend/fujitsu.c:676 +#: backend/canon_dr.c:414 backend/epjitsu.c:234 backend/fujitsu.c:678 #: backend/kodak.c:140 #, no-c-format msgid "ADF Front" msgstr "" -#: backend/canon_dr.c:413 backend/epjitsu.c:235 backend/fujitsu.c:677 +#: backend/canon_dr.c:415 backend/epjitsu.c:235 backend/fujitsu.c:679 #: backend/kodak.c:141 #, no-c-format msgid "ADF Back" msgstr "" -#: backend/canon_dr.c:414 backend/epjitsu.c:236 backend/fujitsu.c:678 -#: backend/hp5590.c:94 backend/kodak.c:142 backend/pixma.c:931 +#: backend/canon_dr.c:416 backend/epjitsu.c:236 backend/fujitsu.c:680 +#: backend/hp5590.c:94 backend/kodak.c:142 backend/pixma/pixma.c:931 #, fuzzy, no-c-format msgid "ADF Duplex" msgstr "Oboustraně" -#: backend/canon_dr.c:415 +#: backend/canon_dr.c:417 #, no-c-format msgid "Card Front" msgstr "" -#: backend/canon_dr.c:416 +#: backend/canon_dr.c:418 #, no-c-format msgid "Card Back" msgstr "" -#: backend/canon_dr.c:417 +#: backend/canon_dr.c:419 #, fuzzy, no-c-format msgid "Card Duplex" msgstr "Oboustraně" -#: backend/canon_dr.c:424 backend/epson.c:599 backend/epson.c:3096 -#: backend/epson2.c:201 backend/fujitsu.c:695 -#: backend/genesys/genesys.cpp:99 backend/genesys/genesys.cpp:106 +#: backend/canon_dr.c:426 backend/epson.c:599 backend/epson.c:3096 +#: backend/epson2.c:201 backend/fujitsu.c:697 +#: backend/genesys/genesys.cpp:120 backend/genesys/genesys.cpp:127 #: backend/gt68xx_low.h:136 backend/hp-option.c:3096 #, no-c-format msgid "Red" msgstr "Červená" -#: backend/canon_dr.c:425 backend/epson.c:600 backend/epson.c:3092 -#: backend/epson2.c:202 backend/fujitsu.c:696 -#: backend/genesys/genesys.cpp:100 backend/genesys/genesys.cpp:107 +#: backend/canon_dr.c:427 backend/epson.c:600 backend/epson.c:3092 +#: backend/epson2.c:202 backend/fujitsu.c:698 +#: backend/genesys/genesys.cpp:121 backend/genesys/genesys.cpp:128 #: backend/gt68xx_low.h:137 backend/hp-option.c:3097 #, no-c-format msgid "Green" msgstr "Zelená" -#: backend/canon_dr.c:426 backend/epson.c:601 backend/epson.c:3100 -#: backend/epson2.c:203 backend/fujitsu.c:697 -#: backend/genesys/genesys.cpp:101 backend/genesys/genesys.cpp:108 +#: backend/canon_dr.c:428 backend/epson.c:601 backend/epson.c:3100 +#: backend/epson2.c:203 backend/fujitsu.c:699 +#: backend/genesys/genesys.cpp:122 backend/genesys/genesys.cpp:129 #: backend/gt68xx_low.h:138 backend/hp-option.c:3098 #, no-c-format msgid "Blue" msgstr "Modrá" -#: backend/canon_dr.c:427 +#: backend/canon_dr.c:429 #, fuzzy, no-c-format msgid "Enhance Red" msgstr "Vylepšení" -#: backend/canon_dr.c:428 +#: backend/canon_dr.c:430 #, fuzzy, no-c-format msgid "Enhance Green" msgstr "Vylepšení" -#: backend/canon_dr.c:429 +#: backend/canon_dr.c:431 #, fuzzy, no-c-format msgid "Enhance Blue" msgstr "Vylepšení" -#: backend/canon_dr.c:431 backend/epson.c:556 backend/epson.c:564 +#: backend/canon_dr.c:433 backend/epson.c:556 backend/epson.c:564 #: backend/epson.c:576 backend/epson.c:598 backend/epson2.c:165 #: backend/epson2.c:173 backend/epson2.c:185 backend/epson2.c:200 -#: backend/epson2.c:214 backend/fujitsu.c:701 -#: backend/genesys/genesys.cpp:109 backend/leo.c:109 +#: backend/epson2.c:214 backend/fujitsu.c:703 +#: backend/genesys/genesys.cpp:130 backend/leo.c:109 #: backend/matsushita.c:138 backend/matsushita.c:159 #: backend/matsushita.c:191 backend/matsushita.c:213 #: backend/snapscan-options.c:91 @@ -1614,42 +1617,46 @@ msgstr "Vylepšení" msgid "None" msgstr "Žádné" -#: backend/canon_dr.c:432 backend/fujitsu.c:702 +#: backend/canon_dr.c:434 backend/fujitsu.c:704 #, no-c-format msgid "JPEG" msgstr "" -#: backend/canon_dr.c:2477 backend/fujitsu.c:4113 -#: backend/genesys/genesys.cpp:4126 backend/kvs1025_opt.c:910 +#: backend/canon_dr.c:2479 backend/fujitsu.c:4117 +#: backend/genesys/genesys.cpp:4168 backend/kvs1025_opt.c:910 #, no-c-format msgid "Software blank skip percentage" msgstr "" -#: backend/canon_dr.c:2478 backend/fujitsu.c:4114 +#: backend/canon_dr.c:2480 backend/fujitsu.c:4118 #, no-c-format msgid "Request driver to discard pages with low percentage of dark pixels" msgstr "" -#: backend/epson.c:491 backend/epson2.c:108 backend/magicolor.c:174 +#: backend/epson.c:491 backend/epson2.c:108 backend/epsonds.c:88 +#: backend/kodakaio.c:611 backend/magicolor.c:174 #, no-c-format msgid "Simplex" msgstr "Jednostraně" -#: backend/epson.c:492 backend/epson2.c:109 backend/kvs1025.h:50 -#: backend/kvs20xx_opt.c:204 backend/kvs40xx_opt.c:353 -#: backend/magicolor.c:175 backend/matsushita.h:218 +#: backend/epson.c:492 backend/epson2.c:109 backend/epsonds.c:89 +#: backend/kodakaio.c:612 backend/kvs1025.h:50 backend/kvs20xx_opt.c:204 +#: backend/kvs40xx_opt.c:353 backend/magicolor.c:175 +#: backend/matsushita.h:218 #, no-c-format msgid "Duplex" msgstr "Oboustraně" -#: backend/epson.c:502 backend/epson2.c:116 backend/pixma.c:937 +#: backend/epson.c:502 backend/epson2-ops.c:102 backend/epson2.c:116 +#: backend/epsonds-ops.c:33 backend/epsonds.h:63 backend/pixma/pixma.c:937 #, no-c-format msgid "Transparency Unit" msgstr "Prosvětlovací jednotka" -#: backend/epson.c:503 backend/epson2.c:118 backend/magicolor.c:182 -#: backend/mustek.c:160 backend/pixma.c:925 backend/test.c:192 -#: backend/umax.c:183 +#: backend/epson.c:503 backend/epson2-ops.c:104 backend/epson2.c:118 +#: backend/epsonds-ops.c:34 backend/epsonds.c:96 backend/epsonds.h:64 +#: backend/kodakaio.c:618 backend/magicolor.c:182 backend/mustek.c:160 +#: backend/pixma/pixma.c:925 backend/test.c:192 backend/umax.c:183 #, no-c-format msgid "Automatic Document Feeder" msgstr "Automatický podavač dokumentů" @@ -1761,7 +1768,7 @@ msgstr "Inkoustové tiskárny" msgid "CRT monitors" msgstr "CRT monitory" -#: backend/epson.c:656 backend/epson2.c:254 backend/fujitsu.c:685 +#: backend/epson.c:656 backend/epson2.c:254 backend/fujitsu.c:687 #: backend/hp-option.c:3229 backend/test.c:143 #, no-c-format msgid "Default" @@ -1825,8 +1832,8 @@ msgstr "A4" msgid "Max" msgstr "Max" -#: backend/epson.c:2813 backend/epson2.c:976 -#: backend/genesys/genesys.cpp:3893 backend/gt68xx.c:451 +#: backend/epson.c:2813 backend/epson2.c:976 backend/epsonds.c:629 +#: backend/genesys/genesys.cpp:3965 backend/gt68xx.c:451 #: backend/hp-option.c:2917 backend/kvs1025_opt.c:521 #: backend/kvs20xx_opt.c:171 backend/kvs40xx_opt.c:320 backend/ma1509.c:501 #: backend/matsushita.c:1084 backend/microtek2.h:598 backend/mustek.c:4215 @@ -1999,17 +2006,17 @@ msgstr "Nastaví faktor přiblížení, který skener použije" msgid "Quick format" msgstr "Rychlý formát" -#: backend/epson.c:3360 backend/epson2.c:1340 +#: backend/epson.c:3360 backend/epson2.c:1340 backend/epsonds.c:726 #, no-c-format msgid "Optional equipment" msgstr "Volitelné příslušenství" -#: backend/epson.c:3431 backend/epson2.c:1393 +#: backend/epson.c:3431 backend/epson2.c:1393 backend/epsonds.c:742 #, no-c-format msgid "Eject" msgstr "Vysunout" -#: backend/epson.c:3432 backend/epson2.c:1394 +#: backend/epson.c:3432 backend/epson2.c:1394 backend/epsonds.c:743 #, no-c-format msgid "Eject the sheet in the ADF" msgstr "Vysunout papír z automatického podavače" @@ -2024,12 +2031,14 @@ msgstr "Automaticky vysunout" msgid "Eject document after scanning" msgstr "Vysunout dokument po naskenování" -#: backend/epson.c:3457 backend/epson2.c:1416 backend/magicolor.c:2420 +#: backend/epson.c:3457 backend/epson2.c:1416 backend/epsonds.c:758 +#: backend/kodakaio.c:2855 backend/magicolor.c:2420 #, no-c-format msgid "ADF Mode" msgstr "" -#: backend/epson.c:3459 backend/epson2.c:1418 backend/magicolor.c:2422 +#: backend/epson.c:3459 backend/epson2.c:1418 backend/epsonds.c:760 +#: backend/kodakaio.c:2857 backend/magicolor.c:2422 #, no-c-format msgid "Selects the ADF mode (simplex/duplex)" msgstr "" @@ -2078,16 +2087,16 @@ msgstr "" "Po odeslání příkazu ke skenování se s vlastním skenem čeká až na stisk " "tlačítka na skeneru." -#: backend/epson2.c:102 backend/pixma.c:409 -#, no-c-format -msgid "Infrared" -msgstr "" - -#: backend/epson2.c:117 +#: backend/epson2-ops.c:103 backend/epson2.c:117 #, no-c-format msgid "TPU8x10" msgstr "" +#: backend/epson2.c:102 backend/pixma/pixma.c:409 +#, no-c-format +msgid "Infrared" +msgstr "" + #: backend/epson2.c:136 #, fuzzy, no-c-format msgid "Positive Slide" @@ -2108,492 +2117,512 @@ msgstr "" msgid "User defined CCT profile" msgstr "Uživatelské nastavení" -#: backend/fujitsu.c:686 backend/hp-option.c:3330 backend/hp-option.c:3343 +#: backend/epsonds.c:750 +#, no-c-format +msgid "Load" +msgstr "" + +#: backend/epsonds.c:751 +#, fuzzy, no-c-format +msgid "Load a sheet in the ADF" +msgstr "Vysunout papír z automatického podavače" + +#: backend/epsonds.c:771 +#, fuzzy, no-c-format +msgid "ADF Skew Correction" +msgstr "Bez korekce" + +#: backend/epsonds.c:773 +#, fuzzy, no-c-format +msgid "Enables ADF skew correction" +msgstr "Analogová korekce gama" + +#: backend/fujitsu.c:688 backend/hp-option.c:3330 backend/hp-option.c:3343 #, no-c-format msgid "On" msgstr "" -#: backend/fujitsu.c:687 backend/hp-option.c:3162 backend/hp-option.c:3329 +#: backend/fujitsu.c:689 backend/hp-option.c:3162 backend/hp-option.c:3329 #: backend/hp-option.c:3342 #, no-c-format msgid "Off" msgstr "" -#: backend/fujitsu.c:689 +#: backend/fujitsu.c:691 #, no-c-format msgid "DTC" msgstr "" -#: backend/fujitsu.c:690 +#: backend/fujitsu.c:692 #, no-c-format msgid "SDTC" msgstr "" -#: backend/fujitsu.c:692 backend/teco1.c:1152 backend/teco1.c:1153 +#: backend/fujitsu.c:694 backend/teco1.c:1152 backend/teco1.c:1153 #: backend/teco2.c:1967 backend/teco2.c:1968 backend/teco3.c:977 #: backend/teco3.c:978 #, no-c-format msgid "Dither" msgstr "Rozptyl" -#: backend/fujitsu.c:693 +#: backend/fujitsu.c:695 #, fuzzy, no-c-format msgid "Diffusion" msgstr "Chybový rozptyl" -#: backend/fujitsu.c:698 +#: backend/fujitsu.c:700 #, fuzzy, no-c-format msgid "White" msgstr "Úroveň bílé" -#: backend/fujitsu.c:699 +#: backend/fujitsu.c:701 #, fuzzy, no-c-format msgid "Black" msgstr "Úroveň černé" -#: backend/fujitsu.c:704 +#: backend/fujitsu.c:706 #, no-c-format msgid "Continue" msgstr "" -#: backend/fujitsu.c:705 +#: backend/fujitsu.c:707 #, no-c-format msgid "Stop" msgstr "" -#: backend/fujitsu.c:707 +#: backend/fujitsu.c:709 #, no-c-format msgid "10mm" msgstr "" -#: backend/fujitsu.c:708 +#: backend/fujitsu.c:710 #, no-c-format msgid "15mm" msgstr "" -#: backend/fujitsu.c:709 +#: backend/fujitsu.c:711 #, no-c-format msgid "20mm" msgstr "" -#: backend/fujitsu.c:711 backend/hp-option.c:3048 +#: backend/fujitsu.c:713 backend/hp-option.c:3048 #, no-c-format msgid "Horizontal" msgstr "Horizontální" -#: backend/fujitsu.c:712 +#: backend/fujitsu.c:714 #, fuzzy, no-c-format msgid "Horizontal bold" msgstr "Horizontální" -#: backend/fujitsu.c:713 +#: backend/fujitsu.c:715 #, fuzzy, no-c-format msgid "Horizontal narrow" msgstr "Horizontální" -#: backend/fujitsu.c:714 backend/hp-option.c:3047 +#: backend/fujitsu.c:716 backend/hp-option.c:3047 #, no-c-format msgid "Vertical" msgstr "Vertikální" -#: backend/fujitsu.c:715 +#: backend/fujitsu.c:717 #, fuzzy, no-c-format msgid "Vertical bold" msgstr "Vertikální" -#: backend/fujitsu.c:717 +#: backend/fujitsu.c:719 #, no-c-format msgid "Top to bottom" msgstr "" -#: backend/fujitsu.c:718 +#: backend/fujitsu.c:720 #, no-c-format msgid "Bottom to top" msgstr "" -#: backend/fujitsu.c:720 +#: backend/fujitsu.c:722 #, no-c-format msgid "Front" msgstr "" -#: backend/fujitsu.c:721 +#: backend/fujitsu.c:723 #, no-c-format msgid "Back" msgstr "" -#: backend/fujitsu.c:3144 backend/pixma_sane_options.c:145 +#: backend/fujitsu.c:3148 backend/pixma/pixma_sane_options.c:145 #, no-c-format msgid "Gamma function exponent" msgstr "" -#: backend/fujitsu.c:3145 backend/pixma_sane_options.c:146 +#: backend/fujitsu.c:3149 backend/pixma/pixma_sane_options.c:146 #, no-c-format msgid "Changes intensity of midtones" msgstr "" -#: backend/fujitsu.c:3194 +#: backend/fujitsu.c:3198 #, no-c-format msgid "RIF" msgstr "" -#: backend/fujitsu.c:3195 +#: backend/fujitsu.c:3199 #, no-c-format msgid "Reverse image format" msgstr "" -#: backend/fujitsu.c:3212 +#: backend/fujitsu.c:3216 #, fuzzy, no-c-format msgid "Halftone type" msgstr "Polotóny" -#: backend/fujitsu.c:3213 +#: backend/fujitsu.c:3217 #, no-c-format msgid "Control type of halftone filter" msgstr "" -#: backend/fujitsu.c:3234 +#: backend/fujitsu.c:3238 #, no-c-format msgid "Control pattern of halftone filter" msgstr "" -#: backend/fujitsu.c:3256 +#: backend/fujitsu.c:3260 #, no-c-format msgid "Outline" msgstr "" -#: backend/fujitsu.c:3257 +#: backend/fujitsu.c:3261 #, fuzzy, no-c-format msgid "Perform outline extraction" msgstr "Hrubá kalibrace" -#: backend/fujitsu.c:3268 +#: backend/fujitsu.c:3272 #, fuzzy, no-c-format msgid "Emphasis" msgstr "Zvýraznění obrázku" -#: backend/fujitsu.c:3269 +#: backend/fujitsu.c:3273 #, no-c-format msgid "Negative to smooth or positive to sharpen image" msgstr "" -#: backend/fujitsu.c:3287 +#: backend/fujitsu.c:3291 #, fuzzy, no-c-format msgid "Separation" msgstr "Sytost" -#: backend/fujitsu.c:3288 +#: backend/fujitsu.c:3292 #, no-c-format msgid "Enable automatic separation of image and text" msgstr "" -#: backend/fujitsu.c:3299 +#: backend/fujitsu.c:3303 #, fuzzy, no-c-format msgid "Mirroring" msgstr "Zrcadlit obrázek" -#: backend/fujitsu.c:3300 +#: backend/fujitsu.c:3304 #, fuzzy, no-c-format msgid "Reflect output image horizontally" msgstr "Zrcadlit obrázek" -#: backend/fujitsu.c:3317 +#: backend/fujitsu.c:3321 #, fuzzy, no-c-format msgid "White level follower" msgstr "Úroveň bílé modré" -#: backend/fujitsu.c:3318 +#: backend/fujitsu.c:3322 #, fuzzy, no-c-format msgid "Control white level follower" msgstr "Ovládá úroveň červené" -#: backend/fujitsu.c:3336 +#: backend/fujitsu.c:3340 #, fuzzy, no-c-format msgid "BP filter" msgstr "Barevná perokresba" -#: backend/fujitsu.c:3337 +#: backend/fujitsu.c:3341 #, no-c-format msgid "Improves quality of high resolution ball-point pen text" msgstr "" -#: backend/fujitsu.c:3353 backend/hp-option.h:73 +#: backend/fujitsu.c:3357 backend/hp-option.h:73 #, fuzzy, no-c-format msgid "Smoothing" msgstr "Jemný" -#: backend/fujitsu.c:3354 +#: backend/fujitsu.c:3358 #, no-c-format msgid "Enable smoothing for improved OCR" msgstr "" -#: backend/fujitsu.c:3370 +#: backend/fujitsu.c:3374 #, fuzzy, no-c-format msgid "Gamma curve" msgstr "Hodnota gama" -#: backend/fujitsu.c:3371 +#: backend/fujitsu.c:3375 #, no-c-format msgid "Gamma curve, from light to dark, but upper two may not work" msgstr "" -#: backend/fujitsu.c:3393 backend/genesys/genesys.cpp:4187 -#: backend/pixma_sane_options.c:335 +#: backend/fujitsu.c:3397 backend/genesys/genesys.cpp:4229 +#: backend/pixma/pixma_sane_options.c:335 #, fuzzy, no-c-format msgid "Threshold curve" msgstr "Prahová hodnota" -#: backend/fujitsu.c:3394 +#: backend/fujitsu.c:3398 #, no-c-format msgid "" "Threshold curve, from light to dark, but upper two may not be linear" msgstr "" -#: backend/fujitsu.c:3416 +#: backend/fujitsu.c:3420 #, fuzzy, no-c-format msgid "Threshold white" msgstr "Prahová hodnota" -#: backend/fujitsu.c:3417 +#: backend/fujitsu.c:3421 #, no-c-format msgid "Set pixels equal to threshold to white instead of black" msgstr "" -#: backend/fujitsu.c:3433 backend/fujitsu.c:3434 +#: backend/fujitsu.c:3437 backend/fujitsu.c:3438 #, fuzzy, no-c-format msgid "Noise removal" msgstr "Redukce šumu" -#: backend/fujitsu.c:3450 +#: backend/fujitsu.c:3454 #, no-c-format msgid "Matrix 5x5" msgstr "" -#: backend/fujitsu.c:3451 +#: backend/fujitsu.c:3455 #, no-c-format msgid "Remove 5 pixel square noise" msgstr "" -#: backend/fujitsu.c:3467 +#: backend/fujitsu.c:3471 #, no-c-format msgid "Matrix 4x4" msgstr "" -#: backend/fujitsu.c:3468 +#: backend/fujitsu.c:3472 #, no-c-format msgid "Remove 4 pixel square noise" msgstr "" -#: backend/fujitsu.c:3484 +#: backend/fujitsu.c:3488 #, no-c-format msgid "Matrix 3x3" msgstr "" -#: backend/fujitsu.c:3485 +#: backend/fujitsu.c:3489 #, no-c-format msgid "Remove 3 pixel square noise" msgstr "" -#: backend/fujitsu.c:3501 +#: backend/fujitsu.c:3505 #, no-c-format msgid "Matrix 2x2" msgstr "" -#: backend/fujitsu.c:3502 +#: backend/fujitsu.c:3506 #, no-c-format msgid "Remove 2 pixel square noise" msgstr "" -#: backend/fujitsu.c:3521 +#: backend/fujitsu.c:3525 #, no-c-format msgid "Variance" msgstr "" -#: backend/fujitsu.c:3522 +#: backend/fujitsu.c:3526 #, no-c-format msgid "Set SDTC variance rate (sensitivity), 0 equals 127" msgstr "" -#: backend/fujitsu.c:3555 +#: backend/fujitsu.c:3559 #, fuzzy, no-c-format msgid "Auto width detection" msgstr "Bez korekce" -#: backend/fujitsu.c:3556 +#: backend/fujitsu.c:3560 #, no-c-format msgid "Scanner detects paper sides. May reduce scanning speed." msgstr "" -#: backend/fujitsu.c:3573 +#: backend/fujitsu.c:3577 #, fuzzy, no-c-format msgid "Auto length detection" msgstr "Bez korekce" -#: backend/fujitsu.c:3574 +#: backend/fujitsu.c:3578 #, no-c-format msgid "Scanner detects paper lower edge. May confuse some frontends." msgstr "" -#: backend/fujitsu.c:3600 +#: backend/fujitsu.c:3604 #, no-c-format msgid "Compression" msgstr "" -#: backend/fujitsu.c:3601 +#: backend/fujitsu.c:3605 #, no-c-format msgid "Enable compressed data. May crash your front-end program" msgstr "" -#: backend/fujitsu.c:3621 +#: backend/fujitsu.c:3625 #, no-c-format msgid "Compression argument" msgstr "" -#: backend/fujitsu.c:3622 +#: backend/fujitsu.c:3626 #, no-c-format msgid "" "Level of JPEG compression. 1 is small file, 7 is large file. 0 (default) " "is same as 4" msgstr "" -#: backend/fujitsu.c:3652 +#: backend/fujitsu.c:3656 #, no-c-format msgid "DF action" msgstr "" -#: backend/fujitsu.c:3653 +#: backend/fujitsu.c:3657 #, no-c-format msgid "Action following double feed error" msgstr "" -#: backend/fujitsu.c:3669 +#: backend/fujitsu.c:3673 #, no-c-format msgid "DF skew" msgstr "" -#: backend/fujitsu.c:3670 +#: backend/fujitsu.c:3674 #, no-c-format msgid "Enable double feed error due to skew" msgstr "" -#: backend/fujitsu.c:3688 +#: backend/fujitsu.c:3692 #, no-c-format msgid "DF thickness" msgstr "" -#: backend/fujitsu.c:3689 +#: backend/fujitsu.c:3693 #, no-c-format msgid "Enable double feed error due to paper thickness" msgstr "" -#: backend/fujitsu.c:3707 +#: backend/fujitsu.c:3711 #, no-c-format msgid "DF length" msgstr "" -#: backend/fujitsu.c:3708 +#: backend/fujitsu.c:3712 #, no-c-format msgid "Enable double feed error due to paper length" msgstr "" -#: backend/fujitsu.c:3731 +#: backend/fujitsu.c:3735 #, no-c-format msgid "DF length difference" msgstr "" -#: backend/fujitsu.c:3732 +#: backend/fujitsu.c:3736 #, no-c-format msgid "Difference in page length to trigger double feed error" msgstr "" -#: backend/fujitsu.c:3755 +#: backend/fujitsu.c:3759 #, fuzzy, no-c-format msgid "DF recovery mode" msgstr "Režim podavače" -#: backend/fujitsu.c:3756 +#: backend/fujitsu.c:3760 #, no-c-format msgid "Request scanner to reverse feed on paper jam" msgstr "" -#: backend/fujitsu.c:3775 +#: backend/fujitsu.c:3779 #, no-c-format msgid "Paper protection" msgstr "" -#: backend/fujitsu.c:3776 +#: backend/fujitsu.c:3780 #, no-c-format msgid "Request scanner to predict jams in the ADF" msgstr "" -#: backend/fujitsu.c:3795 +#: backend/fujitsu.c:3799 #, fuzzy, no-c-format msgid "Advanced paper protection" msgstr "Zvláštní volby" -#: backend/fujitsu.c:3796 +#: backend/fujitsu.c:3800 #, no-c-format msgid "Request scanner to predict jams in the ADF using improved sensors" msgstr "" -#: backend/fujitsu.c:3815 +#: backend/fujitsu.c:3819 #, fuzzy, no-c-format msgid "Staple detection" msgstr "Bez korekce" -#: backend/fujitsu.c:3816 +#: backend/fujitsu.c:3820 #, no-c-format msgid "Request scanner to detect jams in the ADF caused by staples" msgstr "" -#: backend/fujitsu.c:3835 +#: backend/fujitsu.c:3839 #, no-c-format msgid "Background color" msgstr "" -#: backend/fujitsu.c:3836 +#: backend/fujitsu.c:3840 #, no-c-format msgid "" "Set color of background for scans. May conflict with overscan option" msgstr "" -#: backend/fujitsu.c:3856 +#: backend/fujitsu.c:3860 #, fuzzy, no-c-format msgid "Dropout color" msgstr "Výpadek" -#: backend/fujitsu.c:3857 +#: backend/fujitsu.c:3861 #, no-c-format msgid "" "One-pass scanners use only one color during gray or binary scanning, " "useful for colored paper or ink" msgstr "" -#: backend/fujitsu.c:3880 +#: backend/fujitsu.c:3884 #, fuzzy, no-c-format msgid "Buffer mode" msgstr "Režim podavače" -#: backend/fujitsu.c:3881 +#: backend/fujitsu.c:3885 #, no-c-format msgid "Request scanner to read pages quickly from ADF into internal memory" msgstr "" -#: backend/fujitsu.c:3900 +#: backend/fujitsu.c:3904 #, no-c-format msgid "Prepick" msgstr "" -#: backend/fujitsu.c:3901 +#: backend/fujitsu.c:3905 #, no-c-format msgid "Request scanner to grab next page from ADF" msgstr "" -#: backend/fujitsu.c:3920 +#: backend/fujitsu.c:3924 #, no-c-format msgid "Overscan" msgstr "" -#: backend/fujitsu.c:3921 +#: backend/fujitsu.c:3925 #, no-c-format msgid "" "Collect a few mm of background on top side of scan, before paper enters " @@ -2601,65 +2630,65 @@ msgid "" "collection on remaining sides. May conflict with bgcolor option" msgstr "" -#: backend/fujitsu.c:3939 +#: backend/fujitsu.c:3943 #, no-c-format msgid "Sleep timer" msgstr "" -#: backend/fujitsu.c:3940 +#: backend/fujitsu.c:3944 #, no-c-format msgid "" "Time in minutes until the internal power supply switches to sleep mode" msgstr "" -#: backend/fujitsu.c:3958 +#: backend/fujitsu.c:3962 #, fuzzy, no-c-format msgid "Off timer" msgstr "Vypnout lampu" -#: backend/fujitsu.c:3959 +#: backend/fujitsu.c:3963 #, no-c-format msgid "" "Time in minutes until the internal power supply switches the scanner " "off. Will be rounded to nearest 15 minutes. Zero means never power off." msgstr "" -#: backend/fujitsu.c:3977 +#: backend/fujitsu.c:3981 #, fuzzy, no-c-format msgid "Duplex offset" msgstr "Odstup modré" -#: backend/fujitsu.c:3978 +#: backend/fujitsu.c:3982 #, no-c-format msgid "Adjust front/back offset" msgstr "" -#: backend/fujitsu.c:3995 backend/plustek.c:1025 backend/umax_pp.c:800 +#: backend/fujitsu.c:3999 backend/plustek.c:1025 backend/umax_pp.c:794 #, no-c-format msgid "Green offset" msgstr "Odstup zelené" -#: backend/fujitsu.c:3996 +#: backend/fujitsu.c:4000 #, fuzzy, no-c-format msgid "Adjust green/red offset" msgstr "Odstup zelené" -#: backend/fujitsu.c:4013 backend/plustek.c:1041 backend/umax_pp.c:812 +#: backend/fujitsu.c:4017 backend/plustek.c:1041 backend/umax_pp.c:806 #, no-c-format msgid "Blue offset" msgstr "Odstup modré" -#: backend/fujitsu.c:4014 +#: backend/fujitsu.c:4018 #, fuzzy, no-c-format msgid "Adjust blue/red offset" msgstr "Nastavuje odstup modrého kanálu" -#: backend/fujitsu.c:4027 +#: backend/fujitsu.c:4031 #, no-c-format msgid "Low Memory" msgstr "" -#: backend/fujitsu.c:4028 +#: backend/fujitsu.c:4032 #, no-c-format msgid "" "Limit driver memory usage for use in embedded systems. Causes some " @@ -2668,521 +2697,514 @@ msgid "" "only be used with custom front-end software." msgstr "" -#: backend/fujitsu.c:4043 +#: backend/fujitsu.c:4047 #, fuzzy, no-c-format msgid "Duplex side" msgstr "Oboustraně" -#: backend/fujitsu.c:4044 +#: backend/fujitsu.c:4048 #, no-c-format msgid "" "Tells which side (0=front, 1=back) of a duplex scan the next call to " "sane_read will return." msgstr "" -#: backend/fujitsu.c:4055 +#: backend/fujitsu.c:4059 #, no-c-format msgid "Hardware deskew and crop" msgstr "" -#: backend/fujitsu.c:4056 +#: backend/fujitsu.c:4060 #, no-c-format msgid "Request scanner to rotate and crop pages digitally." msgstr "" -#: backend/fujitsu.c:4067 backend/kvs1025_opt.c:871 +#: backend/fujitsu.c:4071 backend/kvs1025_opt.c:871 #, no-c-format msgid "Software deskew" msgstr "" -#: backend/fujitsu.c:4068 +#: backend/fujitsu.c:4072 #, no-c-format msgid "Request driver to rotate skewed pages digitally." msgstr "" -#: backend/fujitsu.c:4080 backend/kvs1025_opt.c:880 +#: backend/fujitsu.c:4084 backend/kvs1025_opt.c:880 #, no-c-format msgid "Software despeckle diameter" msgstr "" -#: backend/fujitsu.c:4081 +#: backend/fujitsu.c:4085 #, no-c-format msgid "Maximum diameter of lone dots to remove from scan." msgstr "" -#: backend/fujitsu.c:4100 backend/genesys/genesys.cpp:4117 +#: backend/fujitsu.c:4104 backend/genesys/genesys.cpp:4159 #, no-c-format msgid "Software crop" msgstr "" -#: backend/fujitsu.c:4101 +#: backend/fujitsu.c:4105 #, no-c-format msgid "Request driver to remove border from pages digitally." msgstr "" -#: backend/fujitsu.c:4130 +#: backend/fujitsu.c:4134 #, no-c-format msgid "Halt on Cancel" msgstr "" -#: backend/fujitsu.c:4131 +#: backend/fujitsu.c:4135 #, no-c-format msgid "" "Request driver to halt the paper feed instead of eject during a cancel." msgstr "" -#: backend/fujitsu.c:4142 +#: backend/fujitsu.c:4146 #, fuzzy, no-c-format msgid "Endorser Options" msgstr "Zvláštní volby" -#: backend/fujitsu.c:4143 +#: backend/fujitsu.c:4147 #, no-c-format msgid "Controls for endorser unit" msgstr "" -#: backend/fujitsu.c:4154 +#: backend/fujitsu.c:4158 #, no-c-format msgid "Endorser" msgstr "" -#: backend/fujitsu.c:4155 +#: backend/fujitsu.c:4159 #, no-c-format msgid "Enable endorser unit" msgstr "" -#: backend/fujitsu.c:4170 +#: backend/fujitsu.c:4174 #, no-c-format msgid "Endorser bits" msgstr "" -#: backend/fujitsu.c:4171 +#: backend/fujitsu.c:4175 #, no-c-format msgid "Determines maximum endorser counter value." msgstr "" -#: backend/fujitsu.c:4196 +#: backend/fujitsu.c:4200 #, no-c-format msgid "Endorser value" msgstr "" -#: backend/fujitsu.c:4197 +#: backend/fujitsu.c:4201 #, no-c-format msgid "Initial endorser counter value." msgstr "" -#: backend/fujitsu.c:4220 +#: backend/fujitsu.c:4224 #, no-c-format msgid "Endorser step" msgstr "" -#: backend/fujitsu.c:4221 +#: backend/fujitsu.c:4225 #, no-c-format msgid "Change endorser counter value by this much for each page." msgstr "" -#: backend/fujitsu.c:4244 +#: backend/fujitsu.c:4248 #, no-c-format msgid "Endorser Y" msgstr "" -#: backend/fujitsu.c:4245 +#: backend/fujitsu.c:4249 #, no-c-format msgid "Endorser print offset from top of paper." msgstr "" -#: backend/fujitsu.c:4270 +#: backend/fujitsu.c:4274 #, no-c-format msgid "Endorser font" msgstr "" -#: backend/fujitsu.c:4271 +#: backend/fujitsu.c:4275 #, no-c-format msgid "Endorser printing font." msgstr "" -#: backend/fujitsu.c:4300 +#: backend/fujitsu.c:4304 #, fuzzy, no-c-format msgid "Endorser direction" msgstr "Redukce šumu" -#: backend/fujitsu.c:4301 +#: backend/fujitsu.c:4305 #, no-c-format msgid "Endorser printing direction." msgstr "" -#: backend/fujitsu.c:4325 +#: backend/fujitsu.c:4329 #, no-c-format msgid "Endorser side" msgstr "" -#: backend/fujitsu.c:4326 +#: backend/fujitsu.c:4330 #, no-c-format msgid "Endorser printing side, requires hardware support to change" msgstr "" -#: backend/fujitsu.c:4351 +#: backend/fujitsu.c:4355 #, no-c-format msgid "Endorser string" msgstr "" -#: backend/fujitsu.c:4352 +#: backend/fujitsu.c:4356 #, no-c-format msgid "" "Endorser alphanumeric print format. %05ud or %08ud at the end will be " "replaced by counter value." msgstr "" -#: backend/fujitsu.c:4379 +#: backend/fujitsu.c:4383 #, no-c-format msgid "Top edge" msgstr "" -#: backend/fujitsu.c:4380 +#: backend/fujitsu.c:4384 #, no-c-format msgid "Paper is pulled partly into ADF" msgstr "" -#: backend/fujitsu.c:4391 +#: backend/fujitsu.c:4395 #, fuzzy, no-c-format msgid "A3 paper" msgstr "Z papíru" -#: backend/fujitsu.c:4392 +#: backend/fujitsu.c:4396 #, no-c-format msgid "A3 paper detected" msgstr "" -#: backend/fujitsu.c:4403 +#: backend/fujitsu.c:4407 #, fuzzy, no-c-format msgid "B4 paper" msgstr "Z papíru" -#: backend/fujitsu.c:4404 +#: backend/fujitsu.c:4408 #, no-c-format msgid "B4 paper detected" msgstr "" -#: backend/fujitsu.c:4415 +#: backend/fujitsu.c:4419 #, fuzzy, no-c-format msgid "A4 paper" msgstr "Z papíru" -#: backend/fujitsu.c:4416 +#: backend/fujitsu.c:4420 #, no-c-format msgid "A4 paper detected" msgstr "" -#: backend/fujitsu.c:4427 +#: backend/fujitsu.c:4431 #, fuzzy, no-c-format msgid "B5 paper" msgstr "Z papíru" -#: backend/fujitsu.c:4428 +#: backend/fujitsu.c:4432 #, no-c-format msgid "B5 paper detected" msgstr "" -#: backend/fujitsu.c:4451 +#: backend/fujitsu.c:4455 #, no-c-format msgid "OMR or DF" msgstr "" -#: backend/fujitsu.c:4452 +#: backend/fujitsu.c:4456 #, no-c-format msgid "OMR or double feed detected" msgstr "" -#: backend/fujitsu.c:4475 +#: backend/fujitsu.c:4479 #, no-c-format msgid "Power saving" msgstr "" -#: backend/fujitsu.c:4476 +#: backend/fujitsu.c:4480 #, no-c-format msgid "Scanner in power saving mode" msgstr "" -#: backend/fujitsu.c:4499 +#: backend/fujitsu.c:4503 #, fuzzy, no-c-format msgid "Manual feed" msgstr "Manuální předběžné zaostření" -#: backend/fujitsu.c:4500 +#: backend/fujitsu.c:4504 #, fuzzy, no-c-format msgid "Manual feed selected" msgstr "Manuální předběžné zaostření" -#: backend/fujitsu.c:4523 +#: backend/fujitsu.c:4527 #, no-c-format msgid "Function" msgstr "" -#: backend/fujitsu.c:4524 +#: backend/fujitsu.c:4528 #, no-c-format msgid "Function character on screen" msgstr "" -#: backend/fujitsu.c:4535 +#: backend/fujitsu.c:4539 #, no-c-format msgid "Ink low" msgstr "" -#: backend/fujitsu.c:4536 +#: backend/fujitsu.c:4540 #, no-c-format msgid "Imprinter ink running low" msgstr "" -#: backend/fujitsu.c:4547 +#: backend/fujitsu.c:4551 #, no-c-format msgid "Double feed" msgstr "" -#: backend/fujitsu.c:4548 +#: backend/fujitsu.c:4552 #, no-c-format msgid "Double feed detected" msgstr "" -#: backend/fujitsu.c:4559 +#: backend/fujitsu.c:4563 #, no-c-format msgid "Error code" msgstr "" -#: backend/fujitsu.c:4560 +#: backend/fujitsu.c:4564 #, fuzzy, no-c-format msgid "Hardware error code" msgstr "Rozlišení" -#: backend/fujitsu.c:4571 +#: backend/fujitsu.c:4575 #, no-c-format msgid "Skew angle" msgstr "" -#: backend/fujitsu.c:4572 +#: backend/fujitsu.c:4576 #, no-c-format msgid "Requires black background for scanning" msgstr "" -#: backend/fujitsu.c:4583 +#: backend/fujitsu.c:4587 #, no-c-format msgid "Ink remaining" msgstr "" -#: backend/fujitsu.c:4584 +#: backend/fujitsu.c:4588 #, fuzzy, no-c-format msgid "Imprinter ink level" msgstr "Úroveň bílé" -#: backend/fujitsu.c:4595 +#: backend/fujitsu.c:4599 #, fuzzy, no-c-format msgid "Density" msgstr "Intenzita červené" -#: backend/fujitsu.c:4596 +#: backend/fujitsu.c:4600 #, no-c-format msgid "Density dial" msgstr "" -#: backend/fujitsu.c:4607 backend/fujitsu.c:4608 +#: backend/fujitsu.c:4611 backend/fujitsu.c:4612 #, fuzzy, no-c-format msgid "Duplex switch" msgstr "Oboustraně" -#: backend/genesys/genesys.cpp:4118 +#: backend/genesys/genesys.cpp:4160 #, no-c-format msgid "Request backend to remove border from pages digitally" msgstr "" -#: backend/genesys/genesys.cpp:4127 backend/kvs1025_opt.c:912 +#: backend/genesys/genesys.cpp:4169 backend/kvs1025_opt.c:912 #, no-c-format msgid "Request driver to discard pages with low numbers of dark pixels" msgstr "" -#: backend/genesys/genesys.cpp:4137 backend/kvs1025_opt.c:892 +#: backend/genesys/genesys.cpp:4179 backend/kvs1025_opt.c:892 #, no-c-format msgid "Software derotate" msgstr "" -#: backend/genesys/genesys.cpp:4138 backend/kvs1025_opt.c:894 +#: backend/genesys/genesys.cpp:4180 backend/kvs1025_opt.c:894 #, no-c-format msgid "Request driver to detect and correct 90 degree image rotation" msgstr "" -#: backend/genesys/genesys.cpp:4168 backend/pixma_sane_options.c:314 +#: backend/genesys/genesys.cpp:4210 backend/pixma/pixma_sane_options.c:314 #, fuzzy, no-c-format msgid "Extras" msgstr "Velmi rychlý" -#: backend/genesys/genesys.cpp:4188 backend/pixma_sane_options.c:336 +#: backend/genesys/genesys.cpp:4230 backend/pixma/pixma_sane_options.c:336 #, no-c-format msgid "Dynamic threshold curve, from light to dark, normally 50-65" msgstr "" -#: backend/genesys/genesys.cpp:4197 -#, no-c-format -msgid "Disable dynamic lineart" -msgstr "" - -#: backend/genesys/genesys.cpp:4199 -#, no-c-format -msgid "" -"Disable use of a software adaptive algorithm to generate lineart relying " -"instead on hardware lineart." -msgstr "" - -#: backend/genesys/genesys.cpp:4215 +#: backend/genesys/genesys.cpp:4240 #, fuzzy, no-c-format msgid "Disable interpolation" msgstr "Vyřadit zpětný chod" -#: backend/genesys/genesys.cpp:4218 +#: backend/genesys/genesys.cpp:4243 #, no-c-format msgid "" "When using high resolutions where the horizontal resolution is smaller " "than the vertical resolution this disables horizontal interpolation." msgstr "" -#: backend/genesys/genesys.cpp:4227 +#: backend/genesys/genesys.cpp:4252 #, fuzzy, no-c-format msgid "Color filter" msgstr "Barevná perokresba" -#: backend/genesys/genesys.cpp:4230 +#: backend/genesys/genesys.cpp:4255 #, no-c-format msgid "When using gray or lineart this option selects the used color." msgstr "" -#: backend/genesys/genesys.cpp:4254 +#: backend/genesys/genesys.cpp:4279 #, fuzzy, no-c-format msgid "Calibration file" msgstr "Kalibrace" -#: backend/genesys/genesys.cpp:4255 +#: backend/genesys/genesys.cpp:4280 #, fuzzy, no-c-format msgid "Specify the calibration file to use" msgstr "Definovat režim kalibrace" -#: backend/genesys/genesys.cpp:4272 +#: backend/genesys/genesys.cpp:4297 #, fuzzy, no-c-format msgid "Calibration cache expiration time" msgstr "Režim kalibrace" -#: backend/genesys/genesys.cpp:4273 +#: backend/genesys/genesys.cpp:4298 #, no-c-format msgid "" "Time (in minutes) before a cached calibration expires. A value of 0 " "means cache is not used. A negative value means cache never expires." msgstr "" -#: backend/genesys/genesys.cpp:4283 +#: backend/genesys/genesys.cpp:4308 #, fuzzy, no-c-format msgid "Lamp off time" msgstr "Vypnout lampu" -#: backend/genesys/genesys.cpp:4286 +#: backend/genesys/genesys.cpp:4311 #, no-c-format msgid "" "The lamp will be turned off after the given time (in minutes). A value " "of 0 means, that the lamp won't be turned off." msgstr "" -#: backend/genesys/genesys.cpp:4296 +#: backend/genesys/genesys.cpp:4321 #, fuzzy, no-c-format msgid "Lamp off during scan" msgstr "Hrubá kalibrace" -#: backend/genesys/genesys.cpp:4297 +#: backend/genesys/genesys.cpp:4322 #, no-c-format msgid "The lamp will be turned off during scan. " msgstr "" -#: backend/genesys/genesys.cpp:4324 backend/genesys/genesys.cpp:4325 +#: backend/genesys/genesys.cpp:4349 backend/genesys/genesys.cpp:4350 #, fuzzy, no-c-format msgid "File button" msgstr "Čekat na tlačítko" -#: backend/genesys/genesys.cpp:4369 backend/genesys/genesys.cpp:4370 +#: backend/genesys/genesys.cpp:4394 backend/genesys/genesys.cpp:4395 #, no-c-format msgid "OCR button" msgstr "" -#: backend/genesys/genesys.cpp:4381 backend/genesys/genesys.cpp:4382 +#: backend/genesys/genesys.cpp:4406 backend/genesys/genesys.cpp:4407 #, fuzzy, no-c-format msgid "Power button" msgstr "Čekat na tlačítko" -#: backend/genesys/genesys.cpp:4393 backend/genesys/genesys.cpp:4394 +#: backend/genesys/genesys.cpp:4418 backend/genesys/genesys.cpp:4419 #, fuzzy, no-c-format msgid "Extra button" msgstr "Čekat na tlačítko" -#: backend/genesys/genesys.cpp:4405 backend/gt68xx.c:755 +#: backend/genesys/genesys.cpp:4430 backend/gt68xx.c:755 #, fuzzy, no-c-format msgid "Needs calibration" msgstr "Hrubá kalibrace" -#: backend/genesys/genesys.cpp:4406 backend/gt68xx.c:756 +#: backend/genesys/genesys.cpp:4431 backend/gt68xx.c:756 backend/p5.c:1928 #, fuzzy, no-c-format msgid "The scanner needs calibration for the current settings" msgstr "Vynutit kalibraci skeneru před skenováním" -#: backend/genesys/genesys.cpp:4417 backend/gt68xx.c:780 -#: backend/gt68xx.c:781 backend/pixma_sane_options.c:226 -#: backend/plustek.c:1080 +#: backend/genesys/genesys.cpp:4442 backend/gt68xx.c:780 +#: backend/gt68xx.c:781 backend/p5.c:1937 backend/p5.c:1938 +#: backend/pixma/pixma_sane_options.c:226 backend/plustek.c:1080 #, fuzzy, no-c-format msgid "Buttons" msgstr "Stav tlačítek" -#: backend/genesys/genesys.cpp:4426 backend/gt68xx.c:787 -#: backend/hp5400_sane.c:392 backend/hp-option.h:97 backend/niash.c:726 -#: backend/plustek.c:941 +#: backend/genesys/genesys.cpp:4451 backend/gt68xx.c:787 +#: backend/hp-option.h:97 backend/hp5400_sane.c:392 backend/niash.c:726 +#: backend/p5.c:1945 backend/plustek.c:941 #, no-c-format msgid "Calibrate" msgstr "Kalibrovat" -#: backend/genesys/genesys.cpp:4428 backend/gt68xx.c:789 +#: backend/genesys/genesys.cpp:4453 backend/gt68xx.c:789 backend/p5.c:1947 #, fuzzy, no-c-format msgid "Start calibration using special sheet" msgstr "Hrubá kalibrace" -#: backend/genesys/genesys.cpp:4440 backend/gt68xx.c:802 +#: backend/genesys/genesys.cpp:4465 backend/gt68xx.c:802 backend/p5.c:1958 #, fuzzy, no-c-format msgid "Clear calibration" msgstr "Hrubá kalibrace" -#: backend/genesys/genesys.cpp:4441 backend/gt68xx.c:803 +#: backend/genesys/genesys.cpp:4466 backend/gt68xx.c:803 backend/p5.c:1960 #, fuzzy, no-c-format msgid "Clear calibration cache" msgstr "Režim kalibrace" -#: backend/genesys/genesys.cpp:4451 +#: backend/genesys/genesys.cpp:4476 #, fuzzy, no-c-format msgid "Force calibration" msgstr "Hrubá kalibrace" -#: backend/genesys/genesys.cpp:4452 +#: backend/genesys/genesys.cpp:4477 #, no-c-format msgid "Force calibration ignoring all and any calibration caches" msgstr "" -#: backend/genesys/genesys.cpp:4462 +#: backend/genesys/genesys.cpp:4487 #, fuzzy, no-c-format msgid "Ignore internal offsets" msgstr "Odstup zelené" -#: backend/genesys/genesys.cpp:4464 +#: backend/genesys/genesys.cpp:4489 #, no-c-format msgid "" "Acquires the image including the internal calibration areas of the " "scanner" msgstr "" -#: backend/gt68xx.c:149 backend/ma1509.c:108 backend/mustek.c:164 -#: backend/snapscan-options.c:87 backend/umax.c:182 +#: backend/genesys/genesys.h:79 backend/gt68xx.c:149 backend/ma1509.c:108 +#: backend/mustek.c:164 backend/snapscan-options.c:87 backend/umax.c:182 #, no-c-format msgid "Transparency Adapter" msgstr "Prosvětlovací adaptér" +#: backend/genesys/genesys.h:80 +#, fuzzy, no-c-format +msgid "Transparency Adapter Infrared" +msgstr "Prosvětlovací adaptér" + #: backend/gt68xx.c:470 #, no-c-format msgid "Gray mode color" @@ -3283,6 +3305,304 @@ msgstr "Hodnota gama" msgid "Sets the gamma value of all channels." msgstr "Nastavuje hodnotu gama pro všechny kanály." +#: backend/hp-option.c:2987 +#, fuzzy, no-c-format +msgid "Advanced Options" +msgstr "Zvláštní volby" + +#: backend/hp-option.c:3044 +#, no-c-format +msgid "Coarse" +msgstr "Hrubý" + +#: backend/hp-option.c:3045 +#, no-c-format +msgid "Fine" +msgstr "Jemný" + +#: backend/hp-option.c:3046 +#, no-c-format +msgid "Bayer" +msgstr "Bayer" + +#: backend/hp-option.c:3049 backend/hp-option.c:3100 +#, no-c-format +msgid "Custom" +msgstr "Volitelný" + +#: backend/hp-option.c:3090 backend/hp-option.c:3146 +#: backend/hp-option.c:3161 +#, no-c-format +msgid "Auto" +msgstr "Automaticky" + +#: backend/hp-option.c:3091 +#, no-c-format +msgid "NTSC RGB" +msgstr "" + +#: backend/hp-option.c:3092 +#, no-c-format +msgid "XPA RGB" +msgstr "" + +#: backend/hp-option.c:3093 +#, no-c-format +msgid "Pass-through" +msgstr "" + +#: backend/hp-option.c:3094 +#, no-c-format +msgid "NTSC Gray" +msgstr "NTSC šedá" + +#: backend/hp-option.c:3095 +#, no-c-format +msgid "XPA Gray" +msgstr "XPA šedá" + +#: backend/hp-option.c:3147 +#, no-c-format +msgid "Slow" +msgstr "Pomalý" + +#: backend/hp-option.c:3148 backend/hp-option.c:3255 +#: backend/kvs40xx_opt.c:230 backend/matsushita.c:244 backend/mustek.c:149 +#: backend/plustek.c:234 backend/plustek_pp.c:203 backend/u12.c:155 +#, no-c-format +msgid "Normal" +msgstr "Normální" + +#: backend/hp-option.c:3149 +#, no-c-format +msgid "Fast" +msgstr "Rychlý" + +#: backend/hp-option.c:3150 +#, no-c-format +msgid "Extra Fast" +msgstr "Velmi rychlý" + +#: backend/hp-option.c:3163 +#, no-c-format +msgid "2-pixel" +msgstr "" + +#: backend/hp-option.c:3164 +#, no-c-format +msgid "4-pixel" +msgstr "" + +#: backend/hp-option.c:3165 +#, no-c-format +msgid "8-pixel" +msgstr "" + +#: backend/hp-option.c:3176 +#, no-c-format +msgid "Print" +msgstr "" + +#: backend/hp-option.c:3177 backend/hp3900_sane.c:427 +#: backend/hp3900_sane.c:1019 +#, fuzzy, no-c-format +msgid "Slide" +msgstr "Zcela bílá" + +#: backend/hp-option.c:3178 +#, fuzzy, no-c-format +msgid "Film-strip" +msgstr "Typ filmu" + +#: backend/hp-option.c:3256 backend/hp5590.c:93 +#, no-c-format +msgid "ADF" +msgstr "" + +#: backend/hp-option.c:3257 +#, no-c-format +msgid "XPA" +msgstr "" + +#: backend/hp-option.c:3331 backend/hp-option.c:3344 +#, no-c-format +msgid "Conditional" +msgstr "" + +#: backend/hp-option.c:3417 +#, fuzzy, no-c-format +msgid "Experiment" +msgstr "Expoziční čas" + +#: backend/hp-option.h:60 +#, fuzzy, no-c-format +msgid "Sharpening" +msgstr "Zaostření" + +#: backend/hp-option.h:61 +#, no-c-format +msgid "Set sharpening value." +msgstr "" + +#: backend/hp-option.h:66 +#, no-c-format +msgid "Auto Threshold" +msgstr "Automatické nastavení prahových hodnot" + +#: backend/hp-option.h:68 +#, no-c-format +msgid "Enable automatic determination of threshold for line-art scans." +msgstr "" + +#: backend/hp-option.h:74 +#, fuzzy, no-c-format +msgid "Select smoothing filter." +msgstr "Zvolit polotóny" + +#: backend/hp-option.h:79 +#, no-c-format +msgid "Unload media after scan" +msgstr "" + +#: backend/hp-option.h:80 +#, fuzzy, no-c-format +msgid "Unloads the media after a scan." +msgstr "Načíst obrázek v úrovních šedé." + +#: backend/hp-option.h:85 +#, fuzzy, no-c-format +msgid "Change document" +msgstr "Vylepšení" + +#: backend/hp-option.h:86 +#, no-c-format +msgid "Change Document." +msgstr "" + +#: backend/hp-option.h:91 +#, no-c-format +msgid "Unload" +msgstr "" + +#: backend/hp-option.h:92 +#, no-c-format +msgid "Unload Document." +msgstr "" + +#: backend/hp-option.h:98 +#, fuzzy, no-c-format +msgid "Start calibration process." +msgstr "Hrubá kalibrace" + +#: backend/hp-option.h:103 +#, fuzzy, no-c-format +msgid "Media" +msgstr "Střední" + +#: backend/hp-option.h:104 +#, no-c-format +msgid "Set type of media." +msgstr "" + +#: backend/hp-option.h:109 +#, no-c-format +msgid "Exposure time" +msgstr "Expoziční čas" + +#: backend/hp-option.h:111 +#, no-c-format +msgid "" +"A longer exposure time lets the scanner collect more light. Suggested " +"use is 175% for prints, 150% for normal slides and \"Negative\" for " +"negative film. For dark (underexposed) images you can increase this " +"value." +msgstr "" + +#: backend/hp-option.h:119 backend/hp-option.h:126 +#, fuzzy, no-c-format +msgid "Color Matrix" +msgstr "Barevný vzorek" + +#: backend/hp-option.h:121 +#, fuzzy, no-c-format +msgid "Set the scanner's color matrix." +msgstr "Nastavuje kontrast červeného kanálu" + +#: backend/hp-option.h:127 +#, no-c-format +msgid "Custom color matrix." +msgstr "" + +#: backend/hp-option.h:132 +#, fuzzy, no-c-format +msgid "Mono Color Matrix" +msgstr "Barevný vzorek" + +#: backend/hp-option.h:133 +#, no-c-format +msgid "Custom color matrix for grayscale scans." +msgstr "" + +#: backend/hp-option.h:138 +#, fuzzy, no-c-format +msgid "Mirror horizontal" +msgstr "Zrcadlit obrázek" + +#: backend/hp-option.h:139 +#, fuzzy, no-c-format +msgid "Mirror image horizontally." +msgstr "Zrcadlit obrázek" + +#: backend/hp-option.h:144 +#, fuzzy, no-c-format +msgid "Mirror vertical" +msgstr "Zrcadlit obrázek" + +#: backend/hp-option.h:145 +#, fuzzy, no-c-format +msgid "Mirror image vertically." +msgstr "Zrcadlit obrázek" + +#: backend/hp-option.h:150 +#, fuzzy, no-c-format +msgid "Update options" +msgstr "Zvláštní volby" + +#: backend/hp-option.h:151 +#, fuzzy, no-c-format +msgid "Update options." +msgstr "Testovací volby s pevnou des. čárkou" + +#: backend/hp-option.h:156 +#, no-c-format +msgid "8 bit output" +msgstr "" + +#: backend/hp-option.h:158 +#, no-c-format +msgid "Use bit depth greater eight internally, but output only eight bits." +msgstr "" + +#: backend/hp-option.h:164 +#, no-c-format +msgid "Front button wait" +msgstr "" + +#: backend/hp-option.h:165 +#, no-c-format +msgid "Wait to scan for front-panel button push." +msgstr "" + +#: backend/hp-option.h:172 +#, no-c-format +msgid "Shut off lamp" +msgstr "Vypnout lampu" + +#: backend/hp-option.h:173 +#, no-c-format +msgid "Shut off scanner lamp." +msgstr "Vypnout lampu skeneru." + #: backend/hp3500.c:1020 #, fuzzy, no-c-format msgid "Geometry Group" @@ -3293,12 +3613,6 @@ msgstr "Geometrie" msgid "Scan Mode Group" msgstr "Režim skenování" -#: backend/hp3900_sane.c:427 backend/hp3900_sane.c:1019 -#: backend/hp-option.c:3177 -#, fuzzy, no-c-format -msgid "Slide" -msgstr "Zcela bílá" - #: backend/hp3900_sane.c:1405 #, fuzzy, no-c-format msgid "Scanner model" @@ -3492,11 +3806,6 @@ msgstr "Zapíná a vypíná lampu." msgid "Calibrates for black and white level." msgstr "Kalibruje úrovně černé a bílé." -#: backend/hp5590.c:93 backend/hp-option.c:3256 -#, no-c-format -msgid "ADF" -msgstr "" - #: backend/hp5590.c:95 #, fuzzy, no-c-format msgid "TMA Slides" @@ -3607,293 +3916,6 @@ msgid "" "r*65536+256*g+b or gray value (default=violet or gray)" msgstr "" -#: backend/hp-option.c:2987 -#, fuzzy, no-c-format -msgid "Advanced Options" -msgstr "Zvláštní volby" - -#: backend/hp-option.c:3044 -#, no-c-format -msgid "Coarse" -msgstr "Hrubý" - -#: backend/hp-option.c:3045 -#, no-c-format -msgid "Fine" -msgstr "Jemný" - -#: backend/hp-option.c:3046 -#, no-c-format -msgid "Bayer" -msgstr "Bayer" - -#: backend/hp-option.c:3049 backend/hp-option.c:3100 -#, no-c-format -msgid "Custom" -msgstr "Volitelný" - -#: backend/hp-option.c:3090 backend/hp-option.c:3146 -#: backend/hp-option.c:3161 -#, no-c-format -msgid "Auto" -msgstr "Automaticky" - -#: backend/hp-option.c:3091 -#, no-c-format -msgid "NTSC RGB" -msgstr "" - -#: backend/hp-option.c:3092 -#, no-c-format -msgid "XPA RGB" -msgstr "" - -#: backend/hp-option.c:3093 -#, no-c-format -msgid "Pass-through" -msgstr "" - -#: backend/hp-option.c:3094 -#, no-c-format -msgid "NTSC Gray" -msgstr "NTSC šedá" - -#: backend/hp-option.c:3095 -#, no-c-format -msgid "XPA Gray" -msgstr "XPA šedá" - -#: backend/hp-option.c:3147 -#, no-c-format -msgid "Slow" -msgstr "Pomalý" - -#: backend/hp-option.c:3148 backend/hp-option.c:3255 -#: backend/kvs40xx_opt.c:230 backend/matsushita.c:244 backend/mustek.c:149 -#: backend/plustek.c:234 backend/plustek_pp.c:203 backend/u12.c:155 -#, no-c-format -msgid "Normal" -msgstr "Normální" - -#: backend/hp-option.c:3149 -#, no-c-format -msgid "Fast" -msgstr "Rychlý" - -#: backend/hp-option.c:3150 -#, no-c-format -msgid "Extra Fast" -msgstr "Velmi rychlý" - -#: backend/hp-option.c:3163 -#, no-c-format -msgid "2-pixel" -msgstr "" - -#: backend/hp-option.c:3164 -#, no-c-format -msgid "4-pixel" -msgstr "" - -#: backend/hp-option.c:3165 -#, no-c-format -msgid "8-pixel" -msgstr "" - -#: backend/hp-option.c:3176 -#, no-c-format -msgid "Print" -msgstr "" - -#: backend/hp-option.c:3178 -#, fuzzy, no-c-format -msgid "Film-strip" -msgstr "Typ filmu" - -#: backend/hp-option.c:3257 -#, no-c-format -msgid "XPA" -msgstr "" - -#: backend/hp-option.c:3331 backend/hp-option.c:3344 -#, no-c-format -msgid "Conditional" -msgstr "" - -#: backend/hp-option.c:3417 -#, fuzzy, no-c-format -msgid "Experiment" -msgstr "Expoziční čas" - -#: backend/hp-option.h:60 -#, fuzzy, no-c-format -msgid "Sharpening" -msgstr "Zaostření" - -#: backend/hp-option.h:61 -#, no-c-format -msgid "Set sharpening value." -msgstr "" - -#: backend/hp-option.h:66 -#, no-c-format -msgid "Auto Threshold" -msgstr "Automatické nastavení prahových hodnot" - -#: backend/hp-option.h:68 -#, no-c-format -msgid "Enable automatic determination of threshold for line-art scans." -msgstr "" - -#: backend/hp-option.h:74 -#, fuzzy, no-c-format -msgid "Select smoothing filter." -msgstr "Zvolit polotóny" - -#: backend/hp-option.h:79 -#, no-c-format -msgid "Unload media after scan" -msgstr "" - -#: backend/hp-option.h:80 -#, fuzzy, no-c-format -msgid "Unloads the media after a scan." -msgstr "Načíst obrázek v úrovních šedé." - -#: backend/hp-option.h:85 -#, fuzzy, no-c-format -msgid "Change document" -msgstr "Vylepšení" - -#: backend/hp-option.h:86 -#, no-c-format -msgid "Change Document." -msgstr "" - -#: backend/hp-option.h:91 -#, no-c-format -msgid "Unload" -msgstr "" - -#: backend/hp-option.h:92 -#, no-c-format -msgid "Unload Document." -msgstr "" - -#: backend/hp-option.h:98 -#, fuzzy, no-c-format -msgid "Start calibration process." -msgstr "Hrubá kalibrace" - -#: backend/hp-option.h:103 -#, fuzzy, no-c-format -msgid "Media" -msgstr "Střední" - -#: backend/hp-option.h:104 -#, no-c-format -msgid "Set type of media." -msgstr "" - -#: backend/hp-option.h:109 -#, no-c-format -msgid "Exposure time" -msgstr "Expoziční čas" - -#: backend/hp-option.h:111 -#, no-c-format -msgid "" -"A longer exposure time lets the scanner collect more light. Suggested " -"use is 175% for prints, 150% for normal slides and \"Negative\" for " -"negative film. For dark (underexposed) images you can increase this " -"value." -msgstr "" - -#: backend/hp-option.h:119 backend/hp-option.h:126 -#, fuzzy, no-c-format -msgid "Color Matrix" -msgstr "Barevný vzorek" - -#: backend/hp-option.h:121 -#, fuzzy, no-c-format -msgid "Set the scanner's color matrix." -msgstr "Nastavuje kontrast červeného kanálu" - -#: backend/hp-option.h:127 -#, no-c-format -msgid "Custom color matrix." -msgstr "" - -#: backend/hp-option.h:132 -#, fuzzy, no-c-format -msgid "Mono Color Matrix" -msgstr "Barevný vzorek" - -#: backend/hp-option.h:133 -#, no-c-format -msgid "Custom color matrix for grayscale scans." -msgstr "" - -#: backend/hp-option.h:138 -#, fuzzy, no-c-format -msgid "Mirror horizontal" -msgstr "Zrcadlit obrázek" - -#: backend/hp-option.h:139 -#, fuzzy, no-c-format -msgid "Mirror image horizontally." -msgstr "Zrcadlit obrázek" - -#: backend/hp-option.h:144 -#, fuzzy, no-c-format -msgid "Mirror vertical" -msgstr "Zrcadlit obrázek" - -#: backend/hp-option.h:145 -#, fuzzy, no-c-format -msgid "Mirror image vertically." -msgstr "Zrcadlit obrázek" - -#: backend/hp-option.h:150 -#, fuzzy, no-c-format -msgid "Update options" -msgstr "Zvláštní volby" - -#: backend/hp-option.h:151 -#, fuzzy, no-c-format -msgid "Update options." -msgstr "Testovací volby s pevnou des. čárkou" - -#: backend/hp-option.h:156 -#, no-c-format -msgid "8 bit output" -msgstr "" - -#: backend/hp-option.h:158 -#, no-c-format -msgid "Use bit depth greater eight internally, but output only eight bits." -msgstr "" - -#: backend/hp-option.h:164 -#, no-c-format -msgid "Front button wait" -msgstr "" - -#: backend/hp-option.h:165 -#, no-c-format -msgid "Wait to scan for front-panel button push." -msgstr "" - -#: backend/hp-option.h:172 -#, no-c-format -msgid "Shut off lamp" -msgstr "Vypnout lampu" - -#: backend/hp-option.h:173 -#, no-c-format -msgid "Shut off scanner lamp." -msgstr "Vypnout lampu skeneru." - #: backend/kvs1025.h:51 backend/kvs20xx_opt.c:295 backend/kvs40xx_opt.c:516 #: backend/matsushita.h:219 #, no-c-format @@ -3992,7 +4014,7 @@ msgid "single" msgstr "" #: backend/kvs1025_opt.c:73 backend/kvs20xx.c:462 backend/kvs20xx_opt.c:56 -#: backend/kvs40xx.c:704 backend/kvs40xx.c:722 backend/kvs40xx_opt.c:102 +#: backend/kvs40xx.c:705 backend/kvs40xx.c:723 backend/kvs40xx_opt.c:102 #: backend/kvs40xx_opt.c:1087 #, no-c-format msgid "continuous" @@ -4291,7 +4313,7 @@ msgstr "Nastaví zvýraznění obrázku" #: backend/kvs1025_opt.c:807 backend/kvs1025_opt.c:808 #: backend/matsushita.c:1300 backend/matsushita.c:1301 -#: backend/pixma_sane_options.c:112 +#: backend/pixma/pixma_sane_options.c:112 #, no-c-format msgid "Gamma" msgstr "Gama" @@ -4581,52 +4603,52 @@ msgstr "8x8 Bayer" msgid "8x8 Vertical Line" msgstr "8x8 vertikála" -#: backend/lexmark.c:273 backend/umax_pp.c:711 +#: backend/lexmark.c:273 backend/umax_pp.c:705 #, no-c-format msgid "Gain" msgstr "Zisk" -#: backend/lexmark.c:274 backend/umax_pp.c:712 +#: backend/lexmark.c:274 backend/umax_pp.c:706 #, no-c-format msgid "Color channels gain settings" msgstr "Nastavení zisku barevných kanálů" -#: backend/lexmark.c:283 backend/umax_pp.c:719 +#: backend/lexmark.c:283 backend/umax_pp.c:713 #, no-c-format msgid "Gray gain" msgstr "Zisk šedé" -#: backend/lexmark.c:284 backend/umax_pp.c:720 +#: backend/lexmark.c:284 backend/umax_pp.c:714 #, no-c-format msgid "Sets gray channel gain" msgstr "Nastavuje zisk šedého kanálu" -#: backend/lexmark.c:297 backend/plustek.c:1001 backend/umax_pp.c:731 +#: backend/lexmark.c:297 backend/plustek.c:1001 backend/umax_pp.c:725 #, no-c-format msgid "Red gain" msgstr "Zisk červené" -#: backend/lexmark.c:298 backend/umax_pp.c:732 +#: backend/lexmark.c:298 backend/umax_pp.c:726 #, no-c-format msgid "Sets red channel gain" msgstr "Nastavuje zisk červeného kanálu" -#: backend/lexmark.c:311 backend/plustek.c:1017 backend/umax_pp.c:743 +#: backend/lexmark.c:311 backend/plustek.c:1017 backend/umax_pp.c:737 #, no-c-format msgid "Green gain" msgstr "Zisk zelené" -#: backend/lexmark.c:312 backend/umax_pp.c:744 +#: backend/lexmark.c:312 backend/umax_pp.c:738 #, no-c-format msgid "Sets green channel gain" msgstr "Nastavuje zisk zeleného kanálu" -#: backend/lexmark.c:325 backend/plustek.c:1033 backend/umax_pp.c:755 +#: backend/lexmark.c:325 backend/plustek.c:1033 backend/umax_pp.c:749 #, no-c-format msgid "Blue gain" msgstr "Zisk modré" -#: backend/lexmark.c:326 backend/umax_pp.c:756 +#: backend/lexmark.c:326 backend/umax_pp.c:750 #, no-c-format msgid "Sets blue channel gain" msgstr "Nastavuje zisk modrého kanálu" @@ -4712,7 +4734,7 @@ msgstr "Jedna strana" msgid "All pages" msgstr "Všechny strany" -#: backend/matsushita.c:1034 backend/plustek.c:1333 +#: backend/matsushita.c:1034 backend/p5_device.c:8 backend/plustek.c:1333 #, no-c-format msgid "sheetfed scanner" msgstr "skener s podavačem" @@ -5212,39 +5234,44 @@ msgstr "" "Zahřát lampu dokud její jas není konstantní namísto standardního 40ti " "sekundového zahřívání." -#: backend/pixma.c:397 +#: backend/p5.c:1926 +#, fuzzy, no-c-format +msgid "Need calibration" +msgstr "Hrubá kalibrace" + +#: backend/pixma/pixma.c:397 #, fuzzy, no-c-format msgid "Negative color" msgstr "Negativní film" -#: backend/pixma.c:402 +#: backend/pixma/pixma.c:402 #, fuzzy, no-c-format msgid "Negative gray" msgstr "Negativ" -#: backend/pixma.c:415 +#: backend/pixma/pixma.c:415 #, no-c-format msgid "48 bits color" msgstr "" -#: backend/pixma.c:420 +#: backend/pixma/pixma.c:420 #, no-c-format msgid "16 bits gray" msgstr "" -#: backend/pixma_sane_options.c:84 +#: backend/pixma/pixma_sane_options.c:84 #, no-c-format msgid "" "Selects the scan source (such as a document-feeder). Set source before " "mode and resolution. Resets mode and resolution to auto values." msgstr "" -#: backend/pixma_sane_options.c:98 +#: backend/pixma/pixma_sane_options.c:98 #, no-c-format msgid "Button-controlled scan" msgstr "" -#: backend/pixma_sane_options.c:99 +#: backend/pixma/pixma_sane_options.c:99 #, no-c-format msgid "" "When enabled, scan process will not start immediately. To proceed, press " @@ -5252,37 +5279,37 @@ msgid "" "cancel, press \"GRAY\" button." msgstr "" -#: backend/pixma_sane_options.c:232 +#: backend/pixma/pixma_sane_options.c:232 #, fuzzy, no-c-format msgid "Update button state" msgstr "Stav tlačítek" -#: backend/pixma_sane_options.c:244 +#: backend/pixma/pixma_sane_options.c:244 #, fuzzy, no-c-format msgid "Button 1" msgstr "Stav tlačítek" -#: backend/pixma_sane_options.c:258 +#: backend/pixma/pixma_sane_options.c:258 #, fuzzy, no-c-format msgid "Button 2" msgstr "Stav tlačítek" -#: backend/pixma_sane_options.c:272 +#: backend/pixma/pixma_sane_options.c:272 #, no-c-format msgid "Type of original to scan" msgstr "" -#: backend/pixma_sane_options.c:286 +#: backend/pixma/pixma_sane_options.c:286 #, no-c-format msgid "Target operation type" msgstr "" -#: backend/pixma_sane_options.c:348 +#: backend/pixma/pixma_sane_options.c:348 #, no-c-format msgid "ADF Waiting Time" msgstr "" -#: backend/pixma_sane_options.c:349 +#: backend/pixma/pixma_sane_options.c:349 #, no-c-format msgid "" "When set, the scanner waits upto the specified time in seconds for a new " @@ -5374,7 +5401,7 @@ msgstr "Analogová korekce gama pro červenou" msgid "Red gain value of the AFE" msgstr "" -#: backend/plustek.c:1009 backend/umax_pp.c:788 +#: backend/plustek.c:1009 backend/umax_pp.c:782 #, no-c-format msgid "Red offset" msgstr "Odstup červené" @@ -5649,7 +5676,7 @@ msgstr "" msgid "This option reflects the status of a scanner button." msgstr "" -#: backend/rts8891.c:2840 backend/umax.c:5795 backend/umax_pp.c:635 +#: backend/rts8891.c:2840 backend/umax.c:5795 backend/umax_pp.c:629 #, no-c-format msgid "Lamp on" msgstr "Zapnout lampu" @@ -5659,12 +5686,12 @@ msgstr "Zapnout lampu" msgid "Turn on scanner lamp" msgstr "Zapnout lampu skeneru" -#: backend/rts8891.c:2851 backend/umax1220u.c:248 backend/umax.c:5812 +#: backend/rts8891.c:2851 backend/umax.c:5812 backend/umax1220u.c:248 #, no-c-format msgid "Lamp off" msgstr "Vypnout lampu" -#: backend/rts8891.c:2852 backend/umax1220u.c:249 backend/umax.c:5813 +#: backend/rts8891.c:2852 backend/umax.c:5813 backend/umax1220u.c:249 #, no-c-format msgid "Turn off scanner lamp" msgstr "Vypnout lampu skeneru" @@ -6458,52 +6485,52 @@ msgstr "Režim kalibrace" msgid "Define calibration mode" msgstr "Definovat režim kalibrace" -#: backend/umax_pp.c:636 +#: backend/umax_pp.c:630 #, no-c-format msgid "Sets lamp on/off" msgstr "Zapíná/vypíná lampu" -#: backend/umax_pp.c:645 +#: backend/umax_pp.c:639 #, no-c-format msgid "UTA on" msgstr "UTA zapnuto" -#: backend/umax_pp.c:646 +#: backend/umax_pp.c:640 #, no-c-format msgid "Sets UTA on/off" msgstr "Zapíná/vypíná UTA" -#: backend/umax_pp.c:767 +#: backend/umax_pp.c:761 #, no-c-format msgid "Offset" msgstr "Odstup" -#: backend/umax_pp.c:769 +#: backend/umax_pp.c:763 #, no-c-format msgid "Color channels offset settings" msgstr "Nastavení odstupu barevných kanálů" -#: backend/umax_pp.c:776 +#: backend/umax_pp.c:770 #, no-c-format msgid "Gray offset" msgstr "Odstup šedé" -#: backend/umax_pp.c:777 +#: backend/umax_pp.c:771 #, no-c-format msgid "Sets gray channel offset" msgstr "Nastavuje odstup šedého kanálu" -#: backend/umax_pp.c:789 +#: backend/umax_pp.c:783 #, no-c-format msgid "Sets red channel offset" msgstr "Nastavuje odstup červeného kanálu" -#: backend/umax_pp.c:801 +#: backend/umax_pp.c:795 #, no-c-format msgid "Sets green channel offset" msgstr "Nastavuje odstup zeleného kanálu" -#: backend/umax_pp.c:813 +#: backend/umax_pp.c:807 #, no-c-format msgid "Sets blue channel offset" msgstr "Nastavuje odstup modrého kanálu" diff --git a/po/da.po b/po/da.po index 77979db2d..cf47519fb 100644 --- a/po/da.po +++ b/po/da.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: sane-backends 1.0.17\n" "Report-Msgid-Bugs-To: sane-devel@alioth-lists.debian.net\n" -"POT-Creation-Date: 2019-10-12 17:41+0300\n" +"POT-Creation-Date: 2020-01-12 07:09+0000\n" "PO-Revision-Date: 2007-12-17 22:59+0100\n" "Last-Translator: Mogens Jaeger \n" "Language-Team: Danish \n" @@ -31,23 +31,23 @@ msgid "Standard" msgstr "" #: include/sane/saneopts.h:157 backend/artec_eplus48u.c:2884 -#: backend/epson.c:3298 backend/epson2.c:1290 -#: backend/genesys/genesys.cpp:3976 backend/gt68xx.c:696 -#: backend/hp3500.c:1019 backend/hp-option.c:3300 backend/kvs1025_opt.c:639 +#: backend/epson.c:3298 backend/epson2.c:1290 backend/epsonds.c:677 +#: backend/genesys/genesys.cpp:4034 backend/gt68xx.c:696 +#: backend/hp-option.c:3300 backend/hp3500.c:1019 backend/kvs1025_opt.c:639 #: backend/kvs20xx_opt.c:285 backend/kvs40xx_opt.c:506 backend/leo.c:823 #: backend/lexmark.c:199 backend/ma1509.c:551 backend/matsushita.c:1135 #: backend/microtek2.h:599 backend/mustek.c:4373 backend/mustek_usb.c:301 -#: backend/mustek_usb2.c:465 backend/pixma_sane_options.c:160 +#: backend/mustek_usb2.c:465 backend/pixma/pixma_sane_options.c:160 #: backend/plustek.c:808 backend/plustek_pp.c:747 backend/sceptre.c:702 #: backend/snapscan-options.c:550 backend/teco1.c:1095 backend/teco2.c:1910 #: backend/teco3.c:920 backend/test.c:647 backend/u12.c:546 -#: backend/umax.c:5176 backend/umax_pp.c:576 +#: backend/umax.c:5176 backend/umax_pp.c:570 #, no-c-format msgid "Geometry" msgstr "Skanområde" #: include/sane/saneopts.h:158 backend/artec_eplus48u.c:2805 -#: backend/canon.c:1493 backend/genesys/genesys.cpp:4035 +#: backend/canon.c:1493 backend/genesys/genesys.cpp:4077 #: backend/gt68xx.c:665 backend/hp-option.c:2956 backend/kvs1025_opt.c:703 #: backend/leo.c:871 backend/ma1509.c:599 backend/matsushita.c:1189 #: backend/microtek2.h:600 backend/mustek.c:4421 backend/mustek_usb.c:349 @@ -55,7 +55,7 @@ msgstr "Skanområde" #: backend/plustek_pp.c:793 backend/sceptre.c:750 #: backend/snapscan-options.c:617 backend/stv680.c:1067 #: backend/teco1.c:1143 backend/teco2.c:1958 backend/teco3.c:968 -#: backend/u12.c:592 backend/umax.c:5226 backend/umax_pp.c:625 +#: backend/u12.c:592 backend/umax.c:5226 backend/umax_pp.c:619 #, no-c-format msgid "Enhancement" msgstr "Forbedring" @@ -89,7 +89,7 @@ msgid "Bit depth" msgstr "Bit dybde" #: include/sane/saneopts.h:165 backend/canon.c:1140 backend/leo.c:781 -#: backend/pixma_sane_options.c:47 +#: backend/pixma/pixma_sane_options.c:47 #, no-c-format msgid "Scan mode" msgstr "Skannertilstand" @@ -130,7 +130,7 @@ msgid "Bottom-right y" msgstr "Nederst-højre y" #: include/sane/saneopts.h:173 backend/canon.c:1216 -#: backend/pixma_sane_options.c:300 +#: backend/pixma/pixma_sane_options.c:300 #, no-c-format msgid "Scan resolution" msgstr "Skanningsopløsning" @@ -285,7 +285,7 @@ msgstr "Filnavn" msgid "Halftone pattern size" msgstr "Halvtonemønster størrelse" -#: include/sane/saneopts.h:204 backend/fujitsu.c:3233 +#: include/sane/saneopts.h:204 backend/fujitsu.c:3237 #, no-c-format msgid "Halftone pattern" msgstr "Halvtonemønster" @@ -295,10 +295,10 @@ msgstr "Halvtonemønster" msgid "Bind X and Y resolution" msgstr "Sammenbind X- og Y-opløsning" -#: include/sane/saneopts.h:206 backend/hp3900_sane.c:428 -#: backend/hp3900_sane.c:1021 backend/hp3900_sane.c:1421 -#: backend/hp-option.c:3238 backend/mustek_usb2.c:121 backend/plustek.c:236 -#: backend/plustek_pp.c:205 backend/u12.c:157 +#: include/sane/saneopts.h:206 backend/hp-option.c:3238 +#: backend/hp3900_sane.c:428 backend/hp3900_sane.c:1021 +#: backend/hp3900_sane.c:1421 backend/mustek_usb2.c:121 +#: backend/plustek.c:236 backend/plustek_pp.c:205 backend/u12.c:157 #, no-c-format msgid "Negative" msgstr "Negativ" @@ -1029,78 +1029,38 @@ msgid "" "Duplex scan provides a scan of the front and back side of the document" msgstr "Duplex skan, skanner begge sider af dokumentet" -#: backend/canon630u.c:159 +#: backend/canon-sane.c:674 backend/canon.c:171 #, no-c-format -msgid "Calibrate Scanner" -msgstr "Kalibrér skanner" - -#: backend/canon630u.c:160 -#, no-c-format -msgid "Force scanner calibration before scan" -msgstr "Gennemtving kalibrering før skanning" - -#: backend/canon630u.c:259 backend/umax1220u.c:208 -#, no-c-format -msgid "Grayscale scan" -msgstr "Gråskalaskanning" - -#: backend/canon630u.c:260 backend/umax1220u.c:209 -#, no-c-format -msgid "Do a grayscale rather than color scan" -msgstr "Udfør en gråskalaskanning fremfor en farveskanning" - -#: backend/canon630u.c:306 -#, no-c-format -msgid "Analog Gain" -msgstr "Analog forstærkning" - -#: backend/canon630u.c:307 -#, no-c-format -msgid "Increase or decrease the analog gain of the CCD array" -msgstr "Forøg eller formindsk CCD sensorens analoge forstærkning" - -#: backend/canon630u.c:347 backend/epson.h:68 backend/epson2.h:67 -#, no-c-format -msgid "Gamma Correction" -msgstr "Gammakorrektion" - -#: backend/canon630u.c:348 -#, no-c-format -msgid "Selects the gamma corrected transfer curve" -msgstr "Vælger gammakorrigeret overføringskurve" - -#: backend/canon.c:149 backend/canon-sane.c:1318 -#, no-c-format -msgid "Raw" +msgid "Correction according to transparency ratio" msgstr "" -#: backend/canon.c:157 backend/canon-sane.c:732 backend/canon-sane.c:940 +#: backend/canon-sane.c:680 backend/canon.c:170 +#, no-c-format +msgid "Correction according to film type" +msgstr "" + +#: backend/canon-sane.c:732 backend/canon-sane.c:940 #: backend/canon-sane.c:1076 backend/canon-sane.c:1314 -#: backend/canon-sane.c:1494 backend/canon-sane.c:1643 +#: backend/canon-sane.c:1494 backend/canon-sane.c:1643 backend/canon.c:157 #, no-c-format msgid "Fine color" msgstr "" +#: backend/canon-sane.c:776 backend/canon.c:176 +#, fuzzy, no-c-format +msgid "Negatives" +msgstr "Negativ" + +#: backend/canon-sane.c:1318 backend/canon.c:149 +#, no-c-format +msgid "Raw" +msgstr "" + #: backend/canon.c:169 #, fuzzy, no-c-format msgid "No transparency correction" msgstr "Farvekorrektion" -#: backend/canon.c:170 backend/canon-sane.c:680 -#, no-c-format -msgid "Correction according to film type" -msgstr "" - -#: backend/canon.c:171 backend/canon-sane.c:674 -#, no-c-format -msgid "Correction according to transparency ratio" -msgstr "" - -#: backend/canon.c:176 backend/canon-sane.c:776 -#, fuzzy, no-c-format -msgid "Negatives" -msgstr "Negativ" - #: backend/canon.c:176 #, fuzzy, no-c-format msgid "Slides" @@ -1523,94 +1483,137 @@ msgstr "Filmtype" msgid "Select the film type" msgstr "Vælger halvtone." -#: backend/canon_dr.c:411 backend/epjitsu.c:233 backend/epson.c:501 -#: backend/epson2.c:115 backend/fujitsu.c:675 backend/gt68xx.c:148 +#: backend/canon630u.c:159 +#, no-c-format +msgid "Calibrate Scanner" +msgstr "Kalibrér skanner" + +#: backend/canon630u.c:160 +#, no-c-format +msgid "Force scanner calibration before scan" +msgstr "Gennemtving kalibrering før skanning" + +#: backend/canon630u.c:259 backend/umax1220u.c:208 +#, no-c-format +msgid "Grayscale scan" +msgstr "Gråskalaskanning" + +#: backend/canon630u.c:260 backend/umax1220u.c:209 +#, no-c-format +msgid "Do a grayscale rather than color scan" +msgstr "Udfør en gråskalaskanning fremfor en farveskanning" + +#: backend/canon630u.c:306 +#, no-c-format +msgid "Analog Gain" +msgstr "Analog forstærkning" + +#: backend/canon630u.c:307 +#, no-c-format +msgid "Increase or decrease the analog gain of the CCD array" +msgstr "Forøg eller formindsk CCD sensorens analoge forstærkning" + +#: backend/canon630u.c:347 backend/epson.h:68 backend/epson2.h:67 +#, no-c-format +msgid "Gamma Correction" +msgstr "Gammakorrektion" + +#: backend/canon630u.c:348 +#, no-c-format +msgid "Selects the gamma corrected transfer curve" +msgstr "Vælger gammakorrigeret overføringskurve" + +#: backend/canon_dr.c:413 backend/epjitsu.c:233 backend/epson.c:501 +#: backend/epson2-ops.c:101 backend/epson2.c:115 backend/epsonds-ops.c:32 +#: backend/epsonds.c:95 backend/epsonds.h:62 backend/fujitsu.c:677 +#: backend/genesys/genesys.h:78 backend/gt68xx.c:148 #: backend/hp3900_sane.c:418 backend/hp3900_sane.c:427 -#: backend/hp3900_sane.c:1017 backend/hp5590.c:92 backend/ma1509.c:108 -#: backend/magicolor.c:181 backend/mustek.c:156 backend/mustek.c:160 -#: backend/mustek.c:164 backend/pixma.c:920 backend/pixma_sane_options.c:92 -#: backend/snapscan-options.c:86 backend/test.c:192 backend/umax.c:181 +#: backend/hp3900_sane.c:1017 backend/hp5590.c:92 backend/kodakaio.c:617 +#: backend/ma1509.c:108 backend/magicolor.c:181 backend/mustek.c:156 +#: backend/mustek.c:160 backend/mustek.c:164 backend/pixma/pixma.c:920 +#: backend/pixma/pixma_sane_options.c:92 backend/snapscan-options.c:86 +#: backend/test.c:192 backend/umax.c:181 #, no-c-format msgid "Flatbed" msgstr "Flatbed" -#: backend/canon_dr.c:412 backend/epjitsu.c:234 backend/fujitsu.c:676 +#: backend/canon_dr.c:414 backend/epjitsu.c:234 backend/fujitsu.c:678 #: backend/kodak.c:140 #, no-c-format msgid "ADF Front" msgstr "" -#: backend/canon_dr.c:413 backend/epjitsu.c:235 backend/fujitsu.c:677 +#: backend/canon_dr.c:415 backend/epjitsu.c:235 backend/fujitsu.c:679 #: backend/kodak.c:141 #, fuzzy, no-c-format msgid "ADF Back" msgstr "ADF" -#: backend/canon_dr.c:414 backend/epjitsu.c:236 backend/fujitsu.c:678 -#: backend/hp5590.c:94 backend/kodak.c:142 backend/pixma.c:931 +#: backend/canon_dr.c:416 backend/epjitsu.c:236 backend/fujitsu.c:680 +#: backend/hp5590.c:94 backend/kodak.c:142 backend/pixma/pixma.c:931 #, fuzzy, no-c-format msgid "ADF Duplex" msgstr "Dobbeltsidet" -#: backend/canon_dr.c:415 +#: backend/canon_dr.c:417 #, fuzzy, no-c-format msgid "Card Front" msgstr "Print" -#: backend/canon_dr.c:416 +#: backend/canon_dr.c:418 #, no-c-format msgid "Card Back" msgstr "" -#: backend/canon_dr.c:417 +#: backend/canon_dr.c:419 #, fuzzy, no-c-format msgid "Card Duplex" msgstr "Dobbeltsidet" -#: backend/canon_dr.c:424 backend/epson.c:599 backend/epson.c:3096 -#: backend/epson2.c:201 backend/fujitsu.c:695 -#: backend/genesys/genesys.cpp:99 backend/genesys/genesys.cpp:106 +#: backend/canon_dr.c:426 backend/epson.c:599 backend/epson.c:3096 +#: backend/epson2.c:201 backend/fujitsu.c:697 +#: backend/genesys/genesys.cpp:120 backend/genesys/genesys.cpp:127 #: backend/gt68xx_low.h:136 backend/hp-option.c:3096 #, no-c-format msgid "Red" msgstr "Rød" -#: backend/canon_dr.c:425 backend/epson.c:600 backend/epson.c:3092 -#: backend/epson2.c:202 backend/fujitsu.c:696 -#: backend/genesys/genesys.cpp:100 backend/genesys/genesys.cpp:107 +#: backend/canon_dr.c:427 backend/epson.c:600 backend/epson.c:3092 +#: backend/epson2.c:202 backend/fujitsu.c:698 +#: backend/genesys/genesys.cpp:121 backend/genesys/genesys.cpp:128 #: backend/gt68xx_low.h:137 backend/hp-option.c:3097 #, no-c-format msgid "Green" msgstr "Grøn" -#: backend/canon_dr.c:426 backend/epson.c:601 backend/epson.c:3100 -#: backend/epson2.c:203 backend/fujitsu.c:697 -#: backend/genesys/genesys.cpp:101 backend/genesys/genesys.cpp:108 +#: backend/canon_dr.c:428 backend/epson.c:601 backend/epson.c:3100 +#: backend/epson2.c:203 backend/fujitsu.c:699 +#: backend/genesys/genesys.cpp:122 backend/genesys/genesys.cpp:129 #: backend/gt68xx_low.h:138 backend/hp-option.c:3098 #, no-c-format msgid "Blue" msgstr "Blå" -#: backend/canon_dr.c:427 +#: backend/canon_dr.c:429 #, fuzzy, no-c-format msgid "Enhance Red" msgstr "Forbedring" -#: backend/canon_dr.c:428 +#: backend/canon_dr.c:430 #, fuzzy, no-c-format msgid "Enhance Green" msgstr "Forbedring" -#: backend/canon_dr.c:429 +#: backend/canon_dr.c:431 #, fuzzy, no-c-format msgid "Enhance Blue" msgstr "Forbedring" -#: backend/canon_dr.c:431 backend/epson.c:556 backend/epson.c:564 +#: backend/canon_dr.c:433 backend/epson.c:556 backend/epson.c:564 #: backend/epson.c:576 backend/epson.c:598 backend/epson2.c:165 #: backend/epson2.c:173 backend/epson2.c:185 backend/epson2.c:200 -#: backend/epson2.c:214 backend/fujitsu.c:701 -#: backend/genesys/genesys.cpp:109 backend/leo.c:109 +#: backend/epson2.c:214 backend/fujitsu.c:703 +#: backend/genesys/genesys.cpp:130 backend/leo.c:109 #: backend/matsushita.c:138 backend/matsushita.c:159 #: backend/matsushita.c:191 backend/matsushita.c:213 #: backend/snapscan-options.c:91 @@ -1618,42 +1621,46 @@ msgstr "Forbedring" msgid "None" msgstr "Ingen" -#: backend/canon_dr.c:432 backend/fujitsu.c:702 +#: backend/canon_dr.c:434 backend/fujitsu.c:704 #, no-c-format msgid "JPEG" msgstr "" -#: backend/canon_dr.c:2477 backend/fujitsu.c:4113 -#: backend/genesys/genesys.cpp:4126 backend/kvs1025_opt.c:910 +#: backend/canon_dr.c:2479 backend/fujitsu.c:4117 +#: backend/genesys/genesys.cpp:4168 backend/kvs1025_opt.c:910 #, no-c-format msgid "Software blank skip percentage" msgstr "" -#: backend/canon_dr.c:2478 backend/fujitsu.c:4114 +#: backend/canon_dr.c:2480 backend/fujitsu.c:4118 #, no-c-format msgid "Request driver to discard pages with low percentage of dark pixels" msgstr "" -#: backend/epson.c:491 backend/epson2.c:108 backend/magicolor.c:174 +#: backend/epson.c:491 backend/epson2.c:108 backend/epsonds.c:88 +#: backend/kodakaio.c:611 backend/magicolor.c:174 #, no-c-format msgid "Simplex" msgstr "Enkeltsidet" -#: backend/epson.c:492 backend/epson2.c:109 backend/kvs1025.h:50 -#: backend/kvs20xx_opt.c:204 backend/kvs40xx_opt.c:353 -#: backend/magicolor.c:175 backend/matsushita.h:218 +#: backend/epson.c:492 backend/epson2.c:109 backend/epsonds.c:89 +#: backend/kodakaio.c:612 backend/kvs1025.h:50 backend/kvs20xx_opt.c:204 +#: backend/kvs40xx_opt.c:353 backend/magicolor.c:175 +#: backend/matsushita.h:218 #, no-c-format msgid "Duplex" msgstr "Dobbeltsidet" -#: backend/epson.c:502 backend/epson2.c:116 backend/pixma.c:937 +#: backend/epson.c:502 backend/epson2-ops.c:102 backend/epson2.c:116 +#: backend/epsonds-ops.c:33 backend/epsonds.h:63 backend/pixma/pixma.c:937 #, no-c-format msgid "Transparency Unit" msgstr "Filmenhed" -#: backend/epson.c:503 backend/epson2.c:118 backend/magicolor.c:182 -#: backend/mustek.c:160 backend/pixma.c:925 backend/test.c:192 -#: backend/umax.c:183 +#: backend/epson.c:503 backend/epson2-ops.c:104 backend/epson2.c:118 +#: backend/epsonds-ops.c:34 backend/epsonds.c:96 backend/epsonds.h:64 +#: backend/kodakaio.c:618 backend/magicolor.c:182 backend/mustek.c:160 +#: backend/pixma/pixma.c:925 backend/test.c:192 backend/umax.c:183 #, no-c-format msgid "Automatic Document Feeder" msgstr "Automatisk dokumentføder" @@ -1765,7 +1772,7 @@ msgstr "Blæk printere" msgid "CRT monitors" msgstr "CRT skærme" -#: backend/epson.c:656 backend/epson2.c:254 backend/fujitsu.c:685 +#: backend/epson.c:656 backend/epson2.c:254 backend/fujitsu.c:687 #: backend/hp-option.c:3229 backend/test.c:143 #, no-c-format msgid "Default" @@ -1829,8 +1836,8 @@ msgstr "A4" msgid "Max" msgstr "Maks" -#: backend/epson.c:2813 backend/epson2.c:976 -#: backend/genesys/genesys.cpp:3893 backend/gt68xx.c:451 +#: backend/epson.c:2813 backend/epson2.c:976 backend/epsonds.c:629 +#: backend/genesys/genesys.cpp:3965 backend/gt68xx.c:451 #: backend/hp-option.c:2917 backend/kvs1025_opt.c:521 #: backend/kvs20xx_opt.c:171 backend/kvs40xx_opt.c:320 backend/ma1509.c:501 #: backend/matsushita.c:1084 backend/microtek2.h:598 backend/mustek.c:4215 @@ -2003,17 +2010,17 @@ msgstr "Angiver zoomfaktoren som skanneren skal bruge" msgid "Quick format" msgstr "Hurtig format" -#: backend/epson.c:3360 backend/epson2.c:1340 +#: backend/epson.c:3360 backend/epson2.c:1340 backend/epsonds.c:726 #, no-c-format msgid "Optional equipment" msgstr "Tilvalgsudstyr" -#: backend/epson.c:3431 backend/epson2.c:1393 +#: backend/epson.c:3431 backend/epson2.c:1393 backend/epsonds.c:742 #, no-c-format msgid "Eject" msgstr "Skub ud" -#: backend/epson.c:3432 backend/epson2.c:1394 +#: backend/epson.c:3432 backend/epson2.c:1394 backend/epsonds.c:743 #, no-c-format msgid "Eject the sheet in the ADF" msgstr "Skub arket i den automatiske arkføder ud" @@ -2028,12 +2035,14 @@ msgstr "Automatisk skub ud" msgid "Eject document after scanning" msgstr "Skub dokumentet ud efter skanning" -#: backend/epson.c:3457 backend/epson2.c:1416 backend/magicolor.c:2420 +#: backend/epson.c:3457 backend/epson2.c:1416 backend/epsonds.c:758 +#: backend/kodakaio.c:2855 backend/magicolor.c:2420 #, no-c-format msgid "ADF Mode" msgstr "ADF-tilstand" -#: backend/epson.c:3459 backend/epson2.c:1418 backend/magicolor.c:2422 +#: backend/epson.c:3459 backend/epson2.c:1418 backend/epsonds.c:760 +#: backend/kodakaio.c:2857 backend/magicolor.c:2422 #, no-c-format msgid "Selects the ADF mode (simplex/duplex)" msgstr "Vælger ADF tilstand (enkeltsidet/dobbeltsidet)" @@ -2083,16 +2092,16 @@ msgstr "" "Når skankommando er sendt, starter skanningen først når der er trykket " "på knappen på skanneren." -#: backend/epson2.c:102 backend/pixma.c:409 -#, no-c-format -msgid "Infrared" -msgstr "" - -#: backend/epson2.c:117 +#: backend/epson2-ops.c:103 backend/epson2.c:117 #, no-c-format msgid "TPU8x10" msgstr "" +#: backend/epson2.c:102 backend/pixma/pixma.c:409 +#, no-c-format +msgid "Infrared" +msgstr "" + #: backend/epson2.c:136 #, fuzzy, no-c-format msgid "Positive Slide" @@ -2113,494 +2122,514 @@ msgstr "" msgid "User defined CCT profile" msgstr "Brugerdefineret" -#: backend/fujitsu.c:686 backend/hp-option.c:3330 backend/hp-option.c:3343 +#: backend/epsonds.c:750 +#, no-c-format +msgid "Load" +msgstr "" + +#: backend/epsonds.c:751 +#, fuzzy, no-c-format +msgid "Load a sheet in the ADF" +msgstr "Skub arket i den automatiske arkføder ud" + +#: backend/epsonds.c:771 +#, fuzzy, no-c-format +msgid "ADF Skew Correction" +msgstr "Ingen korrektion" + +#: backend/epsonds.c:773 +#, fuzzy, no-c-format +msgid "Enables ADF skew correction" +msgstr "Analog gammakorrektion" + +#: backend/fujitsu.c:688 backend/hp-option.c:3330 backend/hp-option.c:3343 #, no-c-format msgid "On" msgstr "Tændt" -#: backend/fujitsu.c:687 backend/hp-option.c:3162 backend/hp-option.c:3329 +#: backend/fujitsu.c:689 backend/hp-option.c:3162 backend/hp-option.c:3329 #: backend/hp-option.c:3342 #, no-c-format msgid "Off" msgstr "Slukket" -#: backend/fujitsu.c:689 +#: backend/fujitsu.c:691 #, no-c-format msgid "DTC" msgstr "" -#: backend/fujitsu.c:690 +#: backend/fujitsu.c:692 #, no-c-format msgid "SDTC" msgstr "" -#: backend/fujitsu.c:692 backend/teco1.c:1152 backend/teco1.c:1153 +#: backend/fujitsu.c:694 backend/teco1.c:1152 backend/teco1.c:1153 #: backend/teco2.c:1967 backend/teco2.c:1968 backend/teco3.c:977 #: backend/teco3.c:978 #, no-c-format msgid "Dither" msgstr "Dither" -#: backend/fujitsu.c:693 +#: backend/fujitsu.c:695 #, fuzzy, no-c-format msgid "Diffusion" msgstr "Fejlspredning" -#: backend/fujitsu.c:698 +#: backend/fujitsu.c:700 #, fuzzy, no-c-format msgid "White" msgstr "Hvid niveau" -#: backend/fujitsu.c:699 +#: backend/fujitsu.c:701 #, fuzzy, no-c-format msgid "Black" msgstr "Sort niveau" -#: backend/fujitsu.c:704 +#: backend/fujitsu.c:706 #, fuzzy, no-c-format msgid "Continue" msgstr "Betinget" -#: backend/fujitsu.c:705 +#: backend/fujitsu.c:707 #, no-c-format msgid "Stop" msgstr "" -#: backend/fujitsu.c:707 +#: backend/fujitsu.c:709 #, no-c-format msgid "10mm" msgstr "" -#: backend/fujitsu.c:708 +#: backend/fujitsu.c:710 #, no-c-format msgid "15mm" msgstr "" -#: backend/fujitsu.c:709 +#: backend/fujitsu.c:711 #, no-c-format msgid "20mm" msgstr "" -#: backend/fujitsu.c:711 backend/hp-option.c:3048 +#: backend/fujitsu.c:713 backend/hp-option.c:3048 #, no-c-format msgid "Horizontal" msgstr "Vandret" -#: backend/fujitsu.c:712 +#: backend/fujitsu.c:714 #, fuzzy, no-c-format msgid "Horizontal bold" msgstr "Vandret" -#: backend/fujitsu.c:713 +#: backend/fujitsu.c:715 #, fuzzy, no-c-format msgid "Horizontal narrow" msgstr "Vandret" -#: backend/fujitsu.c:714 backend/hp-option.c:3047 +#: backend/fujitsu.c:716 backend/hp-option.c:3047 #, no-c-format msgid "Vertical" msgstr "Lodret" -#: backend/fujitsu.c:715 +#: backend/fujitsu.c:717 #, fuzzy, no-c-format msgid "Vertical bold" msgstr "Lodret" -#: backend/fujitsu.c:717 +#: backend/fujitsu.c:719 #, no-c-format msgid "Top to bottom" msgstr "" -#: backend/fujitsu.c:718 +#: backend/fujitsu.c:720 #, no-c-format msgid "Bottom to top" msgstr "" -#: backend/fujitsu.c:720 +#: backend/fujitsu.c:722 #, fuzzy, no-c-format msgid "Front" msgstr "Print" -#: backend/fujitsu.c:721 +#: backend/fujitsu.c:723 #, no-c-format msgid "Back" msgstr "" -#: backend/fujitsu.c:3144 backend/pixma_sane_options.c:145 +#: backend/fujitsu.c:3148 backend/pixma/pixma_sane_options.c:145 #, no-c-format msgid "Gamma function exponent" msgstr "" -#: backend/fujitsu.c:3145 backend/pixma_sane_options.c:146 +#: backend/fujitsu.c:3149 backend/pixma/pixma_sane_options.c:146 #, no-c-format msgid "Changes intensity of midtones" msgstr "" -#: backend/fujitsu.c:3194 +#: backend/fujitsu.c:3198 #, no-c-format msgid "RIF" msgstr "" -#: backend/fujitsu.c:3195 +#: backend/fujitsu.c:3199 #, no-c-format msgid "Reverse image format" msgstr "" -#: backend/fujitsu.c:3212 +#: backend/fujitsu.c:3216 #, fuzzy, no-c-format msgid "Halftone type" msgstr "Halvtone" -#: backend/fujitsu.c:3213 +#: backend/fujitsu.c:3217 #, no-c-format msgid "Control type of halftone filter" msgstr "" -#: backend/fujitsu.c:3234 +#: backend/fujitsu.c:3238 #, no-c-format msgid "Control pattern of halftone filter" msgstr "" -#: backend/fujitsu.c:3256 +#: backend/fujitsu.c:3260 #, no-c-format msgid "Outline" msgstr "" -#: backend/fujitsu.c:3257 +#: backend/fujitsu.c:3261 #, fuzzy, no-c-format msgid "Perform outline extraction" msgstr "Grovkalibrering" -#: backend/fujitsu.c:3268 +#: backend/fujitsu.c:3272 #, fuzzy, no-c-format msgid "Emphasis" msgstr "Billedbetoning" -#: backend/fujitsu.c:3269 +#: backend/fujitsu.c:3273 #, no-c-format msgid "Negative to smooth or positive to sharpen image" msgstr "" -#: backend/fujitsu.c:3287 +#: backend/fujitsu.c:3291 #, fuzzy, no-c-format msgid "Separation" msgstr "Mætning" -#: backend/fujitsu.c:3288 +#: backend/fujitsu.c:3292 #, fuzzy, no-c-format msgid "Enable automatic separation of image and text" msgstr "" "Aktiver automatisk fastsættelse af tærskelværdi for " "stregtegningsskanninger." -#: backend/fujitsu.c:3299 +#: backend/fujitsu.c:3303 #, fuzzy, no-c-format msgid "Mirroring" msgstr "Spejl billedet" -#: backend/fujitsu.c:3300 +#: backend/fujitsu.c:3304 #, fuzzy, no-c-format msgid "Reflect output image horizontally" msgstr "Spejlvend billedet vandret." -#: backend/fujitsu.c:3317 +#: backend/fujitsu.c:3321 #, fuzzy, no-c-format msgid "White level follower" msgstr "Hvid niveau for blå" -#: backend/fujitsu.c:3318 +#: backend/fujitsu.c:3322 #, fuzzy, no-c-format msgid "Control white level follower" msgstr "Fastsætter rødt niveau" -#: backend/fujitsu.c:3336 +#: backend/fujitsu.c:3340 #, fuzzy, no-c-format msgid "BP filter" msgstr "Farve stregtegning" -#: backend/fujitsu.c:3337 +#: backend/fujitsu.c:3341 #, no-c-format msgid "Improves quality of high resolution ball-point pen text" msgstr "" -#: backend/fujitsu.c:3353 backend/hp-option.h:73 +#: backend/fujitsu.c:3357 backend/hp-option.h:73 #, no-c-format msgid "Smoothing" msgstr "Udglatning" -#: backend/fujitsu.c:3354 +#: backend/fujitsu.c:3358 #, no-c-format msgid "Enable smoothing for improved OCR" msgstr "" -#: backend/fujitsu.c:3370 +#: backend/fujitsu.c:3374 #, fuzzy, no-c-format msgid "Gamma curve" msgstr "Gamma værdi" -#: backend/fujitsu.c:3371 +#: backend/fujitsu.c:3375 #, no-c-format msgid "Gamma curve, from light to dark, but upper two may not work" msgstr "" -#: backend/fujitsu.c:3393 backend/genesys/genesys.cpp:4187 -#: backend/pixma_sane_options.c:335 +#: backend/fujitsu.c:3397 backend/genesys/genesys.cpp:4229 +#: backend/pixma/pixma_sane_options.c:335 #, fuzzy, no-c-format msgid "Threshold curve" msgstr "Tærskelværdi" -#: backend/fujitsu.c:3394 +#: backend/fujitsu.c:3398 #, no-c-format msgid "" "Threshold curve, from light to dark, but upper two may not be linear" msgstr "" -#: backend/fujitsu.c:3416 +#: backend/fujitsu.c:3420 #, fuzzy, no-c-format msgid "Threshold white" msgstr "Tærskelværdi" -#: backend/fujitsu.c:3417 +#: backend/fujitsu.c:3421 #, no-c-format msgid "Set pixels equal to threshold to white instead of black" msgstr "" -#: backend/fujitsu.c:3433 backend/fujitsu.c:3434 +#: backend/fujitsu.c:3437 backend/fujitsu.c:3438 #, fuzzy, no-c-format msgid "Noise removal" msgstr "Støjreduktion" -#: backend/fujitsu.c:3450 +#: backend/fujitsu.c:3454 #, no-c-format msgid "Matrix 5x5" msgstr "" -#: backend/fujitsu.c:3451 +#: backend/fujitsu.c:3455 #, no-c-format msgid "Remove 5 pixel square noise" msgstr "" -#: backend/fujitsu.c:3467 +#: backend/fujitsu.c:3471 #, no-c-format msgid "Matrix 4x4" msgstr "" -#: backend/fujitsu.c:3468 +#: backend/fujitsu.c:3472 #, no-c-format msgid "Remove 4 pixel square noise" msgstr "" -#: backend/fujitsu.c:3484 +#: backend/fujitsu.c:3488 #, no-c-format msgid "Matrix 3x3" msgstr "" -#: backend/fujitsu.c:3485 +#: backend/fujitsu.c:3489 #, no-c-format msgid "Remove 3 pixel square noise" msgstr "" -#: backend/fujitsu.c:3501 +#: backend/fujitsu.c:3505 #, no-c-format msgid "Matrix 2x2" msgstr "" -#: backend/fujitsu.c:3502 +#: backend/fujitsu.c:3506 #, no-c-format msgid "Remove 2 pixel square noise" msgstr "" -#: backend/fujitsu.c:3521 +#: backend/fujitsu.c:3525 #, no-c-format msgid "Variance" msgstr "" -#: backend/fujitsu.c:3522 +#: backend/fujitsu.c:3526 #, no-c-format msgid "Set SDTC variance rate (sensitivity), 0 equals 127" msgstr "" -#: backend/fujitsu.c:3555 +#: backend/fujitsu.c:3559 #, fuzzy, no-c-format msgid "Auto width detection" msgstr "Ingen korrektion" -#: backend/fujitsu.c:3556 +#: backend/fujitsu.c:3560 #, no-c-format msgid "Scanner detects paper sides. May reduce scanning speed." msgstr "" -#: backend/fujitsu.c:3573 +#: backend/fujitsu.c:3577 #, fuzzy, no-c-format msgid "Auto length detection" msgstr "Ingen korrektion" -#: backend/fujitsu.c:3574 +#: backend/fujitsu.c:3578 #, no-c-format msgid "Scanner detects paper lower edge. May confuse some frontends." msgstr "" -#: backend/fujitsu.c:3600 +#: backend/fujitsu.c:3604 #, no-c-format msgid "Compression" msgstr "" -#: backend/fujitsu.c:3601 +#: backend/fujitsu.c:3605 #, no-c-format msgid "Enable compressed data. May crash your front-end program" msgstr "" -#: backend/fujitsu.c:3621 +#: backend/fujitsu.c:3625 #, no-c-format msgid "Compression argument" msgstr "" -#: backend/fujitsu.c:3622 +#: backend/fujitsu.c:3626 #, no-c-format msgid "" "Level of JPEG compression. 1 is small file, 7 is large file. 0 (default) " "is same as 4" msgstr "" -#: backend/fujitsu.c:3652 +#: backend/fujitsu.c:3656 #, no-c-format msgid "DF action" msgstr "" -#: backend/fujitsu.c:3653 +#: backend/fujitsu.c:3657 #, no-c-format msgid "Action following double feed error" msgstr "" -#: backend/fujitsu.c:3669 +#: backend/fujitsu.c:3673 #, no-c-format msgid "DF skew" msgstr "" -#: backend/fujitsu.c:3670 +#: backend/fujitsu.c:3674 #, no-c-format msgid "Enable double feed error due to skew" msgstr "" -#: backend/fujitsu.c:3688 +#: backend/fujitsu.c:3692 #, no-c-format msgid "DF thickness" msgstr "" -#: backend/fujitsu.c:3689 +#: backend/fujitsu.c:3693 #, no-c-format msgid "Enable double feed error due to paper thickness" msgstr "" -#: backend/fujitsu.c:3707 +#: backend/fujitsu.c:3711 #, no-c-format msgid "DF length" msgstr "" -#: backend/fujitsu.c:3708 +#: backend/fujitsu.c:3712 #, no-c-format msgid "Enable double feed error due to paper length" msgstr "" -#: backend/fujitsu.c:3731 +#: backend/fujitsu.c:3735 #, no-c-format msgid "DF length difference" msgstr "" -#: backend/fujitsu.c:3732 +#: backend/fujitsu.c:3736 #, no-c-format msgid "Difference in page length to trigger double feed error" msgstr "" -#: backend/fujitsu.c:3755 +#: backend/fujitsu.c:3759 #, fuzzy, no-c-format msgid "DF recovery mode" msgstr "Arkføder tilstand" -#: backend/fujitsu.c:3756 +#: backend/fujitsu.c:3760 #, no-c-format msgid "Request scanner to reverse feed on paper jam" msgstr "" -#: backend/fujitsu.c:3775 +#: backend/fujitsu.c:3779 #, no-c-format msgid "Paper protection" msgstr "" -#: backend/fujitsu.c:3776 +#: backend/fujitsu.c:3780 #, no-c-format msgid "Request scanner to predict jams in the ADF" msgstr "" -#: backend/fujitsu.c:3795 +#: backend/fujitsu.c:3799 #, fuzzy, no-c-format msgid "Advanced paper protection" msgstr "Avancerede indstillinger" -#: backend/fujitsu.c:3796 +#: backend/fujitsu.c:3800 #, no-c-format msgid "Request scanner to predict jams in the ADF using improved sensors" msgstr "" -#: backend/fujitsu.c:3815 +#: backend/fujitsu.c:3819 #, fuzzy, no-c-format msgid "Staple detection" msgstr "Ingen korrektion" -#: backend/fujitsu.c:3816 +#: backend/fujitsu.c:3820 #, no-c-format msgid "Request scanner to detect jams in the ADF caused by staples" msgstr "" -#: backend/fujitsu.c:3835 +#: backend/fujitsu.c:3839 #, no-c-format msgid "Background color" msgstr "" -#: backend/fujitsu.c:3836 +#: backend/fujitsu.c:3840 #, no-c-format msgid "" "Set color of background for scans. May conflict with overscan option" msgstr "" -#: backend/fujitsu.c:3856 +#: backend/fujitsu.c:3860 #, fuzzy, no-c-format msgid "Dropout color" msgstr "Udfald" -#: backend/fujitsu.c:3857 +#: backend/fujitsu.c:3861 #, no-c-format msgid "" "One-pass scanners use only one color during gray or binary scanning, " "useful for colored paper or ink" msgstr "" -#: backend/fujitsu.c:3880 +#: backend/fujitsu.c:3884 #, fuzzy, no-c-format msgid "Buffer mode" msgstr "Arkføder tilstand" -#: backend/fujitsu.c:3881 +#: backend/fujitsu.c:3885 #, no-c-format msgid "Request scanner to read pages quickly from ADF into internal memory" msgstr "" -#: backend/fujitsu.c:3900 +#: backend/fujitsu.c:3904 #, no-c-format msgid "Prepick" msgstr "" -#: backend/fujitsu.c:3901 +#: backend/fujitsu.c:3905 #, no-c-format msgid "Request scanner to grab next page from ADF" msgstr "" -#: backend/fujitsu.c:3920 +#: backend/fujitsu.c:3924 #, no-c-format msgid "Overscan" msgstr "" -#: backend/fujitsu.c:3921 +#: backend/fujitsu.c:3925 #, no-c-format msgid "" "Collect a few mm of background on top side of scan, before paper enters " @@ -2608,65 +2637,65 @@ msgid "" "collection on remaining sides. May conflict with bgcolor option" msgstr "" -#: backend/fujitsu.c:3939 +#: backend/fujitsu.c:3943 #, no-c-format msgid "Sleep timer" msgstr "" -#: backend/fujitsu.c:3940 +#: backend/fujitsu.c:3944 #, no-c-format msgid "" "Time in minutes until the internal power supply switches to sleep mode" msgstr "" -#: backend/fujitsu.c:3958 +#: backend/fujitsu.c:3962 #, fuzzy, no-c-format msgid "Off timer" msgstr "Sluk-lampe tid" -#: backend/fujitsu.c:3959 +#: backend/fujitsu.c:3963 #, no-c-format msgid "" "Time in minutes until the internal power supply switches the scanner " "off. Will be rounded to nearest 15 minutes. Zero means never power off." msgstr "" -#: backend/fujitsu.c:3977 +#: backend/fujitsu.c:3981 #, fuzzy, no-c-format msgid "Duplex offset" msgstr "Blå forskydning" -#: backend/fujitsu.c:3978 +#: backend/fujitsu.c:3982 #, no-c-format msgid "Adjust front/back offset" msgstr "" -#: backend/fujitsu.c:3995 backend/plustek.c:1025 backend/umax_pp.c:800 +#: backend/fujitsu.c:3999 backend/plustek.c:1025 backend/umax_pp.c:794 #, no-c-format msgid "Green offset" msgstr "Grøn forskydning" -#: backend/fujitsu.c:3996 +#: backend/fujitsu.c:4000 #, fuzzy, no-c-format msgid "Adjust green/red offset" msgstr "Grøn forskydning" -#: backend/fujitsu.c:4013 backend/plustek.c:1041 backend/umax_pp.c:812 +#: backend/fujitsu.c:4017 backend/plustek.c:1041 backend/umax_pp.c:806 #, no-c-format msgid "Blue offset" msgstr "Blå forskydning" -#: backend/fujitsu.c:4014 +#: backend/fujitsu.c:4018 #, fuzzy, no-c-format msgid "Adjust blue/red offset" msgstr "Indstillinger for blå-kanals forskydning" -#: backend/fujitsu.c:4027 +#: backend/fujitsu.c:4031 #, no-c-format msgid "Low Memory" msgstr "" -#: backend/fujitsu.c:4028 +#: backend/fujitsu.c:4032 #, no-c-format msgid "" "Limit driver memory usage for use in embedded systems. Causes some " @@ -2675,418 +2704,406 @@ msgid "" "only be used with custom front-end software." msgstr "" -#: backend/fujitsu.c:4043 +#: backend/fujitsu.c:4047 #, fuzzy, no-c-format msgid "Duplex side" msgstr "Duplex skan" -#: backend/fujitsu.c:4044 +#: backend/fujitsu.c:4048 #, no-c-format msgid "" "Tells which side (0=front, 1=back) of a duplex scan the next call to " "sane_read will return." msgstr "" -#: backend/fujitsu.c:4055 +#: backend/fujitsu.c:4059 #, no-c-format msgid "Hardware deskew and crop" msgstr "" -#: backend/fujitsu.c:4056 +#: backend/fujitsu.c:4060 #, no-c-format msgid "Request scanner to rotate and crop pages digitally." msgstr "" -#: backend/fujitsu.c:4067 backend/kvs1025_opt.c:871 +#: backend/fujitsu.c:4071 backend/kvs1025_opt.c:871 #, no-c-format msgid "Software deskew" msgstr "" -#: backend/fujitsu.c:4068 +#: backend/fujitsu.c:4072 #, no-c-format msgid "Request driver to rotate skewed pages digitally." msgstr "" -#: backend/fujitsu.c:4080 backend/kvs1025_opt.c:880 +#: backend/fujitsu.c:4084 backend/kvs1025_opt.c:880 #, no-c-format msgid "Software despeckle diameter" msgstr "" -#: backend/fujitsu.c:4081 +#: backend/fujitsu.c:4085 #, no-c-format msgid "Maximum diameter of lone dots to remove from scan." msgstr "" -#: backend/fujitsu.c:4100 backend/genesys/genesys.cpp:4117 +#: backend/fujitsu.c:4104 backend/genesys/genesys.cpp:4159 #, no-c-format msgid "Software crop" msgstr "" -#: backend/fujitsu.c:4101 +#: backend/fujitsu.c:4105 #, no-c-format msgid "Request driver to remove border from pages digitally." msgstr "" -#: backend/fujitsu.c:4130 +#: backend/fujitsu.c:4134 #, no-c-format msgid "Halt on Cancel" msgstr "" -#: backend/fujitsu.c:4131 +#: backend/fujitsu.c:4135 #, no-c-format msgid "" "Request driver to halt the paper feed instead of eject during a cancel." msgstr "" -#: backend/fujitsu.c:4142 +#: backend/fujitsu.c:4146 #, fuzzy, no-c-format msgid "Endorser Options" msgstr "Avancerede indstillinger" -#: backend/fujitsu.c:4143 +#: backend/fujitsu.c:4147 #, no-c-format msgid "Controls for endorser unit" msgstr "" -#: backend/fujitsu.c:4154 +#: backend/fujitsu.c:4158 #, no-c-format msgid "Endorser" msgstr "" -#: backend/fujitsu.c:4155 +#: backend/fujitsu.c:4159 #, no-c-format msgid "Enable endorser unit" msgstr "" -#: backend/fujitsu.c:4170 +#: backend/fujitsu.c:4174 #, no-c-format msgid "Endorser bits" msgstr "" -#: backend/fujitsu.c:4171 +#: backend/fujitsu.c:4175 #, no-c-format msgid "Determines maximum endorser counter value." msgstr "" -#: backend/fujitsu.c:4196 +#: backend/fujitsu.c:4200 #, no-c-format msgid "Endorser value" msgstr "" -#: backend/fujitsu.c:4197 +#: backend/fujitsu.c:4201 #, no-c-format msgid "Initial endorser counter value." msgstr "" -#: backend/fujitsu.c:4220 +#: backend/fujitsu.c:4224 #, no-c-format msgid "Endorser step" msgstr "" -#: backend/fujitsu.c:4221 +#: backend/fujitsu.c:4225 #, no-c-format msgid "Change endorser counter value by this much for each page." msgstr "" -#: backend/fujitsu.c:4244 +#: backend/fujitsu.c:4248 #, no-c-format msgid "Endorser Y" msgstr "" -#: backend/fujitsu.c:4245 +#: backend/fujitsu.c:4249 #, no-c-format msgid "Endorser print offset from top of paper." msgstr "" -#: backend/fujitsu.c:4270 +#: backend/fujitsu.c:4274 #, no-c-format msgid "Endorser font" msgstr "" -#: backend/fujitsu.c:4271 +#: backend/fujitsu.c:4275 #, no-c-format msgid "Endorser printing font." msgstr "" -#: backend/fujitsu.c:4300 +#: backend/fujitsu.c:4304 #, fuzzy, no-c-format msgid "Endorser direction" msgstr "Støjreduktion" -#: backend/fujitsu.c:4301 +#: backend/fujitsu.c:4305 #, no-c-format msgid "Endorser printing direction." msgstr "" -#: backend/fujitsu.c:4325 +#: backend/fujitsu.c:4329 #, no-c-format msgid "Endorser side" msgstr "" -#: backend/fujitsu.c:4326 +#: backend/fujitsu.c:4330 #, no-c-format msgid "Endorser printing side, requires hardware support to change" msgstr "" -#: backend/fujitsu.c:4351 +#: backend/fujitsu.c:4355 #, no-c-format msgid "Endorser string" msgstr "" -#: backend/fujitsu.c:4352 +#: backend/fujitsu.c:4356 #, no-c-format msgid "" "Endorser alphanumeric print format. %05ud or %08ud at the end will be " "replaced by counter value." msgstr "" -#: backend/fujitsu.c:4379 +#: backend/fujitsu.c:4383 #, no-c-format msgid "Top edge" msgstr "" -#: backend/fujitsu.c:4380 +#: backend/fujitsu.c:4384 #, no-c-format msgid "Paper is pulled partly into ADF" msgstr "" -#: backend/fujitsu.c:4391 +#: backend/fujitsu.c:4395 #, fuzzy, no-c-format msgid "A3 paper" msgstr "Fra papir" -#: backend/fujitsu.c:4392 +#: backend/fujitsu.c:4396 #, no-c-format msgid "A3 paper detected" msgstr "" -#: backend/fujitsu.c:4403 +#: backend/fujitsu.c:4407 #, fuzzy, no-c-format msgid "B4 paper" msgstr "Fra papir" -#: backend/fujitsu.c:4404 +#: backend/fujitsu.c:4408 #, no-c-format msgid "B4 paper detected" msgstr "" -#: backend/fujitsu.c:4415 +#: backend/fujitsu.c:4419 #, fuzzy, no-c-format msgid "A4 paper" msgstr "Fra papir" -#: backend/fujitsu.c:4416 +#: backend/fujitsu.c:4420 #, no-c-format msgid "A4 paper detected" msgstr "" -#: backend/fujitsu.c:4427 +#: backend/fujitsu.c:4431 #, fuzzy, no-c-format msgid "B5 paper" msgstr "Fra papir" -#: backend/fujitsu.c:4428 +#: backend/fujitsu.c:4432 #, no-c-format msgid "B5 paper detected" msgstr "" -#: backend/fujitsu.c:4451 +#: backend/fujitsu.c:4455 #, no-c-format msgid "OMR or DF" msgstr "" -#: backend/fujitsu.c:4452 +#: backend/fujitsu.c:4456 #, no-c-format msgid "OMR or double feed detected" msgstr "" -#: backend/fujitsu.c:4475 +#: backend/fujitsu.c:4479 #, no-c-format msgid "Power saving" msgstr "" -#: backend/fujitsu.c:4476 +#: backend/fujitsu.c:4480 #, no-c-format msgid "Scanner in power saving mode" msgstr "" -#: backend/fujitsu.c:4499 +#: backend/fujitsu.c:4503 #, fuzzy, no-c-format msgid "Manual feed" msgstr "Manuel pre-fokus" -#: backend/fujitsu.c:4500 +#: backend/fujitsu.c:4504 #, fuzzy, no-c-format msgid "Manual feed selected" msgstr "Manuel pre-fokus" -#: backend/fujitsu.c:4523 +#: backend/fujitsu.c:4527 #, no-c-format msgid "Function" msgstr "" -#: backend/fujitsu.c:4524 +#: backend/fujitsu.c:4528 #, no-c-format msgid "Function character on screen" msgstr "" -#: backend/fujitsu.c:4535 +#: backend/fujitsu.c:4539 #, no-c-format msgid "Ink low" msgstr "" -#: backend/fujitsu.c:4536 +#: backend/fujitsu.c:4540 #, no-c-format msgid "Imprinter ink running low" msgstr "" -#: backend/fujitsu.c:4547 +#: backend/fujitsu.c:4551 #, no-c-format msgid "Double feed" msgstr "" -#: backend/fujitsu.c:4548 +#: backend/fujitsu.c:4552 #, no-c-format msgid "Double feed detected" msgstr "" -#: backend/fujitsu.c:4559 +#: backend/fujitsu.c:4563 #, no-c-format msgid "Error code" msgstr "" -#: backend/fujitsu.c:4560 +#: backend/fujitsu.c:4564 #, fuzzy, no-c-format msgid "Hardware error code" msgstr "Skanningsopløsning" -#: backend/fujitsu.c:4571 +#: backend/fujitsu.c:4575 #, no-c-format msgid "Skew angle" msgstr "" -#: backend/fujitsu.c:4572 +#: backend/fujitsu.c:4576 #, no-c-format msgid "Requires black background for scanning" msgstr "" -#: backend/fujitsu.c:4583 +#: backend/fujitsu.c:4587 #, no-c-format msgid "Ink remaining" msgstr "" -#: backend/fujitsu.c:4584 +#: backend/fujitsu.c:4588 #, fuzzy, no-c-format msgid "Imprinter ink level" msgstr "Hvid niveau" -#: backend/fujitsu.c:4595 +#: backend/fujitsu.c:4599 #, fuzzy, no-c-format msgid "Density" msgstr "Rød intensitet" -#: backend/fujitsu.c:4596 +#: backend/fujitsu.c:4600 #, no-c-format msgid "Density dial" msgstr "" -#: backend/fujitsu.c:4607 backend/fujitsu.c:4608 +#: backend/fujitsu.c:4611 backend/fujitsu.c:4612 #, fuzzy, no-c-format msgid "Duplex switch" msgstr "Duplex skan" -#: backend/genesys/genesys.cpp:4118 +#: backend/genesys/genesys.cpp:4160 #, no-c-format msgid "Request backend to remove border from pages digitally" msgstr "" -#: backend/genesys/genesys.cpp:4127 backend/kvs1025_opt.c:912 +#: backend/genesys/genesys.cpp:4169 backend/kvs1025_opt.c:912 #, no-c-format msgid "Request driver to discard pages with low numbers of dark pixels" msgstr "" -#: backend/genesys/genesys.cpp:4137 backend/kvs1025_opt.c:892 +#: backend/genesys/genesys.cpp:4179 backend/kvs1025_opt.c:892 #, no-c-format msgid "Software derotate" msgstr "" -#: backend/genesys/genesys.cpp:4138 backend/kvs1025_opt.c:894 +#: backend/genesys/genesys.cpp:4180 backend/kvs1025_opt.c:894 #, no-c-format msgid "Request driver to detect and correct 90 degree image rotation" msgstr "" -#: backend/genesys/genesys.cpp:4168 backend/pixma_sane_options.c:314 +#: backend/genesys/genesys.cpp:4210 backend/pixma/pixma_sane_options.c:314 #, no-c-format msgid "Extras" msgstr "Ekstra" -#: backend/genesys/genesys.cpp:4188 backend/pixma_sane_options.c:336 +#: backend/genesys/genesys.cpp:4230 backend/pixma/pixma_sane_options.c:336 #, no-c-format msgid "Dynamic threshold curve, from light to dark, normally 50-65" msgstr "" -#: backend/genesys/genesys.cpp:4197 -#, no-c-format -msgid "Disable dynamic lineart" -msgstr "" - -#: backend/genesys/genesys.cpp:4199 -#, no-c-format -msgid "" -"Disable use of a software adaptive algorithm to generate lineart relying " -"instead on hardware lineart." -msgstr "" - -#: backend/genesys/genesys.cpp:4215 +#: backend/genesys/genesys.cpp:4240 #, fuzzy, no-c-format msgid "Disable interpolation" msgstr "Deaktiver bagudrettet sporing" -#: backend/genesys/genesys.cpp:4218 +#: backend/genesys/genesys.cpp:4243 #, no-c-format msgid "" "When using high resolutions where the horizontal resolution is smaller " "than the vertical resolution this disables horizontal interpolation." msgstr "" -#: backend/genesys/genesys.cpp:4227 +#: backend/genesys/genesys.cpp:4252 #, fuzzy, no-c-format msgid "Color filter" msgstr "Farve stregtegning" -#: backend/genesys/genesys.cpp:4230 +#: backend/genesys/genesys.cpp:4255 #, no-c-format msgid "When using gray or lineart this option selects the used color." msgstr "" -#: backend/genesys/genesys.cpp:4254 +#: backend/genesys/genesys.cpp:4279 #, fuzzy, no-c-format msgid "Calibration file" msgstr "Kalibrering" -#: backend/genesys/genesys.cpp:4255 +#: backend/genesys/genesys.cpp:4280 #, fuzzy, no-c-format msgid "Specify the calibration file to use" msgstr "Definer kalibreringstilstand" -#: backend/genesys/genesys.cpp:4272 +#: backend/genesys/genesys.cpp:4297 #, fuzzy, no-c-format msgid "Calibration cache expiration time" msgstr "Kalibreringsdatacache" -#: backend/genesys/genesys.cpp:4273 +#: backend/genesys/genesys.cpp:4298 #, no-c-format msgid "" "Time (in minutes) before a cached calibration expires. A value of 0 " "means cache is not used. A negative value means cache never expires." msgstr "" -#: backend/genesys/genesys.cpp:4283 +#: backend/genesys/genesys.cpp:4308 #, no-c-format msgid "Lamp off time" msgstr "Sluk-lampe tid" -#: backend/genesys/genesys.cpp:4286 +#: backend/genesys/genesys.cpp:4311 #, no-c-format msgid "" "The lamp will be turned off after the given time (in minutes). A value " @@ -3095,103 +3112,108 @@ msgstr "" "Lampen bliver slukket efter den angivne tid (i minutter). Værdien 0 " "bevirker, at lampen ikke bliver slukket." -#: backend/genesys/genesys.cpp:4296 +#: backend/genesys/genesys.cpp:4321 #, fuzzy, no-c-format msgid "Lamp off during scan" msgstr "Grovkalibrering" -#: backend/genesys/genesys.cpp:4297 +#: backend/genesys/genesys.cpp:4322 #, no-c-format msgid "The lamp will be turned off during scan. " msgstr "" -#: backend/genesys/genesys.cpp:4324 backend/genesys/genesys.cpp:4325 +#: backend/genesys/genesys.cpp:4349 backend/genesys/genesys.cpp:4350 #, fuzzy, no-c-format msgid "File button" msgstr "Vent på knap" -#: backend/genesys/genesys.cpp:4369 backend/genesys/genesys.cpp:4370 +#: backend/genesys/genesys.cpp:4394 backend/genesys/genesys.cpp:4395 #, no-c-format msgid "OCR button" msgstr "" -#: backend/genesys/genesys.cpp:4381 backend/genesys/genesys.cpp:4382 +#: backend/genesys/genesys.cpp:4406 backend/genesys/genesys.cpp:4407 #, fuzzy, no-c-format msgid "Power button" msgstr "Vent på knap" -#: backend/genesys/genesys.cpp:4393 backend/genesys/genesys.cpp:4394 +#: backend/genesys/genesys.cpp:4418 backend/genesys/genesys.cpp:4419 #, fuzzy, no-c-format msgid "Extra button" msgstr "Vent på knap" -#: backend/genesys/genesys.cpp:4405 backend/gt68xx.c:755 +#: backend/genesys/genesys.cpp:4430 backend/gt68xx.c:755 #, fuzzy, no-c-format msgid "Needs calibration" msgstr "Grovkalibrering" -#: backend/genesys/genesys.cpp:4406 backend/gt68xx.c:756 +#: backend/genesys/genesys.cpp:4431 backend/gt68xx.c:756 backend/p5.c:1928 #, fuzzy, no-c-format msgid "The scanner needs calibration for the current settings" msgstr "Gennemtving kalibrering før skanning" -#: backend/genesys/genesys.cpp:4417 backend/gt68xx.c:780 -#: backend/gt68xx.c:781 backend/pixma_sane_options.c:226 -#: backend/plustek.c:1080 +#: backend/genesys/genesys.cpp:4442 backend/gt68xx.c:780 +#: backend/gt68xx.c:781 backend/p5.c:1937 backend/p5.c:1938 +#: backend/pixma/pixma_sane_options.c:226 backend/plustek.c:1080 #, no-c-format msgid "Buttons" msgstr "Knapper" -#: backend/genesys/genesys.cpp:4426 backend/gt68xx.c:787 -#: backend/hp5400_sane.c:392 backend/hp-option.h:97 backend/niash.c:726 -#: backend/plustek.c:941 +#: backend/genesys/genesys.cpp:4451 backend/gt68xx.c:787 +#: backend/hp-option.h:97 backend/hp5400_sane.c:392 backend/niash.c:726 +#: backend/p5.c:1945 backend/plustek.c:941 #, no-c-format msgid "Calibrate" msgstr "Kalibrering" -#: backend/genesys/genesys.cpp:4428 backend/gt68xx.c:789 +#: backend/genesys/genesys.cpp:4453 backend/gt68xx.c:789 backend/p5.c:1947 #, fuzzy, no-c-format msgid "Start calibration using special sheet" msgstr "Begynd kalibreringsprocessen." -#: backend/genesys/genesys.cpp:4440 backend/gt68xx.c:802 +#: backend/genesys/genesys.cpp:4465 backend/gt68xx.c:802 backend/p5.c:1958 #, fuzzy, no-c-format msgid "Clear calibration" msgstr "Grovkalibrering" -#: backend/genesys/genesys.cpp:4441 backend/gt68xx.c:803 +#: backend/genesys/genesys.cpp:4466 backend/gt68xx.c:803 backend/p5.c:1960 #, fuzzy, no-c-format msgid "Clear calibration cache" msgstr "Kalibreringsdatacache" -#: backend/genesys/genesys.cpp:4451 +#: backend/genesys/genesys.cpp:4476 #, fuzzy, no-c-format msgid "Force calibration" msgstr "Grovkalibrering" -#: backend/genesys/genesys.cpp:4452 +#: backend/genesys/genesys.cpp:4477 #, no-c-format msgid "Force calibration ignoring all and any calibration caches" msgstr "" -#: backend/genesys/genesys.cpp:4462 +#: backend/genesys/genesys.cpp:4487 #, fuzzy, no-c-format msgid "Ignore internal offsets" msgstr "Grøn forskydning" -#: backend/genesys/genesys.cpp:4464 +#: backend/genesys/genesys.cpp:4489 #, no-c-format msgid "" "Acquires the image including the internal calibration areas of the " "scanner" msgstr "" -#: backend/gt68xx.c:149 backend/ma1509.c:108 backend/mustek.c:164 -#: backend/snapscan-options.c:87 backend/umax.c:182 +#: backend/genesys/genesys.h:79 backend/gt68xx.c:149 backend/ma1509.c:108 +#: backend/mustek.c:164 backend/snapscan-options.c:87 backend/umax.c:182 #, no-c-format msgid "Transparency Adapter" msgstr "Filmadapter" +#: backend/genesys/genesys.h:80 +#, fuzzy, no-c-format +msgid "Transparency Adapter Infrared" +msgstr "Filmadapter" + #: backend/gt68xx.c:470 #, no-c-format msgid "Gray mode color" @@ -3298,6 +3320,309 @@ msgstr "Gamma værdi" msgid "Sets the gamma value of all channels." msgstr "Fastsætter gamma værdien for alle kanaler." +#: backend/hp-option.c:2987 +#, no-c-format +msgid "Advanced Options" +msgstr "Avancerede indstillinger" + +#: backend/hp-option.c:3044 +#, no-c-format +msgid "Coarse" +msgstr "Grov" + +#: backend/hp-option.c:3045 +#, no-c-format +msgid "Fine" +msgstr "Fin" + +#: backend/hp-option.c:3046 +#, no-c-format +msgid "Bayer" +msgstr "Bayer" + +#: backend/hp-option.c:3049 backend/hp-option.c:3100 +#, no-c-format +msgid "Custom" +msgstr "Tilpasset" + +#: backend/hp-option.c:3090 backend/hp-option.c:3146 +#: backend/hp-option.c:3161 +#, no-c-format +msgid "Auto" +msgstr "Automatisk" + +#: backend/hp-option.c:3091 +#, no-c-format +msgid "NTSC RGB" +msgstr "NTSC RGB" + +#: backend/hp-option.c:3092 +#, no-c-format +msgid "XPA RGB" +msgstr "XPA RGB" + +#: backend/hp-option.c:3093 +#, no-c-format +msgid "Pass-through" +msgstr "Uforandret" + +#: backend/hp-option.c:3094 +#, no-c-format +msgid "NTSC Gray" +msgstr "NTSC grå" + +#: backend/hp-option.c:3095 +#, no-c-format +msgid "XPA Gray" +msgstr "XPA Grå" + +#: backend/hp-option.c:3147 +#, no-c-format +msgid "Slow" +msgstr "Langsom" + +#: backend/hp-option.c:3148 backend/hp-option.c:3255 +#: backend/kvs40xx_opt.c:230 backend/matsushita.c:244 backend/mustek.c:149 +#: backend/plustek.c:234 backend/plustek_pp.c:203 backend/u12.c:155 +#, no-c-format +msgid "Normal" +msgstr "Normal" + +#: backend/hp-option.c:3149 +#, no-c-format +msgid "Fast" +msgstr "Hurtig" + +#: backend/hp-option.c:3150 +#, no-c-format +msgid "Extra Fast" +msgstr "Meget hurtig" + +#: backend/hp-option.c:3163 +#, no-c-format +msgid "2-pixel" +msgstr "2-pixel" + +#: backend/hp-option.c:3164 +#, no-c-format +msgid "4-pixel" +msgstr "4-pixel" + +#: backend/hp-option.c:3165 +#, no-c-format +msgid "8-pixel" +msgstr "8-pixel" + +#: backend/hp-option.c:3176 +#, no-c-format +msgid "Print" +msgstr "Print" + +#: backend/hp-option.c:3177 backend/hp3900_sane.c:427 +#: backend/hp3900_sane.c:1019 +#, no-c-format +msgid "Slide" +msgstr "Diapositiv" + +#: backend/hp-option.c:3178 +#, no-c-format +msgid "Film-strip" +msgstr "Film-stribe" + +#: backend/hp-option.c:3256 backend/hp5590.c:93 +#, no-c-format +msgid "ADF" +msgstr "ADF" + +#: backend/hp-option.c:3257 +#, no-c-format +msgid "XPA" +msgstr "XPA" + +#: backend/hp-option.c:3331 backend/hp-option.c:3344 +#, no-c-format +msgid "Conditional" +msgstr "Betinget" + +#: backend/hp-option.c:3417 +#, no-c-format +msgid "Experiment" +msgstr "Eksperiment" + +#: backend/hp-option.h:60 +#, no-c-format +msgid "Sharpening" +msgstr "Gør skarpere" + +#: backend/hp-option.h:61 +#, no-c-format +msgid "Set sharpening value." +msgstr "Angiv niveau for skærpning" + +#: backend/hp-option.h:66 +#, no-c-format +msgid "Auto Threshold" +msgstr "Automatisk tærskelværdi" + +#: backend/hp-option.h:68 +#, no-c-format +msgid "Enable automatic determination of threshold for line-art scans." +msgstr "" +"Aktiver automatisk fastsættelse af tærskelværdi for " +"stregtegningsskanninger." + +#: backend/hp-option.h:74 +#, no-c-format +msgid "Select smoothing filter." +msgstr "Vælg udglatningsfilter." + +#: backend/hp-option.h:79 +#, no-c-format +msgid "Unload media after scan" +msgstr "Skub mediet ud efter skanning" + +#: backend/hp-option.h:80 +#, no-c-format +msgid "Unloads the media after a scan." +msgstr "Skubber mediet ud efter gennemført skanning." + +#: backend/hp-option.h:85 +#, no-c-format +msgid "Change document" +msgstr "Skift dokument" + +#: backend/hp-option.h:86 +#, no-c-format +msgid "Change Document." +msgstr "Skift dokument." + +#: backend/hp-option.h:91 +#, no-c-format +msgid "Unload" +msgstr "Skub ud" + +#: backend/hp-option.h:92 +#, no-c-format +msgid "Unload Document." +msgstr "Skubber dokumentet ud." + +#: backend/hp-option.h:98 +#, no-c-format +msgid "Start calibration process." +msgstr "Begynd kalibreringsprocessen." + +#: backend/hp-option.h:103 +#, no-c-format +msgid "Media" +msgstr "Medie" + +#: backend/hp-option.h:104 +#, no-c-format +msgid "Set type of media." +msgstr "Vælg medietype." + +#: backend/hp-option.h:109 +#, no-c-format +msgid "Exposure time" +msgstr "Eksponeringstid" + +#: backend/hp-option.h:111 +#, no-c-format +msgid "" +"A longer exposure time lets the scanner collect more light. Suggested " +"use is 175% for prints, 150% for normal slides and \"Negative\" for " +"negative film. For dark (underexposed) images you can increase this " +"value." +msgstr "" +"En længere eksponeringstid lader skanneren indsamle mere lys. Anbefalet " +"brug er 175% for papirbilleder, 150% for diapositiver og \"Negativ\" for " +"negativer. Ved mørke (undereksponerede) billeder, kan denne værdi øges." + +#: backend/hp-option.h:119 backend/hp-option.h:126 +#, no-c-format +msgid "Color Matrix" +msgstr "Farve matrix" + +#: backend/hp-option.h:121 +#, fuzzy, no-c-format +msgid "Set the scanner's color matrix." +msgstr "Fastlægger skannerens farve matrix." + +#: backend/hp-option.h:127 +#, no-c-format +msgid "Custom color matrix." +msgstr "Tilpasset farve matrix." + +#: backend/hp-option.h:132 +#, no-c-format +msgid "Mono Color Matrix" +msgstr "En farve matrix" + +#: backend/hp-option.h:133 +#, no-c-format +msgid "Custom color matrix for grayscale scans." +msgstr "Tilpasset farve matrix for gråtoneskanning." + +#: backend/hp-option.h:138 +#, no-c-format +msgid "Mirror horizontal" +msgstr "Spejlvend vandret" + +#: backend/hp-option.h:139 +#, no-c-format +msgid "Mirror image horizontally." +msgstr "Spejlvend billedet vandret." + +#: backend/hp-option.h:144 +#, no-c-format +msgid "Mirror vertical" +msgstr "Spejlvend lodret" + +#: backend/hp-option.h:145 +#, no-c-format +msgid "Mirror image vertically." +msgstr "Spejlvend billedet lodret." + +#: backend/hp-option.h:150 +#, no-c-format +msgid "Update options" +msgstr "Opdatér indstillinger" + +#: backend/hp-option.h:151 +#, no-c-format +msgid "Update options." +msgstr "Opdatér indstillinger." + +#: backend/hp-option.h:156 +#, no-c-format +msgid "8 bit output" +msgstr "8 bit uddata" + +#: backend/hp-option.h:158 +#, no-c-format +msgid "Use bit depth greater eight internally, but output only eight bits." +msgstr "Brug bit dybde større end 8 internt, men uddata kun 8 bit." + +#: backend/hp-option.h:164 +#, no-c-format +msgid "Front button wait" +msgstr "Vent på frontknap" + +#: backend/hp-option.h:165 +#, no-c-format +msgid "Wait to scan for front-panel button push." +msgstr "Vent med at begynde skanning, til frontknappen trykkes." + +#: backend/hp-option.h:172 +#, no-c-format +msgid "Shut off lamp" +msgstr "Sluk lampen" + +#: backend/hp-option.h:173 +#, no-c-format +msgid "Shut off scanner lamp." +msgstr "Slukker for skannerens lampe." + #: backend/hp3500.c:1020 #, fuzzy, no-c-format msgid "Geometry Group" @@ -3308,12 +3633,6 @@ msgstr "Skanområde" msgid "Scan Mode Group" msgstr "Skanner tilstand" -#: backend/hp3900_sane.c:427 backend/hp3900_sane.c:1019 -#: backend/hp-option.c:3177 -#, no-c-format -msgid "Slide" -msgstr "Diapositiv" - #: backend/hp3900_sane.c:1405 #, fuzzy, no-c-format msgid "Scanner model" @@ -3507,11 +3826,6 @@ msgstr "Tænder/slukker for lampen" msgid "Calibrates for black and white level." msgstr "Kalibrerer for sort og hvidt niveau." -#: backend/hp5590.c:93 backend/hp-option.c:3256 -#, no-c-format -msgid "ADF" -msgstr "ADF" - #: backend/hp5590.c:95 #, fuzzy, no-c-format msgid "TMA Slides" @@ -3622,298 +3936,6 @@ msgid "" "r*65536+256*g+b or gray value (default=violet or gray)" msgstr "" -#: backend/hp-option.c:2987 -#, no-c-format -msgid "Advanced Options" -msgstr "Avancerede indstillinger" - -#: backend/hp-option.c:3044 -#, no-c-format -msgid "Coarse" -msgstr "Grov" - -#: backend/hp-option.c:3045 -#, no-c-format -msgid "Fine" -msgstr "Fin" - -#: backend/hp-option.c:3046 -#, no-c-format -msgid "Bayer" -msgstr "Bayer" - -#: backend/hp-option.c:3049 backend/hp-option.c:3100 -#, no-c-format -msgid "Custom" -msgstr "Tilpasset" - -#: backend/hp-option.c:3090 backend/hp-option.c:3146 -#: backend/hp-option.c:3161 -#, no-c-format -msgid "Auto" -msgstr "Automatisk" - -#: backend/hp-option.c:3091 -#, no-c-format -msgid "NTSC RGB" -msgstr "NTSC RGB" - -#: backend/hp-option.c:3092 -#, no-c-format -msgid "XPA RGB" -msgstr "XPA RGB" - -#: backend/hp-option.c:3093 -#, no-c-format -msgid "Pass-through" -msgstr "Uforandret" - -#: backend/hp-option.c:3094 -#, no-c-format -msgid "NTSC Gray" -msgstr "NTSC grå" - -#: backend/hp-option.c:3095 -#, no-c-format -msgid "XPA Gray" -msgstr "XPA Grå" - -#: backend/hp-option.c:3147 -#, no-c-format -msgid "Slow" -msgstr "Langsom" - -#: backend/hp-option.c:3148 backend/hp-option.c:3255 -#: backend/kvs40xx_opt.c:230 backend/matsushita.c:244 backend/mustek.c:149 -#: backend/plustek.c:234 backend/plustek_pp.c:203 backend/u12.c:155 -#, no-c-format -msgid "Normal" -msgstr "Normal" - -#: backend/hp-option.c:3149 -#, no-c-format -msgid "Fast" -msgstr "Hurtig" - -#: backend/hp-option.c:3150 -#, no-c-format -msgid "Extra Fast" -msgstr "Meget hurtig" - -#: backend/hp-option.c:3163 -#, no-c-format -msgid "2-pixel" -msgstr "2-pixel" - -#: backend/hp-option.c:3164 -#, no-c-format -msgid "4-pixel" -msgstr "4-pixel" - -#: backend/hp-option.c:3165 -#, no-c-format -msgid "8-pixel" -msgstr "8-pixel" - -#: backend/hp-option.c:3176 -#, no-c-format -msgid "Print" -msgstr "Print" - -#: backend/hp-option.c:3178 -#, no-c-format -msgid "Film-strip" -msgstr "Film-stribe" - -#: backend/hp-option.c:3257 -#, no-c-format -msgid "XPA" -msgstr "XPA" - -#: backend/hp-option.c:3331 backend/hp-option.c:3344 -#, no-c-format -msgid "Conditional" -msgstr "Betinget" - -#: backend/hp-option.c:3417 -#, no-c-format -msgid "Experiment" -msgstr "Eksperiment" - -#: backend/hp-option.h:60 -#, no-c-format -msgid "Sharpening" -msgstr "Gør skarpere" - -#: backend/hp-option.h:61 -#, no-c-format -msgid "Set sharpening value." -msgstr "Angiv niveau for skærpning" - -#: backend/hp-option.h:66 -#, no-c-format -msgid "Auto Threshold" -msgstr "Automatisk tærskelværdi" - -#: backend/hp-option.h:68 -#, no-c-format -msgid "Enable automatic determination of threshold for line-art scans." -msgstr "" -"Aktiver automatisk fastsættelse af tærskelværdi for " -"stregtegningsskanninger." - -#: backend/hp-option.h:74 -#, no-c-format -msgid "Select smoothing filter." -msgstr "Vælg udglatningsfilter." - -#: backend/hp-option.h:79 -#, no-c-format -msgid "Unload media after scan" -msgstr "Skub mediet ud efter skanning" - -#: backend/hp-option.h:80 -#, no-c-format -msgid "Unloads the media after a scan." -msgstr "Skubber mediet ud efter gennemført skanning." - -#: backend/hp-option.h:85 -#, no-c-format -msgid "Change document" -msgstr "Skift dokument" - -#: backend/hp-option.h:86 -#, no-c-format -msgid "Change Document." -msgstr "Skift dokument." - -#: backend/hp-option.h:91 -#, no-c-format -msgid "Unload" -msgstr "Skub ud" - -#: backend/hp-option.h:92 -#, no-c-format -msgid "Unload Document." -msgstr "Skubber dokumentet ud." - -#: backend/hp-option.h:98 -#, no-c-format -msgid "Start calibration process." -msgstr "Begynd kalibreringsprocessen." - -#: backend/hp-option.h:103 -#, no-c-format -msgid "Media" -msgstr "Medie" - -#: backend/hp-option.h:104 -#, no-c-format -msgid "Set type of media." -msgstr "Vælg medietype." - -#: backend/hp-option.h:109 -#, no-c-format -msgid "Exposure time" -msgstr "Eksponeringstid" - -#: backend/hp-option.h:111 -#, no-c-format -msgid "" -"A longer exposure time lets the scanner collect more light. Suggested " -"use is 175% for prints, 150% for normal slides and \"Negative\" for " -"negative film. For dark (underexposed) images you can increase this " -"value." -msgstr "" -"En længere eksponeringstid lader skanneren indsamle mere lys. Anbefalet " -"brug er 175% for papirbilleder, 150% for diapositiver og \"Negativ\" for " -"negativer. Ved mørke (undereksponerede) billeder, kan denne værdi øges." - -#: backend/hp-option.h:119 backend/hp-option.h:126 -#, no-c-format -msgid "Color Matrix" -msgstr "Farve matrix" - -#: backend/hp-option.h:121 -#, fuzzy, no-c-format -msgid "Set the scanner's color matrix." -msgstr "Fastlægger skannerens farve matrix." - -#: backend/hp-option.h:127 -#, no-c-format -msgid "Custom color matrix." -msgstr "Tilpasset farve matrix." - -#: backend/hp-option.h:132 -#, no-c-format -msgid "Mono Color Matrix" -msgstr "En farve matrix" - -#: backend/hp-option.h:133 -#, no-c-format -msgid "Custom color matrix for grayscale scans." -msgstr "Tilpasset farve matrix for gråtoneskanning." - -#: backend/hp-option.h:138 -#, no-c-format -msgid "Mirror horizontal" -msgstr "Spejlvend vandret" - -#: backend/hp-option.h:139 -#, no-c-format -msgid "Mirror image horizontally." -msgstr "Spejlvend billedet vandret." - -#: backend/hp-option.h:144 -#, no-c-format -msgid "Mirror vertical" -msgstr "Spejlvend lodret" - -#: backend/hp-option.h:145 -#, no-c-format -msgid "Mirror image vertically." -msgstr "Spejlvend billedet lodret." - -#: backend/hp-option.h:150 -#, no-c-format -msgid "Update options" -msgstr "Opdatér indstillinger" - -#: backend/hp-option.h:151 -#, no-c-format -msgid "Update options." -msgstr "Opdatér indstillinger." - -#: backend/hp-option.h:156 -#, no-c-format -msgid "8 bit output" -msgstr "8 bit uddata" - -#: backend/hp-option.h:158 -#, no-c-format -msgid "Use bit depth greater eight internally, but output only eight bits." -msgstr "Brug bit dybde større end 8 internt, men uddata kun 8 bit." - -#: backend/hp-option.h:164 -#, no-c-format -msgid "Front button wait" -msgstr "Vent på frontknap" - -#: backend/hp-option.h:165 -#, no-c-format -msgid "Wait to scan for front-panel button push." -msgstr "Vent med at begynde skanning, til frontknappen trykkes." - -#: backend/hp-option.h:172 -#, no-c-format -msgid "Shut off lamp" -msgstr "Sluk lampen" - -#: backend/hp-option.h:173 -#, no-c-format -msgid "Shut off scanner lamp." -msgstr "Slukker for skannerens lampe." - #: backend/kvs1025.h:51 backend/kvs20xx_opt.c:295 backend/kvs40xx_opt.c:516 #: backend/matsushita.h:219 #, no-c-format @@ -4012,7 +4034,7 @@ msgid "single" msgstr "" #: backend/kvs1025_opt.c:73 backend/kvs20xx.c:462 backend/kvs20xx_opt.c:56 -#: backend/kvs40xx.c:704 backend/kvs40xx.c:722 backend/kvs40xx_opt.c:102 +#: backend/kvs40xx.c:705 backend/kvs40xx.c:723 backend/kvs40xx_opt.c:102 #: backend/kvs40xx_opt.c:1087 #, fuzzy, no-c-format msgid "continuous" @@ -4311,7 +4333,7 @@ msgstr "Fastsætter billedbetoning" #: backend/kvs1025_opt.c:807 backend/kvs1025_opt.c:808 #: backend/matsushita.c:1300 backend/matsushita.c:1301 -#: backend/pixma_sane_options.c:112 +#: backend/pixma/pixma_sane_options.c:112 #, no-c-format msgid "Gamma" msgstr "Gamma" @@ -4601,52 +4623,52 @@ msgstr "8x8 Bayer" msgid "8x8 Vertical Line" msgstr "8x8 lodret linie" -#: backend/lexmark.c:273 backend/umax_pp.c:711 +#: backend/lexmark.c:273 backend/umax_pp.c:705 #, no-c-format msgid "Gain" msgstr "Forstærk" -#: backend/lexmark.c:274 backend/umax_pp.c:712 +#: backend/lexmark.c:274 backend/umax_pp.c:706 #, no-c-format msgid "Color channels gain settings" msgstr "Farvekanalforstærkningsindstillinger" -#: backend/lexmark.c:283 backend/umax_pp.c:719 +#: backend/lexmark.c:283 backend/umax_pp.c:713 #, no-c-format msgid "Gray gain" msgstr "Grå-forstærkning" -#: backend/lexmark.c:284 backend/umax_pp.c:720 +#: backend/lexmark.c:284 backend/umax_pp.c:714 #, no-c-format msgid "Sets gray channel gain" msgstr "Fastsætter grå-kanals forstærkning" -#: backend/lexmark.c:297 backend/plustek.c:1001 backend/umax_pp.c:731 +#: backend/lexmark.c:297 backend/plustek.c:1001 backend/umax_pp.c:725 #, no-c-format msgid "Red gain" msgstr "Rød forstærkning" -#: backend/lexmark.c:298 backend/umax_pp.c:732 +#: backend/lexmark.c:298 backend/umax_pp.c:726 #, no-c-format msgid "Sets red channel gain" msgstr "Fastsætter rød-kanals forstærkning" -#: backend/lexmark.c:311 backend/plustek.c:1017 backend/umax_pp.c:743 +#: backend/lexmark.c:311 backend/plustek.c:1017 backend/umax_pp.c:737 #, no-c-format msgid "Green gain" msgstr "Grøn forstærkning" -#: backend/lexmark.c:312 backend/umax_pp.c:744 +#: backend/lexmark.c:312 backend/umax_pp.c:738 #, no-c-format msgid "Sets green channel gain" msgstr "Fastsætter grøn-kanals forstærkning" -#: backend/lexmark.c:325 backend/plustek.c:1033 backend/umax_pp.c:755 +#: backend/lexmark.c:325 backend/plustek.c:1033 backend/umax_pp.c:749 #, no-c-format msgid "Blue gain" msgstr "Blå forstærkning" -#: backend/lexmark.c:326 backend/umax_pp.c:756 +#: backend/lexmark.c:326 backend/umax_pp.c:750 #, no-c-format msgid "Sets blue channel gain" msgstr "Fastsætter blå-kanals forstærkning" @@ -4732,7 +4754,7 @@ msgstr "En side" msgid "All pages" msgstr "Alle sider" -#: backend/matsushita.c:1034 backend/plustek.c:1333 +#: backend/matsushita.c:1034 backend/p5_device.c:8 backend/plustek.c:1333 #, no-c-format msgid "sheetfed scanner" msgstr "arkføder skanner" @@ -5234,39 +5256,44 @@ msgstr "" "Varm op indtil lampens lyshed er konstant, i stedet for at insistere på " "40 sekunders opvarmningstid." -#: backend/pixma.c:397 +#: backend/p5.c:1926 +#, fuzzy, no-c-format +msgid "Need calibration" +msgstr "Grovkalibrering" + +#: backend/pixma/pixma.c:397 #, fuzzy, no-c-format msgid "Negative color" msgstr "Negativ film" -#: backend/pixma.c:402 +#: backend/pixma/pixma.c:402 #, fuzzy, no-c-format msgid "Negative gray" msgstr "Negativ" -#: backend/pixma.c:415 +#: backend/pixma/pixma.c:415 #, no-c-format msgid "48 bits color" msgstr "" -#: backend/pixma.c:420 +#: backend/pixma/pixma.c:420 #, no-c-format msgid "16 bits gray" msgstr "" -#: backend/pixma_sane_options.c:84 +#: backend/pixma/pixma_sane_options.c:84 #, no-c-format msgid "" "Selects the scan source (such as a document-feeder). Set source before " "mode and resolution. Resets mode and resolution to auto values." msgstr "" -#: backend/pixma_sane_options.c:98 +#: backend/pixma/pixma_sane_options.c:98 #, no-c-format msgid "Button-controlled scan" msgstr "" -#: backend/pixma_sane_options.c:99 +#: backend/pixma/pixma_sane_options.c:99 #, no-c-format msgid "" "When enabled, scan process will not start immediately. To proceed, press " @@ -5274,37 +5301,37 @@ msgid "" "cancel, press \"GRAY\" button." msgstr "" -#: backend/pixma_sane_options.c:232 +#: backend/pixma/pixma_sane_options.c:232 #, fuzzy, no-c-format msgid "Update button state" msgstr "Knap tilstand" -#: backend/pixma_sane_options.c:244 +#: backend/pixma/pixma_sane_options.c:244 #, no-c-format msgid "Button 1" msgstr "Knap 1" -#: backend/pixma_sane_options.c:258 +#: backend/pixma/pixma_sane_options.c:258 #, no-c-format msgid "Button 2" msgstr "Knap 2" -#: backend/pixma_sane_options.c:272 +#: backend/pixma/pixma_sane_options.c:272 #, no-c-format msgid "Type of original to scan" msgstr "" -#: backend/pixma_sane_options.c:286 +#: backend/pixma/pixma_sane_options.c:286 #, no-c-format msgid "Target operation type" msgstr "" -#: backend/pixma_sane_options.c:348 +#: backend/pixma/pixma_sane_options.c:348 #, no-c-format msgid "ADF Waiting Time" msgstr "" -#: backend/pixma_sane_options.c:349 +#: backend/pixma/pixma_sane_options.c:349 #, no-c-format msgid "" "When set, the scanner waits upto the specified time in seconds for a new " @@ -5396,7 +5423,7 @@ msgstr "Analog forende" msgid "Red gain value of the AFE" msgstr "Rød forstærkningsværdi for den analoge forende" -#: backend/plustek.c:1009 backend/umax_pp.c:788 +#: backend/plustek.c:1009 backend/umax_pp.c:782 #, no-c-format msgid "Red offset" msgstr "Rød forskydning" @@ -5671,7 +5698,7 @@ msgstr "" msgid "This option reflects the status of a scanner button." msgstr "Denne indstilling reflekterer skannerknappernes status." -#: backend/rts8891.c:2840 backend/umax.c:5795 backend/umax_pp.c:635 +#: backend/rts8891.c:2840 backend/umax.c:5795 backend/umax_pp.c:629 #, no-c-format msgid "Lamp on" msgstr "Lampe tændt" @@ -5681,12 +5708,12 @@ msgstr "Lampe tændt" msgid "Turn on scanner lamp" msgstr "Tænd for skannerlampen" -#: backend/rts8891.c:2851 backend/umax1220u.c:248 backend/umax.c:5812 +#: backend/rts8891.c:2851 backend/umax.c:5812 backend/umax1220u.c:248 #, no-c-format msgid "Lamp off" msgstr "Sluk lampe" -#: backend/rts8891.c:2852 backend/umax1220u.c:249 backend/umax.c:5813 +#: backend/rts8891.c:2852 backend/umax.c:5813 backend/umax1220u.c:249 #, no-c-format msgid "Turn off scanner lamp" msgstr "Sluk for skannerens lampe" @@ -6486,52 +6513,52 @@ msgstr "Kalibreringstilstand" msgid "Define calibration mode" msgstr "Definer kalibreringstilstand" -#: backend/umax_pp.c:636 +#: backend/umax_pp.c:630 #, no-c-format msgid "Sets lamp on/off" msgstr "Tænder/slukker for lampen" -#: backend/umax_pp.c:645 +#: backend/umax_pp.c:639 #, no-c-format msgid "UTA on" msgstr "UTA tændt" -#: backend/umax_pp.c:646 +#: backend/umax_pp.c:640 #, no-c-format msgid "Sets UTA on/off" msgstr "Tænder/slukker for UTA'en" -#: backend/umax_pp.c:767 +#: backend/umax_pp.c:761 #, no-c-format msgid "Offset" msgstr "Forskydning" -#: backend/umax_pp.c:769 +#: backend/umax_pp.c:763 #, no-c-format msgid "Color channels offset settings" msgstr "Indstillinger for farvekanalernes forskydning" -#: backend/umax_pp.c:776 +#: backend/umax_pp.c:770 #, no-c-format msgid "Gray offset" msgstr "Grå-forskydning" -#: backend/umax_pp.c:777 +#: backend/umax_pp.c:771 #, no-c-format msgid "Sets gray channel offset" msgstr "Indstillinger for grå-kanals forskydning" -#: backend/umax_pp.c:789 +#: backend/umax_pp.c:783 #, no-c-format msgid "Sets red channel offset" msgstr "Indstillinger for rød-kanals forskydning" -#: backend/umax_pp.c:801 +#: backend/umax_pp.c:795 #, no-c-format msgid "Sets green channel offset" msgstr "Indstillinger for grøn-kanals forskydning" -#: backend/umax_pp.c:813 +#: backend/umax_pp.c:807 #, no-c-format msgid "Sets blue channel offset" msgstr "Indstillinger for blå-kanals forskydning" diff --git a/po/de.po b/po/de.po index 84d91d534..a2cae3bf1 100644 --- a/po/de.po +++ b/po/de.po @@ -12,11 +12,11 @@ # Rolf Bensch , 2012-2019. msgid "" msgstr "" -"Project-Id-Version: sane-backends\n" +"Project-Id-Version: sane-backends 1.0.29\n" "Report-Msgid-Bugs-To: sane-devel@alioth-lists.debian.net\n" -"POT-Creation-Date: 2019-10-12 17:41+0300\n" -"PO-Revision-Date: 2019-08-09 20:08+0200\n" -"Last-Translator: Rolf Bensch \n" +"POT-Creation-Date: 2020-01-12 07:09+0000\n" +"PO-Revision-Date: 2020-01-26 16:29+0900\n" +"Last-Translator: Ulf Zibis \n" "Language-Team: \n" "Language: de\n" "MIME-Version: 1.0\n" @@ -36,23 +36,23 @@ msgid "Standard" msgstr "Standard" #: include/sane/saneopts.h:157 backend/artec_eplus48u.c:2884 -#: backend/epson.c:3298 backend/epson2.c:1290 -#: backend/genesys/genesys.cpp:3976 backend/gt68xx.c:696 -#: backend/hp3500.c:1019 backend/hp-option.c:3300 backend/kvs1025_opt.c:639 +#: backend/epson.c:3298 backend/epson2.c:1290 backend/epsonds.c:677 +#: backend/genesys/genesys.cpp:4034 backend/gt68xx.c:696 +#: backend/hp-option.c:3300 backend/hp3500.c:1019 backend/kvs1025_opt.c:639 #: backend/kvs20xx_opt.c:285 backend/kvs40xx_opt.c:506 backend/leo.c:823 #: backend/lexmark.c:199 backend/ma1509.c:551 backend/matsushita.c:1135 #: backend/microtek2.h:599 backend/mustek.c:4373 backend/mustek_usb.c:301 -#: backend/mustek_usb2.c:465 backend/pixma_sane_options.c:160 +#: backend/mustek_usb2.c:465 backend/pixma/pixma_sane_options.c:160 #: backend/plustek.c:808 backend/plustek_pp.c:747 backend/sceptre.c:702 #: backend/snapscan-options.c:550 backend/teco1.c:1095 backend/teco2.c:1910 #: backend/teco3.c:920 backend/test.c:647 backend/u12.c:546 -#: backend/umax.c:5176 backend/umax_pp.c:576 +#: backend/umax.c:5176 backend/umax_pp.c:570 #, no-c-format msgid "Geometry" msgstr "Scanbereich" #: include/sane/saneopts.h:158 backend/artec_eplus48u.c:2805 -#: backend/canon.c:1493 backend/genesys/genesys.cpp:4035 +#: backend/canon.c:1493 backend/genesys/genesys.cpp:4077 #: backend/gt68xx.c:665 backend/hp-option.c:2956 backend/kvs1025_opt.c:703 #: backend/leo.c:871 backend/ma1509.c:599 backend/matsushita.c:1189 #: backend/microtek2.h:600 backend/mustek.c:4421 backend/mustek_usb.c:349 @@ -60,7 +60,7 @@ msgstr "Scanbereich" #: backend/plustek_pp.c:793 backend/sceptre.c:750 #: backend/snapscan-options.c:617 backend/stv680.c:1067 #: backend/teco1.c:1143 backend/teco2.c:1958 backend/teco3.c:968 -#: backend/u12.c:592 backend/umax.c:5226 backend/umax_pp.c:625 +#: backend/u12.c:592 backend/umax.c:5226 backend/umax_pp.c:619 #, no-c-format msgid "Enhancement" msgstr "Farbverbesserung" @@ -94,7 +94,7 @@ msgid "Bit depth" msgstr "Bittiefe" #: include/sane/saneopts.h:165 backend/canon.c:1140 backend/leo.c:781 -#: backend/pixma_sane_options.c:47 +#: backend/pixma/pixma_sane_options.c:47 #, no-c-format msgid "Scan mode" msgstr "Scanmodus" @@ -135,7 +135,7 @@ msgid "Bottom-right y" msgstr "Rechts Unten y" #: include/sane/saneopts.h:173 backend/canon.c:1216 -#: backend/pixma_sane_options.c:300 +#: backend/pixma/pixma_sane_options.c:300 #, no-c-format msgid "Scan resolution" msgstr "Scanauflösung" @@ -290,7 +290,7 @@ msgstr "Dateiname" msgid "Halftone pattern size" msgstr "Größe der Halbton-Matrix" -#: include/sane/saneopts.h:204 backend/fujitsu.c:3233 +#: include/sane/saneopts.h:204 backend/fujitsu.c:3237 #, no-c-format msgid "Halftone pattern" msgstr "Halbton-Matrix" @@ -300,10 +300,10 @@ msgstr "Halbton-Matrix" msgid "Bind X and Y resolution" msgstr "Verbinde X- und Y-Auflösung" -#: include/sane/saneopts.h:206 backend/hp3900_sane.c:428 -#: backend/hp3900_sane.c:1021 backend/hp3900_sane.c:1421 -#: backend/hp-option.c:3238 backend/mustek_usb2.c:121 backend/plustek.c:236 -#: backend/plustek_pp.c:205 backend/u12.c:157 +#: include/sane/saneopts.h:206 backend/hp-option.c:3238 +#: backend/hp3900_sane.c:428 backend/hp3900_sane.c:1021 +#: backend/hp3900_sane.c:1421 backend/mustek_usb2.c:121 +#: backend/plustek.c:236 backend/plustek_pp.c:205 backend/u12.c:157 #, no-c-format msgid "Negative" msgstr "Negativ" @@ -1057,79 +1057,38 @@ msgstr "" "Duplex Scan ermöglicht das Scannen der Vorder- und Rückseite eines " "Dokuments" -#: backend/canon630u.c:159 +#: backend/canon-sane.c:674 backend/canon.c:171 #, no-c-format -msgid "Calibrate Scanner" -msgstr "Scanner kalibrieren" +msgid "Correction according to transparency ratio" +msgstr "Korrektur entsprechend des Seitenverhältnisses" -#: backend/canon630u.c:160 +#: backend/canon-sane.c:680 backend/canon.c:170 #, no-c-format -msgid "Force scanner calibration before scan" -msgstr "Erzwinge Scannerkalibrierung vor dem Scannen" +msgid "Correction according to film type" +msgstr "Korrektur entsprechend des Filmtyps" -#: backend/canon630u.c:259 backend/umax1220u.c:208 -#, no-c-format -msgid "Grayscale scan" -msgstr "Graustufen-Scan" - -#: backend/canon630u.c:260 backend/umax1220u.c:209 -#, no-c-format -msgid "Do a grayscale rather than color scan" -msgstr "Führe einen Graustufen-Scan statt eines Farb-Scans durch" - -#: backend/canon630u.c:306 -#, no-c-format -msgid "Analog Gain" -msgstr "Analoge Verstärkung" - -#: backend/canon630u.c:307 -#, no-c-format -msgid "Increase or decrease the analog gain of the CCD array" -msgstr "" -"Vergrößere oder verkleinere die analoge Verstärkung des CCD-Sensors" - -#: backend/canon630u.c:347 backend/epson.h:68 backend/epson2.h:67 -#, no-c-format -msgid "Gamma Correction" -msgstr "Gammakorrektur" - -#: backend/canon630u.c:348 -#, no-c-format -msgid "Selects the gamma corrected transfer curve" -msgstr "Wählt die korrigierte Gammakurve aus" - -#: backend/canon.c:149 backend/canon-sane.c:1318 -#, no-c-format -msgid "Raw" -msgstr "Rohdaten" - -#: backend/canon.c:157 backend/canon-sane.c:732 backend/canon-sane.c:940 +#: backend/canon-sane.c:732 backend/canon-sane.c:940 #: backend/canon-sane.c:1076 backend/canon-sane.c:1314 -#: backend/canon-sane.c:1494 backend/canon-sane.c:1643 +#: backend/canon-sane.c:1494 backend/canon-sane.c:1643 backend/canon.c:157 #, no-c-format msgid "Fine color" msgstr "Farbe" +#: backend/canon-sane.c:776 backend/canon.c:176 +#, no-c-format +msgid "Negatives" +msgstr "Negative" + +#: backend/canon-sane.c:1318 backend/canon.c:149 +#, no-c-format +msgid "Raw" +msgstr "Rohdaten" + #: backend/canon.c:169 #, no-c-format msgid "No transparency correction" msgstr "Keine Transparenzkorrektur" -#: backend/canon.c:170 backend/canon-sane.c:680 -#, no-c-format -msgid "Correction according to film type" -msgstr "Korrektur entsprechend des Filmtyps" - -#: backend/canon.c:171 backend/canon-sane.c:674 -#, no-c-format -msgid "Correction according to transparency ratio" -msgstr "Korrektur entsprechend des Seitenverhältnisses" - -#: backend/canon.c:176 backend/canon-sane.c:776 -#, no-c-format -msgid "Negatives" -msgstr "Negative" - #: backend/canon.c:176 #, no-c-format msgid "Slides" @@ -1555,94 +1514,138 @@ msgstr "Filmtyp auswählen" msgid "Select the film type" msgstr "Wählt den Filmtyp aus" -#: backend/canon_dr.c:411 backend/epjitsu.c:233 backend/epson.c:501 -#: backend/epson2.c:115 backend/fujitsu.c:675 backend/gt68xx.c:148 +#: backend/canon630u.c:159 +#, no-c-format +msgid "Calibrate Scanner" +msgstr "Scanner kalibrieren" + +#: backend/canon630u.c:160 +#, no-c-format +msgid "Force scanner calibration before scan" +msgstr "Erzwinge Scannerkalibrierung vor dem Scannen" + +#: backend/canon630u.c:259 backend/umax1220u.c:208 +#, no-c-format +msgid "Grayscale scan" +msgstr "Graustufen-Scan" + +#: backend/canon630u.c:260 backend/umax1220u.c:209 +#, no-c-format +msgid "Do a grayscale rather than color scan" +msgstr "Führe einen Graustufen-Scan statt eines Farb-Scans durch" + +#: backend/canon630u.c:306 +#, no-c-format +msgid "Analog Gain" +msgstr "Analoge Verstärkung" + +#: backend/canon630u.c:307 +#, no-c-format +msgid "Increase or decrease the analog gain of the CCD array" +msgstr "" +"Vergrößere oder verkleinere die analoge Verstärkung des CCD-Sensors" + +#: backend/canon630u.c:347 backend/epson.h:68 backend/epson2.h:67 +#, no-c-format +msgid "Gamma Correction" +msgstr "Gammakorrektur" + +#: backend/canon630u.c:348 +#, no-c-format +msgid "Selects the gamma corrected transfer curve" +msgstr "Wählt die korrigierte Gammakurve aus" + +#: backend/canon_dr.c:413 backend/epjitsu.c:233 backend/epson.c:501 +#: backend/epson2-ops.c:101 backend/epson2.c:115 backend/epsonds-ops.c:32 +#: backend/epsonds.c:95 backend/epsonds.h:62 backend/fujitsu.c:677 +#: backend/genesys/genesys.h:78 backend/gt68xx.c:148 #: backend/hp3900_sane.c:418 backend/hp3900_sane.c:427 -#: backend/hp3900_sane.c:1017 backend/hp5590.c:92 backend/ma1509.c:108 -#: backend/magicolor.c:181 backend/mustek.c:156 backend/mustek.c:160 -#: backend/mustek.c:164 backend/pixma.c:920 backend/pixma_sane_options.c:92 -#: backend/snapscan-options.c:86 backend/test.c:192 backend/umax.c:181 +#: backend/hp3900_sane.c:1017 backend/hp5590.c:92 backend/kodakaio.c:617 +#: backend/ma1509.c:108 backend/magicolor.c:181 backend/mustek.c:156 +#: backend/mustek.c:160 backend/mustek.c:164 backend/pixma/pixma.c:920 +#: backend/pixma/pixma_sane_options.c:92 backend/snapscan-options.c:86 +#: backend/test.c:192 backend/umax.c:181 #, no-c-format msgid "Flatbed" msgstr "Flachbett" -#: backend/canon_dr.c:412 backend/epjitsu.c:234 backend/fujitsu.c:676 +#: backend/canon_dr.c:414 backend/epjitsu.c:234 backend/fujitsu.c:678 #: backend/kodak.c:140 #, no-c-format msgid "ADF Front" msgstr "Automatischer Dokumenteneinzug vorne" -#: backend/canon_dr.c:413 backend/epjitsu.c:235 backend/fujitsu.c:677 +#: backend/canon_dr.c:415 backend/epjitsu.c:235 backend/fujitsu.c:679 #: backend/kodak.c:141 #, no-c-format msgid "ADF Back" msgstr "Automatischer Dokumenteneinzug hinten" -#: backend/canon_dr.c:414 backend/epjitsu.c:236 backend/fujitsu.c:678 -#: backend/hp5590.c:94 backend/kodak.c:142 backend/pixma.c:931 +#: backend/canon_dr.c:416 backend/epjitsu.c:236 backend/fujitsu.c:680 +#: backend/hp5590.c:94 backend/kodak.c:142 backend/pixma/pixma.c:931 #, no-c-format msgid "ADF Duplex" msgstr "Dokumenteneinzug mit Duplex" -#: backend/canon_dr.c:415 +#: backend/canon_dr.c:417 #, no-c-format msgid "Card Front" msgstr "Karte Vorderseite" -#: backend/canon_dr.c:416 +#: backend/canon_dr.c:418 #, no-c-format msgid "Card Back" msgstr "Karte Rückseite" -#: backend/canon_dr.c:417 +#: backend/canon_dr.c:419 #, no-c-format msgid "Card Duplex" msgstr "Karte Duplex" -#: backend/canon_dr.c:424 backend/epson.c:599 backend/epson.c:3096 -#: backend/epson2.c:201 backend/fujitsu.c:695 -#: backend/genesys/genesys.cpp:99 backend/genesys/genesys.cpp:106 +#: backend/canon_dr.c:426 backend/epson.c:599 backend/epson.c:3096 +#: backend/epson2.c:201 backend/fujitsu.c:697 +#: backend/genesys/genesys.cpp:120 backend/genesys/genesys.cpp:127 #: backend/gt68xx_low.h:136 backend/hp-option.c:3096 #, no-c-format msgid "Red" msgstr "Rot" -#: backend/canon_dr.c:425 backend/epson.c:600 backend/epson.c:3092 -#: backend/epson2.c:202 backend/fujitsu.c:696 -#: backend/genesys/genesys.cpp:100 backend/genesys/genesys.cpp:107 +#: backend/canon_dr.c:427 backend/epson.c:600 backend/epson.c:3092 +#: backend/epson2.c:202 backend/fujitsu.c:698 +#: backend/genesys/genesys.cpp:121 backend/genesys/genesys.cpp:128 #: backend/gt68xx_low.h:137 backend/hp-option.c:3097 #, no-c-format msgid "Green" msgstr "Grün" -#: backend/canon_dr.c:426 backend/epson.c:601 backend/epson.c:3100 -#: backend/epson2.c:203 backend/fujitsu.c:697 -#: backend/genesys/genesys.cpp:101 backend/genesys/genesys.cpp:108 +#: backend/canon_dr.c:428 backend/epson.c:601 backend/epson.c:3100 +#: backend/epson2.c:203 backend/fujitsu.c:699 +#: backend/genesys/genesys.cpp:122 backend/genesys/genesys.cpp:129 #: backend/gt68xx_low.h:138 backend/hp-option.c:3098 #, no-c-format msgid "Blue" msgstr "Blau" -#: backend/canon_dr.c:427 +#: backend/canon_dr.c:429 #, no-c-format msgid "Enhance Red" msgstr "Rot verstärken" -#: backend/canon_dr.c:428 +#: backend/canon_dr.c:430 #, no-c-format msgid "Enhance Green" msgstr "Grün verstärken" -#: backend/canon_dr.c:429 +#: backend/canon_dr.c:431 #, no-c-format msgid "Enhance Blue" msgstr "Blau verstärken" -#: backend/canon_dr.c:431 backend/epson.c:556 backend/epson.c:564 +#: backend/canon_dr.c:433 backend/epson.c:556 backend/epson.c:564 #: backend/epson.c:576 backend/epson.c:598 backend/epson2.c:165 #: backend/epson2.c:173 backend/epson2.c:185 backend/epson2.c:200 -#: backend/epson2.c:214 backend/fujitsu.c:701 -#: backend/genesys/genesys.cpp:109 backend/leo.c:109 +#: backend/epson2.c:214 backend/fujitsu.c:703 +#: backend/genesys/genesys.cpp:130 backend/leo.c:109 #: backend/matsushita.c:138 backend/matsushita.c:159 #: backend/matsushita.c:191 backend/matsushita.c:213 #: backend/snapscan-options.c:91 @@ -1650,42 +1653,46 @@ msgstr "Blau verstärken" msgid "None" msgstr "Kein" -#: backend/canon_dr.c:432 backend/fujitsu.c:702 +#: backend/canon_dr.c:434 backend/fujitsu.c:704 #, no-c-format msgid "JPEG" msgstr "JPEG" -#: backend/canon_dr.c:2477 backend/fujitsu.c:4113 -#: backend/genesys/genesys.cpp:4126 backend/kvs1025_opt.c:910 +#: backend/canon_dr.c:2479 backend/fujitsu.c:4117 +#: backend/genesys/genesys.cpp:4168 backend/kvs1025_opt.c:910 #, no-c-format msgid "Software blank skip percentage" msgstr "Schwellwert für Leerseitenerkennung" -#: backend/canon_dr.c:2478 backend/fujitsu.c:4114 +#: backend/canon_dr.c:2480 backend/fujitsu.c:4118 #, no-c-format msgid "Request driver to discard pages with low percentage of dark pixels" msgstr "Seiten mit geringer Pixeldichte überspringen" -#: backend/epson.c:491 backend/epson2.c:108 backend/magicolor.c:174 +#: backend/epson.c:491 backend/epson2.c:108 backend/epsonds.c:88 +#: backend/kodakaio.c:611 backend/magicolor.c:174 #, no-c-format msgid "Simplex" msgstr "Einseitig" -#: backend/epson.c:492 backend/epson2.c:109 backend/kvs1025.h:50 -#: backend/kvs20xx_opt.c:204 backend/kvs40xx_opt.c:353 -#: backend/magicolor.c:175 backend/matsushita.h:218 +#: backend/epson.c:492 backend/epson2.c:109 backend/epsonds.c:89 +#: backend/kodakaio.c:612 backend/kvs1025.h:50 backend/kvs20xx_opt.c:204 +#: backend/kvs40xx_opt.c:353 backend/magicolor.c:175 +#: backend/matsushita.h:218 #, no-c-format msgid "Duplex" msgstr "Duplex" -#: backend/epson.c:502 backend/epson2.c:116 backend/pixma.c:937 +#: backend/epson.c:502 backend/epson2-ops.c:102 backend/epson2.c:116 +#: backend/epsonds-ops.c:33 backend/epsonds.h:63 backend/pixma/pixma.c:937 #, no-c-format msgid "Transparency Unit" msgstr "Durchlichtaufsatz" -#: backend/epson.c:503 backend/epson2.c:118 backend/magicolor.c:182 -#: backend/mustek.c:160 backend/pixma.c:925 backend/test.c:192 -#: backend/umax.c:183 +#: backend/epson.c:503 backend/epson2-ops.c:104 backend/epson2.c:118 +#: backend/epsonds-ops.c:34 backend/epsonds.c:96 backend/epsonds.h:64 +#: backend/kodakaio.c:618 backend/magicolor.c:182 backend/mustek.c:160 +#: backend/pixma/pixma.c:925 backend/test.c:192 backend/umax.c:183 #, no-c-format msgid "Automatic Document Feeder" msgstr "Automatischer Dokumenteneinzug" @@ -1797,7 +1804,7 @@ msgstr "Tintenstrahldrucker" msgid "CRT monitors" msgstr "Monitore" -#: backend/epson.c:656 backend/epson2.c:254 backend/fujitsu.c:685 +#: backend/epson.c:656 backend/epson2.c:254 backend/fujitsu.c:687 #: backend/hp-option.c:3229 backend/test.c:143 #, no-c-format msgid "Default" @@ -1861,8 +1868,8 @@ msgstr "A4" msgid "Max" msgstr "Maximal" -#: backend/epson.c:2813 backend/epson2.c:976 -#: backend/genesys/genesys.cpp:3893 backend/gt68xx.c:451 +#: backend/epson.c:2813 backend/epson2.c:976 backend/epsonds.c:629 +#: backend/genesys/genesys.cpp:3965 backend/gt68xx.c:451 #: backend/hp-option.c:2917 backend/kvs1025_opt.c:521 #: backend/kvs20xx_opt.c:171 backend/kvs40xx_opt.c:320 backend/ma1509.c:501 #: backend/matsushita.c:1084 backend/microtek2.h:598 backend/mustek.c:4215 @@ -2035,17 +2042,17 @@ msgstr "Definiert den Vergrösserungsfaktor, der vom Scanner benutzt wird" msgid "Quick format" msgstr "Schnellformat" -#: backend/epson.c:3360 backend/epson2.c:1340 +#: backend/epson.c:3360 backend/epson2.c:1340 backend/epsonds.c:726 #, no-c-format msgid "Optional equipment" msgstr "Optionales Zubehör" -#: backend/epson.c:3431 backend/epson2.c:1393 +#: backend/epson.c:3431 backend/epson2.c:1393 backend/epsonds.c:742 #, no-c-format msgid "Eject" msgstr "Auswerfen" -#: backend/epson.c:3432 backend/epson2.c:1394 +#: backend/epson.c:3432 backend/epson2.c:1394 backend/epsonds.c:743 #, no-c-format msgid "Eject the sheet in the ADF" msgstr "Wirft das Blatt aus dem automatischen Dokumenteneinzug aus" @@ -2060,12 +2067,14 @@ msgstr "Automatischer Auswurf" msgid "Eject document after scanning" msgstr "Dokument nach dem Scannen auswerfen" -#: backend/epson.c:3457 backend/epson2.c:1416 backend/magicolor.c:2420 +#: backend/epson.c:3457 backend/epson2.c:1416 backend/epsonds.c:758 +#: backend/kodakaio.c:2855 backend/magicolor.c:2420 #, no-c-format msgid "ADF Mode" msgstr "Dokumenteneinzug Modus" -#: backend/epson.c:3459 backend/epson2.c:1418 backend/magicolor.c:2422 +#: backend/epson.c:3459 backend/epson2.c:1418 backend/epsonds.c:760 +#: backend/kodakaio.c:2857 backend/magicolor.c:2422 #, no-c-format msgid "Selects the ADF mode (simplex/duplex)" msgstr "Wählt den ADF-Modus aus (einseitig/doppelseitig)" @@ -2115,16 +2124,16 @@ msgstr "" "Beginne mit dem Scannen erst, wenn nach dem Senden des Scankommandos die " "Taste am Scanner gedrückt wird." -#: backend/epson2.c:102 backend/pixma.c:409 -#, no-c-format -msgid "Infrared" -msgstr "Infrarot" - -#: backend/epson2.c:117 +#: backend/epson2-ops.c:103 backend/epson2.c:117 #, no-c-format msgid "TPU8x10" msgstr "Durchlichtaufsatz 8x10" +#: backend/epson2.c:102 backend/pixma/pixma.c:409 +#, no-c-format +msgid "Infrared" +msgstr "Infrarot" + #: backend/epson2.c:136 #, no-c-format msgid "Positive Slide" @@ -2145,243 +2154,263 @@ msgstr "Eingebautes CCT-Profil" msgid "User defined CCT profile" msgstr "Benutzerdefiniertes CCT-Profil" -#: backend/fujitsu.c:686 backend/hp-option.c:3330 backend/hp-option.c:3343 +#: backend/epsonds.c:750 +#, no-c-format +msgid "Load" +msgstr "Lade" + +#: backend/epsonds.c:751 +#, no-c-format +msgid "Load a sheet in the ADF" +msgstr "Lade ein Blatt im automatischen Dokumenteneinzug" + +#: backend/epsonds.c:771 +#, no-c-format +msgid "ADF Skew Correction" +msgstr "ADF-Schräglaufkorrektur" + +#: backend/epsonds.c:773 +#, no-c-format +msgid "Enables ADF skew correction" +msgstr "aktiviert ADF-Schräglaufkorrektur" + +#: backend/fujitsu.c:688 backend/hp-option.c:3330 backend/hp-option.c:3343 #, no-c-format msgid "On" msgstr "An" -#: backend/fujitsu.c:687 backend/hp-option.c:3162 backend/hp-option.c:3329 +#: backend/fujitsu.c:689 backend/hp-option.c:3162 backend/hp-option.c:3329 #: backend/hp-option.c:3342 #, no-c-format msgid "Off" msgstr "Aus" -#: backend/fujitsu.c:689 +#: backend/fujitsu.c:691 #, no-c-format msgid "DTC" msgstr "DTC" -#: backend/fujitsu.c:690 +#: backend/fujitsu.c:692 #, no-c-format msgid "SDTC" msgstr "SDTC" -#: backend/fujitsu.c:692 backend/teco1.c:1152 backend/teco1.c:1153 +#: backend/fujitsu.c:694 backend/teco1.c:1152 backend/teco1.c:1153 #: backend/teco2.c:1967 backend/teco2.c:1968 backend/teco3.c:977 #: backend/teco3.c:978 #, no-c-format msgid "Dither" msgstr "Halbton" -#: backend/fujitsu.c:693 +#: backend/fujitsu.c:695 #, no-c-format msgid "Diffusion" msgstr "Diffusion" -#: backend/fujitsu.c:698 +#: backend/fujitsu.c:700 #, no-c-format msgid "White" msgstr "Weiß" -#: backend/fujitsu.c:699 +#: backend/fujitsu.c:701 #, no-c-format msgid "Black" msgstr "Schwarz" -#: backend/fujitsu.c:704 +#: backend/fujitsu.c:706 #, no-c-format msgid "Continue" msgstr "Fortfahren" -#: backend/fujitsu.c:705 +#: backend/fujitsu.c:707 #, no-c-format msgid "Stop" msgstr "Stopp" -#: backend/fujitsu.c:707 +#: backend/fujitsu.c:709 #, no-c-format msgid "10mm" msgstr "10mm" -#: backend/fujitsu.c:708 +#: backend/fujitsu.c:710 #, no-c-format msgid "15mm" msgstr "15mm" -#: backend/fujitsu.c:709 +#: backend/fujitsu.c:711 #, no-c-format msgid "20mm" msgstr "20mm" -#: backend/fujitsu.c:711 backend/hp-option.c:3048 +#: backend/fujitsu.c:713 backend/hp-option.c:3048 #, no-c-format msgid "Horizontal" msgstr "Horizontal" -#: backend/fujitsu.c:712 +#: backend/fujitsu.c:714 #, no-c-format msgid "Horizontal bold" msgstr "Horizontal breit" -#: backend/fujitsu.c:713 +#: backend/fujitsu.c:715 #, no-c-format msgid "Horizontal narrow" msgstr "Horizontal schmal" -#: backend/fujitsu.c:714 backend/hp-option.c:3047 +#: backend/fujitsu.c:716 backend/hp-option.c:3047 #, no-c-format msgid "Vertical" msgstr "Vertikal" -#: backend/fujitsu.c:715 +#: backend/fujitsu.c:717 #, no-c-format msgid "Vertical bold" msgstr "Vertikal breit" -#: backend/fujitsu.c:717 +#: backend/fujitsu.c:719 #, no-c-format msgid "Top to bottom" msgstr "Oben nach unten" -#: backend/fujitsu.c:718 +#: backend/fujitsu.c:720 #, no-c-format msgid "Bottom to top" msgstr "Unten nach oben" -#: backend/fujitsu.c:720 +#: backend/fujitsu.c:722 #, no-c-format msgid "Front" msgstr "Vorne" -#: backend/fujitsu.c:721 +#: backend/fujitsu.c:723 #, no-c-format msgid "Back" msgstr "Hinten" -#: backend/fujitsu.c:3144 backend/pixma_sane_options.c:145 +#: backend/fujitsu.c:3148 backend/pixma/pixma_sane_options.c:145 #, no-c-format msgid "Gamma function exponent" msgstr "Gamma-Exponent" -#: backend/fujitsu.c:3145 backend/pixma_sane_options.c:146 +#: backend/fujitsu.c:3149 backend/pixma/pixma_sane_options.c:146 #, no-c-format msgid "Changes intensity of midtones" msgstr "Verändert die Intensität der mittleren Farbtöne" -#: backend/fujitsu.c:3194 +#: backend/fujitsu.c:3198 #, no-c-format msgid "RIF" msgstr "RIF" -#: backend/fujitsu.c:3195 +#: backend/fujitsu.c:3199 #, no-c-format msgid "Reverse image format" msgstr "Reverse Image Format" -#: backend/fujitsu.c:3212 +#: backend/fujitsu.c:3216 #, no-c-format msgid "Halftone type" msgstr "Halbton Typ" -#: backend/fujitsu.c:3213 +#: backend/fujitsu.c:3217 #, no-c-format msgid "Control type of halftone filter" msgstr "Halbton Typ einstellen" -#: backend/fujitsu.c:3234 +#: backend/fujitsu.c:3238 #, no-c-format msgid "Control pattern of halftone filter" msgstr "Halbton Muster einstellen" -#: backend/fujitsu.c:3256 +#: backend/fujitsu.c:3260 #, no-c-format msgid "Outline" msgstr "Kontur" -#: backend/fujitsu.c:3257 +#: backend/fujitsu.c:3261 #, no-c-format msgid "Perform outline extraction" msgstr "Kontur ermitteln" -#: backend/fujitsu.c:3268 +#: backend/fujitsu.c:3272 #, no-c-format msgid "Emphasis" msgstr "Gewichtung" -#: backend/fujitsu.c:3269 +#: backend/fujitsu.c:3273 #, no-c-format msgid "Negative to smooth or positive to sharpen image" msgstr "Negative Werte zum Weichzeichnen oder positive Werte zum Schärfen" -#: backend/fujitsu.c:3287 +#: backend/fujitsu.c:3291 #, no-c-format msgid "Separation" msgstr "Trennung" -#: backend/fujitsu.c:3288 +#: backend/fujitsu.c:3292 #, no-c-format msgid "Enable automatic separation of image and text" msgstr "Aktiviere die automatische Trennung von Bild und Text" -#: backend/fujitsu.c:3299 +#: backend/fujitsu.c:3303 #, no-c-format msgid "Mirroring" msgstr "Bild spiegeln" -#: backend/fujitsu.c:3300 +#: backend/fujitsu.c:3304 #, no-c-format msgid "Reflect output image horizontally" msgstr "Bild horizontal spiegeln" -#: backend/fujitsu.c:3317 +#: backend/fujitsu.c:3321 #, no-c-format msgid "White level follower" msgstr "Weißwertfolger" -#: backend/fujitsu.c:3318 +#: backend/fujitsu.c:3322 #, no-c-format msgid "Control white level follower" msgstr "Einstellungen für Weißwertfolger" -#: backend/fujitsu.c:3336 +#: backend/fujitsu.c:3340 #, no-c-format msgid "BP filter" msgstr "Kugelschreiber Filter" -#: backend/fujitsu.c:3337 +#: backend/fujitsu.c:3341 #, no-c-format msgid "Improves quality of high resolution ball-point pen text" msgstr "Verbessert die Qualität von mit Kugelschreiber geschriebenen Text" -#: backend/fujitsu.c:3353 backend/hp-option.h:73 +#: backend/fujitsu.c:3357 backend/hp-option.h:73 #, no-c-format msgid "Smoothing" msgstr "Glättung" -#: backend/fujitsu.c:3354 +#: backend/fujitsu.c:3358 #, no-c-format msgid "Enable smoothing for improved OCR" msgstr "Aktiviere Glättung zur Verbesserung von OCR" -#: backend/fujitsu.c:3370 +#: backend/fujitsu.c:3374 #, no-c-format msgid "Gamma curve" msgstr "Gammakurve" -#: backend/fujitsu.c:3371 +#: backend/fujitsu.c:3375 #, no-c-format msgid "Gamma curve, from light to dark, but upper two may not work" msgstr "" "Gammakurve, von hell zu dunkel, die oberen beiden funktionieren nicht " "unbedingt" -#: backend/fujitsu.c:3393 backend/genesys/genesys.cpp:4187 -#: backend/pixma_sane_options.c:335 +#: backend/fujitsu.c:3397 backend/genesys/genesys.cpp:4229 +#: backend/pixma/pixma_sane_options.c:335 #, no-c-format msgid "Threshold curve" msgstr "Schwellwertkurve" -#: backend/fujitsu.c:3394 +#: backend/fujitsu.c:3398 #, no-c-format msgid "" "Threshold curve, from light to dark, but upper two may not be linear" @@ -2389,114 +2418,114 @@ msgstr "" "Dynamische Schwellwertkurve, von hell zu dunkel, die oberen beiden sind " "nicht unbedingt linear" -#: backend/fujitsu.c:3416 +#: backend/fujitsu.c:3420 #, no-c-format msgid "Threshold white" msgstr "Schwellwert Weiß" -#: backend/fujitsu.c:3417 +#: backend/fujitsu.c:3421 #, no-c-format msgid "Set pixels equal to threshold to white instead of black" msgstr "" "Pixel unterhalb vom Schwellwert in Weiß anstelle von Schwarz umwandeln" -#: backend/fujitsu.c:3433 backend/fujitsu.c:3434 +#: backend/fujitsu.c:3437 backend/fujitsu.c:3438 #, no-c-format msgid "Noise removal" msgstr "Rauschunterdrückung" -#: backend/fujitsu.c:3450 +#: backend/fujitsu.c:3454 #, no-c-format msgid "Matrix 5x5" msgstr "Matrix 5x5" -#: backend/fujitsu.c:3451 +#: backend/fujitsu.c:3455 #, no-c-format msgid "Remove 5 pixel square noise" msgstr "5x5 Pixel Rauschunterdrückung" -#: backend/fujitsu.c:3467 +#: backend/fujitsu.c:3471 #, no-c-format msgid "Matrix 4x4" msgstr "Matrix 4x4" -#: backend/fujitsu.c:3468 +#: backend/fujitsu.c:3472 #, no-c-format msgid "Remove 4 pixel square noise" msgstr "4x4 Pixel Rauschunterdrückung" -#: backend/fujitsu.c:3484 +#: backend/fujitsu.c:3488 #, no-c-format msgid "Matrix 3x3" msgstr "Matrix 3x3" -#: backend/fujitsu.c:3485 +#: backend/fujitsu.c:3489 #, no-c-format msgid "Remove 3 pixel square noise" msgstr "3x3 Pixel Rauschunterdrückung" -#: backend/fujitsu.c:3501 +#: backend/fujitsu.c:3505 #, no-c-format msgid "Matrix 2x2" msgstr "Matrix 2x2" -#: backend/fujitsu.c:3502 +#: backend/fujitsu.c:3506 #, no-c-format msgid "Remove 2 pixel square noise" msgstr "2x2 Pixel Rauschunterdrückung" -#: backend/fujitsu.c:3521 +#: backend/fujitsu.c:3525 #, no-c-format msgid "Variance" msgstr "Streuung" -#: backend/fujitsu.c:3522 +#: backend/fujitsu.c:3526 #, no-c-format msgid "Set SDTC variance rate (sensitivity), 0 equals 127" msgstr "Setze SDTC Varianz (Empfindlichkeit), 0 = 127" -#: backend/fujitsu.c:3555 +#: backend/fujitsu.c:3559 #, no-c-format msgid "Auto width detection" msgstr "Vorlagenbreite automatisch erkennen" -#: backend/fujitsu.c:3556 +#: backend/fujitsu.c:3560 #, no-c-format msgid "Scanner detects paper sides. May reduce scanning speed." msgstr "" "Der Scanner erkennt automatisch die Seitengrößen. Verlangsamt die " "Scanngeschwindigkeit." -#: backend/fujitsu.c:3573 +#: backend/fujitsu.c:3577 #, no-c-format msgid "Auto length detection" msgstr "Vorlagenlänge automatisch erkennen" -#: backend/fujitsu.c:3574 +#: backend/fujitsu.c:3578 #, no-c-format msgid "Scanner detects paper lower edge. May confuse some frontends." msgstr "" "Der Scanner erkennt die Seitenausrichtung. Kann einige Programme " "verwirren." -#: backend/fujitsu.c:3600 +#: backend/fujitsu.c:3604 #, no-c-format msgid "Compression" msgstr "Komprimierung" -#: backend/fujitsu.c:3601 +#: backend/fujitsu.c:3605 #, no-c-format msgid "Enable compressed data. May crash your front-end program" msgstr "" "Aktiviere Datenkomprimierung. Kann das verwendete Scanprogramm abstürzen " "lassen." -#: backend/fujitsu.c:3621 +#: backend/fujitsu.c:3625 #, no-c-format msgid "Compression argument" msgstr "Komprimierungsparameter" -#: backend/fujitsu.c:3622 +#: backend/fujitsu.c:3626 #, no-c-format msgid "" "Level of JPEG compression. 1 is small file, 7 is large file. 0 (default) " @@ -2505,115 +2534,115 @@ msgstr "" "JPEG-Komprimierung: 1 = kleinste Datei, 7 = größte Datei, 0 " "(Voreinstellung) = 4" -#: backend/fujitsu.c:3652 +#: backend/fujitsu.c:3656 #, no-c-format msgid "DF action" msgstr "Duplex Aktion" -#: backend/fujitsu.c:3653 +#: backend/fujitsu.c:3657 #, no-c-format msgid "Action following double feed error" msgstr "Aktion bei Duplex Fehler" -#: backend/fujitsu.c:3669 +#: backend/fujitsu.c:3673 #, no-c-format msgid "DF skew" msgstr "Duplex Schrägeinlauf" -#: backend/fujitsu.c:3670 +#: backend/fujitsu.c:3674 #, no-c-format msgid "Enable double feed error due to skew" msgstr "Aktiviere Duplexfehler bei Schrägeinlauf" -#: backend/fujitsu.c:3688 +#: backend/fujitsu.c:3692 #, no-c-format msgid "DF thickness" msgstr "Duplex Papierdicke" -#: backend/fujitsu.c:3689 +#: backend/fujitsu.c:3693 #, no-c-format msgid "Enable double feed error due to paper thickness" msgstr "Aktiviere Duplexfehler bei zu großer Papierdicke" -#: backend/fujitsu.c:3707 +#: backend/fujitsu.c:3711 #, no-c-format msgid "DF length" msgstr "Duplex Seitenlänge" -#: backend/fujitsu.c:3708 +#: backend/fujitsu.c:3712 #, no-c-format msgid "Enable double feed error due to paper length" msgstr "Aktiviere Duplexfehler bei falscher Seitenlänge" -#: backend/fujitsu.c:3731 +#: backend/fujitsu.c:3735 #, no-c-format msgid "DF length difference" msgstr "Duplex unterschiedliche Seitenlänge" -#: backend/fujitsu.c:3732 +#: backend/fujitsu.c:3736 #, no-c-format msgid "Difference in page length to trigger double feed error" msgstr "Aktiviere Duplexfehler bei unterschiedlicher Seitenlänge" -#: backend/fujitsu.c:3755 +#: backend/fujitsu.c:3759 #, no-c-format msgid "DF recovery mode" msgstr "Duplex Fehlerbehebung" -#: backend/fujitsu.c:3756 +#: backend/fujitsu.c:3760 #, no-c-format msgid "Request scanner to reverse feed on paper jam" msgstr "Rücklauf bei Papierstau" -#: backend/fujitsu.c:3775 +#: backend/fujitsu.c:3779 #, no-c-format msgid "Paper protection" msgstr "Dokumentenschutz" -#: backend/fujitsu.c:3776 +#: backend/fujitsu.c:3780 #, no-c-format msgid "Request scanner to predict jams in the ADF" msgstr "Papierstau in der Duplexeinheit prognostizieren" -#: backend/fujitsu.c:3795 +#: backend/fujitsu.c:3799 #, no-c-format msgid "Advanced paper protection" msgstr "Erweiterter Dokumentenschutz" -#: backend/fujitsu.c:3796 +#: backend/fujitsu.c:3800 #, no-c-format msgid "Request scanner to predict jams in the ADF using improved sensors" msgstr "" "Papierstau in der Duplexeinheit mit verbesserten Sensoren prognostizieren" -#: backend/fujitsu.c:3815 +#: backend/fujitsu.c:3819 #, no-c-format msgid "Staple detection" msgstr "Heftklammer - Erkennung" -#: backend/fujitsu.c:3816 +#: backend/fujitsu.c:3820 #, no-c-format msgid "Request scanner to detect jams in the ADF caused by staples" msgstr "" "von Heftklammern verursachter Papierstau im Dokumenteneinzug erkennen" -#: backend/fujitsu.c:3835 +#: backend/fujitsu.c:3839 #, no-c-format msgid "Background color" msgstr "Hintergrundfarbe" -#: backend/fujitsu.c:3836 +#: backend/fujitsu.c:3840 #, no-c-format msgid "" "Set color of background for scans. May conflict with overscan option" msgstr "Hintergrundfarbe für Scans. Steht im Konflikt mit Overscan" -#: backend/fujitsu.c:3856 +#: backend/fujitsu.c:3860 #, no-c-format msgid "Dropout color" msgstr "Dropout-Farbe" -#: backend/fujitsu.c:3857 +#: backend/fujitsu.c:3861 #, no-c-format msgid "" "One-pass scanners use only one color during gray or binary scanning, " @@ -2622,32 +2651,32 @@ msgstr "" "One-Pass-Scanner scannen nur eine Farbe bei Graustufen und " "Strichzeichnungs-Scans, hilfreich bei farbigem Papier oder Tinte" -#: backend/fujitsu.c:3880 +#: backend/fujitsu.c:3884 #, no-c-format msgid "Buffer mode" msgstr "Scannerspeicher" -#: backend/fujitsu.c:3881 +#: backend/fujitsu.c:3885 #, no-c-format msgid "Request scanner to read pages quickly from ADF into internal memory" msgstr "Aktiviere schnelle Duplex Scans in den Scannerspeicher" -#: backend/fujitsu.c:3900 +#: backend/fujitsu.c:3904 #, no-c-format msgid "Prepick" msgstr "Prepick" -#: backend/fujitsu.c:3901 +#: backend/fujitsu.c:3905 #, no-c-format msgid "Request scanner to grab next page from ADF" msgstr "Nächste Seite vom Dokumenteneinzug einziehen" -#: backend/fujitsu.c:3920 +#: backend/fujitsu.c:3924 #, no-c-format msgid "Overscan" msgstr "Overscan" -#: backend/fujitsu.c:3921 +#: backend/fujitsu.c:3925 #, no-c-format msgid "" "Collect a few mm of background on top side of scan, before paper enters " @@ -2658,23 +2687,23 @@ msgstr "" "kleine Vorlagen auf einer Seite gesammelt werden können. Steht im " "Konflikt mit Hintergrundfarbe." -#: backend/fujitsu.c:3939 +#: backend/fujitsu.c:3943 #, no-c-format msgid "Sleep timer" msgstr "Sleep Timer" -#: backend/fujitsu.c:3940 +#: backend/fujitsu.c:3944 #, no-c-format msgid "" "Time in minutes until the internal power supply switches to sleep mode" msgstr "Zeit in Minuten nachdem der Scanner in den Ruhezustand wechselt" -#: backend/fujitsu.c:3958 +#: backend/fujitsu.c:3962 #, no-c-format msgid "Off timer" msgstr "Ausschalt Timer" -#: backend/fujitsu.c:3959 +#: backend/fujitsu.c:3963 #, no-c-format msgid "" "Time in minutes until the internal power supply switches the scanner " @@ -2683,42 +2712,42 @@ msgstr "" "Zeit in Minuten, nachdem sich der Scanner selbständig ausschaltet. Wird " "auf die nächsten 15 Minuten gerundet. 0 = deaktiviert." -#: backend/fujitsu.c:3977 +#: backend/fujitsu.c:3981 #, no-c-format msgid "Duplex offset" msgstr "Duplex Offset" -#: backend/fujitsu.c:3978 +#: backend/fujitsu.c:3982 #, no-c-format msgid "Adjust front/back offset" msgstr "Vorder-/Rückseiten Offset" -#: backend/fujitsu.c:3995 backend/plustek.c:1025 backend/umax_pp.c:800 +#: backend/fujitsu.c:3999 backend/plustek.c:1025 backend/umax_pp.c:794 #, no-c-format msgid "Green offset" msgstr "Offset grüner Kanal" -#: backend/fujitsu.c:3996 +#: backend/fujitsu.c:4000 #, no-c-format msgid "Adjust green/red offset" msgstr "Rot/Grün Offset" -#: backend/fujitsu.c:4013 backend/plustek.c:1041 backend/umax_pp.c:812 +#: backend/fujitsu.c:4017 backend/plustek.c:1041 backend/umax_pp.c:806 #, no-c-format msgid "Blue offset" msgstr "Offset blauer Kanal" -#: backend/fujitsu.c:4014 +#: backend/fujitsu.c:4018 #, no-c-format msgid "Adjust blue/red offset" msgstr "Blau/Rot Offset" -#: backend/fujitsu.c:4027 +#: backend/fujitsu.c:4031 #, no-c-format msgid "Low Memory" msgstr "Nicht genügend Speicher" -#: backend/fujitsu.c:4028 +#: backend/fujitsu.c:4032 #, no-c-format msgid "" "Limit driver memory usage for use in embedded systems. Causes some " @@ -2732,12 +2761,12 @@ msgstr "" "gewährleistet werden. Diese Option funktioniert nur mit selbst " "erstellter Scansoftware." -#: backend/fujitsu.c:4043 +#: backend/fujitsu.c:4047 #, no-c-format msgid "Duplex side" msgstr "Duplex Seite" -#: backend/fujitsu.c:4044 +#: backend/fujitsu.c:4048 #, no-c-format msgid "" "Tells which side (0=front, 1=back) of a duplex scan the next call to " @@ -2746,52 +2775,52 @@ msgstr "" "Wählt die Seite vom nächsten Duplexscan aus aus (0 = Vorderseite, 1 = " "Rückseite), welche von sane_read zurückgegeben wird." -#: backend/fujitsu.c:4055 +#: backend/fujitsu.c:4059 #, no-c-format msgid "Hardware deskew and crop" msgstr "Hardware Entzerrung und Zuschnitt" -#: backend/fujitsu.c:4056 +#: backend/fujitsu.c:4060 #, no-c-format msgid "Request scanner to rotate and crop pages digitally." msgstr "Scanner rotiert und beschneidet den Scan digital." -#: backend/fujitsu.c:4067 backend/kvs1025_opt.c:871 +#: backend/fujitsu.c:4071 backend/kvs1025_opt.c:871 #, no-c-format msgid "Software deskew" msgstr "Software Entzerrung" -#: backend/fujitsu.c:4068 +#: backend/fujitsu.c:4072 #, no-c-format msgid "Request driver to rotate skewed pages digitally." msgstr "Treiber rotiert verzerrte Scans." -#: backend/fujitsu.c:4080 backend/kvs1025_opt.c:880 +#: backend/fujitsu.c:4084 backend/kvs1025_opt.c:880 #, no-c-format msgid "Software despeckle diameter" msgstr "Software Fehlerkorrektur" -#: backend/fujitsu.c:4081 +#: backend/fujitsu.c:4085 #, no-c-format msgid "Maximum diameter of lone dots to remove from scan." msgstr "Max. Durchmesser einzelner zu entfernender Fehlstellen im Scan." -#: backend/fujitsu.c:4100 backend/genesys/genesys.cpp:4117 +#: backend/fujitsu.c:4104 backend/genesys/genesys.cpp:4159 #, no-c-format msgid "Software crop" msgstr "Software Zuschnitt" -#: backend/fujitsu.c:4101 +#: backend/fujitsu.c:4105 #, no-c-format msgid "Request driver to remove border from pages digitally." msgstr "Treiber entfernt Ränder von Scans." -#: backend/fujitsu.c:4130 +#: backend/fujitsu.c:4134 #, no-c-format msgid "Halt on Cancel" msgstr "Einzugshalt bei Abbruch" -#: backend/fujitsu.c:4131 +#: backend/fujitsu.c:4135 #, no-c-format msgid "" "Request driver to halt the paper feed instead of eject during a cancel." @@ -2799,102 +2828,102 @@ msgstr "" "Bei einem Abbruch verbleibt die Seite im Dukumenteneinzug und wird nicht " "ausgeworfen." -#: backend/fujitsu.c:4142 +#: backend/fujitsu.c:4146 #, no-c-format msgid "Endorser Options" msgstr "Stempel Optionen" -#: backend/fujitsu.c:4143 +#: backend/fujitsu.c:4147 #, no-c-format msgid "Controls for endorser unit" msgstr "Einstellungen für Stempel" -#: backend/fujitsu.c:4154 +#: backend/fujitsu.c:4158 #, no-c-format msgid "Endorser" msgstr "Stempel" -#: backend/fujitsu.c:4155 +#: backend/fujitsu.c:4159 #, no-c-format msgid "Enable endorser unit" msgstr "Aktiviere Stempel" -#: backend/fujitsu.c:4170 +#: backend/fujitsu.c:4174 #, no-c-format msgid "Endorser bits" msgstr "Stempelgröße" -#: backend/fujitsu.c:4171 +#: backend/fujitsu.c:4175 #, no-c-format msgid "Determines maximum endorser counter value." msgstr "Max. Wert für Stempelzähler." -#: backend/fujitsu.c:4196 +#: backend/fujitsu.c:4200 #, no-c-format msgid "Endorser value" msgstr "Stempelwert" -#: backend/fujitsu.c:4197 +#: backend/fujitsu.c:4201 #, no-c-format msgid "Initial endorser counter value." msgstr "Anfangswert für Stempelzähler," -#: backend/fujitsu.c:4220 +#: backend/fujitsu.c:4224 #, no-c-format msgid "Endorser step" msgstr "Schrittweite für Stempelzähler" -#: backend/fujitsu.c:4221 +#: backend/fujitsu.c:4225 #, no-c-format msgid "Change endorser counter value by this much for each page." msgstr "Schrittweite für Stempelzähler." -#: backend/fujitsu.c:4244 +#: backend/fujitsu.c:4248 #, no-c-format msgid "Endorser Y" msgstr "Stempel Y" -#: backend/fujitsu.c:4245 +#: backend/fujitsu.c:4249 #, no-c-format msgid "Endorser print offset from top of paper." msgstr "Stempelabstand zum oberen Seitenrand." -#: backend/fujitsu.c:4270 +#: backend/fujitsu.c:4274 #, no-c-format msgid "Endorser font" msgstr "Stempel Schriftart" -#: backend/fujitsu.c:4271 +#: backend/fujitsu.c:4275 #, no-c-format msgid "Endorser printing font." msgstr "Stempel Schriftart." -#: backend/fujitsu.c:4300 +#: backend/fujitsu.c:4304 #, no-c-format msgid "Endorser direction" msgstr "Stempel Ausrichtung" -#: backend/fujitsu.c:4301 +#: backend/fujitsu.c:4305 #, no-c-format msgid "Endorser printing direction." msgstr "Stempel Druckrichtung" -#: backend/fujitsu.c:4325 +#: backend/fujitsu.c:4329 #, no-c-format msgid "Endorser side" msgstr "Stempelseite" -#: backend/fujitsu.c:4326 +#: backend/fujitsu.c:4330 #, no-c-format msgid "Endorser printing side, requires hardware support to change" msgstr "Druckseite für Stempel; muss vom Scanner unterstützt werden" -#: backend/fujitsu.c:4351 +#: backend/fujitsu.c:4355 #, no-c-format msgid "Endorser string" msgstr "Stempel Zeichenkette" -#: backend/fujitsu.c:4352 +#: backend/fujitsu.c:4356 #, no-c-format msgid "" "Endorser alphanumeric print format. %05ud or %08ud at the end will be " @@ -2903,212 +2932,198 @@ msgstr "" "Stempel als alphanumerische Zeichenkette. %05ud oder %08ud am Ende wird " "durch den Stempelzähler ersetzt." -#: backend/fujitsu.c:4379 +#: backend/fujitsu.c:4383 #, no-c-format msgid "Top edge" msgstr "Obere Kante" -#: backend/fujitsu.c:4380 +#: backend/fujitsu.c:4384 #, no-c-format msgid "Paper is pulled partly into ADF" msgstr "Papier wurde teilweise in den Dokumenteneinzug eingezogen" -#: backend/fujitsu.c:4391 +#: backend/fujitsu.c:4395 #, no-c-format msgid "A3 paper" msgstr "A3 Vorlage" -#: backend/fujitsu.c:4392 +#: backend/fujitsu.c:4396 #, no-c-format msgid "A3 paper detected" msgstr "A3 Vorlage erkannt" -#: backend/fujitsu.c:4403 +#: backend/fujitsu.c:4407 #, no-c-format msgid "B4 paper" msgstr "B4 Vorlage" -#: backend/fujitsu.c:4404 +#: backend/fujitsu.c:4408 #, no-c-format msgid "B4 paper detected" msgstr "B4 Vorlage erkannt" -#: backend/fujitsu.c:4415 +#: backend/fujitsu.c:4419 #, no-c-format msgid "A4 paper" msgstr "A4 Vorlage" -#: backend/fujitsu.c:4416 +#: backend/fujitsu.c:4420 #, no-c-format msgid "A4 paper detected" msgstr "A4 Vorlage erkannt" -#: backend/fujitsu.c:4427 +#: backend/fujitsu.c:4431 #, no-c-format msgid "B5 paper" msgstr "B5 Vorlage" -#: backend/fujitsu.c:4428 +#: backend/fujitsu.c:4432 #, no-c-format msgid "B5 paper detected" msgstr "B5 Vorlage erkannt" -#: backend/fujitsu.c:4451 +#: backend/fujitsu.c:4455 #, no-c-format msgid "OMR or DF" msgstr "OMR oder DF" -#: backend/fujitsu.c:4452 +#: backend/fujitsu.c:4456 #, no-c-format msgid "OMR or double feed detected" msgstr "OMR oder Double Feed erkannt" -#: backend/fujitsu.c:4475 +#: backend/fujitsu.c:4479 #, no-c-format msgid "Power saving" msgstr "Energiesparmodus" -#: backend/fujitsu.c:4476 +#: backend/fujitsu.c:4480 #, no-c-format msgid "Scanner in power saving mode" msgstr "Der Scanner befindet im Energiesparmodus" -#: backend/fujitsu.c:4499 +#: backend/fujitsu.c:4503 #, no-c-format msgid "Manual feed" msgstr "Manueller Einzug" -#: backend/fujitsu.c:4500 +#: backend/fujitsu.c:4504 #, no-c-format msgid "Manual feed selected" msgstr "Manueller Einzug ausgewählt" -#: backend/fujitsu.c:4523 +#: backend/fujitsu.c:4527 #, no-c-format msgid "Function" msgstr "Funktion" -#: backend/fujitsu.c:4524 +#: backend/fujitsu.c:4528 #, no-c-format msgid "Function character on screen" msgstr "Funktionszeichen auf dem Bildschirm" -#: backend/fujitsu.c:4535 +#: backend/fujitsu.c:4539 #, no-c-format msgid "Ink low" msgstr "wenig Tinte" -#: backend/fujitsu.c:4536 +#: backend/fujitsu.c:4540 #, no-c-format msgid "Imprinter ink running low" msgstr "Wenig Imprinter Tinte" -#: backend/fujitsu.c:4547 +#: backend/fujitsu.c:4551 #, no-c-format msgid "Double feed" msgstr "Double Feed" -#: backend/fujitsu.c:4548 +#: backend/fujitsu.c:4552 #, no-c-format msgid "Double feed detected" msgstr "Double Feed erkannt" -#: backend/fujitsu.c:4559 +#: backend/fujitsu.c:4563 #, no-c-format msgid "Error code" msgstr "Fehlercode" -#: backend/fujitsu.c:4560 +#: backend/fujitsu.c:4564 #, no-c-format msgid "Hardware error code" msgstr "Hardwarefehler" -#: backend/fujitsu.c:4571 +#: backend/fujitsu.c:4575 #, no-c-format msgid "Skew angle" msgstr "Schräglaufwinkel" -#: backend/fujitsu.c:4572 +#: backend/fujitsu.c:4576 #, no-c-format msgid "Requires black background for scanning" msgstr "Schwarzer Hintergrund erforderlich" -#: backend/fujitsu.c:4583 +#: backend/fujitsu.c:4587 #, no-c-format msgid "Ink remaining" msgstr "verbleibende Tinte" -#: backend/fujitsu.c:4584 +#: backend/fujitsu.c:4588 #, no-c-format msgid "Imprinter ink level" msgstr "Imprinter Tintenstand" -#: backend/fujitsu.c:4595 +#: backend/fujitsu.c:4599 #, no-c-format msgid "Density" msgstr "Dichte" -#: backend/fujitsu.c:4596 +#: backend/fujitsu.c:4600 #, no-c-format msgid "Density dial" msgstr "Dichte Einstellung" -#: backend/fujitsu.c:4607 backend/fujitsu.c:4608 +#: backend/fujitsu.c:4611 backend/fujitsu.c:4612 #, no-c-format msgid "Duplex switch" msgstr "Duplexscan" -#: backend/genesys/genesys.cpp:4118 +#: backend/genesys/genesys.cpp:4160 #, no-c-format msgid "Request backend to remove border from pages digitally" msgstr "Treiber entfernt digital Ränder vom Scan" -#: backend/genesys/genesys.cpp:4127 backend/kvs1025_opt.c:912 +#: backend/genesys/genesys.cpp:4169 backend/kvs1025_opt.c:912 #, no-c-format msgid "Request driver to discard pages with low numbers of dark pixels" msgstr "Treiber verwirft Scans mit geringer Schwarzfärbung" -#: backend/genesys/genesys.cpp:4137 backend/kvs1025_opt.c:892 +#: backend/genesys/genesys.cpp:4179 backend/kvs1025_opt.c:892 #, no-c-format msgid "Software derotate" msgstr "Software Dokumentendrehung" -#: backend/genesys/genesys.cpp:4138 backend/kvs1025_opt.c:894 +#: backend/genesys/genesys.cpp:4180 backend/kvs1025_opt.c:894 #, no-c-format msgid "Request driver to detect and correct 90 degree image rotation" msgstr "Treiber erkennt und dreht um 90° verdrehte Vorlagen" -#: backend/genesys/genesys.cpp:4168 backend/pixma_sane_options.c:314 +#: backend/genesys/genesys.cpp:4210 backend/pixma/pixma_sane_options.c:314 #, no-c-format msgid "Extras" msgstr "Extras" -#: backend/genesys/genesys.cpp:4188 backend/pixma_sane_options.c:336 +#: backend/genesys/genesys.cpp:4230 backend/pixma/pixma_sane_options.c:336 #, no-c-format msgid "Dynamic threshold curve, from light to dark, normally 50-65" msgstr "" "Dynamische Schwellwertkurve, von hell zu dunkel, nomalerweise 50-65" -#: backend/genesys/genesys.cpp:4197 -#, no-c-format -msgid "Disable dynamic lineart" -msgstr "Deaktiviere dynamische Strichzeichnung" - -#: backend/genesys/genesys.cpp:4199 -#, no-c-format -msgid "" -"Disable use of a software adaptive algorithm to generate lineart relying " -"instead on hardware lineart." -msgstr "" -"Deaktiviere Software angepassten Algorithmus zur Erstellung von " -"Strichzeichnungen anstelle von Hardware-Strichzeichnungen." - -#: backend/genesys/genesys.cpp:4215 +#: backend/genesys/genesys.cpp:4240 #, no-c-format msgid "Disable interpolation" msgstr "Interpolation abschalten" -#: backend/genesys/genesys.cpp:4218 +#: backend/genesys/genesys.cpp:4243 #, no-c-format msgid "" "When using high resolutions where the horizontal resolution is smaller " @@ -3117,34 +3132,34 @@ msgstr "" "Deaktiviere horizontale Interpolation bei hoher Auflösung, bei denen die " "horizontale Auflösung kleiner ist als die vertikale." -#: backend/genesys/genesys.cpp:4227 +#: backend/genesys/genesys.cpp:4252 #, no-c-format msgid "Color filter" msgstr "Farbfilter" -#: backend/genesys/genesys.cpp:4230 +#: backend/genesys/genesys.cpp:4255 #, no-c-format msgid "When using gray or lineart this option selects the used color." msgstr "" "Diese Option wählt die verwendete Farbe für Strichzeichnungs- und " "Graustufen-Scans." -#: backend/genesys/genesys.cpp:4254 +#: backend/genesys/genesys.cpp:4279 #, no-c-format msgid "Calibration file" msgstr "Kalibrierungsdatei" -#: backend/genesys/genesys.cpp:4255 +#: backend/genesys/genesys.cpp:4280 #, no-c-format msgid "Specify the calibration file to use" msgstr "Kalibrierungsdatei auswählen" -#: backend/genesys/genesys.cpp:4272 +#: backend/genesys/genesys.cpp:4297 #, no-c-format msgid "Calibration cache expiration time" msgstr "Gültigkeitszeitraum für Kalibrierungszwischenspeicher" -#: backend/genesys/genesys.cpp:4273 +#: backend/genesys/genesys.cpp:4298 #, no-c-format msgid "" "Time (in minutes) before a cached calibration expires. A value of 0 " @@ -3154,12 +3169,12 @@ msgstr "" "Zwischenspeicher deaktiviert. Ein negativer Wert lässt die Gültigkeit " "nie ablaufen." -#: backend/genesys/genesys.cpp:4283 +#: backend/genesys/genesys.cpp:4308 #, no-c-format msgid "Lamp off time" msgstr "Lampenausschaltzeit" -#: backend/genesys/genesys.cpp:4286 +#: backend/genesys/genesys.cpp:4311 #, no-c-format msgid "" "The lamp will be turned off after the given time (in minutes). A value " @@ -3168,104 +3183,109 @@ msgstr "" "Die Lampe wird nach der angegebenen Zeit (in Minuten) ausgeschaltet. Ein " "Wert von 0 bedeutet, dass die Lampe nich ausgeschaltet wird." -#: backend/genesys/genesys.cpp:4296 +#: backend/genesys/genesys.cpp:4321 #, no-c-format msgid "Lamp off during scan" msgstr "während Scan Lampe ausschalten" -#: backend/genesys/genesys.cpp:4297 +#: backend/genesys/genesys.cpp:4322 #, no-c-format msgid "The lamp will be turned off during scan. " msgstr "Die Lampe wird beim Scannen abgeschaltet. " -#: backend/genesys/genesys.cpp:4324 backend/genesys/genesys.cpp:4325 +#: backend/genesys/genesys.cpp:4349 backend/genesys/genesys.cpp:4350 #, no-c-format msgid "File button" msgstr "Datei Taste" -#: backend/genesys/genesys.cpp:4369 backend/genesys/genesys.cpp:4370 +#: backend/genesys/genesys.cpp:4394 backend/genesys/genesys.cpp:4395 #, no-c-format msgid "OCR button" msgstr "OCR Taste" -#: backend/genesys/genesys.cpp:4381 backend/genesys/genesys.cpp:4382 +#: backend/genesys/genesys.cpp:4406 backend/genesys/genesys.cpp:4407 #, no-c-format msgid "Power button" msgstr "Einschalt Taste" -#: backend/genesys/genesys.cpp:4393 backend/genesys/genesys.cpp:4394 +#: backend/genesys/genesys.cpp:4418 backend/genesys/genesys.cpp:4419 #, no-c-format msgid "Extra button" msgstr "Zusatztaste" -#: backend/genesys/genesys.cpp:4405 backend/gt68xx.c:755 +#: backend/genesys/genesys.cpp:4430 backend/gt68xx.c:755 #, no-c-format msgid "Needs calibration" -msgstr "Benötigt Kalibirierung" +msgstr "Benötigt Kalibrierung" -#: backend/genesys/genesys.cpp:4406 backend/gt68xx.c:756 +#: backend/genesys/genesys.cpp:4431 backend/gt68xx.c:756 backend/p5.c:1928 #, no-c-format msgid "The scanner needs calibration for the current settings" msgstr "" "Der Scanner benötigt eine Kalibrierung für die momentanen Einstellungen" -#: backend/genesys/genesys.cpp:4417 backend/gt68xx.c:780 -#: backend/gt68xx.c:781 backend/pixma_sane_options.c:226 -#: backend/plustek.c:1080 +#: backend/genesys/genesys.cpp:4442 backend/gt68xx.c:780 +#: backend/gt68xx.c:781 backend/p5.c:1937 backend/p5.c:1938 +#: backend/pixma/pixma_sane_options.c:226 backend/plustek.c:1080 #, no-c-format msgid "Buttons" msgstr "Tasten" -#: backend/genesys/genesys.cpp:4426 backend/gt68xx.c:787 -#: backend/hp5400_sane.c:392 backend/hp-option.h:97 backend/niash.c:726 -#: backend/plustek.c:941 +#: backend/genesys/genesys.cpp:4451 backend/gt68xx.c:787 +#: backend/hp-option.h:97 backend/hp5400_sane.c:392 backend/niash.c:726 +#: backend/p5.c:1945 backend/plustek.c:941 #, no-c-format msgid "Calibrate" msgstr "Kalibrierung" -#: backend/genesys/genesys.cpp:4428 backend/gt68xx.c:789 +#: backend/genesys/genesys.cpp:4453 backend/gt68xx.c:789 backend/p5.c:1947 #, no-c-format msgid "Start calibration using special sheet" msgstr "Starte den Kalibrierungsprozess mit einem Spezialblatt" -#: backend/genesys/genesys.cpp:4440 backend/gt68xx.c:802 +#: backend/genesys/genesys.cpp:4465 backend/gt68xx.c:802 backend/p5.c:1958 #, no-c-format msgid "Clear calibration" msgstr "Kalibrierung zurücksetzen" -#: backend/genesys/genesys.cpp:4441 backend/gt68xx.c:803 +#: backend/genesys/genesys.cpp:4466 backend/gt68xx.c:803 backend/p5.c:1960 #, no-c-format msgid "Clear calibration cache" msgstr "Kalibrierungszwischenspeicher löschen" -#: backend/genesys/genesys.cpp:4451 +#: backend/genesys/genesys.cpp:4476 #, no-c-format msgid "Force calibration" msgstr "Kalibrierung erzwingen" -#: backend/genesys/genesys.cpp:4452 +#: backend/genesys/genesys.cpp:4477 #, no-c-format msgid "Force calibration ignoring all and any calibration caches" msgstr "Kalibrierung trotz Daten im Zwischenspeicher erzwingen" -#: backend/genesys/genesys.cpp:4462 +#: backend/genesys/genesys.cpp:4487 #, no-c-format msgid "Ignore internal offsets" msgstr "Interne Offsets ignorieren" -#: backend/genesys/genesys.cpp:4464 +#: backend/genesys/genesys.cpp:4489 #, no-c-format msgid "" "Acquires the image including the internal calibration areas of the " "scanner" msgstr "Bild mit Kalibrierungsbereichen scannen" -#: backend/gt68xx.c:149 backend/ma1509.c:108 backend/mustek.c:164 -#: backend/snapscan-options.c:87 backend/umax.c:182 +#: backend/genesys/genesys.h:79 backend/gt68xx.c:149 backend/ma1509.c:108 +#: backend/mustek.c:164 backend/snapscan-options.c:87 backend/umax.c:182 #, no-c-format msgid "Transparency Adapter" msgstr "Durchlichteinheit" +#: backend/genesys/genesys.h:80 +#, no-c-format +msgid "Transparency Adapter Infrared" +msgstr "Infrarot-Durchlichteinheit" + #: backend/gt68xx.c:470 #, no-c-format msgid "Gray mode color" @@ -3375,6 +3395,311 @@ msgstr "Gammawert" msgid "Sets the gamma value of all channels." msgstr "Legt den Gammawert für alle Kanäle fest." +#: backend/hp-option.c:2987 +#, no-c-format +msgid "Advanced Options" +msgstr "Erweiterte Optionen" + +#: backend/hp-option.c:3044 +#, no-c-format +msgid "Coarse" +msgstr "Grob" + +#: backend/hp-option.c:3045 +#, no-c-format +msgid "Fine" +msgstr "Fein" + +#: backend/hp-option.c:3046 +#, no-c-format +msgid "Bayer" +msgstr "Bayer" + +#: backend/hp-option.c:3049 backend/hp-option.c:3100 +#, no-c-format +msgid "Custom" +msgstr "Benutzerdefiniert" + +#: backend/hp-option.c:3090 backend/hp-option.c:3146 +#: backend/hp-option.c:3161 +#, no-c-format +msgid "Auto" +msgstr "Automatisch" + +#: backend/hp-option.c:3091 +#, no-c-format +msgid "NTSC RGB" +msgstr "NTSC RGB" + +#: backend/hp-option.c:3092 +#, no-c-format +msgid "XPA RGB" +msgstr "XPA RGB" + +#: backend/hp-option.c:3093 +#, no-c-format +msgid "Pass-through" +msgstr "Unverändert" + +#: backend/hp-option.c:3094 +#, no-c-format +msgid "NTSC Gray" +msgstr "NTSC Grau" + +#: backend/hp-option.c:3095 +#, no-c-format +msgid "XPA Gray" +msgstr "XPA Grau" + +#: backend/hp-option.c:3147 +#, no-c-format +msgid "Slow" +msgstr "Langsam" + +#: backend/hp-option.c:3148 backend/hp-option.c:3255 +#: backend/kvs40xx_opt.c:230 backend/matsushita.c:244 backend/mustek.c:149 +#: backend/plustek.c:234 backend/plustek_pp.c:203 backend/u12.c:155 +#, no-c-format +msgid "Normal" +msgstr "Normal" + +#: backend/hp-option.c:3149 +#, no-c-format +msgid "Fast" +msgstr "Schnell" + +#: backend/hp-option.c:3150 +#, no-c-format +msgid "Extra Fast" +msgstr "Besonders schnell" + +#: backend/hp-option.c:3163 +#, no-c-format +msgid "2-pixel" +msgstr "2 Pixel" + +#: backend/hp-option.c:3164 +#, no-c-format +msgid "4-pixel" +msgstr "4 Pixel" + +#: backend/hp-option.c:3165 +#, no-c-format +msgid "8-pixel" +msgstr "8 Pixel" + +#: backend/hp-option.c:3176 +#, no-c-format +msgid "Print" +msgstr "Foto" + +#: backend/hp-option.c:3177 backend/hp3900_sane.c:427 +#: backend/hp3900_sane.c:1019 +#, no-c-format +msgid "Slide" +msgstr "Dia" + +#: backend/hp-option.c:3178 +#, no-c-format +msgid "Film-strip" +msgstr "Film-Streifen" + +#: backend/hp-option.c:3256 backend/hp5590.c:93 +#, no-c-format +msgid "ADF" +msgstr "Automatischer Dokumenteneinzug" + +#: backend/hp-option.c:3257 +#, no-c-format +msgid "XPA" +msgstr "XPA" + +#: backend/hp-option.c:3331 backend/hp-option.c:3344 +#, no-c-format +msgid "Conditional" +msgstr "Bedingt" + +#: backend/hp-option.c:3417 +#, no-c-format +msgid "Experiment" +msgstr "Experiment" + +#: backend/hp-option.h:60 +#, no-c-format +msgid "Sharpening" +msgstr "Schärfen" + +#: backend/hp-option.h:61 +#, no-c-format +msgid "Set sharpening value." +msgstr "Legt den Wert für die Schärfe fest." + +#: backend/hp-option.h:66 +#, no-c-format +msgid "Auto Threshold" +msgstr "Automatischer Schwellwert" + +#: backend/hp-option.h:68 +#, no-c-format +msgid "Enable automatic determination of threshold for line-art scans." +msgstr "" +"Schaltet die automatische Bestimmung des Schwellwerts für den Schwarz-" +"Weiß-Modus ein." + +#: backend/hp-option.h:74 +#, no-c-format +msgid "Select smoothing filter." +msgstr "Wählt den Glättungs-Filter aus." + +#: backend/hp-option.h:79 +#, no-c-format +msgid "Unload media after scan" +msgstr "Medium nach dem Scannen auswerfen" + +#: backend/hp-option.h:80 +#, no-c-format +msgid "Unloads the media after a scan." +msgstr "Wirft das Medium nach dem Scan aus." + +#: backend/hp-option.h:85 +#, no-c-format +msgid "Change document" +msgstr "Dokument wechseln" + +#: backend/hp-option.h:86 +#, no-c-format +msgid "Change Document." +msgstr "Dokument wechseln." + +#: backend/hp-option.h:91 +#, no-c-format +msgid "Unload" +msgstr "Auswerfen" + +#: backend/hp-option.h:92 +#, no-c-format +msgid "Unload Document." +msgstr "Dokument auswerfen." + +#: backend/hp-option.h:98 +#, no-c-format +msgid "Start calibration process." +msgstr "Startet den Kalibrierungsprozess." + +#: backend/hp-option.h:103 +#, no-c-format +msgid "Media" +msgstr "Medium" + +#: backend/hp-option.h:104 +#, no-c-format +msgid "Set type of media." +msgstr "Legt den Typ des Mediums fest." + +#: backend/hp-option.h:109 +#, no-c-format +msgid "Exposure time" +msgstr "Belichtungszeit" + +#: backend/hp-option.h:111 +#, no-c-format +msgid "" +"A longer exposure time lets the scanner collect more light. Suggested " +"use is 175% for prints, 150% for normal slides and \"Negative\" for " +"negative film. For dark (underexposed) images you can increase this " +"value." +msgstr "" +"Bei einer längeren Belichtungszeit kann der Scanner mehr Licht " +"auffangen. Empfohlene Werte: 175% für Fotos, 150% für normale Dias und " +"\"Negativ\" für Negativ-Filme. Für dunkle (unterentwickelte) Bilder kann " +"dieser Wert vergrößert werden." + +#: backend/hp-option.h:119 backend/hp-option.h:126 +#, no-c-format +msgid "Color Matrix" +msgstr "Farbmatrix" + +#: backend/hp-option.h:121 +#, no-c-format +msgid "Set the scanner's color matrix." +msgstr "Legt die Farbmatrix für den Scanner fest." + +#: backend/hp-option.h:127 +#, no-c-format +msgid "Custom color matrix." +msgstr "Benutzerdefinierte Farbmatrix." + +#: backend/hp-option.h:132 +#, no-c-format +msgid "Mono Color Matrix" +msgstr "Graue Farbmatrix" + +#: backend/hp-option.h:133 +#, no-c-format +msgid "Custom color matrix for grayscale scans." +msgstr "Benutzerdefinierte Farbmatrix für Graustufenscans." + +#: backend/hp-option.h:138 +#, no-c-format +msgid "Mirror horizontal" +msgstr "Horizontal spiegeln" + +#: backend/hp-option.h:139 +#, no-c-format +msgid "Mirror image horizontally." +msgstr "Bild horizontal spiegeln." + +#: backend/hp-option.h:144 +#, no-c-format +msgid "Mirror vertical" +msgstr "Vertikal spiegeln" + +#: backend/hp-option.h:145 +#, no-c-format +msgid "Mirror image vertically." +msgstr "Bild vertikal spiegeln." + +#: backend/hp-option.h:150 +#, no-c-format +msgid "Update options" +msgstr "Optionen aktualisieren" + +#: backend/hp-option.h:151 +#, no-c-format +msgid "Update options." +msgstr "Optionen aktualisieren." + +#: backend/hp-option.h:156 +#, no-c-format +msgid "8 bit output" +msgstr "8-Bit-Ausgabe" + +#: backend/hp-option.h:158 +#, no-c-format +msgid "Use bit depth greater eight internally, but output only eight bits." +msgstr "" +"Benutze intern eine Frabtiefe von mehr als 8 Bit, extern aber nur 8 Bit." + +#: backend/hp-option.h:164 +#, no-c-format +msgid "Front button wait" +msgstr "Warten auf vordere Taste" + +#: backend/hp-option.h:165 +#, no-c-format +msgid "Wait to scan for front-panel button push." +msgstr "Warte mit dem Scan auf das Drücken der vorderen Taste." + +#: backend/hp-option.h:172 +#, no-c-format +msgid "Shut off lamp" +msgstr "Lampe ausschalten" + +#: backend/hp-option.h:173 +#, no-c-format +msgid "Shut off scanner lamp." +msgstr "Schalte Scannerlampe aus." + #: backend/hp3500.c:1020 #, no-c-format msgid "Geometry Group" @@ -3385,12 +3710,6 @@ msgstr "Geometrie" msgid "Scan Mode Group" msgstr "Scanmodus" -#: backend/hp3900_sane.c:427 backend/hp3900_sane.c:1019 -#: backend/hp-option.c:3177 -#, no-c-format -msgid "Slide" -msgstr "Dia" - #: backend/hp3900_sane.c:1405 #, no-c-format msgid "Scanner model" @@ -3593,11 +3912,6 @@ msgstr "Schaltet die Lampe an oder aus." msgid "Calibrates for black and white level." msgstr "Kalibriert Schwarz- und Weisswert." -#: backend/hp5590.c:93 backend/hp-option.c:3256 -#, no-c-format -msgid "ADF" -msgstr "Automatischer Dokumenteneinzug" - #: backend/hp5590.c:95 #, no-c-format msgid "TMA Slides" @@ -3714,300 +4028,6 @@ msgstr "" "Farbwerte für Füllmodus 'Farbe'. RGB = r*65536+256*g+b oder Grauwert " "(Vorgabe = Violet oder Grau)" -#: backend/hp-option.c:2987 -#, no-c-format -msgid "Advanced Options" -msgstr "Erweiterte Optionen" - -#: backend/hp-option.c:3044 -#, no-c-format -msgid "Coarse" -msgstr "Grob" - -#: backend/hp-option.c:3045 -#, no-c-format -msgid "Fine" -msgstr "Fein" - -#: backend/hp-option.c:3046 -#, no-c-format -msgid "Bayer" -msgstr "Bayer" - -#: backend/hp-option.c:3049 backend/hp-option.c:3100 -#, no-c-format -msgid "Custom" -msgstr "Benutzerdefiniert" - -#: backend/hp-option.c:3090 backend/hp-option.c:3146 -#: backend/hp-option.c:3161 -#, no-c-format -msgid "Auto" -msgstr "Automatisch" - -#: backend/hp-option.c:3091 -#, no-c-format -msgid "NTSC RGB" -msgstr "NTSC RGB" - -#: backend/hp-option.c:3092 -#, no-c-format -msgid "XPA RGB" -msgstr "XPA RGB" - -#: backend/hp-option.c:3093 -#, no-c-format -msgid "Pass-through" -msgstr "Unverändert" - -#: backend/hp-option.c:3094 -#, no-c-format -msgid "NTSC Gray" -msgstr "NTSC Grau" - -#: backend/hp-option.c:3095 -#, no-c-format -msgid "XPA Gray" -msgstr "XPA Grau" - -#: backend/hp-option.c:3147 -#, no-c-format -msgid "Slow" -msgstr "Langsam" - -#: backend/hp-option.c:3148 backend/hp-option.c:3255 -#: backend/kvs40xx_opt.c:230 backend/matsushita.c:244 backend/mustek.c:149 -#: backend/plustek.c:234 backend/plustek_pp.c:203 backend/u12.c:155 -#, no-c-format -msgid "Normal" -msgstr "Normal" - -#: backend/hp-option.c:3149 -#, no-c-format -msgid "Fast" -msgstr "Schnell" - -#: backend/hp-option.c:3150 -#, no-c-format -msgid "Extra Fast" -msgstr "Besonders schnell" - -#: backend/hp-option.c:3163 -#, no-c-format -msgid "2-pixel" -msgstr "2 Pixel" - -#: backend/hp-option.c:3164 -#, no-c-format -msgid "4-pixel" -msgstr "4 Pixel" - -#: backend/hp-option.c:3165 -#, no-c-format -msgid "8-pixel" -msgstr "8 Pixel" - -#: backend/hp-option.c:3176 -#, no-c-format -msgid "Print" -msgstr "Foto" - -#: backend/hp-option.c:3178 -#, no-c-format -msgid "Film-strip" -msgstr "Film-Streifen" - -#: backend/hp-option.c:3257 -#, no-c-format -msgid "XPA" -msgstr "XPA" - -#: backend/hp-option.c:3331 backend/hp-option.c:3344 -#, no-c-format -msgid "Conditional" -msgstr "Bedingt" - -#: backend/hp-option.c:3417 -#, no-c-format -msgid "Experiment" -msgstr "Experiment" - -#: backend/hp-option.h:60 -#, no-c-format -msgid "Sharpening" -msgstr "Schärfen" - -#: backend/hp-option.h:61 -#, no-c-format -msgid "Set sharpening value." -msgstr "Legt den Wert für die Schärfe fest." - -#: backend/hp-option.h:66 -#, no-c-format -msgid "Auto Threshold" -msgstr "Automatischer Schwellwert" - -#: backend/hp-option.h:68 -#, no-c-format -msgid "Enable automatic determination of threshold for line-art scans." -msgstr "" -"Schaltet die automatische Bestimmung des Schwellwerts für den Schwarz-" -"Weiß-Modus ein." - -#: backend/hp-option.h:74 -#, no-c-format -msgid "Select smoothing filter." -msgstr "Wählt den Glättungs-Filter aus." - -#: backend/hp-option.h:79 -#, no-c-format -msgid "Unload media after scan" -msgstr "Medium nach dem Scannen auswerfen" - -#: backend/hp-option.h:80 -#, no-c-format -msgid "Unloads the media after a scan." -msgstr "Wirft das Medium nach dem Scan aus." - -#: backend/hp-option.h:85 -#, no-c-format -msgid "Change document" -msgstr "Dokument wechseln" - -#: backend/hp-option.h:86 -#, no-c-format -msgid "Change Document." -msgstr "Dokument wechseln." - -#: backend/hp-option.h:91 -#, no-c-format -msgid "Unload" -msgstr "Auswerfen" - -#: backend/hp-option.h:92 -#, no-c-format -msgid "Unload Document." -msgstr "Dokument auswerfen." - -#: backend/hp-option.h:98 -#, no-c-format -msgid "Start calibration process." -msgstr "Startet den Kalibrierungsprozess." - -#: backend/hp-option.h:103 -#, no-c-format -msgid "Media" -msgstr "Medium" - -#: backend/hp-option.h:104 -#, no-c-format -msgid "Set type of media." -msgstr "Legt den Typ des Mediums fest." - -#: backend/hp-option.h:109 -#, no-c-format -msgid "Exposure time" -msgstr "Belichtungszeit" - -#: backend/hp-option.h:111 -#, no-c-format -msgid "" -"A longer exposure time lets the scanner collect more light. Suggested " -"use is 175% for prints, 150% for normal slides and \"Negative\" for " -"negative film. For dark (underexposed) images you can increase this " -"value." -msgstr "" -"Bei einer längeren Belichtungszeit kann der Scanner mehr Licht " -"auffangen. Empfohlene Werte: 175% für Fotos, 150% für normale Dias und " -"\"Negativ\" für Negativ-Filme. Für dunkle (unterentwickelte) Bilder kann " -"dieser Wert vergrößert werden." - -#: backend/hp-option.h:119 backend/hp-option.h:126 -#, no-c-format -msgid "Color Matrix" -msgstr "Farbmatrix" - -#: backend/hp-option.h:121 -#, no-c-format -msgid "Set the scanner's color matrix." -msgstr "Legt die Farbmatrix für den Scanner fest." - -#: backend/hp-option.h:127 -#, no-c-format -msgid "Custom color matrix." -msgstr "Benutzerdefinierte Farbmatrix." - -#: backend/hp-option.h:132 -#, no-c-format -msgid "Mono Color Matrix" -msgstr "Graue Farbmatrix" - -#: backend/hp-option.h:133 -#, no-c-format -msgid "Custom color matrix for grayscale scans." -msgstr "Benutzerdefinierte Farbmatrix für Graustufenscans." - -#: backend/hp-option.h:138 -#, no-c-format -msgid "Mirror horizontal" -msgstr "Horizontal spiegeln" - -#: backend/hp-option.h:139 -#, no-c-format -msgid "Mirror image horizontally." -msgstr "Bild horizontal spiegeln." - -#: backend/hp-option.h:144 -#, no-c-format -msgid "Mirror vertical" -msgstr "Vertikal spiegeln" - -#: backend/hp-option.h:145 -#, no-c-format -msgid "Mirror image vertically." -msgstr "Bild vertikal spiegeln." - -#: backend/hp-option.h:150 -#, no-c-format -msgid "Update options" -msgstr "Optionen aktualisieren" - -#: backend/hp-option.h:151 -#, no-c-format -msgid "Update options." -msgstr "Optionen aktualisieren." - -#: backend/hp-option.h:156 -#, no-c-format -msgid "8 bit output" -msgstr "8-Bit-Ausgabe" - -#: backend/hp-option.h:158 -#, no-c-format -msgid "Use bit depth greater eight internally, but output only eight bits." -msgstr "" -"Benutze intern eine Frabtiefe von mehr als 8 Bit, extern aber nur 8 Bit." - -#: backend/hp-option.h:164 -#, no-c-format -msgid "Front button wait" -msgstr "Warten auf vordere Taste" - -#: backend/hp-option.h:165 -#, no-c-format -msgid "Wait to scan for front-panel button push." -msgstr "Warte mit dem Scan auf das Drücken der vorderen Taste." - -#: backend/hp-option.h:172 -#, no-c-format -msgid "Shut off lamp" -msgstr "Lampe ausschalten" - -#: backend/hp-option.h:173 -#, no-c-format -msgid "Shut off scanner lamp." -msgstr "Schalte Scannerlampe aus." - #: backend/kvs1025.h:51 backend/kvs20xx_opt.c:295 backend/kvs40xx_opt.c:516 #: backend/matsushita.h:219 #, no-c-format @@ -4106,7 +4126,7 @@ msgid "single" msgstr "einzeln" #: backend/kvs1025_opt.c:73 backend/kvs20xx.c:462 backend/kvs20xx_opt.c:56 -#: backend/kvs40xx.c:704 backend/kvs40xx.c:722 backend/kvs40xx_opt.c:102 +#: backend/kvs40xx.c:705 backend/kvs40xx.c:723 backend/kvs40xx_opt.c:102 #: backend/kvs40xx_opt.c:1087 #, no-c-format msgid "continuous" @@ -4405,7 +4425,7 @@ msgstr "Wählt die Bildgewichtung" #: backend/kvs1025_opt.c:807 backend/kvs1025_opt.c:808 #: backend/matsushita.c:1300 backend/matsushita.c:1301 -#: backend/pixma_sane_options.c:112 +#: backend/pixma/pixma_sane_options.c:112 #, no-c-format msgid "Gamma" msgstr "Gamma" @@ -4701,52 +4721,52 @@ msgstr "8x8 Bayer" msgid "8x8 Vertical Line" msgstr "8x8 Vertikale Linie" -#: backend/lexmark.c:273 backend/umax_pp.c:711 +#: backend/lexmark.c:273 backend/umax_pp.c:705 #, no-c-format msgid "Gain" msgstr "Verstärkung" -#: backend/lexmark.c:274 backend/umax_pp.c:712 +#: backend/lexmark.c:274 backend/umax_pp.c:706 #, no-c-format msgid "Color channels gain settings" msgstr "Farbkanal Verstärkungseinstellungen" -#: backend/lexmark.c:283 backend/umax_pp.c:719 +#: backend/lexmark.c:283 backend/umax_pp.c:713 #, no-c-format msgid "Gray gain" msgstr "Verstärkung grauer Kanal" -#: backend/lexmark.c:284 backend/umax_pp.c:720 +#: backend/lexmark.c:284 backend/umax_pp.c:714 #, no-c-format msgid "Sets gray channel gain" msgstr "Legt die Verstärkung des grauen Kanals fest" -#: backend/lexmark.c:297 backend/plustek.c:1001 backend/umax_pp.c:731 +#: backend/lexmark.c:297 backend/plustek.c:1001 backend/umax_pp.c:725 #, no-c-format msgid "Red gain" msgstr "Verstärkung roter Kanal" -#: backend/lexmark.c:298 backend/umax_pp.c:732 +#: backend/lexmark.c:298 backend/umax_pp.c:726 #, no-c-format msgid "Sets red channel gain" msgstr "Legt die Verstärkung des roten Kanals fest" -#: backend/lexmark.c:311 backend/plustek.c:1017 backend/umax_pp.c:743 +#: backend/lexmark.c:311 backend/plustek.c:1017 backend/umax_pp.c:737 #, no-c-format msgid "Green gain" msgstr "Verstärkung grüner Kanal" -#: backend/lexmark.c:312 backend/umax_pp.c:744 +#: backend/lexmark.c:312 backend/umax_pp.c:738 #, no-c-format msgid "Sets green channel gain" msgstr "Legt die Verstärkung des grünen Kanals fest" -#: backend/lexmark.c:325 backend/plustek.c:1033 backend/umax_pp.c:755 +#: backend/lexmark.c:325 backend/plustek.c:1033 backend/umax_pp.c:749 #, no-c-format msgid "Blue gain" msgstr "Verstärkung blauer Kanal" -#: backend/lexmark.c:326 backend/umax_pp.c:756 +#: backend/lexmark.c:326 backend/umax_pp.c:750 #, no-c-format msgid "Sets blue channel gain" msgstr "Legt die Verstärkung des blauen Kanals fest" @@ -4832,7 +4852,7 @@ msgstr "Eine Seite" msgid "All pages" msgstr "Alle Seiten" -#: backend/matsushita.c:1034 backend/plustek.c:1333 +#: backend/matsushita.c:1034 backend/p5_device.c:8 backend/plustek.c:1333 #, no-c-format msgid "sheetfed scanner" msgstr "Einzugsscanner" @@ -5347,27 +5367,32 @@ msgstr "" "Warte solange, bis die Helligkeit der Lampe konstant ist anstatt einfach " "40 Sekunden zu warten." -#: backend/pixma.c:397 +#: backend/p5.c:1926 +#, no-c-format +msgid "Need calibration" +msgstr "Benötigt Kalibrierung" + +#: backend/pixma/pixma.c:397 #, no-c-format msgid "Negative color" msgstr "Negativfilm Farbe" -#: backend/pixma.c:402 +#: backend/pixma/pixma.c:402 #, no-c-format msgid "Negative gray" msgstr "Negativfilm Graustufen" -#: backend/pixma.c:415 +#: backend/pixma/pixma.c:415 #, no-c-format msgid "48 bits color" msgstr "48 Bit Farbe" -#: backend/pixma.c:420 +#: backend/pixma/pixma.c:420 #, no-c-format msgid "16 bits gray" msgstr "16 Bit Graustufen" -#: backend/pixma_sane_options.c:84 +#: backend/pixma/pixma_sane_options.c:84 #, no-c-format msgid "" "Selects the scan source (such as a document-feeder). Set source before " @@ -5377,12 +5402,12 @@ msgstr "" "muss vor Scanmodus und Scanauflösung ausgewählt werden. Setzt die " "Einstellungen für Scanmodus und Scanauflösung zurück." -#: backend/pixma_sane_options.c:98 +#: backend/pixma/pixma_sane_options.c:98 #, no-c-format msgid "Button-controlled scan" msgstr "Scannen auf Tastendruck" -#: backend/pixma_sane_options.c:99 +#: backend/pixma/pixma_sane_options.c:99 #, no-c-format msgid "" "When enabled, scan process will not start immediately. To proceed, press " @@ -5393,37 +5418,37 @@ msgstr "" "drücken Sie die Taste \"SCAN\" beim MP1500 oder \"COLOR\" bei anderen " "Modellen. Zum Abbrechen drücken Sie die Taste \"GRAY\"." -#: backend/pixma_sane_options.c:232 +#: backend/pixma/pixma_sane_options.c:232 #, no-c-format msgid "Update button state" msgstr "Tastenstatus aktualisieren" -#: backend/pixma_sane_options.c:244 +#: backend/pixma/pixma_sane_options.c:244 #, no-c-format msgid "Button 1" msgstr "Taste 1" -#: backend/pixma_sane_options.c:258 +#: backend/pixma/pixma_sane_options.c:258 #, no-c-format msgid "Button 2" msgstr "Taste 2" -#: backend/pixma_sane_options.c:272 +#: backend/pixma/pixma_sane_options.c:272 #, no-c-format msgid "Type of original to scan" msgstr "Vorlagentyp" -#: backend/pixma_sane_options.c:286 +#: backend/pixma/pixma_sane_options.c:286 #, no-c-format msgid "Target operation type" msgstr "Scanziel" -#: backend/pixma_sane_options.c:348 +#: backend/pixma/pixma_sane_options.c:348 #, no-c-format msgid "ADF Waiting Time" msgstr "Wartezeit Dokumenteneinzug" -#: backend/pixma_sane_options.c:349 +#: backend/pixma/pixma_sane_options.c:349 #, no-c-format msgid "" "When set, the scanner waits upto the specified time in seconds for a new " @@ -5517,7 +5542,7 @@ msgstr "Analog Frontend" msgid "Red gain value of the AFE" msgstr "Verstärkung roter Kanal des AD-Wandlers" -#: backend/plustek.c:1009 backend/umax_pp.c:788 +#: backend/plustek.c:1009 backend/umax_pp.c:782 #, no-c-format msgid "Red offset" msgstr "Offset roter Kanal" @@ -5794,7 +5819,7 @@ msgstr "" msgid "This option reflects the status of a scanner button." msgstr "Diese Option zeigt den Zustand einer Scannertaste an." -#: backend/rts8891.c:2840 backend/umax.c:5795 backend/umax_pp.c:635 +#: backend/rts8891.c:2840 backend/umax.c:5795 backend/umax_pp.c:629 #, no-c-format msgid "Lamp on" msgstr "Lampe an" @@ -5804,12 +5829,12 @@ msgstr "Lampe an" msgid "Turn on scanner lamp" msgstr "Schalte Scannerlampe ein" -#: backend/rts8891.c:2851 backend/umax1220u.c:248 backend/umax.c:5812 +#: backend/rts8891.c:2851 backend/umax.c:5812 backend/umax1220u.c:248 #, no-c-format msgid "Lamp off" msgstr "Lampe aus" -#: backend/rts8891.c:2852 backend/umax1220u.c:249 backend/umax.c:5813 +#: backend/rts8891.c:2852 backend/umax.c:5813 backend/umax1220u.c:249 #, no-c-format msgid "Turn off scanner lamp" msgstr "Schalte Scannerlampe aus" @@ -6623,56 +6648,66 @@ msgstr "Kalibrierungs Modus" msgid "Define calibration mode" msgstr "Kalibriermodus definieren" -#: backend/umax_pp.c:636 +#: backend/umax_pp.c:630 #, no-c-format msgid "Sets lamp on/off" msgstr "Schaltet die Lampe an/aus" -#: backend/umax_pp.c:645 +#: backend/umax_pp.c:639 #, no-c-format msgid "UTA on" msgstr "UTA ein" -#: backend/umax_pp.c:646 +#: backend/umax_pp.c:640 #, no-c-format msgid "Sets UTA on/off" msgstr "Schaltet den UTA ein/aus" -#: backend/umax_pp.c:767 +#: backend/umax_pp.c:761 #, no-c-format msgid "Offset" msgstr "Offset" -#: backend/umax_pp.c:769 +#: backend/umax_pp.c:763 #, no-c-format msgid "Color channels offset settings" msgstr "Einstellungen des Offsets der Farbkanäle" -#: backend/umax_pp.c:776 +#: backend/umax_pp.c:770 #, no-c-format msgid "Gray offset" msgstr "Offset grüner Kanal" -#: backend/umax_pp.c:777 +#: backend/umax_pp.c:771 #, no-c-format msgid "Sets gray channel offset" msgstr "Legt den Offset des grauen Kanals fest" -#: backend/umax_pp.c:789 +#: backend/umax_pp.c:783 #, no-c-format msgid "Sets red channel offset" msgstr "Legt den Offset des roten Kanals fest" -#: backend/umax_pp.c:801 +#: backend/umax_pp.c:795 #, no-c-format msgid "Sets green channel offset" msgstr "Legt den Offset des grünen Kanals fest" -#: backend/umax_pp.c:813 +#: backend/umax_pp.c:807 #, no-c-format msgid "Sets blue channel offset" msgstr "Legt den Offset des blauen Kanals fest" +#~ msgid "Disable dynamic lineart" +#~ msgstr "Deaktiviere dynamische Strichzeichnung" + +#~ msgid "" +#~ "Disable use of a software adaptive algorithm to generate lineart " +#~ "relying instead on hardware lineart." +#~ msgstr "" +#~ "Deaktiviere Software angepassten Algorithmus zur Erstellung von " +#~ "Strichzeichnungen anstelle von Hardware-Strichzeichnungen." + #~ msgid "linier" #~ msgstr "Lineal" diff --git a/po/en_GB.po b/po/en_GB.po index 42caffb45..bffc8b31f 100644 --- a/po/en_GB.po +++ b/po/en_GB.po @@ -4,10 +4,10 @@ # Andrew Coles , 2009. msgid "" msgstr "" -"Project-Id-Version: \n" +"Project-Id-Version: sane-backends 1.0.29\n" "Report-Msgid-Bugs-To: sane-devel@alioth-lists.debian.net\n" -"POT-Creation-Date: 2019-10-12 17:41+0300\n" -"PO-Revision-Date: 2019-08-05 18:15-0700\n" +"POT-Creation-Date: 2020-01-12 07:09+0000\n" +"PO-Revision-Date: 2020-01-26 16:27+0900\n" "Last-Translator: Ralph Little \n" "Language-Team: British English \n" "Language: en_GB\n" @@ -28,23 +28,23 @@ msgid "Standard" msgstr "Standard" #: include/sane/saneopts.h:157 backend/artec_eplus48u.c:2884 -#: backend/epson.c:3298 backend/epson2.c:1290 -#: backend/genesys/genesys.cpp:3976 backend/gt68xx.c:696 -#: backend/hp3500.c:1019 backend/hp-option.c:3300 backend/kvs1025_opt.c:639 +#: backend/epson.c:3298 backend/epson2.c:1290 backend/epsonds.c:677 +#: backend/genesys/genesys.cpp:4034 backend/gt68xx.c:696 +#: backend/hp-option.c:3300 backend/hp3500.c:1019 backend/kvs1025_opt.c:639 #: backend/kvs20xx_opt.c:285 backend/kvs40xx_opt.c:506 backend/leo.c:823 #: backend/lexmark.c:199 backend/ma1509.c:551 backend/matsushita.c:1135 #: backend/microtek2.h:599 backend/mustek.c:4373 backend/mustek_usb.c:301 -#: backend/mustek_usb2.c:465 backend/pixma_sane_options.c:160 +#: backend/mustek_usb2.c:465 backend/pixma/pixma_sane_options.c:160 #: backend/plustek.c:808 backend/plustek_pp.c:747 backend/sceptre.c:702 #: backend/snapscan-options.c:550 backend/teco1.c:1095 backend/teco2.c:1910 #: backend/teco3.c:920 backend/test.c:647 backend/u12.c:546 -#: backend/umax.c:5176 backend/umax_pp.c:576 +#: backend/umax.c:5176 backend/umax_pp.c:570 #, no-c-format msgid "Geometry" msgstr "Geometry" #: include/sane/saneopts.h:158 backend/artec_eplus48u.c:2805 -#: backend/canon.c:1493 backend/genesys/genesys.cpp:4035 +#: backend/canon.c:1493 backend/genesys/genesys.cpp:4077 #: backend/gt68xx.c:665 backend/hp-option.c:2956 backend/kvs1025_opt.c:703 #: backend/leo.c:871 backend/ma1509.c:599 backend/matsushita.c:1189 #: backend/microtek2.h:600 backend/mustek.c:4421 backend/mustek_usb.c:349 @@ -52,7 +52,7 @@ msgstr "Geometry" #: backend/plustek_pp.c:793 backend/sceptre.c:750 #: backend/snapscan-options.c:617 backend/stv680.c:1067 #: backend/teco1.c:1143 backend/teco2.c:1958 backend/teco3.c:968 -#: backend/u12.c:592 backend/umax.c:5226 backend/umax_pp.c:625 +#: backend/u12.c:592 backend/umax.c:5226 backend/umax_pp.c:619 #, no-c-format msgid "Enhancement" msgstr "Enhancement" @@ -86,7 +86,7 @@ msgid "Bit depth" msgstr "Bit depth" #: include/sane/saneopts.h:165 backend/canon.c:1140 backend/leo.c:781 -#: backend/pixma_sane_options.c:47 +#: backend/pixma/pixma_sane_options.c:47 #, no-c-format msgid "Scan mode" msgstr "Scan mode" @@ -127,7 +127,7 @@ msgid "Bottom-right y" msgstr "Bottom-right y" #: include/sane/saneopts.h:173 backend/canon.c:1216 -#: backend/pixma_sane_options.c:300 +#: backend/pixma/pixma_sane_options.c:300 #, no-c-format msgid "Scan resolution" msgstr "Scan resolution" @@ -282,7 +282,7 @@ msgstr "Filename" msgid "Halftone pattern size" msgstr "Halftone pattern size" -#: include/sane/saneopts.h:204 backend/fujitsu.c:3233 +#: include/sane/saneopts.h:204 backend/fujitsu.c:3237 #, no-c-format msgid "Halftone pattern" msgstr "Halftone pattern" @@ -292,10 +292,10 @@ msgstr "Halftone pattern" msgid "Bind X and Y resolution" msgstr "Bind X and Y resolution" -#: include/sane/saneopts.h:206 backend/hp3900_sane.c:428 -#: backend/hp3900_sane.c:1021 backend/hp3900_sane.c:1421 -#: backend/hp-option.c:3238 backend/mustek_usb2.c:121 backend/plustek.c:236 -#: backend/plustek_pp.c:205 backend/u12.c:157 +#: include/sane/saneopts.h:206 backend/hp-option.c:3238 +#: backend/hp3900_sane.c:428 backend/hp3900_sane.c:1021 +#: backend/hp3900_sane.c:1421 backend/mustek_usb2.c:121 +#: backend/plustek.c:236 backend/plustek_pp.c:205 backend/u12.c:157 #, no-c-format msgid "Negative" msgstr "Negative" @@ -416,12 +416,12 @@ msgid "Lamp off at exit" msgstr "Lamp off at exit" #: include/sane/saneopts.h:245 -#, fuzzy, no-c-format +#, no-c-format msgid "" "Read-only option that specifies how many options a specific device " "supports." msgstr "" -"Read-only option that specifies how many options a specific devices " +"Read-only option that specifies how many options a specific device " "supports." #: include/sane/saneopts.h:248 @@ -745,7 +745,7 @@ msgid "Analog gamma-correction for blue" msgstr "Analogue gamma-correction for blue" #: include/sane/saneopts.h:415 -#, fuzzy, no-c-format +#, no-c-format msgid "Warm up lamp before scanning" msgstr "Warm up lamp before scanning" @@ -895,7 +895,7 @@ msgid "Operation not supported" msgstr "Operation not supported" #: backend/sane_strstatus.c:65 -#, fuzzy, no-c-format +#, no-c-format msgid "Operation was canceled" msgstr "Operation was cancelled" @@ -989,7 +989,7 @@ msgid "Only perform shading-correction" msgstr "Only perform shading-correction" #: backend/artec_eplus48u.c:2956 -#, fuzzy, no-c-format +#, no-c-format msgid "" "If enabled, only the shading correction is performed during calibration. " "The default values for gain, offset and exposure time, either built-in " @@ -1020,84 +1020,44 @@ msgid "Duplex scan" msgstr "Duplex scan" #: backend/avision.h:783 -#, fuzzy, no-c-format +#, no-c-format msgid "" "Duplex scan provides a scan of the front and back side of the document" msgstr "" "Duplex scan provides a scan of the front and back side of the document" -#: backend/canon630u.c:159 +#: backend/canon-sane.c:674 backend/canon.c:171 #, no-c-format -msgid "Calibrate Scanner" -msgstr "Calibrate Scanner" +msgid "Correction according to transparency ratio" +msgstr "Correction according to transparency ratio" -#: backend/canon630u.c:160 +#: backend/canon-sane.c:680 backend/canon.c:170 #, no-c-format -msgid "Force scanner calibration before scan" -msgstr "Force scanner calibration before scan" +msgid "Correction according to film type" +msgstr "Correction according to film type" -#: backend/canon630u.c:259 backend/umax1220u.c:208 -#, no-c-format -msgid "Grayscale scan" -msgstr "Greyscale scan" - -#: backend/canon630u.c:260 backend/umax1220u.c:209 -#, no-c-format -msgid "Do a grayscale rather than color scan" -msgstr "Do a greyscale rather than colour scan" - -#: backend/canon630u.c:306 -#, no-c-format -msgid "Analog Gain" -msgstr "Analogue Gain" - -#: backend/canon630u.c:307 -#, no-c-format -msgid "Increase or decrease the analog gain of the CCD array" -msgstr "Increase or decrease the analogue gain of the CCD array" - -#: backend/canon630u.c:347 backend/epson.h:68 backend/epson2.h:67 -#, no-c-format -msgid "Gamma Correction" -msgstr "Gamma Correction" - -#: backend/canon630u.c:348 -#, no-c-format -msgid "Selects the gamma corrected transfer curve" -msgstr "Selects the gamma corrected transfer curve" - -#: backend/canon.c:149 backend/canon-sane.c:1318 -#, no-c-format -msgid "Raw" -msgstr "Raw" - -#: backend/canon.c:157 backend/canon-sane.c:732 backend/canon-sane.c:940 +#: backend/canon-sane.c:732 backend/canon-sane.c:940 #: backend/canon-sane.c:1076 backend/canon-sane.c:1314 -#: backend/canon-sane.c:1494 backend/canon-sane.c:1643 +#: backend/canon-sane.c:1494 backend/canon-sane.c:1643 backend/canon.c:157 #, no-c-format msgid "Fine color" msgstr "Fine colour" +#: backend/canon-sane.c:776 backend/canon.c:176 +#, no-c-format +msgid "Negatives" +msgstr "Negatives" + +#: backend/canon-sane.c:1318 backend/canon.c:149 +#, no-c-format +msgid "Raw" +msgstr "Raw" + #: backend/canon.c:169 #, no-c-format msgid "No transparency correction" msgstr "No transparency correction" -#: backend/canon.c:170 backend/canon-sane.c:680 -#, no-c-format -msgid "Correction according to film type" -msgstr "Correction according to film type" - -#: backend/canon.c:171 backend/canon-sane.c:674 -#, no-c-format -msgid "Correction according to transparency ratio" -msgstr "Correction according to transparency ratio" - -#: backend/canon.c:176 backend/canon-sane.c:776 -#, no-c-format -msgid "Negatives" -msgstr "Negatives" - #: backend/canon.c:176 #, no-c-format msgid "Slides" @@ -1230,9 +1190,8 @@ msgstr "medium not present" msgid "invalid bit IDENTIFY message" msgstr "invalid bit IDENTIFY message" -# Check this text. Does it make sense? #: backend/canon.c:460 -#, fuzzy, no-c-format +#, no-c-format msgid "option not correct" msgstr "option not correct" @@ -1522,94 +1481,137 @@ msgstr "Select film type" msgid "Select the film type" msgstr "Select the film type" -#: backend/canon_dr.c:411 backend/epjitsu.c:233 backend/epson.c:501 -#: backend/epson2.c:115 backend/fujitsu.c:675 backend/gt68xx.c:148 +#: backend/canon630u.c:159 +#, no-c-format +msgid "Calibrate Scanner" +msgstr "Calibrate Scanner" + +#: backend/canon630u.c:160 +#, no-c-format +msgid "Force scanner calibration before scan" +msgstr "Force scanner calibration before scan" + +#: backend/canon630u.c:259 backend/umax1220u.c:208 +#, no-c-format +msgid "Grayscale scan" +msgstr "Greyscale scan" + +#: backend/canon630u.c:260 backend/umax1220u.c:209 +#, no-c-format +msgid "Do a grayscale rather than color scan" +msgstr "Do a greyscale rather than colour scan" + +#: backend/canon630u.c:306 +#, no-c-format +msgid "Analog Gain" +msgstr "Analogue Gain" + +#: backend/canon630u.c:307 +#, no-c-format +msgid "Increase or decrease the analog gain of the CCD array" +msgstr "Increase or decrease the analogue gain of the CCD array" + +#: backend/canon630u.c:347 backend/epson.h:68 backend/epson2.h:67 +#, no-c-format +msgid "Gamma Correction" +msgstr "Gamma Correction" + +#: backend/canon630u.c:348 +#, no-c-format +msgid "Selects the gamma corrected transfer curve" +msgstr "Selects the gamma corrected transfer curve" + +#: backend/canon_dr.c:413 backend/epjitsu.c:233 backend/epson.c:501 +#: backend/epson2-ops.c:101 backend/epson2.c:115 backend/epsonds-ops.c:32 +#: backend/epsonds.c:95 backend/epsonds.h:62 backend/fujitsu.c:677 +#: backend/genesys/genesys.h:78 backend/gt68xx.c:148 #: backend/hp3900_sane.c:418 backend/hp3900_sane.c:427 -#: backend/hp3900_sane.c:1017 backend/hp5590.c:92 backend/ma1509.c:108 -#: backend/magicolor.c:181 backend/mustek.c:156 backend/mustek.c:160 -#: backend/mustek.c:164 backend/pixma.c:920 backend/pixma_sane_options.c:92 -#: backend/snapscan-options.c:86 backend/test.c:192 backend/umax.c:181 +#: backend/hp3900_sane.c:1017 backend/hp5590.c:92 backend/kodakaio.c:617 +#: backend/ma1509.c:108 backend/magicolor.c:181 backend/mustek.c:156 +#: backend/mustek.c:160 backend/mustek.c:164 backend/pixma/pixma.c:920 +#: backend/pixma/pixma_sane_options.c:92 backend/snapscan-options.c:86 +#: backend/test.c:192 backend/umax.c:181 #, no-c-format msgid "Flatbed" msgstr "Flatbed" -#: backend/canon_dr.c:412 backend/epjitsu.c:234 backend/fujitsu.c:676 +#: backend/canon_dr.c:414 backend/epjitsu.c:234 backend/fujitsu.c:678 #: backend/kodak.c:140 #, no-c-format msgid "ADF Front" msgstr "ADF Front" -#: backend/canon_dr.c:413 backend/epjitsu.c:235 backend/fujitsu.c:677 +#: backend/canon_dr.c:415 backend/epjitsu.c:235 backend/fujitsu.c:679 #: backend/kodak.c:141 #, no-c-format msgid "ADF Back" msgstr "ADF Back" -#: backend/canon_dr.c:414 backend/epjitsu.c:236 backend/fujitsu.c:678 -#: backend/hp5590.c:94 backend/kodak.c:142 backend/pixma.c:931 +#: backend/canon_dr.c:416 backend/epjitsu.c:236 backend/fujitsu.c:680 +#: backend/hp5590.c:94 backend/kodak.c:142 backend/pixma/pixma.c:931 #, no-c-format msgid "ADF Duplex" msgstr "ADF Duplex" -#: backend/canon_dr.c:415 +#: backend/canon_dr.c:417 #, no-c-format msgid "Card Front" msgstr "Card Front" -#: backend/canon_dr.c:416 +#: backend/canon_dr.c:418 #, no-c-format msgid "Card Back" msgstr "Card Back" -#: backend/canon_dr.c:417 +#: backend/canon_dr.c:419 #, no-c-format msgid "Card Duplex" msgstr "Card Duplex" -#: backend/canon_dr.c:424 backend/epson.c:599 backend/epson.c:3096 -#: backend/epson2.c:201 backend/fujitsu.c:695 -#: backend/genesys/genesys.cpp:99 backend/genesys/genesys.cpp:106 +#: backend/canon_dr.c:426 backend/epson.c:599 backend/epson.c:3096 +#: backend/epson2.c:201 backend/fujitsu.c:697 +#: backend/genesys/genesys.cpp:120 backend/genesys/genesys.cpp:127 #: backend/gt68xx_low.h:136 backend/hp-option.c:3096 #, no-c-format msgid "Red" msgstr "Red" -#: backend/canon_dr.c:425 backend/epson.c:600 backend/epson.c:3092 -#: backend/epson2.c:202 backend/fujitsu.c:696 -#: backend/genesys/genesys.cpp:100 backend/genesys/genesys.cpp:107 +#: backend/canon_dr.c:427 backend/epson.c:600 backend/epson.c:3092 +#: backend/epson2.c:202 backend/fujitsu.c:698 +#: backend/genesys/genesys.cpp:121 backend/genesys/genesys.cpp:128 #: backend/gt68xx_low.h:137 backend/hp-option.c:3097 #, no-c-format msgid "Green" msgstr "Green" -#: backend/canon_dr.c:426 backend/epson.c:601 backend/epson.c:3100 -#: backend/epson2.c:203 backend/fujitsu.c:697 -#: backend/genesys/genesys.cpp:101 backend/genesys/genesys.cpp:108 +#: backend/canon_dr.c:428 backend/epson.c:601 backend/epson.c:3100 +#: backend/epson2.c:203 backend/fujitsu.c:699 +#: backend/genesys/genesys.cpp:122 backend/genesys/genesys.cpp:129 #: backend/gt68xx_low.h:138 backend/hp-option.c:3098 #, no-c-format msgid "Blue" msgstr "Blue" -#: backend/canon_dr.c:427 +#: backend/canon_dr.c:429 #, no-c-format msgid "Enhance Red" msgstr "Enhance Red" -#: backend/canon_dr.c:428 +#: backend/canon_dr.c:430 #, no-c-format msgid "Enhance Green" msgstr "Enhance Green" -#: backend/canon_dr.c:429 +#: backend/canon_dr.c:431 #, no-c-format msgid "Enhance Blue" msgstr "Enhance Blue" -#: backend/canon_dr.c:431 backend/epson.c:556 backend/epson.c:564 +#: backend/canon_dr.c:433 backend/epson.c:556 backend/epson.c:564 #: backend/epson.c:576 backend/epson.c:598 backend/epson2.c:165 #: backend/epson2.c:173 backend/epson2.c:185 backend/epson2.c:200 -#: backend/epson2.c:214 backend/fujitsu.c:701 -#: backend/genesys/genesys.cpp:109 backend/leo.c:109 +#: backend/epson2.c:214 backend/fujitsu.c:703 +#: backend/genesys/genesys.cpp:130 backend/leo.c:109 #: backend/matsushita.c:138 backend/matsushita.c:159 #: backend/matsushita.c:191 backend/matsushita.c:213 #: backend/snapscan-options.c:91 @@ -1617,42 +1619,46 @@ msgstr "Enhance Blue" msgid "None" msgstr "None" -#: backend/canon_dr.c:432 backend/fujitsu.c:702 +#: backend/canon_dr.c:434 backend/fujitsu.c:704 #, no-c-format msgid "JPEG" msgstr "JPEG" -#: backend/canon_dr.c:2477 backend/fujitsu.c:4113 -#: backend/genesys/genesys.cpp:4126 backend/kvs1025_opt.c:910 +#: backend/canon_dr.c:2479 backend/fujitsu.c:4117 +#: backend/genesys/genesys.cpp:4168 backend/kvs1025_opt.c:910 #, no-c-format msgid "Software blank skip percentage" msgstr "Software blank skip percentage" -#: backend/canon_dr.c:2478 backend/fujitsu.c:4114 +#: backend/canon_dr.c:2480 backend/fujitsu.c:4118 #, no-c-format msgid "Request driver to discard pages with low percentage of dark pixels" msgstr "Request driver to discard pages with low percentage of dark pixels" -#: backend/epson.c:491 backend/epson2.c:108 backend/magicolor.c:174 +#: backend/epson.c:491 backend/epson2.c:108 backend/epsonds.c:88 +#: backend/kodakaio.c:611 backend/magicolor.c:174 #, no-c-format msgid "Simplex" msgstr "Simplex" -#: backend/epson.c:492 backend/epson2.c:109 backend/kvs1025.h:50 -#: backend/kvs20xx_opt.c:204 backend/kvs40xx_opt.c:353 -#: backend/magicolor.c:175 backend/matsushita.h:218 +#: backend/epson.c:492 backend/epson2.c:109 backend/epsonds.c:89 +#: backend/kodakaio.c:612 backend/kvs1025.h:50 backend/kvs20xx_opt.c:204 +#: backend/kvs40xx_opt.c:353 backend/magicolor.c:175 +#: backend/matsushita.h:218 #, no-c-format msgid "Duplex" msgstr "Duplex" -#: backend/epson.c:502 backend/epson2.c:116 backend/pixma.c:937 +#: backend/epson.c:502 backend/epson2-ops.c:102 backend/epson2.c:116 +#: backend/epsonds-ops.c:33 backend/epsonds.h:63 backend/pixma/pixma.c:937 #, no-c-format msgid "Transparency Unit" msgstr "Transparency Unit" -#: backend/epson.c:503 backend/epson2.c:118 backend/magicolor.c:182 -#: backend/mustek.c:160 backend/pixma.c:925 backend/test.c:192 -#: backend/umax.c:183 +#: backend/epson.c:503 backend/epson2-ops.c:104 backend/epson2.c:118 +#: backend/epsonds-ops.c:34 backend/epsonds.c:96 backend/epsonds.h:64 +#: backend/kodakaio.c:618 backend/magicolor.c:182 backend/mustek.c:160 +#: backend/pixma/pixma.c:925 backend/test.c:192 backend/umax.c:183 #, no-c-format msgid "Automatic Document Feeder" msgstr "Automatic Document Feeder" @@ -1764,7 +1770,7 @@ msgstr "Ink-jet printers" msgid "CRT monitors" msgstr "CRT monitors" -#: backend/epson.c:656 backend/epson2.c:254 backend/fujitsu.c:685 +#: backend/epson.c:656 backend/epson2.c:254 backend/fujitsu.c:687 #: backend/hp-option.c:3229 backend/test.c:143 #, no-c-format msgid "Default" @@ -1828,8 +1834,8 @@ msgstr "A4" msgid "Max" msgstr "Max" -#: backend/epson.c:2813 backend/epson2.c:976 -#: backend/genesys/genesys.cpp:3893 backend/gt68xx.c:451 +#: backend/epson.c:2813 backend/epson2.c:976 backend/epsonds.c:629 +#: backend/genesys/genesys.cpp:3965 backend/gt68xx.c:451 #: backend/hp-option.c:2917 backend/kvs1025_opt.c:521 #: backend/kvs20xx_opt.c:171 backend/kvs40xx_opt.c:320 backend/ma1509.c:501 #: backend/matsushita.c:1084 backend/microtek2.h:598 backend/mustek.c:4215 @@ -2002,17 +2008,17 @@ msgstr "Defines the zoom factor the scanner will use" msgid "Quick format" msgstr "Quick format" -#: backend/epson.c:3360 backend/epson2.c:1340 +#: backend/epson.c:3360 backend/epson2.c:1340 backend/epsonds.c:726 #, no-c-format msgid "Optional equipment" msgstr "Optional equipment" -#: backend/epson.c:3431 backend/epson2.c:1393 +#: backend/epson.c:3431 backend/epson2.c:1393 backend/epsonds.c:742 #, no-c-format msgid "Eject" msgstr "Eject" -#: backend/epson.c:3432 backend/epson2.c:1394 +#: backend/epson.c:3432 backend/epson2.c:1394 backend/epsonds.c:743 #, no-c-format msgid "Eject the sheet in the ADF" msgstr "Eject the sheet in the ADF" @@ -2027,12 +2033,14 @@ msgstr "Auto eject" msgid "Eject document after scanning" msgstr "Eject document after scanning" -#: backend/epson.c:3457 backend/epson2.c:1416 backend/magicolor.c:2420 +#: backend/epson.c:3457 backend/epson2.c:1416 backend/epsonds.c:758 +#: backend/kodakaio.c:2855 backend/magicolor.c:2420 #, no-c-format msgid "ADF Mode" msgstr "ADF Mode" -#: backend/epson.c:3459 backend/epson2.c:1418 backend/magicolor.c:2422 +#: backend/epson.c:3459 backend/epson2.c:1418 backend/epsonds.c:760 +#: backend/kodakaio.c:2857 backend/magicolor.c:2422 #, no-c-format msgid "Selects the ADF mode (simplex/duplex)" msgstr "Selects the ADF mode (simplex/duplex)" @@ -2082,16 +2090,16 @@ msgstr "" "After sending the scan command, wait until the button on the scanner is " "pressed to actually start the scan process." -#: backend/epson2.c:102 backend/pixma.c:409 -#, no-c-format -msgid "Infrared" -msgstr "Infrared" - -#: backend/epson2.c:117 +#: backend/epson2-ops.c:103 backend/epson2.c:117 #, no-c-format msgid "TPU8x10" msgstr "TPU8x10" +#: backend/epson2.c:102 backend/pixma/pixma.c:409 +#, no-c-format +msgid "Infrared" +msgstr "Infrared" + #: backend/epson2.c:136 #, no-c-format msgid "Positive Slide" @@ -2112,348 +2120,368 @@ msgstr "Built in CCT profile" msgid "User defined CCT profile" msgstr "User defined CCT profile" -#: backend/fujitsu.c:686 backend/hp-option.c:3330 backend/hp-option.c:3343 +#: backend/epsonds.c:750 +#, no-c-format +msgid "Load" +msgstr "Load" + +#: backend/epsonds.c:751 +#, no-c-format +msgid "Load a sheet in the ADF" +msgstr "Load a sheet in the ADF" + +#: backend/epsonds.c:771 +#, no-c-format +msgid "ADF Skew Correction" +msgstr "ADF Skew Correction" + +#: backend/epsonds.c:773 +#, no-c-format +msgid "Enables ADF skew correction" +msgstr "Enables ADF skew correction" + +#: backend/fujitsu.c:688 backend/hp-option.c:3330 backend/hp-option.c:3343 #, no-c-format msgid "On" msgstr "On" -#: backend/fujitsu.c:687 backend/hp-option.c:3162 backend/hp-option.c:3329 +#: backend/fujitsu.c:689 backend/hp-option.c:3162 backend/hp-option.c:3329 #: backend/hp-option.c:3342 #, no-c-format msgid "Off" msgstr "Off" -#: backend/fujitsu.c:689 +#: backend/fujitsu.c:691 #, no-c-format msgid "DTC" msgstr "DTC" -#: backend/fujitsu.c:690 +#: backend/fujitsu.c:692 #, no-c-format msgid "SDTC" msgstr "SDTC" -#: backend/fujitsu.c:692 backend/teco1.c:1152 backend/teco1.c:1153 +#: backend/fujitsu.c:694 backend/teco1.c:1152 backend/teco1.c:1153 #: backend/teco2.c:1967 backend/teco2.c:1968 backend/teco3.c:977 #: backend/teco3.c:978 #, no-c-format msgid "Dither" msgstr "Dither" -#: backend/fujitsu.c:693 +#: backend/fujitsu.c:695 #, no-c-format msgid "Diffusion" msgstr "Diffusion" -#: backend/fujitsu.c:698 +#: backend/fujitsu.c:700 #, no-c-format msgid "White" msgstr "White" -#: backend/fujitsu.c:699 +#: backend/fujitsu.c:701 #, no-c-format msgid "Black" msgstr "Black" -#: backend/fujitsu.c:704 +#: backend/fujitsu.c:706 #, no-c-format msgid "Continue" msgstr "Continue" -#: backend/fujitsu.c:705 +#: backend/fujitsu.c:707 #, no-c-format msgid "Stop" msgstr "Stop" -#: backend/fujitsu.c:707 +#: backend/fujitsu.c:709 #, no-c-format msgid "10mm" msgstr "10mm" -#: backend/fujitsu.c:708 +#: backend/fujitsu.c:710 #, no-c-format msgid "15mm" msgstr "15mm" -#: backend/fujitsu.c:709 +#: backend/fujitsu.c:711 #, no-c-format msgid "20mm" msgstr "20mm" -#: backend/fujitsu.c:711 backend/hp-option.c:3048 +#: backend/fujitsu.c:713 backend/hp-option.c:3048 #, no-c-format msgid "Horizontal" msgstr "Horizontal" -#: backend/fujitsu.c:712 +#: backend/fujitsu.c:714 #, no-c-format msgid "Horizontal bold" msgstr "Horizontal bold" -#: backend/fujitsu.c:713 +#: backend/fujitsu.c:715 #, no-c-format msgid "Horizontal narrow" msgstr "Horizontal narrow" -#: backend/fujitsu.c:714 backend/hp-option.c:3047 +#: backend/fujitsu.c:716 backend/hp-option.c:3047 #, no-c-format msgid "Vertical" msgstr "Vertical" -#: backend/fujitsu.c:715 +#: backend/fujitsu.c:717 #, no-c-format msgid "Vertical bold" msgstr "Vertical bold" -#: backend/fujitsu.c:717 +#: backend/fujitsu.c:719 #, no-c-format msgid "Top to bottom" msgstr "Top to bottom" -#: backend/fujitsu.c:718 +#: backend/fujitsu.c:720 #, no-c-format msgid "Bottom to top" msgstr "Bottom to top" -#: backend/fujitsu.c:720 +#: backend/fujitsu.c:722 #, no-c-format msgid "Front" msgstr "Front" -#: backend/fujitsu.c:721 +#: backend/fujitsu.c:723 #, no-c-format msgid "Back" msgstr "Back" -#: backend/fujitsu.c:3144 backend/pixma_sane_options.c:145 +#: backend/fujitsu.c:3148 backend/pixma/pixma_sane_options.c:145 #, no-c-format msgid "Gamma function exponent" msgstr "Gamma function exponent" -#: backend/fujitsu.c:3145 backend/pixma_sane_options.c:146 +#: backend/fujitsu.c:3149 backend/pixma/pixma_sane_options.c:146 #, no-c-format msgid "Changes intensity of midtones" msgstr "Changes intensity of midtones" -#: backend/fujitsu.c:3194 +#: backend/fujitsu.c:3198 #, no-c-format msgid "RIF" msgstr "RIF" -#: backend/fujitsu.c:3195 +#: backend/fujitsu.c:3199 #, no-c-format msgid "Reverse image format" msgstr "Reverse image format" -#: backend/fujitsu.c:3212 +#: backend/fujitsu.c:3216 #, no-c-format msgid "Halftone type" msgstr "Halftone type" -#: backend/fujitsu.c:3213 +#: backend/fujitsu.c:3217 #, no-c-format msgid "Control type of halftone filter" msgstr "Control type of halftone filter" -#: backend/fujitsu.c:3234 +#: backend/fujitsu.c:3238 #, no-c-format msgid "Control pattern of halftone filter" msgstr "Control pattern of halftone filter" -#: backend/fujitsu.c:3256 +#: backend/fujitsu.c:3260 #, no-c-format msgid "Outline" msgstr "Outline" -#: backend/fujitsu.c:3257 +#: backend/fujitsu.c:3261 #, no-c-format msgid "Perform outline extraction" msgstr "Perform outline extraction" -#: backend/fujitsu.c:3268 +#: backend/fujitsu.c:3272 #, no-c-format msgid "Emphasis" msgstr "Emphasis" -#: backend/fujitsu.c:3269 +#: backend/fujitsu.c:3273 #, no-c-format msgid "Negative to smooth or positive to sharpen image" msgstr "Negative to smooth or positive to sharpen image" -#: backend/fujitsu.c:3287 +#: backend/fujitsu.c:3291 #, no-c-format msgid "Separation" msgstr "Separation" -#: backend/fujitsu.c:3288 +#: backend/fujitsu.c:3292 #, no-c-format msgid "Enable automatic separation of image and text" msgstr "Enable automatic separation of image and text" -#: backend/fujitsu.c:3299 +#: backend/fujitsu.c:3303 #, no-c-format msgid "Mirroring" msgstr "Mirroring" -#: backend/fujitsu.c:3300 +#: backend/fujitsu.c:3304 #, no-c-format msgid "Reflect output image horizontally" msgstr "Reflect output image horizontally" -#: backend/fujitsu.c:3317 +#: backend/fujitsu.c:3321 #, no-c-format msgid "White level follower" msgstr "White level follower" -#: backend/fujitsu.c:3318 +#: backend/fujitsu.c:3322 #, no-c-format msgid "Control white level follower" msgstr "Control white level follower" -#: backend/fujitsu.c:3336 +#: backend/fujitsu.c:3340 #, no-c-format msgid "BP filter" msgstr "BP filter" -#: backend/fujitsu.c:3337 +#: backend/fujitsu.c:3341 #, no-c-format msgid "Improves quality of high resolution ball-point pen text" msgstr "Improves quality of high resolution ball-point pen text" -#: backend/fujitsu.c:3353 backend/hp-option.h:73 +#: backend/fujitsu.c:3357 backend/hp-option.h:73 #, no-c-format msgid "Smoothing" msgstr "Smoothing" -#: backend/fujitsu.c:3354 +#: backend/fujitsu.c:3358 #, no-c-format msgid "Enable smoothing for improved OCR" msgstr "Enable smoothing for improved OCR" -#: backend/fujitsu.c:3370 +#: backend/fujitsu.c:3374 #, no-c-format msgid "Gamma curve" msgstr "Gamma curve" -#: backend/fujitsu.c:3371 +#: backend/fujitsu.c:3375 #, no-c-format msgid "Gamma curve, from light to dark, but upper two may not work" msgstr "Gamma curve, from light to dark, but upper two may not work" -#: backend/fujitsu.c:3393 backend/genesys/genesys.cpp:4187 -#: backend/pixma_sane_options.c:335 +#: backend/fujitsu.c:3397 backend/genesys/genesys.cpp:4229 +#: backend/pixma/pixma_sane_options.c:335 #, no-c-format msgid "Threshold curve" msgstr "Threshold curve" -#: backend/fujitsu.c:3394 +#: backend/fujitsu.c:3398 #, no-c-format msgid "" "Threshold curve, from light to dark, but upper two may not be linear" msgstr "" "Threshold curve, from light to dark, but upper two may not be linear" -#: backend/fujitsu.c:3416 +#: backend/fujitsu.c:3420 #, no-c-format msgid "Threshold white" msgstr "Threshold white" -#: backend/fujitsu.c:3417 +#: backend/fujitsu.c:3421 #, no-c-format msgid "Set pixels equal to threshold to white instead of black" msgstr "Set pixels equal to threshold to white instead of black" -#: backend/fujitsu.c:3433 backend/fujitsu.c:3434 +#: backend/fujitsu.c:3437 backend/fujitsu.c:3438 #, no-c-format msgid "Noise removal" msgstr "Noise removal" -#: backend/fujitsu.c:3450 +#: backend/fujitsu.c:3454 #, no-c-format msgid "Matrix 5x5" msgstr "Matrix 5x5" -#: backend/fujitsu.c:3451 +#: backend/fujitsu.c:3455 #, no-c-format msgid "Remove 5 pixel square noise" msgstr "Remove 5 pixel square noise" -#: backend/fujitsu.c:3467 +#: backend/fujitsu.c:3471 #, no-c-format msgid "Matrix 4x4" msgstr "Matrix 4x4" -#: backend/fujitsu.c:3468 +#: backend/fujitsu.c:3472 #, no-c-format msgid "Remove 4 pixel square noise" msgstr "Remove 4 pixel square noise" -#: backend/fujitsu.c:3484 +#: backend/fujitsu.c:3488 #, no-c-format msgid "Matrix 3x3" msgstr "Matrix 3x3" -#: backend/fujitsu.c:3485 +#: backend/fujitsu.c:3489 #, no-c-format msgid "Remove 3 pixel square noise" msgstr "Remove 3 pixel square noise" -#: backend/fujitsu.c:3501 +#: backend/fujitsu.c:3505 #, no-c-format msgid "Matrix 2x2" msgstr "Matrix 2x2" -#: backend/fujitsu.c:3502 +#: backend/fujitsu.c:3506 #, no-c-format msgid "Remove 2 pixel square noise" msgstr "Remove 2 pixel square noise" -#: backend/fujitsu.c:3521 +#: backend/fujitsu.c:3525 #, no-c-format msgid "Variance" msgstr "Variance" -#: backend/fujitsu.c:3522 +#: backend/fujitsu.c:3526 #, no-c-format msgid "Set SDTC variance rate (sensitivity), 0 equals 127" msgstr "Set SDTC variance rate (sensitivity), 0 equals 127" -#: backend/fujitsu.c:3555 +#: backend/fujitsu.c:3559 #, no-c-format msgid "Auto width detection" msgstr "Auto width detection" -#: backend/fujitsu.c:3556 +#: backend/fujitsu.c:3560 #, no-c-format msgid "Scanner detects paper sides. May reduce scanning speed." msgstr "Scanner detects paper sides. May reduce scanning speed." -#: backend/fujitsu.c:3573 +#: backend/fujitsu.c:3577 #, no-c-format msgid "Auto length detection" msgstr "Auto length detection" -#: backend/fujitsu.c:3574 +#: backend/fujitsu.c:3578 #, no-c-format msgid "Scanner detects paper lower edge. May confuse some frontends." msgstr "Scanner detects paper lower edge. May confuse some frontends." -#: backend/fujitsu.c:3600 +#: backend/fujitsu.c:3604 #, no-c-format msgid "Compression" msgstr "Compression" -#: backend/fujitsu.c:3601 +#: backend/fujitsu.c:3605 #, no-c-format msgid "Enable compressed data. May crash your front-end program" msgstr "Enable compressed data. May crash your front-end program" -#: backend/fujitsu.c:3621 +#: backend/fujitsu.c:3625 #, no-c-format msgid "Compression argument" msgstr "Compression argument" -#: backend/fujitsu.c:3622 +#: backend/fujitsu.c:3626 #, no-c-format msgid "" "Level of JPEG compression. 1 is small file, 7 is large file. 0 (default) " @@ -2462,114 +2490,114 @@ msgstr "" "Level of JPEG compression. 1 is small file, 7 is large file. 0 (default) " "is same as 4" -#: backend/fujitsu.c:3652 +#: backend/fujitsu.c:3656 #, no-c-format msgid "DF action" msgstr "DF action" -#: backend/fujitsu.c:3653 +#: backend/fujitsu.c:3657 #, no-c-format msgid "Action following double feed error" msgstr "Action following double feed error" -#: backend/fujitsu.c:3669 +#: backend/fujitsu.c:3673 #, no-c-format msgid "DF skew" msgstr "DF skew" -#: backend/fujitsu.c:3670 +#: backend/fujitsu.c:3674 #, no-c-format msgid "Enable double feed error due to skew" msgstr "Enable double feed error due to skew" -#: backend/fujitsu.c:3688 +#: backend/fujitsu.c:3692 #, no-c-format msgid "DF thickness" msgstr "DF thickness" -#: backend/fujitsu.c:3689 +#: backend/fujitsu.c:3693 #, no-c-format msgid "Enable double feed error due to paper thickness" msgstr "Enable double feed error due to paper thickness" -#: backend/fujitsu.c:3707 +#: backend/fujitsu.c:3711 #, no-c-format msgid "DF length" msgstr "DF length" -#: backend/fujitsu.c:3708 +#: backend/fujitsu.c:3712 #, no-c-format msgid "Enable double feed error due to paper length" msgstr "Enable double feed error due to paper length" -#: backend/fujitsu.c:3731 +#: backend/fujitsu.c:3735 #, no-c-format msgid "DF length difference" msgstr "DF length difference" -#: backend/fujitsu.c:3732 +#: backend/fujitsu.c:3736 #, no-c-format msgid "Difference in page length to trigger double feed error" msgstr "Difference in page length to trigger double feed error" -#: backend/fujitsu.c:3755 +#: backend/fujitsu.c:3759 #, no-c-format msgid "DF recovery mode" msgstr "DF recovery mode" -#: backend/fujitsu.c:3756 +#: backend/fujitsu.c:3760 #, no-c-format msgid "Request scanner to reverse feed on paper jam" msgstr "Request scanner to reverse feed on paper jam" -#: backend/fujitsu.c:3775 +#: backend/fujitsu.c:3779 #, no-c-format msgid "Paper protection" msgstr "Paper protection" -#: backend/fujitsu.c:3776 +#: backend/fujitsu.c:3780 #, no-c-format msgid "Request scanner to predict jams in the ADF" msgstr "Request scanner to predict jams in the ADF" -#: backend/fujitsu.c:3795 +#: backend/fujitsu.c:3799 #, no-c-format msgid "Advanced paper protection" msgstr "Advanced paper protection" -#: backend/fujitsu.c:3796 +#: backend/fujitsu.c:3800 #, no-c-format msgid "Request scanner to predict jams in the ADF using improved sensors" msgstr "Request scanner to predict jams in the ADF using improved sensors" -#: backend/fujitsu.c:3815 +#: backend/fujitsu.c:3819 #, no-c-format msgid "Staple detection" msgstr "Staple detection" -#: backend/fujitsu.c:3816 +#: backend/fujitsu.c:3820 #, no-c-format msgid "Request scanner to detect jams in the ADF caused by staples" msgstr "Request scanner to detect jams in the ADF caused by staples" -#: backend/fujitsu.c:3835 +#: backend/fujitsu.c:3839 #, no-c-format msgid "Background color" msgstr "Background colour" -#: backend/fujitsu.c:3836 +#: backend/fujitsu.c:3840 #, no-c-format msgid "" "Set color of background for scans. May conflict with overscan option" msgstr "" "Set colour of background for scans. May conflict with overscan option" -#: backend/fujitsu.c:3856 +#: backend/fujitsu.c:3860 #, no-c-format msgid "Dropout color" msgstr "Dropout colour" -#: backend/fujitsu.c:3857 +#: backend/fujitsu.c:3861 #, no-c-format msgid "" "One-pass scanners use only one color during gray or binary scanning, " @@ -2578,33 +2606,33 @@ msgstr "" "One-pass scanners use only one colour during grey or binary scanning, " "useful for coloured paper or ink" -#: backend/fujitsu.c:3880 +#: backend/fujitsu.c:3884 #, no-c-format msgid "Buffer mode" msgstr "Buffer mode" -#: backend/fujitsu.c:3881 +#: backend/fujitsu.c:3885 #, no-c-format msgid "Request scanner to read pages quickly from ADF into internal memory" msgstr "" "Request scanner to read pages quickly from ADF into internal memory" -#: backend/fujitsu.c:3900 +#: backend/fujitsu.c:3904 #, no-c-format msgid "Prepick" msgstr "Prepick" -#: backend/fujitsu.c:3901 +#: backend/fujitsu.c:3905 #, no-c-format msgid "Request scanner to grab next page from ADF" msgstr "Request scanner to grab next page from ADF" -#: backend/fujitsu.c:3920 +#: backend/fujitsu.c:3924 #, no-c-format msgid "Overscan" msgstr "Overscan" -#: backend/fujitsu.c:3921 +#: backend/fujitsu.c:3925 #, no-c-format msgid "" "Collect a few mm of background on top side of scan, before paper enters " @@ -2615,24 +2643,24 @@ msgstr "" "ADF, and increase maximum scan area beyond paper size, to allow " "collection on remaining sides. May conflict with bgcolor option" -#: backend/fujitsu.c:3939 +#: backend/fujitsu.c:3943 #, no-c-format msgid "Sleep timer" msgstr "Sleep timer" -#: backend/fujitsu.c:3940 +#: backend/fujitsu.c:3944 #, no-c-format msgid "" "Time in minutes until the internal power supply switches to sleep mode" msgstr "" "Time in minutes until the internal power supply switches to sleep mode" -#: backend/fujitsu.c:3958 +#: backend/fujitsu.c:3962 #, no-c-format msgid "Off timer" msgstr "Off timer" -#: backend/fujitsu.c:3959 +#: backend/fujitsu.c:3963 #, no-c-format msgid "" "Time in minutes until the internal power supply switches the scanner " @@ -2641,42 +2669,42 @@ msgstr "" "Time in minutes until the internal power supply switches the scanner " "off. Will be rounded to nearest 15 minutes. Zero means never power off." -#: backend/fujitsu.c:3977 +#: backend/fujitsu.c:3981 #, no-c-format msgid "Duplex offset" msgstr "Duplex offset" -#: backend/fujitsu.c:3978 +#: backend/fujitsu.c:3982 #, no-c-format msgid "Adjust front/back offset" msgstr "Adjust front/back offset" -#: backend/fujitsu.c:3995 backend/plustek.c:1025 backend/umax_pp.c:800 +#: backend/fujitsu.c:3999 backend/plustek.c:1025 backend/umax_pp.c:794 #, no-c-format msgid "Green offset" msgstr "Green offset" -#: backend/fujitsu.c:3996 +#: backend/fujitsu.c:4000 #, no-c-format msgid "Adjust green/red offset" msgstr "Adjust green/red offset" -#: backend/fujitsu.c:4013 backend/plustek.c:1041 backend/umax_pp.c:812 +#: backend/fujitsu.c:4017 backend/plustek.c:1041 backend/umax_pp.c:806 #, no-c-format msgid "Blue offset" msgstr "Blue offset" -#: backend/fujitsu.c:4014 +#: backend/fujitsu.c:4018 #, no-c-format msgid "Adjust blue/red offset" msgstr "Adjust blue/red offset" -#: backend/fujitsu.c:4027 +#: backend/fujitsu.c:4031 #, no-c-format msgid "Low Memory" msgstr "Low Memory" -#: backend/fujitsu.c:4028 +#: backend/fujitsu.c:4032 #, no-c-format msgid "" "Limit driver memory usage for use in embedded systems. Causes some " @@ -2689,12 +2717,12 @@ msgstr "" "option 'side' can be used to determine correct image. This option should " "only be used with custom front-end software." -#: backend/fujitsu.c:4043 +#: backend/fujitsu.c:4047 #, no-c-format msgid "Duplex side" msgstr "Duplex side" -#: backend/fujitsu.c:4044 +#: backend/fujitsu.c:4048 #, no-c-format msgid "" "Tells which side (0=front, 1=back) of a duplex scan the next call to " @@ -2703,154 +2731,154 @@ msgstr "" "Tells which side (0=front, 1=back) of a duplex scan the next call to " "sane_read will return." -#: backend/fujitsu.c:4055 +#: backend/fujitsu.c:4059 #, no-c-format msgid "Hardware deskew and crop" msgstr "Hardware deskew and crop" -#: backend/fujitsu.c:4056 +#: backend/fujitsu.c:4060 #, no-c-format msgid "Request scanner to rotate and crop pages digitally." msgstr "Request scanner to rotate and crop pages digitally." -#: backend/fujitsu.c:4067 backend/kvs1025_opt.c:871 +#: backend/fujitsu.c:4071 backend/kvs1025_opt.c:871 #, no-c-format msgid "Software deskew" msgstr "Software deskew" -#: backend/fujitsu.c:4068 +#: backend/fujitsu.c:4072 #, no-c-format msgid "Request driver to rotate skewed pages digitally." msgstr "Request driver to rotate skewed pages digitally." -#: backend/fujitsu.c:4080 backend/kvs1025_opt.c:880 +#: backend/fujitsu.c:4084 backend/kvs1025_opt.c:880 #, no-c-format msgid "Software despeckle diameter" msgstr "Software despeckle diameter" -#: backend/fujitsu.c:4081 +#: backend/fujitsu.c:4085 #, no-c-format msgid "Maximum diameter of lone dots to remove from scan." msgstr "Maximum diameter of lone dots to remove from scan." -#: backend/fujitsu.c:4100 backend/genesys/genesys.cpp:4117 +#: backend/fujitsu.c:4104 backend/genesys/genesys.cpp:4159 #, no-c-format msgid "Software crop" msgstr "Software crop" -#: backend/fujitsu.c:4101 +#: backend/fujitsu.c:4105 #, no-c-format msgid "Request driver to remove border from pages digitally." msgstr "Request driver to remove border from pages digitally." -#: backend/fujitsu.c:4130 +#: backend/fujitsu.c:4134 #, no-c-format msgid "Halt on Cancel" msgstr "Halt on Cancel" -#: backend/fujitsu.c:4131 +#: backend/fujitsu.c:4135 #, no-c-format msgid "" "Request driver to halt the paper feed instead of eject during a cancel." msgstr "" "Request driver to halt the paper feed instead of eject during a cancel." -#: backend/fujitsu.c:4142 +#: backend/fujitsu.c:4146 #, no-c-format msgid "Endorser Options" msgstr "Endorser Options" -#: backend/fujitsu.c:4143 +#: backend/fujitsu.c:4147 #, no-c-format msgid "Controls for endorser unit" msgstr "Controls for endorser unit" -#: backend/fujitsu.c:4154 +#: backend/fujitsu.c:4158 #, no-c-format msgid "Endorser" msgstr "Endorser" -#: backend/fujitsu.c:4155 +#: backend/fujitsu.c:4159 #, no-c-format msgid "Enable endorser unit" msgstr "Enable endorser unit" -#: backend/fujitsu.c:4170 +#: backend/fujitsu.c:4174 #, no-c-format msgid "Endorser bits" msgstr "Endorser bits" -#: backend/fujitsu.c:4171 +#: backend/fujitsu.c:4175 #, no-c-format msgid "Determines maximum endorser counter value." msgstr "Determines maximum endorser counter value." -#: backend/fujitsu.c:4196 +#: backend/fujitsu.c:4200 #, no-c-format msgid "Endorser value" msgstr "Endorser value" -#: backend/fujitsu.c:4197 +#: backend/fujitsu.c:4201 #, no-c-format msgid "Initial endorser counter value." msgstr "Initial endorser counter value." -#: backend/fujitsu.c:4220 +#: backend/fujitsu.c:4224 #, no-c-format msgid "Endorser step" msgstr "Endorser step" -#: backend/fujitsu.c:4221 +#: backend/fujitsu.c:4225 #, no-c-format msgid "Change endorser counter value by this much for each page." msgstr "Change endorser counter value by this much for each page." -#: backend/fujitsu.c:4244 +#: backend/fujitsu.c:4248 #, no-c-format msgid "Endorser Y" msgstr "Endorser Y" -#: backend/fujitsu.c:4245 +#: backend/fujitsu.c:4249 #, no-c-format msgid "Endorser print offset from top of paper." msgstr "Endorser print offset from top of paper." -#: backend/fujitsu.c:4270 +#: backend/fujitsu.c:4274 #, no-c-format msgid "Endorser font" msgstr "Endorser font" -#: backend/fujitsu.c:4271 +#: backend/fujitsu.c:4275 #, no-c-format msgid "Endorser printing font." msgstr "Endorser printing font." -#: backend/fujitsu.c:4300 +#: backend/fujitsu.c:4304 #, no-c-format msgid "Endorser direction" msgstr "Endorser direction" -#: backend/fujitsu.c:4301 +#: backend/fujitsu.c:4305 #, no-c-format msgid "Endorser printing direction." msgstr "Endorser printing direction." -#: backend/fujitsu.c:4325 +#: backend/fujitsu.c:4329 #, no-c-format msgid "Endorser side" msgstr "Endorser side" -#: backend/fujitsu.c:4326 +#: backend/fujitsu.c:4330 #, no-c-format msgid "Endorser printing side, requires hardware support to change" msgstr "Endorser printing side, requires hardware support to change" -#: backend/fujitsu.c:4351 +#: backend/fujitsu.c:4355 #, no-c-format msgid "Endorser string" msgstr "Endorser string" -#: backend/fujitsu.c:4352 +#: backend/fujitsu.c:4356 #, no-c-format msgid "" "Endorser alphanumeric print format. %05ud or %08ud at the end will be " @@ -2859,211 +2887,197 @@ msgstr "" "Endorser alphanumeric print format. %05ud or %08ud at the end will be " "replaced by counter value." -#: backend/fujitsu.c:4379 +#: backend/fujitsu.c:4383 #, no-c-format msgid "Top edge" msgstr "Top edge" -#: backend/fujitsu.c:4380 -#, fuzzy, no-c-format +#: backend/fujitsu.c:4384 +#, no-c-format msgid "Paper is pulled partly into ADF" msgstr "Paper is pulled partly into ADF" -#: backend/fujitsu.c:4391 +#: backend/fujitsu.c:4395 #, no-c-format msgid "A3 paper" msgstr "A3 paper" -#: backend/fujitsu.c:4392 +#: backend/fujitsu.c:4396 #, no-c-format msgid "A3 paper detected" msgstr "A3 paper detected" -#: backend/fujitsu.c:4403 +#: backend/fujitsu.c:4407 #, no-c-format msgid "B4 paper" msgstr "B4 paper" -#: backend/fujitsu.c:4404 +#: backend/fujitsu.c:4408 #, no-c-format msgid "B4 paper detected" msgstr "B4 paper detected" -#: backend/fujitsu.c:4415 +#: backend/fujitsu.c:4419 #, no-c-format msgid "A4 paper" msgstr "A4 paper" -#: backend/fujitsu.c:4416 +#: backend/fujitsu.c:4420 #, no-c-format msgid "A4 paper detected" msgstr "A4 paper detected" -#: backend/fujitsu.c:4427 +#: backend/fujitsu.c:4431 #, no-c-format msgid "B5 paper" msgstr "B5 paper" -#: backend/fujitsu.c:4428 +#: backend/fujitsu.c:4432 #, no-c-format msgid "B5 paper detected" msgstr "B5 paper detected" -#: backend/fujitsu.c:4451 +#: backend/fujitsu.c:4455 #, no-c-format msgid "OMR or DF" msgstr "OMR or DF" -#: backend/fujitsu.c:4452 +#: backend/fujitsu.c:4456 #, no-c-format msgid "OMR or double feed detected" msgstr "OMR or double feed detected" -#: backend/fujitsu.c:4475 +#: backend/fujitsu.c:4479 #, no-c-format msgid "Power saving" msgstr "Power saving" -#: backend/fujitsu.c:4476 +#: backend/fujitsu.c:4480 #, no-c-format msgid "Scanner in power saving mode" msgstr "Scanner in power saving mode" -#: backend/fujitsu.c:4499 +#: backend/fujitsu.c:4503 #, no-c-format msgid "Manual feed" msgstr "Manual feed" -#: backend/fujitsu.c:4500 +#: backend/fujitsu.c:4504 #, no-c-format msgid "Manual feed selected" msgstr "Manual feed selected" -#: backend/fujitsu.c:4523 +#: backend/fujitsu.c:4527 #, no-c-format msgid "Function" msgstr "Function" -#: backend/fujitsu.c:4524 +#: backend/fujitsu.c:4528 #, no-c-format msgid "Function character on screen" msgstr "Function character on screen" -#: backend/fujitsu.c:4535 +#: backend/fujitsu.c:4539 #, no-c-format msgid "Ink low" msgstr "Ink low" -#: backend/fujitsu.c:4536 +#: backend/fujitsu.c:4540 #, no-c-format msgid "Imprinter ink running low" msgstr "Imprinter ink running low" -#: backend/fujitsu.c:4547 +#: backend/fujitsu.c:4551 #, no-c-format msgid "Double feed" msgstr "Double feed" -#: backend/fujitsu.c:4548 +#: backend/fujitsu.c:4552 #, no-c-format msgid "Double feed detected" msgstr "Double feed detected" -#: backend/fujitsu.c:4559 +#: backend/fujitsu.c:4563 #, no-c-format msgid "Error code" msgstr "Error code" -#: backend/fujitsu.c:4560 +#: backend/fujitsu.c:4564 #, no-c-format msgid "Hardware error code" msgstr "Hardware error code" -#: backend/fujitsu.c:4571 +#: backend/fujitsu.c:4575 #, no-c-format msgid "Skew angle" msgstr "Skew angle" -#: backend/fujitsu.c:4572 +#: backend/fujitsu.c:4576 #, no-c-format msgid "Requires black background for scanning" msgstr "Requires black background for scanning" -#: backend/fujitsu.c:4583 +#: backend/fujitsu.c:4587 #, no-c-format msgid "Ink remaining" msgstr "Ink remaining" -#: backend/fujitsu.c:4584 +#: backend/fujitsu.c:4588 #, no-c-format msgid "Imprinter ink level" msgstr "Imprinter ink level" -#: backend/fujitsu.c:4595 +#: backend/fujitsu.c:4599 #, no-c-format msgid "Density" msgstr "Density" -#: backend/fujitsu.c:4596 +#: backend/fujitsu.c:4600 #, no-c-format msgid "Density dial" msgstr "Density dial" -#: backend/fujitsu.c:4607 backend/fujitsu.c:4608 +#: backend/fujitsu.c:4611 backend/fujitsu.c:4612 #, no-c-format msgid "Duplex switch" msgstr "Duplex switch" -#: backend/genesys/genesys.cpp:4118 +#: backend/genesys/genesys.cpp:4160 #, no-c-format msgid "Request backend to remove border from pages digitally" msgstr "Request backend to remove border from pages digitally" -#: backend/genesys/genesys.cpp:4127 backend/kvs1025_opt.c:912 +#: backend/genesys/genesys.cpp:4169 backend/kvs1025_opt.c:912 #, no-c-format msgid "Request driver to discard pages with low numbers of dark pixels" msgstr "Request driver to discard pages with low numbers of dark pixels" -#: backend/genesys/genesys.cpp:4137 backend/kvs1025_opt.c:892 +#: backend/genesys/genesys.cpp:4179 backend/kvs1025_opt.c:892 #, no-c-format msgid "Software derotate" msgstr "Software derotate" -#: backend/genesys/genesys.cpp:4138 backend/kvs1025_opt.c:894 +#: backend/genesys/genesys.cpp:4180 backend/kvs1025_opt.c:894 #, no-c-format msgid "Request driver to detect and correct 90 degree image rotation" msgstr "Request driver to detect and correct 90 degree image rotation" -#: backend/genesys/genesys.cpp:4168 backend/pixma_sane_options.c:314 +#: backend/genesys/genesys.cpp:4210 backend/pixma/pixma_sane_options.c:314 #, no-c-format msgid "Extras" msgstr "Extras" -#: backend/genesys/genesys.cpp:4188 backend/pixma_sane_options.c:336 +#: backend/genesys/genesys.cpp:4230 backend/pixma/pixma_sane_options.c:336 #, no-c-format msgid "Dynamic threshold curve, from light to dark, normally 50-65" msgstr "Dynamic threshold curve, from light to dark, normally 50-65" -#: backend/genesys/genesys.cpp:4197 -#, no-c-format -msgid "Disable dynamic lineart" -msgstr "Disable dynamic lineart" - -#: backend/genesys/genesys.cpp:4199 -#, no-c-format -msgid "" -"Disable use of a software adaptive algorithm to generate lineart relying " -"instead on hardware lineart." -msgstr "" -"Disable use of a software adaptive algorithm to generate lineart relying " -"instead on hardware lineart." - -#: backend/genesys/genesys.cpp:4215 +#: backend/genesys/genesys.cpp:4240 #, no-c-format msgid "Disable interpolation" msgstr "Disable interpolation" -#: backend/genesys/genesys.cpp:4218 +#: backend/genesys/genesys.cpp:4243 #, no-c-format msgid "" "When using high resolutions where the horizontal resolution is smaller " @@ -3072,32 +3086,32 @@ msgstr "" "When using high resolutions where the horizontal resolution is smaller " "than the vertical resolution this disables horizontal interpolation." -#: backend/genesys/genesys.cpp:4227 +#: backend/genesys/genesys.cpp:4252 #, no-c-format msgid "Color filter" msgstr "Colour filter" -#: backend/genesys/genesys.cpp:4230 +#: backend/genesys/genesys.cpp:4255 #, no-c-format msgid "When using gray or lineart this option selects the used color." msgstr "When using grey or lineart this option selects the used colour." -#: backend/genesys/genesys.cpp:4254 +#: backend/genesys/genesys.cpp:4279 #, no-c-format msgid "Calibration file" msgstr "Calibration file" -#: backend/genesys/genesys.cpp:4255 +#: backend/genesys/genesys.cpp:4280 #, no-c-format msgid "Specify the calibration file to use" msgstr "Specify the calibration file to use" -#: backend/genesys/genesys.cpp:4272 +#: backend/genesys/genesys.cpp:4297 #, no-c-format msgid "Calibration cache expiration time" msgstr "Calibration cache expiration time" -#: backend/genesys/genesys.cpp:4273 +#: backend/genesys/genesys.cpp:4298 #, no-c-format msgid "" "Time (in minutes) before a cached calibration expires. A value of 0 " @@ -3106,12 +3120,12 @@ msgstr "" "Time (in minutes) before a cached calibration expires. A value of 0 " "means cache is not used. A negative value means cache never expires." -#: backend/genesys/genesys.cpp:4283 +#: backend/genesys/genesys.cpp:4308 #, no-c-format msgid "Lamp off time" msgstr "Lamp off time" -#: backend/genesys/genesys.cpp:4286 +#: backend/genesys/genesys.cpp:4311 #, no-c-format msgid "" "The lamp will be turned off after the given time (in minutes). A value " @@ -3120,103 +3134,110 @@ msgstr "" "The lamp will be turned off after the given time (in minutes). A value " "of 0 means, that the lamp won't be turned off." -#: backend/genesys/genesys.cpp:4296 +#: backend/genesys/genesys.cpp:4321 #, no-c-format msgid "Lamp off during scan" msgstr "Lamp off during scan" -#: backend/genesys/genesys.cpp:4297 +#: backend/genesys/genesys.cpp:4322 #, no-c-format msgid "The lamp will be turned off during scan. " msgstr "The lamp will be turned off during scan. " -#: backend/genesys/genesys.cpp:4324 backend/genesys/genesys.cpp:4325 +#: backend/genesys/genesys.cpp:4349 backend/genesys/genesys.cpp:4350 #, no-c-format msgid "File button" msgstr "File button" -#: backend/genesys/genesys.cpp:4369 backend/genesys/genesys.cpp:4370 +#: backend/genesys/genesys.cpp:4394 backend/genesys/genesys.cpp:4395 #, no-c-format msgid "OCR button" msgstr "OCR button" -#: backend/genesys/genesys.cpp:4381 backend/genesys/genesys.cpp:4382 +#: backend/genesys/genesys.cpp:4406 backend/genesys/genesys.cpp:4407 #, no-c-format msgid "Power button" msgstr "Power button" -#: backend/genesys/genesys.cpp:4393 backend/genesys/genesys.cpp:4394 +#: backend/genesys/genesys.cpp:4418 backend/genesys/genesys.cpp:4419 #, no-c-format msgid "Extra button" msgstr "Extra button" -#: backend/genesys/genesys.cpp:4405 backend/gt68xx.c:755 -#, fuzzy, no-c-format +#: backend/genesys/genesys.cpp:4430 backend/gt68xx.c:755 +#, no-c-format msgid "Needs calibration" msgstr "Needs calibration" -#: backend/genesys/genesys.cpp:4406 backend/gt68xx.c:756 +#: backend/genesys/genesys.cpp:4431 backend/gt68xx.c:756 backend/p5.c:1928 #, no-c-format msgid "The scanner needs calibration for the current settings" msgstr "The scanner needs calibration for the current settings" -#: backend/genesys/genesys.cpp:4417 backend/gt68xx.c:780 -#: backend/gt68xx.c:781 backend/pixma_sane_options.c:226 -#: backend/plustek.c:1080 +#: backend/genesys/genesys.cpp:4442 backend/gt68xx.c:780 +#: backend/gt68xx.c:781 backend/p5.c:1937 backend/p5.c:1938 +#: backend/pixma/pixma_sane_options.c:226 backend/plustek.c:1080 #, no-c-format msgid "Buttons" msgstr "Buttons" -#: backend/genesys/genesys.cpp:4426 backend/gt68xx.c:787 -#: backend/hp5400_sane.c:392 backend/hp-option.h:97 backend/niash.c:726 -#: backend/plustek.c:941 +#: backend/genesys/genesys.cpp:4451 backend/gt68xx.c:787 +#: backend/hp-option.h:97 backend/hp5400_sane.c:392 backend/niash.c:726 +#: backend/p5.c:1945 backend/plustek.c:941 #, no-c-format msgid "Calibrate" msgstr "Calibrate" -#: backend/genesys/genesys.cpp:4428 backend/gt68xx.c:789 +#: backend/genesys/genesys.cpp:4453 backend/gt68xx.c:789 backend/p5.c:1947 #, no-c-format msgid "Start calibration using special sheet" msgstr "Start calibration using special sheet" -#: backend/genesys/genesys.cpp:4440 backend/gt68xx.c:802 +#: backend/genesys/genesys.cpp:4465 backend/gt68xx.c:802 backend/p5.c:1958 #, no-c-format msgid "Clear calibration" msgstr "Clear calibration" -#: backend/genesys/genesys.cpp:4441 backend/gt68xx.c:803 +#: backend/genesys/genesys.cpp:4466 backend/gt68xx.c:803 backend/p5.c:1960 #, no-c-format msgid "Clear calibration cache" msgstr "Clear calibration cache" -#: backend/genesys/genesys.cpp:4451 +#: backend/genesys/genesys.cpp:4476 #, no-c-format msgid "Force calibration" msgstr "Force calibration" -#: backend/genesys/genesys.cpp:4452 +#: backend/genesys/genesys.cpp:4477 #, no-c-format msgid "Force calibration ignoring all and any calibration caches" msgstr "Force calibration ignoring all and any calibration caches" -#: backend/genesys/genesys.cpp:4462 -#, fuzzy, no-c-format +#: backend/genesys/genesys.cpp:4487 +#, no-c-format msgid "Ignore internal offsets" -msgstr "Green offset" +msgstr "Ignore internal offsets" -#: backend/genesys/genesys.cpp:4464 +#: backend/genesys/genesys.cpp:4489 #, no-c-format msgid "" "Acquires the image including the internal calibration areas of the " "scanner" msgstr "" +"Acquires the image including the internal calibration areas of the " +"scanner" -#: backend/gt68xx.c:149 backend/ma1509.c:108 backend/mustek.c:164 -#: backend/snapscan-options.c:87 backend/umax.c:182 +#: backend/genesys/genesys.h:79 backend/gt68xx.c:149 backend/ma1509.c:108 +#: backend/mustek.c:164 backend/snapscan-options.c:87 backend/umax.c:182 #, no-c-format msgid "Transparency Adapter" msgstr "Transparency Adapter" +#: backend/genesys/genesys.h:80 +#, no-c-format +msgid "Transparency Adapter Infrared" +msgstr "Transparency Adapter Infrared" + #: backend/gt68xx.c:470 #, no-c-format msgid "Gray mode color" @@ -3321,6 +3342,309 @@ msgstr "Gamma value" msgid "Sets the gamma value of all channels." msgstr "Sets the gamma value of all channels." +#: backend/hp-option.c:2987 +#, no-c-format +msgid "Advanced Options" +msgstr "Advanced Options" + +#: backend/hp-option.c:3044 +#, no-c-format +msgid "Coarse" +msgstr "Coarse" + +#: backend/hp-option.c:3045 +#, no-c-format +msgid "Fine" +msgstr "Fine" + +#: backend/hp-option.c:3046 +#, no-c-format +msgid "Bayer" +msgstr "Bayer" + +#: backend/hp-option.c:3049 backend/hp-option.c:3100 +#, no-c-format +msgid "Custom" +msgstr "Custom" + +#: backend/hp-option.c:3090 backend/hp-option.c:3146 +#: backend/hp-option.c:3161 +#, no-c-format +msgid "Auto" +msgstr "Auto" + +#: backend/hp-option.c:3091 +#, no-c-format +msgid "NTSC RGB" +msgstr "NTSC RGB" + +#: backend/hp-option.c:3092 +#, no-c-format +msgid "XPA RGB" +msgstr "XPA RGB" + +#: backend/hp-option.c:3093 +#, no-c-format +msgid "Pass-through" +msgstr "Pass-through" + +#: backend/hp-option.c:3094 +#, no-c-format +msgid "NTSC Gray" +msgstr "NTSC Grey" + +#: backend/hp-option.c:3095 +#, no-c-format +msgid "XPA Gray" +msgstr "XPA Grey" + +#: backend/hp-option.c:3147 +#, no-c-format +msgid "Slow" +msgstr "Slow" + +#: backend/hp-option.c:3148 backend/hp-option.c:3255 +#: backend/kvs40xx_opt.c:230 backend/matsushita.c:244 backend/mustek.c:149 +#: backend/plustek.c:234 backend/plustek_pp.c:203 backend/u12.c:155 +#, no-c-format +msgid "Normal" +msgstr "Normal" + +#: backend/hp-option.c:3149 +#, no-c-format +msgid "Fast" +msgstr "Fast" + +#: backend/hp-option.c:3150 +#, no-c-format +msgid "Extra Fast" +msgstr "Extra Fast" + +#: backend/hp-option.c:3163 +#, no-c-format +msgid "2-pixel" +msgstr "2-pixel" + +#: backend/hp-option.c:3164 +#, no-c-format +msgid "4-pixel" +msgstr "4-pixel" + +#: backend/hp-option.c:3165 +#, no-c-format +msgid "8-pixel" +msgstr "8-pixel" + +#: backend/hp-option.c:3176 +#, no-c-format +msgid "Print" +msgstr "Print" + +#: backend/hp-option.c:3177 backend/hp3900_sane.c:427 +#: backend/hp3900_sane.c:1019 +#, no-c-format +msgid "Slide" +msgstr "Slide" + +#: backend/hp-option.c:3178 +#, no-c-format +msgid "Film-strip" +msgstr "Film-strip" + +#: backend/hp-option.c:3256 backend/hp5590.c:93 +#, no-c-format +msgid "ADF" +msgstr "ADF" + +#: backend/hp-option.c:3257 +#, no-c-format +msgid "XPA" +msgstr "XPA" + +#: backend/hp-option.c:3331 backend/hp-option.c:3344 +#, no-c-format +msgid "Conditional" +msgstr "Conditional" + +#: backend/hp-option.c:3417 +#, no-c-format +msgid "Experiment" +msgstr "Experiment" + +#: backend/hp-option.h:60 +#, no-c-format +msgid "Sharpening" +msgstr "Sharpening" + +#: backend/hp-option.h:61 +#, no-c-format +msgid "Set sharpening value." +msgstr "Set sharpening value." + +#: backend/hp-option.h:66 +#, no-c-format +msgid "Auto Threshold" +msgstr "Auto Threshold" + +#: backend/hp-option.h:68 +#, no-c-format +msgid "Enable automatic determination of threshold for line-art scans." +msgstr "Enable automatic determination of threshold for line-art scans." + +#: backend/hp-option.h:74 +#, no-c-format +msgid "Select smoothing filter." +msgstr "Select smoothing filter." + +#: backend/hp-option.h:79 +#, no-c-format +msgid "Unload media after scan" +msgstr "Unload media after scan" + +#: backend/hp-option.h:80 +#, no-c-format +msgid "Unloads the media after a scan." +msgstr "Unloads the media after a scan." + +#: backend/hp-option.h:85 +#, no-c-format +msgid "Change document" +msgstr "Change document" + +#: backend/hp-option.h:86 +#, no-c-format +msgid "Change Document." +msgstr "Change Document." + +#: backend/hp-option.h:91 +#, no-c-format +msgid "Unload" +msgstr "Unload" + +#: backend/hp-option.h:92 +#, no-c-format +msgid "Unload Document." +msgstr "Unload Document." + +#: backend/hp-option.h:98 +#, no-c-format +msgid "Start calibration process." +msgstr "Start calibration process." + +#: backend/hp-option.h:103 +#, no-c-format +msgid "Media" +msgstr "Media" + +#: backend/hp-option.h:104 +#, no-c-format +msgid "Set type of media." +msgstr "Set type of media." + +#: backend/hp-option.h:109 +#, no-c-format +msgid "Exposure time" +msgstr "Exposure time" + +#: backend/hp-option.h:111 +#, no-c-format +msgid "" +"A longer exposure time lets the scanner collect more light. Suggested " +"use is 175% for prints, 150% for normal slides and \"Negative\" for " +"negative film. For dark (underexposed) images you can increase this " +"value." +msgstr "" +"A longer exposure time lets the scanner collect more light. Suggested " +"use is 175% for prints, 150% for normal slides and \"Negative\" for " +"negative film. For dark (underexposed) images you can increase this " +"value." + +#: backend/hp-option.h:119 backend/hp-option.h:126 +#, no-c-format +msgid "Color Matrix" +msgstr "Colour Matrix" + +#: backend/hp-option.h:121 +#, no-c-format +msgid "Set the scanner's color matrix." +msgstr "Set the scanner's colour matrix." + +#: backend/hp-option.h:127 +#, no-c-format +msgid "Custom color matrix." +msgstr "Custom colour matrix." + +#: backend/hp-option.h:132 +#, no-c-format +msgid "Mono Color Matrix" +msgstr "Mono Colour Matrix" + +#: backend/hp-option.h:133 +#, no-c-format +msgid "Custom color matrix for grayscale scans." +msgstr "Custom colour matrix for greyscale scans." + +#: backend/hp-option.h:138 +#, no-c-format +msgid "Mirror horizontal" +msgstr "Mirror horizontal" + +#: backend/hp-option.h:139 +#, no-c-format +msgid "Mirror image horizontally." +msgstr "Mirror image horizontally." + +#: backend/hp-option.h:144 +#, no-c-format +msgid "Mirror vertical" +msgstr "Mirror vertical" + +#: backend/hp-option.h:145 +#, no-c-format +msgid "Mirror image vertically." +msgstr "Mirror image vertically." + +#: backend/hp-option.h:150 +#, no-c-format +msgid "Update options" +msgstr "Update options" + +#: backend/hp-option.h:151 +#, no-c-format +msgid "Update options." +msgstr "Update options." + +#: backend/hp-option.h:156 +#, no-c-format +msgid "8 bit output" +msgstr "8 bit output" + +#: backend/hp-option.h:158 +#, no-c-format +msgid "Use bit depth greater eight internally, but output only eight bits." +msgstr "" +"Use bit depth greater eight internally, but output only eight bits." + +#: backend/hp-option.h:164 +#, no-c-format +msgid "Front button wait" +msgstr "Front button wait" + +#: backend/hp-option.h:165 +#, no-c-format +msgid "Wait to scan for front-panel button push." +msgstr "Wait to scan for front-panel button push." + +#: backend/hp-option.h:172 +#, no-c-format +msgid "Shut off lamp" +msgstr "Shut off lamp" + +#: backend/hp-option.h:173 +#, no-c-format +msgid "Shut off scanner lamp." +msgstr "Shut off scanner lamp." + #: backend/hp3500.c:1020 #, no-c-format msgid "Geometry Group" @@ -3331,24 +3655,18 @@ msgstr "Geometry Group" msgid "Scan Mode Group" msgstr "Scan Mode Group" -#: backend/hp3900_sane.c:427 backend/hp3900_sane.c:1019 -#: backend/hp-option.c:3177 -#, no-c-format -msgid "Slide" -msgstr "Slide" - #: backend/hp3900_sane.c:1405 #, no-c-format msgid "Scanner model" msgstr "Scanner model" #: backend/hp3900_sane.c:1408 -#, fuzzy, no-c-format +#, no-c-format msgid "Allows one to test device behavior with other supported models" msgstr "Allows one to test device behaviour with other supported models" #: backend/hp3900_sane.c:1422 -#, fuzzy, no-c-format +#, no-c-format msgid "Image colors will be inverted" msgstr "Image colours will be inverted" @@ -3538,11 +3856,6 @@ msgstr "Switches the lamp on or off." msgid "Calibrates for black and white level." msgstr "Calibrates for black and white level." -#: backend/hp5590.c:93 backend/hp-option.c:3256 -#, no-c-format -msgid "ADF" -msgstr "ADF" - #: backend/hp5590.c:95 #, no-c-format msgid "TMA Slides" @@ -3659,298 +3972,6 @@ msgstr "" "Colour value for trailing lines filling mode 'colour'. RGB colour as " "r*65536+256*g+b or grey value (default=violet or grey)" -#: backend/hp-option.c:2987 -#, no-c-format -msgid "Advanced Options" -msgstr "Advanced Options" - -#: backend/hp-option.c:3044 -#, no-c-format -msgid "Coarse" -msgstr "Coarse" - -#: backend/hp-option.c:3045 -#, no-c-format -msgid "Fine" -msgstr "Fine" - -#: backend/hp-option.c:3046 -#, no-c-format -msgid "Bayer" -msgstr "Bayer" - -#: backend/hp-option.c:3049 backend/hp-option.c:3100 -#, no-c-format -msgid "Custom" -msgstr "Custom" - -#: backend/hp-option.c:3090 backend/hp-option.c:3146 -#: backend/hp-option.c:3161 -#, no-c-format -msgid "Auto" -msgstr "Auto" - -#: backend/hp-option.c:3091 -#, no-c-format -msgid "NTSC RGB" -msgstr "NTSC RGB" - -#: backend/hp-option.c:3092 -#, no-c-format -msgid "XPA RGB" -msgstr "XPA RGB" - -#: backend/hp-option.c:3093 -#, no-c-format -msgid "Pass-through" -msgstr "Pass-through" - -#: backend/hp-option.c:3094 -#, no-c-format -msgid "NTSC Gray" -msgstr "NTSC Grey" - -#: backend/hp-option.c:3095 -#, no-c-format -msgid "XPA Gray" -msgstr "XPA Grey" - -#: backend/hp-option.c:3147 -#, no-c-format -msgid "Slow" -msgstr "Slow" - -#: backend/hp-option.c:3148 backend/hp-option.c:3255 -#: backend/kvs40xx_opt.c:230 backend/matsushita.c:244 backend/mustek.c:149 -#: backend/plustek.c:234 backend/plustek_pp.c:203 backend/u12.c:155 -#, no-c-format -msgid "Normal" -msgstr "Normal" - -#: backend/hp-option.c:3149 -#, no-c-format -msgid "Fast" -msgstr "Fast" - -#: backend/hp-option.c:3150 -#, no-c-format -msgid "Extra Fast" -msgstr "Extra Fast" - -#: backend/hp-option.c:3163 -#, no-c-format -msgid "2-pixel" -msgstr "2-pixel" - -#: backend/hp-option.c:3164 -#, no-c-format -msgid "4-pixel" -msgstr "4-pixel" - -#: backend/hp-option.c:3165 -#, no-c-format -msgid "8-pixel" -msgstr "8-pixel" - -#: backend/hp-option.c:3176 -#, no-c-format -msgid "Print" -msgstr "Print" - -#: backend/hp-option.c:3178 -#, no-c-format -msgid "Film-strip" -msgstr "Film-strip" - -#: backend/hp-option.c:3257 -#, no-c-format -msgid "XPA" -msgstr "XPA" - -#: backend/hp-option.c:3331 backend/hp-option.c:3344 -#, no-c-format -msgid "Conditional" -msgstr "Conditional" - -#: backend/hp-option.c:3417 -#, no-c-format -msgid "Experiment" -msgstr "Experiment" - -#: backend/hp-option.h:60 -#, no-c-format -msgid "Sharpening" -msgstr "Sharpening" - -#: backend/hp-option.h:61 -#, no-c-format -msgid "Set sharpening value." -msgstr "Set sharpening value." - -#: backend/hp-option.h:66 -#, no-c-format -msgid "Auto Threshold" -msgstr "Auto Threshold" - -#: backend/hp-option.h:68 -#, no-c-format -msgid "Enable automatic determination of threshold for line-art scans." -msgstr "Enable automatic determination of threshold for line-art scans." - -#: backend/hp-option.h:74 -#, no-c-format -msgid "Select smoothing filter." -msgstr "Select smoothing filter." - -#: backend/hp-option.h:79 -#, no-c-format -msgid "Unload media after scan" -msgstr "Unload media after scan" - -#: backend/hp-option.h:80 -#, no-c-format -msgid "Unloads the media after a scan." -msgstr "Unloads the media after a scan." - -#: backend/hp-option.h:85 -#, no-c-format -msgid "Change document" -msgstr "Change document" - -#: backend/hp-option.h:86 -#, no-c-format -msgid "Change Document." -msgstr "Change Document." - -#: backend/hp-option.h:91 -#, no-c-format -msgid "Unload" -msgstr "Unload" - -#: backend/hp-option.h:92 -#, no-c-format -msgid "Unload Document." -msgstr "Unload Document." - -#: backend/hp-option.h:98 -#, no-c-format -msgid "Start calibration process." -msgstr "Start calibration process." - -#: backend/hp-option.h:103 -#, no-c-format -msgid "Media" -msgstr "Media" - -#: backend/hp-option.h:104 -#, no-c-format -msgid "Set type of media." -msgstr "Set type of media." - -#: backend/hp-option.h:109 -#, no-c-format -msgid "Exposure time" -msgstr "Exposure time" - -#: backend/hp-option.h:111 -#, no-c-format -msgid "" -"A longer exposure time lets the scanner collect more light. Suggested " -"use is 175% for prints, 150% for normal slides and \"Negative\" for " -"negative film. For dark (underexposed) images you can increase this " -"value." -msgstr "" -"A longer exposure time lets the scanner collect more light. Suggested " -"use is 175% for prints, 150% for normal slides and \"Negative\" for " -"negative film. For dark (underexposed) images you can increase this " -"value." - -#: backend/hp-option.h:119 backend/hp-option.h:126 -#, no-c-format -msgid "Color Matrix" -msgstr "Colour Matrix" - -#: backend/hp-option.h:121 -#, fuzzy, no-c-format -msgid "Set the scanner's color matrix." -msgstr "Set the scanner's colour matrix." - -#: backend/hp-option.h:127 -#, no-c-format -msgid "Custom color matrix." -msgstr "Custom colour matrix." - -#: backend/hp-option.h:132 -#, no-c-format -msgid "Mono Color Matrix" -msgstr "Mono Colour Matrix" - -#: backend/hp-option.h:133 -#, no-c-format -msgid "Custom color matrix for grayscale scans." -msgstr "Custom colour matrix for greyscale scans." - -#: backend/hp-option.h:138 -#, no-c-format -msgid "Mirror horizontal" -msgstr "Mirror horizontal" - -#: backend/hp-option.h:139 -#, no-c-format -msgid "Mirror image horizontally." -msgstr "Mirror image horizontally." - -#: backend/hp-option.h:144 -#, no-c-format -msgid "Mirror vertical" -msgstr "Mirror vertical" - -#: backend/hp-option.h:145 -#, no-c-format -msgid "Mirror image vertically." -msgstr "Mirror image vertically." - -#: backend/hp-option.h:150 -#, no-c-format -msgid "Update options" -msgstr "Update options" - -#: backend/hp-option.h:151 -#, no-c-format -msgid "Update options." -msgstr "Update options." - -#: backend/hp-option.h:156 -#, no-c-format -msgid "8 bit output" -msgstr "8 bit output" - -#: backend/hp-option.h:158 -#, no-c-format -msgid "Use bit depth greater eight internally, but output only eight bits." -msgstr "" -"Use bit depth greater eight internally, but output only eight bits." - -#: backend/hp-option.h:164 -#, no-c-format -msgid "Front button wait" -msgstr "Front button wait" - -#: backend/hp-option.h:165 -#, no-c-format -msgid "Wait to scan for front-panel button push." -msgstr "Wait to scan for front-panel button push." - -#: backend/hp-option.h:172 -#, no-c-format -msgid "Shut off lamp" -msgstr "Shut off lamp" - -#: backend/hp-option.h:173 -#, no-c-format -msgid "Shut off scanner lamp." -msgstr "Shut off scanner lamp." - #: backend/kvs1025.h:51 backend/kvs20xx_opt.c:295 backend/kvs40xx_opt.c:516 #: backend/matsushita.h:219 #, no-c-format @@ -4049,7 +4070,7 @@ msgid "single" msgstr "single" #: backend/kvs1025_opt.c:73 backend/kvs20xx.c:462 backend/kvs20xx_opt.c:56 -#: backend/kvs40xx.c:704 backend/kvs40xx.c:722 backend/kvs40xx_opt.c:102 +#: backend/kvs40xx.c:705 backend/kvs40xx.c:723 backend/kvs40xx_opt.c:102 #: backend/kvs40xx_opt.c:1087 #, no-c-format msgid "continuous" @@ -4217,9 +4238,9 @@ msgid "crt" msgstr "crt" #: backend/kvs1025_opt.c:229 -#, fuzzy, no-c-format +#, no-c-format msgid "linear" -msgstr "Lineart" +msgstr "linear" #: backend/kvs1025_opt.c:241 backend/kvs20xx_opt.c:138 #: backend/kvs40xx_opt.c:224 @@ -4348,7 +4369,7 @@ msgstr "Sets the image emphasis" #: backend/kvs1025_opt.c:807 backend/kvs1025_opt.c:808 #: backend/matsushita.c:1300 backend/matsushita.c:1301 -#: backend/pixma_sane_options.c:112 +#: backend/pixma/pixma_sane_options.c:112 #, no-c-format msgid "Gamma" msgstr "Gamma" @@ -4416,7 +4437,7 @@ msgid "Request driver to remove border from pages digitally" msgstr "Request driver to remove border from pages digitally" #: backend/kvs20xx_opt.c:233 -#, fuzzy, no-c-format +#, no-c-format msgid "" "Length Control Mode causes the scanner to read the shorter of either the " "length of the actual paper or logical document length." @@ -4452,12 +4473,12 @@ msgid "B4" msgstr "B4" #: backend/kvs40xx_opt.c:231 -#, fuzzy, no-c-format +#, no-c-format msgid "High sensitivity" msgstr "High sensitivity" #: backend/kvs40xx_opt.c:232 -#, fuzzy, no-c-format +#, no-c-format msgid "Low sensitivity" msgstr "Low sensitivity" @@ -4482,13 +4503,13 @@ msgid "Enhanced mode" msgstr "Enhanced mode" #: backend/kvs40xx_opt.c:396 -#, fuzzy, no-c-format +#, no-c-format msgid "" "Length Control Mode causes the scanner to read the shorter of either the " "length of the actual paper or logical document length" msgstr "" "Length Control Mode causes the scanner to read the shorter of either the " -"length of the actual paper or logical document length." +"length of the actual paper or logical document length" # The grammar is a bit suspect here. #: backend/kvs40xx_opt.c:405 @@ -4551,7 +4572,7 @@ msgid "JPEG compression" msgstr "JPEG compression" #: backend/kvs40xx_opt.c:718 -#, fuzzy, no-c-format +#, no-c-format msgid "JPEG compression (your application must be able to uncompress)" msgstr "JPEG compression (your application must be able to uncompress)" @@ -4586,14 +4607,14 @@ msgid "Skew adjustment" msgstr "Skew adjustment" #: backend/kvs40xx_opt.c:808 -#, fuzzy, no-c-format +#, no-c-format msgid "Stop scanner if a sheet is skewed" msgstr "Stop scanner if a sheet is skewed" #: backend/kvs40xx_opt.c:809 -#, fuzzy, no-c-format +#, no-c-format msgid "Scanner will stop if a sheet is skewed" -msgstr "Scanner will be stopped if sheet is skewed" +msgstr "Scanner will stop if a sheet is skewed" #: backend/kvs40xx_opt.c:816 #, no-c-format @@ -4601,14 +4622,14 @@ msgid "Crop actual image area" msgstr "Crop actual image area" #: backend/kvs40xx_opt.c:817 -#, fuzzy, no-c-format +#, no-c-format msgid "Scanner will automatically detect image area and crop to it" -msgstr "Scanner automatically detects image area and crops it" +msgstr "Scanner will automatically detect image area and crop to it" #: backend/kvs40xx_opt.c:827 -#, fuzzy, no-c-format +#, no-c-format msgid "Left/right mirror image" -msgstr "Mirror image" +msgstr "Left/right mirror image" #: backend/kvs40xx_opt.c:834 backend/kvs40xx_opt.c:835 #, no-c-format @@ -4645,52 +4666,52 @@ msgstr "8x8 Bayer" msgid "8x8 Vertical Line" msgstr "8x8 Vertical Line" -#: backend/lexmark.c:273 backend/umax_pp.c:711 +#: backend/lexmark.c:273 backend/umax_pp.c:705 #, no-c-format msgid "Gain" msgstr "Gain" -#: backend/lexmark.c:274 backend/umax_pp.c:712 +#: backend/lexmark.c:274 backend/umax_pp.c:706 #, no-c-format msgid "Color channels gain settings" msgstr "Colour channels gain settings" -#: backend/lexmark.c:283 backend/umax_pp.c:719 +#: backend/lexmark.c:283 backend/umax_pp.c:713 #, no-c-format msgid "Gray gain" msgstr "Grey gain" -#: backend/lexmark.c:284 backend/umax_pp.c:720 +#: backend/lexmark.c:284 backend/umax_pp.c:714 #, no-c-format msgid "Sets gray channel gain" msgstr "Sets grey channel gain" -#: backend/lexmark.c:297 backend/plustek.c:1001 backend/umax_pp.c:731 +#: backend/lexmark.c:297 backend/plustek.c:1001 backend/umax_pp.c:725 #, no-c-format msgid "Red gain" msgstr "Red gain" -#: backend/lexmark.c:298 backend/umax_pp.c:732 +#: backend/lexmark.c:298 backend/umax_pp.c:726 #, no-c-format msgid "Sets red channel gain" msgstr "Sets red channel gain" -#: backend/lexmark.c:311 backend/plustek.c:1017 backend/umax_pp.c:743 +#: backend/lexmark.c:311 backend/plustek.c:1017 backend/umax_pp.c:737 #, no-c-format msgid "Green gain" msgstr "Green gain" -#: backend/lexmark.c:312 backend/umax_pp.c:744 +#: backend/lexmark.c:312 backend/umax_pp.c:738 #, no-c-format msgid "Sets green channel gain" msgstr "Sets green channel gain" -#: backend/lexmark.c:325 backend/plustek.c:1033 backend/umax_pp.c:755 +#: backend/lexmark.c:325 backend/plustek.c:1033 backend/umax_pp.c:749 #, no-c-format msgid "Blue gain" msgstr "Blue gain" -#: backend/lexmark.c:326 backend/umax_pp.c:756 +#: backend/lexmark.c:326 backend/umax_pp.c:750 #, no-c-format msgid "Sets blue channel gain" msgstr "Sets blue channel gain" @@ -4776,7 +4797,7 @@ msgstr "One page" msgid "All pages" msgstr "All pages" -#: backend/matsushita.c:1034 backend/plustek.c:1333 +#: backend/matsushita.c:1034 backend/p5_device.c:8 backend/plustek.c:1333 #, no-c-format msgid "sheetfed scanner" msgstr "sheetfed scanner" @@ -5278,27 +5299,33 @@ msgstr "" "Warm-up until the lamp's brightness is constant instead of insisting on " "40 seconds warm-up time." -#: backend/pixma.c:397 +# Original would be better as "Needs calibration". "Need calibration" is a command rather than a statement of fact which is what is required here, as in "You must need calibration, or else" +#: backend/p5.c:1926 +#, no-c-format +msgid "Need calibration" +msgstr "Needs calibration" + +#: backend/pixma/pixma.c:397 #, no-c-format msgid "Negative color" msgstr "Negative colour" -#: backend/pixma.c:402 +#: backend/pixma/pixma.c:402 #, no-c-format msgid "Negative gray" msgstr "Negative grey" -#: backend/pixma.c:415 +#: backend/pixma/pixma.c:415 #, no-c-format msgid "48 bits color" msgstr "48 bits colour" -#: backend/pixma.c:420 +#: backend/pixma/pixma.c:420 #, no-c-format msgid "16 bits gray" msgstr "16 bits grey" -#: backend/pixma_sane_options.c:84 +#: backend/pixma/pixma_sane_options.c:84 #, no-c-format msgid "" "Selects the scan source (such as a document-feeder). Set source before " @@ -5307,12 +5334,12 @@ msgstr "" "Selects the scan source (such as a document-feeder). Set source before " "mode and resolution. Resets mode and resolution to auto values." -#: backend/pixma_sane_options.c:98 +#: backend/pixma/pixma_sane_options.c:98 #, no-c-format msgid "Button-controlled scan" msgstr "Button-controlled scan" -#: backend/pixma_sane_options.c:99 +#: backend/pixma/pixma_sane_options.c:99 #, no-c-format msgid "" "When enabled, scan process will not start immediately. To proceed, press " @@ -5323,44 +5350,44 @@ msgstr "" "\"SCAN\" button (for MP150) or \"COLOUR\" button (for other models). To " "cancel, press \"GREY\" button." -#: backend/pixma_sane_options.c:232 +#: backend/pixma/pixma_sane_options.c:232 #, no-c-format msgid "Update button state" msgstr "Update button state" -#: backend/pixma_sane_options.c:244 +#: backend/pixma/pixma_sane_options.c:244 #, no-c-format msgid "Button 1" msgstr "Button 1" -#: backend/pixma_sane_options.c:258 +#: backend/pixma/pixma_sane_options.c:258 #, no-c-format msgid "Button 2" msgstr "Button 2" -#: backend/pixma_sane_options.c:272 +#: backend/pixma/pixma_sane_options.c:272 #, no-c-format msgid "Type of original to scan" msgstr "Type of original to scan" -#: backend/pixma_sane_options.c:286 +#: backend/pixma/pixma_sane_options.c:286 #, no-c-format msgid "Target operation type" msgstr "Target operation type" -#: backend/pixma_sane_options.c:348 +#: backend/pixma/pixma_sane_options.c:348 #, no-c-format msgid "ADF Waiting Time" msgstr "ADF Waiting Time" -#: backend/pixma_sane_options.c:349 -#, fuzzy, no-c-format +#: backend/pixma/pixma_sane_options.c:349 +#, no-c-format msgid "" "When set, the scanner waits upto the specified time in seconds for a new " "document inserted into the automatic document feeder." msgstr "" -"When set, the scanner waits the specified time in seconds for a new " -"document to be inserted into the automatic document feeder." +"When set, the scanner waits upto the specified time in seconds for a new " +"document inserted into the automatic document feeder." #: backend/plustek.c:235 backend/plustek_pp.c:204 backend/u12.c:156 #, no-c-format @@ -5447,7 +5474,7 @@ msgstr "Analogue frontend" msgid "Red gain value of the AFE" msgstr "Red gain value of the AFE" -#: backend/plustek.c:1009 backend/umax_pp.c:788 +#: backend/plustek.c:1009 backend/umax_pp.c:782 #, no-c-format msgid "Red offset" msgstr "Red offset" @@ -5722,7 +5749,7 @@ msgstr "" msgid "This option reflects the status of a scanner button." msgstr "This option reflects the status of a scanner button." -#: backend/rts8891.c:2840 backend/umax.c:5795 backend/umax_pp.c:635 +#: backend/rts8891.c:2840 backend/umax.c:5795 backend/umax_pp.c:629 #, no-c-format msgid "Lamp on" msgstr "Lamp on" @@ -5732,12 +5759,12 @@ msgstr "Lamp on" msgid "Turn on scanner lamp" msgstr "Turn on scanner lamp" -#: backend/rts8891.c:2851 backend/umax1220u.c:248 backend/umax.c:5812 +#: backend/rts8891.c:2851 backend/umax.c:5812 backend/umax1220u.c:248 #, no-c-format msgid "Lamp off" msgstr "Lamp off" -#: backend/rts8891.c:2852 backend/umax1220u.c:249 backend/umax.c:5813 +#: backend/rts8891.c:2852 backend/umax.c:5813 backend/umax1220u.c:249 #, no-c-format msgid "Turn off scanner lamp" msgstr "Turn off scanner lamp" @@ -5881,12 +5908,12 @@ msgid "Focus point" msgstr "Focus point" #: backend/snapscan-options.c:930 -#, fuzzy, no-c-format +#, no-c-format msgid "Color lines per read" msgstr "Colour lines per read" #: backend/snapscan-options.c:942 -#, fuzzy, no-c-format +#, no-c-format msgid "Grayscale lines per read" msgstr "Greyscale lines per read" @@ -6531,56 +6558,66 @@ msgstr "Calibration mode" msgid "Define calibration mode" msgstr "Define calibration mode" -#: backend/umax_pp.c:636 +#: backend/umax_pp.c:630 #, no-c-format msgid "Sets lamp on/off" msgstr "Sets lamp on/off" -#: backend/umax_pp.c:645 +#: backend/umax_pp.c:639 #, no-c-format msgid "UTA on" msgstr "UTA on" -#: backend/umax_pp.c:646 +#: backend/umax_pp.c:640 #, no-c-format msgid "Sets UTA on/off" msgstr "Sets UTA on/off" -#: backend/umax_pp.c:767 +#: backend/umax_pp.c:761 #, no-c-format msgid "Offset" msgstr "Offset" -#: backend/umax_pp.c:769 +#: backend/umax_pp.c:763 #, no-c-format msgid "Color channels offset settings" msgstr "Colour channels offset settings" -#: backend/umax_pp.c:776 +#: backend/umax_pp.c:770 #, no-c-format msgid "Gray offset" msgstr "Grey offset" -#: backend/umax_pp.c:777 +#: backend/umax_pp.c:771 #, no-c-format msgid "Sets gray channel offset" msgstr "Sets grey channel offset" -#: backend/umax_pp.c:789 +#: backend/umax_pp.c:783 #, no-c-format msgid "Sets red channel offset" msgstr "Sets red channel offset" -#: backend/umax_pp.c:801 +#: backend/umax_pp.c:795 #, no-c-format msgid "Sets green channel offset" msgstr "Sets green channel offset" -#: backend/umax_pp.c:813 +#: backend/umax_pp.c:807 #, no-c-format msgid "Sets blue channel offset" msgstr "Sets blue channel offset" +#~ msgid "Disable dynamic lineart" +#~ msgstr "Disable dynamic lineart" + +#~ msgid "" +#~ "Disable use of a software adaptive algorithm to generate lineart " +#~ "relying instead on hardware lineart." +#~ msgstr "" +#~ "Disable use of a software adaptive algorithm to generate lineart " +#~ "relying instead on hardware lineart." + #~ msgid "linier" #~ msgstr "linear" diff --git a/po/eo.po b/po/eo.po index 3e34edf98..ba575089c 100644 --- a/po/eo.po +++ b/po/eo.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: sane-backends.eo\n" "Report-Msgid-Bugs-To: sane-devel@alioth-lists.debian.net\n" -"POT-Creation-Date: 2019-10-12 17:41+0300\n" +"POT-Creation-Date: 2020-01-12 07:09+0000\n" "PO-Revision-Date: 2007-12-08 13:28+0100\n" "Last-Translator: A.C.Codazzi\n" "Language-Team: \n" @@ -31,23 +31,23 @@ msgid "Standard" msgstr "" #: include/sane/saneopts.h:157 backend/artec_eplus48u.c:2884 -#: backend/epson.c:3298 backend/epson2.c:1290 -#: backend/genesys/genesys.cpp:3976 backend/gt68xx.c:696 -#: backend/hp3500.c:1019 backend/hp-option.c:3300 backend/kvs1025_opt.c:639 +#: backend/epson.c:3298 backend/epson2.c:1290 backend/epsonds.c:677 +#: backend/genesys/genesys.cpp:4034 backend/gt68xx.c:696 +#: backend/hp-option.c:3300 backend/hp3500.c:1019 backend/kvs1025_opt.c:639 #: backend/kvs20xx_opt.c:285 backend/kvs40xx_opt.c:506 backend/leo.c:823 #: backend/lexmark.c:199 backend/ma1509.c:551 backend/matsushita.c:1135 #: backend/microtek2.h:599 backend/mustek.c:4373 backend/mustek_usb.c:301 -#: backend/mustek_usb2.c:465 backend/pixma_sane_options.c:160 +#: backend/mustek_usb2.c:465 backend/pixma/pixma_sane_options.c:160 #: backend/plustek.c:808 backend/plustek_pp.c:747 backend/sceptre.c:702 #: backend/snapscan-options.c:550 backend/teco1.c:1095 backend/teco2.c:1910 #: backend/teco3.c:920 backend/test.c:647 backend/u12.c:546 -#: backend/umax.c:5176 backend/umax_pp.c:576 +#: backend/umax.c:5176 backend/umax_pp.c:570 #, no-c-format msgid "Geometry" msgstr "Geometrio" #: include/sane/saneopts.h:158 backend/artec_eplus48u.c:2805 -#: backend/canon.c:1493 backend/genesys/genesys.cpp:4035 +#: backend/canon.c:1493 backend/genesys/genesys.cpp:4077 #: backend/gt68xx.c:665 backend/hp-option.c:2956 backend/kvs1025_opt.c:703 #: backend/leo.c:871 backend/ma1509.c:599 backend/matsushita.c:1189 #: backend/microtek2.h:600 backend/mustek.c:4421 backend/mustek_usb.c:349 @@ -55,7 +55,7 @@ msgstr "Geometrio" #: backend/plustek_pp.c:793 backend/sceptre.c:750 #: backend/snapscan-options.c:617 backend/stv680.c:1067 #: backend/teco1.c:1143 backend/teco2.c:1958 backend/teco3.c:968 -#: backend/u12.c:592 backend/umax.c:5226 backend/umax_pp.c:625 +#: backend/u12.c:592 backend/umax.c:5226 backend/umax_pp.c:619 #, no-c-format msgid "Enhancement" msgstr "Plibonigo" @@ -89,7 +89,7 @@ msgid "Bit depth" msgstr "Profundeco en bitoj" #: include/sane/saneopts.h:165 backend/canon.c:1140 backend/leo.c:781 -#: backend/pixma_sane_options.c:47 +#: backend/pixma/pixma_sane_options.c:47 #, no-c-format msgid "Scan mode" msgstr "Moduso de skanado" @@ -130,7 +130,7 @@ msgid "Bottom-right y" msgstr "Sube-dekstre Y" #: include/sane/saneopts.h:173 backend/canon.c:1216 -#: backend/pixma_sane_options.c:300 +#: backend/pixma/pixma_sane_options.c:300 #, no-c-format msgid "Scan resolution" msgstr "Difino de skanado" @@ -285,7 +285,7 @@ msgstr "Dosiernomo" msgid "Halftone pattern size" msgstr "Grado de modelo por meznuancoj" -#: include/sane/saneopts.h:204 backend/fujitsu.c:3233 +#: include/sane/saneopts.h:204 backend/fujitsu.c:3237 #, no-c-format msgid "Halftone pattern" msgstr "Modelo por meznuanco" @@ -295,10 +295,10 @@ msgstr "Modelo por meznuanco" msgid "Bind X and Y resolution" msgstr "Bindu distindon de X kaj Y" -#: include/sane/saneopts.h:206 backend/hp3900_sane.c:428 -#: backend/hp3900_sane.c:1021 backend/hp3900_sane.c:1421 -#: backend/hp-option.c:3238 backend/mustek_usb2.c:121 backend/plustek.c:236 -#: backend/plustek_pp.c:205 backend/u12.c:157 +#: include/sane/saneopts.h:206 backend/hp-option.c:3238 +#: backend/hp3900_sane.c:428 backend/hp3900_sane.c:1021 +#: backend/hp3900_sane.c:1421 backend/mustek_usb2.c:121 +#: backend/plustek.c:236 backend/plustek_pp.c:205 backend/u12.c:157 #, no-c-format msgid "Negative" msgstr "Negativo" @@ -1041,78 +1041,38 @@ msgid "" "Duplex scan provides a scan of the front and back side of the document" msgstr "Ĝi plenumas frontan-dorsan skanadon de la dokumento" -#: backend/canon630u.c:159 +#: backend/canon-sane.c:674 backend/canon.c:171 #, no-c-format -msgid "Calibrate Scanner" -msgstr "Kalibrigu Skanilon" +msgid "Correction according to transparency ratio" +msgstr "Korektado rilata al la rejŝo de diafaneco" -#: backend/canon630u.c:160 +#: backend/canon-sane.c:680 backend/canon.c:170 #, no-c-format -msgid "Force scanner calibration before scan" -msgstr "Ĝi devigas kalibrigon de skanilon antaŭ la skanado" +msgid "Correction according to film type" +msgstr "Korektado rilata al la filmospeco" -#: backend/canon630u.c:259 backend/umax1220u.c:208 -#, no-c-format -msgid "Grayscale scan" -msgstr "Grizgama skanado" - -#: backend/canon630u.c:260 backend/umax1220u.c:209 -#, no-c-format -msgid "Do a grayscale rather than color scan" -msgstr "Ĝi plenumas grizgaman anstataŭ kolora skanadon" - -#: backend/canon630u.c:306 -#, no-c-format -msgid "Analog Gain" -msgstr "Analoga Gajno" - -#: backend/canon630u.c:307 -#, no-c-format -msgid "Increase or decrease the analog gain of the CCD array" -msgstr "Ĝi pliigas aŭ malpliigas la analogan gajnon de la CCD-sentilo" - -#: backend/canon630u.c:347 backend/epson.h:68 backend/epson2.h:67 -#, no-c-format -msgid "Gamma Correction" -msgstr "Korektado de Gama" - -#: backend/canon630u.c:348 -#, no-c-format -msgid "Selects the gamma corrected transfer curve" -msgstr "Ĝi elektas la kurbon de korektado de gama" - -#: backend/canon.c:149 backend/canon-sane.c:1318 -#, no-c-format -msgid "Raw" -msgstr "Kruda" - -#: backend/canon.c:157 backend/canon-sane.c:732 backend/canon-sane.c:940 +#: backend/canon-sane.c:732 backend/canon-sane.c:940 #: backend/canon-sane.c:1076 backend/canon-sane.c:1314 -#: backend/canon-sane.c:1494 backend/canon-sane.c:1643 +#: backend/canon-sane.c:1494 backend/canon-sane.c:1643 backend/canon.c:157 #, no-c-format msgid "Fine color" msgstr "Fajna koloro" +#: backend/canon-sane.c:776 backend/canon.c:176 +#, no-c-format +msgid "Negatives" +msgstr "Negativoj" + +#: backend/canon-sane.c:1318 backend/canon.c:149 +#, no-c-format +msgid "Raw" +msgstr "Kruda" + #: backend/canon.c:169 #, no-c-format msgid "No transparency correction" msgstr "Neniu korektado de diafaneco" -#: backend/canon.c:170 backend/canon-sane.c:680 -#, no-c-format -msgid "Correction according to film type" -msgstr "Korektado rilata al la filmospeco" - -#: backend/canon.c:171 backend/canon-sane.c:674 -#, no-c-format -msgid "Correction according to transparency ratio" -msgstr "Korektado rilata al la rejŝo de diafaneco" - -#: backend/canon.c:176 backend/canon-sane.c:776 -#, no-c-format -msgid "Negatives" -msgstr "Negativoj" - #: backend/canon.c:176 #, no-c-format msgid "Slides" @@ -1537,94 +1497,137 @@ msgstr "Elektu specon de filmo" msgid "Select the film type" msgstr "Ĝi elektas specon de filmo" -#: backend/canon_dr.c:411 backend/epjitsu.c:233 backend/epson.c:501 -#: backend/epson2.c:115 backend/fujitsu.c:675 backend/gt68xx.c:148 +#: backend/canon630u.c:159 +#, no-c-format +msgid "Calibrate Scanner" +msgstr "Kalibrigu Skanilon" + +#: backend/canon630u.c:160 +#, no-c-format +msgid "Force scanner calibration before scan" +msgstr "Ĝi devigas kalibrigon de skanilon antaŭ la skanado" + +#: backend/canon630u.c:259 backend/umax1220u.c:208 +#, no-c-format +msgid "Grayscale scan" +msgstr "Grizgama skanado" + +#: backend/canon630u.c:260 backend/umax1220u.c:209 +#, no-c-format +msgid "Do a grayscale rather than color scan" +msgstr "Ĝi plenumas grizgaman anstataŭ kolora skanadon" + +#: backend/canon630u.c:306 +#, no-c-format +msgid "Analog Gain" +msgstr "Analoga Gajno" + +#: backend/canon630u.c:307 +#, no-c-format +msgid "Increase or decrease the analog gain of the CCD array" +msgstr "Ĝi pliigas aŭ malpliigas la analogan gajnon de la CCD-sentilo" + +#: backend/canon630u.c:347 backend/epson.h:68 backend/epson2.h:67 +#, no-c-format +msgid "Gamma Correction" +msgstr "Korektado de Gama" + +#: backend/canon630u.c:348 +#, no-c-format +msgid "Selects the gamma corrected transfer curve" +msgstr "Ĝi elektas la kurbon de korektado de gama" + +#: backend/canon_dr.c:413 backend/epjitsu.c:233 backend/epson.c:501 +#: backend/epson2-ops.c:101 backend/epson2.c:115 backend/epsonds-ops.c:32 +#: backend/epsonds.c:95 backend/epsonds.h:62 backend/fujitsu.c:677 +#: backend/genesys/genesys.h:78 backend/gt68xx.c:148 #: backend/hp3900_sane.c:418 backend/hp3900_sane.c:427 -#: backend/hp3900_sane.c:1017 backend/hp5590.c:92 backend/ma1509.c:108 -#: backend/magicolor.c:181 backend/mustek.c:156 backend/mustek.c:160 -#: backend/mustek.c:164 backend/pixma.c:920 backend/pixma_sane_options.c:92 -#: backend/snapscan-options.c:86 backend/test.c:192 backend/umax.c:181 +#: backend/hp3900_sane.c:1017 backend/hp5590.c:92 backend/kodakaio.c:617 +#: backend/ma1509.c:108 backend/magicolor.c:181 backend/mustek.c:156 +#: backend/mustek.c:160 backend/mustek.c:164 backend/pixma/pixma.c:920 +#: backend/pixma/pixma_sane_options.c:92 backend/snapscan-options.c:86 +#: backend/test.c:192 backend/umax.c:181 #, no-c-format msgid "Flatbed" msgstr "Fiksa ebeno" -#: backend/canon_dr.c:412 backend/epjitsu.c:234 backend/fujitsu.c:676 +#: backend/canon_dr.c:414 backend/epjitsu.c:234 backend/fujitsu.c:678 #: backend/kodak.c:140 #, fuzzy, no-c-format msgid "ADF Front" msgstr "Kovrilo de ADF estas malfermita" -#: backend/canon_dr.c:413 backend/epjitsu.c:235 backend/fujitsu.c:677 +#: backend/canon_dr.c:415 backend/epjitsu.c:235 backend/fujitsu.c:679 #: backend/kodak.c:141 #, fuzzy, no-c-format msgid "ADF Back" msgstr "ADF estas blokita" -#: backend/canon_dr.c:414 backend/epjitsu.c:236 backend/fujitsu.c:678 -#: backend/hp5590.c:94 backend/kodak.c:142 backend/pixma.c:931 +#: backend/canon_dr.c:416 backend/epjitsu.c:236 backend/fujitsu.c:680 +#: backend/hp5590.c:94 backend/kodak.c:142 backend/pixma/pixma.c:931 #, no-c-format msgid "ADF Duplex" msgstr "Fronta-dorsa ADF" -#: backend/canon_dr.c:415 +#: backend/canon_dr.c:417 #, fuzzy, no-c-format msgid "Card Front" msgstr "Presu" -#: backend/canon_dr.c:416 +#: backend/canon_dr.c:418 #, no-c-format msgid "Card Back" msgstr "" -#: backend/canon_dr.c:417 +#: backend/canon_dr.c:419 #, fuzzy, no-c-format msgid "Card Duplex" msgstr "Fronta-dorsa" -#: backend/canon_dr.c:424 backend/epson.c:599 backend/epson.c:3096 -#: backend/epson2.c:201 backend/fujitsu.c:695 -#: backend/genesys/genesys.cpp:99 backend/genesys/genesys.cpp:106 +#: backend/canon_dr.c:426 backend/epson.c:599 backend/epson.c:3096 +#: backend/epson2.c:201 backend/fujitsu.c:697 +#: backend/genesys/genesys.cpp:120 backend/genesys/genesys.cpp:127 #: backend/gt68xx_low.h:136 backend/hp-option.c:3096 #, no-c-format msgid "Red" msgstr "Ruĝo" -#: backend/canon_dr.c:425 backend/epson.c:600 backend/epson.c:3092 -#: backend/epson2.c:202 backend/fujitsu.c:696 -#: backend/genesys/genesys.cpp:100 backend/genesys/genesys.cpp:107 +#: backend/canon_dr.c:427 backend/epson.c:600 backend/epson.c:3092 +#: backend/epson2.c:202 backend/fujitsu.c:698 +#: backend/genesys/genesys.cpp:121 backend/genesys/genesys.cpp:128 #: backend/gt68xx_low.h:137 backend/hp-option.c:3097 #, no-c-format msgid "Green" msgstr "Verdo" -#: backend/canon_dr.c:426 backend/epson.c:601 backend/epson.c:3100 -#: backend/epson2.c:203 backend/fujitsu.c:697 -#: backend/genesys/genesys.cpp:101 backend/genesys/genesys.cpp:108 +#: backend/canon_dr.c:428 backend/epson.c:601 backend/epson.c:3100 +#: backend/epson2.c:203 backend/fujitsu.c:699 +#: backend/genesys/genesys.cpp:122 backend/genesys/genesys.cpp:129 #: backend/gt68xx_low.h:138 backend/hp-option.c:3098 #, no-c-format msgid "Blue" msgstr "Bluo" -#: backend/canon_dr.c:427 +#: backend/canon_dr.c:429 #, fuzzy, no-c-format msgid "Enhance Red" msgstr "Plibonigo" -#: backend/canon_dr.c:428 +#: backend/canon_dr.c:430 #, fuzzy, no-c-format msgid "Enhance Green" msgstr "Plibonigo" -#: backend/canon_dr.c:429 +#: backend/canon_dr.c:431 #, fuzzy, no-c-format msgid "Enhance Blue" msgstr "Plibonigo" -#: backend/canon_dr.c:431 backend/epson.c:556 backend/epson.c:564 +#: backend/canon_dr.c:433 backend/epson.c:556 backend/epson.c:564 #: backend/epson.c:576 backend/epson.c:598 backend/epson2.c:165 #: backend/epson2.c:173 backend/epson2.c:185 backend/epson2.c:200 -#: backend/epson2.c:214 backend/fujitsu.c:701 -#: backend/genesys/genesys.cpp:109 backend/leo.c:109 +#: backend/epson2.c:214 backend/fujitsu.c:703 +#: backend/genesys/genesys.cpp:130 backend/leo.c:109 #: backend/matsushita.c:138 backend/matsushita.c:159 #: backend/matsushita.c:191 backend/matsushita.c:213 #: backend/snapscan-options.c:91 @@ -1632,42 +1635,46 @@ msgstr "Plibonigo" msgid "None" msgstr "Nenio" -#: backend/canon_dr.c:432 backend/fujitsu.c:702 +#: backend/canon_dr.c:434 backend/fujitsu.c:704 #, no-c-format msgid "JPEG" msgstr "" -#: backend/canon_dr.c:2477 backend/fujitsu.c:4113 -#: backend/genesys/genesys.cpp:4126 backend/kvs1025_opt.c:910 +#: backend/canon_dr.c:2479 backend/fujitsu.c:4117 +#: backend/genesys/genesys.cpp:4168 backend/kvs1025_opt.c:910 #, no-c-format msgid "Software blank skip percentage" msgstr "" -#: backend/canon_dr.c:2478 backend/fujitsu.c:4114 +#: backend/canon_dr.c:2480 backend/fujitsu.c:4118 #, no-c-format msgid "Request driver to discard pages with low percentage of dark pixels" msgstr "" -#: backend/epson.c:491 backend/epson2.c:108 backend/magicolor.c:174 +#: backend/epson.c:491 backend/epson2.c:108 backend/epsonds.c:88 +#: backend/kodakaio.c:611 backend/magicolor.c:174 #, no-c-format msgid "Simplex" msgstr "Unuopa" -#: backend/epson.c:492 backend/epson2.c:109 backend/kvs1025.h:50 -#: backend/kvs20xx_opt.c:204 backend/kvs40xx_opt.c:353 -#: backend/magicolor.c:175 backend/matsushita.h:218 +#: backend/epson.c:492 backend/epson2.c:109 backend/epsonds.c:89 +#: backend/kodakaio.c:612 backend/kvs1025.h:50 backend/kvs20xx_opt.c:204 +#: backend/kvs40xx_opt.c:353 backend/magicolor.c:175 +#: backend/matsushita.h:218 #, no-c-format msgid "Duplex" msgstr "Fronta-dorsa" -#: backend/epson.c:502 backend/epson2.c:116 backend/pixma.c:937 +#: backend/epson.c:502 backend/epson2-ops.c:102 backend/epson2.c:116 +#: backend/epsonds-ops.c:33 backend/epsonds.h:63 backend/pixma/pixma.c:937 #, no-c-format msgid "Transparency Unit" msgstr "Reguligilo de Diafaneco" -#: backend/epson.c:503 backend/epson2.c:118 backend/magicolor.c:182 -#: backend/mustek.c:160 backend/pixma.c:925 backend/test.c:192 -#: backend/umax.c:183 +#: backend/epson.c:503 backend/epson2-ops.c:104 backend/epson2.c:118 +#: backend/epsonds-ops.c:34 backend/epsonds.c:96 backend/epsonds.h:64 +#: backend/kodakaio.c:618 backend/magicolor.c:182 backend/mustek.c:160 +#: backend/pixma/pixma.c:925 backend/test.c:192 backend/umax.c:183 #, no-c-format msgid "Automatic Document Feeder" msgstr "Aŭtomata Provizilo de Dokumentoj" @@ -1779,7 +1786,7 @@ msgstr "Inkoŝprucaj printiloj" msgid "CRT monitors" msgstr "CRT ekranoj" -#: backend/epson.c:656 backend/epson2.c:254 backend/fujitsu.c:685 +#: backend/epson.c:656 backend/epson2.c:254 backend/fujitsu.c:687 #: backend/hp-option.c:3229 backend/test.c:143 #, no-c-format msgid "Default" @@ -1843,8 +1850,8 @@ msgstr "A4" msgid "Max" msgstr "Maks" -#: backend/epson.c:2813 backend/epson2.c:976 -#: backend/genesys/genesys.cpp:3893 backend/gt68xx.c:451 +#: backend/epson.c:2813 backend/epson2.c:976 backend/epsonds.c:629 +#: backend/genesys/genesys.cpp:3965 backend/gt68xx.c:451 #: backend/hp-option.c:2917 backend/kvs1025_opt.c:521 #: backend/kvs20xx_opt.c:171 backend/kvs40xx_opt.c:320 backend/ma1509.c:501 #: backend/matsushita.c:1084 backend/microtek2.h:598 backend/mustek.c:4215 @@ -2018,17 +2025,17 @@ msgstr "Ĝi agordas la faktoron de zomo kiun la skanilo uzos" msgid "Quick format" msgstr "Formato rapido" -#: backend/epson.c:3360 backend/epson2.c:1340 +#: backend/epson.c:3360 backend/epson2.c:1340 backend/epsonds.c:726 #, no-c-format msgid "Optional equipment" msgstr "Akcesora ekipaĵo" -#: backend/epson.c:3431 backend/epson2.c:1393 +#: backend/epson.c:3431 backend/epson2.c:1393 backend/epsonds.c:742 #, no-c-format msgid "Eject" msgstr "Elpelo" -#: backend/epson.c:3432 backend/epson2.c:1394 +#: backend/epson.c:3432 backend/epson2.c:1394 backend/epsonds.c:743 #, no-c-format msgid "Eject the sheet in the ADF" msgstr "Ĝi elpelas la folion el aŭtomata provizilo" @@ -2043,12 +2050,14 @@ msgstr "Mem-elpelo" msgid "Eject document after scanning" msgstr "Ĝi elpelas la dokumento post la skanado" -#: backend/epson.c:3457 backend/epson2.c:1416 backend/magicolor.c:2420 +#: backend/epson.c:3457 backend/epson2.c:1416 backend/epsonds.c:758 +#: backend/kodakaio.c:2855 backend/magicolor.c:2420 #, no-c-format msgid "ADF Mode" msgstr "Moduso por ADF" -#: backend/epson.c:3459 backend/epson2.c:1418 backend/magicolor.c:2422 +#: backend/epson.c:3459 backend/epson2.c:1418 backend/epsonds.c:760 +#: backend/kodakaio.c:2857 backend/magicolor.c:2422 #, no-c-format msgid "Selects the ADF mode (simplex/duplex)" msgstr "Ĝi elektas la ADF-moduso (unuopa/fronta-dorsa)" @@ -2098,16 +2107,16 @@ msgstr "" "Post la sendo de la skan-komando, ĝi atendas la premon de la butono de " "la skanilo por startigi la skanadon." -#: backend/epson2.c:102 backend/pixma.c:409 -#, no-c-format -msgid "Infrared" -msgstr "" - -#: backend/epson2.c:117 +#: backend/epson2-ops.c:103 backend/epson2.c:117 #, no-c-format msgid "TPU8x10" msgstr "" +#: backend/epson2.c:102 backend/pixma/pixma.c:409 +#, no-c-format +msgid "Infrared" +msgstr "" + #: backend/epson2.c:136 #, no-c-format msgid "Positive Slide" @@ -2128,492 +2137,512 @@ msgstr "" msgid "User defined CCT profile" msgstr "Agordita de la uzanto" -#: backend/fujitsu.c:686 backend/hp-option.c:3330 backend/hp-option.c:3343 +#: backend/epsonds.c:750 +#, no-c-format +msgid "Load" +msgstr "" + +#: backend/epsonds.c:751 +#, fuzzy, no-c-format +msgid "Load a sheet in the ADF" +msgstr "Ĝi elpelas la folion el aŭtomata provizilo" + +#: backend/epsonds.c:771 +#, fuzzy, no-c-format +msgid "ADF Skew Correction" +msgstr "Neniu korektado" + +#: backend/epsonds.c:773 +#, fuzzy, no-c-format +msgid "Enables ADF skew correction" +msgstr "Korektado de analoga gama" + +#: backend/fujitsu.c:688 backend/hp-option.c:3330 backend/hp-option.c:3343 #, no-c-format msgid "On" msgstr "Kondukta" -#: backend/fujitsu.c:687 backend/hp-option.c:3162 backend/hp-option.c:3329 +#: backend/fujitsu.c:689 backend/hp-option.c:3162 backend/hp-option.c:3329 #: backend/hp-option.c:3342 #, no-c-format msgid "Off" msgstr "Elkluda" -#: backend/fujitsu.c:689 +#: backend/fujitsu.c:691 #, no-c-format msgid "DTC" msgstr "" -#: backend/fujitsu.c:690 +#: backend/fujitsu.c:692 #, no-c-format msgid "SDTC" msgstr "" -#: backend/fujitsu.c:692 backend/teco1.c:1152 backend/teco1.c:1153 +#: backend/fujitsu.c:694 backend/teco1.c:1152 backend/teco1.c:1153 #: backend/teco2.c:1967 backend/teco2.c:1968 backend/teco3.c:977 #: backend/teco3.c:978 #, no-c-format msgid "Dither" msgstr "Punktismo" -#: backend/fujitsu.c:693 +#: backend/fujitsu.c:695 #, fuzzy, no-c-format msgid "Diffusion" msgstr "Difuzo de Eraro" -#: backend/fujitsu.c:698 +#: backend/fujitsu.c:700 #, fuzzy, no-c-format msgid "White" msgstr "Nivelo de blanko" -#: backend/fujitsu.c:699 +#: backend/fujitsu.c:701 #, fuzzy, no-c-format msgid "Black" msgstr "Nivelo de nigro" -#: backend/fujitsu.c:704 +#: backend/fujitsu.c:706 #, fuzzy, no-c-format msgid "Continue" msgstr "Kondiĉa" -#: backend/fujitsu.c:705 +#: backend/fujitsu.c:707 #, no-c-format msgid "Stop" msgstr "" -#: backend/fujitsu.c:707 +#: backend/fujitsu.c:709 #, no-c-format msgid "10mm" msgstr "" -#: backend/fujitsu.c:708 +#: backend/fujitsu.c:710 #, no-c-format msgid "15mm" msgstr "" -#: backend/fujitsu.c:709 +#: backend/fujitsu.c:711 #, no-c-format msgid "20mm" msgstr "" -#: backend/fujitsu.c:711 backend/hp-option.c:3048 +#: backend/fujitsu.c:713 backend/hp-option.c:3048 #, no-c-format msgid "Horizontal" msgstr "Horizontala" -#: backend/fujitsu.c:712 +#: backend/fujitsu.c:714 #, fuzzy, no-c-format msgid "Horizontal bold" msgstr "Horizontala" -#: backend/fujitsu.c:713 +#: backend/fujitsu.c:715 #, fuzzy, no-c-format msgid "Horizontal narrow" msgstr "Horizontala" -#: backend/fujitsu.c:714 backend/hp-option.c:3047 +#: backend/fujitsu.c:716 backend/hp-option.c:3047 #, no-c-format msgid "Vertical" msgstr "Vertikala" -#: backend/fujitsu.c:715 +#: backend/fujitsu.c:717 #, fuzzy, no-c-format msgid "Vertical bold" msgstr "Vertikala" -#: backend/fujitsu.c:717 +#: backend/fujitsu.c:719 #, no-c-format msgid "Top to bottom" msgstr "" -#: backend/fujitsu.c:718 +#: backend/fujitsu.c:720 #, no-c-format msgid "Bottom to top" msgstr "" -#: backend/fujitsu.c:720 +#: backend/fujitsu.c:722 #, fuzzy, no-c-format msgid "Front" msgstr "Presu" -#: backend/fujitsu.c:721 +#: backend/fujitsu.c:723 #, no-c-format msgid "Back" msgstr "" -#: backend/fujitsu.c:3144 backend/pixma_sane_options.c:145 +#: backend/fujitsu.c:3148 backend/pixma/pixma_sane_options.c:145 #, no-c-format msgid "Gamma function exponent" msgstr "" -#: backend/fujitsu.c:3145 backend/pixma_sane_options.c:146 +#: backend/fujitsu.c:3149 backend/pixma/pixma_sane_options.c:146 #, no-c-format msgid "Changes intensity of midtones" msgstr "" -#: backend/fujitsu.c:3194 +#: backend/fujitsu.c:3198 #, no-c-format msgid "RIF" msgstr "" -#: backend/fujitsu.c:3195 +#: backend/fujitsu.c:3199 #, no-c-format msgid "Reverse image format" msgstr "" -#: backend/fujitsu.c:3212 +#: backend/fujitsu.c:3216 #, fuzzy, no-c-format msgid "Halftone type" msgstr "Meznuancoj" -#: backend/fujitsu.c:3213 +#: backend/fujitsu.c:3217 #, no-c-format msgid "Control type of halftone filter" msgstr "" -#: backend/fujitsu.c:3234 +#: backend/fujitsu.c:3238 #, no-c-format msgid "Control pattern of halftone filter" msgstr "" -#: backend/fujitsu.c:3256 +#: backend/fujitsu.c:3260 #, no-c-format msgid "Outline" msgstr "" -#: backend/fujitsu.c:3257 +#: backend/fujitsu.c:3261 #, fuzzy, no-c-format msgid "Perform outline extraction" msgstr "Plenumu kalibrigon" -#: backend/fujitsu.c:3268 +#: backend/fujitsu.c:3272 #, fuzzy, no-c-format msgid "Emphasis" msgstr "Emfazo de bildo" -#: backend/fujitsu.c:3269 +#: backend/fujitsu.c:3273 #, no-c-format msgid "Negative to smooth or positive to sharpen image" msgstr "" -#: backend/fujitsu.c:3287 +#: backend/fujitsu.c:3291 #, fuzzy, no-c-format msgid "Separation" msgstr "Saturado" -#: backend/fujitsu.c:3288 +#: backend/fujitsu.c:3292 #, fuzzy, no-c-format msgid "Enable automatic separation of image and text" msgstr "Ĝi elbligas aŭtomatan elekton de sojlo por duuma skanado." -#: backend/fujitsu.c:3299 +#: backend/fujitsu.c:3303 #, fuzzy, no-c-format msgid "Mirroring" msgstr "Spegula bildo" -#: backend/fujitsu.c:3300 +#: backend/fujitsu.c:3304 #, fuzzy, no-c-format msgid "Reflect output image horizontally" msgstr "Ĝi reflektas bildon horizontale." -#: backend/fujitsu.c:3317 +#: backend/fujitsu.c:3321 #, fuzzy, no-c-format msgid "White level follower" msgstr "Nivelo de blanko laŭ bluo" -#: backend/fujitsu.c:3318 +#: backend/fujitsu.c:3322 #, fuzzy, no-c-format msgid "Control white level follower" msgstr "Mastrumu nivelon de ruĝo" -#: backend/fujitsu.c:3336 +#: backend/fujitsu.c:3340 #, fuzzy, no-c-format msgid "BP filter" msgstr "Filtrilo de Koloro" -#: backend/fujitsu.c:3337 +#: backend/fujitsu.c:3341 #, no-c-format msgid "Improves quality of high resolution ball-point pen text" msgstr "" -#: backend/fujitsu.c:3353 backend/hp-option.h:73 +#: backend/fujitsu.c:3357 backend/hp-option.h:73 #, no-c-format msgid "Smoothing" msgstr "Glatigo" -#: backend/fujitsu.c:3354 +#: backend/fujitsu.c:3358 #, no-c-format msgid "Enable smoothing for improved OCR" msgstr "" -#: backend/fujitsu.c:3370 +#: backend/fujitsu.c:3374 #, fuzzy, no-c-format msgid "Gamma curve" msgstr "Valoro de Gama" -#: backend/fujitsu.c:3371 +#: backend/fujitsu.c:3375 #, no-c-format msgid "Gamma curve, from light to dark, but upper two may not work" msgstr "" -#: backend/fujitsu.c:3393 backend/genesys/genesys.cpp:4187 -#: backend/pixma_sane_options.c:335 +#: backend/fujitsu.c:3397 backend/genesys/genesys.cpp:4229 +#: backend/pixma/pixma_sane_options.c:335 #, fuzzy, no-c-format msgid "Threshold curve" msgstr "Sojlo" -#: backend/fujitsu.c:3394 +#: backend/fujitsu.c:3398 #, no-c-format msgid "" "Threshold curve, from light to dark, but upper two may not be linear" msgstr "" -#: backend/fujitsu.c:3416 +#: backend/fujitsu.c:3420 #, fuzzy, no-c-format msgid "Threshold white" msgstr "Sojlo" -#: backend/fujitsu.c:3417 +#: backend/fujitsu.c:3421 #, no-c-format msgid "Set pixels equal to threshold to white instead of black" msgstr "" -#: backend/fujitsu.c:3433 backend/fujitsu.c:3434 +#: backend/fujitsu.c:3437 backend/fujitsu.c:3438 #, fuzzy, no-c-format msgid "Noise removal" msgstr "Redukto de bruo" -#: backend/fujitsu.c:3450 +#: backend/fujitsu.c:3454 #, no-c-format msgid "Matrix 5x5" msgstr "" -#: backend/fujitsu.c:3451 +#: backend/fujitsu.c:3455 #, no-c-format msgid "Remove 5 pixel square noise" msgstr "" -#: backend/fujitsu.c:3467 +#: backend/fujitsu.c:3471 #, no-c-format msgid "Matrix 4x4" msgstr "" -#: backend/fujitsu.c:3468 +#: backend/fujitsu.c:3472 #, no-c-format msgid "Remove 4 pixel square noise" msgstr "" -#: backend/fujitsu.c:3484 +#: backend/fujitsu.c:3488 #, no-c-format msgid "Matrix 3x3" msgstr "" -#: backend/fujitsu.c:3485 +#: backend/fujitsu.c:3489 #, no-c-format msgid "Remove 3 pixel square noise" msgstr "" -#: backend/fujitsu.c:3501 +#: backend/fujitsu.c:3505 #, no-c-format msgid "Matrix 2x2" msgstr "" -#: backend/fujitsu.c:3502 +#: backend/fujitsu.c:3506 #, no-c-format msgid "Remove 2 pixel square noise" msgstr "" -#: backend/fujitsu.c:3521 +#: backend/fujitsu.c:3525 #, no-c-format msgid "Variance" msgstr "" -#: backend/fujitsu.c:3522 +#: backend/fujitsu.c:3526 #, no-c-format msgid "Set SDTC variance rate (sensitivity), 0 equals 127" msgstr "" -#: backend/fujitsu.c:3555 +#: backend/fujitsu.c:3559 #, fuzzy, no-c-format msgid "Auto width detection" msgstr "Neniu korektado" -#: backend/fujitsu.c:3556 +#: backend/fujitsu.c:3560 #, no-c-format msgid "Scanner detects paper sides. May reduce scanning speed." msgstr "" -#: backend/fujitsu.c:3573 +#: backend/fujitsu.c:3577 #, fuzzy, no-c-format msgid "Auto length detection" msgstr "Neniu korektado" -#: backend/fujitsu.c:3574 +#: backend/fujitsu.c:3578 #, no-c-format msgid "Scanner detects paper lower edge. May confuse some frontends." msgstr "" -#: backend/fujitsu.c:3600 +#: backend/fujitsu.c:3604 #, no-c-format msgid "Compression" msgstr "" -#: backend/fujitsu.c:3601 +#: backend/fujitsu.c:3605 #, no-c-format msgid "Enable compressed data. May crash your front-end program" msgstr "" -#: backend/fujitsu.c:3621 +#: backend/fujitsu.c:3625 #, no-c-format msgid "Compression argument" msgstr "" -#: backend/fujitsu.c:3622 +#: backend/fujitsu.c:3626 #, no-c-format msgid "" "Level of JPEG compression. 1 is small file, 7 is large file. 0 (default) " "is same as 4" msgstr "" -#: backend/fujitsu.c:3652 +#: backend/fujitsu.c:3656 #, no-c-format msgid "DF action" msgstr "" -#: backend/fujitsu.c:3653 +#: backend/fujitsu.c:3657 #, no-c-format msgid "Action following double feed error" msgstr "" -#: backend/fujitsu.c:3669 +#: backend/fujitsu.c:3673 #, no-c-format msgid "DF skew" msgstr "" -#: backend/fujitsu.c:3670 +#: backend/fujitsu.c:3674 #, no-c-format msgid "Enable double feed error due to skew" msgstr "" -#: backend/fujitsu.c:3688 +#: backend/fujitsu.c:3692 #, no-c-format msgid "DF thickness" msgstr "" -#: backend/fujitsu.c:3689 +#: backend/fujitsu.c:3693 #, no-c-format msgid "Enable double feed error due to paper thickness" msgstr "" -#: backend/fujitsu.c:3707 +#: backend/fujitsu.c:3711 #, no-c-format msgid "DF length" msgstr "" -#: backend/fujitsu.c:3708 +#: backend/fujitsu.c:3712 #, no-c-format msgid "Enable double feed error due to paper length" msgstr "" -#: backend/fujitsu.c:3731 +#: backend/fujitsu.c:3735 #, no-c-format msgid "DF length difference" msgstr "" -#: backend/fujitsu.c:3732 +#: backend/fujitsu.c:3736 #, no-c-format msgid "Difference in page length to trigger double feed error" msgstr "" -#: backend/fujitsu.c:3755 +#: backend/fujitsu.c:3759 #, fuzzy, no-c-format msgid "DF recovery mode" msgstr "Kovrilo de ADF estas malfermita" -#: backend/fujitsu.c:3756 +#: backend/fujitsu.c:3760 #, no-c-format msgid "Request scanner to reverse feed on paper jam" msgstr "" -#: backend/fujitsu.c:3775 +#: backend/fujitsu.c:3779 #, no-c-format msgid "Paper protection" msgstr "" -#: backend/fujitsu.c:3776 +#: backend/fujitsu.c:3780 #, no-c-format msgid "Request scanner to predict jams in the ADF" msgstr "" -#: backend/fujitsu.c:3795 +#: backend/fujitsu.c:3799 #, fuzzy, no-c-format msgid "Advanced paper protection" msgstr "Avanaj Opcioj" -#: backend/fujitsu.c:3796 +#: backend/fujitsu.c:3800 #, no-c-format msgid "Request scanner to predict jams in the ADF using improved sensors" msgstr "" -#: backend/fujitsu.c:3815 +#: backend/fujitsu.c:3819 #, fuzzy, no-c-format msgid "Staple detection" msgstr "Neniu korektado" -#: backend/fujitsu.c:3816 +#: backend/fujitsu.c:3820 #, no-c-format msgid "Request scanner to detect jams in the ADF caused by staples" msgstr "" -#: backend/fujitsu.c:3835 +#: backend/fujitsu.c:3839 #, no-c-format msgid "Background color" msgstr "" -#: backend/fujitsu.c:3836 +#: backend/fujitsu.c:3840 #, no-c-format msgid "" "Set color of background for scans. May conflict with overscan option" msgstr "" -#: backend/fujitsu.c:3856 +#: backend/fujitsu.c:3860 #, fuzzy, no-c-format msgid "Dropout color" msgstr "Eskludado" -#: backend/fujitsu.c:3857 +#: backend/fujitsu.c:3861 #, no-c-format msgid "" "One-pass scanners use only one color during gray or binary scanning, " "useful for colored paper or ink" msgstr "" -#: backend/fujitsu.c:3880 +#: backend/fujitsu.c:3884 #, fuzzy, no-c-format msgid "Buffer mode" msgstr "Moduso de provizilo" -#: backend/fujitsu.c:3881 +#: backend/fujitsu.c:3885 #, no-c-format msgid "Request scanner to read pages quickly from ADF into internal memory" msgstr "" -#: backend/fujitsu.c:3900 +#: backend/fujitsu.c:3904 #, no-c-format msgid "Prepick" msgstr "" -#: backend/fujitsu.c:3901 +#: backend/fujitsu.c:3905 #, no-c-format msgid "Request scanner to grab next page from ADF" msgstr "" -#: backend/fujitsu.c:3920 +#: backend/fujitsu.c:3924 #, no-c-format msgid "Overscan" msgstr "" -#: backend/fujitsu.c:3921 +#: backend/fujitsu.c:3925 #, no-c-format msgid "" "Collect a few mm of background on top side of scan, before paper enters " @@ -2621,65 +2650,65 @@ msgid "" "collection on remaining sides. May conflict with bgcolor option" msgstr "" -#: backend/fujitsu.c:3939 +#: backend/fujitsu.c:3943 #, no-c-format msgid "Sleep timer" msgstr "" -#: backend/fujitsu.c:3940 +#: backend/fujitsu.c:3944 #, no-c-format msgid "" "Time in minutes until the internal power supply switches to sleep mode" msgstr "" -#: backend/fujitsu.c:3958 +#: backend/fujitsu.c:3962 #, fuzzy, no-c-format msgid "Off timer" msgstr "Ripozo de lampo" -#: backend/fujitsu.c:3959 +#: backend/fujitsu.c:3963 #, no-c-format msgid "" "Time in minutes until the internal power supply switches the scanner " "off. Will be rounded to nearest 15 minutes. Zero means never power off." msgstr "" -#: backend/fujitsu.c:3977 +#: backend/fujitsu.c:3981 #, fuzzy, no-c-format msgid "Duplex offset" msgstr "Deŝovo laŭ bluo" -#: backend/fujitsu.c:3978 +#: backend/fujitsu.c:3982 #, no-c-format msgid "Adjust front/back offset" msgstr "" -#: backend/fujitsu.c:3995 backend/plustek.c:1025 backend/umax_pp.c:800 +#: backend/fujitsu.c:3999 backend/plustek.c:1025 backend/umax_pp.c:794 #, no-c-format msgid "Green offset" msgstr "Deŝovo laŭ verdo" -#: backend/fujitsu.c:3996 +#: backend/fujitsu.c:4000 #, fuzzy, no-c-format msgid "Adjust green/red offset" msgstr "Deŝovo laŭ verdo" -#: backend/fujitsu.c:4013 backend/plustek.c:1041 backend/umax_pp.c:812 +#: backend/fujitsu.c:4017 backend/plustek.c:1041 backend/umax_pp.c:806 #, no-c-format msgid "Blue offset" msgstr "Deŝovo laŭ bluo" -#: backend/fujitsu.c:4014 +#: backend/fujitsu.c:4018 #, fuzzy, no-c-format msgid "Adjust blue/red offset" msgstr "Ĝi agordas la deŝovon de la blua kanalo" -#: backend/fujitsu.c:4027 +#: backend/fujitsu.c:4031 #, no-c-format msgid "Low Memory" msgstr "" -#: backend/fujitsu.c:4028 +#: backend/fujitsu.c:4032 #, no-c-format msgid "" "Limit driver memory usage for use in embedded systems. Causes some " @@ -2688,374 +2717,362 @@ msgid "" "only be used with custom front-end software." msgstr "" -#: backend/fujitsu.c:4043 +#: backend/fujitsu.c:4047 #, fuzzy, no-c-format msgid "Duplex side" msgstr "Fronta-dorsa skanado" -#: backend/fujitsu.c:4044 +#: backend/fujitsu.c:4048 #, no-c-format msgid "" "Tells which side (0=front, 1=back) of a duplex scan the next call to " "sane_read will return." msgstr "" -#: backend/fujitsu.c:4055 +#: backend/fujitsu.c:4059 #, no-c-format msgid "Hardware deskew and crop" msgstr "" -#: backend/fujitsu.c:4056 +#: backend/fujitsu.c:4060 #, no-c-format msgid "Request scanner to rotate and crop pages digitally." msgstr "" -#: backend/fujitsu.c:4067 backend/kvs1025_opt.c:871 +#: backend/fujitsu.c:4071 backend/kvs1025_opt.c:871 #, no-c-format msgid "Software deskew" msgstr "" -#: backend/fujitsu.c:4068 +#: backend/fujitsu.c:4072 #, no-c-format msgid "Request driver to rotate skewed pages digitally." msgstr "" -#: backend/fujitsu.c:4080 backend/kvs1025_opt.c:880 +#: backend/fujitsu.c:4084 backend/kvs1025_opt.c:880 #, no-c-format msgid "Software despeckle diameter" msgstr "" -#: backend/fujitsu.c:4081 +#: backend/fujitsu.c:4085 #, no-c-format msgid "Maximum diameter of lone dots to remove from scan." msgstr "" -#: backend/fujitsu.c:4100 backend/genesys/genesys.cpp:4117 +#: backend/fujitsu.c:4104 backend/genesys/genesys.cpp:4159 #, no-c-format msgid "Software crop" msgstr "" -#: backend/fujitsu.c:4101 +#: backend/fujitsu.c:4105 #, no-c-format msgid "Request driver to remove border from pages digitally." msgstr "" -#: backend/fujitsu.c:4130 +#: backend/fujitsu.c:4134 #, no-c-format msgid "Halt on Cancel" msgstr "" -#: backend/fujitsu.c:4131 +#: backend/fujitsu.c:4135 #, no-c-format msgid "" "Request driver to halt the paper feed instead of eject during a cancel." msgstr "" -#: backend/fujitsu.c:4142 +#: backend/fujitsu.c:4146 #, fuzzy, no-c-format msgid "Endorser Options" msgstr "Avanaj Opcioj" -#: backend/fujitsu.c:4143 +#: backend/fujitsu.c:4147 #, no-c-format msgid "Controls for endorser unit" msgstr "" -#: backend/fujitsu.c:4154 +#: backend/fujitsu.c:4158 #, no-c-format msgid "Endorser" msgstr "" -#: backend/fujitsu.c:4155 +#: backend/fujitsu.c:4159 #, no-c-format msgid "Enable endorser unit" msgstr "" -#: backend/fujitsu.c:4170 +#: backend/fujitsu.c:4174 #, no-c-format msgid "Endorser bits" msgstr "" -#: backend/fujitsu.c:4171 +#: backend/fujitsu.c:4175 #, no-c-format msgid "Determines maximum endorser counter value." msgstr "" -#: backend/fujitsu.c:4196 +#: backend/fujitsu.c:4200 #, no-c-format msgid "Endorser value" msgstr "" -#: backend/fujitsu.c:4197 +#: backend/fujitsu.c:4201 #, no-c-format msgid "Initial endorser counter value." msgstr "" -#: backend/fujitsu.c:4220 +#: backend/fujitsu.c:4224 #, no-c-format msgid "Endorser step" msgstr "" -#: backend/fujitsu.c:4221 +#: backend/fujitsu.c:4225 #, no-c-format msgid "Change endorser counter value by this much for each page." msgstr "" -#: backend/fujitsu.c:4244 +#: backend/fujitsu.c:4248 #, no-c-format msgid "Endorser Y" msgstr "" -#: backend/fujitsu.c:4245 +#: backend/fujitsu.c:4249 #, no-c-format msgid "Endorser print offset from top of paper." msgstr "" -#: backend/fujitsu.c:4270 +#: backend/fujitsu.c:4274 #, no-c-format msgid "Endorser font" msgstr "" -#: backend/fujitsu.c:4271 +#: backend/fujitsu.c:4275 #, no-c-format msgid "Endorser printing font." msgstr "" -#: backend/fujitsu.c:4300 +#: backend/fujitsu.c:4304 #, fuzzy, no-c-format msgid "Endorser direction" msgstr "Redukto de bruo" -#: backend/fujitsu.c:4301 +#: backend/fujitsu.c:4305 #, no-c-format msgid "Endorser printing direction." msgstr "" -#: backend/fujitsu.c:4325 +#: backend/fujitsu.c:4329 #, no-c-format msgid "Endorser side" msgstr "" -#: backend/fujitsu.c:4326 +#: backend/fujitsu.c:4330 #, no-c-format msgid "Endorser printing side, requires hardware support to change" msgstr "" -#: backend/fujitsu.c:4351 +#: backend/fujitsu.c:4355 #, no-c-format msgid "Endorser string" msgstr "" -#: backend/fujitsu.c:4352 +#: backend/fujitsu.c:4356 #, no-c-format msgid "" "Endorser alphanumeric print format. %05ud or %08ud at the end will be " "replaced by counter value." msgstr "" -#: backend/fujitsu.c:4379 +#: backend/fujitsu.c:4383 #, no-c-format msgid "Top edge" msgstr "" -#: backend/fujitsu.c:4380 +#: backend/fujitsu.c:4384 #, no-c-format msgid "Paper is pulled partly into ADF" msgstr "" -#: backend/fujitsu.c:4391 +#: backend/fujitsu.c:4395 #, fuzzy, no-c-format msgid "A3 paper" msgstr "El papero" -#: backend/fujitsu.c:4392 +#: backend/fujitsu.c:4396 #, no-c-format msgid "A3 paper detected" msgstr "" -#: backend/fujitsu.c:4403 +#: backend/fujitsu.c:4407 #, fuzzy, no-c-format msgid "B4 paper" msgstr "El papero" -#: backend/fujitsu.c:4404 +#: backend/fujitsu.c:4408 #, no-c-format msgid "B4 paper detected" msgstr "" -#: backend/fujitsu.c:4415 +#: backend/fujitsu.c:4419 #, fuzzy, no-c-format msgid "A4 paper" msgstr "El papero" -#: backend/fujitsu.c:4416 +#: backend/fujitsu.c:4420 #, no-c-format msgid "A4 paper detected" msgstr "" -#: backend/fujitsu.c:4427 +#: backend/fujitsu.c:4431 #, fuzzy, no-c-format msgid "B5 paper" msgstr "El papero" -#: backend/fujitsu.c:4428 +#: backend/fujitsu.c:4432 #, no-c-format msgid "B5 paper detected" msgstr "" -#: backend/fujitsu.c:4451 +#: backend/fujitsu.c:4455 #, no-c-format msgid "OMR or DF" msgstr "" -#: backend/fujitsu.c:4452 +#: backend/fujitsu.c:4456 #, no-c-format msgid "OMR or double feed detected" msgstr "" -#: backend/fujitsu.c:4475 +#: backend/fujitsu.c:4479 #, no-c-format msgid "Power saving" msgstr "" -#: backend/fujitsu.c:4476 +#: backend/fujitsu.c:4480 #, fuzzy, no-c-format msgid "Scanner in power saving mode" msgstr "Kovrilo de ADF estas malfermita" -#: backend/fujitsu.c:4499 +#: backend/fujitsu.c:4503 #, fuzzy, no-c-format msgid "Manual feed" msgstr "Mana prepara fokusigo" -#: backend/fujitsu.c:4500 +#: backend/fujitsu.c:4504 #, fuzzy, no-c-format msgid "Manual feed selected" msgstr "Mana prepara fokusigo" -#: backend/fujitsu.c:4523 +#: backend/fujitsu.c:4527 #, no-c-format msgid "Function" msgstr "" -#: backend/fujitsu.c:4524 +#: backend/fujitsu.c:4528 #, no-c-format msgid "Function character on screen" msgstr "" -#: backend/fujitsu.c:4535 +#: backend/fujitsu.c:4539 #, no-c-format msgid "Ink low" msgstr "" -#: backend/fujitsu.c:4536 +#: backend/fujitsu.c:4540 #, no-c-format msgid "Imprinter ink running low" msgstr "" -#: backend/fujitsu.c:4547 +#: backend/fujitsu.c:4551 #, no-c-format msgid "Double feed" msgstr "" -#: backend/fujitsu.c:4548 +#: backend/fujitsu.c:4552 #, no-c-format msgid "Double feed detected" msgstr "" -#: backend/fujitsu.c:4559 +#: backend/fujitsu.c:4563 #, no-c-format msgid "Error code" msgstr "" -#: backend/fujitsu.c:4560 +#: backend/fujitsu.c:4564 #, fuzzy, no-c-format msgid "Hardware error code" msgstr "Eraro de kontrolo de la aparataro" -#: backend/fujitsu.c:4571 +#: backend/fujitsu.c:4575 #, no-c-format msgid "Skew angle" msgstr "" -#: backend/fujitsu.c:4572 +#: backend/fujitsu.c:4576 #, no-c-format msgid "Requires black background for scanning" msgstr "" -#: backend/fujitsu.c:4583 +#: backend/fujitsu.c:4587 #, no-c-format msgid "Ink remaining" msgstr "" -#: backend/fujitsu.c:4584 +#: backend/fujitsu.c:4588 #, fuzzy, no-c-format msgid "Imprinter ink level" msgstr "Nivelo de blanko" -#: backend/fujitsu.c:4595 +#: backend/fujitsu.c:4599 #, fuzzy, no-c-format msgid "Density" msgstr "Regilo de denseco" -#: backend/fujitsu.c:4596 +#: backend/fujitsu.c:4600 #, fuzzy, no-c-format msgid "Density dial" msgstr "Regilo de denseco" -#: backend/fujitsu.c:4607 backend/fujitsu.c:4608 +#: backend/fujitsu.c:4611 backend/fujitsu.c:4612 #, fuzzy, no-c-format msgid "Duplex switch" msgstr "Fronta-dorsa skanado" -#: backend/genesys/genesys.cpp:4118 +#: backend/genesys/genesys.cpp:4160 #, no-c-format msgid "Request backend to remove border from pages digitally" msgstr "" -#: backend/genesys/genesys.cpp:4127 backend/kvs1025_opt.c:912 +#: backend/genesys/genesys.cpp:4169 backend/kvs1025_opt.c:912 #, no-c-format msgid "Request driver to discard pages with low numbers of dark pixels" msgstr "" -#: backend/genesys/genesys.cpp:4137 backend/kvs1025_opt.c:892 +#: backend/genesys/genesys.cpp:4179 backend/kvs1025_opt.c:892 #, no-c-format msgid "Software derotate" msgstr "" -#: backend/genesys/genesys.cpp:4138 backend/kvs1025_opt.c:894 +#: backend/genesys/genesys.cpp:4180 backend/kvs1025_opt.c:894 #, no-c-format msgid "Request driver to detect and correct 90 degree image rotation" msgstr "" -#: backend/genesys/genesys.cpp:4168 backend/pixma_sane_options.c:314 +#: backend/genesys/genesys.cpp:4210 backend/pixma/pixma_sane_options.c:314 #, no-c-format msgid "Extras" msgstr "Ekstraĵoj" -#: backend/genesys/genesys.cpp:4188 backend/pixma_sane_options.c:336 +#: backend/genesys/genesys.cpp:4230 backend/pixma/pixma_sane_options.c:336 #, no-c-format msgid "Dynamic threshold curve, from light to dark, normally 50-65" msgstr "" -#: backend/genesys/genesys.cpp:4197 -#, no-c-format -msgid "Disable dynamic lineart" -msgstr "" - -#: backend/genesys/genesys.cpp:4199 -#, no-c-format -msgid "" -"Disable use of a software adaptive algorithm to generate lineart relying " -"instead on hardware lineart." -msgstr "" - -#: backend/genesys/genesys.cpp:4215 +#: backend/genesys/genesys.cpp:4240 #, no-c-format msgid "Disable interpolation" msgstr "Malebligu interpoladon" -#: backend/genesys/genesys.cpp:4218 +#: backend/genesys/genesys.cpp:4243 #, no-c-format msgid "" "When using high resolutions where the horizontal resolution is smaller " @@ -3064,45 +3081,45 @@ msgstr "" "Kiam oni uzas altajn distingojn kun la horizontala malpli alta ol la " "verticala, la horizontala interpolado estas malebligata." -#: backend/genesys/genesys.cpp:4227 +#: backend/genesys/genesys.cpp:4252 #, fuzzy, no-c-format msgid "Color filter" msgstr "Filtrilo de Koloro" -#: backend/genesys/genesys.cpp:4230 +#: backend/genesys/genesys.cpp:4255 #, no-c-format msgid "When using gray or lineart this option selects the used color." msgstr "" "Kiam oni uzas grizan aŭ duuman kolorojn, tiu elektas uzatan koloron." -#: backend/genesys/genesys.cpp:4254 +#: backend/genesys/genesys.cpp:4279 #, fuzzy, no-c-format msgid "Calibration file" msgstr "Kalibrigo" -#: backend/genesys/genesys.cpp:4255 +#: backend/genesys/genesys.cpp:4280 #, fuzzy, no-c-format msgid "Specify the calibration file to use" msgstr "Difinu moduson de kalibrigo" -#: backend/genesys/genesys.cpp:4272 +#: backend/genesys/genesys.cpp:4297 #, fuzzy, no-c-format msgid "Calibration cache expiration time" msgstr "Kaŝmemoro por kalibrigo" -#: backend/genesys/genesys.cpp:4273 +#: backend/genesys/genesys.cpp:4298 #, no-c-format msgid "" "Time (in minutes) before a cached calibration expires. A value of 0 " "means cache is not used. A negative value means cache never expires." msgstr "" -#: backend/genesys/genesys.cpp:4283 +#: backend/genesys/genesys.cpp:4308 #, no-c-format msgid "Lamp off time" msgstr "Ripozo de lampo" -#: backend/genesys/genesys.cpp:4286 +#: backend/genesys/genesys.cpp:4311 #, no-c-format msgid "" "The lamp will be turned off after the given time (in minutes). A value " @@ -3111,104 +3128,109 @@ msgstr "" "La lampo estos elŝaltata post la fiksita tempo (en minutoj). La valoro " "signifas ke la lampo neniam ripozos." -#: backend/genesys/genesys.cpp:4296 +#: backend/genesys/genesys.cpp:4321 #, fuzzy, no-c-format msgid "Lamp off during scan" msgstr "Elŝaltita lampo dum kalibrigo de nigro" -#: backend/genesys/genesys.cpp:4297 +#: backend/genesys/genesys.cpp:4322 #, fuzzy, no-c-format msgid "The lamp will be turned off during scan. " msgstr "" "Nombro da minutoj pasantaj inter la skanado kaj la elŝalto de la lampo" -#: backend/genesys/genesys.cpp:4324 backend/genesys/genesys.cpp:4325 +#: backend/genesys/genesys.cpp:4349 backend/genesys/genesys.cpp:4350 #, fuzzy, no-c-format msgid "File button" msgstr "Atendu butonon" -#: backend/genesys/genesys.cpp:4369 backend/genesys/genesys.cpp:4370 +#: backend/genesys/genesys.cpp:4394 backend/genesys/genesys.cpp:4395 #, no-c-format msgid "OCR button" msgstr "" -#: backend/genesys/genesys.cpp:4381 backend/genesys/genesys.cpp:4382 +#: backend/genesys/genesys.cpp:4406 backend/genesys/genesys.cpp:4407 #, fuzzy, no-c-format msgid "Power button" msgstr "Atendu butonon" -#: backend/genesys/genesys.cpp:4393 backend/genesys/genesys.cpp:4394 +#: backend/genesys/genesys.cpp:4418 backend/genesys/genesys.cpp:4419 #, fuzzy, no-c-format msgid "Extra button" msgstr "Atendu butonon" -#: backend/genesys/genesys.cpp:4405 backend/gt68xx.c:755 +#: backend/genesys/genesys.cpp:4430 backend/gt68xx.c:755 #, fuzzy, no-c-format msgid "Needs calibration" msgstr "Grajneca kalibrigo" -#: backend/genesys/genesys.cpp:4406 backend/gt68xx.c:756 +#: backend/genesys/genesys.cpp:4431 backend/gt68xx.c:756 backend/p5.c:1928 #, fuzzy, no-c-format msgid "The scanner needs calibration for the current settings" msgstr "Ĝi devigas kalibrigon de skanilon antaŭ la skanado" -#: backend/genesys/genesys.cpp:4417 backend/gt68xx.c:780 -#: backend/gt68xx.c:781 backend/pixma_sane_options.c:226 -#: backend/plustek.c:1080 +#: backend/genesys/genesys.cpp:4442 backend/gt68xx.c:780 +#: backend/gt68xx.c:781 backend/p5.c:1937 backend/p5.c:1938 +#: backend/pixma/pixma_sane_options.c:226 backend/plustek.c:1080 #, no-c-format msgid "Buttons" msgstr "Butonoj" -#: backend/genesys/genesys.cpp:4426 backend/gt68xx.c:787 -#: backend/hp5400_sane.c:392 backend/hp-option.h:97 backend/niash.c:726 -#: backend/plustek.c:941 +#: backend/genesys/genesys.cpp:4451 backend/gt68xx.c:787 +#: backend/hp-option.h:97 backend/hp5400_sane.c:392 backend/niash.c:726 +#: backend/p5.c:1945 backend/plustek.c:941 #, no-c-format msgid "Calibrate" msgstr "Kalibrigu" -#: backend/genesys/genesys.cpp:4428 backend/gt68xx.c:789 +#: backend/genesys/genesys.cpp:4453 backend/gt68xx.c:789 backend/p5.c:1947 #, fuzzy, no-c-format msgid "Start calibration using special sheet" msgstr "Startigu kalibrigadon." -#: backend/genesys/genesys.cpp:4440 backend/gt68xx.c:802 +#: backend/genesys/genesys.cpp:4465 backend/gt68xx.c:802 backend/p5.c:1958 #, fuzzy, no-c-format msgid "Clear calibration" msgstr "Grajneca kalibrigo" -#: backend/genesys/genesys.cpp:4441 backend/gt68xx.c:803 +#: backend/genesys/genesys.cpp:4466 backend/gt68xx.c:803 backend/p5.c:1960 #, fuzzy, no-c-format msgid "Clear calibration cache" msgstr "Kaŝmemoro por kalibrigo" -#: backend/genesys/genesys.cpp:4451 +#: backend/genesys/genesys.cpp:4476 #, fuzzy, no-c-format msgid "Force calibration" msgstr "Grajneca kalibrigo" -#: backend/genesys/genesys.cpp:4452 +#: backend/genesys/genesys.cpp:4477 #, no-c-format msgid "Force calibration ignoring all and any calibration caches" msgstr "" -#: backend/genesys/genesys.cpp:4462 +#: backend/genesys/genesys.cpp:4487 #, fuzzy, no-c-format msgid "Ignore internal offsets" msgstr "Deŝovo laŭ verdo" -#: backend/genesys/genesys.cpp:4464 +#: backend/genesys/genesys.cpp:4489 #, no-c-format msgid "" "Acquires the image including the internal calibration areas of the " "scanner" msgstr "" -#: backend/gt68xx.c:149 backend/ma1509.c:108 backend/mustek.c:164 -#: backend/snapscan-options.c:87 backend/umax.c:182 +#: backend/genesys/genesys.h:79 backend/gt68xx.c:149 backend/ma1509.c:108 +#: backend/mustek.c:164 backend/snapscan-options.c:87 backend/umax.c:182 #, no-c-format msgid "Transparency Adapter" msgstr "reguligilo de Diafaneco" +#: backend/genesys/genesys.h:80 +#, fuzzy, no-c-format +msgid "Transparency Adapter Infrared" +msgstr "reguligilo de Diafaneco" + #: backend/gt68xx.c:470 #, no-c-format msgid "Gray mode color" @@ -3315,6 +3337,310 @@ msgstr "Valoro de Gama" msgid "Sets the gamma value of all channels." msgstr "Ĝi agordas valoron de gama por ĉiuj kanaloj." +#: backend/hp-option.c:2987 +#, no-c-format +msgid "Advanced Options" +msgstr "Avanaj Opcioj" + +#: backend/hp-option.c:3044 +#, no-c-format +msgid "Coarse" +msgstr "Grajna" + +#: backend/hp-option.c:3045 +#, no-c-format +msgid "Fine" +msgstr "Fajna" + +# Bayer è il nome della persona che ha inventato questa matrice per il +# dithering. +#: backend/hp-option.c:3046 +#, no-c-format +msgid "Bayer" +msgstr "Bayer" + +#: backend/hp-option.c:3049 backend/hp-option.c:3100 +#, no-c-format +msgid "Custom" +msgstr "Personigita" + +#: backend/hp-option.c:3090 backend/hp-option.c:3146 +#: backend/hp-option.c:3161 +#, no-c-format +msgid "Auto" +msgstr "Aŭtomata" + +#: backend/hp-option.c:3091 +#, no-c-format +msgid "NTSC RGB" +msgstr "NTSC RGB" + +#: backend/hp-option.c:3092 +#, no-c-format +msgid "XPA RGB" +msgstr "XPA RGB" + +#: backend/hp-option.c:3093 +#, no-c-format +msgid "Pass-through" +msgstr "Trapasanta" + +#: backend/hp-option.c:3094 +#, no-c-format +msgid "NTSC Gray" +msgstr "NTSC-Grizo" + +#: backend/hp-option.c:3095 +#, no-c-format +msgid "XPA Gray" +msgstr "XPA-Grizo" + +#: backend/hp-option.c:3147 +#, no-c-format +msgid "Slow" +msgstr "Malrapida" + +#: backend/hp-option.c:3148 backend/hp-option.c:3255 +#: backend/kvs40xx_opt.c:230 backend/matsushita.c:244 backend/mustek.c:149 +#: backend/plustek.c:234 backend/plustek_pp.c:203 backend/u12.c:155 +#, no-c-format +msgid "Normal" +msgstr "Normala" + +#: backend/hp-option.c:3149 +#, no-c-format +msgid "Fast" +msgstr "Rapida" + +#: backend/hp-option.c:3150 +#, no-c-format +msgid "Extra Fast" +msgstr "Tre Rapida" + +#: backend/hp-option.c:3163 +#, no-c-format +msgid "2-pixel" +msgstr "2-bilderoj" + +#: backend/hp-option.c:3164 +#, no-c-format +msgid "4-pixel" +msgstr "4-bilderoj" + +#: backend/hp-option.c:3165 +#, no-c-format +msgid "8-pixel" +msgstr "8-bilderoj" + +#: backend/hp-option.c:3176 +#, no-c-format +msgid "Print" +msgstr "Presu" + +#: backend/hp-option.c:3177 backend/hp3900_sane.c:427 +#: backend/hp3900_sane.c:1019 +#, no-c-format +msgid "Slide" +msgstr "Lumbildo" + +#: backend/hp-option.c:3178 +#, no-c-format +msgid "Film-strip" +msgstr "Filmo" + +#: backend/hp-option.c:3256 backend/hp5590.c:93 +#, no-c-format +msgid "ADF" +msgstr "ADF" + +#: backend/hp-option.c:3257 +#, no-c-format +msgid "XPA" +msgstr "XPA" + +#: backend/hp-option.c:3331 backend/hp-option.c:3344 +#, no-c-format +msgid "Conditional" +msgstr "Kondiĉa" + +#: backend/hp-option.c:3417 +#, no-c-format +msgid "Experiment" +msgstr "Eksperimento" + +#: backend/hp-option.h:60 +#, no-c-format +msgid "Sharpening" +msgstr "Neteco" + +#: backend/hp-option.h:61 +#, no-c-format +msgid "Set sharpening value." +msgstr "Ĝi agordas la valoron de neteco." + +#: backend/hp-option.h:66 +#, no-c-format +msgid "Auto Threshold" +msgstr "Aŭtomata Sojlo" + +#: backend/hp-option.h:68 +#, no-c-format +msgid "Enable automatic determination of threshold for line-art scans." +msgstr "Ĝi elbligas aŭtomatan elekton de sojlo por duuma skanado." + +#: backend/hp-option.h:74 +#, no-c-format +msgid "Select smoothing filter." +msgstr "Elektu filtrilon por glatigi." + +#: backend/hp-option.h:79 +#, no-c-format +msgid "Unload media after scan" +msgstr "Elpelu bazon post skanado" + +#: backend/hp-option.h:80 +#, no-c-format +msgid "Unloads the media after a scan." +msgstr "Ĝi elpelas la bazon post skanado." + +#: backend/hp-option.h:85 +#, no-c-format +msgid "Change document" +msgstr "Ŝangu dokumenton" + +#: backend/hp-option.h:86 +#, no-c-format +msgid "Change Document." +msgstr "Ĝi ŝangas dokumenton." + +#: backend/hp-option.h:91 +#, no-c-format +msgid "Unload" +msgstr "Elpelu" + +#: backend/hp-option.h:92 +#, no-c-format +msgid "Unload Document." +msgstr "Elpelu Dokumenton." + +#: backend/hp-option.h:98 +#, no-c-format +msgid "Start calibration process." +msgstr "Startigu kalibrigadon." + +#: backend/hp-option.h:103 +#, no-c-format +msgid "Media" +msgstr "Bazo" + +#: backend/hp-option.h:104 +#, no-c-format +msgid "Set type of media." +msgstr "Agordu specon de bazo." + +#: backend/hp-option.h:109 +#, no-c-format +msgid "Exposure time" +msgstr "Ekspontempo" + +#: backend/hp-option.h:111 +#, no-c-format +msgid "" +"A longer exposure time lets the scanner collect more light. Suggested " +"use is 175% for prints, 150% for normal slides and \"Negative\" for " +"negative film. For dark (underexposed) images you can increase this " +"value." +msgstr "" +"Pli longa ekspontempo ebligas la skanilon preni pli multe da lumo. " +"Oportunajvaloroj estas 175% por presaĵoj, 150% por normalaj lumbildoj " +"kaj \"Negativo\" por filmoj. Por malhelaj bildoj (subeksponitaj) pliigu " +"tiun ĉi valoro." + +#: backend/hp-option.h:119 backend/hp-option.h:126 +#, no-c-format +msgid "Color Matrix" +msgstr "Matrico de Koloro" + +#: backend/hp-option.h:121 +#, fuzzy, no-c-format +msgid "Set the scanner's color matrix." +msgstr "Ĝi agordas matricon de koloro." + +#: backend/hp-option.h:127 +#, no-c-format +msgid "Custom color matrix." +msgstr "Personigita matrico de koloro." + +#: backend/hp-option.h:132 +#, no-c-format +msgid "Mono Color Matrix" +msgstr "Matrico de Monokromata Koloro" + +#: backend/hp-option.h:133 +#, no-c-format +msgid "Custom color matrix for grayscale scans." +msgstr "Personigita matrico de koloro por grizgamaj skanadoj." + +#: backend/hp-option.h:138 +#, no-c-format +msgid "Mirror horizontal" +msgstr "Spegulu horizontale" + +#: backend/hp-option.h:139 +#, no-c-format +msgid "Mirror image horizontally." +msgstr "Ĝi reflektas bildon horizontale." + +#: backend/hp-option.h:144 +#, no-c-format +msgid "Mirror vertical" +msgstr "Spegulu vertikale" + +#: backend/hp-option.h:145 +#, no-c-format +msgid "Mirror image vertically." +msgstr "Ĝi reflektas bildon vertikale." + +#: backend/hp-option.h:150 +#, no-c-format +msgid "Update options" +msgstr "Opcioj de ĝisdatigo" + +#: backend/hp-option.h:151 +#, no-c-format +msgid "Update options." +msgstr "Opcioj de ĝisdatigo." + +#: backend/hp-option.h:156 +#, no-c-format +msgid "8 bit output" +msgstr "8-bita eligo" + +#: backend/hp-option.h:158 +#, no-c-format +msgid "Use bit depth greater eight internally, but output only eight bits." +msgstr "Uzu ene pli ol 8 bitoj de profundeco, sed eligu nur 8-bitojn." + +#: backend/hp-option.h:164 +#, no-c-format +msgid "Front button wait" +msgstr "Atendante frontan butonon" + +#: backend/hp-option.h:165 +#, no-c-format +msgid "Wait to scan for front-panel button push." +msgstr "Ĝi atendas premon de la fronta butono de lo skanilo por skani." + +#: backend/hp-option.h:172 +#, no-c-format +msgid "Shut off lamp" +msgstr "Elŝaltu lampon" + +#: backend/hp-option.h:173 +#, no-c-format +msgid "Shut off scanner lamp." +msgstr "Ĝi elŝaltas la lampon de la skanilo." + #: backend/hp3500.c:1020 #, no-c-format msgid "Geometry Group" @@ -3325,12 +3651,6 @@ msgstr "Geometria Grupo" msgid "Scan Mode Group" msgstr "Grupo de Moduso de Skanado" -#: backend/hp3900_sane.c:427 backend/hp3900_sane.c:1019 -#: backend/hp-option.c:3177 -#, no-c-format -msgid "Slide" -msgstr "Lumbildo" - #: backend/hp3900_sane.c:1405 #, fuzzy, no-c-format msgid "Scanner model" @@ -3524,11 +3844,6 @@ msgstr "Ŝaltu aŭ elŝaltu la lampon." msgid "Calibrates for black and white level." msgstr "Kalibrigu la nivelojn de nigro kaj blanko." -#: backend/hp5590.c:93 backend/hp-option.c:3256 -#, no-c-format -msgid "ADF" -msgstr "ADF" - #: backend/hp5590.c:95 #, no-c-format msgid "TMA Slides" @@ -3639,299 +3954,6 @@ msgid "" "r*65536+256*g+b or gray value (default=violet or gray)" msgstr "" -#: backend/hp-option.c:2987 -#, no-c-format -msgid "Advanced Options" -msgstr "Avanaj Opcioj" - -#: backend/hp-option.c:3044 -#, no-c-format -msgid "Coarse" -msgstr "Grajna" - -#: backend/hp-option.c:3045 -#, no-c-format -msgid "Fine" -msgstr "Fajna" - -# Bayer è il nome della persona che ha inventato questa matrice per il -# dithering. -#: backend/hp-option.c:3046 -#, no-c-format -msgid "Bayer" -msgstr "Bayer" - -#: backend/hp-option.c:3049 backend/hp-option.c:3100 -#, no-c-format -msgid "Custom" -msgstr "Personigita" - -#: backend/hp-option.c:3090 backend/hp-option.c:3146 -#: backend/hp-option.c:3161 -#, no-c-format -msgid "Auto" -msgstr "Aŭtomata" - -#: backend/hp-option.c:3091 -#, no-c-format -msgid "NTSC RGB" -msgstr "NTSC RGB" - -#: backend/hp-option.c:3092 -#, no-c-format -msgid "XPA RGB" -msgstr "XPA RGB" - -#: backend/hp-option.c:3093 -#, no-c-format -msgid "Pass-through" -msgstr "Trapasanta" - -#: backend/hp-option.c:3094 -#, no-c-format -msgid "NTSC Gray" -msgstr "NTSC-Grizo" - -#: backend/hp-option.c:3095 -#, no-c-format -msgid "XPA Gray" -msgstr "XPA-Grizo" - -#: backend/hp-option.c:3147 -#, no-c-format -msgid "Slow" -msgstr "Malrapida" - -#: backend/hp-option.c:3148 backend/hp-option.c:3255 -#: backend/kvs40xx_opt.c:230 backend/matsushita.c:244 backend/mustek.c:149 -#: backend/plustek.c:234 backend/plustek_pp.c:203 backend/u12.c:155 -#, no-c-format -msgid "Normal" -msgstr "Normala" - -#: backend/hp-option.c:3149 -#, no-c-format -msgid "Fast" -msgstr "Rapida" - -#: backend/hp-option.c:3150 -#, no-c-format -msgid "Extra Fast" -msgstr "Tre Rapida" - -#: backend/hp-option.c:3163 -#, no-c-format -msgid "2-pixel" -msgstr "2-bilderoj" - -#: backend/hp-option.c:3164 -#, no-c-format -msgid "4-pixel" -msgstr "4-bilderoj" - -#: backend/hp-option.c:3165 -#, no-c-format -msgid "8-pixel" -msgstr "8-bilderoj" - -#: backend/hp-option.c:3176 -#, no-c-format -msgid "Print" -msgstr "Presu" - -#: backend/hp-option.c:3178 -#, no-c-format -msgid "Film-strip" -msgstr "Filmo" - -#: backend/hp-option.c:3257 -#, no-c-format -msgid "XPA" -msgstr "XPA" - -#: backend/hp-option.c:3331 backend/hp-option.c:3344 -#, no-c-format -msgid "Conditional" -msgstr "Kondiĉa" - -#: backend/hp-option.c:3417 -#, no-c-format -msgid "Experiment" -msgstr "Eksperimento" - -#: backend/hp-option.h:60 -#, no-c-format -msgid "Sharpening" -msgstr "Neteco" - -#: backend/hp-option.h:61 -#, no-c-format -msgid "Set sharpening value." -msgstr "Ĝi agordas la valoron de neteco." - -#: backend/hp-option.h:66 -#, no-c-format -msgid "Auto Threshold" -msgstr "Aŭtomata Sojlo" - -#: backend/hp-option.h:68 -#, no-c-format -msgid "Enable automatic determination of threshold for line-art scans." -msgstr "Ĝi elbligas aŭtomatan elekton de sojlo por duuma skanado." - -#: backend/hp-option.h:74 -#, no-c-format -msgid "Select smoothing filter." -msgstr "Elektu filtrilon por glatigi." - -#: backend/hp-option.h:79 -#, no-c-format -msgid "Unload media after scan" -msgstr "Elpelu bazon post skanado" - -#: backend/hp-option.h:80 -#, no-c-format -msgid "Unloads the media after a scan." -msgstr "Ĝi elpelas la bazon post skanado." - -#: backend/hp-option.h:85 -#, no-c-format -msgid "Change document" -msgstr "Ŝangu dokumenton" - -#: backend/hp-option.h:86 -#, no-c-format -msgid "Change Document." -msgstr "Ĝi ŝangas dokumenton." - -#: backend/hp-option.h:91 -#, no-c-format -msgid "Unload" -msgstr "Elpelu" - -#: backend/hp-option.h:92 -#, no-c-format -msgid "Unload Document." -msgstr "Elpelu Dokumenton." - -#: backend/hp-option.h:98 -#, no-c-format -msgid "Start calibration process." -msgstr "Startigu kalibrigadon." - -#: backend/hp-option.h:103 -#, no-c-format -msgid "Media" -msgstr "Bazo" - -#: backend/hp-option.h:104 -#, no-c-format -msgid "Set type of media." -msgstr "Agordu specon de bazo." - -#: backend/hp-option.h:109 -#, no-c-format -msgid "Exposure time" -msgstr "Ekspontempo" - -#: backend/hp-option.h:111 -#, no-c-format -msgid "" -"A longer exposure time lets the scanner collect more light. Suggested " -"use is 175% for prints, 150% for normal slides and \"Negative\" for " -"negative film. For dark (underexposed) images you can increase this " -"value." -msgstr "" -"Pli longa ekspontempo ebligas la skanilon preni pli multe da lumo. " -"Oportunajvaloroj estas 175% por presaĵoj, 150% por normalaj lumbildoj " -"kaj \"Negativo\" por filmoj. Por malhelaj bildoj (subeksponitaj) pliigu " -"tiun ĉi valoro." - -#: backend/hp-option.h:119 backend/hp-option.h:126 -#, no-c-format -msgid "Color Matrix" -msgstr "Matrico de Koloro" - -#: backend/hp-option.h:121 -#, fuzzy, no-c-format -msgid "Set the scanner's color matrix." -msgstr "Ĝi agordas matricon de koloro." - -#: backend/hp-option.h:127 -#, no-c-format -msgid "Custom color matrix." -msgstr "Personigita matrico de koloro." - -#: backend/hp-option.h:132 -#, no-c-format -msgid "Mono Color Matrix" -msgstr "Matrico de Monokromata Koloro" - -#: backend/hp-option.h:133 -#, no-c-format -msgid "Custom color matrix for grayscale scans." -msgstr "Personigita matrico de koloro por grizgamaj skanadoj." - -#: backend/hp-option.h:138 -#, no-c-format -msgid "Mirror horizontal" -msgstr "Spegulu horizontale" - -#: backend/hp-option.h:139 -#, no-c-format -msgid "Mirror image horizontally." -msgstr "Ĝi reflektas bildon horizontale." - -#: backend/hp-option.h:144 -#, no-c-format -msgid "Mirror vertical" -msgstr "Spegulu vertikale" - -#: backend/hp-option.h:145 -#, no-c-format -msgid "Mirror image vertically." -msgstr "Ĝi reflektas bildon vertikale." - -#: backend/hp-option.h:150 -#, no-c-format -msgid "Update options" -msgstr "Opcioj de ĝisdatigo" - -#: backend/hp-option.h:151 -#, no-c-format -msgid "Update options." -msgstr "Opcioj de ĝisdatigo." - -#: backend/hp-option.h:156 -#, no-c-format -msgid "8 bit output" -msgstr "8-bita eligo" - -#: backend/hp-option.h:158 -#, no-c-format -msgid "Use bit depth greater eight internally, but output only eight bits." -msgstr "Uzu ene pli ol 8 bitoj de profundeco, sed eligu nur 8-bitojn." - -#: backend/hp-option.h:164 -#, no-c-format -msgid "Front button wait" -msgstr "Atendante frontan butonon" - -#: backend/hp-option.h:165 -#, no-c-format -msgid "Wait to scan for front-panel button push." -msgstr "Ĝi atendas premon de la fronta butono de lo skanilo por skani." - -#: backend/hp-option.h:172 -#, no-c-format -msgid "Shut off lamp" -msgstr "Elŝaltu lampon" - -#: backend/hp-option.h:173 -#, no-c-format -msgid "Shut off scanner lamp." -msgstr "Ĝi elŝaltas la lampon de la skanilo." - #: backend/kvs1025.h:51 backend/kvs20xx_opt.c:295 backend/kvs40xx_opt.c:516 #: backend/matsushita.h:219 #, no-c-format @@ -4030,7 +4052,7 @@ msgid "single" msgstr "" #: backend/kvs1025_opt.c:73 backend/kvs20xx.c:462 backend/kvs20xx_opt.c:56 -#: backend/kvs40xx.c:704 backend/kvs40xx.c:722 backend/kvs40xx_opt.c:102 +#: backend/kvs40xx.c:705 backend/kvs40xx.c:723 backend/kvs40xx_opt.c:102 #: backend/kvs40xx_opt.c:1087 #, fuzzy, no-c-format msgid "continuous" @@ -4333,7 +4355,7 @@ msgstr "Ĝiu ebligas emfazon de bildo" #: backend/kvs1025_opt.c:807 backend/kvs1025_opt.c:808 #: backend/matsushita.c:1300 backend/matsushita.c:1301 -#: backend/pixma_sane_options.c:112 +#: backend/pixma/pixma_sane_options.c:112 #, no-c-format msgid "Gamma" msgstr "Gama" @@ -4623,52 +4645,52 @@ msgstr "8x8 Bayer" msgid "8x8 Vertical Line" msgstr "8x8 vertikal-linia" -#: backend/lexmark.c:273 backend/umax_pp.c:711 +#: backend/lexmark.c:273 backend/umax_pp.c:705 #, no-c-format msgid "Gain" msgstr "Gajno" -#: backend/lexmark.c:274 backend/umax_pp.c:712 +#: backend/lexmark.c:274 backend/umax_pp.c:706 #, no-c-format msgid "Color channels gain settings" msgstr "Agordaĵoj pri la gajno de la kanaloj de koloro" -#: backend/lexmark.c:283 backend/umax_pp.c:719 +#: backend/lexmark.c:283 backend/umax_pp.c:713 #, no-c-format msgid "Gray gain" msgstr "Gajno laŭ grizo" -#: backend/lexmark.c:284 backend/umax_pp.c:720 +#: backend/lexmark.c:284 backend/umax_pp.c:714 #, no-c-format msgid "Sets gray channel gain" msgstr "Ĝi agordas la gajnon de la griza kanalo" -#: backend/lexmark.c:297 backend/plustek.c:1001 backend/umax_pp.c:731 +#: backend/lexmark.c:297 backend/plustek.c:1001 backend/umax_pp.c:725 #, no-c-format msgid "Red gain" msgstr "Gajno laŭ ruĝo" -#: backend/lexmark.c:298 backend/umax_pp.c:732 +#: backend/lexmark.c:298 backend/umax_pp.c:726 #, no-c-format msgid "Sets red channel gain" msgstr "Ĝi agordas la gajnon de la ruĝa kanalo" -#: backend/lexmark.c:311 backend/plustek.c:1017 backend/umax_pp.c:743 +#: backend/lexmark.c:311 backend/plustek.c:1017 backend/umax_pp.c:737 #, no-c-format msgid "Green gain" msgstr "Gajno laŭ verdo" -#: backend/lexmark.c:312 backend/umax_pp.c:744 +#: backend/lexmark.c:312 backend/umax_pp.c:738 #, no-c-format msgid "Sets green channel gain" msgstr "Ĝi agordas la gajnon de la verda kanalo" -#: backend/lexmark.c:325 backend/plustek.c:1033 backend/umax_pp.c:755 +#: backend/lexmark.c:325 backend/plustek.c:1033 backend/umax_pp.c:749 #, no-c-format msgid "Blue gain" msgstr "Gajno laŭ bluo" -#: backend/lexmark.c:326 backend/umax_pp.c:756 +#: backend/lexmark.c:326 backend/umax_pp.c:750 #, no-c-format msgid "Sets blue channel gain" msgstr "Ĝi agordas la gajnon de la blua kanalo" @@ -4754,7 +4776,7 @@ msgstr "Unu paĝo" msgid "All pages" msgstr "Ĉiuj paĝoj" -#: backend/matsushita.c:1034 backend/plustek.c:1333 +#: backend/matsushita.c:1034 backend/p5_device.c:8 backend/plustek.c:1333 #, no-c-format msgid "sheetfed scanner" msgstr "skaner kun aŭtomata provizilo" @@ -5261,39 +5283,44 @@ msgstr "" "Ĝi varmigas la lampon tiel ke ĝia heleco estas sensanĝa anstataŭ ĉiufoja " "varmigo je 40 sekundoj." -#: backend/pixma.c:397 +#: backend/p5.c:1926 +#, fuzzy, no-c-format +msgid "Need calibration" +msgstr "Grajneca kalibrigo" + +#: backend/pixma/pixma.c:397 #, fuzzy, no-c-format msgid "Negative color" msgstr "Negativa filmo" -#: backend/pixma.c:402 +#: backend/pixma/pixma.c:402 #, fuzzy, no-c-format msgid "Negative gray" msgstr "Negativo" -#: backend/pixma.c:415 +#: backend/pixma/pixma.c:415 #, fuzzy, no-c-format msgid "48 bits color" msgstr "Fajna koloro" -#: backend/pixma.c:420 +#: backend/pixma/pixma.c:420 #, no-c-format msgid "16 bits gray" msgstr "" -#: backend/pixma_sane_options.c:84 +#: backend/pixma/pixma_sane_options.c:84 #, no-c-format msgid "" "Selects the scan source (such as a document-feeder). Set source before " "mode and resolution. Resets mode and resolution to auto values." msgstr "" -#: backend/pixma_sane_options.c:98 +#: backend/pixma/pixma_sane_options.c:98 #, no-c-format msgid "Button-controlled scan" msgstr "Skanado mastrumita de butono" -#: backend/pixma_sane_options.c:99 +#: backend/pixma/pixma_sane_options.c:99 #, no-c-format msgid "" "When enabled, scan process will not start immediately. To proceed, press " @@ -5304,37 +5331,37 @@ msgstr "" "butonon \"SCAN\" (por ML150) aŭ \"COLOR\" (por aliaj modeloj). Por " "refuzi, premu la butonon \"GRAY\"." -#: backend/pixma_sane_options.c:232 +#: backend/pixma/pixma_sane_options.c:232 #, no-c-format msgid "Update button state" msgstr "Ĝisdatigu staton de butono" -#: backend/pixma_sane_options.c:244 +#: backend/pixma/pixma_sane_options.c:244 #, no-c-format msgid "Button 1" msgstr "Butono 1" -#: backend/pixma_sane_options.c:258 +#: backend/pixma/pixma_sane_options.c:258 #, no-c-format msgid "Button 2" msgstr "Butono 2" -#: backend/pixma_sane_options.c:272 +#: backend/pixma/pixma_sane_options.c:272 #, no-c-format msgid "Type of original to scan" msgstr "" -#: backend/pixma_sane_options.c:286 +#: backend/pixma/pixma_sane_options.c:286 #, no-c-format msgid "Target operation type" msgstr "" -#: backend/pixma_sane_options.c:348 +#: backend/pixma/pixma_sane_options.c:348 #, no-c-format msgid "ADF Waiting Time" msgstr "" -#: backend/pixma_sane_options.c:349 +#: backend/pixma/pixma_sane_options.c:349 #, no-c-format msgid "" "When set, the scanner waits upto the specified time in seconds for a new " @@ -5426,7 +5453,7 @@ msgstr "Analoga fasado" msgid "Red gain value of the AFE" msgstr "Valoro de gajno laŭ ruĝo de la analoga fasado" -#: backend/plustek.c:1009 backend/umax_pp.c:788 +#: backend/plustek.c:1009 backend/umax_pp.c:782 #, no-c-format msgid "Red offset" msgstr "Deŝovo laŭ ruĝo" @@ -5701,7 +5728,7 @@ msgstr "" msgid "This option reflects the status of a scanner button." msgstr "Tiuj ĉi opcioj agas sur la stato de la butonoj de la skanilo." -#: backend/rts8891.c:2840 backend/umax.c:5795 backend/umax_pp.c:635 +#: backend/rts8891.c:2840 backend/umax.c:5795 backend/umax_pp.c:629 #, no-c-format msgid "Lamp on" msgstr "Ŝaltu lampon" @@ -5711,12 +5738,12 @@ msgstr "Ŝaltu lampon" msgid "Turn on scanner lamp" msgstr "Ĝi ŝaltas la lampon de la skanilo" -#: backend/rts8891.c:2851 backend/umax1220u.c:248 backend/umax.c:5812 +#: backend/rts8891.c:2851 backend/umax.c:5812 backend/umax1220u.c:248 #, no-c-format msgid "Lamp off" msgstr "Elŝaltu lampon" -#: backend/rts8891.c:2852 backend/umax1220u.c:249 backend/umax.c:5813 +#: backend/rts8891.c:2852 backend/umax.c:5813 backend/umax1220u.c:249 #, no-c-format msgid "Turn off scanner lamp" msgstr "Ĝi elŝaltas la lampon de la skanilo" @@ -6523,52 +6550,52 @@ msgstr "Moduso de kalibrigo" msgid "Define calibration mode" msgstr "Difinu moduson de kalibrigo" -#: backend/umax_pp.c:636 +#: backend/umax_pp.c:630 #, no-c-format msgid "Sets lamp on/off" msgstr "Ĝi ŝaltas/elŝaltas la lampon" -#: backend/umax_pp.c:645 +#: backend/umax_pp.c:639 #, no-c-format msgid "UTA on" msgstr "Ŝaltu UTA" -#: backend/umax_pp.c:646 +#: backend/umax_pp.c:640 #, no-c-format msgid "Sets UTA on/off" msgstr "Ĝi ŝaltas/elŝaltas la reguligilon de diafaneco" -#: backend/umax_pp.c:767 +#: backend/umax_pp.c:761 #, no-c-format msgid "Offset" msgstr "Deŝovo" -#: backend/umax_pp.c:769 +#: backend/umax_pp.c:763 #, no-c-format msgid "Color channels offset settings" msgstr "Agordoj de deŝovo laŭ kanaloj de koloro" -#: backend/umax_pp.c:776 +#: backend/umax_pp.c:770 #, no-c-format msgid "Gray offset" msgstr "Deŝovo laŭ grizo" -#: backend/umax_pp.c:777 +#: backend/umax_pp.c:771 #, no-c-format msgid "Sets gray channel offset" msgstr "Ĝi agordas la deŝovon de la griza kanalo" -#: backend/umax_pp.c:789 +#: backend/umax_pp.c:783 #, no-c-format msgid "Sets red channel offset" msgstr "Ĝi agordas la deŝovon de la ruĝa kanalo" -#: backend/umax_pp.c:801 +#: backend/umax_pp.c:795 #, no-c-format msgid "Sets green channel offset" msgstr "Ĝi agordas la deŝovon de la verda kanalo" -#: backend/umax_pp.c:813 +#: backend/umax_pp.c:807 #, no-c-format msgid "Sets blue channel offset" msgstr "Ĝi agordas la deŝovon de la blua kanalo" diff --git a/po/es.po b/po/es.po index b0673c641..d09995529 100644 --- a/po/es.po +++ b/po/es.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: sane-backends\n" "Report-Msgid-Bugs-To: sane-devel@alioth-lists.debian.net\n" -"POT-Creation-Date: 2019-10-12 17:41+0300\n" +"POT-Creation-Date: 2020-01-12 07:09+0000\n" "PO-Revision-Date: 2009-06-25 10:22+0100\n" "Last-Translator: Miguel Anxo Bouzada \n" "Language-Team: GALPon MiniNo \n" @@ -30,23 +30,23 @@ msgid "Standard" msgstr "Estándar" #: include/sane/saneopts.h:157 backend/artec_eplus48u.c:2884 -#: backend/epson.c:3298 backend/epson2.c:1290 -#: backend/genesys/genesys.cpp:3976 backend/gt68xx.c:696 -#: backend/hp3500.c:1019 backend/hp-option.c:3300 backend/kvs1025_opt.c:639 +#: backend/epson.c:3298 backend/epson2.c:1290 backend/epsonds.c:677 +#: backend/genesys/genesys.cpp:4034 backend/gt68xx.c:696 +#: backend/hp-option.c:3300 backend/hp3500.c:1019 backend/kvs1025_opt.c:639 #: backend/kvs20xx_opt.c:285 backend/kvs40xx_opt.c:506 backend/leo.c:823 #: backend/lexmark.c:199 backend/ma1509.c:551 backend/matsushita.c:1135 #: backend/microtek2.h:599 backend/mustek.c:4373 backend/mustek_usb.c:301 -#: backend/mustek_usb2.c:465 backend/pixma_sane_options.c:160 +#: backend/mustek_usb2.c:465 backend/pixma/pixma_sane_options.c:160 #: backend/plustek.c:808 backend/plustek_pp.c:747 backend/sceptre.c:702 #: backend/snapscan-options.c:550 backend/teco1.c:1095 backend/teco2.c:1910 #: backend/teco3.c:920 backend/test.c:647 backend/u12.c:546 -#: backend/umax.c:5176 backend/umax_pp.c:576 +#: backend/umax.c:5176 backend/umax_pp.c:570 #, no-c-format msgid "Geometry" msgstr "Geometría" #: include/sane/saneopts.h:158 backend/artec_eplus48u.c:2805 -#: backend/canon.c:1493 backend/genesys/genesys.cpp:4035 +#: backend/canon.c:1493 backend/genesys/genesys.cpp:4077 #: backend/gt68xx.c:665 backend/hp-option.c:2956 backend/kvs1025_opt.c:703 #: backend/leo.c:871 backend/ma1509.c:599 backend/matsushita.c:1189 #: backend/microtek2.h:600 backend/mustek.c:4421 backend/mustek_usb.c:349 @@ -54,7 +54,7 @@ msgstr "Geometría" #: backend/plustek_pp.c:793 backend/sceptre.c:750 #: backend/snapscan-options.c:617 backend/stv680.c:1067 #: backend/teco1.c:1143 backend/teco2.c:1958 backend/teco3.c:968 -#: backend/u12.c:592 backend/umax.c:5226 backend/umax_pp.c:625 +#: backend/u12.c:592 backend/umax.c:5226 backend/umax_pp.c:619 #, no-c-format msgid "Enhancement" msgstr "Mejora" @@ -88,7 +88,7 @@ msgid "Bit depth" msgstr "Bit de profundidad" #: include/sane/saneopts.h:165 backend/canon.c:1140 backend/leo.c:781 -#: backend/pixma_sane_options.c:47 +#: backend/pixma/pixma_sane_options.c:47 #, no-c-format msgid "Scan mode" msgstr "Modo de escaneo" @@ -129,7 +129,7 @@ msgid "Bottom-right y" msgstr "Abajo-derecha Y" #: include/sane/saneopts.h:173 backend/canon.c:1216 -#: backend/pixma_sane_options.c:300 +#: backend/pixma/pixma_sane_options.c:300 #, no-c-format msgid "Scan resolution" msgstr "Resolución de escaneo" @@ -284,7 +284,7 @@ msgstr "Nombre de archivo" msgid "Halftone pattern size" msgstr "Tamaño del patrón de medios tonos" -#: include/sane/saneopts.h:204 backend/fujitsu.c:3233 +#: include/sane/saneopts.h:204 backend/fujitsu.c:3237 #, no-c-format msgid "Halftone pattern" msgstr "Patrón de medios tonos" @@ -294,10 +294,10 @@ msgstr "Patrón de medios tonos" msgid "Bind X and Y resolution" msgstr "Enlazar resoluciones X e Y" -#: include/sane/saneopts.h:206 backend/hp3900_sane.c:428 -#: backend/hp3900_sane.c:1021 backend/hp3900_sane.c:1421 -#: backend/hp-option.c:3238 backend/mustek_usb2.c:121 backend/plustek.c:236 -#: backend/plustek_pp.c:205 backend/u12.c:157 +#: include/sane/saneopts.h:206 backend/hp-option.c:3238 +#: backend/hp3900_sane.c:428 backend/hp3900_sane.c:1021 +#: backend/hp3900_sane.c:1421 backend/mustek_usb2.c:121 +#: backend/plustek.c:236 backend/plustek_pp.c:205 backend/u12.c:157 #, no-c-format msgid "Negative" msgstr "Negativo" @@ -1047,78 +1047,38 @@ msgstr "" "El escaneo a dos caras proporciona un escaneo del anverso y el reverso " "del documento" -#: backend/canon630u.c:159 +#: backend/canon-sane.c:674 backend/canon.c:171 #, no-c-format -msgid "Calibrate Scanner" -msgstr "Calibrar el escáner" +msgid "Correction according to transparency ratio" +msgstr "Corrección conforme con la tasa de transparencia" -#: backend/canon630u.c:160 +#: backend/canon-sane.c:680 backend/canon.c:170 #, no-c-format -msgid "Force scanner calibration before scan" -msgstr "Fuerza la calibración del escáner antes de realizar el escaneo" +msgid "Correction according to film type" +msgstr "Correción de acuerdo con el tipo de película" -#: backend/canon630u.c:259 backend/umax1220u.c:208 -#, no-c-format -msgid "Grayscale scan" -msgstr "Escaneo en escala de grises" - -#: backend/canon630u.c:260 backend/umax1220u.c:209 -#, no-c-format -msgid "Do a grayscale rather than color scan" -msgstr "Escanea en escala de grises, no en color" - -#: backend/canon630u.c:306 -#, no-c-format -msgid "Analog Gain" -msgstr "Ganancia analógica" - -#: backend/canon630u.c:307 -#, no-c-format -msgid "Increase or decrease the analog gain of the CCD array" -msgstr "Aumenta o disminuye la ganancia analógica de la gama CCD" - -#: backend/canon630u.c:347 backend/epson.h:68 backend/epson2.h:67 -#, no-c-format -msgid "Gamma Correction" -msgstr "Corrección gamma" - -#: backend/canon630u.c:348 -#, no-c-format -msgid "Selects the gamma corrected transfer curve" -msgstr "Selecciona la curva de transferencia de la corrección gamma" - -#: backend/canon.c:149 backend/canon-sane.c:1318 -#, no-c-format -msgid "Raw" -msgstr "En bruto" - -#: backend/canon.c:157 backend/canon-sane.c:732 backend/canon-sane.c:940 +#: backend/canon-sane.c:732 backend/canon-sane.c:940 #: backend/canon-sane.c:1076 backend/canon-sane.c:1314 -#: backend/canon-sane.c:1494 backend/canon-sane.c:1643 +#: backend/canon-sane.c:1494 backend/canon-sane.c:1643 backend/canon.c:157 #, no-c-format msgid "Fine color" msgstr "Color fino" +#: backend/canon-sane.c:776 backend/canon.c:176 +#, no-c-format +msgid "Negatives" +msgstr "Negativos" + +#: backend/canon-sane.c:1318 backend/canon.c:149 +#, no-c-format +msgid "Raw" +msgstr "En bruto" + #: backend/canon.c:169 #, no-c-format msgid "No transparency correction" msgstr "Sin corrección de transparencia" -#: backend/canon.c:170 backend/canon-sane.c:680 -#, no-c-format -msgid "Correction according to film type" -msgstr "Correción de acuerdo con el tipo de película" - -#: backend/canon.c:171 backend/canon-sane.c:674 -#, no-c-format -msgid "Correction according to transparency ratio" -msgstr "Corrección conforme con la tasa de transparencia" - -#: backend/canon.c:176 backend/canon-sane.c:776 -#, no-c-format -msgid "Negatives" -msgstr "Negativos" - #: backend/canon.c:176 #, no-c-format msgid "Slides" @@ -1551,94 +1511,137 @@ msgstr "Seleccionar tipo de película" msgid "Select the film type" msgstr "Seleccionar el tipo de película" -#: backend/canon_dr.c:411 backend/epjitsu.c:233 backend/epson.c:501 -#: backend/epson2.c:115 backend/fujitsu.c:675 backend/gt68xx.c:148 +#: backend/canon630u.c:159 +#, no-c-format +msgid "Calibrate Scanner" +msgstr "Calibrar el escáner" + +#: backend/canon630u.c:160 +#, no-c-format +msgid "Force scanner calibration before scan" +msgstr "Fuerza la calibración del escáner antes de realizar el escaneo" + +#: backend/canon630u.c:259 backend/umax1220u.c:208 +#, no-c-format +msgid "Grayscale scan" +msgstr "Escaneo en escala de grises" + +#: backend/canon630u.c:260 backend/umax1220u.c:209 +#, no-c-format +msgid "Do a grayscale rather than color scan" +msgstr "Escanea en escala de grises, no en color" + +#: backend/canon630u.c:306 +#, no-c-format +msgid "Analog Gain" +msgstr "Ganancia analógica" + +#: backend/canon630u.c:307 +#, no-c-format +msgid "Increase or decrease the analog gain of the CCD array" +msgstr "Aumenta o disminuye la ganancia analógica de la gama CCD" + +#: backend/canon630u.c:347 backend/epson.h:68 backend/epson2.h:67 +#, no-c-format +msgid "Gamma Correction" +msgstr "Corrección gamma" + +#: backend/canon630u.c:348 +#, no-c-format +msgid "Selects the gamma corrected transfer curve" +msgstr "Selecciona la curva de transferencia de la corrección gamma" + +#: backend/canon_dr.c:413 backend/epjitsu.c:233 backend/epson.c:501 +#: backend/epson2-ops.c:101 backend/epson2.c:115 backend/epsonds-ops.c:32 +#: backend/epsonds.c:95 backend/epsonds.h:62 backend/fujitsu.c:677 +#: backend/genesys/genesys.h:78 backend/gt68xx.c:148 #: backend/hp3900_sane.c:418 backend/hp3900_sane.c:427 -#: backend/hp3900_sane.c:1017 backend/hp5590.c:92 backend/ma1509.c:108 -#: backend/magicolor.c:181 backend/mustek.c:156 backend/mustek.c:160 -#: backend/mustek.c:164 backend/pixma.c:920 backend/pixma_sane_options.c:92 -#: backend/snapscan-options.c:86 backend/test.c:192 backend/umax.c:181 +#: backend/hp3900_sane.c:1017 backend/hp5590.c:92 backend/kodakaio.c:617 +#: backend/ma1509.c:108 backend/magicolor.c:181 backend/mustek.c:156 +#: backend/mustek.c:160 backend/mustek.c:164 backend/pixma/pixma.c:920 +#: backend/pixma/pixma_sane_options.c:92 backend/snapscan-options.c:86 +#: backend/test.c:192 backend/umax.c:181 #, no-c-format msgid "Flatbed" msgstr "Plana" -#: backend/canon_dr.c:412 backend/epjitsu.c:234 backend/fujitsu.c:676 +#: backend/canon_dr.c:414 backend/epjitsu.c:234 backend/fujitsu.c:678 #: backend/kodak.c:140 #, fuzzy, no-c-format msgid "ADF Front" msgstr "la tapa del alimentador está abierta" -#: backend/canon_dr.c:413 backend/epjitsu.c:235 backend/fujitsu.c:677 +#: backend/canon_dr.c:415 backend/epjitsu.c:235 backend/fujitsu.c:679 #: backend/kodak.c:141 #, fuzzy, no-c-format msgid "ADF Back" msgstr "atasco en el alimentador" -#: backend/canon_dr.c:414 backend/epjitsu.c:236 backend/fujitsu.c:678 -#: backend/hp5590.c:94 backend/kodak.c:142 backend/pixma.c:931 +#: backend/canon_dr.c:416 backend/epjitsu.c:236 backend/fujitsu.c:680 +#: backend/hp5590.c:94 backend/kodak.c:142 backend/pixma/pixma.c:931 #, no-c-format msgid "ADF Duplex" msgstr "Alimentador a dos caras" -#: backend/canon_dr.c:415 +#: backend/canon_dr.c:417 #, fuzzy, no-c-format msgid "Card Front" msgstr "Imprimir" -#: backend/canon_dr.c:416 +#: backend/canon_dr.c:418 #, no-c-format msgid "Card Back" msgstr "" -#: backend/canon_dr.c:417 +#: backend/canon_dr.c:419 #, fuzzy, no-c-format msgid "Card Duplex" msgstr "Dos caras" -#: backend/canon_dr.c:424 backend/epson.c:599 backend/epson.c:3096 -#: backend/epson2.c:201 backend/fujitsu.c:695 -#: backend/genesys/genesys.cpp:99 backend/genesys/genesys.cpp:106 +#: backend/canon_dr.c:426 backend/epson.c:599 backend/epson.c:3096 +#: backend/epson2.c:201 backend/fujitsu.c:697 +#: backend/genesys/genesys.cpp:120 backend/genesys/genesys.cpp:127 #: backend/gt68xx_low.h:136 backend/hp-option.c:3096 #, no-c-format msgid "Red" msgstr "Rojo" -#: backend/canon_dr.c:425 backend/epson.c:600 backend/epson.c:3092 -#: backend/epson2.c:202 backend/fujitsu.c:696 -#: backend/genesys/genesys.cpp:100 backend/genesys/genesys.cpp:107 +#: backend/canon_dr.c:427 backend/epson.c:600 backend/epson.c:3092 +#: backend/epson2.c:202 backend/fujitsu.c:698 +#: backend/genesys/genesys.cpp:121 backend/genesys/genesys.cpp:128 #: backend/gt68xx_low.h:137 backend/hp-option.c:3097 #, no-c-format msgid "Green" msgstr "Verde" -#: backend/canon_dr.c:426 backend/epson.c:601 backend/epson.c:3100 -#: backend/epson2.c:203 backend/fujitsu.c:697 -#: backend/genesys/genesys.cpp:101 backend/genesys/genesys.cpp:108 +#: backend/canon_dr.c:428 backend/epson.c:601 backend/epson.c:3100 +#: backend/epson2.c:203 backend/fujitsu.c:699 +#: backend/genesys/genesys.cpp:122 backend/genesys/genesys.cpp:129 #: backend/gt68xx_low.h:138 backend/hp-option.c:3098 #, no-c-format msgid "Blue" msgstr "Azul" -#: backend/canon_dr.c:427 +#: backend/canon_dr.c:429 #, fuzzy, no-c-format msgid "Enhance Red" msgstr "Mejora" -#: backend/canon_dr.c:428 +#: backend/canon_dr.c:430 #, fuzzy, no-c-format msgid "Enhance Green" msgstr "Mejora" -#: backend/canon_dr.c:429 +#: backend/canon_dr.c:431 #, fuzzy, no-c-format msgid "Enhance Blue" msgstr "Mejora" -#: backend/canon_dr.c:431 backend/epson.c:556 backend/epson.c:564 +#: backend/canon_dr.c:433 backend/epson.c:556 backend/epson.c:564 #: backend/epson.c:576 backend/epson.c:598 backend/epson2.c:165 #: backend/epson2.c:173 backend/epson2.c:185 backend/epson2.c:200 -#: backend/epson2.c:214 backend/fujitsu.c:701 -#: backend/genesys/genesys.cpp:109 backend/leo.c:109 +#: backend/epson2.c:214 backend/fujitsu.c:703 +#: backend/genesys/genesys.cpp:130 backend/leo.c:109 #: backend/matsushita.c:138 backend/matsushita.c:159 #: backend/matsushita.c:191 backend/matsushita.c:213 #: backend/snapscan-options.c:91 @@ -1646,42 +1649,46 @@ msgstr "Mejora" msgid "None" msgstr "Ninguno" -#: backend/canon_dr.c:432 backend/fujitsu.c:702 +#: backend/canon_dr.c:434 backend/fujitsu.c:704 #, no-c-format msgid "JPEG" msgstr "" -#: backend/canon_dr.c:2477 backend/fujitsu.c:4113 -#: backend/genesys/genesys.cpp:4126 backend/kvs1025_opt.c:910 +#: backend/canon_dr.c:2479 backend/fujitsu.c:4117 +#: backend/genesys/genesys.cpp:4168 backend/kvs1025_opt.c:910 #, no-c-format msgid "Software blank skip percentage" msgstr "" -#: backend/canon_dr.c:2478 backend/fujitsu.c:4114 +#: backend/canon_dr.c:2480 backend/fujitsu.c:4118 #, no-c-format msgid "Request driver to discard pages with low percentage of dark pixels" msgstr "" -#: backend/epson.c:491 backend/epson2.c:108 backend/magicolor.c:174 +#: backend/epson.c:491 backend/epson2.c:108 backend/epsonds.c:88 +#: backend/kodakaio.c:611 backend/magicolor.c:174 #, no-c-format msgid "Simplex" msgstr "Una cara" -#: backend/epson.c:492 backend/epson2.c:109 backend/kvs1025.h:50 -#: backend/kvs20xx_opt.c:204 backend/kvs40xx_opt.c:353 -#: backend/magicolor.c:175 backend/matsushita.h:218 +#: backend/epson.c:492 backend/epson2.c:109 backend/epsonds.c:89 +#: backend/kodakaio.c:612 backend/kvs1025.h:50 backend/kvs20xx_opt.c:204 +#: backend/kvs40xx_opt.c:353 backend/magicolor.c:175 +#: backend/matsushita.h:218 #, no-c-format msgid "Duplex" msgstr "Dos caras" -#: backend/epson.c:502 backend/epson2.c:116 backend/pixma.c:937 +#: backend/epson.c:502 backend/epson2-ops.c:102 backend/epson2.c:116 +#: backend/epsonds-ops.c:33 backend/epsonds.h:63 backend/pixma/pixma.c:937 #, no-c-format msgid "Transparency Unit" msgstr "Unidad de transparencias" -#: backend/epson.c:503 backend/epson2.c:118 backend/magicolor.c:182 -#: backend/mustek.c:160 backend/pixma.c:925 backend/test.c:192 -#: backend/umax.c:183 +#: backend/epson.c:503 backend/epson2-ops.c:104 backend/epson2.c:118 +#: backend/epsonds-ops.c:34 backend/epsonds.c:96 backend/epsonds.h:64 +#: backend/kodakaio.c:618 backend/magicolor.c:182 backend/mustek.c:160 +#: backend/pixma/pixma.c:925 backend/test.c:192 backend/umax.c:183 #, no-c-format msgid "Automatic Document Feeder" msgstr "Alimentador automático de documentos (ADF)" @@ -1793,7 +1800,7 @@ msgstr "Impresoras de inyección de tinta" msgid "CRT monitors" msgstr "Monitores CRT" -#: backend/epson.c:656 backend/epson2.c:254 backend/fujitsu.c:685 +#: backend/epson.c:656 backend/epson2.c:254 backend/fujitsu.c:687 #: backend/hp-option.c:3229 backend/test.c:143 #, no-c-format msgid "Default" @@ -1857,8 +1864,8 @@ msgstr "A4" msgid "Max" msgstr "Máx" -#: backend/epson.c:2813 backend/epson2.c:976 -#: backend/genesys/genesys.cpp:3893 backend/gt68xx.c:451 +#: backend/epson.c:2813 backend/epson2.c:976 backend/epsonds.c:629 +#: backend/genesys/genesys.cpp:3965 backend/gt68xx.c:451 #: backend/hp-option.c:2917 backend/kvs1025_opt.c:521 #: backend/kvs20xx_opt.c:171 backend/kvs40xx_opt.c:320 backend/ma1509.c:501 #: backend/matsushita.c:1084 backend/microtek2.h:598 backend/mustek.c:4215 @@ -2033,17 +2040,17 @@ msgstr "Define el factor de zoom que usará el escáner" msgid "Quick format" msgstr "Formato rápido" -#: backend/epson.c:3360 backend/epson2.c:1340 +#: backend/epson.c:3360 backend/epson2.c:1340 backend/epsonds.c:726 #, no-c-format msgid "Optional equipment" msgstr "Equipamiento opcional" -#: backend/epson.c:3431 backend/epson2.c:1393 +#: backend/epson.c:3431 backend/epson2.c:1393 backend/epsonds.c:742 #, no-c-format msgid "Eject" msgstr "Expulsar" -#: backend/epson.c:3432 backend/epson2.c:1394 +#: backend/epson.c:3432 backend/epson2.c:1394 backend/epsonds.c:743 #, no-c-format msgid "Eject the sheet in the ADF" msgstr "Expulsar la hoja del alimentador" @@ -2058,12 +2065,14 @@ msgstr "Expulsión automática" msgid "Eject document after scanning" msgstr "Expulsar el documento después del escaneo" -#: backend/epson.c:3457 backend/epson2.c:1416 backend/magicolor.c:2420 +#: backend/epson.c:3457 backend/epson2.c:1416 backend/epsonds.c:758 +#: backend/kodakaio.c:2855 backend/magicolor.c:2420 #, no-c-format msgid "ADF Mode" msgstr "Modo alimentador" -#: backend/epson.c:3459 backend/epson2.c:1418 backend/magicolor.c:2422 +#: backend/epson.c:3459 backend/epson2.c:1418 backend/epsonds.c:760 +#: backend/kodakaio.c:2857 backend/magicolor.c:2422 #, no-c-format msgid "Selects the ADF mode (simplex/duplex)" msgstr "Seleccionar el modo del alimentador (una cara/dos caras)" @@ -2115,16 +2124,16 @@ msgstr "" "Después de enviar la orden de escanear, esperar hasta que se presione el " "botón del escáner para empezar realmente el proceso de escaneo." -#: backend/epson2.c:102 backend/pixma.c:409 -#, no-c-format -msgid "Infrared" -msgstr "" - -#: backend/epson2.c:117 +#: backend/epson2-ops.c:103 backend/epson2.c:117 #, no-c-format msgid "TPU8x10" msgstr "" +#: backend/epson2.c:102 backend/pixma/pixma.c:409 +#, no-c-format +msgid "Infrared" +msgstr "" + #: backend/epson2.c:136 #, no-c-format msgid "Positive Slide" @@ -2145,494 +2154,514 @@ msgstr "" msgid "User defined CCT profile" msgstr "Definida por el usuario" -#: backend/fujitsu.c:686 backend/hp-option.c:3330 backend/hp-option.c:3343 +#: backend/epsonds.c:750 +#, no-c-format +msgid "Load" +msgstr "" + +#: backend/epsonds.c:751 +#, fuzzy, no-c-format +msgid "Load a sheet in the ADF" +msgstr "Expulsar la hoja del alimentador" + +#: backend/epsonds.c:771 +#, fuzzy, no-c-format +msgid "ADF Skew Correction" +msgstr "Sin corrección" + +#: backend/epsonds.c:773 +#, fuzzy, no-c-format +msgid "Enables ADF skew correction" +msgstr "Desactivar corrección gamma" + +#: backend/fujitsu.c:688 backend/hp-option.c:3330 backend/hp-option.c:3343 #, no-c-format msgid "On" msgstr "Activo" -#: backend/fujitsu.c:687 backend/hp-option.c:3162 backend/hp-option.c:3329 +#: backend/fujitsu.c:689 backend/hp-option.c:3162 backend/hp-option.c:3329 #: backend/hp-option.c:3342 #, no-c-format msgid "Off" msgstr "Apagado" -#: backend/fujitsu.c:689 +#: backend/fujitsu.c:691 #, no-c-format msgid "DTC" msgstr "" -#: backend/fujitsu.c:690 +#: backend/fujitsu.c:692 #, no-c-format msgid "SDTC" msgstr "" -#: backend/fujitsu.c:692 backend/teco1.c:1152 backend/teco1.c:1153 +#: backend/fujitsu.c:694 backend/teco1.c:1152 backend/teco1.c:1153 #: backend/teco2.c:1967 backend/teco2.c:1968 backend/teco3.c:977 #: backend/teco3.c:978 #, no-c-format msgid "Dither" msgstr "Difuminado" -#: backend/fujitsu.c:693 +#: backend/fujitsu.c:695 #, fuzzy, no-c-format msgid "Diffusion" msgstr "Difusión de error" -#: backend/fujitsu.c:698 +#: backend/fujitsu.c:700 #, fuzzy, no-c-format msgid "White" msgstr "Nivel de blanco" -#: backend/fujitsu.c:699 +#: backend/fujitsu.c:701 #, fuzzy, no-c-format msgid "Black" msgstr "Nivel de negro" -#: backend/fujitsu.c:704 +#: backend/fujitsu.c:706 #, fuzzy, no-c-format msgid "Continue" msgstr "Condicional" -#: backend/fujitsu.c:705 +#: backend/fujitsu.c:707 #, no-c-format msgid "Stop" msgstr "" -#: backend/fujitsu.c:707 +#: backend/fujitsu.c:709 #, no-c-format msgid "10mm" msgstr "" -#: backend/fujitsu.c:708 +#: backend/fujitsu.c:710 #, no-c-format msgid "15mm" msgstr "" -#: backend/fujitsu.c:709 +#: backend/fujitsu.c:711 #, no-c-format msgid "20mm" msgstr "" -#: backend/fujitsu.c:711 backend/hp-option.c:3048 +#: backend/fujitsu.c:713 backend/hp-option.c:3048 #, no-c-format msgid "Horizontal" msgstr "Horizontal" -#: backend/fujitsu.c:712 +#: backend/fujitsu.c:714 #, fuzzy, no-c-format msgid "Horizontal bold" msgstr "Horizontal" -#: backend/fujitsu.c:713 +#: backend/fujitsu.c:715 #, fuzzy, no-c-format msgid "Horizontal narrow" msgstr "Horizontal" -#: backend/fujitsu.c:714 backend/hp-option.c:3047 +#: backend/fujitsu.c:716 backend/hp-option.c:3047 #, no-c-format msgid "Vertical" msgstr "Vertical" -#: backend/fujitsu.c:715 +#: backend/fujitsu.c:717 #, fuzzy, no-c-format msgid "Vertical bold" msgstr "Vertical" -#: backend/fujitsu.c:717 +#: backend/fujitsu.c:719 #, no-c-format msgid "Top to bottom" msgstr "" -#: backend/fujitsu.c:718 +#: backend/fujitsu.c:720 #, no-c-format msgid "Bottom to top" msgstr "" -#: backend/fujitsu.c:720 +#: backend/fujitsu.c:722 #, fuzzy, no-c-format msgid "Front" msgstr "Imprimir" -#: backend/fujitsu.c:721 +#: backend/fujitsu.c:723 #, no-c-format msgid "Back" msgstr "" -#: backend/fujitsu.c:3144 backend/pixma_sane_options.c:145 +#: backend/fujitsu.c:3148 backend/pixma/pixma_sane_options.c:145 #, no-c-format msgid "Gamma function exponent" msgstr "" -#: backend/fujitsu.c:3145 backend/pixma_sane_options.c:146 +#: backend/fujitsu.c:3149 backend/pixma/pixma_sane_options.c:146 #, no-c-format msgid "Changes intensity of midtones" msgstr "" -#: backend/fujitsu.c:3194 +#: backend/fujitsu.c:3198 #, no-c-format msgid "RIF" msgstr "" -#: backend/fujitsu.c:3195 +#: backend/fujitsu.c:3199 #, no-c-format msgid "Reverse image format" msgstr "" -#: backend/fujitsu.c:3212 +#: backend/fujitsu.c:3216 #, fuzzy, no-c-format msgid "Halftone type" msgstr "Medios tonos" -#: backend/fujitsu.c:3213 +#: backend/fujitsu.c:3217 #, no-c-format msgid "Control type of halftone filter" msgstr "" -#: backend/fujitsu.c:3234 +#: backend/fujitsu.c:3238 #, no-c-format msgid "Control pattern of halftone filter" msgstr "" -#: backend/fujitsu.c:3256 +#: backend/fujitsu.c:3260 #, no-c-format msgid "Outline" msgstr "" -#: backend/fujitsu.c:3257 +#: backend/fujitsu.c:3261 #, fuzzy, no-c-format msgid "Perform outline extraction" msgstr "Calibración de precisión" -#: backend/fujitsu.c:3268 +#: backend/fujitsu.c:3272 #, fuzzy, no-c-format msgid "Emphasis" msgstr "Resalte de imagen" -#: backend/fujitsu.c:3269 +#: backend/fujitsu.c:3273 #, no-c-format msgid "Negative to smooth or positive to sharpen image" msgstr "" -#: backend/fujitsu.c:3287 +#: backend/fujitsu.c:3291 #, fuzzy, no-c-format msgid "Separation" msgstr "Saturación" -#: backend/fujitsu.c:3288 +#: backend/fujitsu.c:3292 #, fuzzy, no-c-format msgid "Enable automatic separation of image and text" msgstr "" "Activar la determinación automática de umbral para escaneos como línea " "de arte." -#: backend/fujitsu.c:3299 +#: backend/fujitsu.c:3303 #, fuzzy, no-c-format msgid "Mirroring" msgstr "Invertir imagen" -#: backend/fujitsu.c:3300 +#: backend/fujitsu.c:3304 #, fuzzy, no-c-format msgid "Reflect output image horizontally" msgstr "Invertir la imagen horizontalmente." -#: backend/fujitsu.c:3317 +#: backend/fujitsu.c:3321 #, fuzzy, no-c-format msgid "White level follower" msgstr "Nivel de blanco para azul" -#: backend/fujitsu.c:3318 +#: backend/fujitsu.c:3322 #, fuzzy, no-c-format msgid "Control white level follower" msgstr "Controla el nivel de rojo" -#: backend/fujitsu.c:3336 +#: backend/fujitsu.c:3340 #, fuzzy, no-c-format msgid "BP filter" msgstr "Filtro de color" -#: backend/fujitsu.c:3337 +#: backend/fujitsu.c:3341 #, no-c-format msgid "Improves quality of high resolution ball-point pen text" msgstr "" -#: backend/fujitsu.c:3353 backend/hp-option.h:73 +#: backend/fujitsu.c:3357 backend/hp-option.h:73 #, no-c-format msgid "Smoothing" msgstr "Suavizado" -#: backend/fujitsu.c:3354 +#: backend/fujitsu.c:3358 #, no-c-format msgid "Enable smoothing for improved OCR" msgstr "" -#: backend/fujitsu.c:3370 +#: backend/fujitsu.c:3374 #, fuzzy, no-c-format msgid "Gamma curve" msgstr "Valor gamma" -#: backend/fujitsu.c:3371 +#: backend/fujitsu.c:3375 #, no-c-format msgid "Gamma curve, from light to dark, but upper two may not work" msgstr "" -#: backend/fujitsu.c:3393 backend/genesys/genesys.cpp:4187 -#: backend/pixma_sane_options.c:335 +#: backend/fujitsu.c:3397 backend/genesys/genesys.cpp:4229 +#: backend/pixma/pixma_sane_options.c:335 #, fuzzy, no-c-format msgid "Threshold curve" msgstr "Umbral" -#: backend/fujitsu.c:3394 +#: backend/fujitsu.c:3398 #, no-c-format msgid "" "Threshold curve, from light to dark, but upper two may not be linear" msgstr "" -#: backend/fujitsu.c:3416 +#: backend/fujitsu.c:3420 #, fuzzy, no-c-format msgid "Threshold white" msgstr "Umbral" -#: backend/fujitsu.c:3417 +#: backend/fujitsu.c:3421 #, no-c-format msgid "Set pixels equal to threshold to white instead of black" msgstr "" -#: backend/fujitsu.c:3433 backend/fujitsu.c:3434 +#: backend/fujitsu.c:3437 backend/fujitsu.c:3438 #, fuzzy, no-c-format msgid "Noise removal" msgstr "Reducción de ruido" -#: backend/fujitsu.c:3450 +#: backend/fujitsu.c:3454 #, no-c-format msgid "Matrix 5x5" msgstr "" -#: backend/fujitsu.c:3451 +#: backend/fujitsu.c:3455 #, no-c-format msgid "Remove 5 pixel square noise" msgstr "" -#: backend/fujitsu.c:3467 +#: backend/fujitsu.c:3471 #, no-c-format msgid "Matrix 4x4" msgstr "" -#: backend/fujitsu.c:3468 +#: backend/fujitsu.c:3472 #, no-c-format msgid "Remove 4 pixel square noise" msgstr "" -#: backend/fujitsu.c:3484 +#: backend/fujitsu.c:3488 #, no-c-format msgid "Matrix 3x3" msgstr "" -#: backend/fujitsu.c:3485 +#: backend/fujitsu.c:3489 #, no-c-format msgid "Remove 3 pixel square noise" msgstr "" -#: backend/fujitsu.c:3501 +#: backend/fujitsu.c:3505 #, no-c-format msgid "Matrix 2x2" msgstr "" -#: backend/fujitsu.c:3502 +#: backend/fujitsu.c:3506 #, no-c-format msgid "Remove 2 pixel square noise" msgstr "" -#: backend/fujitsu.c:3521 +#: backend/fujitsu.c:3525 #, no-c-format msgid "Variance" msgstr "" -#: backend/fujitsu.c:3522 +#: backend/fujitsu.c:3526 #, no-c-format msgid "Set SDTC variance rate (sensitivity), 0 equals 127" msgstr "" -#: backend/fujitsu.c:3555 +#: backend/fujitsu.c:3559 #, fuzzy, no-c-format msgid "Auto width detection" msgstr "Sin corrección" -#: backend/fujitsu.c:3556 +#: backend/fujitsu.c:3560 #, no-c-format msgid "Scanner detects paper sides. May reduce scanning speed." msgstr "" -#: backend/fujitsu.c:3573 +#: backend/fujitsu.c:3577 #, fuzzy, no-c-format msgid "Auto length detection" msgstr "Sin corrección" -#: backend/fujitsu.c:3574 +#: backend/fujitsu.c:3578 #, no-c-format msgid "Scanner detects paper lower edge. May confuse some frontends." msgstr "" -#: backend/fujitsu.c:3600 +#: backend/fujitsu.c:3604 #, no-c-format msgid "Compression" msgstr "" -#: backend/fujitsu.c:3601 +#: backend/fujitsu.c:3605 #, no-c-format msgid "Enable compressed data. May crash your front-end program" msgstr "" -#: backend/fujitsu.c:3621 +#: backend/fujitsu.c:3625 #, no-c-format msgid "Compression argument" msgstr "" -#: backend/fujitsu.c:3622 +#: backend/fujitsu.c:3626 #, no-c-format msgid "" "Level of JPEG compression. 1 is small file, 7 is large file. 0 (default) " "is same as 4" msgstr "" -#: backend/fujitsu.c:3652 +#: backend/fujitsu.c:3656 #, no-c-format msgid "DF action" msgstr "" -#: backend/fujitsu.c:3653 +#: backend/fujitsu.c:3657 #, no-c-format msgid "Action following double feed error" msgstr "" -#: backend/fujitsu.c:3669 +#: backend/fujitsu.c:3673 #, no-c-format msgid "DF skew" msgstr "" -#: backend/fujitsu.c:3670 +#: backend/fujitsu.c:3674 #, no-c-format msgid "Enable double feed error due to skew" msgstr "" -#: backend/fujitsu.c:3688 +#: backend/fujitsu.c:3692 #, no-c-format msgid "DF thickness" msgstr "" -#: backend/fujitsu.c:3689 +#: backend/fujitsu.c:3693 #, no-c-format msgid "Enable double feed error due to paper thickness" msgstr "" -#: backend/fujitsu.c:3707 +#: backend/fujitsu.c:3711 #, no-c-format msgid "DF length" msgstr "" -#: backend/fujitsu.c:3708 +#: backend/fujitsu.c:3712 #, no-c-format msgid "Enable double feed error due to paper length" msgstr "" -#: backend/fujitsu.c:3731 +#: backend/fujitsu.c:3735 #, no-c-format msgid "DF length difference" msgstr "" -#: backend/fujitsu.c:3732 +#: backend/fujitsu.c:3736 #, no-c-format msgid "Difference in page length to trigger double feed error" msgstr "" -#: backend/fujitsu.c:3755 +#: backend/fujitsu.c:3759 #, fuzzy, no-c-format msgid "DF recovery mode" msgstr "la tapa del alimentador está abierta" -#: backend/fujitsu.c:3756 +#: backend/fujitsu.c:3760 #, no-c-format msgid "Request scanner to reverse feed on paper jam" msgstr "" -#: backend/fujitsu.c:3775 +#: backend/fujitsu.c:3779 #, no-c-format msgid "Paper protection" msgstr "" -#: backend/fujitsu.c:3776 +#: backend/fujitsu.c:3780 #, no-c-format msgid "Request scanner to predict jams in the ADF" msgstr "" -#: backend/fujitsu.c:3795 +#: backend/fujitsu.c:3799 #, fuzzy, no-c-format msgid "Advanced paper protection" msgstr "Opciones avanzadas" -#: backend/fujitsu.c:3796 +#: backend/fujitsu.c:3800 #, no-c-format msgid "Request scanner to predict jams in the ADF using improved sensors" msgstr "" -#: backend/fujitsu.c:3815 +#: backend/fujitsu.c:3819 #, fuzzy, no-c-format msgid "Staple detection" msgstr "Sin corrección" -#: backend/fujitsu.c:3816 +#: backend/fujitsu.c:3820 #, no-c-format msgid "Request scanner to detect jams in the ADF caused by staples" msgstr "" -#: backend/fujitsu.c:3835 +#: backend/fujitsu.c:3839 #, no-c-format msgid "Background color" msgstr "" -#: backend/fujitsu.c:3836 +#: backend/fujitsu.c:3840 #, no-c-format msgid "" "Set color of background for scans. May conflict with overscan option" msgstr "" -#: backend/fujitsu.c:3856 +#: backend/fujitsu.c:3860 #, fuzzy, no-c-format msgid "Dropout color" msgstr "Exclusión" -#: backend/fujitsu.c:3857 +#: backend/fujitsu.c:3861 #, no-c-format msgid "" "One-pass scanners use only one color during gray or binary scanning, " "useful for colored paper or ink" msgstr "" -#: backend/fujitsu.c:3880 +#: backend/fujitsu.c:3884 #, fuzzy, no-c-format msgid "Buffer mode" msgstr "Modo de alimentación" -#: backend/fujitsu.c:3881 +#: backend/fujitsu.c:3885 #, no-c-format msgid "Request scanner to read pages quickly from ADF into internal memory" msgstr "" -#: backend/fujitsu.c:3900 +#: backend/fujitsu.c:3904 #, no-c-format msgid "Prepick" msgstr "" -#: backend/fujitsu.c:3901 +#: backend/fujitsu.c:3905 #, no-c-format msgid "Request scanner to grab next page from ADF" msgstr "" -#: backend/fujitsu.c:3920 +#: backend/fujitsu.c:3924 #, no-c-format msgid "Overscan" msgstr "" -#: backend/fujitsu.c:3921 +#: backend/fujitsu.c:3925 #, no-c-format msgid "" "Collect a few mm of background on top side of scan, before paper enters " @@ -2640,65 +2669,65 @@ msgid "" "collection on remaining sides. May conflict with bgcolor option" msgstr "" -#: backend/fujitsu.c:3939 +#: backend/fujitsu.c:3943 #, no-c-format msgid "Sleep timer" msgstr "" -#: backend/fujitsu.c:3940 +#: backend/fujitsu.c:3944 #, no-c-format msgid "" "Time in minutes until the internal power supply switches to sleep mode" msgstr "" -#: backend/fujitsu.c:3958 +#: backend/fujitsu.c:3962 #, fuzzy, no-c-format msgid "Off timer" msgstr "Tiempo de espera de la lámpara" -#: backend/fujitsu.c:3959 +#: backend/fujitsu.c:3963 #, no-c-format msgid "" "Time in minutes until the internal power supply switches the scanner " "off. Will be rounded to nearest 15 minutes. Zero means never power off." msgstr "" -#: backend/fujitsu.c:3977 +#: backend/fujitsu.c:3981 #, fuzzy, no-c-format msgid "Duplex offset" msgstr "Desviación azul" -#: backend/fujitsu.c:3978 +#: backend/fujitsu.c:3982 #, no-c-format msgid "Adjust front/back offset" msgstr "" -#: backend/fujitsu.c:3995 backend/plustek.c:1025 backend/umax_pp.c:800 +#: backend/fujitsu.c:3999 backend/plustek.c:1025 backend/umax_pp.c:794 #, no-c-format msgid "Green offset" msgstr "Desviación verde" -#: backend/fujitsu.c:3996 +#: backend/fujitsu.c:4000 #, fuzzy, no-c-format msgid "Adjust green/red offset" msgstr "Desviación verde" -#: backend/fujitsu.c:4013 backend/plustek.c:1041 backend/umax_pp.c:812 +#: backend/fujitsu.c:4017 backend/plustek.c:1041 backend/umax_pp.c:806 #, no-c-format msgid "Blue offset" msgstr "Desviación azul" -#: backend/fujitsu.c:4014 +#: backend/fujitsu.c:4018 #, fuzzy, no-c-format msgid "Adjust blue/red offset" msgstr "Ajusta el desplazamiento del canal de azul" -#: backend/fujitsu.c:4027 +#: backend/fujitsu.c:4031 #, fuzzy, no-c-format msgid "Low Memory" msgstr "No queda memoria" -#: backend/fujitsu.c:4028 +#: backend/fujitsu.c:4032 #, no-c-format msgid "" "Limit driver memory usage for use in embedded systems. Causes some " @@ -2707,374 +2736,362 @@ msgid "" "only be used with custom front-end software." msgstr "" -#: backend/fujitsu.c:4043 +#: backend/fujitsu.c:4047 #, fuzzy, no-c-format msgid "Duplex side" msgstr "Escaneo a dos caras" -#: backend/fujitsu.c:4044 +#: backend/fujitsu.c:4048 #, no-c-format msgid "" "Tells which side (0=front, 1=back) of a duplex scan the next call to " "sane_read will return." msgstr "" -#: backend/fujitsu.c:4055 +#: backend/fujitsu.c:4059 #, no-c-format msgid "Hardware deskew and crop" msgstr "" -#: backend/fujitsu.c:4056 +#: backend/fujitsu.c:4060 #, no-c-format msgid "Request scanner to rotate and crop pages digitally." msgstr "" -#: backend/fujitsu.c:4067 backend/kvs1025_opt.c:871 +#: backend/fujitsu.c:4071 backend/kvs1025_opt.c:871 #, no-c-format msgid "Software deskew" msgstr "" -#: backend/fujitsu.c:4068 +#: backend/fujitsu.c:4072 #, no-c-format msgid "Request driver to rotate skewed pages digitally." msgstr "" -#: backend/fujitsu.c:4080 backend/kvs1025_opt.c:880 +#: backend/fujitsu.c:4084 backend/kvs1025_opt.c:880 #, no-c-format msgid "Software despeckle diameter" msgstr "" -#: backend/fujitsu.c:4081 +#: backend/fujitsu.c:4085 #, no-c-format msgid "Maximum diameter of lone dots to remove from scan." msgstr "" -#: backend/fujitsu.c:4100 backend/genesys/genesys.cpp:4117 +#: backend/fujitsu.c:4104 backend/genesys/genesys.cpp:4159 #, no-c-format msgid "Software crop" msgstr "" -#: backend/fujitsu.c:4101 +#: backend/fujitsu.c:4105 #, no-c-format msgid "Request driver to remove border from pages digitally." msgstr "" -#: backend/fujitsu.c:4130 +#: backend/fujitsu.c:4134 #, no-c-format msgid "Halt on Cancel" msgstr "" -#: backend/fujitsu.c:4131 +#: backend/fujitsu.c:4135 #, no-c-format msgid "" "Request driver to halt the paper feed instead of eject during a cancel." msgstr "" -#: backend/fujitsu.c:4142 +#: backend/fujitsu.c:4146 #, fuzzy, no-c-format msgid "Endorser Options" msgstr "Opciones avanzadas" -#: backend/fujitsu.c:4143 +#: backend/fujitsu.c:4147 #, no-c-format msgid "Controls for endorser unit" msgstr "" -#: backend/fujitsu.c:4154 +#: backend/fujitsu.c:4158 #, no-c-format msgid "Endorser" msgstr "" -#: backend/fujitsu.c:4155 +#: backend/fujitsu.c:4159 #, no-c-format msgid "Enable endorser unit" msgstr "" -#: backend/fujitsu.c:4170 +#: backend/fujitsu.c:4174 #, no-c-format msgid "Endorser bits" msgstr "" -#: backend/fujitsu.c:4171 +#: backend/fujitsu.c:4175 #, no-c-format msgid "Determines maximum endorser counter value." msgstr "" -#: backend/fujitsu.c:4196 +#: backend/fujitsu.c:4200 #, no-c-format msgid "Endorser value" msgstr "" -#: backend/fujitsu.c:4197 +#: backend/fujitsu.c:4201 #, no-c-format msgid "Initial endorser counter value." msgstr "" -#: backend/fujitsu.c:4220 +#: backend/fujitsu.c:4224 #, no-c-format msgid "Endorser step" msgstr "" -#: backend/fujitsu.c:4221 +#: backend/fujitsu.c:4225 #, no-c-format msgid "Change endorser counter value by this much for each page." msgstr "" -#: backend/fujitsu.c:4244 +#: backend/fujitsu.c:4248 #, no-c-format msgid "Endorser Y" msgstr "" -#: backend/fujitsu.c:4245 +#: backend/fujitsu.c:4249 #, no-c-format msgid "Endorser print offset from top of paper." msgstr "" -#: backend/fujitsu.c:4270 +#: backend/fujitsu.c:4274 #, no-c-format msgid "Endorser font" msgstr "" -#: backend/fujitsu.c:4271 +#: backend/fujitsu.c:4275 #, no-c-format msgid "Endorser printing font." msgstr "" -#: backend/fujitsu.c:4300 +#: backend/fujitsu.c:4304 #, fuzzy, no-c-format msgid "Endorser direction" msgstr "Reducción de ruido" -#: backend/fujitsu.c:4301 +#: backend/fujitsu.c:4305 #, no-c-format msgid "Endorser printing direction." msgstr "" -#: backend/fujitsu.c:4325 +#: backend/fujitsu.c:4329 #, no-c-format msgid "Endorser side" msgstr "" -#: backend/fujitsu.c:4326 +#: backend/fujitsu.c:4330 #, no-c-format msgid "Endorser printing side, requires hardware support to change" msgstr "" -#: backend/fujitsu.c:4351 +#: backend/fujitsu.c:4355 #, no-c-format msgid "Endorser string" msgstr "" -#: backend/fujitsu.c:4352 +#: backend/fujitsu.c:4356 #, no-c-format msgid "" "Endorser alphanumeric print format. %05ud or %08ud at the end will be " "replaced by counter value." msgstr "" -#: backend/fujitsu.c:4379 +#: backend/fujitsu.c:4383 #, no-c-format msgid "Top edge" msgstr "" -#: backend/fujitsu.c:4380 +#: backend/fujitsu.c:4384 #, no-c-format msgid "Paper is pulled partly into ADF" msgstr "" -#: backend/fujitsu.c:4391 +#: backend/fujitsu.c:4395 #, fuzzy, no-c-format msgid "A3 paper" msgstr "Del papel" -#: backend/fujitsu.c:4392 +#: backend/fujitsu.c:4396 #, no-c-format msgid "A3 paper detected" msgstr "" -#: backend/fujitsu.c:4403 +#: backend/fujitsu.c:4407 #, fuzzy, no-c-format msgid "B4 paper" msgstr "Del papel" -#: backend/fujitsu.c:4404 +#: backend/fujitsu.c:4408 #, no-c-format msgid "B4 paper detected" msgstr "" -#: backend/fujitsu.c:4415 +#: backend/fujitsu.c:4419 #, fuzzy, no-c-format msgid "A4 paper" msgstr "Del papel" -#: backend/fujitsu.c:4416 +#: backend/fujitsu.c:4420 #, no-c-format msgid "A4 paper detected" msgstr "" -#: backend/fujitsu.c:4427 +#: backend/fujitsu.c:4431 #, fuzzy, no-c-format msgid "B5 paper" msgstr "Del papel" -#: backend/fujitsu.c:4428 +#: backend/fujitsu.c:4432 #, no-c-format msgid "B5 paper detected" msgstr "" -#: backend/fujitsu.c:4451 +#: backend/fujitsu.c:4455 #, no-c-format msgid "OMR or DF" msgstr "" -#: backend/fujitsu.c:4452 +#: backend/fujitsu.c:4456 #, no-c-format msgid "OMR or double feed detected" msgstr "" -#: backend/fujitsu.c:4475 +#: backend/fujitsu.c:4479 #, no-c-format msgid "Power saving" msgstr "" -#: backend/fujitsu.c:4476 +#: backend/fujitsu.c:4480 #, fuzzy, no-c-format msgid "Scanner in power saving mode" msgstr "La tapa del escáner está abierta" -#: backend/fujitsu.c:4499 +#: backend/fujitsu.c:4503 #, fuzzy, no-c-format msgid "Manual feed" msgstr "Foco previo manual" -#: backend/fujitsu.c:4500 +#: backend/fujitsu.c:4504 #, fuzzy, no-c-format msgid "Manual feed selected" msgstr "Foco previo manual" -#: backend/fujitsu.c:4523 +#: backend/fujitsu.c:4527 #, no-c-format msgid "Function" msgstr "" -#: backend/fujitsu.c:4524 +#: backend/fujitsu.c:4528 #, no-c-format msgid "Function character on screen" msgstr "" -#: backend/fujitsu.c:4535 +#: backend/fujitsu.c:4539 #, no-c-format msgid "Ink low" msgstr "" -#: backend/fujitsu.c:4536 +#: backend/fujitsu.c:4540 #, no-c-format msgid "Imprinter ink running low" msgstr "" -#: backend/fujitsu.c:4547 +#: backend/fujitsu.c:4551 #, no-c-format msgid "Double feed" msgstr "" -#: backend/fujitsu.c:4548 +#: backend/fujitsu.c:4552 #, no-c-format msgid "Double feed detected" msgstr "" -#: backend/fujitsu.c:4559 +#: backend/fujitsu.c:4563 #, no-c-format msgid "Error code" msgstr "" -#: backend/fujitsu.c:4560 +#: backend/fujitsu.c:4564 #, fuzzy, no-c-format msgid "Hardware error code" msgstr "error de verificación de hardware" -#: backend/fujitsu.c:4571 +#: backend/fujitsu.c:4575 #, no-c-format msgid "Skew angle" msgstr "" -#: backend/fujitsu.c:4572 +#: backend/fujitsu.c:4576 #, no-c-format msgid "Requires black background for scanning" msgstr "" -#: backend/fujitsu.c:4583 +#: backend/fujitsu.c:4587 #, no-c-format msgid "Ink remaining" msgstr "" -#: backend/fujitsu.c:4584 +#: backend/fujitsu.c:4588 #, fuzzy, no-c-format msgid "Imprinter ink level" msgstr "Nivel de blanco" -#: backend/fujitsu.c:4595 +#: backend/fujitsu.c:4599 #, fuzzy, no-c-format msgid "Density" msgstr "Control de densidad" -#: backend/fujitsu.c:4596 +#: backend/fujitsu.c:4600 #, fuzzy, no-c-format msgid "Density dial" msgstr "Control de densidad" -#: backend/fujitsu.c:4607 backend/fujitsu.c:4608 +#: backend/fujitsu.c:4611 backend/fujitsu.c:4612 #, fuzzy, no-c-format msgid "Duplex switch" msgstr "Escaneo a dos caras" -#: backend/genesys/genesys.cpp:4118 +#: backend/genesys/genesys.cpp:4160 #, no-c-format msgid "Request backend to remove border from pages digitally" msgstr "" -#: backend/genesys/genesys.cpp:4127 backend/kvs1025_opt.c:912 +#: backend/genesys/genesys.cpp:4169 backend/kvs1025_opt.c:912 #, no-c-format msgid "Request driver to discard pages with low numbers of dark pixels" msgstr "" -#: backend/genesys/genesys.cpp:4137 backend/kvs1025_opt.c:892 +#: backend/genesys/genesys.cpp:4179 backend/kvs1025_opt.c:892 #, no-c-format msgid "Software derotate" msgstr "" -#: backend/genesys/genesys.cpp:4138 backend/kvs1025_opt.c:894 +#: backend/genesys/genesys.cpp:4180 backend/kvs1025_opt.c:894 #, no-c-format msgid "Request driver to detect and correct 90 degree image rotation" msgstr "" -#: backend/genesys/genesys.cpp:4168 backend/pixma_sane_options.c:314 +#: backend/genesys/genesys.cpp:4210 backend/pixma/pixma_sane_options.c:314 #, no-c-format msgid "Extras" msgstr "Extras" -#: backend/genesys/genesys.cpp:4188 backend/pixma_sane_options.c:336 +#: backend/genesys/genesys.cpp:4230 backend/pixma/pixma_sane_options.c:336 #, no-c-format msgid "Dynamic threshold curve, from light to dark, normally 50-65" msgstr "" -#: backend/genesys/genesys.cpp:4197 -#, no-c-format -msgid "Disable dynamic lineart" -msgstr "" - -#: backend/genesys/genesys.cpp:4199 -#, no-c-format -msgid "" -"Disable use of a software adaptive algorithm to generate lineart relying " -"instead on hardware lineart." -msgstr "" - -#: backend/genesys/genesys.cpp:4215 +#: backend/genesys/genesys.cpp:4240 #, no-c-format msgid "Disable interpolation" msgstr "Desactivar interpolación" -#: backend/genesys/genesys.cpp:4218 +#: backend/genesys/genesys.cpp:4243 #, no-c-format msgid "" "When using high resolutions where the horizontal resolution is smaller " @@ -3083,45 +3100,45 @@ msgstr "" "Cuando se usan altas resoluciones en las que la resolución horizontal es " "más pequeña que la vertical, esto desactiva la interpolación horizontal." -#: backend/genesys/genesys.cpp:4227 +#: backend/genesys/genesys.cpp:4252 #, fuzzy, no-c-format msgid "Color filter" msgstr "Filtro de color" -#: backend/genesys/genesys.cpp:4230 +#: backend/genesys/genesys.cpp:4255 #, no-c-format msgid "When using gray or lineart this option selects the used color." msgstr "" "Cuando se usa gris o línea de arte esta opción selecciona el color usado." -#: backend/genesys/genesys.cpp:4254 +#: backend/genesys/genesys.cpp:4279 #, fuzzy, no-c-format msgid "Calibration file" msgstr "Calibración" -#: backend/genesys/genesys.cpp:4255 +#: backend/genesys/genesys.cpp:4280 #, fuzzy, no-c-format msgid "Specify the calibration file to use" msgstr "Define el modo de calibración" -#: backend/genesys/genesys.cpp:4272 +#: backend/genesys/genesys.cpp:4297 #, fuzzy, no-c-format msgid "Calibration cache expiration time" msgstr "Caché de datos de calibración" -#: backend/genesys/genesys.cpp:4273 +#: backend/genesys/genesys.cpp:4298 #, no-c-format msgid "" "Time (in minutes) before a cached calibration expires. A value of 0 " "means cache is not used. A negative value means cache never expires." msgstr "" -#: backend/genesys/genesys.cpp:4283 +#: backend/genesys/genesys.cpp:4308 #, no-c-format msgid "Lamp off time" msgstr "Tiempo de espera de la lámpara" -#: backend/genesys/genesys.cpp:4286 +#: backend/genesys/genesys.cpp:4311 #, no-c-format msgid "" "The lamp will be turned off after the given time (in minutes). A value " @@ -3130,103 +3147,108 @@ msgstr "" "La lámpara será apagada después del tiempo dado (en minutos). Un valor " "de 0 significa que la lámpara no será apagada" -#: backend/genesys/genesys.cpp:4296 +#: backend/genesys/genesys.cpp:4321 #, fuzzy, no-c-format msgid "Lamp off during scan" msgstr "Apagar la lámpara durante la calibración de oscuridad" -#: backend/genesys/genesys.cpp:4297 +#: backend/genesys/genesys.cpp:4322 #, fuzzy, no-c-format msgid "The lamp will be turned off during scan. " msgstr "Minutos que tardará la lámpara en apagarse tras el escaneo" -#: backend/genesys/genesys.cpp:4324 backend/genesys/genesys.cpp:4325 +#: backend/genesys/genesys.cpp:4349 backend/genesys/genesys.cpp:4350 #, no-c-format msgid "File button" msgstr "Botón de archivo" -#: backend/genesys/genesys.cpp:4369 backend/genesys/genesys.cpp:4370 +#: backend/genesys/genesys.cpp:4394 backend/genesys/genesys.cpp:4395 #, no-c-format msgid "OCR button" msgstr "Botón de OCR" -#: backend/genesys/genesys.cpp:4381 backend/genesys/genesys.cpp:4382 +#: backend/genesys/genesys.cpp:4406 backend/genesys/genesys.cpp:4407 #, no-c-format msgid "Power button" msgstr "Botón de energía" -#: backend/genesys/genesys.cpp:4393 backend/genesys/genesys.cpp:4394 +#: backend/genesys/genesys.cpp:4418 backend/genesys/genesys.cpp:4419 #, fuzzy, no-c-format msgid "Extra button" msgstr "Botón de correo-e" -#: backend/genesys/genesys.cpp:4405 backend/gt68xx.c:755 +#: backend/genesys/genesys.cpp:4430 backend/gt68xx.c:755 #, fuzzy, no-c-format msgid "Needs calibration" msgstr "Limpiar la calibración" -#: backend/genesys/genesys.cpp:4406 backend/gt68xx.c:756 +#: backend/genesys/genesys.cpp:4431 backend/gt68xx.c:756 backend/p5.c:1928 #, fuzzy, no-c-format msgid "The scanner needs calibration for the current settings" msgstr "Fuerza la calibración del escáner antes de realizar el escaneo" -#: backend/genesys/genesys.cpp:4417 backend/gt68xx.c:780 -#: backend/gt68xx.c:781 backend/pixma_sane_options.c:226 -#: backend/plustek.c:1080 +#: backend/genesys/genesys.cpp:4442 backend/gt68xx.c:780 +#: backend/gt68xx.c:781 backend/p5.c:1937 backend/p5.c:1938 +#: backend/pixma/pixma_sane_options.c:226 backend/plustek.c:1080 #, no-c-format msgid "Buttons" msgstr "Botones" -#: backend/genesys/genesys.cpp:4426 backend/gt68xx.c:787 -#: backend/hp5400_sane.c:392 backend/hp-option.h:97 backend/niash.c:726 -#: backend/plustek.c:941 +#: backend/genesys/genesys.cpp:4451 backend/gt68xx.c:787 +#: backend/hp-option.h:97 backend/hp5400_sane.c:392 backend/niash.c:726 +#: backend/p5.c:1945 backend/plustek.c:941 #, no-c-format msgid "Calibrate" msgstr "Calibrar" -#: backend/genesys/genesys.cpp:4428 backend/gt68xx.c:789 +#: backend/genesys/genesys.cpp:4453 backend/gt68xx.c:789 backend/p5.c:1947 #, no-c-format msgid "Start calibration using special sheet" msgstr "Iniciar calibración usando una hoja especial" -#: backend/genesys/genesys.cpp:4440 backend/gt68xx.c:802 +#: backend/genesys/genesys.cpp:4465 backend/gt68xx.c:802 backend/p5.c:1958 #, no-c-format msgid "Clear calibration" msgstr "Limpiar la calibración" -#: backend/genesys/genesys.cpp:4441 backend/gt68xx.c:803 +#: backend/genesys/genesys.cpp:4466 backend/gt68xx.c:803 backend/p5.c:1960 #, no-c-format msgid "Clear calibration cache" msgstr "Limpiar la caché de datos de calibración" -#: backend/genesys/genesys.cpp:4451 +#: backend/genesys/genesys.cpp:4476 #, fuzzy, no-c-format msgid "Force calibration" msgstr "Calibración tosca" -#: backend/genesys/genesys.cpp:4452 +#: backend/genesys/genesys.cpp:4477 #, no-c-format msgid "Force calibration ignoring all and any calibration caches" msgstr "" -#: backend/genesys/genesys.cpp:4462 +#: backend/genesys/genesys.cpp:4487 #, fuzzy, no-c-format msgid "Ignore internal offsets" msgstr "Desviación verde" -#: backend/genesys/genesys.cpp:4464 +#: backend/genesys/genesys.cpp:4489 #, no-c-format msgid "" "Acquires the image including the internal calibration areas of the " "scanner" msgstr "" -#: backend/gt68xx.c:149 backend/ma1509.c:108 backend/mustek.c:164 -#: backend/snapscan-options.c:87 backend/umax.c:182 +#: backend/genesys/genesys.h:79 backend/gt68xx.c:149 backend/ma1509.c:108 +#: backend/mustek.c:164 backend/snapscan-options.c:87 backend/umax.c:182 #, no-c-format msgid "Transparency Adapter" msgstr "Adaptador de transparencias" +#: backend/genesys/genesys.h:80 +#, fuzzy, no-c-format +msgid "Transparency Adapter Infrared" +msgstr "Adaptador de transparencias" + #: backend/gt68xx.c:470 #, no-c-format msgid "Gray mode color" @@ -3334,6 +3356,312 @@ msgstr "Valor gamma" msgid "Sets the gamma value of all channels." msgstr "Ajusta el valor gamma para todos los canales." +#: backend/hp-option.c:2987 +#, no-c-format +msgid "Advanced Options" +msgstr "Opciones avanzadas" + +#: backend/hp-option.c:3044 +#, no-c-format +msgid "Coarse" +msgstr "Gruesa" + +#: backend/hp-option.c:3045 +#, no-c-format +msgid "Fine" +msgstr "Fina" + +#: backend/hp-option.c:3046 +#, no-c-format +msgid "Bayer" +msgstr "Bayer" + +#: backend/hp-option.c:3049 backend/hp-option.c:3100 +#, no-c-format +msgid "Custom" +msgstr "Personalizado" + +#: backend/hp-option.c:3090 backend/hp-option.c:3146 +#: backend/hp-option.c:3161 +#, no-c-format +msgid "Auto" +msgstr "Auto" + +#: backend/hp-option.c:3091 +#, no-c-format +msgid "NTSC RGB" +msgstr "NTSC RGB" + +#: backend/hp-option.c:3092 +#, no-c-format +msgid "XPA RGB" +msgstr "Adaptador de transparencias RGB" + +#: backend/hp-option.c:3093 +#, no-c-format +msgid "Pass-through" +msgstr "A través" + +#: backend/hp-option.c:3094 +#, no-c-format +msgid "NTSC Gray" +msgstr "NTSC Gris" + +#: backend/hp-option.c:3095 +#, no-c-format +msgid "XPA Gray" +msgstr "Adaptador de transparencias gris" + +#: backend/hp-option.c:3147 +#, no-c-format +msgid "Slow" +msgstr "Lento" + +#: backend/hp-option.c:3148 backend/hp-option.c:3255 +#: backend/kvs40xx_opt.c:230 backend/matsushita.c:244 backend/mustek.c:149 +#: backend/plustek.c:234 backend/plustek_pp.c:203 backend/u12.c:155 +#, no-c-format +msgid "Normal" +msgstr "Normal" + +#: backend/hp-option.c:3149 +#, no-c-format +msgid "Fast" +msgstr "Rápido" + +#: backend/hp-option.c:3150 +#, no-c-format +msgid "Extra Fast" +msgstr "Muy rápido" + +#: backend/hp-option.c:3163 +#, no-c-format +msgid "2-pixel" +msgstr "2-píxeles" + +#: backend/hp-option.c:3164 +#, no-c-format +msgid "4-pixel" +msgstr "4-píxeles" + +#: backend/hp-option.c:3165 +#, no-c-format +msgid "8-pixel" +msgstr "8-píxeles" + +#: backend/hp-option.c:3176 +#, no-c-format +msgid "Print" +msgstr "Imprimir" + +#: backend/hp-option.c:3177 backend/hp3900_sane.c:427 +#: backend/hp3900_sane.c:1019 +#, no-c-format +msgid "Slide" +msgstr "Diapositiva" + +#: backend/hp-option.c:3178 +#, no-c-format +msgid "Film-strip" +msgstr "Tira de película" + +#: backend/hp-option.c:3256 backend/hp5590.c:93 +#, no-c-format +msgid "ADF" +msgstr "Alimentador automático de documentos (ADF)" + +#: backend/hp-option.c:3257 +#, no-c-format +msgid "XPA" +msgstr "Adaptador de transparencias (XPA)" + +#: backend/hp-option.c:3331 backend/hp-option.c:3344 +#, no-c-format +msgid "Conditional" +msgstr "Condicional" + +#: backend/hp-option.c:3417 +#, no-c-format +msgid "Experiment" +msgstr "Experimento" + +#: backend/hp-option.h:60 +#, no-c-format +msgid "Sharpening" +msgstr "Nitidez" + +#: backend/hp-option.h:61 +#, no-c-format +msgid "Set sharpening value." +msgstr "Ajustar el valor de nitidez." + +#: backend/hp-option.h:66 +#, no-c-format +msgid "Auto Threshold" +msgstr "Umbral automático" + +#: backend/hp-option.h:68 +#, no-c-format +msgid "Enable automatic determination of threshold for line-art scans." +msgstr "" +"Activar la determinación automática de umbral para escaneos como línea " +"de arte." + +#: backend/hp-option.h:74 +#, no-c-format +msgid "Select smoothing filter." +msgstr "Seleccionar filtro de suavizado." + +#: backend/hp-option.h:79 +#, no-c-format +msgid "Unload media after scan" +msgstr "Descargar soporte después de escanear" + +#: backend/hp-option.h:80 +#, no-c-format +msgid "Unloads the media after a scan." +msgstr "Descargar los soportes después de escanear." + +#: backend/hp-option.h:85 +#, no-c-format +msgid "Change document" +msgstr "Cambiar documento" + +#: backend/hp-option.h:86 +#, no-c-format +msgid "Change Document." +msgstr "Cambiar documento." + +#: backend/hp-option.h:91 +#, no-c-format +msgid "Unload" +msgstr "Descargar" + +#: backend/hp-option.h:92 +#, no-c-format +msgid "Unload Document." +msgstr "Descargar documento" + +#: backend/hp-option.h:98 +#, no-c-format +msgid "Start calibration process." +msgstr "Iniciar proceso de calibración" + +#: backend/hp-option.h:103 +#, no-c-format +msgid "Media" +msgstr "Soporte" + +#: backend/hp-option.h:104 +#, no-c-format +msgid "Set type of media." +msgstr "Ajustar tipo de soporte." + +#: backend/hp-option.h:109 +#, no-c-format +msgid "Exposure time" +msgstr "Tiempo de exposición" + +#: backend/hp-option.h:111 +#, no-c-format +msgid "" +"A longer exposure time lets the scanner collect more light. Suggested " +"use is 175% for prints, 150% for normal slides and \"Negative\" for " +"negative film. For dark (underexposed) images you can increase this " +"value." +msgstr "" +"Una exposición prolongada permite al escáner recoger más luz. Se sugiere " +"usar 175% para impresiones, 150% para diapositivas normales y «Negativo» " +"para película en negativo. Para imágenes oscuras (subexpuestas) puede " +"incrementar este valor." + +#: backend/hp-option.h:119 backend/hp-option.h:126 +#, no-c-format +msgid "Color Matrix" +msgstr "Matriz de color" + +#: backend/hp-option.h:121 +#, fuzzy, no-c-format +msgid "Set the scanner's color matrix." +msgstr "Ajustar la matriz de color del escáner." + +#: backend/hp-option.h:127 +#, no-c-format +msgid "Custom color matrix." +msgstr "Matriz de color personalizada." + +#: backend/hp-option.h:132 +#, no-c-format +msgid "Mono Color Matrix" +msgstr "Matriz monocromo" + +#: backend/hp-option.h:133 +#, no-c-format +msgid "Custom color matrix for grayscale scans." +msgstr "Matriz de color personalizada para escáneres en escala de grises." + +#: backend/hp-option.h:138 +#, no-c-format +msgid "Mirror horizontal" +msgstr "Inversión horizontal" + +#: backend/hp-option.h:139 +#, no-c-format +msgid "Mirror image horizontally." +msgstr "Invertir la imagen horizontalmente." + +#: backend/hp-option.h:144 +#, no-c-format +msgid "Mirror vertical" +msgstr "Inversión vertical" + +#: backend/hp-option.h:145 +#, no-c-format +msgid "Mirror image vertically." +msgstr "Invertir la imagen verticalmente." + +#: backend/hp-option.h:150 +#, no-c-format +msgid "Update options" +msgstr "Actualizar opciones" + +#: backend/hp-option.h:151 +#, no-c-format +msgid "Update options." +msgstr "Actualizar opciones." + +#: backend/hp-option.h:156 +#, no-c-format +msgid "8 bit output" +msgstr "Salida de 8 bits" + +#: backend/hp-option.h:158 +#, no-c-format +msgid "Use bit depth greater eight internally, but output only eight bits." +msgstr "" +"Usar bit de profundidad mayor de ocho internamente, pero en la salida " +"usar sólo ocho bits." + +#: backend/hp-option.h:164 +#, no-c-format +msgid "Front button wait" +msgstr "Esperar botón frontal" + +#: backend/hp-option.h:165 +#, no-c-format +msgid "Wait to scan for front-panel button push." +msgstr "Esperar a que se presione en el botón frontal para escanear." + +#: backend/hp-option.h:172 +#, no-c-format +msgid "Shut off lamp" +msgstr "Apagar lámpara" + +#: backend/hp-option.h:173 +#, no-c-format +msgid "Shut off scanner lamp." +msgstr "Apagar la lámpara del escáner." + #: backend/hp3500.c:1020 #, no-c-format msgid "Geometry Group" @@ -3344,12 +3672,6 @@ msgstr "Grupo de geometría" msgid "Scan Mode Group" msgstr "Grupo de modo de escaneo" -#: backend/hp3900_sane.c:427 backend/hp3900_sane.c:1019 -#: backend/hp-option.c:3177 -#, no-c-format -msgid "Slide" -msgstr "Diapositiva" - #: backend/hp3900_sane.c:1405 #, no-c-format msgid "Scanner model" @@ -3553,11 +3875,6 @@ msgstr "Enciende o apaga la lámpara" msgid "Calibrates for black and white level." msgstr "Calibrar el nivel de blanco y negro." -#: backend/hp5590.c:93 backend/hp-option.c:3256 -#, no-c-format -msgid "ADF" -msgstr "Alimentador automático de documentos (ADF)" - #: backend/hp5590.c:95 #, no-c-format msgid "TMA Slides" @@ -3669,301 +3986,6 @@ msgid "" "r*65536+256*g+b or gray value (default=violet or gray)" msgstr "" -#: backend/hp-option.c:2987 -#, no-c-format -msgid "Advanced Options" -msgstr "Opciones avanzadas" - -#: backend/hp-option.c:3044 -#, no-c-format -msgid "Coarse" -msgstr "Gruesa" - -#: backend/hp-option.c:3045 -#, no-c-format -msgid "Fine" -msgstr "Fina" - -#: backend/hp-option.c:3046 -#, no-c-format -msgid "Bayer" -msgstr "Bayer" - -#: backend/hp-option.c:3049 backend/hp-option.c:3100 -#, no-c-format -msgid "Custom" -msgstr "Personalizado" - -#: backend/hp-option.c:3090 backend/hp-option.c:3146 -#: backend/hp-option.c:3161 -#, no-c-format -msgid "Auto" -msgstr "Auto" - -#: backend/hp-option.c:3091 -#, no-c-format -msgid "NTSC RGB" -msgstr "NTSC RGB" - -#: backend/hp-option.c:3092 -#, no-c-format -msgid "XPA RGB" -msgstr "Adaptador de transparencias RGB" - -#: backend/hp-option.c:3093 -#, no-c-format -msgid "Pass-through" -msgstr "A través" - -#: backend/hp-option.c:3094 -#, no-c-format -msgid "NTSC Gray" -msgstr "NTSC Gris" - -#: backend/hp-option.c:3095 -#, no-c-format -msgid "XPA Gray" -msgstr "Adaptador de transparencias gris" - -#: backend/hp-option.c:3147 -#, no-c-format -msgid "Slow" -msgstr "Lento" - -#: backend/hp-option.c:3148 backend/hp-option.c:3255 -#: backend/kvs40xx_opt.c:230 backend/matsushita.c:244 backend/mustek.c:149 -#: backend/plustek.c:234 backend/plustek_pp.c:203 backend/u12.c:155 -#, no-c-format -msgid "Normal" -msgstr "Normal" - -#: backend/hp-option.c:3149 -#, no-c-format -msgid "Fast" -msgstr "Rápido" - -#: backend/hp-option.c:3150 -#, no-c-format -msgid "Extra Fast" -msgstr "Muy rápido" - -#: backend/hp-option.c:3163 -#, no-c-format -msgid "2-pixel" -msgstr "2-píxeles" - -#: backend/hp-option.c:3164 -#, no-c-format -msgid "4-pixel" -msgstr "4-píxeles" - -#: backend/hp-option.c:3165 -#, no-c-format -msgid "8-pixel" -msgstr "8-píxeles" - -#: backend/hp-option.c:3176 -#, no-c-format -msgid "Print" -msgstr "Imprimir" - -#: backend/hp-option.c:3178 -#, no-c-format -msgid "Film-strip" -msgstr "Tira de película" - -#: backend/hp-option.c:3257 -#, no-c-format -msgid "XPA" -msgstr "Adaptador de transparencias (XPA)" - -#: backend/hp-option.c:3331 backend/hp-option.c:3344 -#, no-c-format -msgid "Conditional" -msgstr "Condicional" - -#: backend/hp-option.c:3417 -#, no-c-format -msgid "Experiment" -msgstr "Experimento" - -#: backend/hp-option.h:60 -#, no-c-format -msgid "Sharpening" -msgstr "Nitidez" - -#: backend/hp-option.h:61 -#, no-c-format -msgid "Set sharpening value." -msgstr "Ajustar el valor de nitidez." - -#: backend/hp-option.h:66 -#, no-c-format -msgid "Auto Threshold" -msgstr "Umbral automático" - -#: backend/hp-option.h:68 -#, no-c-format -msgid "Enable automatic determination of threshold for line-art scans." -msgstr "" -"Activar la determinación automática de umbral para escaneos como línea " -"de arte." - -#: backend/hp-option.h:74 -#, no-c-format -msgid "Select smoothing filter." -msgstr "Seleccionar filtro de suavizado." - -#: backend/hp-option.h:79 -#, no-c-format -msgid "Unload media after scan" -msgstr "Descargar soporte después de escanear" - -#: backend/hp-option.h:80 -#, no-c-format -msgid "Unloads the media after a scan." -msgstr "Descargar los soportes después de escanear." - -#: backend/hp-option.h:85 -#, no-c-format -msgid "Change document" -msgstr "Cambiar documento" - -#: backend/hp-option.h:86 -#, no-c-format -msgid "Change Document." -msgstr "Cambiar documento." - -#: backend/hp-option.h:91 -#, no-c-format -msgid "Unload" -msgstr "Descargar" - -#: backend/hp-option.h:92 -#, no-c-format -msgid "Unload Document." -msgstr "Descargar documento" - -#: backend/hp-option.h:98 -#, no-c-format -msgid "Start calibration process." -msgstr "Iniciar proceso de calibración" - -#: backend/hp-option.h:103 -#, no-c-format -msgid "Media" -msgstr "Soporte" - -#: backend/hp-option.h:104 -#, no-c-format -msgid "Set type of media." -msgstr "Ajustar tipo de soporte." - -#: backend/hp-option.h:109 -#, no-c-format -msgid "Exposure time" -msgstr "Tiempo de exposición" - -#: backend/hp-option.h:111 -#, no-c-format -msgid "" -"A longer exposure time lets the scanner collect more light. Suggested " -"use is 175% for prints, 150% for normal slides and \"Negative\" for " -"negative film. For dark (underexposed) images you can increase this " -"value." -msgstr "" -"Una exposición prolongada permite al escáner recoger más luz. Se sugiere " -"usar 175% para impresiones, 150% para diapositivas normales y «Negativo» " -"para película en negativo. Para imágenes oscuras (subexpuestas) puede " -"incrementar este valor." - -#: backend/hp-option.h:119 backend/hp-option.h:126 -#, no-c-format -msgid "Color Matrix" -msgstr "Matriz de color" - -#: backend/hp-option.h:121 -#, fuzzy, no-c-format -msgid "Set the scanner's color matrix." -msgstr "Ajustar la matriz de color del escáner." - -#: backend/hp-option.h:127 -#, no-c-format -msgid "Custom color matrix." -msgstr "Matriz de color personalizada." - -#: backend/hp-option.h:132 -#, no-c-format -msgid "Mono Color Matrix" -msgstr "Matriz monocromo" - -#: backend/hp-option.h:133 -#, no-c-format -msgid "Custom color matrix for grayscale scans." -msgstr "Matriz de color personalizada para escáneres en escala de grises." - -#: backend/hp-option.h:138 -#, no-c-format -msgid "Mirror horizontal" -msgstr "Inversión horizontal" - -#: backend/hp-option.h:139 -#, no-c-format -msgid "Mirror image horizontally." -msgstr "Invertir la imagen horizontalmente." - -#: backend/hp-option.h:144 -#, no-c-format -msgid "Mirror vertical" -msgstr "Inversión vertical" - -#: backend/hp-option.h:145 -#, no-c-format -msgid "Mirror image vertically." -msgstr "Invertir la imagen verticalmente." - -#: backend/hp-option.h:150 -#, no-c-format -msgid "Update options" -msgstr "Actualizar opciones" - -#: backend/hp-option.h:151 -#, no-c-format -msgid "Update options." -msgstr "Actualizar opciones." - -#: backend/hp-option.h:156 -#, no-c-format -msgid "8 bit output" -msgstr "Salida de 8 bits" - -#: backend/hp-option.h:158 -#, no-c-format -msgid "Use bit depth greater eight internally, but output only eight bits." -msgstr "" -"Usar bit de profundidad mayor de ocho internamente, pero en la salida " -"usar sólo ocho bits." - -#: backend/hp-option.h:164 -#, no-c-format -msgid "Front button wait" -msgstr "Esperar botón frontal" - -#: backend/hp-option.h:165 -#, no-c-format -msgid "Wait to scan for front-panel button push." -msgstr "Esperar a que se presione en el botón frontal para escanear." - -#: backend/hp-option.h:172 -#, no-c-format -msgid "Shut off lamp" -msgstr "Apagar lámpara" - -#: backend/hp-option.h:173 -#, no-c-format -msgid "Shut off scanner lamp." -msgstr "Apagar la lámpara del escáner." - #: backend/kvs1025.h:51 backend/kvs20xx_opt.c:295 backend/kvs40xx_opt.c:516 #: backend/matsushita.h:219 #, no-c-format @@ -4062,7 +4084,7 @@ msgid "single" msgstr "" #: backend/kvs1025_opt.c:73 backend/kvs20xx.c:462 backend/kvs20xx_opt.c:56 -#: backend/kvs40xx.c:704 backend/kvs40xx.c:722 backend/kvs40xx_opt.c:102 +#: backend/kvs40xx.c:705 backend/kvs40xx.c:723 backend/kvs40xx_opt.c:102 #: backend/kvs40xx_opt.c:1087 #, fuzzy, no-c-format msgid "continuous" @@ -4361,7 +4383,7 @@ msgstr "Ajusta el resalte de la imagen" #: backend/kvs1025_opt.c:807 backend/kvs1025_opt.c:808 #: backend/matsushita.c:1300 backend/matsushita.c:1301 -#: backend/pixma_sane_options.c:112 +#: backend/pixma/pixma_sane_options.c:112 #, no-c-format msgid "Gamma" msgstr "Gamma" @@ -4651,52 +4673,52 @@ msgstr "8x8 Bayer" msgid "8x8 Vertical Line" msgstr "8x8 Línea vertical" -#: backend/lexmark.c:273 backend/umax_pp.c:711 +#: backend/lexmark.c:273 backend/umax_pp.c:705 #, no-c-format msgid "Gain" msgstr "Ganancia" -#: backend/lexmark.c:274 backend/umax_pp.c:712 +#: backend/lexmark.c:274 backend/umax_pp.c:706 #, no-c-format msgid "Color channels gain settings" msgstr "Ajustes de ganancia de los canales de color" -#: backend/lexmark.c:283 backend/umax_pp.c:719 +#: backend/lexmark.c:283 backend/umax_pp.c:713 #, no-c-format msgid "Gray gain" msgstr "Ganancia de gris" -#: backend/lexmark.c:284 backend/umax_pp.c:720 +#: backend/lexmark.c:284 backend/umax_pp.c:714 #, no-c-format msgid "Sets gray channel gain" msgstr "Ajusta la ganancia del canal de gris" -#: backend/lexmark.c:297 backend/plustek.c:1001 backend/umax_pp.c:731 +#: backend/lexmark.c:297 backend/plustek.c:1001 backend/umax_pp.c:725 #, no-c-format msgid "Red gain" msgstr "Ganancia de rojo" -#: backend/lexmark.c:298 backend/umax_pp.c:732 +#: backend/lexmark.c:298 backend/umax_pp.c:726 #, no-c-format msgid "Sets red channel gain" msgstr "Ajusta la ganancia del canal de rojo" -#: backend/lexmark.c:311 backend/plustek.c:1017 backend/umax_pp.c:743 +#: backend/lexmark.c:311 backend/plustek.c:1017 backend/umax_pp.c:737 #, no-c-format msgid "Green gain" msgstr "Ganancia de Verde" -#: backend/lexmark.c:312 backend/umax_pp.c:744 +#: backend/lexmark.c:312 backend/umax_pp.c:738 #, no-c-format msgid "Sets green channel gain" msgstr "Ajusta la ganancia del canal de verde" -#: backend/lexmark.c:325 backend/plustek.c:1033 backend/umax_pp.c:755 +#: backend/lexmark.c:325 backend/plustek.c:1033 backend/umax_pp.c:749 #, no-c-format msgid "Blue gain" msgstr "Ganancia de Azul" -#: backend/lexmark.c:326 backend/umax_pp.c:756 +#: backend/lexmark.c:326 backend/umax_pp.c:750 #, no-c-format msgid "Sets blue channel gain" msgstr "Ajusta la ganancia del canal de azul" @@ -4782,7 +4804,7 @@ msgstr "Una página" msgid "All pages" msgstr "Todas las páginas" -#: backend/matsushita.c:1034 backend/plustek.c:1333 +#: backend/matsushita.c:1034 backend/p5_device.c:8 backend/plustek.c:1333 #, no-c-format msgid "sheetfed scanner" msgstr "escáner con cargador automático" @@ -5293,39 +5315,44 @@ msgstr "" "Calentar hasta que el brillo de la lámpara sea constante en vez de " "esperar por los 40 segundos de calentamiento." -#: backend/pixma.c:397 +#: backend/p5.c:1926 +#, fuzzy, no-c-format +msgid "Need calibration" +msgstr "Limpiar la calibración" + +#: backend/pixma/pixma.c:397 #, fuzzy, no-c-format msgid "Negative color" msgstr "Película en negativo" -#: backend/pixma.c:402 +#: backend/pixma/pixma.c:402 #, fuzzy, no-c-format msgid "Negative gray" msgstr "Negativo" -#: backend/pixma.c:415 +#: backend/pixma/pixma.c:415 #, fuzzy, no-c-format msgid "48 bits color" msgstr "Color fino" -#: backend/pixma.c:420 +#: backend/pixma/pixma.c:420 #, no-c-format msgid "16 bits gray" msgstr "" -#: backend/pixma_sane_options.c:84 +#: backend/pixma/pixma_sane_options.c:84 #, no-c-format msgid "" "Selects the scan source (such as a document-feeder). Set source before " "mode and resolution. Resets mode and resolution to auto values." msgstr "" -#: backend/pixma_sane_options.c:98 +#: backend/pixma/pixma_sane_options.c:98 #, no-c-format msgid "Button-controlled scan" msgstr "Botón de control de escaneo" -#: backend/pixma_sane_options.c:99 +#: backend/pixma/pixma_sane_options.c:99 #, no-c-format msgid "" "When enabled, scan process will not start immediately. To proceed, press " @@ -5336,37 +5363,37 @@ msgstr "" "proceder, haga clic en el botón \"SCAN\" (para MP150) o \"COLOR\" (para " "otros modelos). Para cancelar, haga clic en el botón \"GRAY\"." -#: backend/pixma_sane_options.c:232 +#: backend/pixma/pixma_sane_options.c:232 #, no-c-format msgid "Update button state" msgstr "Actualizar estado del botón" -#: backend/pixma_sane_options.c:244 +#: backend/pixma/pixma_sane_options.c:244 #, no-c-format msgid "Button 1" msgstr "Botón 1" -#: backend/pixma_sane_options.c:258 +#: backend/pixma/pixma_sane_options.c:258 #, no-c-format msgid "Button 2" msgstr "Botón 2" -#: backend/pixma_sane_options.c:272 +#: backend/pixma/pixma_sane_options.c:272 #, no-c-format msgid "Type of original to scan" msgstr "" -#: backend/pixma_sane_options.c:286 +#: backend/pixma/pixma_sane_options.c:286 #, no-c-format msgid "Target operation type" msgstr "" -#: backend/pixma_sane_options.c:348 +#: backend/pixma/pixma_sane_options.c:348 #, no-c-format msgid "ADF Waiting Time" msgstr "" -#: backend/pixma_sane_options.c:349 +#: backend/pixma/pixma_sane_options.c:349 #, no-c-format msgid "" "When set, the scanner waits upto the specified time in seconds for a new " @@ -5458,7 +5485,7 @@ msgstr "Interfaz analógica (AFE)" msgid "Red gain value of the AFE" msgstr "Valor de ganancia de rojo en el AFE" -#: backend/plustek.c:1009 backend/umax_pp.c:788 +#: backend/plustek.c:1009 backend/umax_pp.c:782 #, no-c-format msgid "Red offset" msgstr "Desviación rojo" @@ -5735,7 +5762,7 @@ msgstr "" msgid "This option reflects the status of a scanner button." msgstr "Esta opción refleja el estado de los botones del escáner" -#: backend/rts8891.c:2840 backend/umax.c:5795 backend/umax_pp.c:635 +#: backend/rts8891.c:2840 backend/umax.c:5795 backend/umax_pp.c:629 #, no-c-format msgid "Lamp on" msgstr "Encender lámpara" @@ -5745,12 +5772,12 @@ msgstr "Encender lámpara" msgid "Turn on scanner lamp" msgstr "Enciende la lámpara del escáner" -#: backend/rts8891.c:2851 backend/umax1220u.c:248 backend/umax.c:5812 +#: backend/rts8891.c:2851 backend/umax.c:5812 backend/umax1220u.c:248 #, no-c-format msgid "Lamp off" msgstr "Apagar lámpara" -#: backend/rts8891.c:2852 backend/umax1220u.c:249 backend/umax.c:5813 +#: backend/rts8891.c:2852 backend/umax.c:5813 backend/umax1220u.c:249 #, no-c-format msgid "Turn off scanner lamp" msgstr "Apaga la lámpara del escáner" @@ -6562,52 +6589,52 @@ msgstr "Modo de calibración" msgid "Define calibration mode" msgstr "Define el modo de calibración" -#: backend/umax_pp.c:636 +#: backend/umax_pp.c:630 #, no-c-format msgid "Sets lamp on/off" msgstr "Enciende/apaga la lámpara" -#: backend/umax_pp.c:645 +#: backend/umax_pp.c:639 #, no-c-format msgid "UTA on" msgstr "UTA Activado" -#: backend/umax_pp.c:646 +#: backend/umax_pp.c:640 #, no-c-format msgid "Sets UTA on/off" msgstr "Ajusta el encendido/apagado UTA" -#: backend/umax_pp.c:767 +#: backend/umax_pp.c:761 #, no-c-format msgid "Offset" msgstr "Desplazamiento" -#: backend/umax_pp.c:769 +#: backend/umax_pp.c:763 #, no-c-format msgid "Color channels offset settings" msgstr "Ajustes del desplazamiento de los canales de color" -#: backend/umax_pp.c:776 +#: backend/umax_pp.c:770 #, no-c-format msgid "Gray offset" msgstr "Desplazamiento de gris" -#: backend/umax_pp.c:777 +#: backend/umax_pp.c:771 #, no-c-format msgid "Sets gray channel offset" msgstr "Ajusta el desplazamiento del canal de gris" -#: backend/umax_pp.c:789 +#: backend/umax_pp.c:783 #, no-c-format msgid "Sets red channel offset" msgstr "Ajusta el desplazamiento del canal de rojo" -#: backend/umax_pp.c:801 +#: backend/umax_pp.c:795 #, no-c-format msgid "Sets green channel offset" msgstr "Ajusta el desplazamiento del canal de verde" -#: backend/umax_pp.c:813 +#: backend/umax_pp.c:807 #, no-c-format msgid "Sets blue channel offset" msgstr "Ajusta el desplazamiento del canal de azul" diff --git a/po/fi.po b/po/fi.po index c4da433ab..27117bfea 100644 --- a/po/fi.po +++ b/po/fi.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: sane-backends 1.0.11\n" "Report-Msgid-Bugs-To: sane-devel@alioth-lists.debian.net\n" -"POT-Creation-Date: 2019-10-12 17:41+0300\n" +"POT-Creation-Date: 2020-01-12 07:09+0000\n" "PO-Revision-Date: 2007-12-17 23:00+0100\n" "Last-Translator: Harri Järvi \n" "Language-Team: Debian l10n Finnish \n" @@ -66,23 +66,23 @@ msgid "Standard" msgstr "Général" #: include/sane/saneopts.h:157 backend/artec_eplus48u.c:2884 -#: backend/epson.c:3298 backend/epson2.c:1290 -#: backend/genesys/genesys.cpp:3976 backend/gt68xx.c:696 -#: backend/hp3500.c:1019 backend/hp-option.c:3300 backend/kvs1025_opt.c:639 +#: backend/epson.c:3298 backend/epson2.c:1290 backend/epsonds.c:677 +#: backend/genesys/genesys.cpp:4034 backend/gt68xx.c:696 +#: backend/hp-option.c:3300 backend/hp3500.c:1019 backend/kvs1025_opt.c:639 #: backend/kvs20xx_opt.c:285 backend/kvs40xx_opt.c:506 backend/leo.c:823 #: backend/lexmark.c:199 backend/ma1509.c:551 backend/matsushita.c:1135 #: backend/microtek2.h:599 backend/mustek.c:4373 backend/mustek_usb.c:301 -#: backend/mustek_usb2.c:465 backend/pixma_sane_options.c:160 +#: backend/mustek_usb2.c:465 backend/pixma/pixma_sane_options.c:160 #: backend/plustek.c:808 backend/plustek_pp.c:747 backend/sceptre.c:702 #: backend/snapscan-options.c:550 backend/teco1.c:1095 backend/teco2.c:1910 #: backend/teco3.c:920 backend/test.c:647 backend/u12.c:546 -#: backend/umax.c:5176 backend/umax_pp.c:576 +#: backend/umax.c:5176 backend/umax_pp.c:570 #, no-c-format msgid "Geometry" msgstr "Aire de numérisation" #: include/sane/saneopts.h:158 backend/artec_eplus48u.c:2805 -#: backend/canon.c:1493 backend/genesys/genesys.cpp:4035 +#: backend/canon.c:1493 backend/genesys/genesys.cpp:4077 #: backend/gt68xx.c:665 backend/hp-option.c:2956 backend/kvs1025_opt.c:703 #: backend/leo.c:871 backend/ma1509.c:599 backend/matsushita.c:1189 #: backend/microtek2.h:600 backend/mustek.c:4421 backend/mustek_usb.c:349 @@ -90,7 +90,7 @@ msgstr "Aire de numérisation" #: backend/plustek_pp.c:793 backend/sceptre.c:750 #: backend/snapscan-options.c:617 backend/stv680.c:1067 #: backend/teco1.c:1143 backend/teco2.c:1958 backend/teco3.c:968 -#: backend/u12.c:592 backend/umax.c:5226 backend/umax_pp.c:625 +#: backend/u12.c:592 backend/umax.c:5226 backend/umax_pp.c:619 #, no-c-format msgid "Enhancement" msgstr "Réglages fins" @@ -124,7 +124,7 @@ msgid "Bit depth" msgstr "Profondeur" #: include/sane/saneopts.h:165 backend/canon.c:1140 backend/leo.c:781 -#: backend/pixma_sane_options.c:47 +#: backend/pixma/pixma_sane_options.c:47 #, no-c-format msgid "Scan mode" msgstr "Mode de numérisation" @@ -165,7 +165,7 @@ msgid "Bottom-right y" msgstr "Y bas-droit" #: include/sane/saneopts.h:173 backend/canon.c:1216 -#: backend/pixma_sane_options.c:300 +#: backend/pixma/pixma_sane_options.c:300 #, no-c-format msgid "Scan resolution" msgstr "Echantillonnage" @@ -320,7 +320,7 @@ msgstr "Nom de fichier" msgid "Halftone pattern size" msgstr "Taille du motif demi-teinte" -#: include/sane/saneopts.h:204 backend/fujitsu.c:3233 +#: include/sane/saneopts.h:204 backend/fujitsu.c:3237 #, no-c-format msgid "Halftone pattern" msgstr "Motif demi-teinte" @@ -330,10 +330,10 @@ msgstr "Motif demi-teinte" msgid "Bind X and Y resolution" msgstr "Lier les échantillonnage X et Y" -#: include/sane/saneopts.h:206 backend/hp3900_sane.c:428 -#: backend/hp3900_sane.c:1021 backend/hp3900_sane.c:1421 -#: backend/hp-option.c:3238 backend/mustek_usb2.c:121 backend/plustek.c:236 -#: backend/plustek_pp.c:205 backend/u12.c:157 +#: include/sane/saneopts.h:206 backend/hp-option.c:3238 +#: backend/hp3900_sane.c:428 backend/hp3900_sane.c:1021 +#: backend/hp3900_sane.c:1421 backend/mustek_usb2.c:121 +#: backend/plustek.c:236 backend/plustek_pp.c:205 backend/u12.c:157 #, no-c-format msgid "Negative" msgstr "Négatif" @@ -1094,78 +1094,38 @@ msgstr "" "La numérisation recto-verso permet de numériser les deux cotés d'un " "document" -#: backend/canon630u.c:159 +#: backend/canon-sane.c:674 backend/canon.c:171 #, no-c-format -msgid "Calibrate Scanner" -msgstr "Calibrer le scanner" +msgid "Correction according to transparency ratio" +msgstr "Correction en fonction du rapport de transparence" -#: backend/canon630u.c:160 +#: backend/canon-sane.c:680 backend/canon.c:170 #, no-c-format -msgid "Force scanner calibration before scan" -msgstr "Forcer la calibration du scanner avant la numérisation" +msgid "Correction according to film type" +msgstr "Correction en fonction du support" -#: backend/canon630u.c:259 backend/umax1220u.c:208 -#, no-c-format -msgid "Grayscale scan" -msgstr "Niveaux de gris" - -#: backend/canon630u.c:260 backend/umax1220u.c:209 -#, no-c-format -msgid "Do a grayscale rather than color scan" -msgstr "Effectue une numérisation en niveaux de gris plutôt qu'en couleurs" - -#: backend/canon630u.c:306 -#, no-c-format -msgid "Analog Gain" -msgstr "Gain analogique" - -#: backend/canon630u.c:307 -#, no-c-format -msgid "Increase or decrease the analog gain of the CCD array" -msgstr "Augmenter/diminuer le gain analogique du capteur CCD" - -#: backend/canon630u.c:347 backend/epson.h:68 backend/epson2.h:67 -#, no-c-format -msgid "Gamma Correction" -msgstr "Correction gamma" - -#: backend/canon630u.c:348 -#, no-c-format -msgid "Selects the gamma corrected transfer curve" -msgstr "Sélectionne la courbe de correction gamma" - -#: backend/canon.c:149 backend/canon-sane.c:1318 -#, no-c-format -msgid "Raw" -msgstr "Brut" - -#: backend/canon.c:157 backend/canon-sane.c:732 backend/canon-sane.c:940 +#: backend/canon-sane.c:732 backend/canon-sane.c:940 #: backend/canon-sane.c:1076 backend/canon-sane.c:1314 -#: backend/canon-sane.c:1494 backend/canon-sane.c:1643 +#: backend/canon-sane.c:1494 backend/canon-sane.c:1643 backend/canon.c:157 #, no-c-format msgid "Fine color" msgstr "Couleurs précises" +#: backend/canon-sane.c:776 backend/canon.c:176 +#, no-c-format +msgid "Negatives" +msgstr "Négatifs" + +#: backend/canon-sane.c:1318 backend/canon.c:149 +#, no-c-format +msgid "Raw" +msgstr "Brut" + #: backend/canon.c:169 #, no-c-format msgid "No transparency correction" msgstr "Pas de correction de transparence" -#: backend/canon.c:170 backend/canon-sane.c:680 -#, no-c-format -msgid "Correction according to film type" -msgstr "Correction en fonction du support" - -#: backend/canon.c:171 backend/canon-sane.c:674 -#, no-c-format -msgid "Correction according to transparency ratio" -msgstr "Correction en fonction du rapport de transparence" - -#: backend/canon.c:176 backend/canon-sane.c:776 -#, no-c-format -msgid "Negatives" -msgstr "Négatifs" - #: backend/canon.c:176 #, no-c-format msgid "Slides" @@ -1591,94 +1551,137 @@ msgstr "Type de film" msgid "Select the film type" msgstr "Sélectionne le type de film" -#: backend/canon_dr.c:411 backend/epjitsu.c:233 backend/epson.c:501 -#: backend/epson2.c:115 backend/fujitsu.c:675 backend/gt68xx.c:148 +#: backend/canon630u.c:159 +#, no-c-format +msgid "Calibrate Scanner" +msgstr "Calibrer le scanner" + +#: backend/canon630u.c:160 +#, no-c-format +msgid "Force scanner calibration before scan" +msgstr "Forcer la calibration du scanner avant la numérisation" + +#: backend/canon630u.c:259 backend/umax1220u.c:208 +#, no-c-format +msgid "Grayscale scan" +msgstr "Niveaux de gris" + +#: backend/canon630u.c:260 backend/umax1220u.c:209 +#, no-c-format +msgid "Do a grayscale rather than color scan" +msgstr "Effectue une numérisation en niveaux de gris plutôt qu'en couleurs" + +#: backend/canon630u.c:306 +#, no-c-format +msgid "Analog Gain" +msgstr "Gain analogique" + +#: backend/canon630u.c:307 +#, no-c-format +msgid "Increase or decrease the analog gain of the CCD array" +msgstr "Augmenter/diminuer le gain analogique du capteur CCD" + +#: backend/canon630u.c:347 backend/epson.h:68 backend/epson2.h:67 +#, no-c-format +msgid "Gamma Correction" +msgstr "Correction gamma" + +#: backend/canon630u.c:348 +#, no-c-format +msgid "Selects the gamma corrected transfer curve" +msgstr "Sélectionne la courbe de correction gamma" + +#: backend/canon_dr.c:413 backend/epjitsu.c:233 backend/epson.c:501 +#: backend/epson2-ops.c:101 backend/epson2.c:115 backend/epsonds-ops.c:32 +#: backend/epsonds.c:95 backend/epsonds.h:62 backend/fujitsu.c:677 +#: backend/genesys/genesys.h:78 backend/gt68xx.c:148 #: backend/hp3900_sane.c:418 backend/hp3900_sane.c:427 -#: backend/hp3900_sane.c:1017 backend/hp5590.c:92 backend/ma1509.c:108 -#: backend/magicolor.c:181 backend/mustek.c:156 backend/mustek.c:160 -#: backend/mustek.c:164 backend/pixma.c:920 backend/pixma_sane_options.c:92 -#: backend/snapscan-options.c:86 backend/test.c:192 backend/umax.c:181 +#: backend/hp3900_sane.c:1017 backend/hp5590.c:92 backend/kodakaio.c:617 +#: backend/ma1509.c:108 backend/magicolor.c:181 backend/mustek.c:156 +#: backend/mustek.c:160 backend/mustek.c:164 backend/pixma/pixma.c:920 +#: backend/pixma/pixma_sane_options.c:92 backend/snapscan-options.c:86 +#: backend/test.c:192 backend/umax.c:181 #, no-c-format msgid "Flatbed" msgstr "A plat" -#: backend/canon_dr.c:412 backend/epjitsu.c:234 backend/fujitsu.c:676 +#: backend/canon_dr.c:414 backend/epjitsu.c:234 backend/fujitsu.c:678 #: backend/kodak.c:140 #, no-c-format msgid "ADF Front" msgstr "Chargeur automatique de documents, recto" -#: backend/canon_dr.c:413 backend/epjitsu.c:235 backend/fujitsu.c:677 +#: backend/canon_dr.c:415 backend/epjitsu.c:235 backend/fujitsu.c:679 #: backend/kodak.c:141 #, no-c-format msgid "ADF Back" msgstr "Chargeur automatique de documents, verso" -#: backend/canon_dr.c:414 backend/epjitsu.c:236 backend/fujitsu.c:678 -#: backend/hp5590.c:94 backend/kodak.c:142 backend/pixma.c:931 +#: backend/canon_dr.c:416 backend/epjitsu.c:236 backend/fujitsu.c:680 +#: backend/hp5590.c:94 backend/kodak.c:142 backend/pixma/pixma.c:931 #, no-c-format msgid "ADF Duplex" msgstr "Chargeur automatique de documents, recto-verso" -#: backend/canon_dr.c:415 +#: backend/canon_dr.c:417 #, fuzzy, no-c-format msgid "Card Front" msgstr "Avant" -#: backend/canon_dr.c:416 +#: backend/canon_dr.c:418 #, fuzzy, no-c-format msgid "Card Back" msgstr "Arrière" -#: backend/canon_dr.c:417 +#: backend/canon_dr.c:419 #, fuzzy, no-c-format msgid "Card Duplex" msgstr "Recto-verso" -#: backend/canon_dr.c:424 backend/epson.c:599 backend/epson.c:3096 -#: backend/epson2.c:201 backend/fujitsu.c:695 -#: backend/genesys/genesys.cpp:99 backend/genesys/genesys.cpp:106 +#: backend/canon_dr.c:426 backend/epson.c:599 backend/epson.c:3096 +#: backend/epson2.c:201 backend/fujitsu.c:697 +#: backend/genesys/genesys.cpp:120 backend/genesys/genesys.cpp:127 #: backend/gt68xx_low.h:136 backend/hp-option.c:3096 #, no-c-format msgid "Red" msgstr "Rouge" -#: backend/canon_dr.c:425 backend/epson.c:600 backend/epson.c:3092 -#: backend/epson2.c:202 backend/fujitsu.c:696 -#: backend/genesys/genesys.cpp:100 backend/genesys/genesys.cpp:107 +#: backend/canon_dr.c:427 backend/epson.c:600 backend/epson.c:3092 +#: backend/epson2.c:202 backend/fujitsu.c:698 +#: backend/genesys/genesys.cpp:121 backend/genesys/genesys.cpp:128 #: backend/gt68xx_low.h:137 backend/hp-option.c:3097 #, no-c-format msgid "Green" msgstr "Vert" -#: backend/canon_dr.c:426 backend/epson.c:601 backend/epson.c:3100 -#: backend/epson2.c:203 backend/fujitsu.c:697 -#: backend/genesys/genesys.cpp:101 backend/genesys/genesys.cpp:108 +#: backend/canon_dr.c:428 backend/epson.c:601 backend/epson.c:3100 +#: backend/epson2.c:203 backend/fujitsu.c:699 +#: backend/genesys/genesys.cpp:122 backend/genesys/genesys.cpp:129 #: backend/gt68xx_low.h:138 backend/hp-option.c:3098 #, no-c-format msgid "Blue" msgstr "Bleu" -#: backend/canon_dr.c:427 +#: backend/canon_dr.c:429 #, no-c-format msgid "Enhance Red" msgstr "Augmente le rouge" -#: backend/canon_dr.c:428 +#: backend/canon_dr.c:430 #, no-c-format msgid "Enhance Green" msgstr "Augmente le vert" -#: backend/canon_dr.c:429 +#: backend/canon_dr.c:431 #, no-c-format msgid "Enhance Blue" msgstr "Augmente le bleu" -#: backend/canon_dr.c:431 backend/epson.c:556 backend/epson.c:564 +#: backend/canon_dr.c:433 backend/epson.c:556 backend/epson.c:564 #: backend/epson.c:576 backend/epson.c:598 backend/epson2.c:165 #: backend/epson2.c:173 backend/epson2.c:185 backend/epson2.c:200 -#: backend/epson2.c:214 backend/fujitsu.c:701 -#: backend/genesys/genesys.cpp:109 backend/leo.c:109 +#: backend/epson2.c:214 backend/fujitsu.c:703 +#: backend/genesys/genesys.cpp:130 backend/leo.c:109 #: backend/matsushita.c:138 backend/matsushita.c:159 #: backend/matsushita.c:191 backend/matsushita.c:213 #: backend/snapscan-options.c:91 @@ -1686,42 +1689,46 @@ msgstr "Augmente le bleu" msgid "None" msgstr "Aucun(e)" -#: backend/canon_dr.c:432 backend/fujitsu.c:702 +#: backend/canon_dr.c:434 backend/fujitsu.c:704 #, no-c-format msgid "JPEG" msgstr "JPEG" -#: backend/canon_dr.c:2477 backend/fujitsu.c:4113 -#: backend/genesys/genesys.cpp:4126 backend/kvs1025_opt.c:910 +#: backend/canon_dr.c:2479 backend/fujitsu.c:4117 +#: backend/genesys/genesys.cpp:4168 backend/kvs1025_opt.c:910 #, no-c-format msgid "Software blank skip percentage" msgstr "" -#: backend/canon_dr.c:2478 backend/fujitsu.c:4114 +#: backend/canon_dr.c:2480 backend/fujitsu.c:4118 #, no-c-format msgid "Request driver to discard pages with low percentage of dark pixels" msgstr "" -#: backend/epson.c:491 backend/epson2.c:108 backend/magicolor.c:174 +#: backend/epson.c:491 backend/epson2.c:108 backend/epsonds.c:88 +#: backend/kodakaio.c:611 backend/magicolor.c:174 #, no-c-format msgid "Simplex" msgstr "Recto" -#: backend/epson.c:492 backend/epson2.c:109 backend/kvs1025.h:50 -#: backend/kvs20xx_opt.c:204 backend/kvs40xx_opt.c:353 -#: backend/magicolor.c:175 backend/matsushita.h:218 +#: backend/epson.c:492 backend/epson2.c:109 backend/epsonds.c:89 +#: backend/kodakaio.c:612 backend/kvs1025.h:50 backend/kvs20xx_opt.c:204 +#: backend/kvs40xx_opt.c:353 backend/magicolor.c:175 +#: backend/matsushita.h:218 #, no-c-format msgid "Duplex" msgstr "Recto-verso" -#: backend/epson.c:502 backend/epson2.c:116 backend/pixma.c:937 +#: backend/epson.c:502 backend/epson2-ops.c:102 backend/epson2.c:116 +#: backend/epsonds-ops.c:33 backend/epsonds.h:63 backend/pixma/pixma.c:937 #, no-c-format msgid "Transparency Unit" msgstr "Adaptateur pour transparents" -#: backend/epson.c:503 backend/epson2.c:118 backend/magicolor.c:182 -#: backend/mustek.c:160 backend/pixma.c:925 backend/test.c:192 -#: backend/umax.c:183 +#: backend/epson.c:503 backend/epson2-ops.c:104 backend/epson2.c:118 +#: backend/epsonds-ops.c:34 backend/epsonds.c:96 backend/epsonds.h:64 +#: backend/kodakaio.c:618 backend/magicolor.c:182 backend/mustek.c:160 +#: backend/pixma/pixma.c:925 backend/test.c:192 backend/umax.c:183 #, no-c-format msgid "Automatic Document Feeder" msgstr "Chargeur automatique de document" @@ -1833,7 +1840,7 @@ msgstr "Imprimantes à jet d'encre" msgid "CRT monitors" msgstr "Moniteurs à tube cathodique" -#: backend/epson.c:656 backend/epson2.c:254 backend/fujitsu.c:685 +#: backend/epson.c:656 backend/epson2.c:254 backend/fujitsu.c:687 #: backend/hp-option.c:3229 backend/test.c:143 #, no-c-format msgid "Default" @@ -1897,8 +1904,8 @@ msgstr "A4" msgid "Max" msgstr "Max" -#: backend/epson.c:2813 backend/epson2.c:976 -#: backend/genesys/genesys.cpp:3893 backend/gt68xx.c:451 +#: backend/epson.c:2813 backend/epson2.c:976 backend/epsonds.c:629 +#: backend/genesys/genesys.cpp:3965 backend/gt68xx.c:451 #: backend/hp-option.c:2917 backend/kvs1025_opt.c:521 #: backend/kvs20xx_opt.c:171 backend/kvs40xx_opt.c:320 backend/ma1509.c:501 #: backend/matsushita.c:1084 backend/microtek2.h:598 backend/mustek.c:4215 @@ -2076,17 +2083,17 @@ msgstr "Définit le facteur de zoom utilisé par le scanner" msgid "Quick format" msgstr "Format rapide" -#: backend/epson.c:3360 backend/epson2.c:1340 +#: backend/epson.c:3360 backend/epson2.c:1340 backend/epsonds.c:726 #, no-c-format msgid "Optional equipment" msgstr "Equipement optionnel" -#: backend/epson.c:3431 backend/epson2.c:1393 +#: backend/epson.c:3431 backend/epson2.c:1393 backend/epsonds.c:742 #, no-c-format msgid "Eject" msgstr "Ejecter" -#: backend/epson.c:3432 backend/epson2.c:1394 +#: backend/epson.c:3432 backend/epson2.c:1394 backend/epsonds.c:743 #, no-c-format msgid "Eject the sheet in the ADF" msgstr "Ejecter la feuille du chargeur automatique" @@ -2101,12 +2108,14 @@ msgstr "Ejection automatique" msgid "Eject document after scanning" msgstr "Ejecte le document après la numérisation" -#: backend/epson.c:3457 backend/epson2.c:1416 backend/magicolor.c:2420 +#: backend/epson.c:3457 backend/epson2.c:1416 backend/epsonds.c:758 +#: backend/kodakaio.c:2855 backend/magicolor.c:2420 #, no-c-format msgid "ADF Mode" msgstr "Mode du chargeur automatique de documents" -#: backend/epson.c:3459 backend/epson2.c:1418 backend/magicolor.c:2422 +#: backend/epson.c:3459 backend/epson2.c:1418 backend/epsonds.c:760 +#: backend/kodakaio.c:2857 backend/magicolor.c:2422 #, no-c-format msgid "Selects the ADF mode (simplex/duplex)" msgstr "" @@ -2158,16 +2167,16 @@ msgstr "" "Aprés avoir envoyé la commande de numérisation, attendre l'appui du " "bouton avant de commencer la numérisation." -#: backend/epson2.c:102 backend/pixma.c:409 -#, no-c-format -msgid "Infrared" -msgstr "Infra-rouge" - -#: backend/epson2.c:117 +#: backend/epson2-ops.c:103 backend/epson2.c:117 #, no-c-format msgid "TPU8x10" msgstr "" +#: backend/epson2.c:102 backend/pixma/pixma.c:409 +#, no-c-format +msgid "Infrared" +msgstr "Infra-rouge" + #: backend/epson2.c:136 #, no-c-format msgid "Positive Slide" @@ -2188,495 +2197,515 @@ msgstr "Profil de température de couleurs interne" msgid "User defined CCT profile" msgstr "Profil de température de couleurs utilsateur" -#: backend/fujitsu.c:686 backend/hp-option.c:3330 backend/hp-option.c:3343 +#: backend/epsonds.c:750 +#, no-c-format +msgid "Load" +msgstr "" + +#: backend/epsonds.c:751 +#, fuzzy, no-c-format +msgid "Load a sheet in the ADF" +msgstr "Ejecter la feuille du chargeur automatique" + +#: backend/epsonds.c:771 +#, fuzzy, no-c-format +msgid "ADF Skew Correction" +msgstr "Pas de correction" + +#: backend/epsonds.c:773 +#, fuzzy, no-c-format +msgid "Enables ADF skew correction" +msgstr "Désactiver la correction gamma" + +#: backend/fujitsu.c:688 backend/hp-option.c:3330 backend/hp-option.c:3343 #, no-c-format msgid "On" msgstr "Activé" -#: backend/fujitsu.c:687 backend/hp-option.c:3162 backend/hp-option.c:3329 +#: backend/fujitsu.c:689 backend/hp-option.c:3162 backend/hp-option.c:3329 #: backend/hp-option.c:3342 #, no-c-format msgid "Off" msgstr "Aucun" -#: backend/fujitsu.c:689 +#: backend/fujitsu.c:691 #, no-c-format msgid "DTC" msgstr "Seuil dynamique (DTC)" -#: backend/fujitsu.c:690 +#: backend/fujitsu.c:692 #, no-c-format msgid "SDTC" msgstr "Seuil dynamique simplifié (SDTC)" -#: backend/fujitsu.c:692 backend/teco1.c:1152 backend/teco1.c:1153 +#: backend/fujitsu.c:694 backend/teco1.c:1152 backend/teco1.c:1153 #: backend/teco2.c:1967 backend/teco2.c:1968 backend/teco3.c:977 #: backend/teco3.c:978 #, no-c-format msgid "Dither" msgstr "Tramage" -#: backend/fujitsu.c:693 +#: backend/fujitsu.c:695 #, no-c-format msgid "Diffusion" msgstr "Diffusion d'erreur" -#: backend/fujitsu.c:698 +#: backend/fujitsu.c:700 #, no-c-format msgid "White" msgstr "Blanc" -#: backend/fujitsu.c:699 +#: backend/fujitsu.c:701 #, no-c-format msgid "Black" msgstr "Noir" -#: backend/fujitsu.c:704 +#: backend/fujitsu.c:706 #, no-c-format msgid "Continue" msgstr "Continuer" -#: backend/fujitsu.c:705 +#: backend/fujitsu.c:707 #, no-c-format msgid "Stop" msgstr "Arréter" -#: backend/fujitsu.c:707 +#: backend/fujitsu.c:709 #, no-c-format msgid "10mm" msgstr "10mm" -#: backend/fujitsu.c:708 +#: backend/fujitsu.c:710 #, no-c-format msgid "15mm" msgstr "15mm" -#: backend/fujitsu.c:709 +#: backend/fujitsu.c:711 #, no-c-format msgid "20mm" msgstr "20mm" -#: backend/fujitsu.c:711 backend/hp-option.c:3048 +#: backend/fujitsu.c:713 backend/hp-option.c:3048 #, no-c-format msgid "Horizontal" msgstr "Horizontal" -#: backend/fujitsu.c:712 +#: backend/fujitsu.c:714 #, no-c-format msgid "Horizontal bold" msgstr "Horizontal large" -#: backend/fujitsu.c:713 +#: backend/fujitsu.c:715 #, no-c-format msgid "Horizontal narrow" msgstr "Horizontal étroit" -#: backend/fujitsu.c:714 backend/hp-option.c:3047 +#: backend/fujitsu.c:716 backend/hp-option.c:3047 #, no-c-format msgid "Vertical" msgstr "Vertical" -#: backend/fujitsu.c:715 +#: backend/fujitsu.c:717 #, no-c-format msgid "Vertical bold" msgstr "Vertical large" -#: backend/fujitsu.c:717 +#: backend/fujitsu.c:719 #, no-c-format msgid "Top to bottom" msgstr "De haut en bas" -#: backend/fujitsu.c:718 +#: backend/fujitsu.c:720 #, no-c-format msgid "Bottom to top" msgstr "De bas en haut" -#: backend/fujitsu.c:720 +#: backend/fujitsu.c:722 #, no-c-format msgid "Front" msgstr "Avant" -#: backend/fujitsu.c:721 +#: backend/fujitsu.c:723 #, no-c-format msgid "Back" msgstr "Arrière" -#: backend/fujitsu.c:3144 backend/pixma_sane_options.c:145 +#: backend/fujitsu.c:3148 backend/pixma/pixma_sane_options.c:145 #, no-c-format msgid "Gamma function exponent" msgstr "" -#: backend/fujitsu.c:3145 backend/pixma_sane_options.c:146 +#: backend/fujitsu.c:3149 backend/pixma/pixma_sane_options.c:146 #, no-c-format msgid "Changes intensity of midtones" msgstr "" -#: backend/fujitsu.c:3194 +#: backend/fujitsu.c:3198 #, no-c-format msgid "RIF" msgstr "" -#: backend/fujitsu.c:3195 +#: backend/fujitsu.c:3199 #, no-c-format msgid "Reverse image format" msgstr "" -#: backend/fujitsu.c:3212 +#: backend/fujitsu.c:3216 #, fuzzy, no-c-format msgid "Halftone type" msgstr "Demi-teinte" -#: backend/fujitsu.c:3213 +#: backend/fujitsu.c:3217 #, no-c-format msgid "Control type of halftone filter" msgstr "" -#: backend/fujitsu.c:3234 +#: backend/fujitsu.c:3238 #, no-c-format msgid "Control pattern of halftone filter" msgstr "" -#: backend/fujitsu.c:3256 +#: backend/fujitsu.c:3260 #, no-c-format msgid "Outline" msgstr "" -#: backend/fujitsu.c:3257 +#: backend/fujitsu.c:3261 #, fuzzy, no-c-format msgid "Perform outline extraction" msgstr "Effectue la calibration" -#: backend/fujitsu.c:3268 +#: backend/fujitsu.c:3272 #, fuzzy, no-c-format msgid "Emphasis" msgstr "Accentuation de l'image" -#: backend/fujitsu.c:3269 +#: backend/fujitsu.c:3273 #, no-c-format msgid "Negative to smooth or positive to sharpen image" msgstr "" -#: backend/fujitsu.c:3287 +#: backend/fujitsu.c:3291 #, fuzzy, no-c-format msgid "Separation" msgstr "Saturation" -#: backend/fujitsu.c:3288 +#: backend/fujitsu.c:3292 #, fuzzy, no-c-format msgid "Enable automatic separation of image and text" msgstr "" "Active la détection automatique du seuil pour la numérisation en mode " "trait." -#: backend/fujitsu.c:3299 +#: backend/fujitsu.c:3303 #, fuzzy, no-c-format msgid "Mirroring" msgstr "Image miroir" -#: backend/fujitsu.c:3300 +#: backend/fujitsu.c:3304 #, fuzzy, no-c-format msgid "Reflect output image horizontally" msgstr "Renverse l'image horizontalement." -#: backend/fujitsu.c:3317 +#: backend/fujitsu.c:3321 #, fuzzy, no-c-format msgid "White level follower" msgstr "Niveau blanc des bleus" -#: backend/fujitsu.c:3318 +#: backend/fujitsu.c:3322 #, fuzzy, no-c-format msgid "Control white level follower" msgstr "Contrôle le niveau de rouge" -#: backend/fujitsu.c:3336 +#: backend/fujitsu.c:3340 #, fuzzy, no-c-format msgid "BP filter" msgstr "Filtre de couleur" -#: backend/fujitsu.c:3337 +#: backend/fujitsu.c:3341 #, no-c-format msgid "Improves quality of high resolution ball-point pen text" msgstr "" -#: backend/fujitsu.c:3353 backend/hp-option.h:73 +#: backend/fujitsu.c:3357 backend/hp-option.h:73 #, no-c-format msgid "Smoothing" msgstr "Lissage" -#: backend/fujitsu.c:3354 +#: backend/fujitsu.c:3358 #, no-c-format msgid "Enable smoothing for improved OCR" msgstr "" -#: backend/fujitsu.c:3370 +#: backend/fujitsu.c:3374 #, fuzzy, no-c-format msgid "Gamma curve" msgstr "Valeur de gamma" -#: backend/fujitsu.c:3371 +#: backend/fujitsu.c:3375 #, no-c-format msgid "Gamma curve, from light to dark, but upper two may not work" msgstr "" -#: backend/fujitsu.c:3393 backend/genesys/genesys.cpp:4187 -#: backend/pixma_sane_options.c:335 +#: backend/fujitsu.c:3397 backend/genesys/genesys.cpp:4229 +#: backend/pixma/pixma_sane_options.c:335 #, no-c-format msgid "Threshold curve" msgstr "Courbe du seuil" -#: backend/fujitsu.c:3394 +#: backend/fujitsu.c:3398 #, fuzzy, no-c-format msgid "" "Threshold curve, from light to dark, but upper two may not be linear" msgstr "" "Courbe dynamique de seuil, de clair à foncé, normallement entre 50-65" -#: backend/fujitsu.c:3416 +#: backend/fujitsu.c:3420 #, fuzzy, no-c-format msgid "Threshold white" msgstr "Seuil" -#: backend/fujitsu.c:3417 +#: backend/fujitsu.c:3421 #, no-c-format msgid "Set pixels equal to threshold to white instead of black" msgstr "" -#: backend/fujitsu.c:3433 backend/fujitsu.c:3434 +#: backend/fujitsu.c:3437 backend/fujitsu.c:3438 #, fuzzy, no-c-format msgid "Noise removal" msgstr "Réduction du bruit" -#: backend/fujitsu.c:3450 +#: backend/fujitsu.c:3454 #, no-c-format msgid "Matrix 5x5" msgstr "" -#: backend/fujitsu.c:3451 +#: backend/fujitsu.c:3455 #, no-c-format msgid "Remove 5 pixel square noise" msgstr "" -#: backend/fujitsu.c:3467 +#: backend/fujitsu.c:3471 #, no-c-format msgid "Matrix 4x4" msgstr "" -#: backend/fujitsu.c:3468 +#: backend/fujitsu.c:3472 #, no-c-format msgid "Remove 4 pixel square noise" msgstr "" -#: backend/fujitsu.c:3484 +#: backend/fujitsu.c:3488 #, no-c-format msgid "Matrix 3x3" msgstr "" -#: backend/fujitsu.c:3485 +#: backend/fujitsu.c:3489 #, no-c-format msgid "Remove 3 pixel square noise" msgstr "" -#: backend/fujitsu.c:3501 +#: backend/fujitsu.c:3505 #, no-c-format msgid "Matrix 2x2" msgstr "" -#: backend/fujitsu.c:3502 +#: backend/fujitsu.c:3506 #, no-c-format msgid "Remove 2 pixel square noise" msgstr "" -#: backend/fujitsu.c:3521 +#: backend/fujitsu.c:3525 #, no-c-format msgid "Variance" msgstr "" -#: backend/fujitsu.c:3522 +#: backend/fujitsu.c:3526 #, no-c-format msgid "Set SDTC variance rate (sensitivity), 0 equals 127" msgstr "" -#: backend/fujitsu.c:3555 +#: backend/fujitsu.c:3559 #, fuzzy, no-c-format msgid "Auto width detection" msgstr "Pas de correction" -#: backend/fujitsu.c:3556 +#: backend/fujitsu.c:3560 #, no-c-format msgid "Scanner detects paper sides. May reduce scanning speed." msgstr "" -#: backend/fujitsu.c:3573 +#: backend/fujitsu.c:3577 #, fuzzy, no-c-format msgid "Auto length detection" msgstr "Pas de correction" -#: backend/fujitsu.c:3574 +#: backend/fujitsu.c:3578 #, no-c-format msgid "Scanner detects paper lower edge. May confuse some frontends." msgstr "" -#: backend/fujitsu.c:3600 +#: backend/fujitsu.c:3604 #, no-c-format msgid "Compression" msgstr "" -#: backend/fujitsu.c:3601 +#: backend/fujitsu.c:3605 #, no-c-format msgid "Enable compressed data. May crash your front-end program" msgstr "" -#: backend/fujitsu.c:3621 +#: backend/fujitsu.c:3625 #, no-c-format msgid "Compression argument" msgstr "" -#: backend/fujitsu.c:3622 +#: backend/fujitsu.c:3626 #, no-c-format msgid "" "Level of JPEG compression. 1 is small file, 7 is large file. 0 (default) " "is same as 4" msgstr "" -#: backend/fujitsu.c:3652 +#: backend/fujitsu.c:3656 #, no-c-format msgid "DF action" msgstr "" -#: backend/fujitsu.c:3653 +#: backend/fujitsu.c:3657 #, no-c-format msgid "Action following double feed error" msgstr "" -#: backend/fujitsu.c:3669 +#: backend/fujitsu.c:3673 #, no-c-format msgid "DF skew" msgstr "" -#: backend/fujitsu.c:3670 +#: backend/fujitsu.c:3674 #, no-c-format msgid "Enable double feed error due to skew" msgstr "" -#: backend/fujitsu.c:3688 +#: backend/fujitsu.c:3692 #, no-c-format msgid "DF thickness" msgstr "" -#: backend/fujitsu.c:3689 +#: backend/fujitsu.c:3693 #, no-c-format msgid "Enable double feed error due to paper thickness" msgstr "" -#: backend/fujitsu.c:3707 +#: backend/fujitsu.c:3711 #, no-c-format msgid "DF length" msgstr "" -#: backend/fujitsu.c:3708 +#: backend/fujitsu.c:3712 #, no-c-format msgid "Enable double feed error due to paper length" msgstr "" -#: backend/fujitsu.c:3731 +#: backend/fujitsu.c:3735 #, no-c-format msgid "DF length difference" msgstr "" -#: backend/fujitsu.c:3732 +#: backend/fujitsu.c:3736 #, no-c-format msgid "Difference in page length to trigger double feed error" msgstr "" -#: backend/fujitsu.c:3755 +#: backend/fujitsu.c:3759 #, fuzzy, no-c-format msgid "DF recovery mode" msgstr "Couvercle du chargeur automatique ouvert" -#: backend/fujitsu.c:3756 +#: backend/fujitsu.c:3760 #, no-c-format msgid "Request scanner to reverse feed on paper jam" msgstr "" -#: backend/fujitsu.c:3775 +#: backend/fujitsu.c:3779 #, no-c-format msgid "Paper protection" msgstr "" -#: backend/fujitsu.c:3776 +#: backend/fujitsu.c:3780 #, no-c-format msgid "Request scanner to predict jams in the ADF" msgstr "" -#: backend/fujitsu.c:3795 +#: backend/fujitsu.c:3799 #, fuzzy, no-c-format msgid "Advanced paper protection" msgstr "Options avancées" -#: backend/fujitsu.c:3796 +#: backend/fujitsu.c:3800 #, no-c-format msgid "Request scanner to predict jams in the ADF using improved sensors" msgstr "" -#: backend/fujitsu.c:3815 +#: backend/fujitsu.c:3819 #, fuzzy, no-c-format msgid "Staple detection" msgstr "Pas de correction" -#: backend/fujitsu.c:3816 +#: backend/fujitsu.c:3820 #, no-c-format msgid "Request scanner to detect jams in the ADF caused by staples" msgstr "" -#: backend/fujitsu.c:3835 +#: backend/fujitsu.c:3839 #, no-c-format msgid "Background color" msgstr "" -#: backend/fujitsu.c:3836 +#: backend/fujitsu.c:3840 #, no-c-format msgid "" "Set color of background for scans. May conflict with overscan option" msgstr "" -#: backend/fujitsu.c:3856 +#: backend/fujitsu.c:3860 #, fuzzy, no-c-format msgid "Dropout color" msgstr "Exclusion" -#: backend/fujitsu.c:3857 +#: backend/fujitsu.c:3861 #, no-c-format msgid "" "One-pass scanners use only one color during gray or binary scanning, " "useful for colored paper or ink" msgstr "" -#: backend/fujitsu.c:3880 +#: backend/fujitsu.c:3884 #, fuzzy, no-c-format msgid "Buffer mode" msgstr "Mode de chargement" -#: backend/fujitsu.c:3881 +#: backend/fujitsu.c:3885 #, no-c-format msgid "Request scanner to read pages quickly from ADF into internal memory" msgstr "" -#: backend/fujitsu.c:3900 +#: backend/fujitsu.c:3904 #, no-c-format msgid "Prepick" msgstr "" -#: backend/fujitsu.c:3901 +#: backend/fujitsu.c:3905 #, no-c-format msgid "Request scanner to grab next page from ADF" msgstr "" -#: backend/fujitsu.c:3920 +#: backend/fujitsu.c:3924 #, no-c-format msgid "Overscan" msgstr "" -#: backend/fujitsu.c:3921 +#: backend/fujitsu.c:3925 #, no-c-format msgid "" "Collect a few mm of background on top side of scan, before paper enters " @@ -2684,65 +2713,65 @@ msgid "" "collection on remaining sides. May conflict with bgcolor option" msgstr "" -#: backend/fujitsu.c:3939 +#: backend/fujitsu.c:3943 #, no-c-format msgid "Sleep timer" msgstr "" -#: backend/fujitsu.c:3940 +#: backend/fujitsu.c:3944 #, no-c-format msgid "" "Time in minutes until the internal power supply switches to sleep mode" msgstr "" -#: backend/fujitsu.c:3958 +#: backend/fujitsu.c:3962 #, fuzzy, no-c-format msgid "Off timer" msgstr "Temps avant extinction de la lampe" -#: backend/fujitsu.c:3959 +#: backend/fujitsu.c:3963 #, no-c-format msgid "" "Time in minutes until the internal power supply switches the scanner " "off. Will be rounded to nearest 15 minutes. Zero means never power off." msgstr "" -#: backend/fujitsu.c:3977 +#: backend/fujitsu.c:3981 #, fuzzy, no-c-format msgid "Duplex offset" msgstr "Décalage des bleus" -#: backend/fujitsu.c:3978 +#: backend/fujitsu.c:3982 #, no-c-format msgid "Adjust front/back offset" msgstr "" -#: backend/fujitsu.c:3995 backend/plustek.c:1025 backend/umax_pp.c:800 +#: backend/fujitsu.c:3999 backend/plustek.c:1025 backend/umax_pp.c:794 #, no-c-format msgid "Green offset" msgstr "Décalage des verts" -#: backend/fujitsu.c:3996 +#: backend/fujitsu.c:4000 #, fuzzy, no-c-format msgid "Adjust green/red offset" msgstr "Décalage des verts" -#: backend/fujitsu.c:4013 backend/plustek.c:1041 backend/umax_pp.c:812 +#: backend/fujitsu.c:4017 backend/plustek.c:1041 backend/umax_pp.c:806 #, no-c-format msgid "Blue offset" msgstr "Décalage des bleus" -#: backend/fujitsu.c:4014 +#: backend/fujitsu.c:4018 #, fuzzy, no-c-format msgid "Adjust blue/red offset" msgstr "Fixe le décalage pour le bleu" -#: backend/fujitsu.c:4027 +#: backend/fujitsu.c:4031 #, fuzzy, no-c-format msgid "Low Memory" msgstr "A court de mémoire" -#: backend/fujitsu.c:4028 +#: backend/fujitsu.c:4032 #, no-c-format msgid "" "Limit driver memory usage for use in embedded systems. Causes some " @@ -2751,377 +2780,363 @@ msgid "" "only be used with custom front-end software." msgstr "" -#: backend/fujitsu.c:4043 +#: backend/fujitsu.c:4047 #, fuzzy, no-c-format msgid "Duplex side" msgstr "Numérisation recto-verso" -#: backend/fujitsu.c:4044 +#: backend/fujitsu.c:4048 #, no-c-format msgid "" "Tells which side (0=front, 1=back) of a duplex scan the next call to " "sane_read will return." msgstr "" -#: backend/fujitsu.c:4055 +#: backend/fujitsu.c:4059 #, no-c-format msgid "Hardware deskew and crop" msgstr "" -#: backend/fujitsu.c:4056 +#: backend/fujitsu.c:4060 #, no-c-format msgid "Request scanner to rotate and crop pages digitally." msgstr "" -#: backend/fujitsu.c:4067 backend/kvs1025_opt.c:871 +#: backend/fujitsu.c:4071 backend/kvs1025_opt.c:871 #, no-c-format msgid "Software deskew" msgstr "" -#: backend/fujitsu.c:4068 +#: backend/fujitsu.c:4072 #, no-c-format msgid "Request driver to rotate skewed pages digitally." msgstr "" -#: backend/fujitsu.c:4080 backend/kvs1025_opt.c:880 +#: backend/fujitsu.c:4084 backend/kvs1025_opt.c:880 #, no-c-format msgid "Software despeckle diameter" msgstr "" -#: backend/fujitsu.c:4081 +#: backend/fujitsu.c:4085 #, no-c-format msgid "Maximum diameter of lone dots to remove from scan." msgstr "" -#: backend/fujitsu.c:4100 backend/genesys/genesys.cpp:4117 +#: backend/fujitsu.c:4104 backend/genesys/genesys.cpp:4159 #, no-c-format msgid "Software crop" msgstr "" -#: backend/fujitsu.c:4101 +#: backend/fujitsu.c:4105 #, no-c-format msgid "Request driver to remove border from pages digitally." msgstr "" -#: backend/fujitsu.c:4130 +#: backend/fujitsu.c:4134 #, no-c-format msgid "Halt on Cancel" msgstr "" -#: backend/fujitsu.c:4131 +#: backend/fujitsu.c:4135 #, no-c-format msgid "" "Request driver to halt the paper feed instead of eject during a cancel." msgstr "" -#: backend/fujitsu.c:4142 +#: backend/fujitsu.c:4146 #, fuzzy, no-c-format msgid "Endorser Options" msgstr "Options avancées" -#: backend/fujitsu.c:4143 +#: backend/fujitsu.c:4147 #, no-c-format msgid "Controls for endorser unit" msgstr "" -#: backend/fujitsu.c:4154 +#: backend/fujitsu.c:4158 #, no-c-format msgid "Endorser" msgstr "" -#: backend/fujitsu.c:4155 +#: backend/fujitsu.c:4159 #, no-c-format msgid "Enable endorser unit" msgstr "" -#: backend/fujitsu.c:4170 +#: backend/fujitsu.c:4174 #, no-c-format msgid "Endorser bits" msgstr "" -#: backend/fujitsu.c:4171 +#: backend/fujitsu.c:4175 #, no-c-format msgid "Determines maximum endorser counter value." msgstr "" -#: backend/fujitsu.c:4196 +#: backend/fujitsu.c:4200 #, no-c-format msgid "Endorser value" msgstr "" -#: backend/fujitsu.c:4197 +#: backend/fujitsu.c:4201 #, no-c-format msgid "Initial endorser counter value." msgstr "" -#: backend/fujitsu.c:4220 +#: backend/fujitsu.c:4224 #, no-c-format msgid "Endorser step" msgstr "" -#: backend/fujitsu.c:4221 +#: backend/fujitsu.c:4225 #, no-c-format msgid "Change endorser counter value by this much for each page." msgstr "" -#: backend/fujitsu.c:4244 +#: backend/fujitsu.c:4248 #, no-c-format msgid "Endorser Y" msgstr "" -#: backend/fujitsu.c:4245 +#: backend/fujitsu.c:4249 #, no-c-format msgid "Endorser print offset from top of paper." msgstr "" -#: backend/fujitsu.c:4270 +#: backend/fujitsu.c:4274 #, no-c-format msgid "Endorser font" msgstr "" -#: backend/fujitsu.c:4271 +#: backend/fujitsu.c:4275 #, no-c-format msgid "Endorser printing font." msgstr "" -#: backend/fujitsu.c:4300 +#: backend/fujitsu.c:4304 #, fuzzy, no-c-format msgid "Endorser direction" msgstr "Réduction du bruit" -#: backend/fujitsu.c:4301 +#: backend/fujitsu.c:4305 #, no-c-format msgid "Endorser printing direction." msgstr "" -#: backend/fujitsu.c:4325 +#: backend/fujitsu.c:4329 #, no-c-format msgid "Endorser side" msgstr "" -#: backend/fujitsu.c:4326 +#: backend/fujitsu.c:4330 #, no-c-format msgid "Endorser printing side, requires hardware support to change" msgstr "" -#: backend/fujitsu.c:4351 +#: backend/fujitsu.c:4355 #, no-c-format msgid "Endorser string" msgstr "" -#: backend/fujitsu.c:4352 +#: backend/fujitsu.c:4356 #, no-c-format msgid "" "Endorser alphanumeric print format. %05ud or %08ud at the end will be " "replaced by counter value." msgstr "" -#: backend/fujitsu.c:4379 +#: backend/fujitsu.c:4383 #, no-c-format msgid "Top edge" msgstr "" -#: backend/fujitsu.c:4380 +#: backend/fujitsu.c:4384 #, no-c-format msgid "Paper is pulled partly into ADF" msgstr "" -#: backend/fujitsu.c:4391 +#: backend/fujitsu.c:4395 #, fuzzy, no-c-format msgid "A3 paper" msgstr "Avec du papier" -#: backend/fujitsu.c:4392 +#: backend/fujitsu.c:4396 #, no-c-format msgid "A3 paper detected" msgstr "" -#: backend/fujitsu.c:4403 +#: backend/fujitsu.c:4407 #, fuzzy, no-c-format msgid "B4 paper" msgstr "Avec du papier" -#: backend/fujitsu.c:4404 +#: backend/fujitsu.c:4408 #, no-c-format msgid "B4 paper detected" msgstr "" -#: backend/fujitsu.c:4415 +#: backend/fujitsu.c:4419 #, fuzzy, no-c-format msgid "A4 paper" msgstr "Avec du papier" -#: backend/fujitsu.c:4416 +#: backend/fujitsu.c:4420 #, no-c-format msgid "A4 paper detected" msgstr "" -#: backend/fujitsu.c:4427 +#: backend/fujitsu.c:4431 #, fuzzy, no-c-format msgid "B5 paper" msgstr "Avec du papier" -#: backend/fujitsu.c:4428 +#: backend/fujitsu.c:4432 #, no-c-format msgid "B5 paper detected" msgstr "" -#: backend/fujitsu.c:4451 +#: backend/fujitsu.c:4455 #, no-c-format msgid "OMR or DF" msgstr "" -#: backend/fujitsu.c:4452 +#: backend/fujitsu.c:4456 #, no-c-format msgid "OMR or double feed detected" msgstr "" -#: backend/fujitsu.c:4475 +#: backend/fujitsu.c:4479 #, no-c-format msgid "Power saving" msgstr "" -#: backend/fujitsu.c:4476 +#: backend/fujitsu.c:4480 #, fuzzy, no-c-format msgid "Scanner in power saving mode" msgstr "Couvercle du scanner ouvert" -#: backend/fujitsu.c:4499 +#: backend/fujitsu.c:4503 #, fuzzy, no-c-format msgid "Manual feed" msgstr "Mise au point manuelle" -#: backend/fujitsu.c:4500 +#: backend/fujitsu.c:4504 #, fuzzy, no-c-format msgid "Manual feed selected" msgstr "Mise au point manuelle" -#: backend/fujitsu.c:4523 +#: backend/fujitsu.c:4527 #, no-c-format msgid "Function" msgstr "" -#: backend/fujitsu.c:4524 +#: backend/fujitsu.c:4528 #, no-c-format msgid "Function character on screen" msgstr "" -#: backend/fujitsu.c:4535 +#: backend/fujitsu.c:4539 #, no-c-format msgid "Ink low" msgstr "" -#: backend/fujitsu.c:4536 +#: backend/fujitsu.c:4540 #, no-c-format msgid "Imprinter ink running low" msgstr "" -#: backend/fujitsu.c:4547 +#: backend/fujitsu.c:4551 #, no-c-format msgid "Double feed" msgstr "" -#: backend/fujitsu.c:4548 +#: backend/fujitsu.c:4552 #, no-c-format msgid "Double feed detected" msgstr "" -#: backend/fujitsu.c:4559 +#: backend/fujitsu.c:4563 #, no-c-format msgid "Error code" msgstr "" -#: backend/fujitsu.c:4560 +#: backend/fujitsu.c:4564 #, fuzzy, no-c-format msgid "Hardware error code" msgstr "erreur de test du matériel" -#: backend/fujitsu.c:4571 +#: backend/fujitsu.c:4575 #, no-c-format msgid "Skew angle" msgstr "" -#: backend/fujitsu.c:4572 +#: backend/fujitsu.c:4576 #, no-c-format msgid "Requires black background for scanning" msgstr "" -#: backend/fujitsu.c:4583 +#: backend/fujitsu.c:4587 #, no-c-format msgid "Ink remaining" msgstr "" -#: backend/fujitsu.c:4584 +#: backend/fujitsu.c:4588 #, fuzzy, no-c-format msgid "Imprinter ink level" msgstr "Niveau blanc" -#: backend/fujitsu.c:4595 +#: backend/fujitsu.c:4599 #, fuzzy, no-c-format msgid "Density" msgstr "Contrôle de densité" -#: backend/fujitsu.c:4596 +#: backend/fujitsu.c:4600 #, fuzzy, no-c-format msgid "Density dial" msgstr "Contrôle de densité" -#: backend/fujitsu.c:4607 backend/fujitsu.c:4608 +#: backend/fujitsu.c:4611 backend/fujitsu.c:4612 #, fuzzy, no-c-format msgid "Duplex switch" msgstr "Numérisation recto-verso" -#: backend/genesys/genesys.cpp:4118 +#: backend/genesys/genesys.cpp:4160 #, no-c-format msgid "Request backend to remove border from pages digitally" msgstr "" -#: backend/genesys/genesys.cpp:4127 backend/kvs1025_opt.c:912 +#: backend/genesys/genesys.cpp:4169 backend/kvs1025_opt.c:912 #, no-c-format msgid "Request driver to discard pages with low numbers of dark pixels" msgstr "" -#: backend/genesys/genesys.cpp:4137 backend/kvs1025_opt.c:892 +#: backend/genesys/genesys.cpp:4179 backend/kvs1025_opt.c:892 #, no-c-format msgid "Software derotate" msgstr "" -#: backend/genesys/genesys.cpp:4138 backend/kvs1025_opt.c:894 +#: backend/genesys/genesys.cpp:4180 backend/kvs1025_opt.c:894 #, no-c-format msgid "Request driver to detect and correct 90 degree image rotation" msgstr "" -#: backend/genesys/genesys.cpp:4168 backend/pixma_sane_options.c:314 +#: backend/genesys/genesys.cpp:4210 backend/pixma/pixma_sane_options.c:314 #, no-c-format msgid "Extras" msgstr "Extras" -#: backend/genesys/genesys.cpp:4188 backend/pixma_sane_options.c:336 +#: backend/genesys/genesys.cpp:4230 backend/pixma/pixma_sane_options.c:336 #, no-c-format msgid "Dynamic threshold curve, from light to dark, normally 50-65" msgstr "" "Courbe dynamique de seuil, de clair à foncé, normallement entre 50-65" -#: backend/genesys/genesys.cpp:4197 -#, no-c-format -msgid "Disable dynamic lineart" -msgstr "Désactiver le mode Trait dynamique" - -#: backend/genesys/genesys.cpp:4199 -#, no-c-format -msgid "" -"Disable use of a software adaptive algorithm to generate lineart relying " -"instead on hardware lineart." -msgstr "" -"Utilise le mode Trait du matériel, au lieu d'utiliser un algorithme " -"logiciel adaptatif." - -#: backend/genesys/genesys.cpp:4215 +#: backend/genesys/genesys.cpp:4240 #, no-c-format msgid "Disable interpolation" msgstr "Désactiver l'interpolation" -#: backend/genesys/genesys.cpp:4218 +#: backend/genesys/genesys.cpp:4243 #, no-c-format msgid "" "When using high resolutions where the horizontal resolution is smaller " @@ -3131,45 +3146,45 @@ msgstr "" "plus faible que la résolution verticale, ne pas faire d'interpolation " "horizontale." -#: backend/genesys/genesys.cpp:4227 +#: backend/genesys/genesys.cpp:4252 #, fuzzy, no-c-format msgid "Color filter" msgstr "Filtre de couleur" -#: backend/genesys/genesys.cpp:4230 +#: backend/genesys/genesys.cpp:4255 #, no-c-format msgid "When using gray or lineart this option selects the used color." msgstr "" "En niveaux de gris ou en mode trait, sélectionne la couleur à utiliser." -#: backend/genesys/genesys.cpp:4254 +#: backend/genesys/genesys.cpp:4279 #, fuzzy, no-c-format msgid "Calibration file" msgstr "Calibration" -#: backend/genesys/genesys.cpp:4255 +#: backend/genesys/genesys.cpp:4280 #, fuzzy, no-c-format msgid "Specify the calibration file to use" msgstr "Définit le mode de calibration" -#: backend/genesys/genesys.cpp:4272 +#: backend/genesys/genesys.cpp:4297 #, fuzzy, no-c-format msgid "Calibration cache expiration time" msgstr "Cache des données de calibration" -#: backend/genesys/genesys.cpp:4273 +#: backend/genesys/genesys.cpp:4298 #, no-c-format msgid "" "Time (in minutes) before a cached calibration expires. A value of 0 " "means cache is not used. A negative value means cache never expires." msgstr "" -#: backend/genesys/genesys.cpp:4283 +#: backend/genesys/genesys.cpp:4308 #, no-c-format msgid "Lamp off time" msgstr "Temps avant extinction de la lampe" -#: backend/genesys/genesys.cpp:4286 +#: backend/genesys/genesys.cpp:4311 #, no-c-format msgid "" "The lamp will be turned off after the given time (in minutes). A value " @@ -3178,103 +3193,108 @@ msgstr "" "La lampe sera éteinte après ce laps de temps (en minutes). Entrer 0 pour " "ne pas éteindre la lampe automatiquement." -#: backend/genesys/genesys.cpp:4296 +#: backend/genesys/genesys.cpp:4321 #, fuzzy, no-c-format msgid "Lamp off during scan" msgstr "Eteindre la lampe durant la calibration des noirs" -#: backend/genesys/genesys.cpp:4297 +#: backend/genesys/genesys.cpp:4322 #, fuzzy, no-c-format msgid "The lamp will be turned off during scan. " msgstr "Délai en minutes avant d'éteindre la lampe après une numérisation." -#: backend/genesys/genesys.cpp:4324 backend/genesys/genesys.cpp:4325 +#: backend/genesys/genesys.cpp:4349 backend/genesys/genesys.cpp:4350 #, no-c-format msgid "File button" msgstr "Bouton 'fichier'" -#: backend/genesys/genesys.cpp:4369 backend/genesys/genesys.cpp:4370 +#: backend/genesys/genesys.cpp:4394 backend/genesys/genesys.cpp:4395 #, no-c-format msgid "OCR button" msgstr "Bouton 'reconnaissance de caractères (OCR)'" -#: backend/genesys/genesys.cpp:4381 backend/genesys/genesys.cpp:4382 +#: backend/genesys/genesys.cpp:4406 backend/genesys/genesys.cpp:4407 #, no-c-format msgid "Power button" msgstr "Bouton 'marche'" -#: backend/genesys/genesys.cpp:4393 backend/genesys/genesys.cpp:4394 +#: backend/genesys/genesys.cpp:4418 backend/genesys/genesys.cpp:4419 #, fuzzy, no-c-format msgid "Extra button" msgstr "Bouton 'courrier électronique'" -#: backend/genesys/genesys.cpp:4405 backend/gt68xx.c:755 +#: backend/genesys/genesys.cpp:4430 backend/gt68xx.c:755 #, fuzzy, no-c-format msgid "Needs calibration" msgstr "Calibration requise" -#: backend/genesys/genesys.cpp:4406 backend/gt68xx.c:756 +#: backend/genesys/genesys.cpp:4431 backend/gt68xx.c:756 backend/p5.c:1928 #, no-c-format msgid "The scanner needs calibration for the current settings" msgstr "Le scanner a besoin d'être calibré avec les paramètres actuels" -#: backend/genesys/genesys.cpp:4417 backend/gt68xx.c:780 -#: backend/gt68xx.c:781 backend/pixma_sane_options.c:226 -#: backend/plustek.c:1080 +#: backend/genesys/genesys.cpp:4442 backend/gt68xx.c:780 +#: backend/gt68xx.c:781 backend/p5.c:1937 backend/p5.c:1938 +#: backend/pixma/pixma_sane_options.c:226 backend/plustek.c:1080 #, no-c-format msgid "Buttons" msgstr "Boutons" -#: backend/genesys/genesys.cpp:4426 backend/gt68xx.c:787 -#: backend/hp5400_sane.c:392 backend/hp-option.h:97 backend/niash.c:726 -#: backend/plustek.c:941 +#: backend/genesys/genesys.cpp:4451 backend/gt68xx.c:787 +#: backend/hp-option.h:97 backend/hp5400_sane.c:392 backend/niash.c:726 +#: backend/p5.c:1945 backend/plustek.c:941 #, no-c-format msgid "Calibrate" msgstr "Calibration" -#: backend/genesys/genesys.cpp:4428 backend/gt68xx.c:789 +#: backend/genesys/genesys.cpp:4453 backend/gt68xx.c:789 backend/p5.c:1947 #, no-c-format msgid "Start calibration using special sheet" msgstr "Démarrer la calibration avec la feuille spéciale" -#: backend/genesys/genesys.cpp:4440 backend/gt68xx.c:802 +#: backend/genesys/genesys.cpp:4465 backend/gt68xx.c:802 backend/p5.c:1958 #, no-c-format msgid "Clear calibration" msgstr "Effacer la calibration" -#: backend/genesys/genesys.cpp:4441 backend/gt68xx.c:803 +#: backend/genesys/genesys.cpp:4466 backend/gt68xx.c:803 backend/p5.c:1960 #, no-c-format msgid "Clear calibration cache" msgstr "Efface le cache des données de calibration" -#: backend/genesys/genesys.cpp:4451 +#: backend/genesys/genesys.cpp:4476 #, fuzzy, no-c-format msgid "Force calibration" msgstr "Calibration grossière" -#: backend/genesys/genesys.cpp:4452 +#: backend/genesys/genesys.cpp:4477 #, no-c-format msgid "Force calibration ignoring all and any calibration caches" msgstr "" -#: backend/genesys/genesys.cpp:4462 +#: backend/genesys/genesys.cpp:4487 #, fuzzy, no-c-format msgid "Ignore internal offsets" msgstr "Décalage des verts" -#: backend/genesys/genesys.cpp:4464 +#: backend/genesys/genesys.cpp:4489 #, no-c-format msgid "" "Acquires the image including the internal calibration areas of the " "scanner" msgstr "" -#: backend/gt68xx.c:149 backend/ma1509.c:108 backend/mustek.c:164 -#: backend/snapscan-options.c:87 backend/umax.c:182 +#: backend/genesys/genesys.h:79 backend/gt68xx.c:149 backend/ma1509.c:108 +#: backend/mustek.c:164 backend/snapscan-options.c:87 backend/umax.c:182 #, no-c-format msgid "Transparency Adapter" msgstr "Adaptateur pour transparents" +#: backend/genesys/genesys.h:80 +#, fuzzy, no-c-format +msgid "Transparency Adapter Infrared" +msgstr "Adaptateur pour transparents" + #: backend/gt68xx.c:470 #, no-c-format msgid "Gray mode color" @@ -3384,6 +3404,311 @@ msgstr "Valeur de gamma" msgid "Sets the gamma value of all channels." msgstr "Sélectionne la valeur de gamma pour tous les canaux." +#: backend/hp-option.c:2987 +#, no-c-format +msgid "Advanced Options" +msgstr "Options avancées" + +#: backend/hp-option.c:3044 +#, no-c-format +msgid "Coarse" +msgstr "Grossier" + +#: backend/hp-option.c:3045 +#, no-c-format +msgid "Fine" +msgstr "Précis" + +#: backend/hp-option.c:3046 +#, no-c-format +msgid "Bayer" +msgstr "Bayer" + +#: backend/hp-option.c:3049 backend/hp-option.c:3100 +#, no-c-format +msgid "Custom" +msgstr "Personnalisé" + +#: backend/hp-option.c:3090 backend/hp-option.c:3146 +#: backend/hp-option.c:3161 +#, no-c-format +msgid "Auto" +msgstr "Automatique" + +#: backend/hp-option.c:3091 +#, no-c-format +msgid "NTSC RGB" +msgstr "RVB NTSC" + +#: backend/hp-option.c:3092 +#, no-c-format +msgid "XPA RGB" +msgstr "RVB (pour transparents)" + +#: backend/hp-option.c:3093 +#, no-c-format +msgid "Pass-through" +msgstr "Direct" + +#: backend/hp-option.c:3094 +#, no-c-format +msgid "NTSC Gray" +msgstr "Gris NTSC" + +#: backend/hp-option.c:3095 +#, no-c-format +msgid "XPA Gray" +msgstr "Gris (pour transparents)" + +#: backend/hp-option.c:3147 +#, no-c-format +msgid "Slow" +msgstr "Lent" + +#: backend/hp-option.c:3148 backend/hp-option.c:3255 +#: backend/kvs40xx_opt.c:230 backend/matsushita.c:244 backend/mustek.c:149 +#: backend/plustek.c:234 backend/plustek_pp.c:203 backend/u12.c:155 +#, no-c-format +msgid "Normal" +msgstr "Normal" + +#: backend/hp-option.c:3149 +#, no-c-format +msgid "Fast" +msgstr "Rapide" + +#: backend/hp-option.c:3150 +#, no-c-format +msgid "Extra Fast" +msgstr "Très rapide" + +#: backend/hp-option.c:3163 +#, no-c-format +msgid "2-pixel" +msgstr "2 pixels" + +#: backend/hp-option.c:3164 +#, no-c-format +msgid "4-pixel" +msgstr "4 pixels" + +#: backend/hp-option.c:3165 +#, no-c-format +msgid "8-pixel" +msgstr "8 pixels" + +#: backend/hp-option.c:3176 +#, no-c-format +msgid "Print" +msgstr "Imprimer" + +#: backend/hp-option.c:3177 backend/hp3900_sane.c:427 +#: backend/hp3900_sane.c:1019 +#, no-c-format +msgid "Slide" +msgstr "Diapositive" + +#: backend/hp-option.c:3178 +#, no-c-format +msgid "Film-strip" +msgstr "Film-strip" + +#: backend/hp-option.c:3256 backend/hp5590.c:93 +#, no-c-format +msgid "ADF" +msgstr "Chargeur automatique de documents" + +#: backend/hp-option.c:3257 +#, no-c-format +msgid "XPA" +msgstr "Adaptateur pour transparents" + +#: backend/hp-option.c:3331 backend/hp-option.c:3344 +#, no-c-format +msgid "Conditional" +msgstr "Conditionnel" + +#: backend/hp-option.c:3417 +#, no-c-format +msgid "Experiment" +msgstr "Essais" + +#: backend/hp-option.h:60 +#, no-c-format +msgid "Sharpening" +msgstr "Netteté" + +#: backend/hp-option.h:61 +#, no-c-format +msgid "Set sharpening value." +msgstr "Choisir la netteté" + +#: backend/hp-option.h:66 +#, no-c-format +msgid "Auto Threshold" +msgstr "Seuil automatique" + +#: backend/hp-option.h:68 +#, no-c-format +msgid "Enable automatic determination of threshold for line-art scans." +msgstr "" +"Active la détection automatique du seuil pour la numérisation en mode " +"trait." + +#: backend/hp-option.h:74 +#, no-c-format +msgid "Select smoothing filter." +msgstr "Sélectionne le filtre de lissage." + +#: backend/hp-option.h:79 +#, no-c-format +msgid "Unload media after scan" +msgstr "Ejecter le document après la numérisation" + +#: backend/hp-option.h:80 +#, no-c-format +msgid "Unloads the media after a scan." +msgstr "Ejecte le document après la numérisation." + +#: backend/hp-option.h:85 +#, no-c-format +msgid "Change document" +msgstr "Changer de document" + +#: backend/hp-option.h:86 +#, no-c-format +msgid "Change Document." +msgstr "Change de document." + +#: backend/hp-option.h:91 +#, no-c-format +msgid "Unload" +msgstr "Ejecter" + +#: backend/hp-option.h:92 +#, no-c-format +msgid "Unload Document." +msgstr "Ejecter le document." + +#: backend/hp-option.h:98 +#, no-c-format +msgid "Start calibration process." +msgstr "Démarrer la calibration." + +#: backend/hp-option.h:103 +#, no-c-format +msgid "Media" +msgstr "Document" + +#: backend/hp-option.h:104 +#, no-c-format +msgid "Set type of media." +msgstr "Sélectionne le type de document." + +#: backend/hp-option.h:109 +#, no-c-format +msgid "Exposure time" +msgstr "Temps d'exposition" + +#: backend/hp-option.h:111 +#, no-c-format +msgid "" +"A longer exposure time lets the scanner collect more light. Suggested " +"use is 175% for prints, 150% for normal slides and \"Negative\" for " +"negative film. For dark (underexposed) images you can increase this " +"value." +msgstr "" +"Un temps d'exposition plus long permet au scanner de recevoir plus de " +"lumière. Les valeurs suggérées sont : 175% pour des impressions, 150% " +"pour des diapositives normales, et \"Négatif\" pour des négatifs. Pour " +"les images sombres (sous-exposées), vous pouvez augmenter cette valeur." + +#: backend/hp-option.h:119 backend/hp-option.h:126 +#, no-c-format +msgid "Color Matrix" +msgstr "Matrice de couleurs" + +#: backend/hp-option.h:121 +#, fuzzy, no-c-format +msgid "Set the scanner's color matrix." +msgstr "Sélectionne la matrice de couleurs du scanner." + +#: backend/hp-option.h:127 +#, no-c-format +msgid "Custom color matrix." +msgstr "Matrice personnalisée." + +#: backend/hp-option.h:132 +#, no-c-format +msgid "Mono Color Matrix" +msgstr "Matrice monochrome" + +#: backend/hp-option.h:133 +#, no-c-format +msgid "Custom color matrix for grayscale scans." +msgstr "Matrice personnalisée pour numérisation en niveaux de gris." + +#: backend/hp-option.h:138 +#, no-c-format +msgid "Mirror horizontal" +msgstr "Miroir horizontal" + +#: backend/hp-option.h:139 +#, no-c-format +msgid "Mirror image horizontally." +msgstr "Renverse l'image horizontalement." + +#: backend/hp-option.h:144 +#, no-c-format +msgid "Mirror vertical" +msgstr "Miroir vertical" + +#: backend/hp-option.h:145 +#, no-c-format +msgid "Mirror image vertically." +msgstr "Renverse l'image verticalement." + +#: backend/hp-option.h:150 +#, no-c-format +msgid "Update options" +msgstr "Mettre les options à jour" + +#: backend/hp-option.h:151 +#, no-c-format +msgid "Update options." +msgstr "Mets à jour les options." + +#: backend/hp-option.h:156 +#, no-c-format +msgid "8 bit output" +msgstr "Sortie en 8 bits" + +#: backend/hp-option.h:158 +#, no-c-format +msgid "Use bit depth greater eight internally, but output only eight bits." +msgstr "" +"Utilise plus de 8 bits de profondeur en interne, mais sort en 8 bits." + +#: backend/hp-option.h:164 +#, no-c-format +msgid "Front button wait" +msgstr "Attente de bouton avant" + +#: backend/hp-option.h:165 +#, no-c-format +msgid "Wait to scan for front-panel button push." +msgstr "Attendre l'appui sur le bouton du scanner avant de numériser." + +#: backend/hp-option.h:172 +#, no-c-format +msgid "Shut off lamp" +msgstr "Eteindre la lampe" + +#: backend/hp-option.h:173 +#, no-c-format +msgid "Shut off scanner lamp." +msgstr "Eteint la lampe du scanner." + #: backend/hp3500.c:1020 #, no-c-format msgid "Geometry Group" @@ -3394,12 +3719,6 @@ msgstr "Géométrie" msgid "Scan Mode Group" msgstr "Mode de numérisation" -#: backend/hp3900_sane.c:427 backend/hp3900_sane.c:1019 -#: backend/hp-option.c:3177 -#, no-c-format -msgid "Slide" -msgstr "Diapositive" - #: backend/hp3900_sane.c:1405 #, no-c-format msgid "Scanner model" @@ -3604,11 +3923,6 @@ msgstr "Allume/éteint la lampe." msgid "Calibrates for black and white level." msgstr "Calibration des niveaux noir et blanc." -#: backend/hp5590.c:93 backend/hp-option.c:3256 -#, no-c-format -msgid "ADF" -msgstr "Chargeur automatique de documents" - #: backend/hp5590.c:95 #, no-c-format msgid "TMA Slides" @@ -3721,300 +4035,6 @@ msgid "" "r*65536+256*g+b or gray value (default=violet or gray)" msgstr "" -#: backend/hp-option.c:2987 -#, no-c-format -msgid "Advanced Options" -msgstr "Options avancées" - -#: backend/hp-option.c:3044 -#, no-c-format -msgid "Coarse" -msgstr "Grossier" - -#: backend/hp-option.c:3045 -#, no-c-format -msgid "Fine" -msgstr "Précis" - -#: backend/hp-option.c:3046 -#, no-c-format -msgid "Bayer" -msgstr "Bayer" - -#: backend/hp-option.c:3049 backend/hp-option.c:3100 -#, no-c-format -msgid "Custom" -msgstr "Personnalisé" - -#: backend/hp-option.c:3090 backend/hp-option.c:3146 -#: backend/hp-option.c:3161 -#, no-c-format -msgid "Auto" -msgstr "Automatique" - -#: backend/hp-option.c:3091 -#, no-c-format -msgid "NTSC RGB" -msgstr "RVB NTSC" - -#: backend/hp-option.c:3092 -#, no-c-format -msgid "XPA RGB" -msgstr "RVB (pour transparents)" - -#: backend/hp-option.c:3093 -#, no-c-format -msgid "Pass-through" -msgstr "Direct" - -#: backend/hp-option.c:3094 -#, no-c-format -msgid "NTSC Gray" -msgstr "Gris NTSC" - -#: backend/hp-option.c:3095 -#, no-c-format -msgid "XPA Gray" -msgstr "Gris (pour transparents)" - -#: backend/hp-option.c:3147 -#, no-c-format -msgid "Slow" -msgstr "Lent" - -#: backend/hp-option.c:3148 backend/hp-option.c:3255 -#: backend/kvs40xx_opt.c:230 backend/matsushita.c:244 backend/mustek.c:149 -#: backend/plustek.c:234 backend/plustek_pp.c:203 backend/u12.c:155 -#, no-c-format -msgid "Normal" -msgstr "Normal" - -#: backend/hp-option.c:3149 -#, no-c-format -msgid "Fast" -msgstr "Rapide" - -#: backend/hp-option.c:3150 -#, no-c-format -msgid "Extra Fast" -msgstr "Très rapide" - -#: backend/hp-option.c:3163 -#, no-c-format -msgid "2-pixel" -msgstr "2 pixels" - -#: backend/hp-option.c:3164 -#, no-c-format -msgid "4-pixel" -msgstr "4 pixels" - -#: backend/hp-option.c:3165 -#, no-c-format -msgid "8-pixel" -msgstr "8 pixels" - -#: backend/hp-option.c:3176 -#, no-c-format -msgid "Print" -msgstr "Imprimer" - -#: backend/hp-option.c:3178 -#, no-c-format -msgid "Film-strip" -msgstr "Film-strip" - -#: backend/hp-option.c:3257 -#, no-c-format -msgid "XPA" -msgstr "Adaptateur pour transparents" - -#: backend/hp-option.c:3331 backend/hp-option.c:3344 -#, no-c-format -msgid "Conditional" -msgstr "Conditionnel" - -#: backend/hp-option.c:3417 -#, no-c-format -msgid "Experiment" -msgstr "Essais" - -#: backend/hp-option.h:60 -#, no-c-format -msgid "Sharpening" -msgstr "Netteté" - -#: backend/hp-option.h:61 -#, no-c-format -msgid "Set sharpening value." -msgstr "Choisir la netteté" - -#: backend/hp-option.h:66 -#, no-c-format -msgid "Auto Threshold" -msgstr "Seuil automatique" - -#: backend/hp-option.h:68 -#, no-c-format -msgid "Enable automatic determination of threshold for line-art scans." -msgstr "" -"Active la détection automatique du seuil pour la numérisation en mode " -"trait." - -#: backend/hp-option.h:74 -#, no-c-format -msgid "Select smoothing filter." -msgstr "Sélectionne le filtre de lissage." - -#: backend/hp-option.h:79 -#, no-c-format -msgid "Unload media after scan" -msgstr "Ejecter le document après la numérisation" - -#: backend/hp-option.h:80 -#, no-c-format -msgid "Unloads the media after a scan." -msgstr "Ejecte le document après la numérisation." - -#: backend/hp-option.h:85 -#, no-c-format -msgid "Change document" -msgstr "Changer de document" - -#: backend/hp-option.h:86 -#, no-c-format -msgid "Change Document." -msgstr "Change de document." - -#: backend/hp-option.h:91 -#, no-c-format -msgid "Unload" -msgstr "Ejecter" - -#: backend/hp-option.h:92 -#, no-c-format -msgid "Unload Document." -msgstr "Ejecter le document." - -#: backend/hp-option.h:98 -#, no-c-format -msgid "Start calibration process." -msgstr "Démarrer la calibration." - -#: backend/hp-option.h:103 -#, no-c-format -msgid "Media" -msgstr "Document" - -#: backend/hp-option.h:104 -#, no-c-format -msgid "Set type of media." -msgstr "Sélectionne le type de document." - -#: backend/hp-option.h:109 -#, no-c-format -msgid "Exposure time" -msgstr "Temps d'exposition" - -#: backend/hp-option.h:111 -#, no-c-format -msgid "" -"A longer exposure time lets the scanner collect more light. Suggested " -"use is 175% for prints, 150% for normal slides and \"Negative\" for " -"negative film. For dark (underexposed) images you can increase this " -"value." -msgstr "" -"Un temps d'exposition plus long permet au scanner de recevoir plus de " -"lumière. Les valeurs suggérées sont : 175% pour des impressions, 150% " -"pour des diapositives normales, et \"Négatif\" pour des négatifs. Pour " -"les images sombres (sous-exposées), vous pouvez augmenter cette valeur." - -#: backend/hp-option.h:119 backend/hp-option.h:126 -#, no-c-format -msgid "Color Matrix" -msgstr "Matrice de couleurs" - -#: backend/hp-option.h:121 -#, fuzzy, no-c-format -msgid "Set the scanner's color matrix." -msgstr "Sélectionne la matrice de couleurs du scanner." - -#: backend/hp-option.h:127 -#, no-c-format -msgid "Custom color matrix." -msgstr "Matrice personnalisée." - -#: backend/hp-option.h:132 -#, no-c-format -msgid "Mono Color Matrix" -msgstr "Matrice monochrome" - -#: backend/hp-option.h:133 -#, no-c-format -msgid "Custom color matrix for grayscale scans." -msgstr "Matrice personnalisée pour numérisation en niveaux de gris." - -#: backend/hp-option.h:138 -#, no-c-format -msgid "Mirror horizontal" -msgstr "Miroir horizontal" - -#: backend/hp-option.h:139 -#, no-c-format -msgid "Mirror image horizontally." -msgstr "Renverse l'image horizontalement." - -#: backend/hp-option.h:144 -#, no-c-format -msgid "Mirror vertical" -msgstr "Miroir vertical" - -#: backend/hp-option.h:145 -#, no-c-format -msgid "Mirror image vertically." -msgstr "Renverse l'image verticalement." - -#: backend/hp-option.h:150 -#, no-c-format -msgid "Update options" -msgstr "Mettre les options à jour" - -#: backend/hp-option.h:151 -#, no-c-format -msgid "Update options." -msgstr "Mets à jour les options." - -#: backend/hp-option.h:156 -#, no-c-format -msgid "8 bit output" -msgstr "Sortie en 8 bits" - -#: backend/hp-option.h:158 -#, no-c-format -msgid "Use bit depth greater eight internally, but output only eight bits." -msgstr "" -"Utilise plus de 8 bits de profondeur en interne, mais sort en 8 bits." - -#: backend/hp-option.h:164 -#, no-c-format -msgid "Front button wait" -msgstr "Attente de bouton avant" - -#: backend/hp-option.h:165 -#, no-c-format -msgid "Wait to scan for front-panel button push." -msgstr "Attendre l'appui sur le bouton du scanner avant de numériser." - -#: backend/hp-option.h:172 -#, no-c-format -msgid "Shut off lamp" -msgstr "Eteindre la lampe" - -#: backend/hp-option.h:173 -#, no-c-format -msgid "Shut off scanner lamp." -msgstr "Eteint la lampe du scanner." - #: backend/kvs1025.h:51 backend/kvs20xx_opt.c:295 backend/kvs40xx_opt.c:516 #: backend/matsushita.h:219 #, no-c-format @@ -4113,7 +4133,7 @@ msgid "single" msgstr "" #: backend/kvs1025_opt.c:73 backend/kvs20xx.c:462 backend/kvs20xx_opt.c:56 -#: backend/kvs40xx.c:704 backend/kvs40xx.c:722 backend/kvs40xx_opt.c:102 +#: backend/kvs40xx.c:705 backend/kvs40xx.c:723 backend/kvs40xx_opt.c:102 #: backend/kvs40xx_opt.c:1087 #, fuzzy, no-c-format msgid "continuous" @@ -4412,7 +4432,7 @@ msgstr "Sélectionne l'accentuation de l'image" #: backend/kvs1025_opt.c:807 backend/kvs1025_opt.c:808 #: backend/matsushita.c:1300 backend/matsushita.c:1301 -#: backend/pixma_sane_options.c:112 +#: backend/pixma/pixma_sane_options.c:112 #, no-c-format msgid "Gamma" msgstr "Gamma" @@ -4702,52 +4722,52 @@ msgstr "Bayer 8x8" msgid "8x8 Vertical Line" msgstr "Ligne verticale 8x8" -#: backend/lexmark.c:273 backend/umax_pp.c:711 +#: backend/lexmark.c:273 backend/umax_pp.c:705 #, no-c-format msgid "Gain" msgstr "Gain" -#: backend/lexmark.c:274 backend/umax_pp.c:712 +#: backend/lexmark.c:274 backend/umax_pp.c:706 #, no-c-format msgid "Color channels gain settings" msgstr "Réglages de gain des couleurs" -#: backend/lexmark.c:283 backend/umax_pp.c:719 +#: backend/lexmark.c:283 backend/umax_pp.c:713 #, no-c-format msgid "Gray gain" msgstr "Gain des gris" -#: backend/lexmark.c:284 backend/umax_pp.c:720 +#: backend/lexmark.c:284 backend/umax_pp.c:714 #, no-c-format msgid "Sets gray channel gain" msgstr "Fixe le gain pour le gris" -#: backend/lexmark.c:297 backend/plustek.c:1001 backend/umax_pp.c:731 +#: backend/lexmark.c:297 backend/plustek.c:1001 backend/umax_pp.c:725 #, no-c-format msgid "Red gain" msgstr "Gain des rouges" -#: backend/lexmark.c:298 backend/umax_pp.c:732 +#: backend/lexmark.c:298 backend/umax_pp.c:726 #, no-c-format msgid "Sets red channel gain" msgstr "Fixe le gain pour le rouge" -#: backend/lexmark.c:311 backend/plustek.c:1017 backend/umax_pp.c:743 +#: backend/lexmark.c:311 backend/plustek.c:1017 backend/umax_pp.c:737 #, no-c-format msgid "Green gain" msgstr "Gain des verts" -#: backend/lexmark.c:312 backend/umax_pp.c:744 +#: backend/lexmark.c:312 backend/umax_pp.c:738 #, no-c-format msgid "Sets green channel gain" msgstr "Fixe le gain pour le vert" -#: backend/lexmark.c:325 backend/plustek.c:1033 backend/umax_pp.c:755 +#: backend/lexmark.c:325 backend/plustek.c:1033 backend/umax_pp.c:749 #, no-c-format msgid "Blue gain" msgstr "Gain des bleus" -#: backend/lexmark.c:326 backend/umax_pp.c:756 +#: backend/lexmark.c:326 backend/umax_pp.c:750 #, no-c-format msgid "Sets blue channel gain" msgstr "Fixe le gain pour le bleu" @@ -4833,7 +4853,7 @@ msgstr "Une page" msgid "All pages" msgstr "Toutes les pages" -#: backend/matsushita.c:1034 backend/plustek.c:1333 +#: backend/matsushita.c:1034 backend/p5_device.c:8 backend/plustek.c:1333 #, no-c-format msgid "sheetfed scanner" msgstr "scanner avec chargeur automatique" @@ -5341,39 +5361,44 @@ msgstr "" "Préchauffer jusqu'à ce que l'intensité de la lampe soit constante, au " "lieu d'attendre 40 secondes." -#: backend/pixma.c:397 +#: backend/p5.c:1926 +#, fuzzy, no-c-format +msgid "Need calibration" +msgstr "Calibration requise" + +#: backend/pixma/pixma.c:397 #, fuzzy, no-c-format msgid "Negative color" msgstr "Film négatif" -#: backend/pixma.c:402 +#: backend/pixma/pixma.c:402 #, fuzzy, no-c-format msgid "Negative gray" msgstr "Négatif" -#: backend/pixma.c:415 +#: backend/pixma/pixma.c:415 #, fuzzy, no-c-format msgid "48 bits color" msgstr "Couleurs précises" -#: backend/pixma.c:420 +#: backend/pixma/pixma.c:420 #, no-c-format msgid "16 bits gray" msgstr "" -#: backend/pixma_sane_options.c:84 +#: backend/pixma/pixma_sane_options.c:84 #, no-c-format msgid "" "Selects the scan source (such as a document-feeder). Set source before " "mode and resolution. Resets mode and resolution to auto values." msgstr "" -#: backend/pixma_sane_options.c:98 +#: backend/pixma/pixma_sane_options.c:98 #, no-c-format msgid "Button-controlled scan" msgstr "Numérisation contrôlée par le bouton du scanner" -#: backend/pixma_sane_options.c:99 +#: backend/pixma/pixma_sane_options.c:99 #, no-c-format msgid "" "When enabled, scan process will not start immediately. To proceed, press " @@ -5384,37 +5409,37 @@ msgstr "" "\" (MP150), ou du bouton \"COLOR\" (autres modèles). Appuyez sur le " "bouton \"GRAY\" pour annuler la numérisation." -#: backend/pixma_sane_options.c:232 +#: backend/pixma/pixma_sane_options.c:232 #, no-c-format msgid "Update button state" msgstr "Rafraîchir l'état du bouton" -#: backend/pixma_sane_options.c:244 +#: backend/pixma/pixma_sane_options.c:244 #, no-c-format msgid "Button 1" msgstr "Bouton 1" -#: backend/pixma_sane_options.c:258 +#: backend/pixma/pixma_sane_options.c:258 #, no-c-format msgid "Button 2" msgstr "Bouton 2" -#: backend/pixma_sane_options.c:272 +#: backend/pixma/pixma_sane_options.c:272 #, no-c-format msgid "Type of original to scan" msgstr "" -#: backend/pixma_sane_options.c:286 +#: backend/pixma/pixma_sane_options.c:286 #, no-c-format msgid "Target operation type" msgstr "" -#: backend/pixma_sane_options.c:348 +#: backend/pixma/pixma_sane_options.c:348 #, no-c-format msgid "ADF Waiting Time" msgstr "" -#: backend/pixma_sane_options.c:349 +#: backend/pixma/pixma_sane_options.c:349 #, no-c-format msgid "" "When set, the scanner waits upto the specified time in seconds for a new " @@ -5506,7 +5531,7 @@ msgstr "Frontal analogique (AFE)" msgid "Red gain value of the AFE" msgstr "Gain des rouges du frontal analogique (AFE)" -#: backend/plustek.c:1009 backend/umax_pp.c:788 +#: backend/plustek.c:1009 backend/umax_pp.c:782 #, no-c-format msgid "Red offset" msgstr "Décalage des rouges" @@ -5783,7 +5808,7 @@ msgstr "" msgid "This option reflects the status of a scanner button." msgstr "Cette option affiche l'état d'un bouton du scanner." -#: backend/rts8891.c:2840 backend/umax.c:5795 backend/umax_pp.c:635 +#: backend/rts8891.c:2840 backend/umax.c:5795 backend/umax_pp.c:629 #, no-c-format msgid "Lamp on" msgstr "Lampe allumée" @@ -5793,12 +5818,12 @@ msgstr "Lampe allumée" msgid "Turn on scanner lamp" msgstr "Allume la lampe du scanner" -#: backend/rts8891.c:2851 backend/umax1220u.c:248 backend/umax.c:5812 +#: backend/rts8891.c:2851 backend/umax.c:5812 backend/umax1220u.c:248 #, no-c-format msgid "Lamp off" msgstr "Lampe éteinte" -#: backend/rts8891.c:2852 backend/umax1220u.c:249 backend/umax.c:5813 +#: backend/rts8891.c:2852 backend/umax.c:5813 backend/umax1220u.c:249 #, no-c-format msgid "Turn off scanner lamp" msgstr "Eteint la lampe du scanner" @@ -6604,56 +6629,66 @@ msgstr "Mode de calibration" msgid "Define calibration mode" msgstr "Définit le mode de calibration" -#: backend/umax_pp.c:636 +#: backend/umax_pp.c:630 #, no-c-format msgid "Sets lamp on/off" msgstr "Allume/éteint la lampe." -#: backend/umax_pp.c:645 +#: backend/umax_pp.c:639 #, no-c-format msgid "UTA on" msgstr "Activer l'UTA" -#: backend/umax_pp.c:646 +#: backend/umax_pp.c:640 #, no-c-format msgid "Sets UTA on/off" msgstr "Activer/déactiver l'adaptateur universel de transparents (UTA)" -#: backend/umax_pp.c:767 +#: backend/umax_pp.c:761 #, no-c-format msgid "Offset" msgstr "Décalage" -#: backend/umax_pp.c:769 +#: backend/umax_pp.c:763 #, no-c-format msgid "Color channels offset settings" msgstr "Réglages de décalage des couleurs" -#: backend/umax_pp.c:776 +#: backend/umax_pp.c:770 #, no-c-format msgid "Gray offset" msgstr "Décalage des gris" -#: backend/umax_pp.c:777 +#: backend/umax_pp.c:771 #, no-c-format msgid "Sets gray channel offset" msgstr "Fixe le décalage pour le gris" -#: backend/umax_pp.c:789 +#: backend/umax_pp.c:783 #, no-c-format msgid "Sets red channel offset" msgstr "Fixe le décalage pour le rouge" -#: backend/umax_pp.c:801 +#: backend/umax_pp.c:795 #, no-c-format msgid "Sets green channel offset" msgstr "Fixe le décalage pour le vert" -#: backend/umax_pp.c:813 +#: backend/umax_pp.c:807 #, no-c-format msgid "Sets blue channel offset" msgstr "Fixe le décalage pour le bleu" +#~ msgid "Disable dynamic lineart" +#~ msgstr "Désactiver le mode Trait dynamique" + +#~ msgid "" +#~ "Disable use of a software adaptive algorithm to generate lineart " +#~ "relying instead on hardware lineart." +#~ msgstr "" +#~ "Utilise le mode Trait du matériel, au lieu d'utiliser un algorithme " +#~ "logiciel adaptatif." + #, fuzzy #~ msgid "IPC mode" #~ msgstr "Aperçu" diff --git a/po/gl.po b/po/gl.po index cc80655a5..d3894955a 100644 --- a/po/gl.po +++ b/po/gl.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: sane-backends\n" "Report-Msgid-Bugs-To: sane-devel@alioth-lists.debian.net\n" -"POT-Creation-Date: 2019-10-12 17:41+0300\n" +"POT-Creation-Date: 2020-01-12 07:09+0000\n" "PO-Revision-Date: 2009-06-25 10:22+0100\n" "Last-Translator: Miguel Anxo Bouzada \n" "Language-Team: Galician \n" @@ -31,23 +31,23 @@ msgid "Standard" msgstr "Estándar" #: include/sane/saneopts.h:157 backend/artec_eplus48u.c:2884 -#: backend/epson.c:3298 backend/epson2.c:1290 -#: backend/genesys/genesys.cpp:3976 backend/gt68xx.c:696 -#: backend/hp3500.c:1019 backend/hp-option.c:3300 backend/kvs1025_opt.c:639 +#: backend/epson.c:3298 backend/epson2.c:1290 backend/epsonds.c:677 +#: backend/genesys/genesys.cpp:4034 backend/gt68xx.c:696 +#: backend/hp-option.c:3300 backend/hp3500.c:1019 backend/kvs1025_opt.c:639 #: backend/kvs20xx_opt.c:285 backend/kvs40xx_opt.c:506 backend/leo.c:823 #: backend/lexmark.c:199 backend/ma1509.c:551 backend/matsushita.c:1135 #: backend/microtek2.h:599 backend/mustek.c:4373 backend/mustek_usb.c:301 -#: backend/mustek_usb2.c:465 backend/pixma_sane_options.c:160 +#: backend/mustek_usb2.c:465 backend/pixma/pixma_sane_options.c:160 #: backend/plustek.c:808 backend/plustek_pp.c:747 backend/sceptre.c:702 #: backend/snapscan-options.c:550 backend/teco1.c:1095 backend/teco2.c:1910 #: backend/teco3.c:920 backend/test.c:647 backend/u12.c:546 -#: backend/umax.c:5176 backend/umax_pp.c:576 +#: backend/umax.c:5176 backend/umax_pp.c:570 #, no-c-format msgid "Geometry" msgstr "Xeometría" #: include/sane/saneopts.h:158 backend/artec_eplus48u.c:2805 -#: backend/canon.c:1493 backend/genesys/genesys.cpp:4035 +#: backend/canon.c:1493 backend/genesys/genesys.cpp:4077 #: backend/gt68xx.c:665 backend/hp-option.c:2956 backend/kvs1025_opt.c:703 #: backend/leo.c:871 backend/ma1509.c:599 backend/matsushita.c:1189 #: backend/microtek2.h:600 backend/mustek.c:4421 backend/mustek_usb.c:349 @@ -55,7 +55,7 @@ msgstr "Xeometría" #: backend/plustek_pp.c:793 backend/sceptre.c:750 #: backend/snapscan-options.c:617 backend/stv680.c:1067 #: backend/teco1.c:1143 backend/teco2.c:1958 backend/teco3.c:968 -#: backend/u12.c:592 backend/umax.c:5226 backend/umax_pp.c:625 +#: backend/u12.c:592 backend/umax.c:5226 backend/umax_pp.c:619 #, no-c-format msgid "Enhancement" msgstr "Optimización" @@ -89,7 +89,7 @@ msgid "Bit depth" msgstr "Bit de profundidade" #: include/sane/saneopts.h:165 backend/canon.c:1140 backend/leo.c:781 -#: backend/pixma_sane_options.c:47 +#: backend/pixma/pixma_sane_options.c:47 #, no-c-format msgid "Scan mode" msgstr "Modo de escaneo" @@ -130,7 +130,7 @@ msgid "Bottom-right y" msgstr "Abaixo-dereita Y" #: include/sane/saneopts.h:173 backend/canon.c:1216 -#: backend/pixma_sane_options.c:300 +#: backend/pixma/pixma_sane_options.c:300 #, no-c-format msgid "Scan resolution" msgstr "Resolución de escaneo" @@ -285,7 +285,7 @@ msgstr "Nome do ficheiro" msgid "Halftone pattern size" msgstr "Tamaño do patrón de medios tons" -#: include/sane/saneopts.h:204 backend/fujitsu.c:3233 +#: include/sane/saneopts.h:204 backend/fujitsu.c:3237 #, no-c-format msgid "Halftone pattern" msgstr "Patrón de medios tons" @@ -295,10 +295,10 @@ msgstr "Patrón de medios tons" msgid "Bind X and Y resolution" msgstr "Ligar resolucións X e Y" -#: include/sane/saneopts.h:206 backend/hp3900_sane.c:428 -#: backend/hp3900_sane.c:1021 backend/hp3900_sane.c:1421 -#: backend/hp-option.c:3238 backend/mustek_usb2.c:121 backend/plustek.c:236 -#: backend/plustek_pp.c:205 backend/u12.c:157 +#: include/sane/saneopts.h:206 backend/hp-option.c:3238 +#: backend/hp3900_sane.c:428 backend/hp3900_sane.c:1021 +#: backend/hp3900_sane.c:1421 backend/mustek_usb2.c:121 +#: backend/plustek.c:236 backend/plustek_pp.c:205 backend/u12.c:157 #, no-c-format msgid "Negative" msgstr "Negativo" @@ -1052,78 +1052,38 @@ msgid "" msgstr "" "O escaneo dúplex fornece un escaneo do anverso e o reverso do documento" -#: backend/canon630u.c:159 +#: backend/canon-sane.c:674 backend/canon.c:171 #, no-c-format -msgid "Calibrate Scanner" -msgstr "Calibrar o escáner" +msgid "Correction according to transparency ratio" +msgstr "Corrección conforme coa taxa de transparencia" -#: backend/canon630u.c:160 +#: backend/canon-sane.c:680 backend/canon.c:170 #, no-c-format -msgid "Force scanner calibration before scan" -msgstr "Forza a calibrar o escáner antes de facer o escaneo" +msgid "Correction according to film type" +msgstr "Corrección conforme co tipo de filme" -#: backend/canon630u.c:259 backend/umax1220u.c:208 -#, no-c-format -msgid "Grayscale scan" -msgstr "Escaneo en escala de grises" - -#: backend/canon630u.c:260 backend/umax1220u.c:209 -#, no-c-format -msgid "Do a grayscale rather than color scan" -msgstr "Escanea en escala de grises, non en cores" - -#: backend/canon630u.c:306 -#, no-c-format -msgid "Analog Gain" -msgstr "Ganancia analóxica" - -#: backend/canon630u.c:307 -#, no-c-format -msgid "Increase or decrease the analog gain of the CCD array" -msgstr "Aumenta o diminúe a ganancia analóxica da gama CCD" - -#: backend/canon630u.c:347 backend/epson.h:68 backend/epson2.h:67 -#, no-c-format -msgid "Gamma Correction" -msgstr "Corrección gamma" - -#: backend/canon630u.c:348 -#, no-c-format -msgid "Selects the gamma corrected transfer curve" -msgstr "Selecciona a curva de transferencia da corrección gamma" - -#: backend/canon.c:149 backend/canon-sane.c:1318 -#, no-c-format -msgid "Raw" -msgstr "En bruto" - -#: backend/canon.c:157 backend/canon-sane.c:732 backend/canon-sane.c:940 +#: backend/canon-sane.c:732 backend/canon-sane.c:940 #: backend/canon-sane.c:1076 backend/canon-sane.c:1314 -#: backend/canon-sane.c:1494 backend/canon-sane.c:1643 +#: backend/canon-sane.c:1494 backend/canon-sane.c:1643 backend/canon.c:157 #, no-c-format msgid "Fine color" msgstr "Cor fina" +#: backend/canon-sane.c:776 backend/canon.c:176 +#, no-c-format +msgid "Negatives" +msgstr "Negativos" + +#: backend/canon-sane.c:1318 backend/canon.c:149 +#, no-c-format +msgid "Raw" +msgstr "En bruto" + #: backend/canon.c:169 #, no-c-format msgid "No transparency correction" msgstr "Sen corrección de transparencia" -#: backend/canon.c:170 backend/canon-sane.c:680 -#, no-c-format -msgid "Correction according to film type" -msgstr "Corrección conforme co tipo de filme" - -#: backend/canon.c:171 backend/canon-sane.c:674 -#, no-c-format -msgid "Correction according to transparency ratio" -msgstr "Corrección conforme coa taxa de transparencia" - -#: backend/canon.c:176 backend/canon-sane.c:776 -#, no-c-format -msgid "Negatives" -msgstr "Negativos" - #: backend/canon.c:176 #, no-c-format msgid "Slides" @@ -1554,94 +1514,137 @@ msgstr "Escoller tipo de filme" msgid "Select the film type" msgstr "Escoller o tipo de filme" -#: backend/canon_dr.c:411 backend/epjitsu.c:233 backend/epson.c:501 -#: backend/epson2.c:115 backend/fujitsu.c:675 backend/gt68xx.c:148 +#: backend/canon630u.c:159 +#, no-c-format +msgid "Calibrate Scanner" +msgstr "Calibrar o escáner" + +#: backend/canon630u.c:160 +#, no-c-format +msgid "Force scanner calibration before scan" +msgstr "Forza a calibrar o escáner antes de facer o escaneo" + +#: backend/canon630u.c:259 backend/umax1220u.c:208 +#, no-c-format +msgid "Grayscale scan" +msgstr "Escaneo en escala de grises" + +#: backend/canon630u.c:260 backend/umax1220u.c:209 +#, no-c-format +msgid "Do a grayscale rather than color scan" +msgstr "Escanea en escala de grises, non en cores" + +#: backend/canon630u.c:306 +#, no-c-format +msgid "Analog Gain" +msgstr "Ganancia analóxica" + +#: backend/canon630u.c:307 +#, no-c-format +msgid "Increase or decrease the analog gain of the CCD array" +msgstr "Aumenta o diminúe a ganancia analóxica da gama CCD" + +#: backend/canon630u.c:347 backend/epson.h:68 backend/epson2.h:67 +#, no-c-format +msgid "Gamma Correction" +msgstr "Corrección gamma" + +#: backend/canon630u.c:348 +#, no-c-format +msgid "Selects the gamma corrected transfer curve" +msgstr "Selecciona a curva de transferencia da corrección gamma" + +#: backend/canon_dr.c:413 backend/epjitsu.c:233 backend/epson.c:501 +#: backend/epson2-ops.c:101 backend/epson2.c:115 backend/epsonds-ops.c:32 +#: backend/epsonds.c:95 backend/epsonds.h:62 backend/fujitsu.c:677 +#: backend/genesys/genesys.h:78 backend/gt68xx.c:148 #: backend/hp3900_sane.c:418 backend/hp3900_sane.c:427 -#: backend/hp3900_sane.c:1017 backend/hp5590.c:92 backend/ma1509.c:108 -#: backend/magicolor.c:181 backend/mustek.c:156 backend/mustek.c:160 -#: backend/mustek.c:164 backend/pixma.c:920 backend/pixma_sane_options.c:92 -#: backend/snapscan-options.c:86 backend/test.c:192 backend/umax.c:181 +#: backend/hp3900_sane.c:1017 backend/hp5590.c:92 backend/kodakaio.c:617 +#: backend/ma1509.c:108 backend/magicolor.c:181 backend/mustek.c:156 +#: backend/mustek.c:160 backend/mustek.c:164 backend/pixma/pixma.c:920 +#: backend/pixma/pixma_sane_options.c:92 backend/snapscan-options.c:86 +#: backend/test.c:192 backend/umax.c:181 #, no-c-format msgid "Flatbed" msgstr "Plano" -#: backend/canon_dr.c:412 backend/epjitsu.c:234 backend/fujitsu.c:676 +#: backend/canon_dr.c:414 backend/epjitsu.c:234 backend/fujitsu.c:678 #: backend/kodak.c:140 #, fuzzy, no-c-format msgid "ADF Front" msgstr "A tapa do alimentador está aberta" -#: backend/canon_dr.c:413 backend/epjitsu.c:235 backend/fujitsu.c:677 +#: backend/canon_dr.c:415 backend/epjitsu.c:235 backend/fujitsu.c:679 #: backend/kodak.c:141 #, fuzzy, no-c-format msgid "ADF Back" msgstr "Atoamento no alimentador" -#: backend/canon_dr.c:414 backend/epjitsu.c:236 backend/fujitsu.c:678 -#: backend/hp5590.c:94 backend/kodak.c:142 backend/pixma.c:931 +#: backend/canon_dr.c:416 backend/epjitsu.c:236 backend/fujitsu.c:680 +#: backend/hp5590.c:94 backend/kodak.c:142 backend/pixma/pixma.c:931 #, no-c-format msgid "ADF Duplex" msgstr "Alimentador dúplex" -#: backend/canon_dr.c:415 +#: backend/canon_dr.c:417 #, fuzzy, no-c-format msgid "Card Front" msgstr "Imprimir" -#: backend/canon_dr.c:416 +#: backend/canon_dr.c:418 #, no-c-format msgid "Card Back" msgstr "" -#: backend/canon_dr.c:417 +#: backend/canon_dr.c:419 #, fuzzy, no-c-format msgid "Card Duplex" msgstr "Duas caras" -#: backend/canon_dr.c:424 backend/epson.c:599 backend/epson.c:3096 -#: backend/epson2.c:201 backend/fujitsu.c:695 -#: backend/genesys/genesys.cpp:99 backend/genesys/genesys.cpp:106 +#: backend/canon_dr.c:426 backend/epson.c:599 backend/epson.c:3096 +#: backend/epson2.c:201 backend/fujitsu.c:697 +#: backend/genesys/genesys.cpp:120 backend/genesys/genesys.cpp:127 #: backend/gt68xx_low.h:136 backend/hp-option.c:3096 #, no-c-format msgid "Red" msgstr "Vermello" -#: backend/canon_dr.c:425 backend/epson.c:600 backend/epson.c:3092 -#: backend/epson2.c:202 backend/fujitsu.c:696 -#: backend/genesys/genesys.cpp:100 backend/genesys/genesys.cpp:107 +#: backend/canon_dr.c:427 backend/epson.c:600 backend/epson.c:3092 +#: backend/epson2.c:202 backend/fujitsu.c:698 +#: backend/genesys/genesys.cpp:121 backend/genesys/genesys.cpp:128 #: backend/gt68xx_low.h:137 backend/hp-option.c:3097 #, no-c-format msgid "Green" msgstr "Verde" -#: backend/canon_dr.c:426 backend/epson.c:601 backend/epson.c:3100 -#: backend/epson2.c:203 backend/fujitsu.c:697 -#: backend/genesys/genesys.cpp:101 backend/genesys/genesys.cpp:108 +#: backend/canon_dr.c:428 backend/epson.c:601 backend/epson.c:3100 +#: backend/epson2.c:203 backend/fujitsu.c:699 +#: backend/genesys/genesys.cpp:122 backend/genesys/genesys.cpp:129 #: backend/gt68xx_low.h:138 backend/hp-option.c:3098 #, no-c-format msgid "Blue" msgstr "Azul" -#: backend/canon_dr.c:427 +#: backend/canon_dr.c:429 #, fuzzy, no-c-format msgid "Enhance Red" msgstr "Optimización" -#: backend/canon_dr.c:428 +#: backend/canon_dr.c:430 #, fuzzy, no-c-format msgid "Enhance Green" msgstr "Optimización" -#: backend/canon_dr.c:429 +#: backend/canon_dr.c:431 #, fuzzy, no-c-format msgid "Enhance Blue" msgstr "Optimización" -#: backend/canon_dr.c:431 backend/epson.c:556 backend/epson.c:564 +#: backend/canon_dr.c:433 backend/epson.c:556 backend/epson.c:564 #: backend/epson.c:576 backend/epson.c:598 backend/epson2.c:165 #: backend/epson2.c:173 backend/epson2.c:185 backend/epson2.c:200 -#: backend/epson2.c:214 backend/fujitsu.c:701 -#: backend/genesys/genesys.cpp:109 backend/leo.c:109 +#: backend/epson2.c:214 backend/fujitsu.c:703 +#: backend/genesys/genesys.cpp:130 backend/leo.c:109 #: backend/matsushita.c:138 backend/matsushita.c:159 #: backend/matsushita.c:191 backend/matsushita.c:213 #: backend/snapscan-options.c:91 @@ -1649,42 +1652,46 @@ msgstr "Optimización" msgid "None" msgstr "Ningún" -#: backend/canon_dr.c:432 backend/fujitsu.c:702 +#: backend/canon_dr.c:434 backend/fujitsu.c:704 #, no-c-format msgid "JPEG" msgstr "" -#: backend/canon_dr.c:2477 backend/fujitsu.c:4113 -#: backend/genesys/genesys.cpp:4126 backend/kvs1025_opt.c:910 +#: backend/canon_dr.c:2479 backend/fujitsu.c:4117 +#: backend/genesys/genesys.cpp:4168 backend/kvs1025_opt.c:910 #, no-c-format msgid "Software blank skip percentage" msgstr "" -#: backend/canon_dr.c:2478 backend/fujitsu.c:4114 +#: backend/canon_dr.c:2480 backend/fujitsu.c:4118 #, no-c-format msgid "Request driver to discard pages with low percentage of dark pixels" msgstr "" -#: backend/epson.c:491 backend/epson2.c:108 backend/magicolor.c:174 +#: backend/epson.c:491 backend/epson2.c:108 backend/epsonds.c:88 +#: backend/kodakaio.c:611 backend/magicolor.c:174 #, no-c-format msgid "Simplex" msgstr "Unha cara" -#: backend/epson.c:492 backend/epson2.c:109 backend/kvs1025.h:50 -#: backend/kvs20xx_opt.c:204 backend/kvs40xx_opt.c:353 -#: backend/magicolor.c:175 backend/matsushita.h:218 +#: backend/epson.c:492 backend/epson2.c:109 backend/epsonds.c:89 +#: backend/kodakaio.c:612 backend/kvs1025.h:50 backend/kvs20xx_opt.c:204 +#: backend/kvs40xx_opt.c:353 backend/magicolor.c:175 +#: backend/matsushita.h:218 #, no-c-format msgid "Duplex" msgstr "Duas caras" -#: backend/epson.c:502 backend/epson2.c:116 backend/pixma.c:937 +#: backend/epson.c:502 backend/epson2-ops.c:102 backend/epson2.c:116 +#: backend/epsonds-ops.c:33 backend/epsonds.h:63 backend/pixma/pixma.c:937 #, no-c-format msgid "Transparency Unit" msgstr "Unidade de transparencias" -#: backend/epson.c:503 backend/epson2.c:118 backend/magicolor.c:182 -#: backend/mustek.c:160 backend/pixma.c:925 backend/test.c:192 -#: backend/umax.c:183 +#: backend/epson.c:503 backend/epson2-ops.c:104 backend/epson2.c:118 +#: backend/epsonds-ops.c:34 backend/epsonds.c:96 backend/epsonds.h:64 +#: backend/kodakaio.c:618 backend/magicolor.c:182 backend/mustek.c:160 +#: backend/pixma/pixma.c:925 backend/test.c:192 backend/umax.c:183 #, no-c-format msgid "Automatic Document Feeder" msgstr "Alimentador automático de documentos (ADF)" @@ -1796,7 +1803,7 @@ msgstr "Impresoras de inxección de tinta" msgid "CRT monitors" msgstr "Monitores CRT" -#: backend/epson.c:656 backend/epson2.c:254 backend/fujitsu.c:685 +#: backend/epson.c:656 backend/epson2.c:254 backend/fujitsu.c:687 #: backend/hp-option.c:3229 backend/test.c:143 #, no-c-format msgid "Default" @@ -1860,8 +1867,8 @@ msgstr "A4" msgid "Max" msgstr "Máx" -#: backend/epson.c:2813 backend/epson2.c:976 -#: backend/genesys/genesys.cpp:3893 backend/gt68xx.c:451 +#: backend/epson.c:2813 backend/epson2.c:976 backend/epsonds.c:629 +#: backend/genesys/genesys.cpp:3965 backend/gt68xx.c:451 #: backend/hp-option.c:2917 backend/kvs1025_opt.c:521 #: backend/kvs20xx_opt.c:171 backend/kvs40xx_opt.c:320 backend/ma1509.c:501 #: backend/matsushita.c:1084 backend/microtek2.h:598 backend/mustek.c:4215 @@ -2036,17 +2043,17 @@ msgstr "Define o factor de zoom que vai usar o escáner" msgid "Quick format" msgstr "Formato rápido" -#: backend/epson.c:3360 backend/epson2.c:1340 +#: backend/epson.c:3360 backend/epson2.c:1340 backend/epsonds.c:726 #, no-c-format msgid "Optional equipment" msgstr "Equipamento opcional" -#: backend/epson.c:3431 backend/epson2.c:1393 +#: backend/epson.c:3431 backend/epson2.c:1393 backend/epsonds.c:742 #, no-c-format msgid "Eject" msgstr "Expulsar" -#: backend/epson.c:3432 backend/epson2.c:1394 +#: backend/epson.c:3432 backend/epson2.c:1394 backend/epsonds.c:743 #, no-c-format msgid "Eject the sheet in the ADF" msgstr "Expulsar a folla do alimentador" @@ -2061,12 +2068,14 @@ msgstr "Expulsión automática" msgid "Eject document after scanning" msgstr "Expulsar o documento despois do escaneo" -#: backend/epson.c:3457 backend/epson2.c:1416 backend/magicolor.c:2420 +#: backend/epson.c:3457 backend/epson2.c:1416 backend/epsonds.c:758 +#: backend/kodakaio.c:2855 backend/magicolor.c:2420 #, no-c-format msgid "ADF Mode" msgstr "Modo alimentador" -#: backend/epson.c:3459 backend/epson2.c:1418 backend/magicolor.c:2422 +#: backend/epson.c:3459 backend/epson2.c:1418 backend/epsonds.c:760 +#: backend/kodakaio.c:2857 backend/magicolor.c:2422 #, no-c-format msgid "Selects the ADF mode (simplex/duplex)" msgstr "Escoller o modo do alimentador (unha cara/duas caras)" @@ -2118,16 +2127,16 @@ msgstr "" "Despois de enviar a orde de escaneo, agardar até que se prema no botón " "do escáner para comezar verdadeiramente o proceso de escaneo." -#: backend/epson2.c:102 backend/pixma.c:409 -#, no-c-format -msgid "Infrared" -msgstr "" - -#: backend/epson2.c:117 +#: backend/epson2-ops.c:103 backend/epson2.c:117 #, no-c-format msgid "TPU8x10" msgstr "" +#: backend/epson2.c:102 backend/pixma/pixma.c:409 +#, no-c-format +msgid "Infrared" +msgstr "" + #: backend/epson2.c:136 #, no-c-format msgid "Positive Slide" @@ -2148,494 +2157,514 @@ msgstr "" msgid "User defined CCT profile" msgstr "Definida polo usuario" -#: backend/fujitsu.c:686 backend/hp-option.c:3330 backend/hp-option.c:3343 +#: backend/epsonds.c:750 +#, no-c-format +msgid "Load" +msgstr "" + +#: backend/epsonds.c:751 +#, fuzzy, no-c-format +msgid "Load a sheet in the ADF" +msgstr "Expulsar a folla do alimentador" + +#: backend/epsonds.c:771 +#, fuzzy, no-c-format +msgid "ADF Skew Correction" +msgstr "Sen corrección" + +#: backend/epsonds.c:773 +#, fuzzy, no-c-format +msgid "Enables ADF skew correction" +msgstr "Desactivar a corrección gamma" + +#: backend/fujitsu.c:688 backend/hp-option.c:3330 backend/hp-option.c:3343 #, no-c-format msgid "On" msgstr "Activado" -#: backend/fujitsu.c:687 backend/hp-option.c:3162 backend/hp-option.c:3329 +#: backend/fujitsu.c:689 backend/hp-option.c:3162 backend/hp-option.c:3329 #: backend/hp-option.c:3342 #, no-c-format msgid "Off" msgstr "Desactivado" -#: backend/fujitsu.c:689 +#: backend/fujitsu.c:691 #, no-c-format msgid "DTC" msgstr "" -#: backend/fujitsu.c:690 +#: backend/fujitsu.c:692 #, no-c-format msgid "SDTC" msgstr "" -#: backend/fujitsu.c:692 backend/teco1.c:1152 backend/teco1.c:1153 +#: backend/fujitsu.c:694 backend/teco1.c:1152 backend/teco1.c:1153 #: backend/teco2.c:1967 backend/teco2.c:1968 backend/teco3.c:977 #: backend/teco3.c:978 #, no-c-format msgid "Dither" msgstr "Esfumado" -#: backend/fujitsu.c:693 +#: backend/fujitsu.c:695 #, fuzzy, no-c-format msgid "Diffusion" msgstr "Difusión de erro" -#: backend/fujitsu.c:698 +#: backend/fujitsu.c:700 #, fuzzy, no-c-format msgid "White" msgstr "Nivel do branco" -#: backend/fujitsu.c:699 +#: backend/fujitsu.c:701 #, fuzzy, no-c-format msgid "Black" msgstr "Nivel do negro" -#: backend/fujitsu.c:704 +#: backend/fujitsu.c:706 #, fuzzy, no-c-format msgid "Continue" msgstr "Condicional" -#: backend/fujitsu.c:705 +#: backend/fujitsu.c:707 #, no-c-format msgid "Stop" msgstr "" -#: backend/fujitsu.c:707 +#: backend/fujitsu.c:709 #, no-c-format msgid "10mm" msgstr "" -#: backend/fujitsu.c:708 +#: backend/fujitsu.c:710 #, no-c-format msgid "15mm" msgstr "" -#: backend/fujitsu.c:709 +#: backend/fujitsu.c:711 #, no-c-format msgid "20mm" msgstr "" -#: backend/fujitsu.c:711 backend/hp-option.c:3048 +#: backend/fujitsu.c:713 backend/hp-option.c:3048 #, no-c-format msgid "Horizontal" msgstr "Horizontal" -#: backend/fujitsu.c:712 +#: backend/fujitsu.c:714 #, fuzzy, no-c-format msgid "Horizontal bold" msgstr "Horizontal" -#: backend/fujitsu.c:713 +#: backend/fujitsu.c:715 #, fuzzy, no-c-format msgid "Horizontal narrow" msgstr "Horizontal" -#: backend/fujitsu.c:714 backend/hp-option.c:3047 +#: backend/fujitsu.c:716 backend/hp-option.c:3047 #, no-c-format msgid "Vertical" msgstr "Vertical" -#: backend/fujitsu.c:715 +#: backend/fujitsu.c:717 #, fuzzy, no-c-format msgid "Vertical bold" msgstr "Vertical" -#: backend/fujitsu.c:717 +#: backend/fujitsu.c:719 #, no-c-format msgid "Top to bottom" msgstr "" -#: backend/fujitsu.c:718 +#: backend/fujitsu.c:720 #, no-c-format msgid "Bottom to top" msgstr "" -#: backend/fujitsu.c:720 +#: backend/fujitsu.c:722 #, fuzzy, no-c-format msgid "Front" msgstr "Imprimir" -#: backend/fujitsu.c:721 +#: backend/fujitsu.c:723 #, no-c-format msgid "Back" msgstr "" -#: backend/fujitsu.c:3144 backend/pixma_sane_options.c:145 +#: backend/fujitsu.c:3148 backend/pixma/pixma_sane_options.c:145 #, no-c-format msgid "Gamma function exponent" msgstr "" -#: backend/fujitsu.c:3145 backend/pixma_sane_options.c:146 +#: backend/fujitsu.c:3149 backend/pixma/pixma_sane_options.c:146 #, no-c-format msgid "Changes intensity of midtones" msgstr "" -#: backend/fujitsu.c:3194 +#: backend/fujitsu.c:3198 #, no-c-format msgid "RIF" msgstr "" -#: backend/fujitsu.c:3195 +#: backend/fujitsu.c:3199 #, no-c-format msgid "Reverse image format" msgstr "" -#: backend/fujitsu.c:3212 +#: backend/fujitsu.c:3216 #, fuzzy, no-c-format msgid "Halftone type" msgstr "Medios tons" -#: backend/fujitsu.c:3213 +#: backend/fujitsu.c:3217 #, no-c-format msgid "Control type of halftone filter" msgstr "" -#: backend/fujitsu.c:3234 +#: backend/fujitsu.c:3238 #, no-c-format msgid "Control pattern of halftone filter" msgstr "" -#: backend/fujitsu.c:3256 +#: backend/fujitsu.c:3260 #, no-c-format msgid "Outline" msgstr "" -#: backend/fujitsu.c:3257 +#: backend/fujitsu.c:3261 #, fuzzy, no-c-format msgid "Perform outline extraction" msgstr "Calibración de precisión" -#: backend/fujitsu.c:3268 +#: backend/fujitsu.c:3272 #, fuzzy, no-c-format msgid "Emphasis" msgstr "Destaque da imaxe" -#: backend/fujitsu.c:3269 +#: backend/fujitsu.c:3273 #, no-c-format msgid "Negative to smooth or positive to sharpen image" msgstr "" -#: backend/fujitsu.c:3287 +#: backend/fujitsu.c:3291 #, fuzzy, no-c-format msgid "Separation" msgstr "Saturación" -#: backend/fujitsu.c:3288 +#: backend/fujitsu.c:3292 #, fuzzy, no-c-format msgid "Enable automatic separation of image and text" msgstr "" "Activar a determinación automática do limiar para escaneos como liña de " "arte." -#: backend/fujitsu.c:3299 +#: backend/fujitsu.c:3303 #, fuzzy, no-c-format msgid "Mirroring" msgstr "Reflectir a imaxe horizontalmente" -#: backend/fujitsu.c:3300 +#: backend/fujitsu.c:3304 #, fuzzy, no-c-format msgid "Reflect output image horizontally" msgstr "Reflectir a imaxe en horizontal" -#: backend/fujitsu.c:3317 +#: backend/fujitsu.c:3321 #, fuzzy, no-c-format msgid "White level follower" msgstr "Nivel do branco para azul" -#: backend/fujitsu.c:3318 +#: backend/fujitsu.c:3322 #, fuzzy, no-c-format msgid "Control white level follower" msgstr "Controla o nivel de vermello" -#: backend/fujitsu.c:3336 +#: backend/fujitsu.c:3340 #, fuzzy, no-c-format msgid "BP filter" msgstr "Filtro de cor" -#: backend/fujitsu.c:3337 +#: backend/fujitsu.c:3341 #, no-c-format msgid "Improves quality of high resolution ball-point pen text" msgstr "" -#: backend/fujitsu.c:3353 backend/hp-option.h:73 +#: backend/fujitsu.c:3357 backend/hp-option.h:73 #, no-c-format msgid "Smoothing" msgstr "Suavizado" -#: backend/fujitsu.c:3354 +#: backend/fujitsu.c:3358 #, no-c-format msgid "Enable smoothing for improved OCR" msgstr "" -#: backend/fujitsu.c:3370 +#: backend/fujitsu.c:3374 #, fuzzy, no-c-format msgid "Gamma curve" msgstr "Valor gamma" -#: backend/fujitsu.c:3371 +#: backend/fujitsu.c:3375 #, no-c-format msgid "Gamma curve, from light to dark, but upper two may not work" msgstr "" -#: backend/fujitsu.c:3393 backend/genesys/genesys.cpp:4187 -#: backend/pixma_sane_options.c:335 +#: backend/fujitsu.c:3397 backend/genesys/genesys.cpp:4229 +#: backend/pixma/pixma_sane_options.c:335 #, fuzzy, no-c-format msgid "Threshold curve" msgstr "Limiar" -#: backend/fujitsu.c:3394 +#: backend/fujitsu.c:3398 #, no-c-format msgid "" "Threshold curve, from light to dark, but upper two may not be linear" msgstr "" -#: backend/fujitsu.c:3416 +#: backend/fujitsu.c:3420 #, fuzzy, no-c-format msgid "Threshold white" msgstr "Limiar" -#: backend/fujitsu.c:3417 +#: backend/fujitsu.c:3421 #, no-c-format msgid "Set pixels equal to threshold to white instead of black" msgstr "" -#: backend/fujitsu.c:3433 backend/fujitsu.c:3434 +#: backend/fujitsu.c:3437 backend/fujitsu.c:3438 #, fuzzy, no-c-format msgid "Noise removal" msgstr "Redución de ruído" -#: backend/fujitsu.c:3450 +#: backend/fujitsu.c:3454 #, no-c-format msgid "Matrix 5x5" msgstr "" -#: backend/fujitsu.c:3451 +#: backend/fujitsu.c:3455 #, no-c-format msgid "Remove 5 pixel square noise" msgstr "" -#: backend/fujitsu.c:3467 +#: backend/fujitsu.c:3471 #, no-c-format msgid "Matrix 4x4" msgstr "" -#: backend/fujitsu.c:3468 +#: backend/fujitsu.c:3472 #, no-c-format msgid "Remove 4 pixel square noise" msgstr "" -#: backend/fujitsu.c:3484 +#: backend/fujitsu.c:3488 #, no-c-format msgid "Matrix 3x3" msgstr "" -#: backend/fujitsu.c:3485 +#: backend/fujitsu.c:3489 #, no-c-format msgid "Remove 3 pixel square noise" msgstr "" -#: backend/fujitsu.c:3501 +#: backend/fujitsu.c:3505 #, no-c-format msgid "Matrix 2x2" msgstr "" -#: backend/fujitsu.c:3502 +#: backend/fujitsu.c:3506 #, no-c-format msgid "Remove 2 pixel square noise" msgstr "" -#: backend/fujitsu.c:3521 +#: backend/fujitsu.c:3525 #, no-c-format msgid "Variance" msgstr "" -#: backend/fujitsu.c:3522 +#: backend/fujitsu.c:3526 #, no-c-format msgid "Set SDTC variance rate (sensitivity), 0 equals 127" msgstr "" -#: backend/fujitsu.c:3555 +#: backend/fujitsu.c:3559 #, fuzzy, no-c-format msgid "Auto width detection" msgstr "Sen corrección" -#: backend/fujitsu.c:3556 +#: backend/fujitsu.c:3560 #, no-c-format msgid "Scanner detects paper sides. May reduce scanning speed." msgstr "" -#: backend/fujitsu.c:3573 +#: backend/fujitsu.c:3577 #, fuzzy, no-c-format msgid "Auto length detection" msgstr "Sen corrección" -#: backend/fujitsu.c:3574 +#: backend/fujitsu.c:3578 #, no-c-format msgid "Scanner detects paper lower edge. May confuse some frontends." msgstr "" -#: backend/fujitsu.c:3600 +#: backend/fujitsu.c:3604 #, no-c-format msgid "Compression" msgstr "" -#: backend/fujitsu.c:3601 +#: backend/fujitsu.c:3605 #, no-c-format msgid "Enable compressed data. May crash your front-end program" msgstr "" -#: backend/fujitsu.c:3621 +#: backend/fujitsu.c:3625 #, no-c-format msgid "Compression argument" msgstr "" -#: backend/fujitsu.c:3622 +#: backend/fujitsu.c:3626 #, no-c-format msgid "" "Level of JPEG compression. 1 is small file, 7 is large file. 0 (default) " "is same as 4" msgstr "" -#: backend/fujitsu.c:3652 +#: backend/fujitsu.c:3656 #, no-c-format msgid "DF action" msgstr "" -#: backend/fujitsu.c:3653 +#: backend/fujitsu.c:3657 #, no-c-format msgid "Action following double feed error" msgstr "" -#: backend/fujitsu.c:3669 +#: backend/fujitsu.c:3673 #, no-c-format msgid "DF skew" msgstr "" -#: backend/fujitsu.c:3670 +#: backend/fujitsu.c:3674 #, no-c-format msgid "Enable double feed error due to skew" msgstr "" -#: backend/fujitsu.c:3688 +#: backend/fujitsu.c:3692 #, no-c-format msgid "DF thickness" msgstr "" -#: backend/fujitsu.c:3689 +#: backend/fujitsu.c:3693 #, no-c-format msgid "Enable double feed error due to paper thickness" msgstr "" -#: backend/fujitsu.c:3707 +#: backend/fujitsu.c:3711 #, no-c-format msgid "DF length" msgstr "" -#: backend/fujitsu.c:3708 +#: backend/fujitsu.c:3712 #, no-c-format msgid "Enable double feed error due to paper length" msgstr "" -#: backend/fujitsu.c:3731 +#: backend/fujitsu.c:3735 #, no-c-format msgid "DF length difference" msgstr "" -#: backend/fujitsu.c:3732 +#: backend/fujitsu.c:3736 #, no-c-format msgid "Difference in page length to trigger double feed error" msgstr "" -#: backend/fujitsu.c:3755 +#: backend/fujitsu.c:3759 #, fuzzy, no-c-format msgid "DF recovery mode" msgstr "A tapa do alimentador está aberta" -#: backend/fujitsu.c:3756 +#: backend/fujitsu.c:3760 #, no-c-format msgid "Request scanner to reverse feed on paper jam" msgstr "" -#: backend/fujitsu.c:3775 +#: backend/fujitsu.c:3779 #, no-c-format msgid "Paper protection" msgstr "" -#: backend/fujitsu.c:3776 +#: backend/fujitsu.c:3780 #, no-c-format msgid "Request scanner to predict jams in the ADF" msgstr "" -#: backend/fujitsu.c:3795 +#: backend/fujitsu.c:3799 #, fuzzy, no-c-format msgid "Advanced paper protection" msgstr "Opcions avanzadas" -#: backend/fujitsu.c:3796 +#: backend/fujitsu.c:3800 #, no-c-format msgid "Request scanner to predict jams in the ADF using improved sensors" msgstr "" -#: backend/fujitsu.c:3815 +#: backend/fujitsu.c:3819 #, fuzzy, no-c-format msgid "Staple detection" msgstr "Sen corrección" -#: backend/fujitsu.c:3816 +#: backend/fujitsu.c:3820 #, no-c-format msgid "Request scanner to detect jams in the ADF caused by staples" msgstr "" -#: backend/fujitsu.c:3835 +#: backend/fujitsu.c:3839 #, no-c-format msgid "Background color" msgstr "" -#: backend/fujitsu.c:3836 +#: backend/fujitsu.c:3840 #, no-c-format msgid "" "Set color of background for scans. May conflict with overscan option" msgstr "" -#: backend/fujitsu.c:3856 +#: backend/fujitsu.c:3860 #, fuzzy, no-c-format msgid "Dropout color" msgstr "Exclusión" -#: backend/fujitsu.c:3857 +#: backend/fujitsu.c:3861 #, no-c-format msgid "" "One-pass scanners use only one color during gray or binary scanning, " "useful for colored paper or ink" msgstr "" -#: backend/fujitsu.c:3880 +#: backend/fujitsu.c:3884 #, fuzzy, no-c-format msgid "Buffer mode" msgstr "Modo de alimentación" -#: backend/fujitsu.c:3881 +#: backend/fujitsu.c:3885 #, no-c-format msgid "Request scanner to read pages quickly from ADF into internal memory" msgstr "" -#: backend/fujitsu.c:3900 +#: backend/fujitsu.c:3904 #, no-c-format msgid "Prepick" msgstr "" -#: backend/fujitsu.c:3901 +#: backend/fujitsu.c:3905 #, no-c-format msgid "Request scanner to grab next page from ADF" msgstr "" -#: backend/fujitsu.c:3920 +#: backend/fujitsu.c:3924 #, no-c-format msgid "Overscan" msgstr "" -#: backend/fujitsu.c:3921 +#: backend/fujitsu.c:3925 #, no-c-format msgid "" "Collect a few mm of background on top side of scan, before paper enters " @@ -2643,65 +2672,65 @@ msgid "" "collection on remaining sides. May conflict with bgcolor option" msgstr "" -#: backend/fujitsu.c:3939 +#: backend/fujitsu.c:3943 #, no-c-format msgid "Sleep timer" msgstr "" -#: backend/fujitsu.c:3940 +#: backend/fujitsu.c:3944 #, no-c-format msgid "" "Time in minutes until the internal power supply switches to sleep mode" msgstr "" -#: backend/fujitsu.c:3958 +#: backend/fujitsu.c:3962 #, fuzzy, no-c-format msgid "Off timer" msgstr "Tempo para apagado da lámpada" -#: backend/fujitsu.c:3959 +#: backend/fujitsu.c:3963 #, no-c-format msgid "" "Time in minutes until the internal power supply switches the scanner " "off. Will be rounded to nearest 15 minutes. Zero means never power off." msgstr "" -#: backend/fujitsu.c:3977 +#: backend/fujitsu.c:3981 #, fuzzy, no-c-format msgid "Duplex offset" msgstr "Desviación azul" -#: backend/fujitsu.c:3978 +#: backend/fujitsu.c:3982 #, no-c-format msgid "Adjust front/back offset" msgstr "" -#: backend/fujitsu.c:3995 backend/plustek.c:1025 backend/umax_pp.c:800 +#: backend/fujitsu.c:3999 backend/plustek.c:1025 backend/umax_pp.c:794 #, no-c-format msgid "Green offset" msgstr "Desviación verde" -#: backend/fujitsu.c:3996 +#: backend/fujitsu.c:4000 #, fuzzy, no-c-format msgid "Adjust green/red offset" msgstr "Desviación verde" -#: backend/fujitsu.c:4013 backend/plustek.c:1041 backend/umax_pp.c:812 +#: backend/fujitsu.c:4017 backend/plustek.c:1041 backend/umax_pp.c:806 #, no-c-format msgid "Blue offset" msgstr "Desviación azul" -#: backend/fujitsu.c:4014 +#: backend/fujitsu.c:4018 #, fuzzy, no-c-format msgid "Adjust blue/red offset" msgstr "Axusta o desprazamento da canle azul" -#: backend/fujitsu.c:4027 +#: backend/fujitsu.c:4031 #, fuzzy, no-c-format msgid "Low Memory" msgstr "Non queda memoria" -#: backend/fujitsu.c:4028 +#: backend/fujitsu.c:4032 #, no-c-format msgid "" "Limit driver memory usage for use in embedded systems. Causes some " @@ -2710,374 +2739,362 @@ msgid "" "only be used with custom front-end software." msgstr "" -#: backend/fujitsu.c:4043 +#: backend/fujitsu.c:4047 #, fuzzy, no-c-format msgid "Duplex side" msgstr "Escaneo dúplex" -#: backend/fujitsu.c:4044 +#: backend/fujitsu.c:4048 #, no-c-format msgid "" "Tells which side (0=front, 1=back) of a duplex scan the next call to " "sane_read will return." msgstr "" -#: backend/fujitsu.c:4055 +#: backend/fujitsu.c:4059 #, no-c-format msgid "Hardware deskew and crop" msgstr "" -#: backend/fujitsu.c:4056 +#: backend/fujitsu.c:4060 #, no-c-format msgid "Request scanner to rotate and crop pages digitally." msgstr "" -#: backend/fujitsu.c:4067 backend/kvs1025_opt.c:871 +#: backend/fujitsu.c:4071 backend/kvs1025_opt.c:871 #, no-c-format msgid "Software deskew" msgstr "" -#: backend/fujitsu.c:4068 +#: backend/fujitsu.c:4072 #, no-c-format msgid "Request driver to rotate skewed pages digitally." msgstr "" -#: backend/fujitsu.c:4080 backend/kvs1025_opt.c:880 +#: backend/fujitsu.c:4084 backend/kvs1025_opt.c:880 #, no-c-format msgid "Software despeckle diameter" msgstr "" -#: backend/fujitsu.c:4081 +#: backend/fujitsu.c:4085 #, no-c-format msgid "Maximum diameter of lone dots to remove from scan." msgstr "" -#: backend/fujitsu.c:4100 backend/genesys/genesys.cpp:4117 +#: backend/fujitsu.c:4104 backend/genesys/genesys.cpp:4159 #, no-c-format msgid "Software crop" msgstr "" -#: backend/fujitsu.c:4101 +#: backend/fujitsu.c:4105 #, no-c-format msgid "Request driver to remove border from pages digitally." msgstr "" -#: backend/fujitsu.c:4130 +#: backend/fujitsu.c:4134 #, no-c-format msgid "Halt on Cancel" msgstr "" -#: backend/fujitsu.c:4131 +#: backend/fujitsu.c:4135 #, no-c-format msgid "" "Request driver to halt the paper feed instead of eject during a cancel." msgstr "" -#: backend/fujitsu.c:4142 +#: backend/fujitsu.c:4146 #, fuzzy, no-c-format msgid "Endorser Options" msgstr "Opcions avanzadas" -#: backend/fujitsu.c:4143 +#: backend/fujitsu.c:4147 #, no-c-format msgid "Controls for endorser unit" msgstr "" -#: backend/fujitsu.c:4154 +#: backend/fujitsu.c:4158 #, no-c-format msgid "Endorser" msgstr "" -#: backend/fujitsu.c:4155 +#: backend/fujitsu.c:4159 #, no-c-format msgid "Enable endorser unit" msgstr "" -#: backend/fujitsu.c:4170 +#: backend/fujitsu.c:4174 #, no-c-format msgid "Endorser bits" msgstr "" -#: backend/fujitsu.c:4171 +#: backend/fujitsu.c:4175 #, no-c-format msgid "Determines maximum endorser counter value." msgstr "" -#: backend/fujitsu.c:4196 +#: backend/fujitsu.c:4200 #, no-c-format msgid "Endorser value" msgstr "" -#: backend/fujitsu.c:4197 +#: backend/fujitsu.c:4201 #, no-c-format msgid "Initial endorser counter value." msgstr "" -#: backend/fujitsu.c:4220 +#: backend/fujitsu.c:4224 #, no-c-format msgid "Endorser step" msgstr "" -#: backend/fujitsu.c:4221 +#: backend/fujitsu.c:4225 #, no-c-format msgid "Change endorser counter value by this much for each page." msgstr "" -#: backend/fujitsu.c:4244 +#: backend/fujitsu.c:4248 #, no-c-format msgid "Endorser Y" msgstr "" -#: backend/fujitsu.c:4245 +#: backend/fujitsu.c:4249 #, no-c-format msgid "Endorser print offset from top of paper." msgstr "" -#: backend/fujitsu.c:4270 +#: backend/fujitsu.c:4274 #, no-c-format msgid "Endorser font" msgstr "" -#: backend/fujitsu.c:4271 +#: backend/fujitsu.c:4275 #, no-c-format msgid "Endorser printing font." msgstr "" -#: backend/fujitsu.c:4300 +#: backend/fujitsu.c:4304 #, fuzzy, no-c-format msgid "Endorser direction" msgstr "Redución de ruído" -#: backend/fujitsu.c:4301 +#: backend/fujitsu.c:4305 #, no-c-format msgid "Endorser printing direction." msgstr "" -#: backend/fujitsu.c:4325 +#: backend/fujitsu.c:4329 #, no-c-format msgid "Endorser side" msgstr "" -#: backend/fujitsu.c:4326 +#: backend/fujitsu.c:4330 #, no-c-format msgid "Endorser printing side, requires hardware support to change" msgstr "" -#: backend/fujitsu.c:4351 +#: backend/fujitsu.c:4355 #, no-c-format msgid "Endorser string" msgstr "" -#: backend/fujitsu.c:4352 +#: backend/fujitsu.c:4356 #, no-c-format msgid "" "Endorser alphanumeric print format. %05ud or %08ud at the end will be " "replaced by counter value." msgstr "" -#: backend/fujitsu.c:4379 +#: backend/fujitsu.c:4383 #, no-c-format msgid "Top edge" msgstr "" -#: backend/fujitsu.c:4380 +#: backend/fujitsu.c:4384 #, no-c-format msgid "Paper is pulled partly into ADF" msgstr "" -#: backend/fujitsu.c:4391 +#: backend/fujitsu.c:4395 #, fuzzy, no-c-format msgid "A3 paper" msgstr "De papel" -#: backend/fujitsu.c:4392 +#: backend/fujitsu.c:4396 #, no-c-format msgid "A3 paper detected" msgstr "" -#: backend/fujitsu.c:4403 +#: backend/fujitsu.c:4407 #, fuzzy, no-c-format msgid "B4 paper" msgstr "De papel" -#: backend/fujitsu.c:4404 +#: backend/fujitsu.c:4408 #, no-c-format msgid "B4 paper detected" msgstr "" -#: backend/fujitsu.c:4415 +#: backend/fujitsu.c:4419 #, fuzzy, no-c-format msgid "A4 paper" msgstr "De papel" -#: backend/fujitsu.c:4416 +#: backend/fujitsu.c:4420 #, no-c-format msgid "A4 paper detected" msgstr "" -#: backend/fujitsu.c:4427 +#: backend/fujitsu.c:4431 #, fuzzy, no-c-format msgid "B5 paper" msgstr "De papel" -#: backend/fujitsu.c:4428 +#: backend/fujitsu.c:4432 #, no-c-format msgid "B5 paper detected" msgstr "" -#: backend/fujitsu.c:4451 +#: backend/fujitsu.c:4455 #, no-c-format msgid "OMR or DF" msgstr "" -#: backend/fujitsu.c:4452 +#: backend/fujitsu.c:4456 #, no-c-format msgid "OMR or double feed detected" msgstr "" -#: backend/fujitsu.c:4475 +#: backend/fujitsu.c:4479 #, no-c-format msgid "Power saving" msgstr "" -#: backend/fujitsu.c:4476 +#: backend/fujitsu.c:4480 #, fuzzy, no-c-format msgid "Scanner in power saving mode" msgstr "A tapa do escáner está aberta" -#: backend/fujitsu.c:4499 +#: backend/fujitsu.c:4503 #, fuzzy, no-c-format msgid "Manual feed" msgstr "Foco previo manual" -#: backend/fujitsu.c:4500 +#: backend/fujitsu.c:4504 #, fuzzy, no-c-format msgid "Manual feed selected" msgstr "Foco previo manual" -#: backend/fujitsu.c:4523 +#: backend/fujitsu.c:4527 #, no-c-format msgid "Function" msgstr "" -#: backend/fujitsu.c:4524 +#: backend/fujitsu.c:4528 #, no-c-format msgid "Function character on screen" msgstr "" -#: backend/fujitsu.c:4535 +#: backend/fujitsu.c:4539 #, no-c-format msgid "Ink low" msgstr "" -#: backend/fujitsu.c:4536 +#: backend/fujitsu.c:4540 #, no-c-format msgid "Imprinter ink running low" msgstr "" -#: backend/fujitsu.c:4547 +#: backend/fujitsu.c:4551 #, no-c-format msgid "Double feed" msgstr "" -#: backend/fujitsu.c:4548 +#: backend/fujitsu.c:4552 #, no-c-format msgid "Double feed detected" msgstr "" -#: backend/fujitsu.c:4559 +#: backend/fujitsu.c:4563 #, no-c-format msgid "Error code" msgstr "" -#: backend/fujitsu.c:4560 +#: backend/fujitsu.c:4564 #, fuzzy, no-c-format msgid "Hardware error code" msgstr "erro de verificación de hardware" -#: backend/fujitsu.c:4571 +#: backend/fujitsu.c:4575 #, no-c-format msgid "Skew angle" msgstr "" -#: backend/fujitsu.c:4572 +#: backend/fujitsu.c:4576 #, no-c-format msgid "Requires black background for scanning" msgstr "" -#: backend/fujitsu.c:4583 +#: backend/fujitsu.c:4587 #, no-c-format msgid "Ink remaining" msgstr "" -#: backend/fujitsu.c:4584 +#: backend/fujitsu.c:4588 #, fuzzy, no-c-format msgid "Imprinter ink level" msgstr "Nivel do branco" -#: backend/fujitsu.c:4595 +#: backend/fujitsu.c:4599 #, fuzzy, no-c-format msgid "Density" msgstr "Control de densidade" -#: backend/fujitsu.c:4596 +#: backend/fujitsu.c:4600 #, fuzzy, no-c-format msgid "Density dial" msgstr "Control de densidade" -#: backend/fujitsu.c:4607 backend/fujitsu.c:4608 +#: backend/fujitsu.c:4611 backend/fujitsu.c:4612 #, fuzzy, no-c-format msgid "Duplex switch" msgstr "Escaneo dúplex" -#: backend/genesys/genesys.cpp:4118 +#: backend/genesys/genesys.cpp:4160 #, no-c-format msgid "Request backend to remove border from pages digitally" msgstr "" -#: backend/genesys/genesys.cpp:4127 backend/kvs1025_opt.c:912 +#: backend/genesys/genesys.cpp:4169 backend/kvs1025_opt.c:912 #, no-c-format msgid "Request driver to discard pages with low numbers of dark pixels" msgstr "" -#: backend/genesys/genesys.cpp:4137 backend/kvs1025_opt.c:892 +#: backend/genesys/genesys.cpp:4179 backend/kvs1025_opt.c:892 #, no-c-format msgid "Software derotate" msgstr "" -#: backend/genesys/genesys.cpp:4138 backend/kvs1025_opt.c:894 +#: backend/genesys/genesys.cpp:4180 backend/kvs1025_opt.c:894 #, no-c-format msgid "Request driver to detect and correct 90 degree image rotation" msgstr "" -#: backend/genesys/genesys.cpp:4168 backend/pixma_sane_options.c:314 +#: backend/genesys/genesys.cpp:4210 backend/pixma/pixma_sane_options.c:314 #, no-c-format msgid "Extras" msgstr "Extras" -#: backend/genesys/genesys.cpp:4188 backend/pixma_sane_options.c:336 +#: backend/genesys/genesys.cpp:4230 backend/pixma/pixma_sane_options.c:336 #, no-c-format msgid "Dynamic threshold curve, from light to dark, normally 50-65" msgstr "" -#: backend/genesys/genesys.cpp:4197 -#, no-c-format -msgid "Disable dynamic lineart" -msgstr "" - -#: backend/genesys/genesys.cpp:4199 -#, no-c-format -msgid "" -"Disable use of a software adaptive algorithm to generate lineart relying " -"instead on hardware lineart." -msgstr "" - -#: backend/genesys/genesys.cpp:4215 +#: backend/genesys/genesys.cpp:4240 #, no-c-format msgid "Disable interpolation" msgstr "Desactivar interpolación" -#: backend/genesys/genesys.cpp:4218 +#: backend/genesys/genesys.cpp:4243 #, no-c-format msgid "" "When using high resolutions where the horizontal resolution is smaller " @@ -3086,45 +3103,45 @@ msgstr "" "Cando se usan altas resolucións nas que a resolución horizontal é máis " "pequena que a vertical, isto desactiva a interpolación horizontal." -#: backend/genesys/genesys.cpp:4227 +#: backend/genesys/genesys.cpp:4252 #, fuzzy, no-c-format msgid "Color filter" msgstr "Filtro de cor" -#: backend/genesys/genesys.cpp:4230 +#: backend/genesys/genesys.cpp:4255 #, no-c-format msgid "When using gray or lineart this option selects the used color." msgstr "" "Cando se usa gris ou liña de arte esta opción selecciona a cor a usar." -#: backend/genesys/genesys.cpp:4254 +#: backend/genesys/genesys.cpp:4279 #, fuzzy, no-c-format msgid "Calibration file" msgstr "Calibración" -#: backend/genesys/genesys.cpp:4255 +#: backend/genesys/genesys.cpp:4280 #, fuzzy, no-c-format msgid "Specify the calibration file to use" msgstr "Definir o modo de calibración" -#: backend/genesys/genesys.cpp:4272 +#: backend/genesys/genesys.cpp:4297 #, fuzzy, no-c-format msgid "Calibration cache expiration time" msgstr "Caché de datos de calibración" -#: backend/genesys/genesys.cpp:4273 +#: backend/genesys/genesys.cpp:4298 #, no-c-format msgid "" "Time (in minutes) before a cached calibration expires. A value of 0 " "means cache is not used. A negative value means cache never expires." msgstr "" -#: backend/genesys/genesys.cpp:4283 +#: backend/genesys/genesys.cpp:4308 #, no-c-format msgid "Lamp off time" msgstr "Tempo para apagado da lámpada" -#: backend/genesys/genesys.cpp:4286 +#: backend/genesys/genesys.cpp:4311 #, no-c-format msgid "" "The lamp will be turned off after the given time (in minutes). A value " @@ -3133,103 +3150,108 @@ msgstr "" "A lámpada vai ser apagada despois do tempo indicado (en minutos). Un " "valor de 0 significa que a lámpada no vai ser apagada." -#: backend/genesys/genesys.cpp:4296 +#: backend/genesys/genesys.cpp:4321 #, fuzzy, no-c-format msgid "Lamp off during scan" msgstr "Apagar a lámpada durante a calibración de escuridade" -#: backend/genesys/genesys.cpp:4297 +#: backend/genesys/genesys.cpp:4322 #, fuzzy, no-c-format msgid "The lamp will be turned off during scan. " msgstr "Minutos que tardará a lámpada en apagarse despois do escaneo" -#: backend/genesys/genesys.cpp:4324 backend/genesys/genesys.cpp:4325 +#: backend/genesys/genesys.cpp:4349 backend/genesys/genesys.cpp:4350 #, no-c-format msgid "File button" msgstr "Botón de ficheiro" -#: backend/genesys/genesys.cpp:4369 backend/genesys/genesys.cpp:4370 +#: backend/genesys/genesys.cpp:4394 backend/genesys/genesys.cpp:4395 #, no-c-format msgid "OCR button" msgstr "Botón de OCR" -#: backend/genesys/genesys.cpp:4381 backend/genesys/genesys.cpp:4382 +#: backend/genesys/genesys.cpp:4406 backend/genesys/genesys.cpp:4407 #, no-c-format msgid "Power button" msgstr "Botón de enerxía" -#: backend/genesys/genesys.cpp:4393 backend/genesys/genesys.cpp:4394 +#: backend/genesys/genesys.cpp:4418 backend/genesys/genesys.cpp:4419 #, fuzzy, no-c-format msgid "Extra button" msgstr "Botón de correo-e" -#: backend/genesys/genesys.cpp:4405 backend/gt68xx.c:755 +#: backend/genesys/genesys.cpp:4430 backend/gt68xx.c:755 #, fuzzy, no-c-format msgid "Needs calibration" msgstr "Limpar a calibración" -#: backend/genesys/genesys.cpp:4406 backend/gt68xx.c:756 +#: backend/genesys/genesys.cpp:4431 backend/gt68xx.c:756 backend/p5.c:1928 #, fuzzy, no-c-format msgid "The scanner needs calibration for the current settings" msgstr "Forza a calibrar o escáner antes de facer o escaneo" -#: backend/genesys/genesys.cpp:4417 backend/gt68xx.c:780 -#: backend/gt68xx.c:781 backend/pixma_sane_options.c:226 -#: backend/plustek.c:1080 +#: backend/genesys/genesys.cpp:4442 backend/gt68xx.c:780 +#: backend/gt68xx.c:781 backend/p5.c:1937 backend/p5.c:1938 +#: backend/pixma/pixma_sane_options.c:226 backend/plustek.c:1080 #, no-c-format msgid "Buttons" msgstr "Botóns" -#: backend/genesys/genesys.cpp:4426 backend/gt68xx.c:787 -#: backend/hp5400_sane.c:392 backend/hp-option.h:97 backend/niash.c:726 -#: backend/plustek.c:941 +#: backend/genesys/genesys.cpp:4451 backend/gt68xx.c:787 +#: backend/hp-option.h:97 backend/hp5400_sane.c:392 backend/niash.c:726 +#: backend/p5.c:1945 backend/plustek.c:941 #, no-c-format msgid "Calibrate" msgstr "Calibrar" -#: backend/genesys/genesys.cpp:4428 backend/gt68xx.c:789 +#: backend/genesys/genesys.cpp:4453 backend/gt68xx.c:789 backend/p5.c:1947 #, no-c-format msgid "Start calibration using special sheet" msgstr "Iniciar a calibración usando unha folla especial" -#: backend/genesys/genesys.cpp:4440 backend/gt68xx.c:802 +#: backend/genesys/genesys.cpp:4465 backend/gt68xx.c:802 backend/p5.c:1958 #, no-c-format msgid "Clear calibration" msgstr "Limpar a calibración" -#: backend/genesys/genesys.cpp:4441 backend/gt68xx.c:803 +#: backend/genesys/genesys.cpp:4466 backend/gt68xx.c:803 backend/p5.c:1960 #, no-c-format msgid "Clear calibration cache" msgstr "Limpar a caché de datos de calibración" -#: backend/genesys/genesys.cpp:4451 +#: backend/genesys/genesys.cpp:4476 #, fuzzy, no-c-format msgid "Force calibration" msgstr "Calibración grosa" -#: backend/genesys/genesys.cpp:4452 +#: backend/genesys/genesys.cpp:4477 #, no-c-format msgid "Force calibration ignoring all and any calibration caches" msgstr "" -#: backend/genesys/genesys.cpp:4462 +#: backend/genesys/genesys.cpp:4487 #, fuzzy, no-c-format msgid "Ignore internal offsets" msgstr "Desviación verde" -#: backend/genesys/genesys.cpp:4464 +#: backend/genesys/genesys.cpp:4489 #, no-c-format msgid "" "Acquires the image including the internal calibration areas of the " "scanner" msgstr "" -#: backend/gt68xx.c:149 backend/ma1509.c:108 backend/mustek.c:164 -#: backend/snapscan-options.c:87 backend/umax.c:182 +#: backend/genesys/genesys.h:79 backend/gt68xx.c:149 backend/ma1509.c:108 +#: backend/mustek.c:164 backend/snapscan-options.c:87 backend/umax.c:182 #, no-c-format msgid "Transparency Adapter" msgstr "Adaptador de transparencias" +#: backend/genesys/genesys.h:80 +#, fuzzy, no-c-format +msgid "Transparency Adapter Infrared" +msgstr "Adaptador de transparencias" + #: backend/gt68xx.c:470 #, no-c-format msgid "Gray mode color" @@ -3340,6 +3362,312 @@ msgstr "Valor gamma" msgid "Sets the gamma value of all channels." msgstr "Axusta o valor gamma para todas as canles." +#: backend/hp-option.c:2987 +#, no-c-format +msgid "Advanced Options" +msgstr "Opcions avanzadas" + +#: backend/hp-option.c:3044 +#, no-c-format +msgid "Coarse" +msgstr "Groso" + +#: backend/hp-option.c:3045 +#, no-c-format +msgid "Fine" +msgstr "Fina" + +#: backend/hp-option.c:3046 +#, no-c-format +msgid "Bayer" +msgstr "Bayer" + +#: backend/hp-option.c:3049 backend/hp-option.c:3100 +#, no-c-format +msgid "Custom" +msgstr "Personalizado" + +#: backend/hp-option.c:3090 backend/hp-option.c:3146 +#: backend/hp-option.c:3161 +#, no-c-format +msgid "Auto" +msgstr "Automático" + +#: backend/hp-option.c:3091 +#, no-c-format +msgid "NTSC RGB" +msgstr "NTSC RGB" + +#: backend/hp-option.c:3092 +#, no-c-format +msgid "XPA RGB" +msgstr "Adaptador de transparencias RGB" + +#: backend/hp-option.c:3093 +#, no-c-format +msgid "Pass-through" +msgstr "A través" + +#: backend/hp-option.c:3094 +#, no-c-format +msgid "NTSC Gray" +msgstr "NTSC Gris" + +#: backend/hp-option.c:3095 +#, no-c-format +msgid "XPA Gray" +msgstr "Adaptador de transparencias gris" + +#: backend/hp-option.c:3147 +#, no-c-format +msgid "Slow" +msgstr "Lento" + +#: backend/hp-option.c:3148 backend/hp-option.c:3255 +#: backend/kvs40xx_opt.c:230 backend/matsushita.c:244 backend/mustek.c:149 +#: backend/plustek.c:234 backend/plustek_pp.c:203 backend/u12.c:155 +#, no-c-format +msgid "Normal" +msgstr "Normal" + +#: backend/hp-option.c:3149 +#, no-c-format +msgid "Fast" +msgstr "Rápido" + +#: backend/hp-option.c:3150 +#, no-c-format +msgid "Extra Fast" +msgstr "Moi rápido" + +#: backend/hp-option.c:3163 +#, no-c-format +msgid "2-pixel" +msgstr "2-píxeles" + +#: backend/hp-option.c:3164 +#, no-c-format +msgid "4-pixel" +msgstr "4-píxeles" + +#: backend/hp-option.c:3165 +#, no-c-format +msgid "8-pixel" +msgstr "8-píxeles" + +#: backend/hp-option.c:3176 +#, no-c-format +msgid "Print" +msgstr "Imprimir" + +#: backend/hp-option.c:3177 backend/hp3900_sane.c:427 +#: backend/hp3900_sane.c:1019 +#, no-c-format +msgid "Slide" +msgstr "Diapositiva" + +#: backend/hp-option.c:3178 +#, no-c-format +msgid "Film-strip" +msgstr "Tira de filme" + +#: backend/hp-option.c:3256 backend/hp5590.c:93 +#, no-c-format +msgid "ADF" +msgstr "Alimentador automático de documentos (ADF)" + +#: backend/hp-option.c:3257 +#, no-c-format +msgid "XPA" +msgstr "Adaptador de transparencias (XPA)" + +#: backend/hp-option.c:3331 backend/hp-option.c:3344 +#, no-c-format +msgid "Conditional" +msgstr "Condicional" + +#: backend/hp-option.c:3417 +#, no-c-format +msgid "Experiment" +msgstr "Experimento" + +#: backend/hp-option.h:60 +#, no-c-format +msgid "Sharpening" +msgstr "Nitidez" + +#: backend/hp-option.h:61 +#, no-c-format +msgid "Set sharpening value." +msgstr "Axustar o valor de nitidez." + +#: backend/hp-option.h:66 +#, no-c-format +msgid "Auto Threshold" +msgstr "Limiar automático" + +#: backend/hp-option.h:68 +#, no-c-format +msgid "Enable automatic determination of threshold for line-art scans." +msgstr "" +"Activar a determinación automática do limiar para escaneos como liña de " +"arte." + +#: backend/hp-option.h:74 +#, no-c-format +msgid "Select smoothing filter." +msgstr "Escoller filtro de suavizado." + +#: backend/hp-option.h:79 +#, no-c-format +msgid "Unload media after scan" +msgstr "Descargar os soportes despois de escanear." + +#: backend/hp-option.h:80 +#, no-c-format +msgid "Unloads the media after a scan." +msgstr "Descargar as unidades despois de escanear." + +#: backend/hp-option.h:85 +#, no-c-format +msgid "Change document" +msgstr "Cambiar o documento" + +#: backend/hp-option.h:86 +#, no-c-format +msgid "Change Document." +msgstr "Cambiar o documento." + +#: backend/hp-option.h:91 +#, no-c-format +msgid "Unload" +msgstr "Descargar" + +#: backend/hp-option.h:92 +#, no-c-format +msgid "Unload Document." +msgstr "Descargar o documento" + +#: backend/hp-option.h:98 +#, no-c-format +msgid "Start calibration process." +msgstr "Iniciar proceso de calibración" + +#: backend/hp-option.h:103 +#, no-c-format +msgid "Media" +msgstr "Soporte" + +#: backend/hp-option.h:104 +#, no-c-format +msgid "Set type of media." +msgstr "Axustar tipo de soporte." + +#: backend/hp-option.h:109 +#, no-c-format +msgid "Exposure time" +msgstr "Tempo de exposición" + +#: backend/hp-option.h:111 +#, no-c-format +msgid "" +"A longer exposure time lets the scanner collect more light. Suggested " +"use is 175% for prints, 150% for normal slides and \"Negative\" for " +"negative film. For dark (underexposed) images you can increase this " +"value." +msgstr "" +"Unha exposición prolongada permítelle ao escáner recoller máis luz. " +"Suxírese usar 175% para impresións, 150% para diapositivas normais e " +"«Negativo» para filme en negativo. Para imaxes escuras (subexpostas) " +"pode incrementar este valor." + +#: backend/hp-option.h:119 backend/hp-option.h:126 +#, no-c-format +msgid "Color Matrix" +msgstr "Matriz de cor" + +#: backend/hp-option.h:121 +#, fuzzy, no-c-format +msgid "Set the scanner's color matrix." +msgstr "Axustar a matriz de cor do escáner." + +#: backend/hp-option.h:127 +#, no-c-format +msgid "Custom color matrix." +msgstr "Matriz de cor personalizada." + +#: backend/hp-option.h:132 +#, no-c-format +msgid "Mono Color Matrix" +msgstr "Matriz monocroma" + +#: backend/hp-option.h:133 +#, no-c-format +msgid "Custom color matrix for grayscale scans." +msgstr "Matriz de cor personalizada para escáneres en escala de grises." + +#: backend/hp-option.h:138 +#, no-c-format +msgid "Mirror horizontal" +msgstr "Espello horizontal" + +#: backend/hp-option.h:139 +#, no-c-format +msgid "Mirror image horizontally." +msgstr "Reflectir a imaxe en horizontal" + +#: backend/hp-option.h:144 +#, no-c-format +msgid "Mirror vertical" +msgstr "Espello vertical" + +#: backend/hp-option.h:145 +#, no-c-format +msgid "Mirror image vertically." +msgstr "Reflectir a imaxe en verticalv" + +#: backend/hp-option.h:150 +#, no-c-format +msgid "Update options" +msgstr "Actualizar as opcións" + +#: backend/hp-option.h:151 +#, no-c-format +msgid "Update options." +msgstr "Actualizar as opcións." + +#: backend/hp-option.h:156 +#, no-c-format +msgid "8 bit output" +msgstr "Saída de 8 bits" + +#: backend/hp-option.h:158 +#, no-c-format +msgid "Use bit depth greater eight internally, but output only eight bits." +msgstr "" +"Usar profundidade de bits maior de oito internamente, mais na saída usar " +"só oito bits." + +#: backend/hp-option.h:164 +#, no-c-format +msgid "Front button wait" +msgstr "Agardar botón frontal" + +#: backend/hp-option.h:165 +#, no-c-format +msgid "Wait to scan for front-panel button push." +msgstr "Agardar a que se prema no botón frontal para escanear." + +#: backend/hp-option.h:172 +#, no-c-format +msgid "Shut off lamp" +msgstr "Apagar lámpada" + +#: backend/hp-option.h:173 +#, no-c-format +msgid "Shut off scanner lamp." +msgstr "Apagar a lámpada do escáner." + #: backend/hp3500.c:1020 #, no-c-format msgid "Geometry Group" @@ -3350,12 +3678,6 @@ msgstr "Grupo de xeometría" msgid "Scan Mode Group" msgstr "Grupo de modo de escaneo" -#: backend/hp3900_sane.c:427 backend/hp3900_sane.c:1019 -#: backend/hp-option.c:3177 -#, no-c-format -msgid "Slide" -msgstr "Diapositiva" - #: backend/hp3900_sane.c:1405 #, no-c-format msgid "Scanner model" @@ -3560,11 +3882,6 @@ msgstr "Acende ou apaga a lámpada" msgid "Calibrates for black and white level." msgstr "Calibrar o nivel de branco e negro." -#: backend/hp5590.c:93 backend/hp-option.c:3256 -#, no-c-format -msgid "ADF" -msgstr "Alimentador automático de documentos (ADF)" - #: backend/hp5590.c:95 #, no-c-format msgid "TMA Slides" @@ -3675,301 +3992,6 @@ msgid "" "r*65536+256*g+b or gray value (default=violet or gray)" msgstr "" -#: backend/hp-option.c:2987 -#, no-c-format -msgid "Advanced Options" -msgstr "Opcions avanzadas" - -#: backend/hp-option.c:3044 -#, no-c-format -msgid "Coarse" -msgstr "Groso" - -#: backend/hp-option.c:3045 -#, no-c-format -msgid "Fine" -msgstr "Fina" - -#: backend/hp-option.c:3046 -#, no-c-format -msgid "Bayer" -msgstr "Bayer" - -#: backend/hp-option.c:3049 backend/hp-option.c:3100 -#, no-c-format -msgid "Custom" -msgstr "Personalizado" - -#: backend/hp-option.c:3090 backend/hp-option.c:3146 -#: backend/hp-option.c:3161 -#, no-c-format -msgid "Auto" -msgstr "Automático" - -#: backend/hp-option.c:3091 -#, no-c-format -msgid "NTSC RGB" -msgstr "NTSC RGB" - -#: backend/hp-option.c:3092 -#, no-c-format -msgid "XPA RGB" -msgstr "Adaptador de transparencias RGB" - -#: backend/hp-option.c:3093 -#, no-c-format -msgid "Pass-through" -msgstr "A través" - -#: backend/hp-option.c:3094 -#, no-c-format -msgid "NTSC Gray" -msgstr "NTSC Gris" - -#: backend/hp-option.c:3095 -#, no-c-format -msgid "XPA Gray" -msgstr "Adaptador de transparencias gris" - -#: backend/hp-option.c:3147 -#, no-c-format -msgid "Slow" -msgstr "Lento" - -#: backend/hp-option.c:3148 backend/hp-option.c:3255 -#: backend/kvs40xx_opt.c:230 backend/matsushita.c:244 backend/mustek.c:149 -#: backend/plustek.c:234 backend/plustek_pp.c:203 backend/u12.c:155 -#, no-c-format -msgid "Normal" -msgstr "Normal" - -#: backend/hp-option.c:3149 -#, no-c-format -msgid "Fast" -msgstr "Rápido" - -#: backend/hp-option.c:3150 -#, no-c-format -msgid "Extra Fast" -msgstr "Moi rápido" - -#: backend/hp-option.c:3163 -#, no-c-format -msgid "2-pixel" -msgstr "2-píxeles" - -#: backend/hp-option.c:3164 -#, no-c-format -msgid "4-pixel" -msgstr "4-píxeles" - -#: backend/hp-option.c:3165 -#, no-c-format -msgid "8-pixel" -msgstr "8-píxeles" - -#: backend/hp-option.c:3176 -#, no-c-format -msgid "Print" -msgstr "Imprimir" - -#: backend/hp-option.c:3178 -#, no-c-format -msgid "Film-strip" -msgstr "Tira de filme" - -#: backend/hp-option.c:3257 -#, no-c-format -msgid "XPA" -msgstr "Adaptador de transparencias (XPA)" - -#: backend/hp-option.c:3331 backend/hp-option.c:3344 -#, no-c-format -msgid "Conditional" -msgstr "Condicional" - -#: backend/hp-option.c:3417 -#, no-c-format -msgid "Experiment" -msgstr "Experimento" - -#: backend/hp-option.h:60 -#, no-c-format -msgid "Sharpening" -msgstr "Nitidez" - -#: backend/hp-option.h:61 -#, no-c-format -msgid "Set sharpening value." -msgstr "Axustar o valor de nitidez." - -#: backend/hp-option.h:66 -#, no-c-format -msgid "Auto Threshold" -msgstr "Limiar automático" - -#: backend/hp-option.h:68 -#, no-c-format -msgid "Enable automatic determination of threshold for line-art scans." -msgstr "" -"Activar a determinación automática do limiar para escaneos como liña de " -"arte." - -#: backend/hp-option.h:74 -#, no-c-format -msgid "Select smoothing filter." -msgstr "Escoller filtro de suavizado." - -#: backend/hp-option.h:79 -#, no-c-format -msgid "Unload media after scan" -msgstr "Descargar os soportes despois de escanear." - -#: backend/hp-option.h:80 -#, no-c-format -msgid "Unloads the media after a scan." -msgstr "Descargar as unidades despois de escanear." - -#: backend/hp-option.h:85 -#, no-c-format -msgid "Change document" -msgstr "Cambiar o documento" - -#: backend/hp-option.h:86 -#, no-c-format -msgid "Change Document." -msgstr "Cambiar o documento." - -#: backend/hp-option.h:91 -#, no-c-format -msgid "Unload" -msgstr "Descargar" - -#: backend/hp-option.h:92 -#, no-c-format -msgid "Unload Document." -msgstr "Descargar o documento" - -#: backend/hp-option.h:98 -#, no-c-format -msgid "Start calibration process." -msgstr "Iniciar proceso de calibración" - -#: backend/hp-option.h:103 -#, no-c-format -msgid "Media" -msgstr "Soporte" - -#: backend/hp-option.h:104 -#, no-c-format -msgid "Set type of media." -msgstr "Axustar tipo de soporte." - -#: backend/hp-option.h:109 -#, no-c-format -msgid "Exposure time" -msgstr "Tempo de exposición" - -#: backend/hp-option.h:111 -#, no-c-format -msgid "" -"A longer exposure time lets the scanner collect more light. Suggested " -"use is 175% for prints, 150% for normal slides and \"Negative\" for " -"negative film. For dark (underexposed) images you can increase this " -"value." -msgstr "" -"Unha exposición prolongada permítelle ao escáner recoller máis luz. " -"Suxírese usar 175% para impresións, 150% para diapositivas normais e " -"«Negativo» para filme en negativo. Para imaxes escuras (subexpostas) " -"pode incrementar este valor." - -#: backend/hp-option.h:119 backend/hp-option.h:126 -#, no-c-format -msgid "Color Matrix" -msgstr "Matriz de cor" - -#: backend/hp-option.h:121 -#, fuzzy, no-c-format -msgid "Set the scanner's color matrix." -msgstr "Axustar a matriz de cor do escáner." - -#: backend/hp-option.h:127 -#, no-c-format -msgid "Custom color matrix." -msgstr "Matriz de cor personalizada." - -#: backend/hp-option.h:132 -#, no-c-format -msgid "Mono Color Matrix" -msgstr "Matriz monocroma" - -#: backend/hp-option.h:133 -#, no-c-format -msgid "Custom color matrix for grayscale scans." -msgstr "Matriz de cor personalizada para escáneres en escala de grises." - -#: backend/hp-option.h:138 -#, no-c-format -msgid "Mirror horizontal" -msgstr "Espello horizontal" - -#: backend/hp-option.h:139 -#, no-c-format -msgid "Mirror image horizontally." -msgstr "Reflectir a imaxe en horizontal" - -#: backend/hp-option.h:144 -#, no-c-format -msgid "Mirror vertical" -msgstr "Espello vertical" - -#: backend/hp-option.h:145 -#, no-c-format -msgid "Mirror image vertically." -msgstr "Reflectir a imaxe en verticalv" - -#: backend/hp-option.h:150 -#, no-c-format -msgid "Update options" -msgstr "Actualizar as opcións" - -#: backend/hp-option.h:151 -#, no-c-format -msgid "Update options." -msgstr "Actualizar as opcións." - -#: backend/hp-option.h:156 -#, no-c-format -msgid "8 bit output" -msgstr "Saída de 8 bits" - -#: backend/hp-option.h:158 -#, no-c-format -msgid "Use bit depth greater eight internally, but output only eight bits." -msgstr "" -"Usar profundidade de bits maior de oito internamente, mais na saída usar " -"só oito bits." - -#: backend/hp-option.h:164 -#, no-c-format -msgid "Front button wait" -msgstr "Agardar botón frontal" - -#: backend/hp-option.h:165 -#, no-c-format -msgid "Wait to scan for front-panel button push." -msgstr "Agardar a que se prema no botón frontal para escanear." - -#: backend/hp-option.h:172 -#, no-c-format -msgid "Shut off lamp" -msgstr "Apagar lámpada" - -#: backend/hp-option.h:173 -#, no-c-format -msgid "Shut off scanner lamp." -msgstr "Apagar a lámpada do escáner." - #: backend/kvs1025.h:51 backend/kvs20xx_opt.c:295 backend/kvs40xx_opt.c:516 #: backend/matsushita.h:219 #, no-c-format @@ -4068,7 +4090,7 @@ msgid "single" msgstr "" #: backend/kvs1025_opt.c:73 backend/kvs20xx.c:462 backend/kvs20xx_opt.c:56 -#: backend/kvs40xx.c:704 backend/kvs40xx.c:722 backend/kvs40xx_opt.c:102 +#: backend/kvs40xx.c:705 backend/kvs40xx.c:723 backend/kvs40xx_opt.c:102 #: backend/kvs40xx_opt.c:1087 #, fuzzy, no-c-format msgid "continuous" @@ -4367,7 +4389,7 @@ msgstr "Axusta o destaque da imaxe" #: backend/kvs1025_opt.c:807 backend/kvs1025_opt.c:808 #: backend/matsushita.c:1300 backend/matsushita.c:1301 -#: backend/pixma_sane_options.c:112 +#: backend/pixma/pixma_sane_options.c:112 #, no-c-format msgid "Gamma" msgstr "Gamma" @@ -4657,52 +4679,52 @@ msgstr "8x8 Bayer" msgid "8x8 Vertical Line" msgstr "8x8 Liña vertical" -#: backend/lexmark.c:273 backend/umax_pp.c:711 +#: backend/lexmark.c:273 backend/umax_pp.c:705 #, no-c-format msgid "Gain" msgstr "Ganancia" -#: backend/lexmark.c:274 backend/umax_pp.c:712 +#: backend/lexmark.c:274 backend/umax_pp.c:706 #, no-c-format msgid "Color channels gain settings" msgstr "Axustes de ganancia das canles de cor" -#: backend/lexmark.c:283 backend/umax_pp.c:719 +#: backend/lexmark.c:283 backend/umax_pp.c:713 #, no-c-format msgid "Gray gain" msgstr "Ganancia de gris" -#: backend/lexmark.c:284 backend/umax_pp.c:720 +#: backend/lexmark.c:284 backend/umax_pp.c:714 #, no-c-format msgid "Sets gray channel gain" msgstr "Axusta a ganancia da canle de gris" -#: backend/lexmark.c:297 backend/plustek.c:1001 backend/umax_pp.c:731 +#: backend/lexmark.c:297 backend/plustek.c:1001 backend/umax_pp.c:725 #, no-c-format msgid "Red gain" msgstr "Ganancia vermella" -#: backend/lexmark.c:298 backend/umax_pp.c:732 +#: backend/lexmark.c:298 backend/umax_pp.c:726 #, no-c-format msgid "Sets red channel gain" msgstr "Axustar a ganancia da canle vermella" -#: backend/lexmark.c:311 backend/plustek.c:1017 backend/umax_pp.c:743 +#: backend/lexmark.c:311 backend/plustek.c:1017 backend/umax_pp.c:737 #, no-c-format msgid "Green gain" msgstr "Ganancia verde" -#: backend/lexmark.c:312 backend/umax_pp.c:744 +#: backend/lexmark.c:312 backend/umax_pp.c:738 #, no-c-format msgid "Sets green channel gain" msgstr "Axusta a ganancia da canle verde" -#: backend/lexmark.c:325 backend/plustek.c:1033 backend/umax_pp.c:755 +#: backend/lexmark.c:325 backend/plustek.c:1033 backend/umax_pp.c:749 #, no-c-format msgid "Blue gain" msgstr "Ganancia azul" -#: backend/lexmark.c:326 backend/umax_pp.c:756 +#: backend/lexmark.c:326 backend/umax_pp.c:750 #, no-c-format msgid "Sets blue channel gain" msgstr "Axusta a ganancia da canle azul" @@ -4788,7 +4810,7 @@ msgstr "Unha páxina" msgid "All pages" msgstr "Todas as páxinas" -#: backend/matsushita.c:1034 backend/plustek.c:1333 +#: backend/matsushita.c:1034 backend/p5_device.c:8 backend/plustek.c:1333 #, no-c-format msgid "sheetfed scanner" msgstr "escáner con cargador automático" @@ -5295,39 +5317,44 @@ msgstr "" "Quecer até que o brillo da lámpada sexa constante no canto de agardar " "polos 40 segundos de quecemento." -#: backend/pixma.c:397 +#: backend/p5.c:1926 +#, fuzzy, no-c-format +msgid "Need calibration" +msgstr "Limpar a calibración" + +#: backend/pixma/pixma.c:397 #, fuzzy, no-c-format msgid "Negative color" msgstr "Filme en negativo" -#: backend/pixma.c:402 +#: backend/pixma/pixma.c:402 #, fuzzy, no-c-format msgid "Negative gray" msgstr "Negativo" -#: backend/pixma.c:415 +#: backend/pixma/pixma.c:415 #, fuzzy, no-c-format msgid "48 bits color" msgstr "Cor fina" -#: backend/pixma.c:420 +#: backend/pixma/pixma.c:420 #, no-c-format msgid "16 bits gray" msgstr "" -#: backend/pixma_sane_options.c:84 +#: backend/pixma/pixma_sane_options.c:84 #, no-c-format msgid "" "Selects the scan source (such as a document-feeder). Set source before " "mode and resolution. Resets mode and resolution to auto values." msgstr "" -#: backend/pixma_sane_options.c:98 +#: backend/pixma/pixma_sane_options.c:98 #, no-c-format msgid "Button-controlled scan" msgstr "Botón de control de escaneo" -#: backend/pixma_sane_options.c:99 +#: backend/pixma/pixma_sane_options.c:99 #, no-c-format msgid "" "When enabled, scan process will not start immediately. To proceed, press " @@ -5338,37 +5365,37 @@ msgstr "" "proceder, faga clic no botón «SCAN» (para MP150) ou «COLOR» (para outros " "modelos). Para cancelar, prema no botón «GRAY»." -#: backend/pixma_sane_options.c:232 +#: backend/pixma/pixma_sane_options.c:232 #, no-c-format msgid "Update button state" msgstr "Actualizar estado do botón" -#: backend/pixma_sane_options.c:244 +#: backend/pixma/pixma_sane_options.c:244 #, no-c-format msgid "Button 1" msgstr "Botón 1" -#: backend/pixma_sane_options.c:258 +#: backend/pixma/pixma_sane_options.c:258 #, no-c-format msgid "Button 2" msgstr "Botón 2" -#: backend/pixma_sane_options.c:272 +#: backend/pixma/pixma_sane_options.c:272 #, no-c-format msgid "Type of original to scan" msgstr "" -#: backend/pixma_sane_options.c:286 +#: backend/pixma/pixma_sane_options.c:286 #, no-c-format msgid "Target operation type" msgstr "" -#: backend/pixma_sane_options.c:348 +#: backend/pixma/pixma_sane_options.c:348 #, no-c-format msgid "ADF Waiting Time" msgstr "" -#: backend/pixma_sane_options.c:349 +#: backend/pixma/pixma_sane_options.c:349 #, no-c-format msgid "" "When set, the scanner waits upto the specified time in seconds for a new " @@ -5460,7 +5487,7 @@ msgstr "Interface analóxica (AFE)" msgid "Red gain value of the AFE" msgstr "Valor de ganancia vermella no AFE" -#: backend/plustek.c:1009 backend/umax_pp.c:788 +#: backend/plustek.c:1009 backend/umax_pp.c:782 #, no-c-format msgid "Red offset" msgstr "Desviación vermella" @@ -5737,7 +5764,7 @@ msgstr "" msgid "This option reflects the status of a scanner button." msgstr "Esta opción reflicte o estado dos botóns do escáner" -#: backend/rts8891.c:2840 backend/umax.c:5795 backend/umax_pp.c:635 +#: backend/rts8891.c:2840 backend/umax.c:5795 backend/umax_pp.c:629 #, no-c-format msgid "Lamp on" msgstr "Acender lámpada" @@ -5747,12 +5774,12 @@ msgstr "Acender lámpada" msgid "Turn on scanner lamp" msgstr "Acende a lámpada do escáner" -#: backend/rts8891.c:2851 backend/umax1220u.c:248 backend/umax.c:5812 +#: backend/rts8891.c:2851 backend/umax.c:5812 backend/umax1220u.c:248 #, no-c-format msgid "Lamp off" msgstr "Apagar lámpada" -#: backend/rts8891.c:2852 backend/umax1220u.c:249 backend/umax.c:5813 +#: backend/rts8891.c:2852 backend/umax.c:5813 backend/umax1220u.c:249 #, no-c-format msgid "Turn off scanner lamp" msgstr "Apaga a lámpada do escáner" @@ -6557,52 +6584,52 @@ msgstr "Modo de calibración" msgid "Define calibration mode" msgstr "Definir o modo de calibración" -#: backend/umax_pp.c:636 +#: backend/umax_pp.c:630 #, no-c-format msgid "Sets lamp on/off" msgstr "Acende/apaga a lámpada" -#: backend/umax_pp.c:645 +#: backend/umax_pp.c:639 #, no-c-format msgid "UTA on" msgstr "UTA Activado" -#: backend/umax_pp.c:646 +#: backend/umax_pp.c:640 #, no-c-format msgid "Sets UTA on/off" msgstr "Axusta o acendido/apagado UTA" -#: backend/umax_pp.c:767 +#: backend/umax_pp.c:761 #, no-c-format msgid "Offset" msgstr "Desprazamento" -#: backend/umax_pp.c:769 +#: backend/umax_pp.c:763 #, no-c-format msgid "Color channels offset settings" msgstr "Axustes do desprazamento das canles de cor" -#: backend/umax_pp.c:776 +#: backend/umax_pp.c:770 #, no-c-format msgid "Gray offset" msgstr "Desprazamento de gris" -#: backend/umax_pp.c:777 +#: backend/umax_pp.c:771 #, no-c-format msgid "Sets gray channel offset" msgstr "Axusta o desprazamento da canle gris" -#: backend/umax_pp.c:789 +#: backend/umax_pp.c:783 #, no-c-format msgid "Sets red channel offset" msgstr "Axusta o desprazamento da canle vermello" -#: backend/umax_pp.c:801 +#: backend/umax_pp.c:795 #, no-c-format msgid "Sets green channel offset" msgstr "Axusta o desprazamento da canle verde" -#: backend/umax_pp.c:813 +#: backend/umax_pp.c:807 #, no-c-format msgid "Sets blue channel offset" msgstr "Axusta o desprazamento da canle azul" diff --git a/po/he.po b/po/he.po index db3c66c80..45b18ec98 100644 --- a/po/he.po +++ b/po/he.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: sane-backends 1.0.27git\n" "Report-Msgid-Bugs-To: sane-devel@alioth-lists.debian.net\n" -"POT-Creation-Date: 2019-10-12 17:41+0300\n" +"POT-Creation-Date: 2020-01-12 07:09+0000\n" "PO-Revision-Date: 2018-09-16 22:30+0300\n" "Last-Translator: Elishai Shkury \n" "Language-Team: Hebrew\n" @@ -28,23 +28,23 @@ msgid "Standard" msgstr "סטנדרט" #: include/sane/saneopts.h:157 backend/artec_eplus48u.c:2884 -#: backend/epson.c:3298 backend/epson2.c:1290 -#: backend/genesys/genesys.cpp:3976 backend/gt68xx.c:696 -#: backend/hp3500.c:1019 backend/hp-option.c:3300 backend/kvs1025_opt.c:639 +#: backend/epson.c:3298 backend/epson2.c:1290 backend/epsonds.c:677 +#: backend/genesys/genesys.cpp:4034 backend/gt68xx.c:696 +#: backend/hp-option.c:3300 backend/hp3500.c:1019 backend/kvs1025_opt.c:639 #: backend/kvs20xx_opt.c:285 backend/kvs40xx_opt.c:506 backend/leo.c:823 #: backend/lexmark.c:199 backend/ma1509.c:551 backend/matsushita.c:1135 #: backend/microtek2.h:599 backend/mustek.c:4373 backend/mustek_usb.c:301 -#: backend/mustek_usb2.c:465 backend/pixma_sane_options.c:160 +#: backend/mustek_usb2.c:465 backend/pixma/pixma_sane_options.c:160 #: backend/plustek.c:808 backend/plustek_pp.c:747 backend/sceptre.c:702 #: backend/snapscan-options.c:550 backend/teco1.c:1095 backend/teco2.c:1910 #: backend/teco3.c:920 backend/test.c:647 backend/u12.c:546 -#: backend/umax.c:5176 backend/umax_pp.c:576 +#: backend/umax.c:5176 backend/umax_pp.c:570 #, no-c-format msgid "Geometry" msgstr "גיאומטריה" #: include/sane/saneopts.h:158 backend/artec_eplus48u.c:2805 -#: backend/canon.c:1493 backend/genesys/genesys.cpp:4035 +#: backend/canon.c:1493 backend/genesys/genesys.cpp:4077 #: backend/gt68xx.c:665 backend/hp-option.c:2956 backend/kvs1025_opt.c:703 #: backend/leo.c:871 backend/ma1509.c:599 backend/matsushita.c:1189 #: backend/microtek2.h:600 backend/mustek.c:4421 backend/mustek_usb.c:349 @@ -52,7 +52,7 @@ msgstr "גיאומטריה" #: backend/plustek_pp.c:793 backend/sceptre.c:750 #: backend/snapscan-options.c:617 backend/stv680.c:1067 #: backend/teco1.c:1143 backend/teco2.c:1958 backend/teco3.c:968 -#: backend/u12.c:592 backend/umax.c:5226 backend/umax_pp.c:625 +#: backend/u12.c:592 backend/umax.c:5226 backend/umax_pp.c:619 #, no-c-format msgid "Enhancement" msgstr "הגדלה" @@ -86,7 +86,7 @@ msgid "Bit depth" msgstr "עומק ביט" #: include/sane/saneopts.h:165 backend/canon.c:1140 backend/leo.c:781 -#: backend/pixma_sane_options.c:47 +#: backend/pixma/pixma_sane_options.c:47 #, no-c-format msgid "Scan mode" msgstr "מצב סריקה" @@ -127,7 +127,7 @@ msgid "Bottom-right y" msgstr "Bottom-right y" #: include/sane/saneopts.h:173 backend/canon.c:1216 -#: backend/pixma_sane_options.c:300 +#: backend/pixma/pixma_sane_options.c:300 #, no-c-format msgid "Scan resolution" msgstr "רזולוציית סריקה" @@ -282,7 +282,7 @@ msgstr "שם קובץ" msgid "Halftone pattern size" msgstr "גודל תבנית הדפסת רשת" -#: include/sane/saneopts.h:204 backend/fujitsu.c:3233 +#: include/sane/saneopts.h:204 backend/fujitsu.c:3237 #, no-c-format msgid "Halftone pattern" msgstr "תבנית הדפסת רשת" @@ -292,10 +292,10 @@ msgstr "תבנית הדפסת רשת" msgid "Bind X and Y resolution" msgstr "קשור רזולוציה X ו-Y" -#: include/sane/saneopts.h:206 backend/hp3900_sane.c:428 -#: backend/hp3900_sane.c:1021 backend/hp3900_sane.c:1421 -#: backend/hp-option.c:3238 backend/mustek_usb2.c:121 backend/plustek.c:236 -#: backend/plustek_pp.c:205 backend/u12.c:157 +#: include/sane/saneopts.h:206 backend/hp-option.c:3238 +#: backend/hp3900_sane.c:428 backend/hp3900_sane.c:1021 +#: backend/hp3900_sane.c:1421 backend/mustek_usb2.c:121 +#: backend/plustek.c:236 backend/plustek_pp.c:205 backend/u12.c:157 #, no-c-format msgid "Negative" msgstr "תשליל" @@ -1016,78 +1016,38 @@ msgid "" "Duplex scan provides a scan of the front and back side of the document" msgstr "סריקה דו צדדית מאפשרת סריקה של העמוד הקדמי והאחורי של המסמך" -#: backend/canon630u.c:159 +#: backend/canon-sane.c:674 backend/canon.c:171 #, no-c-format -msgid "Calibrate Scanner" -msgstr "כייל סורק" +msgid "Correction according to transparency ratio" +msgstr "תיקון לפי יחס שקיפות" -#: backend/canon630u.c:160 +#: backend/canon-sane.c:680 backend/canon.c:170 #, no-c-format -msgid "Force scanner calibration before scan" -msgstr "אלץ כיול סורק לפני סריקה" +msgid "Correction according to film type" +msgstr "תיקון לפי סוג סרט" -#: backend/canon630u.c:259 backend/umax1220u.c:208 -#, no-c-format -msgid "Grayscale scan" -msgstr "סריקה בגווני אפור" - -#: backend/canon630u.c:260 backend/umax1220u.c:209 -#, no-c-format -msgid "Do a grayscale rather than color scan" -msgstr "בצע סריקה בגווני אפור במקום סריקה בצבע" - -#: backend/canon630u.c:306 -#, no-c-format -msgid "Analog Gain" -msgstr "הגבר אנלוגי" - -#: backend/canon630u.c:307 -#, no-c-format -msgid "Increase or decrease the analog gain of the CCD array" -msgstr "הרם או הנמך את ההגבר האנלוגי של מערך ה-CCD" - -#: backend/canon630u.c:347 backend/epson.h:68 backend/epson2.h:67 -#, no-c-format -msgid "Gamma Correction" -msgstr "תיקון גמה" - -#: backend/canon630u.c:348 -#, no-c-format -msgid "Selects the gamma corrected transfer curve" -msgstr "בוחר את עקום ההעברה מתוקן הגמה" - -#: backend/canon.c:149 backend/canon-sane.c:1318 -#, no-c-format -msgid "Raw" -msgstr "גולמי" - -#: backend/canon.c:157 backend/canon-sane.c:732 backend/canon-sane.c:940 +#: backend/canon-sane.c:732 backend/canon-sane.c:940 #: backend/canon-sane.c:1076 backend/canon-sane.c:1314 -#: backend/canon-sane.c:1494 backend/canon-sane.c:1643 +#: backend/canon-sane.c:1494 backend/canon-sane.c:1643 backend/canon.c:157 #, no-c-format msgid "Fine color" msgstr "צבע בהיר" +#: backend/canon-sane.c:776 backend/canon.c:176 +#, no-c-format +msgid "Negatives" +msgstr "תשלילים" + +#: backend/canon-sane.c:1318 backend/canon.c:149 +#, no-c-format +msgid "Raw" +msgstr "גולמי" + #: backend/canon.c:169 #, no-c-format msgid "No transparency correction" msgstr "ללא תיקון שקיפות" -#: backend/canon.c:170 backend/canon-sane.c:680 -#, no-c-format -msgid "Correction according to film type" -msgstr "תיקון לפי סוג סרט" - -#: backend/canon.c:171 backend/canon-sane.c:674 -#, no-c-format -msgid "Correction according to transparency ratio" -msgstr "תיקון לפי יחס שקיפות" - -#: backend/canon.c:176 backend/canon-sane.c:776 -#, no-c-format -msgid "Negatives" -msgstr "תשלילים" - #: backend/canon.c:176 #, no-c-format msgid "Slides" @@ -1510,94 +1470,137 @@ msgstr "בחר סוג סרט" msgid "Select the film type" msgstr "בחר את סוג הסרט" -#: backend/canon_dr.c:411 backend/epjitsu.c:233 backend/epson.c:501 -#: backend/epson2.c:115 backend/fujitsu.c:675 backend/gt68xx.c:148 +#: backend/canon630u.c:159 +#, no-c-format +msgid "Calibrate Scanner" +msgstr "כייל סורק" + +#: backend/canon630u.c:160 +#, no-c-format +msgid "Force scanner calibration before scan" +msgstr "אלץ כיול סורק לפני סריקה" + +#: backend/canon630u.c:259 backend/umax1220u.c:208 +#, no-c-format +msgid "Grayscale scan" +msgstr "סריקה בגווני אפור" + +#: backend/canon630u.c:260 backend/umax1220u.c:209 +#, no-c-format +msgid "Do a grayscale rather than color scan" +msgstr "בצע סריקה בגווני אפור במקום סריקה בצבע" + +#: backend/canon630u.c:306 +#, no-c-format +msgid "Analog Gain" +msgstr "הגבר אנלוגי" + +#: backend/canon630u.c:307 +#, no-c-format +msgid "Increase or decrease the analog gain of the CCD array" +msgstr "הרם או הנמך את ההגבר האנלוגי של מערך ה-CCD" + +#: backend/canon630u.c:347 backend/epson.h:68 backend/epson2.h:67 +#, no-c-format +msgid "Gamma Correction" +msgstr "תיקון גמה" + +#: backend/canon630u.c:348 +#, no-c-format +msgid "Selects the gamma corrected transfer curve" +msgstr "בוחר את עקום ההעברה מתוקן הגמה" + +#: backend/canon_dr.c:413 backend/epjitsu.c:233 backend/epson.c:501 +#: backend/epson2-ops.c:101 backend/epson2.c:115 backend/epsonds-ops.c:32 +#: backend/epsonds.c:95 backend/epsonds.h:62 backend/fujitsu.c:677 +#: backend/genesys/genesys.h:78 backend/gt68xx.c:148 #: backend/hp3900_sane.c:418 backend/hp3900_sane.c:427 -#: backend/hp3900_sane.c:1017 backend/hp5590.c:92 backend/ma1509.c:108 -#: backend/magicolor.c:181 backend/mustek.c:156 backend/mustek.c:160 -#: backend/mustek.c:164 backend/pixma.c:920 backend/pixma_sane_options.c:92 -#: backend/snapscan-options.c:86 backend/test.c:192 backend/umax.c:181 +#: backend/hp3900_sane.c:1017 backend/hp5590.c:92 backend/kodakaio.c:617 +#: backend/ma1509.c:108 backend/magicolor.c:181 backend/mustek.c:156 +#: backend/mustek.c:160 backend/mustek.c:164 backend/pixma/pixma.c:920 +#: backend/pixma/pixma_sane_options.c:92 backend/snapscan-options.c:86 +#: backend/test.c:192 backend/umax.c:181 #, no-c-format msgid "Flatbed" msgstr "סורק שטוח" -#: backend/canon_dr.c:412 backend/epjitsu.c:234 backend/fujitsu.c:676 +#: backend/canon_dr.c:414 backend/epjitsu.c:234 backend/fujitsu.c:678 #: backend/kodak.c:140 #, no-c-format msgid "ADF Front" msgstr "חזית מזין מסמכים אוטומטי" -#: backend/canon_dr.c:413 backend/epjitsu.c:235 backend/fujitsu.c:677 +#: backend/canon_dr.c:415 backend/epjitsu.c:235 backend/fujitsu.c:679 #: backend/kodak.c:141 #, no-c-format msgid "ADF Back" msgstr "אחורי מזין מסמכים אוטומטי" -#: backend/canon_dr.c:414 backend/epjitsu.c:236 backend/fujitsu.c:678 -#: backend/hp5590.c:94 backend/kodak.c:142 backend/pixma.c:931 +#: backend/canon_dr.c:416 backend/epjitsu.c:236 backend/fujitsu.c:680 +#: backend/hp5590.c:94 backend/kodak.c:142 backend/pixma/pixma.c:931 #, no-c-format msgid "ADF Duplex" msgstr "דו צדדי מזין מסמכים אוטומטי" -#: backend/canon_dr.c:415 +#: backend/canon_dr.c:417 #, no-c-format msgid "Card Front" msgstr "חזית לוח" -#: backend/canon_dr.c:416 +#: backend/canon_dr.c:418 #, no-c-format msgid "Card Back" msgstr "אחורי לוח" -#: backend/canon_dr.c:417 +#: backend/canon_dr.c:419 #, no-c-format msgid "Card Duplex" msgstr "דו צדדי לוח" -#: backend/canon_dr.c:424 backend/epson.c:599 backend/epson.c:3096 -#: backend/epson2.c:201 backend/fujitsu.c:695 -#: backend/genesys/genesys.cpp:99 backend/genesys/genesys.cpp:106 +#: backend/canon_dr.c:426 backend/epson.c:599 backend/epson.c:3096 +#: backend/epson2.c:201 backend/fujitsu.c:697 +#: backend/genesys/genesys.cpp:120 backend/genesys/genesys.cpp:127 #: backend/gt68xx_low.h:136 backend/hp-option.c:3096 #, no-c-format msgid "Red" msgstr "אדום" -#: backend/canon_dr.c:425 backend/epson.c:600 backend/epson.c:3092 -#: backend/epson2.c:202 backend/fujitsu.c:696 -#: backend/genesys/genesys.cpp:100 backend/genesys/genesys.cpp:107 +#: backend/canon_dr.c:427 backend/epson.c:600 backend/epson.c:3092 +#: backend/epson2.c:202 backend/fujitsu.c:698 +#: backend/genesys/genesys.cpp:121 backend/genesys/genesys.cpp:128 #: backend/gt68xx_low.h:137 backend/hp-option.c:3097 #, no-c-format msgid "Green" msgstr "ירוק" -#: backend/canon_dr.c:426 backend/epson.c:601 backend/epson.c:3100 -#: backend/epson2.c:203 backend/fujitsu.c:697 -#: backend/genesys/genesys.cpp:101 backend/genesys/genesys.cpp:108 +#: backend/canon_dr.c:428 backend/epson.c:601 backend/epson.c:3100 +#: backend/epson2.c:203 backend/fujitsu.c:699 +#: backend/genesys/genesys.cpp:122 backend/genesys/genesys.cpp:129 #: backend/gt68xx_low.h:138 backend/hp-option.c:3098 #, no-c-format msgid "Blue" msgstr "כחול" -#: backend/canon_dr.c:427 +#: backend/canon_dr.c:429 #, no-c-format msgid "Enhance Red" msgstr "שפר אדום" -#: backend/canon_dr.c:428 +#: backend/canon_dr.c:430 #, no-c-format msgid "Enhance Green" msgstr "שפר ירוק" -#: backend/canon_dr.c:429 +#: backend/canon_dr.c:431 #, no-c-format msgid "Enhance Blue" msgstr "שפר כחול" -#: backend/canon_dr.c:431 backend/epson.c:556 backend/epson.c:564 +#: backend/canon_dr.c:433 backend/epson.c:556 backend/epson.c:564 #: backend/epson.c:576 backend/epson.c:598 backend/epson2.c:165 #: backend/epson2.c:173 backend/epson2.c:185 backend/epson2.c:200 -#: backend/epson2.c:214 backend/fujitsu.c:701 -#: backend/genesys/genesys.cpp:109 backend/leo.c:109 +#: backend/epson2.c:214 backend/fujitsu.c:703 +#: backend/genesys/genesys.cpp:130 backend/leo.c:109 #: backend/matsushita.c:138 backend/matsushita.c:159 #: backend/matsushita.c:191 backend/matsushita.c:213 #: backend/snapscan-options.c:91 @@ -1605,42 +1608,46 @@ msgstr "שפר כחול" msgid "None" msgstr "אף אחד" -#: backend/canon_dr.c:432 backend/fujitsu.c:702 +#: backend/canon_dr.c:434 backend/fujitsu.c:704 #, no-c-format msgid "JPEG" msgstr "JPEG" -#: backend/canon_dr.c:2477 backend/fujitsu.c:4113 -#: backend/genesys/genesys.cpp:4126 backend/kvs1025_opt.c:910 +#: backend/canon_dr.c:2479 backend/fujitsu.c:4117 +#: backend/genesys/genesys.cpp:4168 backend/kvs1025_opt.c:910 #, no-c-format msgid "Software blank skip percentage" msgstr "אחוז דילוג מקום ריק של תוכנה" -#: backend/canon_dr.c:2478 backend/fujitsu.c:4114 +#: backend/canon_dr.c:2480 backend/fujitsu.c:4118 #, no-c-format msgid "Request driver to discard pages with low percentage of dark pixels" msgstr "בקש מהדרייבר לזנוח עמודים עם אחוז נמוך של פיקסלים כהים" -#: backend/epson.c:491 backend/epson2.c:108 backend/magicolor.c:174 +#: backend/epson.c:491 backend/epson2.c:108 backend/epsonds.c:88 +#: backend/kodakaio.c:611 backend/magicolor.c:174 #, no-c-format msgid "Simplex" msgstr "חד צדדי" -#: backend/epson.c:492 backend/epson2.c:109 backend/kvs1025.h:50 -#: backend/kvs20xx_opt.c:204 backend/kvs40xx_opt.c:353 -#: backend/magicolor.c:175 backend/matsushita.h:218 +#: backend/epson.c:492 backend/epson2.c:109 backend/epsonds.c:89 +#: backend/kodakaio.c:612 backend/kvs1025.h:50 backend/kvs20xx_opt.c:204 +#: backend/kvs40xx_opt.c:353 backend/magicolor.c:175 +#: backend/matsushita.h:218 #, no-c-format msgid "Duplex" msgstr "דו צדדי" -#: backend/epson.c:502 backend/epson2.c:116 backend/pixma.c:937 +#: backend/epson.c:502 backend/epson2-ops.c:102 backend/epson2.c:116 +#: backend/epsonds-ops.c:33 backend/epsonds.h:63 backend/pixma/pixma.c:937 #, no-c-format msgid "Transparency Unit" msgstr "יחידת שקיפות" -#: backend/epson.c:503 backend/epson2.c:118 backend/magicolor.c:182 -#: backend/mustek.c:160 backend/pixma.c:925 backend/test.c:192 -#: backend/umax.c:183 +#: backend/epson.c:503 backend/epson2-ops.c:104 backend/epson2.c:118 +#: backend/epsonds-ops.c:34 backend/epsonds.c:96 backend/epsonds.h:64 +#: backend/kodakaio.c:618 backend/magicolor.c:182 backend/mustek.c:160 +#: backend/pixma/pixma.c:925 backend/test.c:192 backend/umax.c:183 #, no-c-format msgid "Automatic Document Feeder" msgstr "מזין מסמכים אוטומטי" @@ -1752,7 +1759,7 @@ msgstr "מדפסות הזרקת דיו" msgid "CRT monitors" msgstr "מסכי CRT" -#: backend/epson.c:656 backend/epson2.c:254 backend/fujitsu.c:685 +#: backend/epson.c:656 backend/epson2.c:254 backend/fujitsu.c:687 #: backend/hp-option.c:3229 backend/test.c:143 #, no-c-format msgid "Default" @@ -1816,8 +1823,8 @@ msgstr "A4" msgid "Max" msgstr "מירבי" -#: backend/epson.c:2813 backend/epson2.c:976 -#: backend/genesys/genesys.cpp:3893 backend/gt68xx.c:451 +#: backend/epson.c:2813 backend/epson2.c:976 backend/epsonds.c:629 +#: backend/genesys/genesys.cpp:3965 backend/gt68xx.c:451 #: backend/hp-option.c:2917 backend/kvs1025_opt.c:521 #: backend/kvs20xx_opt.c:171 backend/kvs40xx_opt.c:320 backend/ma1509.c:501 #: backend/matsushita.c:1084 backend/microtek2.h:598 backend/mustek.c:4215 @@ -1990,17 +1997,17 @@ msgstr "מגדיר את מקדם הזום בשימוש הסורק" msgid "Quick format" msgstr "פורמט מהיר" -#: backend/epson.c:3360 backend/epson2.c:1340 +#: backend/epson.c:3360 backend/epson2.c:1340 backend/epsonds.c:726 #, no-c-format msgid "Optional equipment" msgstr "ציוד אופציונלי" -#: backend/epson.c:3431 backend/epson2.c:1393 +#: backend/epson.c:3431 backend/epson2.c:1393 backend/epsonds.c:742 #, no-c-format msgid "Eject" msgstr "הוצא" -#: backend/epson.c:3432 backend/epson2.c:1394 +#: backend/epson.c:3432 backend/epson2.c:1394 backend/epsonds.c:743 #, no-c-format msgid "Eject the sheet in the ADF" msgstr "הוצא את הדף במזין המסמכים האוטומטי" @@ -2015,12 +2022,14 @@ msgstr "הוצאה אוטומטית" msgid "Eject document after scanning" msgstr "הוצא מסמך לאחר סריקה" -#: backend/epson.c:3457 backend/epson2.c:1416 backend/magicolor.c:2420 +#: backend/epson.c:3457 backend/epson2.c:1416 backend/epsonds.c:758 +#: backend/kodakaio.c:2855 backend/magicolor.c:2420 #, no-c-format msgid "ADF Mode" msgstr "מצב מזין מסמכים אוטומטי" -#: backend/epson.c:3459 backend/epson2.c:1418 backend/magicolor.c:2422 +#: backend/epson.c:3459 backend/epson2.c:1418 backend/epsonds.c:760 +#: backend/kodakaio.c:2857 backend/magicolor.c:2422 #, no-c-format msgid "Selects the ADF mode (simplex/duplex)" msgstr "בוחר את מצב מזין המסמכים האוטומטי (חד צדדי/דו צדדי)" @@ -2069,16 +2078,16 @@ msgstr "" "לאחר שליחת פקודת הסריקה, חכה עד שהכפתור על הסורק יילחץ כדי להתחיל בפועל " "את תהליך הסריקה." -#: backend/epson2.c:102 backend/pixma.c:409 -#, no-c-format -msgid "Infrared" -msgstr "אינפרה אדום" - -#: backend/epson2.c:117 +#: backend/epson2-ops.c:103 backend/epson2.c:117 #, no-c-format msgid "TPU8x10" msgstr "TPU8x10" +#: backend/epson2.c:102 backend/pixma/pixma.c:409 +#, no-c-format +msgid "Infrared" +msgstr "אינפרה אדום" + #: backend/epson2.c:136 #, no-c-format msgid "Positive Slide" @@ -2099,347 +2108,367 @@ msgstr "פרופיל CCT מובנה" msgid "User defined CCT profile" msgstr "פרופיל CCT מוגדר משתמש" -#: backend/fujitsu.c:686 backend/hp-option.c:3330 backend/hp-option.c:3343 +#: backend/epsonds.c:750 +#, no-c-format +msgid "Load" +msgstr "" + +#: backend/epsonds.c:751 +#, fuzzy, no-c-format +msgid "Load a sheet in the ADF" +msgstr "הוצא את הדף במזין המסמכים האוטומטי" + +#: backend/epsonds.c:771 +#, fuzzy, no-c-format +msgid "ADF Skew Correction" +msgstr "ללא תיקון" + +#: backend/epsonds.c:773 +#, fuzzy, no-c-format +msgid "Enables ADF skew correction" +msgstr "כבה תיקון גמה" + +#: backend/fujitsu.c:688 backend/hp-option.c:3330 backend/hp-option.c:3343 #, no-c-format msgid "On" msgstr "דולק" -#: backend/fujitsu.c:687 backend/hp-option.c:3162 backend/hp-option.c:3329 +#: backend/fujitsu.c:689 backend/hp-option.c:3162 backend/hp-option.c:3329 #: backend/hp-option.c:3342 #, no-c-format msgid "Off" msgstr "כבוי" -#: backend/fujitsu.c:689 +#: backend/fujitsu.c:691 #, no-c-format msgid "DTC" msgstr "DTC" -#: backend/fujitsu.c:690 +#: backend/fujitsu.c:692 #, no-c-format msgid "SDTC" msgstr "SDTC" -#: backend/fujitsu.c:692 backend/teco1.c:1152 backend/teco1.c:1153 +#: backend/fujitsu.c:694 backend/teco1.c:1152 backend/teco1.c:1153 #: backend/teco2.c:1967 backend/teco2.c:1968 backend/teco3.c:977 #: backend/teco3.c:978 #, no-c-format msgid "Dither" msgstr "Dither" -#: backend/fujitsu.c:693 +#: backend/fujitsu.c:695 #, no-c-format msgid "Diffusion" msgstr "דיפוזיה" -#: backend/fujitsu.c:698 +#: backend/fujitsu.c:700 #, no-c-format msgid "White" msgstr "לבן" -#: backend/fujitsu.c:699 +#: backend/fujitsu.c:701 #, no-c-format msgid "Black" msgstr "שחור" -#: backend/fujitsu.c:704 +#: backend/fujitsu.c:706 #, no-c-format msgid "Continue" msgstr "המשך" -#: backend/fujitsu.c:705 +#: backend/fujitsu.c:707 #, no-c-format msgid "Stop" msgstr "עצור" -#: backend/fujitsu.c:707 +#: backend/fujitsu.c:709 #, no-c-format msgid "10mm" msgstr "10 מילימטר" -#: backend/fujitsu.c:708 +#: backend/fujitsu.c:710 #, no-c-format msgid "15mm" msgstr "15 מילימטר" -#: backend/fujitsu.c:709 +#: backend/fujitsu.c:711 #, no-c-format msgid "20mm" msgstr "20 מילימטר" -#: backend/fujitsu.c:711 backend/hp-option.c:3048 +#: backend/fujitsu.c:713 backend/hp-option.c:3048 #, no-c-format msgid "Horizontal" msgstr "אופקי" -#: backend/fujitsu.c:712 +#: backend/fujitsu.c:714 #, no-c-format msgid "Horizontal bold" msgstr "אופקי מודגש" -#: backend/fujitsu.c:713 +#: backend/fujitsu.c:715 #, no-c-format msgid "Horizontal narrow" msgstr "אופקי צר" -#: backend/fujitsu.c:714 backend/hp-option.c:3047 +#: backend/fujitsu.c:716 backend/hp-option.c:3047 #, no-c-format msgid "Vertical" msgstr "אנכי" -#: backend/fujitsu.c:715 +#: backend/fujitsu.c:717 #, no-c-format msgid "Vertical bold" msgstr "אנכי מודגש" -#: backend/fujitsu.c:717 +#: backend/fujitsu.c:719 #, no-c-format msgid "Top to bottom" msgstr "מלמעלה למטה" -#: backend/fujitsu.c:718 +#: backend/fujitsu.c:720 #, no-c-format msgid "Bottom to top" msgstr "מלמטה למעלה" -#: backend/fujitsu.c:720 +#: backend/fujitsu.c:722 #, no-c-format msgid "Front" msgstr "חזית" -#: backend/fujitsu.c:721 +#: backend/fujitsu.c:723 #, no-c-format msgid "Back" msgstr "אחור" -#: backend/fujitsu.c:3144 backend/pixma_sane_options.c:145 +#: backend/fujitsu.c:3148 backend/pixma/pixma_sane_options.c:145 #, no-c-format msgid "Gamma function exponent" msgstr "פונקציית גמה אקספוננט" -#: backend/fujitsu.c:3145 backend/pixma_sane_options.c:146 +#: backend/fujitsu.c:3149 backend/pixma/pixma_sane_options.c:146 #, no-c-format msgid "Changes intensity of midtones" msgstr "משנה את העוצמה של גווני הביניים" -#: backend/fujitsu.c:3194 +#: backend/fujitsu.c:3198 #, no-c-format msgid "RIF" msgstr "RIF" -#: backend/fujitsu.c:3195 +#: backend/fujitsu.c:3199 #, no-c-format msgid "Reverse image format" msgstr "הפוך את עיצוב התמונה" -#: backend/fujitsu.c:3212 +#: backend/fujitsu.c:3216 #, no-c-format msgid "Halftone type" msgstr "סוג הדפסת רשת" -#: backend/fujitsu.c:3213 +#: backend/fujitsu.c:3217 #, no-c-format msgid "Control type of halftone filter" msgstr "סוג בקרה של מסנן הדפסת רשת" -#: backend/fujitsu.c:3234 +#: backend/fujitsu.c:3238 #, no-c-format msgid "Control pattern of halftone filter" msgstr "תבנית בקרה של מסנן הדפסת רשת" -#: backend/fujitsu.c:3256 +#: backend/fujitsu.c:3260 #, no-c-format msgid "Outline" msgstr "תרשים" -#: backend/fujitsu.c:3257 +#: backend/fujitsu.c:3261 #, no-c-format msgid "Perform outline extraction" msgstr "בצע חילוץ תרשים" -#: backend/fujitsu.c:3268 +#: backend/fujitsu.c:3272 #, no-c-format msgid "Emphasis" msgstr "הדגשה" -#: backend/fujitsu.c:3269 +#: backend/fujitsu.c:3273 #, no-c-format msgid "Negative to smooth or positive to sharpen image" msgstr "שלילי כדי להחליק או חיובי כדי לחדד את התמונה" -#: backend/fujitsu.c:3287 +#: backend/fujitsu.c:3291 #, no-c-format msgid "Separation" msgstr "הפרדה" -#: backend/fujitsu.c:3288 +#: backend/fujitsu.c:3292 #, no-c-format msgid "Enable automatic separation of image and text" msgstr "הפעל הפרדה אוטומטית של תמונה וטקסט" -#: backend/fujitsu.c:3299 +#: backend/fujitsu.c:3303 #, no-c-format msgid "Mirroring" msgstr "ביצוע תמונת ראי" -#: backend/fujitsu.c:3300 +#: backend/fujitsu.c:3304 #, no-c-format msgid "Reflect output image horizontally" msgstr "בצע שיקוף אופקי של תמונת הפלט" -#: backend/fujitsu.c:3317 +#: backend/fujitsu.c:3321 #, no-c-format msgid "White level follower" msgstr "עוקב רמת לבן" -#: backend/fujitsu.c:3318 +#: backend/fujitsu.c:3322 #, no-c-format msgid "Control white level follower" msgstr "שלוט על עוקב רמת לבן" -#: backend/fujitsu.c:3336 +#: backend/fujitsu.c:3340 #, no-c-format msgid "BP filter" msgstr "מסנן כדורי" -#: backend/fujitsu.c:3337 +#: backend/fujitsu.c:3341 #, no-c-format msgid "Improves quality of high resolution ball-point pen text" msgstr "משפר איכות טקסט של עט כדורי ברזולוציה גבוהה" -#: backend/fujitsu.c:3353 backend/hp-option.h:73 +#: backend/fujitsu.c:3357 backend/hp-option.h:73 #, no-c-format msgid "Smoothing" msgstr "החלקה" -#: backend/fujitsu.c:3354 +#: backend/fujitsu.c:3358 #, no-c-format msgid "Enable smoothing for improved OCR" msgstr "הפעל החלקה ל-OCR משופר" -#: backend/fujitsu.c:3370 +#: backend/fujitsu.c:3374 #, no-c-format msgid "Gamma curve" msgstr "עקום גמה" -#: backend/fujitsu.c:3371 +#: backend/fujitsu.c:3375 #, no-c-format msgid "Gamma curve, from light to dark, but upper two may not work" msgstr "עקום גמה, מבהיר לכהה, אך יתכן ושניים עליונים לא יעבדו" -#: backend/fujitsu.c:3393 backend/genesys/genesys.cpp:4187 -#: backend/pixma_sane_options.c:335 +#: backend/fujitsu.c:3397 backend/genesys/genesys.cpp:4229 +#: backend/pixma/pixma_sane_options.c:335 #, no-c-format msgid "Threshold curve" msgstr "עקום סף" -#: backend/fujitsu.c:3394 +#: backend/fujitsu.c:3398 #, no-c-format msgid "" "Threshold curve, from light to dark, but upper two may not be linear" msgstr "עקום סף, מבהיר לכהה, אך יתכן ושניים עליונים לא יהיו לינאריים" -#: backend/fujitsu.c:3416 +#: backend/fujitsu.c:3420 #, no-c-format msgid "Threshold white" msgstr "לבן סף" -#: backend/fujitsu.c:3417 +#: backend/fujitsu.c:3421 #, no-c-format msgid "Set pixels equal to threshold to white instead of black" msgstr "קבע פיקסלים שווים לסף ללבן במקום לשחור" -#: backend/fujitsu.c:3433 backend/fujitsu.c:3434 +#: backend/fujitsu.c:3437 backend/fujitsu.c:3438 #, no-c-format msgid "Noise removal" msgstr "הסרת רעשים" -#: backend/fujitsu.c:3450 +#: backend/fujitsu.c:3454 #, no-c-format msgid "Matrix 5x5" msgstr "מטריצה 5x5" -#: backend/fujitsu.c:3451 +#: backend/fujitsu.c:3455 #, no-c-format msgid "Remove 5 pixel square noise" msgstr "הסר רעשים ריבוע 5 פיקסל" -#: backend/fujitsu.c:3467 +#: backend/fujitsu.c:3471 #, no-c-format msgid "Matrix 4x4" msgstr "מטריצה 4x4" -#: backend/fujitsu.c:3468 +#: backend/fujitsu.c:3472 #, no-c-format msgid "Remove 4 pixel square noise" msgstr "הסר רעשים ריבוע 4 פיקסל" -#: backend/fujitsu.c:3484 +#: backend/fujitsu.c:3488 #, no-c-format msgid "Matrix 3x3" msgstr "מטריצה 3x3" -#: backend/fujitsu.c:3485 +#: backend/fujitsu.c:3489 #, no-c-format msgid "Remove 3 pixel square noise" msgstr "הסר רעשים ריבוע 3 פיקסל" -#: backend/fujitsu.c:3501 +#: backend/fujitsu.c:3505 #, no-c-format msgid "Matrix 2x2" msgstr "מטריצה 2x2" -#: backend/fujitsu.c:3502 +#: backend/fujitsu.c:3506 #, no-c-format msgid "Remove 2 pixel square noise" msgstr "הסר רעשים ריבוע 2 פיקסל" -#: backend/fujitsu.c:3521 +#: backend/fujitsu.c:3525 #, no-c-format msgid "Variance" msgstr "שונות" -#: backend/fujitsu.c:3522 +#: backend/fujitsu.c:3526 #, no-c-format msgid "Set SDTC variance rate (sensitivity), 0 equals 127" msgstr "קבע קצב שונות SDTC (רגישות), 0 שווה ל-127" -#: backend/fujitsu.c:3555 +#: backend/fujitsu.c:3559 #, no-c-format msgid "Auto width detection" msgstr "גילוי רוחב אוטומטי" -#: backend/fujitsu.c:3556 +#: backend/fujitsu.c:3560 #, no-c-format msgid "Scanner detects paper sides. May reduce scanning speed." msgstr "סורק מגלה צידי נייר. עלול להאט מהירות סריקה." -#: backend/fujitsu.c:3573 +#: backend/fujitsu.c:3577 #, no-c-format msgid "Auto length detection" msgstr "גילוי אורך אוטומטי" -#: backend/fujitsu.c:3574 +#: backend/fujitsu.c:3578 #, no-c-format msgid "Scanner detects paper lower edge. May confuse some frontends." msgstr "סורק מגלה קצה נמוך של נייר. עלול להטעות כמה ממשקים." -#: backend/fujitsu.c:3600 +#: backend/fujitsu.c:3604 #, no-c-format msgid "Compression" msgstr "דחיסה" -#: backend/fujitsu.c:3601 +#: backend/fujitsu.c:3605 #, no-c-format msgid "Enable compressed data. May crash your front-end program" msgstr "הפעל מידע דחוס. עלול לגרום לנפילה של יישום הממשק" -#: backend/fujitsu.c:3621 +#: backend/fujitsu.c:3625 #, no-c-format msgid "Compression argument" msgstr "ארגומנט דחיסה" -#: backend/fujitsu.c:3622 +#: backend/fujitsu.c:3626 #, no-c-format msgid "" "Level of JPEG compression. 1 is small file, 7 is large file. 0 (default) " @@ -2447,113 +2476,113 @@ msgid "" msgstr "" "רמת דחיסה JPEG. קובץ קטן זה 1, קובץ גדול זה 7. 0 (ברירת מחדל) זה כמו 4" -#: backend/fujitsu.c:3652 +#: backend/fujitsu.c:3656 #, no-c-format msgid "DF action" msgstr "פעולת DF" -#: backend/fujitsu.c:3653 +#: backend/fujitsu.c:3657 #, no-c-format msgid "Action following double feed error" msgstr "פעולה בעקבות תקלת הזנה כפולה" -#: backend/fujitsu.c:3669 +#: backend/fujitsu.c:3673 #, no-c-format msgid "DF skew" msgstr "עיוות DF" -#: backend/fujitsu.c:3670 +#: backend/fujitsu.c:3674 #, no-c-format msgid "Enable double feed error due to skew" msgstr "הפעל תקלת הזנה כפולה כתוצאה מעיוות" -#: backend/fujitsu.c:3688 +#: backend/fujitsu.c:3692 #, no-c-format msgid "DF thickness" msgstr "עובי DF" -#: backend/fujitsu.c:3689 +#: backend/fujitsu.c:3693 #, no-c-format msgid "Enable double feed error due to paper thickness" msgstr "הפעל תקלת הזנה כפולה כתוצאה מעובי נייר" -#: backend/fujitsu.c:3707 +#: backend/fujitsu.c:3711 #, no-c-format msgid "DF length" msgstr "אורך DF" -#: backend/fujitsu.c:3708 +#: backend/fujitsu.c:3712 #, no-c-format msgid "Enable double feed error due to paper length" msgstr "הפעל תקלת הזנה כפולה כתוצאה מאורך נייר" -#: backend/fujitsu.c:3731 +#: backend/fujitsu.c:3735 #, no-c-format msgid "DF length difference" msgstr "הבדל אורך DF" -#: backend/fujitsu.c:3732 +#: backend/fujitsu.c:3736 #, no-c-format msgid "Difference in page length to trigger double feed error" msgstr "הבדל באורך עמוד יגרור תקלת הזנה כפולה" -#: backend/fujitsu.c:3755 +#: backend/fujitsu.c:3759 #, no-c-format msgid "DF recovery mode" msgstr "מצב שחזור DF" -#: backend/fujitsu.c:3756 +#: backend/fujitsu.c:3760 #, no-c-format msgid "Request scanner to reverse feed on paper jam" msgstr "בקש מהסורק להפוך הזנה בעת היתקעות נייר" -#: backend/fujitsu.c:3775 +#: backend/fujitsu.c:3779 #, no-c-format msgid "Paper protection" msgstr "הגנת נייר" -#: backend/fujitsu.c:3776 +#: backend/fujitsu.c:3780 #, no-c-format msgid "Request scanner to predict jams in the ADF" msgstr "בקש מהסורק לנבא תקלות במזין המסמכים האוטומטי" -#: backend/fujitsu.c:3795 +#: backend/fujitsu.c:3799 #, no-c-format msgid "Advanced paper protection" msgstr "הגנת נייר מתקדמת" -#: backend/fujitsu.c:3796 +#: backend/fujitsu.c:3800 #, no-c-format msgid "Request scanner to predict jams in the ADF using improved sensors" msgstr "בקש מהסורק לנבא תקלות במזין המסמכים האוטומטי בעזרת חיישנים משופרים" -#: backend/fujitsu.c:3815 +#: backend/fujitsu.c:3819 #, no-c-format msgid "Staple detection" msgstr "גילוי סיכת הידוק" -#: backend/fujitsu.c:3816 +#: backend/fujitsu.c:3820 #, no-c-format msgid "Request scanner to detect jams in the ADF caused by staples" msgstr "בקש מהסורק לגלות תקלות במזין המסמכים האוטומטי כתוצאה מסיכות הידוק" -#: backend/fujitsu.c:3835 +#: backend/fujitsu.c:3839 #, no-c-format msgid "Background color" msgstr "צבע רקע" -#: backend/fujitsu.c:3836 +#: backend/fujitsu.c:3840 #, no-c-format msgid "" "Set color of background for scans. May conflict with overscan option" msgstr "קבע צבע רקע לסריקות. עלול להתנגש עם אפשרות סריקת יתר" -#: backend/fujitsu.c:3856 +#: backend/fujitsu.c:3860 #, no-c-format msgid "Dropout color" msgstr "צבע נושר" -#: backend/fujitsu.c:3857 +#: backend/fujitsu.c:3861 #, no-c-format msgid "" "One-pass scanners use only one color during gray or binary scanning, " @@ -2562,33 +2591,33 @@ msgstr "" "סורקים עם מעבר אחד משתמשים בצבע אחד בלבד במהלך סריקה אפורה או בינרית, " "שימושי עבור נייר או דיו צבעוניים" -#: backend/fujitsu.c:3880 +#: backend/fujitsu.c:3884 #, no-c-format msgid "Buffer mode" msgstr "מצב חוצץ" -#: backend/fujitsu.c:3881 +#: backend/fujitsu.c:3885 #, no-c-format msgid "Request scanner to read pages quickly from ADF into internal memory" msgstr "" "בקש מהסורק לקרוא עמודים במהירות ממזין המסמכים האוטומטי לתוך זיכרון פנימי" -#: backend/fujitsu.c:3900 +#: backend/fujitsu.c:3904 #, no-c-format msgid "Prepick" msgstr "איסוף מקדים" -#: backend/fujitsu.c:3901 +#: backend/fujitsu.c:3905 #, no-c-format msgid "Request scanner to grab next page from ADF" msgstr "בקש מהסורק לתפוס את העמוד הבא ממזין המסמכים האוטומטי" -#: backend/fujitsu.c:3920 +#: backend/fujitsu.c:3924 #, no-c-format msgid "Overscan" msgstr "סריקת יתר" -#: backend/fujitsu.c:3921 +#: backend/fujitsu.c:3925 #, no-c-format msgid "" "Collect a few mm of background on top side of scan, before paper enters " @@ -2599,23 +2628,23 @@ msgstr "" "המסמכים האוטומטי, והגדל שטח סריקה מירבי מעבר לגודל הנייר, על מנת לאפשר " "צבירה בצדדים הנותרים. עלול להתנגש עם אפשרות צבע רקע" -#: backend/fujitsu.c:3939 +#: backend/fujitsu.c:3943 #, no-c-format msgid "Sleep timer" msgstr "טיימר שינה" -#: backend/fujitsu.c:3940 +#: backend/fujitsu.c:3944 #, no-c-format msgid "" "Time in minutes until the internal power supply switches to sleep mode" msgstr "זמן בדקות עד שספק הכוח הפנימי עובר למצב שינה" -#: backend/fujitsu.c:3958 +#: backend/fujitsu.c:3962 #, no-c-format msgid "Off timer" msgstr "טיימר כיבוי" -#: backend/fujitsu.c:3959 +#: backend/fujitsu.c:3963 #, no-c-format msgid "" "Time in minutes until the internal power supply switches the scanner " @@ -2624,42 +2653,42 @@ msgstr "" "זמן בדקות עד שספק הכוח הפנימי מכבה את הסורק. יעוגל ל-15 הדקות הקרובות " "ביותר. אפס אומר אף פעם לא לכבות." -#: backend/fujitsu.c:3977 +#: backend/fujitsu.c:3981 #, no-c-format msgid "Duplex offset" msgstr "אופסט דו צדדי" -#: backend/fujitsu.c:3978 +#: backend/fujitsu.c:3982 #, no-c-format msgid "Adjust front/back offset" msgstr "כוון אופסט חזיתי/אחורי" -#: backend/fujitsu.c:3995 backend/plustek.c:1025 backend/umax_pp.c:800 +#: backend/fujitsu.c:3999 backend/plustek.c:1025 backend/umax_pp.c:794 #, no-c-format msgid "Green offset" msgstr "אופסט ירוק" -#: backend/fujitsu.c:3996 +#: backend/fujitsu.c:4000 #, no-c-format msgid "Adjust green/red offset" msgstr "כוון אופסט ירוק/אדום" -#: backend/fujitsu.c:4013 backend/plustek.c:1041 backend/umax_pp.c:812 +#: backend/fujitsu.c:4017 backend/plustek.c:1041 backend/umax_pp.c:806 #, no-c-format msgid "Blue offset" msgstr "אופסט כחול" -#: backend/fujitsu.c:4014 +#: backend/fujitsu.c:4018 #, no-c-format msgid "Adjust blue/red offset" msgstr "כוון אופסט כחול/אדום" -#: backend/fujitsu.c:4027 +#: backend/fujitsu.c:4031 #, no-c-format msgid "Low Memory" msgstr "זיכרון נמוך" -#: backend/fujitsu.c:4028 +#: backend/fujitsu.c:4032 #, no-c-format msgid "" "Limit driver memory usage for use in embedded systems. Causes some " @@ -2672,12 +2701,12 @@ msgstr "" "לשימוש על מנת לקבוע את התמונה הנכונה. אפשרות זו אמורה להיות בשימוש רק עם " "תוכנות ממשק מותאמות אישית." -#: backend/fujitsu.c:4043 +#: backend/fujitsu.c:4047 #, no-c-format msgid "Duplex side" msgstr "צד דו צדדי" -#: backend/fujitsu.c:4044 +#: backend/fujitsu.c:4048 #, no-c-format msgid "" "Tells which side (0=front, 1=back) of a duplex scan the next call to " @@ -2686,153 +2715,153 @@ msgstr "" "אומר איזה צד (0=חזית, 1=אחור) של סריקה דו צדדית הקריאה הבאה ל-sane_read " "תחזיר." -#: backend/fujitsu.c:4055 +#: backend/fujitsu.c:4059 #, no-c-format msgid "Hardware deskew and crop" msgstr "הטיה וקיצוץ של חומרה" -#: backend/fujitsu.c:4056 +#: backend/fujitsu.c:4060 #, no-c-format msgid "Request scanner to rotate and crop pages digitally." msgstr "בקש מסורק לסובב ולקצץ עמודים באופן דיגיטלי." -#: backend/fujitsu.c:4067 backend/kvs1025_opt.c:871 +#: backend/fujitsu.c:4071 backend/kvs1025_opt.c:871 #, no-c-format msgid "Software deskew" msgstr "קיצוץ של חומרה" -#: backend/fujitsu.c:4068 +#: backend/fujitsu.c:4072 #, no-c-format msgid "Request driver to rotate skewed pages digitally." msgstr "בקש מהדרייבר לסובב עמודים מוטים באופן דיגיטלי." -#: backend/fujitsu.c:4080 backend/kvs1025_opt.c:880 +#: backend/fujitsu.c:4084 backend/kvs1025_opt.c:880 #, no-c-format msgid "Software despeckle diameter" msgstr "קוטר פגמים של תוכנה" -#: backend/fujitsu.c:4081 +#: backend/fujitsu.c:4085 #, no-c-format msgid "Maximum diameter of lone dots to remove from scan." msgstr "קוטר מירבי של נקודות בודדות להסרה מהסריקה." -#: backend/fujitsu.c:4100 backend/genesys/genesys.cpp:4117 +#: backend/fujitsu.c:4104 backend/genesys/genesys.cpp:4159 #, no-c-format msgid "Software crop" msgstr "קיצוץ של תוכנה" -#: backend/fujitsu.c:4101 +#: backend/fujitsu.c:4105 #, no-c-format msgid "Request driver to remove border from pages digitally." msgstr "בקש מהדרייבר להסיר את הגבול מהעמודים באופן דיגיטלי." -#: backend/fujitsu.c:4130 +#: backend/fujitsu.c:4134 #, no-c-format msgid "Halt on Cancel" msgstr "הפסק כאשר ביטול" -#: backend/fujitsu.c:4131 +#: backend/fujitsu.c:4135 #, no-c-format msgid "" "Request driver to halt the paper feed instead of eject during a cancel." msgstr "בקש מהדרייבר להפסיק את הזנת הנייר במקום להוציא במהלך ביטול." -#: backend/fujitsu.c:4142 +#: backend/fujitsu.c:4146 #, no-c-format msgid "Endorser Options" msgstr "אפשרויות תומך" -#: backend/fujitsu.c:4143 +#: backend/fujitsu.c:4147 #, no-c-format msgid "Controls for endorser unit" msgstr "שולט על יחידת התמיכה" -#: backend/fujitsu.c:4154 +#: backend/fujitsu.c:4158 #, no-c-format msgid "Endorser" msgstr "תומך" -#: backend/fujitsu.c:4155 +#: backend/fujitsu.c:4159 #, no-c-format msgid "Enable endorser unit" msgstr "הפעל יחידת תמיכה" -#: backend/fujitsu.c:4170 +#: backend/fujitsu.c:4174 #, no-c-format msgid "Endorser bits" msgstr "ביטים של תומך" -#: backend/fujitsu.c:4171 +#: backend/fujitsu.c:4175 #, no-c-format msgid "Determines maximum endorser counter value." msgstr "קובע את ערך הספירה המירבי של התומך." -#: backend/fujitsu.c:4196 +#: backend/fujitsu.c:4200 #, no-c-format msgid "Endorser value" msgstr "ערך תומך" -#: backend/fujitsu.c:4197 +#: backend/fujitsu.c:4201 #, no-c-format msgid "Initial endorser counter value." msgstr "ערך ספירה התחלתי של התומך." -#: backend/fujitsu.c:4220 +#: backend/fujitsu.c:4224 #, no-c-format msgid "Endorser step" msgstr "צעד תומך" -#: backend/fujitsu.c:4221 +#: backend/fujitsu.c:4225 #, no-c-format msgid "Change endorser counter value by this much for each page." msgstr "שנה את ערך הספירה של התומך בכמות זו לכל עמוד." -#: backend/fujitsu.c:4244 +#: backend/fujitsu.c:4248 #, no-c-format msgid "Endorser Y" msgstr "תומך Y" -#: backend/fujitsu.c:4245 +#: backend/fujitsu.c:4249 #, no-c-format msgid "Endorser print offset from top of paper." msgstr "אופסט הדפסה של התומך מהחלק העליון של הנייר." -#: backend/fujitsu.c:4270 +#: backend/fujitsu.c:4274 #, no-c-format msgid "Endorser font" msgstr "גופן תומך" -#: backend/fujitsu.c:4271 +#: backend/fujitsu.c:4275 #, no-c-format msgid "Endorser printing font." msgstr "גופן הדפסה תומך." -#: backend/fujitsu.c:4300 +#: backend/fujitsu.c:4304 #, no-c-format msgid "Endorser direction" msgstr "כיוון תומך" -#: backend/fujitsu.c:4301 +#: backend/fujitsu.c:4305 #, no-c-format msgid "Endorser printing direction." msgstr "כיוון הדפסה תומך." -#: backend/fujitsu.c:4325 +#: backend/fujitsu.c:4329 #, no-c-format msgid "Endorser side" msgstr "צד תומך" -#: backend/fujitsu.c:4326 +#: backend/fujitsu.c:4330 #, no-c-format msgid "Endorser printing side, requires hardware support to change" msgstr "צד הדפסה תומך, דורש תמיכת חומרה לשינוי" -#: backend/fujitsu.c:4351 +#: backend/fujitsu.c:4355 #, no-c-format msgid "Endorser string" msgstr "מחרוזת תומך" -#: backend/fujitsu.c:4352 +#: backend/fujitsu.c:4356 #, no-c-format msgid "" "Endorser alphanumeric print format. %05ud or %08ud at the end will be " @@ -2840,211 +2869,197 @@ msgid "" msgstr "" "פורמט הדפסה אלפא נומרי תומך. ערך מונה מחליף את %05ud או %08ud בסוף." -#: backend/fujitsu.c:4379 +#: backend/fujitsu.c:4383 #, no-c-format msgid "Top edge" msgstr "קצה עליון" -#: backend/fujitsu.c:4380 +#: backend/fujitsu.c:4384 #, fuzzy, no-c-format msgid "Paper is pulled partly into ADF" msgstr "נייר משוך בחלקו לתוך מזין מסמכים אוטומטי" -#: backend/fujitsu.c:4391 +#: backend/fujitsu.c:4395 #, no-c-format msgid "A3 paper" msgstr "נייר A3" -#: backend/fujitsu.c:4392 +#: backend/fujitsu.c:4396 #, no-c-format msgid "A3 paper detected" msgstr "התגלה נייר A3" -#: backend/fujitsu.c:4403 +#: backend/fujitsu.c:4407 #, no-c-format msgid "B4 paper" msgstr "נייר B4" -#: backend/fujitsu.c:4404 +#: backend/fujitsu.c:4408 #, no-c-format msgid "B4 paper detected" msgstr "התגלה נייר B4" -#: backend/fujitsu.c:4415 +#: backend/fujitsu.c:4419 #, no-c-format msgid "A4 paper" msgstr "נייר A4" -#: backend/fujitsu.c:4416 +#: backend/fujitsu.c:4420 #, no-c-format msgid "A4 paper detected" msgstr "התגלה נייר A4" -#: backend/fujitsu.c:4427 +#: backend/fujitsu.c:4431 #, no-c-format msgid "B5 paper" msgstr "נייר B5" -#: backend/fujitsu.c:4428 +#: backend/fujitsu.c:4432 #, no-c-format msgid "B5 paper detected" msgstr "התגלה נייר B5" -#: backend/fujitsu.c:4451 +#: backend/fujitsu.c:4455 #, no-c-format msgid "OMR or DF" msgstr "OMR or DF" -#: backend/fujitsu.c:4452 +#: backend/fujitsu.c:4456 #, no-c-format msgid "OMR or double feed detected" msgstr "התגלה OMR או הזנה כפולה" -#: backend/fujitsu.c:4475 +#: backend/fujitsu.c:4479 #, no-c-format msgid "Power saving" msgstr "חיסכון בחשמל" -#: backend/fujitsu.c:4476 +#: backend/fujitsu.c:4480 #, no-c-format msgid "Scanner in power saving mode" msgstr "סורק במצב חיסכון בחשמל" -#: backend/fujitsu.c:4499 +#: backend/fujitsu.c:4503 #, no-c-format msgid "Manual feed" msgstr "הזנה ידנית" -#: backend/fujitsu.c:4500 +#: backend/fujitsu.c:4504 #, no-c-format msgid "Manual feed selected" msgstr "נבחרה הזנה ידנית" -#: backend/fujitsu.c:4523 +#: backend/fujitsu.c:4527 #, no-c-format msgid "Function" msgstr "פונקציה" -#: backend/fujitsu.c:4524 +#: backend/fujitsu.c:4528 #, no-c-format msgid "Function character on screen" msgstr "תו פונקציה על מסך" -#: backend/fujitsu.c:4535 +#: backend/fujitsu.c:4539 #, no-c-format msgid "Ink low" msgstr "דיו נמוך" -#: backend/fujitsu.c:4536 +#: backend/fujitsu.c:4540 #, no-c-format msgid "Imprinter ink running low" msgstr "דיו רושם עומד להיגמר" -#: backend/fujitsu.c:4547 +#: backend/fujitsu.c:4551 #, no-c-format msgid "Double feed" msgstr "הזנה כפולה" -#: backend/fujitsu.c:4548 +#: backend/fujitsu.c:4552 #, no-c-format msgid "Double feed detected" msgstr "התגלתה הזנה כפולה" -#: backend/fujitsu.c:4559 +#: backend/fujitsu.c:4563 #, no-c-format msgid "Error code" msgstr "קוד תקלה" -#: backend/fujitsu.c:4560 +#: backend/fujitsu.c:4564 #, no-c-format msgid "Hardware error code" msgstr "קוד תקלה חומרה" -#: backend/fujitsu.c:4571 +#: backend/fujitsu.c:4575 #, no-c-format msgid "Skew angle" msgstr "זווית הטיה" -#: backend/fujitsu.c:4572 +#: backend/fujitsu.c:4576 #, no-c-format msgid "Requires black background for scanning" msgstr "דורש רקע שחור עבור סריקה" -#: backend/fujitsu.c:4583 +#: backend/fujitsu.c:4587 #, no-c-format msgid "Ink remaining" msgstr "דיו נותר" -#: backend/fujitsu.c:4584 +#: backend/fujitsu.c:4588 #, no-c-format msgid "Imprinter ink level" msgstr "רמת דיו רושם" -#: backend/fujitsu.c:4595 +#: backend/fujitsu.c:4599 #, no-c-format msgid "Density" msgstr "צפיפות" -#: backend/fujitsu.c:4596 +#: backend/fujitsu.c:4600 #, no-c-format msgid "Density dial" msgstr "לוח צפיפות" -#: backend/fujitsu.c:4607 backend/fujitsu.c:4608 +#: backend/fujitsu.c:4611 backend/fujitsu.c:4612 #, no-c-format msgid "Duplex switch" msgstr "החלפה דו צדדית" -#: backend/genesys/genesys.cpp:4118 +#: backend/genesys/genesys.cpp:4160 #, no-c-format msgid "Request backend to remove border from pages digitally" msgstr "בקש מה-backend להסיר גבול מהעמודים באופן דיגיטלי" -#: backend/genesys/genesys.cpp:4127 backend/kvs1025_opt.c:912 +#: backend/genesys/genesys.cpp:4169 backend/kvs1025_opt.c:912 #, no-c-format msgid "Request driver to discard pages with low numbers of dark pixels" msgstr "בקש מהדרייבר לזנוח עמודים עם מספר נמוך של פיקסלים כהים" -#: backend/genesys/genesys.cpp:4137 backend/kvs1025_opt.c:892 +#: backend/genesys/genesys.cpp:4179 backend/kvs1025_opt.c:892 #, no-c-format msgid "Software derotate" msgstr "סיבוב תוכנה" -#: backend/genesys/genesys.cpp:4138 backend/kvs1025_opt.c:894 +#: backend/genesys/genesys.cpp:4180 backend/kvs1025_opt.c:894 #, no-c-format msgid "Request driver to detect and correct 90 degree image rotation" msgstr "בקש מהדרייבר לגלות ולתקן סיבוב תמונה של 90 מעלות" -#: backend/genesys/genesys.cpp:4168 backend/pixma_sane_options.c:314 +#: backend/genesys/genesys.cpp:4210 backend/pixma/pixma_sane_options.c:314 #, no-c-format msgid "Extras" msgstr "תוספות" -#: backend/genesys/genesys.cpp:4188 backend/pixma_sane_options.c:336 +#: backend/genesys/genesys.cpp:4230 backend/pixma/pixma_sane_options.c:336 #, no-c-format msgid "Dynamic threshold curve, from light to dark, normally 50-65" msgstr "עקום סף דינמי, מבהיר לכהה, בדרך כלל 50-65" -#: backend/genesys/genesys.cpp:4197 -#, no-c-format -msgid "Disable dynamic lineart" -msgstr "כבה סגנון קווי דינמי" - -#: backend/genesys/genesys.cpp:4199 -#, no-c-format -msgid "" -"Disable use of a software adaptive algorithm to generate lineart relying " -"instead on hardware lineart." -msgstr "" -"כבה שימוש של אלגוריתם מסתגל תוכנתי ליצור סגנון קווי ובמקום זאת הסתמך על " -"סגנון קווי חומרתי." - -#: backend/genesys/genesys.cpp:4215 +#: backend/genesys/genesys.cpp:4240 #, no-c-format msgid "Disable interpolation" msgstr "כבה אינטרפולציה" -#: backend/genesys/genesys.cpp:4218 +#: backend/genesys/genesys.cpp:4243 #, no-c-format msgid "" "When using high resolutions where the horizontal resolution is smaller " @@ -3053,32 +3068,32 @@ msgstr "" "כאשר רזולוציות גבוהות בשימוש היכן שהרזולוציה האופקית קטנה מהרזולוציה " "האנכית זה מכבה אינטרפולציה אופקית." -#: backend/genesys/genesys.cpp:4227 +#: backend/genesys/genesys.cpp:4252 #, no-c-format msgid "Color filter" msgstr "מסנן צבע" -#: backend/genesys/genesys.cpp:4230 +#: backend/genesys/genesys.cpp:4255 #, no-c-format msgid "When using gray or lineart this option selects the used color." msgstr "כאשר משתמשים באפור או בסגנון קווי אפשרות זו בוחרת את הצבע בשימוש." -#: backend/genesys/genesys.cpp:4254 +#: backend/genesys/genesys.cpp:4279 #, no-c-format msgid "Calibration file" msgstr "קובץ כיול" -#: backend/genesys/genesys.cpp:4255 +#: backend/genesys/genesys.cpp:4280 #, no-c-format msgid "Specify the calibration file to use" msgstr "פרט את קובץ הכיול לשימוש" -#: backend/genesys/genesys.cpp:4272 +#: backend/genesys/genesys.cpp:4297 #, no-c-format msgid "Calibration cache expiration time" msgstr "זמן תפוגה מטמון כיול" -#: backend/genesys/genesys.cpp:4273 +#: backend/genesys/genesys.cpp:4298 #, no-c-format msgid "" "Time (in minutes) before a cached calibration expires. A value of 0 " @@ -3087,12 +3102,12 @@ msgstr "" "זמן (בדקות) לפני שכיול מוטמן פג. ערך של 0 אומר שמטמון אינו בשימוש. ערך " "שלילי אומר שמטמון לעולם לא פג." -#: backend/genesys/genesys.cpp:4283 +#: backend/genesys/genesys.cpp:4308 #, no-c-format msgid "Lamp off time" msgstr "זמן כיבוי מנורה" -#: backend/genesys/genesys.cpp:4286 +#: backend/genesys/genesys.cpp:4311 #, no-c-format msgid "" "The lamp will be turned off after the given time (in minutes). A value " @@ -3100,103 +3115,108 @@ msgid "" msgstr "" "המנורה תיכבה לאחר הזמן הנתון (בדקות). ערך של 0 אומר, שהמנורה לא תיכבה." -#: backend/genesys/genesys.cpp:4296 +#: backend/genesys/genesys.cpp:4321 #, no-c-format msgid "Lamp off during scan" msgstr "מנורה כבויה במהלך סריקה" -#: backend/genesys/genesys.cpp:4297 +#: backend/genesys/genesys.cpp:4322 #, no-c-format msgid "The lamp will be turned off during scan. " msgstr "המנורה תיכבה במהלך סריקה. " -#: backend/genesys/genesys.cpp:4324 backend/genesys/genesys.cpp:4325 +#: backend/genesys/genesys.cpp:4349 backend/genesys/genesys.cpp:4350 #, no-c-format msgid "File button" msgstr "כפתור קובץ" -#: backend/genesys/genesys.cpp:4369 backend/genesys/genesys.cpp:4370 +#: backend/genesys/genesys.cpp:4394 backend/genesys/genesys.cpp:4395 #, no-c-format msgid "OCR button" msgstr "כפתור OCR" -#: backend/genesys/genesys.cpp:4381 backend/genesys/genesys.cpp:4382 +#: backend/genesys/genesys.cpp:4406 backend/genesys/genesys.cpp:4407 #, no-c-format msgid "Power button" msgstr "כפתור הדלקה" -#: backend/genesys/genesys.cpp:4393 backend/genesys/genesys.cpp:4394 +#: backend/genesys/genesys.cpp:4418 backend/genesys/genesys.cpp:4419 #, no-c-format msgid "Extra button" msgstr "כפתור אקסטרה" -#: backend/genesys/genesys.cpp:4405 backend/gt68xx.c:755 +#: backend/genesys/genesys.cpp:4430 backend/gt68xx.c:755 #, fuzzy, no-c-format msgid "Needs calibration" msgstr "דרוש כיול" -#: backend/genesys/genesys.cpp:4406 backend/gt68xx.c:756 +#: backend/genesys/genesys.cpp:4431 backend/gt68xx.c:756 backend/p5.c:1928 #, no-c-format msgid "The scanner needs calibration for the current settings" msgstr "הסורק דורש כיול עבור ההגדרות הנוכחיות" -#: backend/genesys/genesys.cpp:4417 backend/gt68xx.c:780 -#: backend/gt68xx.c:781 backend/pixma_sane_options.c:226 -#: backend/plustek.c:1080 +#: backend/genesys/genesys.cpp:4442 backend/gt68xx.c:780 +#: backend/gt68xx.c:781 backend/p5.c:1937 backend/p5.c:1938 +#: backend/pixma/pixma_sane_options.c:226 backend/plustek.c:1080 #, no-c-format msgid "Buttons" msgstr "כפתורים" -#: backend/genesys/genesys.cpp:4426 backend/gt68xx.c:787 -#: backend/hp5400_sane.c:392 backend/hp-option.h:97 backend/niash.c:726 -#: backend/plustek.c:941 +#: backend/genesys/genesys.cpp:4451 backend/gt68xx.c:787 +#: backend/hp-option.h:97 backend/hp5400_sane.c:392 backend/niash.c:726 +#: backend/p5.c:1945 backend/plustek.c:941 #, no-c-format msgid "Calibrate" msgstr "כייל" -#: backend/genesys/genesys.cpp:4428 backend/gt68xx.c:789 +#: backend/genesys/genesys.cpp:4453 backend/gt68xx.c:789 backend/p5.c:1947 #, no-c-format msgid "Start calibration using special sheet" msgstr "התחל כיול בעזרת דף מיוחד" -#: backend/genesys/genesys.cpp:4440 backend/gt68xx.c:802 +#: backend/genesys/genesys.cpp:4465 backend/gt68xx.c:802 backend/p5.c:1958 #, no-c-format msgid "Clear calibration" msgstr "נקה כיול" -#: backend/genesys/genesys.cpp:4441 backend/gt68xx.c:803 +#: backend/genesys/genesys.cpp:4466 backend/gt68xx.c:803 backend/p5.c:1960 #, no-c-format msgid "Clear calibration cache" msgstr "נקה מטמון כיול" -#: backend/genesys/genesys.cpp:4451 +#: backend/genesys/genesys.cpp:4476 #, fuzzy, no-c-format msgid "Force calibration" msgstr "כיול גס" -#: backend/genesys/genesys.cpp:4452 +#: backend/genesys/genesys.cpp:4477 #, no-c-format msgid "Force calibration ignoring all and any calibration caches" msgstr "" -#: backend/genesys/genesys.cpp:4462 +#: backend/genesys/genesys.cpp:4487 #, fuzzy, no-c-format msgid "Ignore internal offsets" msgstr "אופסט ירוק" -#: backend/genesys/genesys.cpp:4464 +#: backend/genesys/genesys.cpp:4489 #, no-c-format msgid "" "Acquires the image including the internal calibration areas of the " "scanner" msgstr "" -#: backend/gt68xx.c:149 backend/ma1509.c:108 backend/mustek.c:164 -#: backend/snapscan-options.c:87 backend/umax.c:182 +#: backend/genesys/genesys.h:79 backend/gt68xx.c:149 backend/ma1509.c:108 +#: backend/mustek.c:164 backend/snapscan-options.c:87 backend/umax.c:182 #, no-c-format msgid "Transparency Adapter" msgstr "מתאם שקיפות" +#: backend/genesys/genesys.h:80 +#, fuzzy, no-c-format +msgid "Transparency Adapter Infrared" +msgstr "מתאם שקיפות" + #: backend/gt68xx.c:470 #, no-c-format msgid "Gray mode color" @@ -3299,6 +3319,307 @@ msgstr "ערך גמה" msgid "Sets the gamma value of all channels." msgstr "קובע את ערך גמה של כל הערוצים." +#: backend/hp-option.c:2987 +#, no-c-format +msgid "Advanced Options" +msgstr "אפשרויות מתקדמות" + +#: backend/hp-option.c:3044 +#, no-c-format +msgid "Coarse" +msgstr "גס" + +#: backend/hp-option.c:3045 +#, no-c-format +msgid "Fine" +msgstr "עדין" + +#: backend/hp-option.c:3046 +#, no-c-format +msgid "Bayer" +msgstr "Bayer" + +#: backend/hp-option.c:3049 backend/hp-option.c:3100 +#, no-c-format +msgid "Custom" +msgstr "מותאם אישית" + +#: backend/hp-option.c:3090 backend/hp-option.c:3146 +#: backend/hp-option.c:3161 +#, no-c-format +msgid "Auto" +msgstr "אוטומטי" + +#: backend/hp-option.c:3091 +#, no-c-format +msgid "NTSC RGB" +msgstr "NTSC RGB" + +#: backend/hp-option.c:3092 +#, no-c-format +msgid "XPA RGB" +msgstr "XPA RGB" + +#: backend/hp-option.c:3093 +#, no-c-format +msgid "Pass-through" +msgstr "חודר" + +#: backend/hp-option.c:3094 +#, no-c-format +msgid "NTSC Gray" +msgstr "אפור NTSC" + +#: backend/hp-option.c:3095 +#, no-c-format +msgid "XPA Gray" +msgstr "אפור XPA" + +#: backend/hp-option.c:3147 +#, no-c-format +msgid "Slow" +msgstr "לאט" + +#: backend/hp-option.c:3148 backend/hp-option.c:3255 +#: backend/kvs40xx_opt.c:230 backend/matsushita.c:244 backend/mustek.c:149 +#: backend/plustek.c:234 backend/plustek_pp.c:203 backend/u12.c:155 +#, no-c-format +msgid "Normal" +msgstr "רגיל" + +#: backend/hp-option.c:3149 +#, no-c-format +msgid "Fast" +msgstr "מהר" + +#: backend/hp-option.c:3150 +#, no-c-format +msgid "Extra Fast" +msgstr "מהר מאוד" + +#: backend/hp-option.c:3163 +#, no-c-format +msgid "2-pixel" +msgstr "2-פיקסל" + +#: backend/hp-option.c:3164 +#, no-c-format +msgid "4-pixel" +msgstr "4-פיקסל" + +#: backend/hp-option.c:3165 +#, no-c-format +msgid "8-pixel" +msgstr "8-פיקסל" + +#: backend/hp-option.c:3176 +#, no-c-format +msgid "Print" +msgstr "הדפסה" + +#: backend/hp-option.c:3177 backend/hp3900_sane.c:427 +#: backend/hp3900_sane.c:1019 +#, no-c-format +msgid "Slide" +msgstr "שקף" + +#: backend/hp-option.c:3178 +#, no-c-format +msgid "Film-strip" +msgstr "רצועת-סרט" + +#: backend/hp-option.c:3256 backend/hp5590.c:93 +#, no-c-format +msgid "ADF" +msgstr "מזין מסמכים אוטומטי" + +#: backend/hp-option.c:3257 +#, no-c-format +msgid "XPA" +msgstr "XPA" + +#: backend/hp-option.c:3331 backend/hp-option.c:3344 +#, no-c-format +msgid "Conditional" +msgstr "על תנאי" + +#: backend/hp-option.c:3417 +#, no-c-format +msgid "Experiment" +msgstr "ניסוי" + +#: backend/hp-option.h:60 +#, no-c-format +msgid "Sharpening" +msgstr "חידוד" + +#: backend/hp-option.h:61 +#, no-c-format +msgid "Set sharpening value." +msgstr "קבע ערך חידוד." + +#: backend/hp-option.h:66 +#, no-c-format +msgid "Auto Threshold" +msgstr "סף אוטומטי" + +#: backend/hp-option.h:68 +#, no-c-format +msgid "Enable automatic determination of threshold for line-art scans." +msgstr "הפעל קביעה אוטומטית של סף עבור סריקות סגנון קווי." + +#: backend/hp-option.h:74 +#, no-c-format +msgid "Select smoothing filter." +msgstr "בחר מסנן החלקה." + +#: backend/hp-option.h:79 +#, no-c-format +msgid "Unload media after scan" +msgstr "הוצא מדיה לאחר סריקה" + +#: backend/hp-option.h:80 +#, no-c-format +msgid "Unloads the media after a scan." +msgstr "מוציא את המדיה לאחר סריקה." + +#: backend/hp-option.h:85 +#, no-c-format +msgid "Change document" +msgstr "שנה מסמך" + +#: backend/hp-option.h:86 +#, no-c-format +msgid "Change Document." +msgstr "שנה מסמך." + +#: backend/hp-option.h:91 +#, no-c-format +msgid "Unload" +msgstr "הוצא" + +#: backend/hp-option.h:92 +#, no-c-format +msgid "Unload Document." +msgstr "הוצא מסמך." + +#: backend/hp-option.h:98 +#, no-c-format +msgid "Start calibration process." +msgstr "התחל תהליך כיול." + +#: backend/hp-option.h:103 +#, no-c-format +msgid "Media" +msgstr "מדיה" + +#: backend/hp-option.h:104 +#, no-c-format +msgid "Set type of media." +msgstr "קבע סוג מדיה." + +#: backend/hp-option.h:109 +#, no-c-format +msgid "Exposure time" +msgstr "זמן חשיפה" + +#: backend/hp-option.h:111 +#, no-c-format +msgid "" +"A longer exposure time lets the scanner collect more light. Suggested " +"use is 175% for prints, 150% for normal slides and \"Negative\" for " +"negative film. For dark (underexposed) images you can increase this " +"value." +msgstr "" +"זמן חשיפה ארוך יותר מאפשר לסורק לאסוף עוד אור. שימוש מומלץ הוא 175% " +"להדפסות, 150% לשקפים רגילים ו\"תשלילים\" עבור סרט תשלילים. עבור תמונות " +"כהות (תת חשיפה) אתה יכול להגדיל את הערך הזה." + +#: backend/hp-option.h:119 backend/hp-option.h:126 +#, no-c-format +msgid "Color Matrix" +msgstr "מטריצת צבע" + +#: backend/hp-option.h:121 +#, fuzzy, no-c-format +msgid "Set the scanner's color matrix." +msgstr "קבע את מטריצת הצבע של הסורק." + +#: backend/hp-option.h:127 +#, no-c-format +msgid "Custom color matrix." +msgstr "מטריצת צבע מותאמת אישית." + +#: backend/hp-option.h:132 +#, no-c-format +msgid "Mono Color Matrix" +msgstr "מטריצת צבע מונו" + +#: backend/hp-option.h:133 +#, no-c-format +msgid "Custom color matrix for grayscale scans." +msgstr "מטריצת צבע מותאמת אישית עבור סריקות בגווני אפור." + +#: backend/hp-option.h:138 +#, no-c-format +msgid "Mirror horizontal" +msgstr "בצע תמונת ראי אופקית" + +#: backend/hp-option.h:139 +#, no-c-format +msgid "Mirror image horizontally." +msgstr "תמונת ראי אופקית." + +#: backend/hp-option.h:144 +#, no-c-format +msgid "Mirror vertical" +msgstr "בצע תמונת ראי אנכית" + +#: backend/hp-option.h:145 +#, no-c-format +msgid "Mirror image vertically." +msgstr "תמונת ראי אנכית." + +#: backend/hp-option.h:150 +#, no-c-format +msgid "Update options" +msgstr "עדכן אפשרויות" + +#: backend/hp-option.h:151 +#, no-c-format +msgid "Update options." +msgstr "עדכן אפשרויות." + +#: backend/hp-option.h:156 +#, no-c-format +msgid "8 bit output" +msgstr "פלט 8 ביט" + +#: backend/hp-option.h:158 +#, no-c-format +msgid "Use bit depth greater eight internally, but output only eight bits." +msgstr "השתמש בעומק ביט גדול משמונה פנימית, אבל בצע פלט רק של שמונה ביטים." + +#: backend/hp-option.h:164 +#, no-c-format +msgid "Front button wait" +msgstr "המתנה כפתור חזיתי" + +#: backend/hp-option.h:165 +#, no-c-format +msgid "Wait to scan for front-panel button push." +msgstr "המתן לסריקה עד ללחיצה על כפתור בלוח החזיתי." + +#: backend/hp-option.h:172 +#, no-c-format +msgid "Shut off lamp" +msgstr "כיבוי מנורה" + +#: backend/hp-option.h:173 +#, no-c-format +msgid "Shut off scanner lamp." +msgstr "כיבוי מנורת סורק." + #: backend/hp3500.c:1020 #, no-c-format msgid "Geometry Group" @@ -3309,12 +3630,6 @@ msgstr "קבוצת גיאומטריה" msgid "Scan Mode Group" msgstr "קבוצת מצב סריקה" -#: backend/hp3900_sane.c:427 backend/hp3900_sane.c:1019 -#: backend/hp-option.c:3177 -#, no-c-format -msgid "Slide" -msgstr "שקף" - #: backend/hp3900_sane.c:1405 #, no-c-format msgid "Scanner model" @@ -3513,11 +3828,6 @@ msgstr "מדליק או מכבה את המנורה." msgid "Calibrates for black and white level." msgstr "מכייל עבור רמת שחור ולבן." -#: backend/hp5590.c:93 backend/hp-option.c:3256 -#, no-c-format -msgid "ADF" -msgstr "מזין מסמכים אוטומטי" - #: backend/hp5590.c:95 #, no-c-format msgid "TMA Slides" @@ -3633,296 +3943,6 @@ msgstr "" "ערך צבע עבור מצב מילוי קווים משתרכים \"צבע\". צבע RGB לפי r*65536+256*g" "+b או ערך אפור (ברירת מחדל=סגול או אפור)" -#: backend/hp-option.c:2987 -#, no-c-format -msgid "Advanced Options" -msgstr "אפשרויות מתקדמות" - -#: backend/hp-option.c:3044 -#, no-c-format -msgid "Coarse" -msgstr "גס" - -#: backend/hp-option.c:3045 -#, no-c-format -msgid "Fine" -msgstr "עדין" - -#: backend/hp-option.c:3046 -#, no-c-format -msgid "Bayer" -msgstr "Bayer" - -#: backend/hp-option.c:3049 backend/hp-option.c:3100 -#, no-c-format -msgid "Custom" -msgstr "מותאם אישית" - -#: backend/hp-option.c:3090 backend/hp-option.c:3146 -#: backend/hp-option.c:3161 -#, no-c-format -msgid "Auto" -msgstr "אוטומטי" - -#: backend/hp-option.c:3091 -#, no-c-format -msgid "NTSC RGB" -msgstr "NTSC RGB" - -#: backend/hp-option.c:3092 -#, no-c-format -msgid "XPA RGB" -msgstr "XPA RGB" - -#: backend/hp-option.c:3093 -#, no-c-format -msgid "Pass-through" -msgstr "חודר" - -#: backend/hp-option.c:3094 -#, no-c-format -msgid "NTSC Gray" -msgstr "אפור NTSC" - -#: backend/hp-option.c:3095 -#, no-c-format -msgid "XPA Gray" -msgstr "אפור XPA" - -#: backend/hp-option.c:3147 -#, no-c-format -msgid "Slow" -msgstr "לאט" - -#: backend/hp-option.c:3148 backend/hp-option.c:3255 -#: backend/kvs40xx_opt.c:230 backend/matsushita.c:244 backend/mustek.c:149 -#: backend/plustek.c:234 backend/plustek_pp.c:203 backend/u12.c:155 -#, no-c-format -msgid "Normal" -msgstr "רגיל" - -#: backend/hp-option.c:3149 -#, no-c-format -msgid "Fast" -msgstr "מהר" - -#: backend/hp-option.c:3150 -#, no-c-format -msgid "Extra Fast" -msgstr "מהר מאוד" - -#: backend/hp-option.c:3163 -#, no-c-format -msgid "2-pixel" -msgstr "2-פיקסל" - -#: backend/hp-option.c:3164 -#, no-c-format -msgid "4-pixel" -msgstr "4-פיקסל" - -#: backend/hp-option.c:3165 -#, no-c-format -msgid "8-pixel" -msgstr "8-פיקסל" - -#: backend/hp-option.c:3176 -#, no-c-format -msgid "Print" -msgstr "הדפסה" - -#: backend/hp-option.c:3178 -#, no-c-format -msgid "Film-strip" -msgstr "רצועת-סרט" - -#: backend/hp-option.c:3257 -#, no-c-format -msgid "XPA" -msgstr "XPA" - -#: backend/hp-option.c:3331 backend/hp-option.c:3344 -#, no-c-format -msgid "Conditional" -msgstr "על תנאי" - -#: backend/hp-option.c:3417 -#, no-c-format -msgid "Experiment" -msgstr "ניסוי" - -#: backend/hp-option.h:60 -#, no-c-format -msgid "Sharpening" -msgstr "חידוד" - -#: backend/hp-option.h:61 -#, no-c-format -msgid "Set sharpening value." -msgstr "קבע ערך חידוד." - -#: backend/hp-option.h:66 -#, no-c-format -msgid "Auto Threshold" -msgstr "סף אוטומטי" - -#: backend/hp-option.h:68 -#, no-c-format -msgid "Enable automatic determination of threshold for line-art scans." -msgstr "הפעל קביעה אוטומטית של סף עבור סריקות סגנון קווי." - -#: backend/hp-option.h:74 -#, no-c-format -msgid "Select smoothing filter." -msgstr "בחר מסנן החלקה." - -#: backend/hp-option.h:79 -#, no-c-format -msgid "Unload media after scan" -msgstr "הוצא מדיה לאחר סריקה" - -#: backend/hp-option.h:80 -#, no-c-format -msgid "Unloads the media after a scan." -msgstr "מוציא את המדיה לאחר סריקה." - -#: backend/hp-option.h:85 -#, no-c-format -msgid "Change document" -msgstr "שנה מסמך" - -#: backend/hp-option.h:86 -#, no-c-format -msgid "Change Document." -msgstr "שנה מסמך." - -#: backend/hp-option.h:91 -#, no-c-format -msgid "Unload" -msgstr "הוצא" - -#: backend/hp-option.h:92 -#, no-c-format -msgid "Unload Document." -msgstr "הוצא מסמך." - -#: backend/hp-option.h:98 -#, no-c-format -msgid "Start calibration process." -msgstr "התחל תהליך כיול." - -#: backend/hp-option.h:103 -#, no-c-format -msgid "Media" -msgstr "מדיה" - -#: backend/hp-option.h:104 -#, no-c-format -msgid "Set type of media." -msgstr "קבע סוג מדיה." - -#: backend/hp-option.h:109 -#, no-c-format -msgid "Exposure time" -msgstr "זמן חשיפה" - -#: backend/hp-option.h:111 -#, no-c-format -msgid "" -"A longer exposure time lets the scanner collect more light. Suggested " -"use is 175% for prints, 150% for normal slides and \"Negative\" for " -"negative film. For dark (underexposed) images you can increase this " -"value." -msgstr "" -"זמן חשיפה ארוך יותר מאפשר לסורק לאסוף עוד אור. שימוש מומלץ הוא 175% " -"להדפסות, 150% לשקפים רגילים ו\"תשלילים\" עבור סרט תשלילים. עבור תמונות " -"כהות (תת חשיפה) אתה יכול להגדיל את הערך הזה." - -#: backend/hp-option.h:119 backend/hp-option.h:126 -#, no-c-format -msgid "Color Matrix" -msgstr "מטריצת צבע" - -#: backend/hp-option.h:121 -#, fuzzy, no-c-format -msgid "Set the scanner's color matrix." -msgstr "קבע את מטריצת הצבע של הסורק." - -#: backend/hp-option.h:127 -#, no-c-format -msgid "Custom color matrix." -msgstr "מטריצת צבע מותאמת אישית." - -#: backend/hp-option.h:132 -#, no-c-format -msgid "Mono Color Matrix" -msgstr "מטריצת צבע מונו" - -#: backend/hp-option.h:133 -#, no-c-format -msgid "Custom color matrix for grayscale scans." -msgstr "מטריצת צבע מותאמת אישית עבור סריקות בגווני אפור." - -#: backend/hp-option.h:138 -#, no-c-format -msgid "Mirror horizontal" -msgstr "בצע תמונת ראי אופקית" - -#: backend/hp-option.h:139 -#, no-c-format -msgid "Mirror image horizontally." -msgstr "תמונת ראי אופקית." - -#: backend/hp-option.h:144 -#, no-c-format -msgid "Mirror vertical" -msgstr "בצע תמונת ראי אנכית" - -#: backend/hp-option.h:145 -#, no-c-format -msgid "Mirror image vertically." -msgstr "תמונת ראי אנכית." - -#: backend/hp-option.h:150 -#, no-c-format -msgid "Update options" -msgstr "עדכן אפשרויות" - -#: backend/hp-option.h:151 -#, no-c-format -msgid "Update options." -msgstr "עדכן אפשרויות." - -#: backend/hp-option.h:156 -#, no-c-format -msgid "8 bit output" -msgstr "פלט 8 ביט" - -#: backend/hp-option.h:158 -#, no-c-format -msgid "Use bit depth greater eight internally, but output only eight bits." -msgstr "השתמש בעומק ביט גדול משמונה פנימית, אבל בצע פלט רק של שמונה ביטים." - -#: backend/hp-option.h:164 -#, no-c-format -msgid "Front button wait" -msgstr "המתנה כפתור חזיתי" - -#: backend/hp-option.h:165 -#, no-c-format -msgid "Wait to scan for front-panel button push." -msgstr "המתן לסריקה עד ללחיצה על כפתור בלוח החזיתי." - -#: backend/hp-option.h:172 -#, no-c-format -msgid "Shut off lamp" -msgstr "כיבוי מנורה" - -#: backend/hp-option.h:173 -#, no-c-format -msgid "Shut off scanner lamp." -msgstr "כיבוי מנורת סורק." - #: backend/kvs1025.h:51 backend/kvs20xx_opt.c:295 backend/kvs40xx_opt.c:516 #: backend/matsushita.h:219 #, no-c-format @@ -4021,7 +4041,7 @@ msgid "single" msgstr "בודד" #: backend/kvs1025_opt.c:73 backend/kvs20xx.c:462 backend/kvs20xx_opt.c:56 -#: backend/kvs40xx.c:704 backend/kvs40xx.c:722 backend/kvs40xx_opt.c:102 +#: backend/kvs40xx.c:705 backend/kvs40xx.c:723 backend/kvs40xx_opt.c:102 #: backend/kvs40xx_opt.c:1087 #, no-c-format msgid "continuous" @@ -4319,7 +4339,7 @@ msgstr "קובע הדגשת תמונה" #: backend/kvs1025_opt.c:807 backend/kvs1025_opt.c:808 #: backend/matsushita.c:1300 backend/matsushita.c:1301 -#: backend/pixma_sane_options.c:112 +#: backend/pixma/pixma_sane_options.c:112 #, no-c-format msgid "Gamma" msgstr "גמה" @@ -4615,52 +4635,52 @@ msgstr "8x8 Bayer" msgid "8x8 Vertical Line" msgstr "קו אנכי 8x8" -#: backend/lexmark.c:273 backend/umax_pp.c:711 +#: backend/lexmark.c:273 backend/umax_pp.c:705 #, no-c-format msgid "Gain" msgstr "הגבר" -#: backend/lexmark.c:274 backend/umax_pp.c:712 +#: backend/lexmark.c:274 backend/umax_pp.c:706 #, no-c-format msgid "Color channels gain settings" msgstr "הגדרות הגבר ערוצי צבע" -#: backend/lexmark.c:283 backend/umax_pp.c:719 +#: backend/lexmark.c:283 backend/umax_pp.c:713 #, no-c-format msgid "Gray gain" msgstr "הגבר אפור" -#: backend/lexmark.c:284 backend/umax_pp.c:720 +#: backend/lexmark.c:284 backend/umax_pp.c:714 #, no-c-format msgid "Sets gray channel gain" msgstr "קובע את הגבר ערוץ אפור" -#: backend/lexmark.c:297 backend/plustek.c:1001 backend/umax_pp.c:731 +#: backend/lexmark.c:297 backend/plustek.c:1001 backend/umax_pp.c:725 #, no-c-format msgid "Red gain" msgstr "הגבר אדום" -#: backend/lexmark.c:298 backend/umax_pp.c:732 +#: backend/lexmark.c:298 backend/umax_pp.c:726 #, no-c-format msgid "Sets red channel gain" msgstr "קובע את הגבר ערוץ אדום" -#: backend/lexmark.c:311 backend/plustek.c:1017 backend/umax_pp.c:743 +#: backend/lexmark.c:311 backend/plustek.c:1017 backend/umax_pp.c:737 #, no-c-format msgid "Green gain" msgstr "הגבר ירוק" -#: backend/lexmark.c:312 backend/umax_pp.c:744 +#: backend/lexmark.c:312 backend/umax_pp.c:738 #, no-c-format msgid "Sets green channel gain" msgstr "קובע את הגבר ערוץ ירוק" -#: backend/lexmark.c:325 backend/plustek.c:1033 backend/umax_pp.c:755 +#: backend/lexmark.c:325 backend/plustek.c:1033 backend/umax_pp.c:749 #, no-c-format msgid "Blue gain" msgstr "הגבר כחול" -#: backend/lexmark.c:326 backend/umax_pp.c:756 +#: backend/lexmark.c:326 backend/umax_pp.c:750 #, no-c-format msgid "Sets blue channel gain" msgstr "קובע את הגבר ערוץ כחול" @@ -4746,7 +4766,7 @@ msgstr "עמוד אחד" msgid "All pages" msgstr "כל הדפים" -#: backend/matsushita.c:1034 backend/plustek.c:1333 +#: backend/matsushita.c:1034 backend/p5_device.c:8 backend/plustek.c:1333 #, no-c-format msgid "sheetfed scanner" msgstr "סורק מוזן דפים" @@ -5243,27 +5263,32 @@ msgstr "" "בצע חימום עד שהבהירות של המנורה קבועה במקום להיצמד לזמן חימום של 40 " "שניות." -#: backend/pixma.c:397 +#: backend/p5.c:1926 +#, fuzzy, no-c-format +msgid "Need calibration" +msgstr "דרוש כיול" + +#: backend/pixma/pixma.c:397 #, no-c-format msgid "Negative color" msgstr "צבע תשליל" -#: backend/pixma.c:402 +#: backend/pixma/pixma.c:402 #, no-c-format msgid "Negative gray" msgstr "אפור תשליל" -#: backend/pixma.c:415 +#: backend/pixma/pixma.c:415 #, no-c-format msgid "48 bits color" msgstr "צבע 48 ביטים" -#: backend/pixma.c:420 +#: backend/pixma/pixma.c:420 #, no-c-format msgid "16 bits gray" msgstr "צבע 16 ביטים" -#: backend/pixma_sane_options.c:84 +#: backend/pixma/pixma_sane_options.c:84 #, no-c-format msgid "" "Selects the scan source (such as a document-feeder). Set source before " @@ -5272,12 +5297,12 @@ msgstr "" "בוחר את מקור הסריקה (כמו מזין מסמכים). קבע מקור לפני מצב ורזולוציה. " "מאתחל מצב ורזולוציה לערכים אוטומטים." -#: backend/pixma_sane_options.c:98 +#: backend/pixma/pixma_sane_options.c:98 #, no-c-format msgid "Button-controlled scan" msgstr "סריקה מבוקרת כפתור" -#: backend/pixma_sane_options.c:99 +#: backend/pixma/pixma_sane_options.c:99 #, no-c-format msgid "" "When enabled, scan process will not start immediately. To proceed, press " @@ -5287,37 +5312,37 @@ msgstr "" "כאשר מופעלת, תהליך הסריקה לא יתחיל מיד. להמשך, לחץ על כפתור \"סריקה\" או " "\"צבע\" (תלוי בדגם הסורק). לביטול, לחץ על כפתור \"אפור\"." -#: backend/pixma_sane_options.c:232 +#: backend/pixma/pixma_sane_options.c:232 #, no-c-format msgid "Update button state" msgstr "עדכן מצב כפתור" -#: backend/pixma_sane_options.c:244 +#: backend/pixma/pixma_sane_options.c:244 #, no-c-format msgid "Button 1" msgstr "כפתור 1" -#: backend/pixma_sane_options.c:258 +#: backend/pixma/pixma_sane_options.c:258 #, no-c-format msgid "Button 2" msgstr "כפתור 2" -#: backend/pixma_sane_options.c:272 +#: backend/pixma/pixma_sane_options.c:272 #, no-c-format msgid "Type of original to scan" msgstr "סוג מקור לסריקה" -#: backend/pixma_sane_options.c:286 +#: backend/pixma/pixma_sane_options.c:286 #, no-c-format msgid "Target operation type" msgstr "סוג פעולת מטרה" -#: backend/pixma_sane_options.c:348 +#: backend/pixma/pixma_sane_options.c:348 #, no-c-format msgid "ADF Waiting Time" msgstr "זמן המתנה מזין מסמכים אוטומטי" -#: backend/pixma_sane_options.c:349 +#: backend/pixma/pixma_sane_options.c:349 #, fuzzy, no-c-format msgid "" "When set, the scanner waits upto the specified time in seconds for a new " @@ -5411,7 +5436,7 @@ msgstr "ממשק אנלוגי" msgid "Red gain value of the AFE" msgstr "ערך הגבר אדום של ה-AFE" -#: backend/plustek.c:1009 backend/umax_pp.c:788 +#: backend/plustek.c:1009 backend/umax_pp.c:782 #, no-c-format msgid "Red offset" msgstr "אופסט אדום" @@ -5685,7 +5710,7 @@ msgstr "" msgid "This option reflects the status of a scanner button." msgstr "אפשרות זו משקפת את הסטטוס של כפתור בסורק." -#: backend/rts8891.c:2840 backend/umax.c:5795 backend/umax_pp.c:635 +#: backend/rts8891.c:2840 backend/umax.c:5795 backend/umax_pp.c:629 #, no-c-format msgid "Lamp on" msgstr "מנורה דולקת" @@ -5695,12 +5720,12 @@ msgstr "מנורה דולקת" msgid "Turn on scanner lamp" msgstr "הדלק מנורת סורק" -#: backend/rts8891.c:2851 backend/umax1220u.c:248 backend/umax.c:5812 +#: backend/rts8891.c:2851 backend/umax.c:5812 backend/umax1220u.c:248 #, no-c-format msgid "Lamp off" msgstr "מנורה כבויה" -#: backend/rts8891.c:2852 backend/umax1220u.c:249 backend/umax.c:5813 +#: backend/rts8891.c:2852 backend/umax.c:5813 backend/umax1220u.c:249 #, no-c-format msgid "Turn off scanner lamp" msgstr "כבה מנורת סורק" @@ -6472,56 +6497,66 @@ msgstr "מצב כיול" msgid "Define calibration mode" msgstr "הגדר מצב כיול" -#: backend/umax_pp.c:636 +#: backend/umax_pp.c:630 #, no-c-format msgid "Sets lamp on/off" msgstr "מדליק/מכבה מנורה" -#: backend/umax_pp.c:645 +#: backend/umax_pp.c:639 #, no-c-format msgid "UTA on" msgstr "הדלקת UTA" -#: backend/umax_pp.c:646 +#: backend/umax_pp.c:640 #, no-c-format msgid "Sets UTA on/off" msgstr "קובע UTA דולק/מכובה" -#: backend/umax_pp.c:767 +#: backend/umax_pp.c:761 #, no-c-format msgid "Offset" msgstr "אופסט" -#: backend/umax_pp.c:769 +#: backend/umax_pp.c:763 #, no-c-format msgid "Color channels offset settings" msgstr "הגדרות אופסט ערוצי צבעים" -#: backend/umax_pp.c:776 +#: backend/umax_pp.c:770 #, no-c-format msgid "Gray offset" msgstr "אופסט אפור" -#: backend/umax_pp.c:777 +#: backend/umax_pp.c:771 #, no-c-format msgid "Sets gray channel offset" msgstr "קובע אופסט ערוץ אפור" -#: backend/umax_pp.c:789 +#: backend/umax_pp.c:783 #, no-c-format msgid "Sets red channel offset" msgstr "קובע אופסט ערוץ אדום" -#: backend/umax_pp.c:801 +#: backend/umax_pp.c:795 #, no-c-format msgid "Sets green channel offset" msgstr "קובע אופסט ערוץ ירוק" -#: backend/umax_pp.c:813 +#: backend/umax_pp.c:807 #, no-c-format msgid "Sets blue channel offset" msgstr "קובע אופסט ערוץ כחול" +#~ msgid "Disable dynamic lineart" +#~ msgstr "כבה סגנון קווי דינמי" + +#~ msgid "" +#~ "Disable use of a software adaptive algorithm to generate lineart " +#~ "relying instead on hardware lineart." +#~ msgstr "" +#~ "כבה שימוש של אלגוריתם מסתגל תוכנתי ליצור סגנון קווי ובמקום זאת הסתמך " +#~ "על סגנון קווי חומרתי." + #~ msgid "linier" #~ msgstr "linier" diff --git a/po/hu.po b/po/hu.po index 88d7d3dcd..b2545453c 100644 --- a/po/hu.po +++ b/po/hu.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: sane-backends\n" "Report-Msgid-Bugs-To: sane-devel@alioth-lists.debian.net\n" -"POT-Creation-Date: 2019-10-12 17:41+0300\n" +"POT-Creation-Date: 2020-01-12 07:09+0000\n" "PO-Revision-Date: 2011-04-06 19:50+0200\n" "Last-Translator: Németh Tamás \n" "Language-Team: Hungarian \n" @@ -27,23 +27,23 @@ msgid "Standard" msgstr "Általános" #: include/sane/saneopts.h:157 backend/artec_eplus48u.c:2884 -#: backend/epson.c:3298 backend/epson2.c:1290 -#: backend/genesys/genesys.cpp:3976 backend/gt68xx.c:696 -#: backend/hp3500.c:1019 backend/hp-option.c:3300 backend/kvs1025_opt.c:639 +#: backend/epson.c:3298 backend/epson2.c:1290 backend/epsonds.c:677 +#: backend/genesys/genesys.cpp:4034 backend/gt68xx.c:696 +#: backend/hp-option.c:3300 backend/hp3500.c:1019 backend/kvs1025_opt.c:639 #: backend/kvs20xx_opt.c:285 backend/kvs40xx_opt.c:506 backend/leo.c:823 #: backend/lexmark.c:199 backend/ma1509.c:551 backend/matsushita.c:1135 #: backend/microtek2.h:599 backend/mustek.c:4373 backend/mustek_usb.c:301 -#: backend/mustek_usb2.c:465 backend/pixma_sane_options.c:160 +#: backend/mustek_usb2.c:465 backend/pixma/pixma_sane_options.c:160 #: backend/plustek.c:808 backend/plustek_pp.c:747 backend/sceptre.c:702 #: backend/snapscan-options.c:550 backend/teco1.c:1095 backend/teco2.c:1910 #: backend/teco3.c:920 backend/test.c:647 backend/u12.c:546 -#: backend/umax.c:5176 backend/umax_pp.c:576 +#: backend/umax.c:5176 backend/umax_pp.c:570 #, no-c-format msgid "Geometry" msgstr "Geometria" #: include/sane/saneopts.h:158 backend/artec_eplus48u.c:2805 -#: backend/canon.c:1493 backend/genesys/genesys.cpp:4035 +#: backend/canon.c:1493 backend/genesys/genesys.cpp:4077 #: backend/gt68xx.c:665 backend/hp-option.c:2956 backend/kvs1025_opt.c:703 #: backend/leo.c:871 backend/ma1509.c:599 backend/matsushita.c:1189 #: backend/microtek2.h:600 backend/mustek.c:4421 backend/mustek_usb.c:349 @@ -51,7 +51,7 @@ msgstr "Geometria" #: backend/plustek_pp.c:793 backend/sceptre.c:750 #: backend/snapscan-options.c:617 backend/stv680.c:1067 #: backend/teco1.c:1143 backend/teco2.c:1958 backend/teco3.c:968 -#: backend/u12.c:592 backend/umax.c:5226 backend/umax_pp.c:625 +#: backend/u12.c:592 backend/umax.c:5226 backend/umax_pp.c:619 #, no-c-format msgid "Enhancement" msgstr "Haladó" @@ -85,7 +85,7 @@ msgid "Bit depth" msgstr "Színmélység" #: include/sane/saneopts.h:165 backend/canon.c:1140 backend/leo.c:781 -#: backend/pixma_sane_options.c:47 +#: backend/pixma/pixma_sane_options.c:47 #, no-c-format msgid "Scan mode" msgstr "Szkennelési üzemmód" @@ -126,7 +126,7 @@ msgid "Bottom-right y" msgstr "Jobb-alsó y" #: include/sane/saneopts.h:173 backend/canon.c:1216 -#: backend/pixma_sane_options.c:300 +#: backend/pixma/pixma_sane_options.c:300 #, no-c-format msgid "Scan resolution" msgstr "Szkennelés felbontása" @@ -281,7 +281,7 @@ msgstr "Fájlnév" msgid "Halftone pattern size" msgstr "" -#: include/sane/saneopts.h:204 backend/fujitsu.c:3233 +#: include/sane/saneopts.h:204 backend/fujitsu.c:3237 #, no-c-format msgid "Halftone pattern" msgstr "" @@ -291,10 +291,10 @@ msgstr "" msgid "Bind X and Y resolution" msgstr "" -#: include/sane/saneopts.h:206 backend/hp3900_sane.c:428 -#: backend/hp3900_sane.c:1021 backend/hp3900_sane.c:1421 -#: backend/hp-option.c:3238 backend/mustek_usb2.c:121 backend/plustek.c:236 -#: backend/plustek_pp.c:205 backend/u12.c:157 +#: include/sane/saneopts.h:206 backend/hp-option.c:3238 +#: backend/hp3900_sane.c:428 backend/hp3900_sane.c:1021 +#: backend/hp3900_sane.c:1421 backend/mustek_usb2.c:121 +#: backend/plustek.c:236 backend/plustek_pp.c:205 backend/u12.c:157 #, no-c-format msgid "Negative" msgstr "Negatív" @@ -997,78 +997,38 @@ msgid "" "Duplex scan provides a scan of the front and back side of the document" msgstr "" -#: backend/canon630u.c:159 +#: backend/canon-sane.c:674 backend/canon.c:171 #, no-c-format -msgid "Calibrate Scanner" -msgstr "Szkenner kalibrálása" - -#: backend/canon630u.c:160 -#, no-c-format -msgid "Force scanner calibration before scan" +msgid "Correction according to transparency ratio" msgstr "" -#: backend/canon630u.c:259 backend/umax1220u.c:208 +#: backend/canon-sane.c:680 backend/canon.c:170 #, no-c-format -msgid "Grayscale scan" -msgstr "Szürkeskálás szkennelés" - -#: backend/canon630u.c:260 backend/umax1220u.c:209 -#, no-c-format -msgid "Do a grayscale rather than color scan" +msgid "Correction according to film type" msgstr "" -#: backend/canon630u.c:306 -#, no-c-format -msgid "Analog Gain" -msgstr "Analóg erősítés" - -#: backend/canon630u.c:307 -#, no-c-format -msgid "Increase or decrease the analog gain of the CCD array" -msgstr "" - -#: backend/canon630u.c:347 backend/epson.h:68 backend/epson2.h:67 -#, no-c-format -msgid "Gamma Correction" -msgstr "Gamma korrekció" - -#: backend/canon630u.c:348 -#, no-c-format -msgid "Selects the gamma corrected transfer curve" -msgstr "" - -#: backend/canon.c:149 backend/canon-sane.c:1318 -#, no-c-format -msgid "Raw" -msgstr "Nyers" - -#: backend/canon.c:157 backend/canon-sane.c:732 backend/canon-sane.c:940 +#: backend/canon-sane.c:732 backend/canon-sane.c:940 #: backend/canon-sane.c:1076 backend/canon-sane.c:1314 -#: backend/canon-sane.c:1494 backend/canon-sane.c:1643 +#: backend/canon-sane.c:1494 backend/canon-sane.c:1643 backend/canon.c:157 #, no-c-format msgid "Fine color" msgstr "" +#: backend/canon-sane.c:776 backend/canon.c:176 +#, fuzzy, no-c-format +msgid "Negatives" +msgstr "Negatív" + +#: backend/canon-sane.c:1318 backend/canon.c:149 +#, no-c-format +msgid "Raw" +msgstr "Nyers" + #: backend/canon.c:169 #, fuzzy, no-c-format msgid "No transparency correction" msgstr "Erősítés korrekció" -#: backend/canon.c:170 backend/canon-sane.c:680 -#, no-c-format -msgid "Correction according to film type" -msgstr "" - -#: backend/canon.c:171 backend/canon-sane.c:674 -#, no-c-format -msgid "Correction according to transparency ratio" -msgstr "" - -#: backend/canon.c:176 backend/canon-sane.c:776 -#, fuzzy, no-c-format -msgid "Negatives" -msgstr "Negatív" - #: backend/canon.c:176 #, fuzzy, no-c-format msgid "Slides" @@ -1491,94 +1451,137 @@ msgstr "Filmtípus" msgid "Select the film type" msgstr "" -#: backend/canon_dr.c:411 backend/epjitsu.c:233 backend/epson.c:501 -#: backend/epson2.c:115 backend/fujitsu.c:675 backend/gt68xx.c:148 +#: backend/canon630u.c:159 +#, no-c-format +msgid "Calibrate Scanner" +msgstr "Szkenner kalibrálása" + +#: backend/canon630u.c:160 +#, no-c-format +msgid "Force scanner calibration before scan" +msgstr "" + +#: backend/canon630u.c:259 backend/umax1220u.c:208 +#, no-c-format +msgid "Grayscale scan" +msgstr "Szürkeskálás szkennelés" + +#: backend/canon630u.c:260 backend/umax1220u.c:209 +#, no-c-format +msgid "Do a grayscale rather than color scan" +msgstr "" + +#: backend/canon630u.c:306 +#, no-c-format +msgid "Analog Gain" +msgstr "Analóg erősítés" + +#: backend/canon630u.c:307 +#, no-c-format +msgid "Increase or decrease the analog gain of the CCD array" +msgstr "" + +#: backend/canon630u.c:347 backend/epson.h:68 backend/epson2.h:67 +#, no-c-format +msgid "Gamma Correction" +msgstr "Gamma korrekció" + +#: backend/canon630u.c:348 +#, no-c-format +msgid "Selects the gamma corrected transfer curve" +msgstr "" + +#: backend/canon_dr.c:413 backend/epjitsu.c:233 backend/epson.c:501 +#: backend/epson2-ops.c:101 backend/epson2.c:115 backend/epsonds-ops.c:32 +#: backend/epsonds.c:95 backend/epsonds.h:62 backend/fujitsu.c:677 +#: backend/genesys/genesys.h:78 backend/gt68xx.c:148 #: backend/hp3900_sane.c:418 backend/hp3900_sane.c:427 -#: backend/hp3900_sane.c:1017 backend/hp5590.c:92 backend/ma1509.c:108 -#: backend/magicolor.c:181 backend/mustek.c:156 backend/mustek.c:160 -#: backend/mustek.c:164 backend/pixma.c:920 backend/pixma_sane_options.c:92 -#: backend/snapscan-options.c:86 backend/test.c:192 backend/umax.c:181 +#: backend/hp3900_sane.c:1017 backend/hp5590.c:92 backend/kodakaio.c:617 +#: backend/ma1509.c:108 backend/magicolor.c:181 backend/mustek.c:156 +#: backend/mustek.c:160 backend/mustek.c:164 backend/pixma/pixma.c:920 +#: backend/pixma/pixma_sane_options.c:92 backend/snapscan-options.c:86 +#: backend/test.c:192 backend/umax.c:181 #, no-c-format msgid "Flatbed" msgstr "Síkágyas" -#: backend/canon_dr.c:412 backend/epjitsu.c:234 backend/fujitsu.c:676 +#: backend/canon_dr.c:414 backend/epjitsu.c:234 backend/fujitsu.c:678 #: backend/kodak.c:140 #, no-c-format msgid "ADF Front" msgstr "" -#: backend/canon_dr.c:413 backend/epjitsu.c:235 backend/fujitsu.c:677 +#: backend/canon_dr.c:415 backend/epjitsu.c:235 backend/fujitsu.c:679 #: backend/kodak.c:141 #, no-c-format msgid "ADF Back" msgstr "" -#: backend/canon_dr.c:414 backend/epjitsu.c:236 backend/fujitsu.c:678 -#: backend/hp5590.c:94 backend/kodak.c:142 backend/pixma.c:931 +#: backend/canon_dr.c:416 backend/epjitsu.c:236 backend/fujitsu.c:680 +#: backend/hp5590.c:94 backend/kodak.c:142 backend/pixma/pixma.c:931 #, no-c-format msgid "ADF Duplex" msgstr "" -#: backend/canon_dr.c:415 +#: backend/canon_dr.c:417 #, fuzzy, no-c-format msgid "Card Front" msgstr "Nyomtatás" -#: backend/canon_dr.c:416 +#: backend/canon_dr.c:418 #, no-c-format msgid "Card Back" msgstr "" -#: backend/canon_dr.c:417 +#: backend/canon_dr.c:419 #, no-c-format msgid "Card Duplex" msgstr "" -#: backend/canon_dr.c:424 backend/epson.c:599 backend/epson.c:3096 -#: backend/epson2.c:201 backend/fujitsu.c:695 -#: backend/genesys/genesys.cpp:99 backend/genesys/genesys.cpp:106 +#: backend/canon_dr.c:426 backend/epson.c:599 backend/epson.c:3096 +#: backend/epson2.c:201 backend/fujitsu.c:697 +#: backend/genesys/genesys.cpp:120 backend/genesys/genesys.cpp:127 #: backend/gt68xx_low.h:136 backend/hp-option.c:3096 #, no-c-format msgid "Red" msgstr "Vörös" -#: backend/canon_dr.c:425 backend/epson.c:600 backend/epson.c:3092 -#: backend/epson2.c:202 backend/fujitsu.c:696 -#: backend/genesys/genesys.cpp:100 backend/genesys/genesys.cpp:107 +#: backend/canon_dr.c:427 backend/epson.c:600 backend/epson.c:3092 +#: backend/epson2.c:202 backend/fujitsu.c:698 +#: backend/genesys/genesys.cpp:121 backend/genesys/genesys.cpp:128 #: backend/gt68xx_low.h:137 backend/hp-option.c:3097 #, no-c-format msgid "Green" msgstr "Zöld" -#: backend/canon_dr.c:426 backend/epson.c:601 backend/epson.c:3100 -#: backend/epson2.c:203 backend/fujitsu.c:697 -#: backend/genesys/genesys.cpp:101 backend/genesys/genesys.cpp:108 +#: backend/canon_dr.c:428 backend/epson.c:601 backend/epson.c:3100 +#: backend/epson2.c:203 backend/fujitsu.c:699 +#: backend/genesys/genesys.cpp:122 backend/genesys/genesys.cpp:129 #: backend/gt68xx_low.h:138 backend/hp-option.c:3098 #, no-c-format msgid "Blue" msgstr "Kék" -#: backend/canon_dr.c:427 +#: backend/canon_dr.c:429 #, fuzzy, no-c-format msgid "Enhance Red" msgstr "Haladó" -#: backend/canon_dr.c:428 +#: backend/canon_dr.c:430 #, fuzzy, no-c-format msgid "Enhance Green" msgstr "Haladó" -#: backend/canon_dr.c:429 +#: backend/canon_dr.c:431 #, fuzzy, no-c-format msgid "Enhance Blue" msgstr "Haladó" -#: backend/canon_dr.c:431 backend/epson.c:556 backend/epson.c:564 +#: backend/canon_dr.c:433 backend/epson.c:556 backend/epson.c:564 #: backend/epson.c:576 backend/epson.c:598 backend/epson2.c:165 #: backend/epson2.c:173 backend/epson2.c:185 backend/epson2.c:200 -#: backend/epson2.c:214 backend/fujitsu.c:701 -#: backend/genesys/genesys.cpp:109 backend/leo.c:109 +#: backend/epson2.c:214 backend/fujitsu.c:703 +#: backend/genesys/genesys.cpp:130 backend/leo.c:109 #: backend/matsushita.c:138 backend/matsushita.c:159 #: backend/matsushita.c:191 backend/matsushita.c:213 #: backend/snapscan-options.c:91 @@ -1586,42 +1589,46 @@ msgstr "Haladó" msgid "None" msgstr "Nincs" -#: backend/canon_dr.c:432 backend/fujitsu.c:702 +#: backend/canon_dr.c:434 backend/fujitsu.c:704 #, no-c-format msgid "JPEG" msgstr "" -#: backend/canon_dr.c:2477 backend/fujitsu.c:4113 -#: backend/genesys/genesys.cpp:4126 backend/kvs1025_opt.c:910 +#: backend/canon_dr.c:2479 backend/fujitsu.c:4117 +#: backend/genesys/genesys.cpp:4168 backend/kvs1025_opt.c:910 #, no-c-format msgid "Software blank skip percentage" msgstr "" -#: backend/canon_dr.c:2478 backend/fujitsu.c:4114 +#: backend/canon_dr.c:2480 backend/fujitsu.c:4118 #, no-c-format msgid "Request driver to discard pages with low percentage of dark pixels" msgstr "" -#: backend/epson.c:491 backend/epson2.c:108 backend/magicolor.c:174 +#: backend/epson.c:491 backend/epson2.c:108 backend/epsonds.c:88 +#: backend/kodakaio.c:611 backend/magicolor.c:174 #, no-c-format msgid "Simplex" msgstr "" -#: backend/epson.c:492 backend/epson2.c:109 backend/kvs1025.h:50 -#: backend/kvs20xx_opt.c:204 backend/kvs40xx_opt.c:353 -#: backend/magicolor.c:175 backend/matsushita.h:218 +#: backend/epson.c:492 backend/epson2.c:109 backend/epsonds.c:89 +#: backend/kodakaio.c:612 backend/kvs1025.h:50 backend/kvs20xx_opt.c:204 +#: backend/kvs40xx_opt.c:353 backend/magicolor.c:175 +#: backend/matsushita.h:218 #, no-c-format msgid "Duplex" msgstr "" -#: backend/epson.c:502 backend/epson2.c:116 backend/pixma.c:937 +#: backend/epson.c:502 backend/epson2-ops.c:102 backend/epson2.c:116 +#: backend/epsonds-ops.c:33 backend/epsonds.h:63 backend/pixma/pixma.c:937 #, no-c-format msgid "Transparency Unit" msgstr "" -#: backend/epson.c:503 backend/epson2.c:118 backend/magicolor.c:182 -#: backend/mustek.c:160 backend/pixma.c:925 backend/test.c:192 -#: backend/umax.c:183 +#: backend/epson.c:503 backend/epson2-ops.c:104 backend/epson2.c:118 +#: backend/epsonds-ops.c:34 backend/epsonds.c:96 backend/epsonds.h:64 +#: backend/kodakaio.c:618 backend/magicolor.c:182 backend/mustek.c:160 +#: backend/pixma/pixma.c:925 backend/test.c:192 backend/umax.c:183 #, no-c-format msgid "Automatic Document Feeder" msgstr "Automatikus dokumentum adagoló" @@ -1733,7 +1740,7 @@ msgstr "Tintasugaras nyomtató" msgid "CRT monitors" msgstr "CRT monitor" -#: backend/epson.c:656 backend/epson2.c:254 backend/fujitsu.c:685 +#: backend/epson.c:656 backend/epson2.c:254 backend/fujitsu.c:687 #: backend/hp-option.c:3229 backend/test.c:143 #, no-c-format msgid "Default" @@ -1797,8 +1804,8 @@ msgstr "A4" msgid "Max" msgstr "Max" -#: backend/epson.c:2813 backend/epson2.c:976 -#: backend/genesys/genesys.cpp:3893 backend/gt68xx.c:451 +#: backend/epson.c:2813 backend/epson2.c:976 backend/epsonds.c:629 +#: backend/genesys/genesys.cpp:3965 backend/gt68xx.c:451 #: backend/hp-option.c:2917 backend/kvs1025_opt.c:521 #: backend/kvs20xx_opt.c:171 backend/kvs40xx_opt.c:320 backend/ma1509.c:501 #: backend/matsushita.c:1084 backend/microtek2.h:598 backend/mustek.c:4215 @@ -1971,17 +1978,17 @@ msgstr "" msgid "Quick format" msgstr "" -#: backend/epson.c:3360 backend/epson2.c:1340 +#: backend/epson.c:3360 backend/epson2.c:1340 backend/epsonds.c:726 #, no-c-format msgid "Optional equipment" msgstr "" -#: backend/epson.c:3431 backend/epson2.c:1393 +#: backend/epson.c:3431 backend/epson2.c:1393 backend/epsonds.c:742 #, no-c-format msgid "Eject" msgstr "" -#: backend/epson.c:3432 backend/epson2.c:1394 +#: backend/epson.c:3432 backend/epson2.c:1394 backend/epsonds.c:743 #, no-c-format msgid "Eject the sheet in the ADF" msgstr "" @@ -1996,12 +2003,14 @@ msgstr "" msgid "Eject document after scanning" msgstr "" -#: backend/epson.c:3457 backend/epson2.c:1416 backend/magicolor.c:2420 +#: backend/epson.c:3457 backend/epson2.c:1416 backend/epsonds.c:758 +#: backend/kodakaio.c:2855 backend/magicolor.c:2420 #, no-c-format msgid "ADF Mode" msgstr "" -#: backend/epson.c:3459 backend/epson2.c:1418 backend/magicolor.c:2422 +#: backend/epson.c:3459 backend/epson2.c:1418 backend/epsonds.c:760 +#: backend/kodakaio.c:2857 backend/magicolor.c:2422 #, no-c-format msgid "Selects the ADF mode (simplex/duplex)" msgstr "" @@ -2046,16 +2055,16 @@ msgid "" "pressed to actually start the scan process." msgstr "" -#: backend/epson2.c:102 backend/pixma.c:409 -#, no-c-format -msgid "Infrared" -msgstr "" - -#: backend/epson2.c:117 +#: backend/epson2-ops.c:103 backend/epson2.c:117 #, no-c-format msgid "TPU8x10" msgstr "" +#: backend/epson2.c:102 backend/pixma/pixma.c:409 +#, no-c-format +msgid "Infrared" +msgstr "" + #: backend/epson2.c:136 #, fuzzy, no-c-format msgid "Positive Slide" @@ -2076,492 +2085,512 @@ msgstr "" msgid "User defined CCT profile" msgstr "" -#: backend/fujitsu.c:686 backend/hp-option.c:3330 backend/hp-option.c:3343 +#: backend/epsonds.c:750 +#, no-c-format +msgid "Load" +msgstr "" + +#: backend/epsonds.c:751 +#, no-c-format +msgid "Load a sheet in the ADF" +msgstr "" + +#: backend/epsonds.c:771 +#, fuzzy, no-c-format +msgid "ADF Skew Correction" +msgstr "Nincs korrekció" + +#: backend/epsonds.c:773 +#, fuzzy, no-c-format +msgid "Enables ADF skew correction" +msgstr "Gamma korrekció" + +#: backend/fujitsu.c:688 backend/hp-option.c:3330 backend/hp-option.c:3343 #, no-c-format msgid "On" msgstr "Be" -#: backend/fujitsu.c:687 backend/hp-option.c:3162 backend/hp-option.c:3329 +#: backend/fujitsu.c:689 backend/hp-option.c:3162 backend/hp-option.c:3329 #: backend/hp-option.c:3342 #, no-c-format msgid "Off" msgstr "Ki" -#: backend/fujitsu.c:689 +#: backend/fujitsu.c:691 #, no-c-format msgid "DTC" msgstr "DTC" -#: backend/fujitsu.c:690 +#: backend/fujitsu.c:692 #, no-c-format msgid "SDTC" msgstr "SDTC" -#: backend/fujitsu.c:692 backend/teco1.c:1152 backend/teco1.c:1153 +#: backend/fujitsu.c:694 backend/teco1.c:1152 backend/teco1.c:1153 #: backend/teco2.c:1967 backend/teco2.c:1968 backend/teco3.c:977 #: backend/teco3.c:978 #, no-c-format msgid "Dither" msgstr "" -#: backend/fujitsu.c:693 +#: backend/fujitsu.c:695 #, no-c-format msgid "Diffusion" msgstr "" -#: backend/fujitsu.c:698 +#: backend/fujitsu.c:700 #, fuzzy, no-c-format msgid "White" msgstr "Fehérszint" -#: backend/fujitsu.c:699 +#: backend/fujitsu.c:701 #, fuzzy, no-c-format msgid "Black" msgstr "Feketeszint" -#: backend/fujitsu.c:704 +#: backend/fujitsu.c:706 #, no-c-format msgid "Continue" msgstr "Folytatás" -#: backend/fujitsu.c:705 +#: backend/fujitsu.c:707 #, no-c-format msgid "Stop" msgstr "Megállít" -#: backend/fujitsu.c:707 +#: backend/fujitsu.c:709 #, no-c-format msgid "10mm" msgstr "10mm" -#: backend/fujitsu.c:708 +#: backend/fujitsu.c:710 #, no-c-format msgid "15mm" msgstr "15mm" -#: backend/fujitsu.c:709 +#: backend/fujitsu.c:711 #, no-c-format msgid "20mm" msgstr "20mm" -#: backend/fujitsu.c:711 backend/hp-option.c:3048 +#: backend/fujitsu.c:713 backend/hp-option.c:3048 #, no-c-format msgid "Horizontal" msgstr "Vízszintes" -#: backend/fujitsu.c:712 +#: backend/fujitsu.c:714 #, fuzzy, no-c-format msgid "Horizontal bold" msgstr "Vízszintes" -#: backend/fujitsu.c:713 +#: backend/fujitsu.c:715 #, fuzzy, no-c-format msgid "Horizontal narrow" msgstr "Vízszintes" -#: backend/fujitsu.c:714 backend/hp-option.c:3047 +#: backend/fujitsu.c:716 backend/hp-option.c:3047 #, no-c-format msgid "Vertical" msgstr "Függőleges" -#: backend/fujitsu.c:715 +#: backend/fujitsu.c:717 #, fuzzy, no-c-format msgid "Vertical bold" msgstr "Függőleges" -#: backend/fujitsu.c:717 +#: backend/fujitsu.c:719 #, no-c-format msgid "Top to bottom" msgstr "" -#: backend/fujitsu.c:718 +#: backend/fujitsu.c:720 #, no-c-format msgid "Bottom to top" msgstr "" -#: backend/fujitsu.c:720 +#: backend/fujitsu.c:722 #, fuzzy, no-c-format msgid "Front" msgstr "Nyomtatás" -#: backend/fujitsu.c:721 +#: backend/fujitsu.c:723 #, no-c-format msgid "Back" msgstr "" -#: backend/fujitsu.c:3144 backend/pixma_sane_options.c:145 +#: backend/fujitsu.c:3148 backend/pixma/pixma_sane_options.c:145 #, no-c-format msgid "Gamma function exponent" msgstr "" -#: backend/fujitsu.c:3145 backend/pixma_sane_options.c:146 +#: backend/fujitsu.c:3149 backend/pixma/pixma_sane_options.c:146 #, no-c-format msgid "Changes intensity of midtones" msgstr "" -#: backend/fujitsu.c:3194 +#: backend/fujitsu.c:3198 #, no-c-format msgid "RIF" msgstr "" -#: backend/fujitsu.c:3195 +#: backend/fujitsu.c:3199 #, no-c-format msgid "Reverse image format" msgstr "" -#: backend/fujitsu.c:3212 +#: backend/fujitsu.c:3216 #, no-c-format msgid "Halftone type" msgstr "" -#: backend/fujitsu.c:3213 +#: backend/fujitsu.c:3217 #, no-c-format msgid "Control type of halftone filter" msgstr "" -#: backend/fujitsu.c:3234 +#: backend/fujitsu.c:3238 #, no-c-format msgid "Control pattern of halftone filter" msgstr "" -#: backend/fujitsu.c:3256 +#: backend/fujitsu.c:3260 #, no-c-format msgid "Outline" msgstr "" -#: backend/fujitsu.c:3257 +#: backend/fujitsu.c:3261 #, fuzzy, no-c-format msgid "Perform outline extraction" msgstr "Finom beállítás" -#: backend/fujitsu.c:3268 +#: backend/fujitsu.c:3272 #, no-c-format msgid "Emphasis" msgstr "" -#: backend/fujitsu.c:3269 +#: backend/fujitsu.c:3273 #, no-c-format msgid "Negative to smooth or positive to sharpen image" msgstr "" -#: backend/fujitsu.c:3287 +#: backend/fujitsu.c:3291 #, fuzzy, no-c-format msgid "Separation" msgstr "Telítettség" -#: backend/fujitsu.c:3288 +#: backend/fujitsu.c:3292 #, no-c-format msgid "Enable automatic separation of image and text" msgstr "" -#: backend/fujitsu.c:3299 +#: backend/fujitsu.c:3303 #, fuzzy, no-c-format msgid "Mirroring" msgstr "Kép tükrözése" -#: backend/fujitsu.c:3300 +#: backend/fujitsu.c:3304 #, fuzzy, no-c-format msgid "Reflect output image horizontally" msgstr "A kép vízszintes tükrözése." -#: backend/fujitsu.c:3317 +#: backend/fujitsu.c:3321 #, fuzzy, no-c-format msgid "White level follower" msgstr "Fehérszint" -#: backend/fujitsu.c:3318 +#: backend/fujitsu.c:3322 #, fuzzy, no-c-format msgid "Control white level follower" msgstr "A kék csatorna kontrasztja" -#: backend/fujitsu.c:3336 +#: backend/fujitsu.c:3340 #, fuzzy, no-c-format msgid "BP filter" msgstr "Színmátrix" -#: backend/fujitsu.c:3337 +#: backend/fujitsu.c:3341 #, no-c-format msgid "Improves quality of high resolution ball-point pen text" msgstr "" -#: backend/fujitsu.c:3353 backend/hp-option.h:73 +#: backend/fujitsu.c:3357 backend/hp-option.h:73 #, no-c-format msgid "Smoothing" msgstr "" -#: backend/fujitsu.c:3354 +#: backend/fujitsu.c:3358 #, no-c-format msgid "Enable smoothing for improved OCR" msgstr "" -#: backend/fujitsu.c:3370 +#: backend/fujitsu.c:3374 #, fuzzy, no-c-format msgid "Gamma curve" msgstr "Gamma érték" -#: backend/fujitsu.c:3371 +#: backend/fujitsu.c:3375 #, no-c-format msgid "Gamma curve, from light to dark, but upper two may not work" msgstr "" -#: backend/fujitsu.c:3393 backend/genesys/genesys.cpp:4187 -#: backend/pixma_sane_options.c:335 +#: backend/fujitsu.c:3397 backend/genesys/genesys.cpp:4229 +#: backend/pixma/pixma_sane_options.c:335 #, no-c-format msgid "Threshold curve" msgstr "" -#: backend/fujitsu.c:3394 +#: backend/fujitsu.c:3398 #, no-c-format msgid "" "Threshold curve, from light to dark, but upper two may not be linear" msgstr "" -#: backend/fujitsu.c:3416 +#: backend/fujitsu.c:3420 #, fuzzy, no-c-format msgid "Threshold white" msgstr "Küszöb" -#: backend/fujitsu.c:3417 +#: backend/fujitsu.c:3421 #, no-c-format msgid "Set pixels equal to threshold to white instead of black" msgstr "" -#: backend/fujitsu.c:3433 backend/fujitsu.c:3434 +#: backend/fujitsu.c:3437 backend/fujitsu.c:3438 #, fuzzy, no-c-format msgid "Noise removal" msgstr "Zajszűrés" -#: backend/fujitsu.c:3450 +#: backend/fujitsu.c:3454 #, no-c-format msgid "Matrix 5x5" msgstr "" -#: backend/fujitsu.c:3451 +#: backend/fujitsu.c:3455 #, no-c-format msgid "Remove 5 pixel square noise" msgstr "" -#: backend/fujitsu.c:3467 +#: backend/fujitsu.c:3471 #, no-c-format msgid "Matrix 4x4" msgstr "" -#: backend/fujitsu.c:3468 +#: backend/fujitsu.c:3472 #, no-c-format msgid "Remove 4 pixel square noise" msgstr "" -#: backend/fujitsu.c:3484 +#: backend/fujitsu.c:3488 #, no-c-format msgid "Matrix 3x3" msgstr "" -#: backend/fujitsu.c:3485 +#: backend/fujitsu.c:3489 #, no-c-format msgid "Remove 3 pixel square noise" msgstr "" -#: backend/fujitsu.c:3501 +#: backend/fujitsu.c:3505 #, no-c-format msgid "Matrix 2x2" msgstr "" -#: backend/fujitsu.c:3502 +#: backend/fujitsu.c:3506 #, no-c-format msgid "Remove 2 pixel square noise" msgstr "" -#: backend/fujitsu.c:3521 +#: backend/fujitsu.c:3525 #, no-c-format msgid "Variance" msgstr "" -#: backend/fujitsu.c:3522 +#: backend/fujitsu.c:3526 #, no-c-format msgid "Set SDTC variance rate (sensitivity), 0 equals 127" msgstr "" -#: backend/fujitsu.c:3555 +#: backend/fujitsu.c:3559 #, fuzzy, no-c-format msgid "Auto width detection" msgstr "Nincs korrekció" -#: backend/fujitsu.c:3556 +#: backend/fujitsu.c:3560 #, no-c-format msgid "Scanner detects paper sides. May reduce scanning speed." msgstr "" -#: backend/fujitsu.c:3573 +#: backend/fujitsu.c:3577 #, fuzzy, no-c-format msgid "Auto length detection" msgstr "Nincs korrekció" -#: backend/fujitsu.c:3574 +#: backend/fujitsu.c:3578 #, no-c-format msgid "Scanner detects paper lower edge. May confuse some frontends." msgstr "" -#: backend/fujitsu.c:3600 +#: backend/fujitsu.c:3604 #, no-c-format msgid "Compression" msgstr "" -#: backend/fujitsu.c:3601 +#: backend/fujitsu.c:3605 #, no-c-format msgid "Enable compressed data. May crash your front-end program" msgstr "" -#: backend/fujitsu.c:3621 +#: backend/fujitsu.c:3625 #, no-c-format msgid "Compression argument" msgstr "" -#: backend/fujitsu.c:3622 +#: backend/fujitsu.c:3626 #, no-c-format msgid "" "Level of JPEG compression. 1 is small file, 7 is large file. 0 (default) " "is same as 4" msgstr "" -#: backend/fujitsu.c:3652 +#: backend/fujitsu.c:3656 #, no-c-format msgid "DF action" msgstr "" -#: backend/fujitsu.c:3653 +#: backend/fujitsu.c:3657 #, no-c-format msgid "Action following double feed error" msgstr "" -#: backend/fujitsu.c:3669 +#: backend/fujitsu.c:3673 #, no-c-format msgid "DF skew" msgstr "" -#: backend/fujitsu.c:3670 +#: backend/fujitsu.c:3674 #, no-c-format msgid "Enable double feed error due to skew" msgstr "" -#: backend/fujitsu.c:3688 +#: backend/fujitsu.c:3692 #, no-c-format msgid "DF thickness" msgstr "" -#: backend/fujitsu.c:3689 +#: backend/fujitsu.c:3693 #, no-c-format msgid "Enable double feed error due to paper thickness" msgstr "" -#: backend/fujitsu.c:3707 +#: backend/fujitsu.c:3711 #, no-c-format msgid "DF length" msgstr "" -#: backend/fujitsu.c:3708 +#: backend/fujitsu.c:3712 #, no-c-format msgid "Enable double feed error due to paper length" msgstr "" -#: backend/fujitsu.c:3731 +#: backend/fujitsu.c:3735 #, no-c-format msgid "DF length difference" msgstr "" -#: backend/fujitsu.c:3732 +#: backend/fujitsu.c:3736 #, no-c-format msgid "Difference in page length to trigger double feed error" msgstr "" -#: backend/fujitsu.c:3755 +#: backend/fujitsu.c:3759 #, fuzzy, no-c-format msgid "DF recovery mode" msgstr "Előnézeti mód" -#: backend/fujitsu.c:3756 +#: backend/fujitsu.c:3760 #, no-c-format msgid "Request scanner to reverse feed on paper jam" msgstr "" -#: backend/fujitsu.c:3775 +#: backend/fujitsu.c:3779 #, no-c-format msgid "Paper protection" msgstr "" -#: backend/fujitsu.c:3776 +#: backend/fujitsu.c:3780 #, no-c-format msgid "Request scanner to predict jams in the ADF" msgstr "" -#: backend/fujitsu.c:3795 +#: backend/fujitsu.c:3799 #, fuzzy, no-c-format msgid "Advanced paper protection" msgstr "Haladó" -#: backend/fujitsu.c:3796 +#: backend/fujitsu.c:3800 #, no-c-format msgid "Request scanner to predict jams in the ADF using improved sensors" msgstr "" -#: backend/fujitsu.c:3815 +#: backend/fujitsu.c:3819 #, fuzzy, no-c-format msgid "Staple detection" msgstr "Nincs korrekció" -#: backend/fujitsu.c:3816 +#: backend/fujitsu.c:3820 #, no-c-format msgid "Request scanner to detect jams in the ADF caused by staples" msgstr "" -#: backend/fujitsu.c:3835 +#: backend/fujitsu.c:3839 #, no-c-format msgid "Background color" msgstr "" -#: backend/fujitsu.c:3836 +#: backend/fujitsu.c:3840 #, no-c-format msgid "" "Set color of background for scans. May conflict with overscan option" msgstr "" -#: backend/fujitsu.c:3856 +#: backend/fujitsu.c:3860 #, no-c-format msgid "Dropout color" msgstr "" -#: backend/fujitsu.c:3857 +#: backend/fujitsu.c:3861 #, no-c-format msgid "" "One-pass scanners use only one color during gray or binary scanning, " "useful for colored paper or ink" msgstr "" -#: backend/fujitsu.c:3880 +#: backend/fujitsu.c:3884 #, no-c-format msgid "Buffer mode" msgstr "" -#: backend/fujitsu.c:3881 +#: backend/fujitsu.c:3885 #, no-c-format msgid "Request scanner to read pages quickly from ADF into internal memory" msgstr "" -#: backend/fujitsu.c:3900 +#: backend/fujitsu.c:3904 #, no-c-format msgid "Prepick" msgstr "" -#: backend/fujitsu.c:3901 +#: backend/fujitsu.c:3905 #, no-c-format msgid "Request scanner to grab next page from ADF" msgstr "" -#: backend/fujitsu.c:3920 +#: backend/fujitsu.c:3924 #, no-c-format msgid "Overscan" msgstr "" -#: backend/fujitsu.c:3921 +#: backend/fujitsu.c:3925 #, no-c-format msgid "" "Collect a few mm of background on top side of scan, before paper enters " @@ -2569,65 +2598,65 @@ msgid "" "collection on remaining sides. May conflict with bgcolor option" msgstr "" -#: backend/fujitsu.c:3939 +#: backend/fujitsu.c:3943 #, no-c-format msgid "Sleep timer" msgstr "" -#: backend/fujitsu.c:3940 +#: backend/fujitsu.c:3944 #, no-c-format msgid "" "Time in minutes until the internal power supply switches to sleep mode" msgstr "" -#: backend/fujitsu.c:3958 +#: backend/fujitsu.c:3962 #, no-c-format msgid "Off timer" msgstr "" -#: backend/fujitsu.c:3959 +#: backend/fujitsu.c:3963 #, no-c-format msgid "" "Time in minutes until the internal power supply switches the scanner " "off. Will be rounded to nearest 15 minutes. Zero means never power off." msgstr "" -#: backend/fujitsu.c:3977 +#: backend/fujitsu.c:3981 #, fuzzy, no-c-format msgid "Duplex offset" msgstr "Teljes szkennelés" -#: backend/fujitsu.c:3978 +#: backend/fujitsu.c:3982 #, no-c-format msgid "Adjust front/back offset" msgstr "" -#: backend/fujitsu.c:3995 backend/plustek.c:1025 backend/umax_pp.c:800 +#: backend/fujitsu.c:3999 backend/plustek.c:1025 backend/umax_pp.c:794 #, no-c-format msgid "Green offset" msgstr "" -#: backend/fujitsu.c:3996 +#: backend/fujitsu.c:4000 #, fuzzy, no-c-format msgid "Adjust green/red offset" msgstr "A zöld csatorna kontrasztja" -#: backend/fujitsu.c:4013 backend/plustek.c:1041 backend/umax_pp.c:812 +#: backend/fujitsu.c:4017 backend/plustek.c:1041 backend/umax_pp.c:806 #, no-c-format msgid "Blue offset" msgstr "" -#: backend/fujitsu.c:4014 +#: backend/fujitsu.c:4018 #, fuzzy, no-c-format msgid "Adjust blue/red offset" msgstr "A kék csatorna kontrasztja" -#: backend/fujitsu.c:4027 +#: backend/fujitsu.c:4031 #, fuzzy, no-c-format msgid "Low Memory" msgstr "Nincs elég memória" -#: backend/fujitsu.c:4028 +#: backend/fujitsu.c:4032 #, no-c-format msgid "" "Limit driver memory usage for use in embedded systems. Causes some " @@ -2636,521 +2665,514 @@ msgid "" "only be used with custom front-end software." msgstr "" -#: backend/fujitsu.c:4043 +#: backend/fujitsu.c:4047 #, fuzzy, no-c-format msgid "Duplex side" msgstr "Teljes szkennelés" -#: backend/fujitsu.c:4044 +#: backend/fujitsu.c:4048 #, no-c-format msgid "" "Tells which side (0=front, 1=back) of a duplex scan the next call to " "sane_read will return." msgstr "" -#: backend/fujitsu.c:4055 +#: backend/fujitsu.c:4059 #, no-c-format msgid "Hardware deskew and crop" msgstr "" -#: backend/fujitsu.c:4056 +#: backend/fujitsu.c:4060 #, no-c-format msgid "Request scanner to rotate and crop pages digitally." msgstr "" -#: backend/fujitsu.c:4067 backend/kvs1025_opt.c:871 +#: backend/fujitsu.c:4071 backend/kvs1025_opt.c:871 #, no-c-format msgid "Software deskew" msgstr "" -#: backend/fujitsu.c:4068 +#: backend/fujitsu.c:4072 #, no-c-format msgid "Request driver to rotate skewed pages digitally." msgstr "" -#: backend/fujitsu.c:4080 backend/kvs1025_opt.c:880 +#: backend/fujitsu.c:4084 backend/kvs1025_opt.c:880 #, no-c-format msgid "Software despeckle diameter" msgstr "" -#: backend/fujitsu.c:4081 +#: backend/fujitsu.c:4085 #, no-c-format msgid "Maximum diameter of lone dots to remove from scan." msgstr "" -#: backend/fujitsu.c:4100 backend/genesys/genesys.cpp:4117 +#: backend/fujitsu.c:4104 backend/genesys/genesys.cpp:4159 #, no-c-format msgid "Software crop" msgstr "" -#: backend/fujitsu.c:4101 +#: backend/fujitsu.c:4105 #, no-c-format msgid "Request driver to remove border from pages digitally." msgstr "" -#: backend/fujitsu.c:4130 +#: backend/fujitsu.c:4134 #, no-c-format msgid "Halt on Cancel" msgstr "" -#: backend/fujitsu.c:4131 +#: backend/fujitsu.c:4135 #, no-c-format msgid "" "Request driver to halt the paper feed instead of eject during a cancel." msgstr "" -#: backend/fujitsu.c:4142 +#: backend/fujitsu.c:4146 #, fuzzy, no-c-format msgid "Endorser Options" msgstr "Haladó" -#: backend/fujitsu.c:4143 +#: backend/fujitsu.c:4147 #, no-c-format msgid "Controls for endorser unit" msgstr "" -#: backend/fujitsu.c:4154 +#: backend/fujitsu.c:4158 #, no-c-format msgid "Endorser" msgstr "" -#: backend/fujitsu.c:4155 +#: backend/fujitsu.c:4159 #, no-c-format msgid "Enable endorser unit" msgstr "" -#: backend/fujitsu.c:4170 +#: backend/fujitsu.c:4174 #, no-c-format msgid "Endorser bits" msgstr "" -#: backend/fujitsu.c:4171 +#: backend/fujitsu.c:4175 #, no-c-format msgid "Determines maximum endorser counter value." msgstr "" -#: backend/fujitsu.c:4196 +#: backend/fujitsu.c:4200 #, no-c-format msgid "Endorser value" msgstr "" -#: backend/fujitsu.c:4197 +#: backend/fujitsu.c:4201 #, no-c-format msgid "Initial endorser counter value." msgstr "" -#: backend/fujitsu.c:4220 +#: backend/fujitsu.c:4224 #, no-c-format msgid "Endorser step" msgstr "" -#: backend/fujitsu.c:4221 +#: backend/fujitsu.c:4225 #, no-c-format msgid "Change endorser counter value by this much for each page." msgstr "" -#: backend/fujitsu.c:4244 +#: backend/fujitsu.c:4248 #, no-c-format msgid "Endorser Y" msgstr "" -#: backend/fujitsu.c:4245 +#: backend/fujitsu.c:4249 #, no-c-format msgid "Endorser print offset from top of paper." msgstr "" -#: backend/fujitsu.c:4270 +#: backend/fujitsu.c:4274 #, no-c-format msgid "Endorser font" msgstr "" -#: backend/fujitsu.c:4271 +#: backend/fujitsu.c:4275 #, no-c-format msgid "Endorser printing font." msgstr "" -#: backend/fujitsu.c:4300 +#: backend/fujitsu.c:4304 #, fuzzy, no-c-format msgid "Endorser direction" msgstr "Zajszűrés" -#: backend/fujitsu.c:4301 +#: backend/fujitsu.c:4305 #, no-c-format msgid "Endorser printing direction." msgstr "" -#: backend/fujitsu.c:4325 +#: backend/fujitsu.c:4329 #, no-c-format msgid "Endorser side" msgstr "" -#: backend/fujitsu.c:4326 +#: backend/fujitsu.c:4330 #, no-c-format msgid "Endorser printing side, requires hardware support to change" msgstr "" -#: backend/fujitsu.c:4351 +#: backend/fujitsu.c:4355 #, no-c-format msgid "Endorser string" msgstr "" -#: backend/fujitsu.c:4352 +#: backend/fujitsu.c:4356 #, no-c-format msgid "" "Endorser alphanumeric print format. %05ud or %08ud at the end will be " "replaced by counter value." msgstr "" -#: backend/fujitsu.c:4379 +#: backend/fujitsu.c:4383 #, no-c-format msgid "Top edge" msgstr "" -#: backend/fujitsu.c:4380 +#: backend/fujitsu.c:4384 #, no-c-format msgid "Paper is pulled partly into ADF" msgstr "" -#: backend/fujitsu.c:4391 +#: backend/fujitsu.c:4395 #, no-c-format msgid "A3 paper" msgstr "" -#: backend/fujitsu.c:4392 +#: backend/fujitsu.c:4396 #, no-c-format msgid "A3 paper detected" msgstr "" -#: backend/fujitsu.c:4403 +#: backend/fujitsu.c:4407 #, no-c-format msgid "B4 paper" msgstr "" -#: backend/fujitsu.c:4404 +#: backend/fujitsu.c:4408 #, no-c-format msgid "B4 paper detected" msgstr "" -#: backend/fujitsu.c:4415 +#: backend/fujitsu.c:4419 #, no-c-format msgid "A4 paper" msgstr "" -#: backend/fujitsu.c:4416 +#: backend/fujitsu.c:4420 #, no-c-format msgid "A4 paper detected" msgstr "" -#: backend/fujitsu.c:4427 +#: backend/fujitsu.c:4431 #, no-c-format msgid "B5 paper" msgstr "" -#: backend/fujitsu.c:4428 +#: backend/fujitsu.c:4432 #, no-c-format msgid "B5 paper detected" msgstr "" -#: backend/fujitsu.c:4451 +#: backend/fujitsu.c:4455 #, no-c-format msgid "OMR or DF" msgstr "" -#: backend/fujitsu.c:4452 +#: backend/fujitsu.c:4456 #, no-c-format msgid "OMR or double feed detected" msgstr "" -#: backend/fujitsu.c:4475 +#: backend/fujitsu.c:4479 #, no-c-format msgid "Power saving" msgstr "" -#: backend/fujitsu.c:4476 +#: backend/fujitsu.c:4480 #, no-c-format msgid "Scanner in power saving mode" msgstr "" -#: backend/fujitsu.c:4499 +#: backend/fujitsu.c:4503 #, no-c-format msgid "Manual feed" msgstr "" -#: backend/fujitsu.c:4500 +#: backend/fujitsu.c:4504 #, no-c-format msgid "Manual feed selected" msgstr "" -#: backend/fujitsu.c:4523 +#: backend/fujitsu.c:4527 #, no-c-format msgid "Function" msgstr "" -#: backend/fujitsu.c:4524 +#: backend/fujitsu.c:4528 #, no-c-format msgid "Function character on screen" msgstr "" -#: backend/fujitsu.c:4535 +#: backend/fujitsu.c:4539 #, no-c-format msgid "Ink low" msgstr "" -#: backend/fujitsu.c:4536 +#: backend/fujitsu.c:4540 #, no-c-format msgid "Imprinter ink running low" msgstr "" -#: backend/fujitsu.c:4547 +#: backend/fujitsu.c:4551 #, no-c-format msgid "Double feed" msgstr "" -#: backend/fujitsu.c:4548 +#: backend/fujitsu.c:4552 #, no-c-format msgid "Double feed detected" msgstr "" -#: backend/fujitsu.c:4559 +#: backend/fujitsu.c:4563 #, no-c-format msgid "Error code" msgstr "" -#: backend/fujitsu.c:4560 +#: backend/fujitsu.c:4564 #, fuzzy, no-c-format msgid "Hardware error code" msgstr "Eszköz felbontása" -#: backend/fujitsu.c:4571 +#: backend/fujitsu.c:4575 #, no-c-format msgid "Skew angle" msgstr "" -#: backend/fujitsu.c:4572 +#: backend/fujitsu.c:4576 #, no-c-format msgid "Requires black background for scanning" msgstr "" -#: backend/fujitsu.c:4583 +#: backend/fujitsu.c:4587 #, no-c-format msgid "Ink remaining" msgstr "" -#: backend/fujitsu.c:4584 +#: backend/fujitsu.c:4588 #, fuzzy, no-c-format msgid "Imprinter ink level" msgstr "Fehérszint" -#: backend/fujitsu.c:4595 +#: backend/fujitsu.c:4599 #, fuzzy, no-c-format msgid "Density" msgstr "Vörös intenzitás" -#: backend/fujitsu.c:4596 +#: backend/fujitsu.c:4600 #, no-c-format msgid "Density dial" msgstr "" -#: backend/fujitsu.c:4607 backend/fujitsu.c:4608 +#: backend/fujitsu.c:4611 backend/fujitsu.c:4612 #, fuzzy, no-c-format msgid "Duplex switch" msgstr "Teljes szkennelés" -#: backend/genesys/genesys.cpp:4118 +#: backend/genesys/genesys.cpp:4160 #, no-c-format msgid "Request backend to remove border from pages digitally" msgstr "" -#: backend/genesys/genesys.cpp:4127 backend/kvs1025_opt.c:912 +#: backend/genesys/genesys.cpp:4169 backend/kvs1025_opt.c:912 #, no-c-format msgid "Request driver to discard pages with low numbers of dark pixels" msgstr "" -#: backend/genesys/genesys.cpp:4137 backend/kvs1025_opt.c:892 +#: backend/genesys/genesys.cpp:4179 backend/kvs1025_opt.c:892 #, no-c-format msgid "Software derotate" msgstr "" -#: backend/genesys/genesys.cpp:4138 backend/kvs1025_opt.c:894 +#: backend/genesys/genesys.cpp:4180 backend/kvs1025_opt.c:894 #, no-c-format msgid "Request driver to detect and correct 90 degree image rotation" msgstr "" -#: backend/genesys/genesys.cpp:4168 backend/pixma_sane_options.c:314 +#: backend/genesys/genesys.cpp:4210 backend/pixma/pixma_sane_options.c:314 #, fuzzy, no-c-format msgid "Extras" msgstr "Extra gyors" -#: backend/genesys/genesys.cpp:4188 backend/pixma_sane_options.c:336 +#: backend/genesys/genesys.cpp:4230 backend/pixma/pixma_sane_options.c:336 #, no-c-format msgid "Dynamic threshold curve, from light to dark, normally 50-65" msgstr "" -#: backend/genesys/genesys.cpp:4197 -#, no-c-format -msgid "Disable dynamic lineart" -msgstr "" - -#: backend/genesys/genesys.cpp:4199 -#, no-c-format -msgid "" -"Disable use of a software adaptive algorithm to generate lineart relying " -"instead on hardware lineart." -msgstr "" - -#: backend/genesys/genesys.cpp:4215 +#: backend/genesys/genesys.cpp:4240 #, fuzzy, no-c-format msgid "Disable interpolation" msgstr "Tesztbeállítások engedélyezése" -#: backend/genesys/genesys.cpp:4218 +#: backend/genesys/genesys.cpp:4243 #, no-c-format msgid "" "When using high resolutions where the horizontal resolution is smaller " "than the vertical resolution this disables horizontal interpolation." msgstr "" -#: backend/genesys/genesys.cpp:4227 +#: backend/genesys/genesys.cpp:4252 #, fuzzy, no-c-format msgid "Color filter" msgstr "Színmátrix" -#: backend/genesys/genesys.cpp:4230 +#: backend/genesys/genesys.cpp:4255 #, no-c-format msgid "When using gray or lineart this option selects the used color." msgstr "" -#: backend/genesys/genesys.cpp:4254 +#: backend/genesys/genesys.cpp:4279 #, fuzzy, no-c-format msgid "Calibration file" msgstr "Kalibráció" -#: backend/genesys/genesys.cpp:4255 +#: backend/genesys/genesys.cpp:4280 #, fuzzy, no-c-format msgid "Specify the calibration file to use" msgstr "Precíz beállítás" -#: backend/genesys/genesys.cpp:4272 +#: backend/genesys/genesys.cpp:4297 #, fuzzy, no-c-format msgid "Calibration cache expiration time" msgstr "Kalibráció" -#: backend/genesys/genesys.cpp:4273 +#: backend/genesys/genesys.cpp:4298 #, no-c-format msgid "" "Time (in minutes) before a cached calibration expires. A value of 0 " "means cache is not used. A negative value means cache never expires." msgstr "" -#: backend/genesys/genesys.cpp:4283 +#: backend/genesys/genesys.cpp:4308 #, no-c-format msgid "Lamp off time" msgstr "" -#: backend/genesys/genesys.cpp:4286 +#: backend/genesys/genesys.cpp:4311 #, no-c-format msgid "" "The lamp will be turned off after the given time (in minutes). A value " "of 0 means, that the lamp won't be turned off." msgstr "" -#: backend/genesys/genesys.cpp:4296 +#: backend/genesys/genesys.cpp:4321 #, fuzzy, no-c-format msgid "Lamp off during scan" msgstr "Finom beállítás" -#: backend/genesys/genesys.cpp:4297 +#: backend/genesys/genesys.cpp:4322 #, no-c-format msgid "The lamp will be turned off during scan. " msgstr "" -#: backend/genesys/genesys.cpp:4324 backend/genesys/genesys.cpp:4325 +#: backend/genesys/genesys.cpp:4349 backend/genesys/genesys.cpp:4350 #, no-c-format msgid "File button" msgstr "Fájl gomb" -#: backend/genesys/genesys.cpp:4369 backend/genesys/genesys.cpp:4370 +#: backend/genesys/genesys.cpp:4394 backend/genesys/genesys.cpp:4395 #, no-c-format msgid "OCR button" msgstr "OCR gomb" -#: backend/genesys/genesys.cpp:4381 backend/genesys/genesys.cpp:4382 +#: backend/genesys/genesys.cpp:4406 backend/genesys/genesys.cpp:4407 #, no-c-format msgid "Power button" msgstr "" -#: backend/genesys/genesys.cpp:4393 backend/genesys/genesys.cpp:4394 +#: backend/genesys/genesys.cpp:4418 backend/genesys/genesys.cpp:4419 #, fuzzy, no-c-format msgid "Extra button" msgstr "Email gomb" -#: backend/genesys/genesys.cpp:4405 backend/gt68xx.c:755 +#: backend/genesys/genesys.cpp:4430 backend/gt68xx.c:755 #, fuzzy, no-c-format msgid "Needs calibration" msgstr "Finom beállítás" -#: backend/genesys/genesys.cpp:4406 backend/gt68xx.c:756 +#: backend/genesys/genesys.cpp:4431 backend/gt68xx.c:756 backend/p5.c:1928 #, no-c-format msgid "The scanner needs calibration for the current settings" msgstr "" -#: backend/genesys/genesys.cpp:4417 backend/gt68xx.c:780 -#: backend/gt68xx.c:781 backend/pixma_sane_options.c:226 -#: backend/plustek.c:1080 +#: backend/genesys/genesys.cpp:4442 backend/gt68xx.c:780 +#: backend/gt68xx.c:781 backend/p5.c:1937 backend/p5.c:1938 +#: backend/pixma/pixma_sane_options.c:226 backend/plustek.c:1080 #, no-c-format msgid "Buttons" msgstr "Gombok" -#: backend/genesys/genesys.cpp:4426 backend/gt68xx.c:787 -#: backend/hp5400_sane.c:392 backend/hp-option.h:97 backend/niash.c:726 -#: backend/plustek.c:941 +#: backend/genesys/genesys.cpp:4451 backend/gt68xx.c:787 +#: backend/hp-option.h:97 backend/hp5400_sane.c:392 backend/niash.c:726 +#: backend/p5.c:1945 backend/plustek.c:941 #, no-c-format msgid "Calibrate" msgstr "Kalibrálás" -#: backend/genesys/genesys.cpp:4428 backend/gt68xx.c:789 +#: backend/genesys/genesys.cpp:4453 backend/gt68xx.c:789 backend/p5.c:1947 #, fuzzy, no-c-format msgid "Start calibration using special sheet" msgstr "Kalibrálási folyamat indítása." -#: backend/genesys/genesys.cpp:4440 backend/gt68xx.c:802 +#: backend/genesys/genesys.cpp:4465 backend/gt68xx.c:802 backend/p5.c:1958 #, fuzzy, no-c-format msgid "Clear calibration" msgstr "Finom beállítás" -#: backend/genesys/genesys.cpp:4441 backend/gt68xx.c:803 +#: backend/genesys/genesys.cpp:4466 backend/gt68xx.c:803 backend/p5.c:1960 #, fuzzy, no-c-format msgid "Clear calibration cache" msgstr "Finom beállítás" -#: backend/genesys/genesys.cpp:4451 +#: backend/genesys/genesys.cpp:4476 #, fuzzy, no-c-format msgid "Force calibration" msgstr "Finom beállítás" -#: backend/genesys/genesys.cpp:4452 +#: backend/genesys/genesys.cpp:4477 #, no-c-format msgid "Force calibration ignoring all and any calibration caches" msgstr "" -#: backend/genesys/genesys.cpp:4462 +#: backend/genesys/genesys.cpp:4487 #, no-c-format msgid "Ignore internal offsets" msgstr "" -#: backend/genesys/genesys.cpp:4464 +#: backend/genesys/genesys.cpp:4489 #, no-c-format msgid "" "Acquires the image including the internal calibration areas of the " "scanner" msgstr "" -#: backend/gt68xx.c:149 backend/ma1509.c:108 backend/mustek.c:164 -#: backend/snapscan-options.c:87 backend/umax.c:182 +#: backend/genesys/genesys.h:79 backend/gt68xx.c:149 backend/ma1509.c:108 +#: backend/mustek.c:164 backend/snapscan-options.c:87 backend/umax.c:182 #, no-c-format msgid "Transparency Adapter" msgstr "" +#: backend/genesys/genesys.h:80 +#, fuzzy, no-c-format +msgid "Transparency Adapter Infrared" +msgstr "Átlátszó" + #: backend/gt68xx.c:470 #, no-c-format msgid "Gray mode color" @@ -3241,6 +3263,304 @@ msgstr "Gamma érték" msgid "Sets the gamma value of all channels." msgstr "" +#: backend/hp-option.c:2987 +#, fuzzy, no-c-format +msgid "Advanced Options" +msgstr "Haladó" + +#: backend/hp-option.c:3044 +#, no-c-format +msgid "Coarse" +msgstr "" + +#: backend/hp-option.c:3045 +#, no-c-format +msgid "Fine" +msgstr "" + +#: backend/hp-option.c:3046 +#, no-c-format +msgid "Bayer" +msgstr "" + +#: backend/hp-option.c:3049 backend/hp-option.c:3100 +#, no-c-format +msgid "Custom" +msgstr "Egyedi" + +#: backend/hp-option.c:3090 backend/hp-option.c:3146 +#: backend/hp-option.c:3161 +#, no-c-format +msgid "Auto" +msgstr "Automatikus" + +#: backend/hp-option.c:3091 +#, no-c-format +msgid "NTSC RGB" +msgstr "NTSC RGB" + +#: backend/hp-option.c:3092 +#, no-c-format +msgid "XPA RGB" +msgstr "XPA RGB" + +#: backend/hp-option.c:3093 +#, no-c-format +msgid "Pass-through" +msgstr "" + +#: backend/hp-option.c:3094 +#, no-c-format +msgid "NTSC Gray" +msgstr "" + +#: backend/hp-option.c:3095 +#, no-c-format +msgid "XPA Gray" +msgstr "" + +#: backend/hp-option.c:3147 +#, no-c-format +msgid "Slow" +msgstr "Lassú" + +#: backend/hp-option.c:3148 backend/hp-option.c:3255 +#: backend/kvs40xx_opt.c:230 backend/matsushita.c:244 backend/mustek.c:149 +#: backend/plustek.c:234 backend/plustek_pp.c:203 backend/u12.c:155 +#, no-c-format +msgid "Normal" +msgstr "Normál" + +#: backend/hp-option.c:3149 +#, no-c-format +msgid "Fast" +msgstr "Gyors" + +#: backend/hp-option.c:3150 +#, no-c-format +msgid "Extra Fast" +msgstr "Extra gyors" + +#: backend/hp-option.c:3163 +#, no-c-format +msgid "2-pixel" +msgstr "2-pixel" + +#: backend/hp-option.c:3164 +#, no-c-format +msgid "4-pixel" +msgstr "4-pixel" + +#: backend/hp-option.c:3165 +#, no-c-format +msgid "8-pixel" +msgstr "8-pixel" + +#: backend/hp-option.c:3176 +#, no-c-format +msgid "Print" +msgstr "Nyomtatás" + +#: backend/hp-option.c:3177 backend/hp3900_sane.c:427 +#: backend/hp3900_sane.c:1019 +#, no-c-format +msgid "Slide" +msgstr "" + +#: backend/hp-option.c:3178 +#, no-c-format +msgid "Film-strip" +msgstr "" + +#: backend/hp-option.c:3256 backend/hp5590.c:93 +#, no-c-format +msgid "ADF" +msgstr "ADF" + +#: backend/hp-option.c:3257 +#, no-c-format +msgid "XPA" +msgstr "XPA" + +#: backend/hp-option.c:3331 backend/hp-option.c:3344 +#, no-c-format +msgid "Conditional" +msgstr "" + +#: backend/hp-option.c:3417 +#, no-c-format +msgid "Experiment" +msgstr "" + +#: backend/hp-option.h:60 +#, no-c-format +msgid "Sharpening" +msgstr "" + +#: backend/hp-option.h:61 +#, no-c-format +msgid "Set sharpening value." +msgstr "" + +#: backend/hp-option.h:66 +#, no-c-format +msgid "Auto Threshold" +msgstr "" + +#: backend/hp-option.h:68 +#, no-c-format +msgid "Enable automatic determination of threshold for line-art scans." +msgstr "" + +#: backend/hp-option.h:74 +#, no-c-format +msgid "Select smoothing filter." +msgstr "" + +#: backend/hp-option.h:79 +#, no-c-format +msgid "Unload media after scan" +msgstr "" + +#: backend/hp-option.h:80 +#, no-c-format +msgid "Unloads the media after a scan." +msgstr "" + +#: backend/hp-option.h:85 +#, no-c-format +msgid "Change document" +msgstr "" + +#: backend/hp-option.h:86 +#, no-c-format +msgid "Change Document." +msgstr "" + +#: backend/hp-option.h:91 +#, no-c-format +msgid "Unload" +msgstr "" + +#: backend/hp-option.h:92 +#, no-c-format +msgid "Unload Document." +msgstr "" + +#: backend/hp-option.h:98 +#, no-c-format +msgid "Start calibration process." +msgstr "Kalibrálási folyamat indítása." + +#: backend/hp-option.h:103 +#, no-c-format +msgid "Media" +msgstr "" + +#: backend/hp-option.h:104 +#, no-c-format +msgid "Set type of media." +msgstr "" + +#: backend/hp-option.h:109 +#, no-c-format +msgid "Exposure time" +msgstr "" + +#: backend/hp-option.h:111 +#, no-c-format +msgid "" +"A longer exposure time lets the scanner collect more light. Suggested " +"use is 175% for prints, 150% for normal slides and \"Negative\" for " +"negative film. For dark (underexposed) images you can increase this " +"value." +msgstr "" + +#: backend/hp-option.h:119 backend/hp-option.h:126 +#, no-c-format +msgid "Color Matrix" +msgstr "Színmátrix" + +#: backend/hp-option.h:121 +#, no-c-format +msgid "Set the scanner's color matrix." +msgstr "" + +#: backend/hp-option.h:127 +#, no-c-format +msgid "Custom color matrix." +msgstr "Egyéni színmátrix." + +#: backend/hp-option.h:132 +#, no-c-format +msgid "Mono Color Matrix" +msgstr "" + +#: backend/hp-option.h:133 +#, no-c-format +msgid "Custom color matrix for grayscale scans." +msgstr "" + +#: backend/hp-option.h:138 +#, no-c-format +msgid "Mirror horizontal" +msgstr "Vízszintes tükrözés" + +#: backend/hp-option.h:139 +#, no-c-format +msgid "Mirror image horizontally." +msgstr "A kép vízszintes tükrözése." + +#: backend/hp-option.h:144 +#, no-c-format +msgid "Mirror vertical" +msgstr "Függőleges tükrözés" + +#: backend/hp-option.h:145 +#, no-c-format +msgid "Mirror image vertically." +msgstr "A kép függőleges tükrözése." + +#: backend/hp-option.h:150 +#, no-c-format +msgid "Update options" +msgstr "" + +#: backend/hp-option.h:151 +#, no-c-format +msgid "Update options." +msgstr "" + +#: backend/hp-option.h:156 +#, no-c-format +msgid "8 bit output" +msgstr "" + +#: backend/hp-option.h:158 +#, no-c-format +msgid "Use bit depth greater eight internally, but output only eight bits." +msgstr "" + +#: backend/hp-option.h:164 +#, no-c-format +msgid "Front button wait" +msgstr "" + +#: backend/hp-option.h:165 +#, no-c-format +msgid "Wait to scan for front-panel button push." +msgstr "" + +#: backend/hp-option.h:172 +#, no-c-format +msgid "Shut off lamp" +msgstr "" + +#: backend/hp-option.h:173 +#, no-c-format +msgid "Shut off scanner lamp." +msgstr "" + #: backend/hp3500.c:1020 #, fuzzy, no-c-format msgid "Geometry Group" @@ -3251,12 +3571,6 @@ msgstr "Geometria" msgid "Scan Mode Group" msgstr " Szkennelési üzemmód " -#: backend/hp3900_sane.c:427 backend/hp3900_sane.c:1019 -#: backend/hp-option.c:3177 -#, no-c-format -msgid "Slide" -msgstr "" - #: backend/hp3900_sane.c:1405 #, fuzzy, no-c-format msgid "Scanner model" @@ -3450,11 +3764,6 @@ msgstr "" msgid "Calibrates for black and white level." msgstr "" -#: backend/hp5590.c:93 backend/hp-option.c:3256 -#, no-c-format -msgid "ADF" -msgstr "ADF" - #: backend/hp5590.c:95 #, no-c-format msgid "TMA Slides" @@ -3565,293 +3874,6 @@ msgid "" "r*65536+256*g+b or gray value (default=violet or gray)" msgstr "" -#: backend/hp-option.c:2987 -#, fuzzy, no-c-format -msgid "Advanced Options" -msgstr "Haladó" - -#: backend/hp-option.c:3044 -#, no-c-format -msgid "Coarse" -msgstr "" - -#: backend/hp-option.c:3045 -#, no-c-format -msgid "Fine" -msgstr "" - -#: backend/hp-option.c:3046 -#, no-c-format -msgid "Bayer" -msgstr "" - -#: backend/hp-option.c:3049 backend/hp-option.c:3100 -#, no-c-format -msgid "Custom" -msgstr "Egyedi" - -#: backend/hp-option.c:3090 backend/hp-option.c:3146 -#: backend/hp-option.c:3161 -#, no-c-format -msgid "Auto" -msgstr "Automatikus" - -#: backend/hp-option.c:3091 -#, no-c-format -msgid "NTSC RGB" -msgstr "NTSC RGB" - -#: backend/hp-option.c:3092 -#, no-c-format -msgid "XPA RGB" -msgstr "XPA RGB" - -#: backend/hp-option.c:3093 -#, no-c-format -msgid "Pass-through" -msgstr "" - -#: backend/hp-option.c:3094 -#, no-c-format -msgid "NTSC Gray" -msgstr "" - -#: backend/hp-option.c:3095 -#, no-c-format -msgid "XPA Gray" -msgstr "" - -#: backend/hp-option.c:3147 -#, no-c-format -msgid "Slow" -msgstr "Lassú" - -#: backend/hp-option.c:3148 backend/hp-option.c:3255 -#: backend/kvs40xx_opt.c:230 backend/matsushita.c:244 backend/mustek.c:149 -#: backend/plustek.c:234 backend/plustek_pp.c:203 backend/u12.c:155 -#, no-c-format -msgid "Normal" -msgstr "Normál" - -#: backend/hp-option.c:3149 -#, no-c-format -msgid "Fast" -msgstr "Gyors" - -#: backend/hp-option.c:3150 -#, no-c-format -msgid "Extra Fast" -msgstr "Extra gyors" - -#: backend/hp-option.c:3163 -#, no-c-format -msgid "2-pixel" -msgstr "2-pixel" - -#: backend/hp-option.c:3164 -#, no-c-format -msgid "4-pixel" -msgstr "4-pixel" - -#: backend/hp-option.c:3165 -#, no-c-format -msgid "8-pixel" -msgstr "8-pixel" - -#: backend/hp-option.c:3176 -#, no-c-format -msgid "Print" -msgstr "Nyomtatás" - -#: backend/hp-option.c:3178 -#, no-c-format -msgid "Film-strip" -msgstr "" - -#: backend/hp-option.c:3257 -#, no-c-format -msgid "XPA" -msgstr "XPA" - -#: backend/hp-option.c:3331 backend/hp-option.c:3344 -#, no-c-format -msgid "Conditional" -msgstr "" - -#: backend/hp-option.c:3417 -#, no-c-format -msgid "Experiment" -msgstr "" - -#: backend/hp-option.h:60 -#, no-c-format -msgid "Sharpening" -msgstr "" - -#: backend/hp-option.h:61 -#, no-c-format -msgid "Set sharpening value." -msgstr "" - -#: backend/hp-option.h:66 -#, no-c-format -msgid "Auto Threshold" -msgstr "" - -#: backend/hp-option.h:68 -#, no-c-format -msgid "Enable automatic determination of threshold for line-art scans." -msgstr "" - -#: backend/hp-option.h:74 -#, no-c-format -msgid "Select smoothing filter." -msgstr "" - -#: backend/hp-option.h:79 -#, no-c-format -msgid "Unload media after scan" -msgstr "" - -#: backend/hp-option.h:80 -#, no-c-format -msgid "Unloads the media after a scan." -msgstr "" - -#: backend/hp-option.h:85 -#, no-c-format -msgid "Change document" -msgstr "" - -#: backend/hp-option.h:86 -#, no-c-format -msgid "Change Document." -msgstr "" - -#: backend/hp-option.h:91 -#, no-c-format -msgid "Unload" -msgstr "" - -#: backend/hp-option.h:92 -#, no-c-format -msgid "Unload Document." -msgstr "" - -#: backend/hp-option.h:98 -#, no-c-format -msgid "Start calibration process." -msgstr "Kalibrálási folyamat indítása." - -#: backend/hp-option.h:103 -#, no-c-format -msgid "Media" -msgstr "" - -#: backend/hp-option.h:104 -#, no-c-format -msgid "Set type of media." -msgstr "" - -#: backend/hp-option.h:109 -#, no-c-format -msgid "Exposure time" -msgstr "" - -#: backend/hp-option.h:111 -#, no-c-format -msgid "" -"A longer exposure time lets the scanner collect more light. Suggested " -"use is 175% for prints, 150% for normal slides and \"Negative\" for " -"negative film. For dark (underexposed) images you can increase this " -"value." -msgstr "" - -#: backend/hp-option.h:119 backend/hp-option.h:126 -#, no-c-format -msgid "Color Matrix" -msgstr "Színmátrix" - -#: backend/hp-option.h:121 -#, no-c-format -msgid "Set the scanner's color matrix." -msgstr "" - -#: backend/hp-option.h:127 -#, no-c-format -msgid "Custom color matrix." -msgstr "Egyéni színmátrix." - -#: backend/hp-option.h:132 -#, no-c-format -msgid "Mono Color Matrix" -msgstr "" - -#: backend/hp-option.h:133 -#, no-c-format -msgid "Custom color matrix for grayscale scans." -msgstr "" - -#: backend/hp-option.h:138 -#, no-c-format -msgid "Mirror horizontal" -msgstr "Vízszintes tükrözés" - -#: backend/hp-option.h:139 -#, no-c-format -msgid "Mirror image horizontally." -msgstr "A kép vízszintes tükrözése." - -#: backend/hp-option.h:144 -#, no-c-format -msgid "Mirror vertical" -msgstr "Függőleges tükrözés" - -#: backend/hp-option.h:145 -#, no-c-format -msgid "Mirror image vertically." -msgstr "A kép függőleges tükrözése." - -#: backend/hp-option.h:150 -#, no-c-format -msgid "Update options" -msgstr "" - -#: backend/hp-option.h:151 -#, no-c-format -msgid "Update options." -msgstr "" - -#: backend/hp-option.h:156 -#, no-c-format -msgid "8 bit output" -msgstr "" - -#: backend/hp-option.h:158 -#, no-c-format -msgid "Use bit depth greater eight internally, but output only eight bits." -msgstr "" - -#: backend/hp-option.h:164 -#, no-c-format -msgid "Front button wait" -msgstr "" - -#: backend/hp-option.h:165 -#, no-c-format -msgid "Wait to scan for front-panel button push." -msgstr "" - -#: backend/hp-option.h:172 -#, no-c-format -msgid "Shut off lamp" -msgstr "" - -#: backend/hp-option.h:173 -#, no-c-format -msgid "Shut off scanner lamp." -msgstr "" - #: backend/kvs1025.h:51 backend/kvs20xx_opt.c:295 backend/kvs40xx_opt.c:516 #: backend/matsushita.h:219 #, no-c-format @@ -3950,7 +3972,7 @@ msgid "single" msgstr "" #: backend/kvs1025_opt.c:73 backend/kvs20xx.c:462 backend/kvs20xx_opt.c:56 -#: backend/kvs40xx.c:704 backend/kvs40xx.c:722 backend/kvs40xx_opt.c:102 +#: backend/kvs40xx.c:705 backend/kvs40xx.c:723 backend/kvs40xx_opt.c:102 #: backend/kvs40xx_opt.c:1087 #, fuzzy, no-c-format msgid "continuous" @@ -4247,7 +4269,7 @@ msgstr "" #: backend/kvs1025_opt.c:807 backend/kvs1025_opt.c:808 #: backend/matsushita.c:1300 backend/matsushita.c:1301 -#: backend/pixma_sane_options.c:112 +#: backend/pixma/pixma_sane_options.c:112 #, no-c-format msgid "Gamma" msgstr "Gamma" @@ -4537,52 +4559,52 @@ msgstr "" msgid "8x8 Vertical Line" msgstr "" -#: backend/lexmark.c:273 backend/umax_pp.c:711 +#: backend/lexmark.c:273 backend/umax_pp.c:705 #, no-c-format msgid "Gain" msgstr "" -#: backend/lexmark.c:274 backend/umax_pp.c:712 +#: backend/lexmark.c:274 backend/umax_pp.c:706 #, no-c-format msgid "Color channels gain settings" msgstr "" -#: backend/lexmark.c:283 backend/umax_pp.c:719 +#: backend/lexmark.c:283 backend/umax_pp.c:713 #, fuzzy, no-c-format msgid "Gray gain" msgstr "Szürke" -#: backend/lexmark.c:284 backend/umax_pp.c:720 +#: backend/lexmark.c:284 backend/umax_pp.c:714 #, no-c-format msgid "Sets gray channel gain" msgstr "" -#: backend/lexmark.c:297 backend/plustek.c:1001 backend/umax_pp.c:731 +#: backend/lexmark.c:297 backend/plustek.c:1001 backend/umax_pp.c:725 #, fuzzy, no-c-format msgid "Red gain" msgstr "Vörös balansz" -#: backend/lexmark.c:298 backend/umax_pp.c:732 +#: backend/lexmark.c:298 backend/umax_pp.c:726 #, fuzzy, no-c-format msgid "Sets red channel gain" msgstr "A vörös csatorna kontrasztja" -#: backend/lexmark.c:311 backend/plustek.c:1017 backend/umax_pp.c:743 +#: backend/lexmark.c:311 backend/plustek.c:1017 backend/umax_pp.c:737 #, fuzzy, no-c-format msgid "Green gain" msgstr "Zöld balansz" -#: backend/lexmark.c:312 backend/umax_pp.c:744 +#: backend/lexmark.c:312 backend/umax_pp.c:738 #, fuzzy, no-c-format msgid "Sets green channel gain" msgstr "A zöld csatorna kontrasztja" -#: backend/lexmark.c:325 backend/plustek.c:1033 backend/umax_pp.c:755 +#: backend/lexmark.c:325 backend/plustek.c:1033 backend/umax_pp.c:749 #, fuzzy, no-c-format msgid "Blue gain" msgstr "Kék balansz" -#: backend/lexmark.c:326 backend/umax_pp.c:756 +#: backend/lexmark.c:326 backend/umax_pp.c:750 #, fuzzy, no-c-format msgid "Sets blue channel gain" msgstr "A kék csatorna kontrasztja" @@ -4668,7 +4690,7 @@ msgstr "Egy oldal" msgid "All pages" msgstr "Minden oldal" -#: backend/matsushita.c:1034 backend/plustek.c:1333 +#: backend/matsushita.c:1034 backend/p5_device.c:8 backend/plustek.c:1333 #, no-c-format msgid "sheetfed scanner" msgstr "" @@ -5161,39 +5183,44 @@ msgid "" "40 seconds warm-up time." msgstr "" -#: backend/pixma.c:397 +#: backend/p5.c:1926 +#, fuzzy, no-c-format +msgid "Need calibration" +msgstr "Finom beállítás" + +#: backend/pixma/pixma.c:397 #, fuzzy, no-c-format msgid "Negative color" msgstr "Negatív film" -#: backend/pixma.c:402 +#: backend/pixma/pixma.c:402 #, fuzzy, no-c-format msgid "Negative gray" msgstr "Negatív" -#: backend/pixma.c:415 +#: backend/pixma/pixma.c:415 #, no-c-format msgid "48 bits color" msgstr "" -#: backend/pixma.c:420 +#: backend/pixma/pixma.c:420 #, no-c-format msgid "16 bits gray" msgstr "" -#: backend/pixma_sane_options.c:84 +#: backend/pixma/pixma_sane_options.c:84 #, no-c-format msgid "" "Selects the scan source (such as a document-feeder). Set source before " "mode and resolution. Resets mode and resolution to auto values." msgstr "" -#: backend/pixma_sane_options.c:98 +#: backend/pixma/pixma_sane_options.c:98 #, no-c-format msgid "Button-controlled scan" msgstr "" -#: backend/pixma_sane_options.c:99 +#: backend/pixma/pixma_sane_options.c:99 #, no-c-format msgid "" "When enabled, scan process will not start immediately. To proceed, press " @@ -5201,37 +5228,37 @@ msgid "" "cancel, press \"GRAY\" button." msgstr "" -#: backend/pixma_sane_options.c:232 +#: backend/pixma/pixma_sane_options.c:232 #, no-c-format msgid "Update button state" msgstr "" -#: backend/pixma_sane_options.c:244 +#: backend/pixma/pixma_sane_options.c:244 #, no-c-format msgid "Button 1" msgstr "" -#: backend/pixma_sane_options.c:258 +#: backend/pixma/pixma_sane_options.c:258 #, no-c-format msgid "Button 2" msgstr "" -#: backend/pixma_sane_options.c:272 +#: backend/pixma/pixma_sane_options.c:272 #, no-c-format msgid "Type of original to scan" msgstr "" -#: backend/pixma_sane_options.c:286 +#: backend/pixma/pixma_sane_options.c:286 #, no-c-format msgid "Target operation type" msgstr "" -#: backend/pixma_sane_options.c:348 +#: backend/pixma/pixma_sane_options.c:348 #, no-c-format msgid "ADF Waiting Time" msgstr "" -#: backend/pixma_sane_options.c:349 +#: backend/pixma/pixma_sane_options.c:349 #, no-c-format msgid "" "When set, the scanner waits upto the specified time in seconds for a new " @@ -5323,7 +5350,7 @@ msgstr "Analóg erősítés" msgid "Red gain value of the AFE" msgstr "" -#: backend/plustek.c:1009 backend/umax_pp.c:788 +#: backend/plustek.c:1009 backend/umax_pp.c:782 #, no-c-format msgid "Red offset" msgstr "" @@ -5578,7 +5605,7 @@ msgstr "" msgid "This option reflects the status of a scanner button." msgstr "" -#: backend/rts8891.c:2840 backend/umax.c:5795 backend/umax_pp.c:635 +#: backend/rts8891.c:2840 backend/umax.c:5795 backend/umax_pp.c:629 #, no-c-format msgid "Lamp on" msgstr "" @@ -5588,12 +5615,12 @@ msgstr "" msgid "Turn on scanner lamp" msgstr "" -#: backend/rts8891.c:2851 backend/umax1220u.c:248 backend/umax.c:5812 +#: backend/rts8891.c:2851 backend/umax.c:5812 backend/umax1220u.c:248 #, no-c-format msgid "Lamp off" msgstr "" -#: backend/rts8891.c:2852 backend/umax1220u.c:249 backend/umax.c:5813 +#: backend/rts8891.c:2852 backend/umax.c:5813 backend/umax1220u.c:249 #, no-c-format msgid "Turn off scanner lamp" msgstr "" @@ -6319,52 +6346,52 @@ msgstr "" msgid "Define calibration mode" msgstr "" -#: backend/umax_pp.c:636 +#: backend/umax_pp.c:630 #, no-c-format msgid "Sets lamp on/off" msgstr "" -#: backend/umax_pp.c:645 +#: backend/umax_pp.c:639 #, no-c-format msgid "UTA on" msgstr "" -#: backend/umax_pp.c:646 +#: backend/umax_pp.c:640 #, no-c-format msgid "Sets UTA on/off" msgstr "" -#: backend/umax_pp.c:767 +#: backend/umax_pp.c:761 #, fuzzy, no-c-format msgid "Offset" msgstr "Ki" -#: backend/umax_pp.c:769 +#: backend/umax_pp.c:763 #, no-c-format msgid "Color channels offset settings" msgstr "" -#: backend/umax_pp.c:776 +#: backend/umax_pp.c:770 #, fuzzy, no-c-format msgid "Gray offset" msgstr "Szürke kontraszt" -#: backend/umax_pp.c:777 +#: backend/umax_pp.c:771 #, no-c-format msgid "Sets gray channel offset" msgstr "" -#: backend/umax_pp.c:789 +#: backend/umax_pp.c:783 #, fuzzy, no-c-format msgid "Sets red channel offset" msgstr "A vörös csatorna kontrasztja" -#: backend/umax_pp.c:801 +#: backend/umax_pp.c:795 #, fuzzy, no-c-format msgid "Sets green channel offset" msgstr "A zöld csatorna kontrasztja" -#: backend/umax_pp.c:813 +#: backend/umax_pp.c:807 #, fuzzy, no-c-format msgid "Sets blue channel offset" msgstr "A kék csatorna kontrasztja" diff --git a/po/it.po b/po/it.po index 1d05e32d4..6107e476f 100644 --- a/po/it.po +++ b/po/it.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: sane-backends 1.0.18\n" "Report-Msgid-Bugs-To: sane-devel@alioth-lists.debian.net\n" -"POT-Creation-Date: 2019-10-12 17:41+0300\n" +"POT-Creation-Date: 2020-01-12 07:09+0000\n" "PO-Revision-Date: 2007-08-28 23:11+0200\n" "Last-Translator: Giuseppe Sacco \n" "Language-Team: italian translation project \n" @@ -26,23 +26,23 @@ msgid "Standard" msgstr "" #: include/sane/saneopts.h:157 backend/artec_eplus48u.c:2884 -#: backend/epson.c:3298 backend/epson2.c:1290 -#: backend/genesys/genesys.cpp:3976 backend/gt68xx.c:696 -#: backend/hp3500.c:1019 backend/hp-option.c:3300 backend/kvs1025_opt.c:639 +#: backend/epson.c:3298 backend/epson2.c:1290 backend/epsonds.c:677 +#: backend/genesys/genesys.cpp:4034 backend/gt68xx.c:696 +#: backend/hp-option.c:3300 backend/hp3500.c:1019 backend/kvs1025_opt.c:639 #: backend/kvs20xx_opt.c:285 backend/kvs40xx_opt.c:506 backend/leo.c:823 #: backend/lexmark.c:199 backend/ma1509.c:551 backend/matsushita.c:1135 #: backend/microtek2.h:599 backend/mustek.c:4373 backend/mustek_usb.c:301 -#: backend/mustek_usb2.c:465 backend/pixma_sane_options.c:160 +#: backend/mustek_usb2.c:465 backend/pixma/pixma_sane_options.c:160 #: backend/plustek.c:808 backend/plustek_pp.c:747 backend/sceptre.c:702 #: backend/snapscan-options.c:550 backend/teco1.c:1095 backend/teco2.c:1910 #: backend/teco3.c:920 backend/test.c:647 backend/u12.c:546 -#: backend/umax.c:5176 backend/umax_pp.c:576 +#: backend/umax.c:5176 backend/umax_pp.c:570 #, no-c-format msgid "Geometry" msgstr "Geometria" #: include/sane/saneopts.h:158 backend/artec_eplus48u.c:2805 -#: backend/canon.c:1493 backend/genesys/genesys.cpp:4035 +#: backend/canon.c:1493 backend/genesys/genesys.cpp:4077 #: backend/gt68xx.c:665 backend/hp-option.c:2956 backend/kvs1025_opt.c:703 #: backend/leo.c:871 backend/ma1509.c:599 backend/matsushita.c:1189 #: backend/microtek2.h:600 backend/mustek.c:4421 backend/mustek_usb.c:349 @@ -50,7 +50,7 @@ msgstr "Geometria" #: backend/plustek_pp.c:793 backend/sceptre.c:750 #: backend/snapscan-options.c:617 backend/stv680.c:1067 #: backend/teco1.c:1143 backend/teco2.c:1958 backend/teco3.c:968 -#: backend/u12.c:592 backend/umax.c:5226 backend/umax_pp.c:625 +#: backend/u12.c:592 backend/umax.c:5226 backend/umax_pp.c:619 #, no-c-format msgid "Enhancement" msgstr "Miglioramento" @@ -84,7 +84,7 @@ msgid "Bit depth" msgstr "Profondità in bit" #: include/sane/saneopts.h:165 backend/canon.c:1140 backend/leo.c:781 -#: backend/pixma_sane_options.c:47 +#: backend/pixma/pixma_sane_options.c:47 #, no-c-format msgid "Scan mode" msgstr "Modalità di scansione" @@ -125,7 +125,7 @@ msgid "Bottom-right y" msgstr "Y in basso a destra" #: include/sane/saneopts.h:173 backend/canon.c:1216 -#: backend/pixma_sane_options.c:300 +#: backend/pixma/pixma_sane_options.c:300 #, no-c-format msgid "Scan resolution" msgstr "Risoluzione della scansione" @@ -280,7 +280,7 @@ msgstr "Nome file" msgid "Halftone pattern size" msgstr "Dimensione del modello mezzi-toni" -#: include/sane/saneopts.h:204 backend/fujitsu.c:3233 +#: include/sane/saneopts.h:204 backend/fujitsu.c:3237 #, no-c-format msgid "Halftone pattern" msgstr "Modello mezzi-toni" @@ -290,10 +290,10 @@ msgstr "Modello mezzi-toni" msgid "Bind X and Y resolution" msgstr "Lega la risoluzione X e Y" -#: include/sane/saneopts.h:206 backend/hp3900_sane.c:428 -#: backend/hp3900_sane.c:1021 backend/hp3900_sane.c:1421 -#: backend/hp-option.c:3238 backend/mustek_usb2.c:121 backend/plustek.c:236 -#: backend/plustek_pp.c:205 backend/u12.c:157 +#: include/sane/saneopts.h:206 backend/hp-option.c:3238 +#: backend/hp3900_sane.c:428 backend/hp3900_sane.c:1021 +#: backend/hp3900_sane.c:1421 backend/mustek_usb2.c:121 +#: backend/plustek.c:236 backend/plustek_pp.c:205 backend/u12.c:157 #, no-c-format msgid "Negative" msgstr "Negativo" @@ -1050,78 +1050,38 @@ msgid "" "Duplex scan provides a scan of the front and back side of the document" msgstr "La scansione duplex è quella di entrambi i lati del documento" -#: backend/canon630u.c:159 +#: backend/canon-sane.c:674 backend/canon.c:171 #, no-c-format -msgid "Calibrate Scanner" -msgstr "Calibrare lo scanner" +msgid "Correction according to transparency ratio" +msgstr "Correzione in base al rapporto di trasparenza" -#: backend/canon630u.c:160 +#: backend/canon-sane.c:680 backend/canon.c:170 #, no-c-format -msgid "Force scanner calibration before scan" -msgstr "Forza la calibrazione dello scanner prima della scansione" +msgid "Correction according to film type" +msgstr "Correzione in base al tipo di pellicola" -#: backend/canon630u.c:259 backend/umax1220u.c:208 -#, no-c-format -msgid "Grayscale scan" -msgstr "Scansione in scala di grigi" - -#: backend/canon630u.c:260 backend/umax1220u.c:209 -#, no-c-format -msgid "Do a grayscale rather than color scan" -msgstr "Effettuare una scansione in scala di grigi invece che a colori" - -#: backend/canon630u.c:306 -#, no-c-format -msgid "Analog Gain" -msgstr "Guadagno analogico" - -#: backend/canon630u.c:307 -#, no-c-format -msgid "Increase or decrease the analog gain of the CCD array" -msgstr "Aumenta o diminuisce il guadagno analogico del sensore CCD" - -#: backend/canon630u.c:347 backend/epson.h:68 backend/epson2.h:67 -#, no-c-format -msgid "Gamma Correction" -msgstr "Correzione gamma" - -#: backend/canon630u.c:348 -#, no-c-format -msgid "Selects the gamma corrected transfer curve" -msgstr "Selezionare la curva di correzione gamma" - -#: backend/canon.c:149 backend/canon-sane.c:1318 -#, no-c-format -msgid "Raw" -msgstr "Grezzo" - -#: backend/canon.c:157 backend/canon-sane.c:732 backend/canon-sane.c:940 +#: backend/canon-sane.c:732 backend/canon-sane.c:940 #: backend/canon-sane.c:1076 backend/canon-sane.c:1314 -#: backend/canon-sane.c:1494 backend/canon-sane.c:1643 +#: backend/canon-sane.c:1494 backend/canon-sane.c:1643 backend/canon.c:157 #, no-c-format msgid "Fine color" msgstr "Colore ad alta qualità" +#: backend/canon-sane.c:776 backend/canon.c:176 +#, no-c-format +msgid "Negatives" +msgstr "Negativi" + +#: backend/canon-sane.c:1318 backend/canon.c:149 +#, no-c-format +msgid "Raw" +msgstr "Grezzo" + #: backend/canon.c:169 #, no-c-format msgid "No transparency correction" msgstr "Nessuna correzione della trasparenza" -#: backend/canon.c:170 backend/canon-sane.c:680 -#, no-c-format -msgid "Correction according to film type" -msgstr "Correzione in base al tipo di pellicola" - -#: backend/canon.c:171 backend/canon-sane.c:674 -#, no-c-format -msgid "Correction according to transparency ratio" -msgstr "Correzione in base al rapporto di trasparenza" - -#: backend/canon.c:176 backend/canon-sane.c:776 -#, no-c-format -msgid "Negatives" -msgstr "Negativi" - #: backend/canon.c:176 #, no-c-format msgid "Slides" @@ -1550,94 +1510,137 @@ msgstr "Seleziona tipo pellicola" msgid "Select the film type" msgstr "Seleziona il tipo di pellicola" -#: backend/canon_dr.c:411 backend/epjitsu.c:233 backend/epson.c:501 -#: backend/epson2.c:115 backend/fujitsu.c:675 backend/gt68xx.c:148 +#: backend/canon630u.c:159 +#, no-c-format +msgid "Calibrate Scanner" +msgstr "Calibrare lo scanner" + +#: backend/canon630u.c:160 +#, no-c-format +msgid "Force scanner calibration before scan" +msgstr "Forza la calibrazione dello scanner prima della scansione" + +#: backend/canon630u.c:259 backend/umax1220u.c:208 +#, no-c-format +msgid "Grayscale scan" +msgstr "Scansione in scala di grigi" + +#: backend/canon630u.c:260 backend/umax1220u.c:209 +#, no-c-format +msgid "Do a grayscale rather than color scan" +msgstr "Effettuare una scansione in scala di grigi invece che a colori" + +#: backend/canon630u.c:306 +#, no-c-format +msgid "Analog Gain" +msgstr "Guadagno analogico" + +#: backend/canon630u.c:307 +#, no-c-format +msgid "Increase or decrease the analog gain of the CCD array" +msgstr "Aumenta o diminuisce il guadagno analogico del sensore CCD" + +#: backend/canon630u.c:347 backend/epson.h:68 backend/epson2.h:67 +#, no-c-format +msgid "Gamma Correction" +msgstr "Correzione gamma" + +#: backend/canon630u.c:348 +#, no-c-format +msgid "Selects the gamma corrected transfer curve" +msgstr "Selezionare la curva di correzione gamma" + +#: backend/canon_dr.c:413 backend/epjitsu.c:233 backend/epson.c:501 +#: backend/epson2-ops.c:101 backend/epson2.c:115 backend/epsonds-ops.c:32 +#: backend/epsonds.c:95 backend/epsonds.h:62 backend/fujitsu.c:677 +#: backend/genesys/genesys.h:78 backend/gt68xx.c:148 #: backend/hp3900_sane.c:418 backend/hp3900_sane.c:427 -#: backend/hp3900_sane.c:1017 backend/hp5590.c:92 backend/ma1509.c:108 -#: backend/magicolor.c:181 backend/mustek.c:156 backend/mustek.c:160 -#: backend/mustek.c:164 backend/pixma.c:920 backend/pixma_sane_options.c:92 -#: backend/snapscan-options.c:86 backend/test.c:192 backend/umax.c:181 +#: backend/hp3900_sane.c:1017 backend/hp5590.c:92 backend/kodakaio.c:617 +#: backend/ma1509.c:108 backend/magicolor.c:181 backend/mustek.c:156 +#: backend/mustek.c:160 backend/mustek.c:164 backend/pixma/pixma.c:920 +#: backend/pixma/pixma_sane_options.c:92 backend/snapscan-options.c:86 +#: backend/test.c:192 backend/umax.c:181 #, no-c-format msgid "Flatbed" msgstr "Piano fisso" -#: backend/canon_dr.c:412 backend/epjitsu.c:234 backend/fujitsu.c:676 +#: backend/canon_dr.c:414 backend/epjitsu.c:234 backend/fujitsu.c:678 #: backend/kodak.c:140 #, fuzzy, no-c-format msgid "ADF Front" msgstr "Coperchio ADF aperto" -#: backend/canon_dr.c:413 backend/epjitsu.c:235 backend/fujitsu.c:677 +#: backend/canon_dr.c:415 backend/epjitsu.c:235 backend/fujitsu.c:679 #: backend/kodak.c:141 #, fuzzy, no-c-format msgid "ADF Back" msgstr "ADF inceppato" -#: backend/canon_dr.c:414 backend/epjitsu.c:236 backend/fujitsu.c:678 -#: backend/hp5590.c:94 backend/kodak.c:142 backend/pixma.c:931 +#: backend/canon_dr.c:416 backend/epjitsu.c:236 backend/fujitsu.c:680 +#: backend/hp5590.c:94 backend/kodak.c:142 backend/pixma/pixma.c:931 #, no-c-format msgid "ADF Duplex" msgstr "ADF Duplex" -#: backend/canon_dr.c:415 +#: backend/canon_dr.c:417 #, fuzzy, no-c-format msgid "Card Front" msgstr "Stampa" -#: backend/canon_dr.c:416 +#: backend/canon_dr.c:418 #, no-c-format msgid "Card Back" msgstr "" -#: backend/canon_dr.c:417 +#: backend/canon_dr.c:419 #, fuzzy, no-c-format msgid "Card Duplex" msgstr "Fronte e retro" -#: backend/canon_dr.c:424 backend/epson.c:599 backend/epson.c:3096 -#: backend/epson2.c:201 backend/fujitsu.c:695 -#: backend/genesys/genesys.cpp:99 backend/genesys/genesys.cpp:106 +#: backend/canon_dr.c:426 backend/epson.c:599 backend/epson.c:3096 +#: backend/epson2.c:201 backend/fujitsu.c:697 +#: backend/genesys/genesys.cpp:120 backend/genesys/genesys.cpp:127 #: backend/gt68xx_low.h:136 backend/hp-option.c:3096 #, no-c-format msgid "Red" msgstr "Rosso" -#: backend/canon_dr.c:425 backend/epson.c:600 backend/epson.c:3092 -#: backend/epson2.c:202 backend/fujitsu.c:696 -#: backend/genesys/genesys.cpp:100 backend/genesys/genesys.cpp:107 +#: backend/canon_dr.c:427 backend/epson.c:600 backend/epson.c:3092 +#: backend/epson2.c:202 backend/fujitsu.c:698 +#: backend/genesys/genesys.cpp:121 backend/genesys/genesys.cpp:128 #: backend/gt68xx_low.h:137 backend/hp-option.c:3097 #, no-c-format msgid "Green" msgstr "Verde" -#: backend/canon_dr.c:426 backend/epson.c:601 backend/epson.c:3100 -#: backend/epson2.c:203 backend/fujitsu.c:697 -#: backend/genesys/genesys.cpp:101 backend/genesys/genesys.cpp:108 +#: backend/canon_dr.c:428 backend/epson.c:601 backend/epson.c:3100 +#: backend/epson2.c:203 backend/fujitsu.c:699 +#: backend/genesys/genesys.cpp:122 backend/genesys/genesys.cpp:129 #: backend/gt68xx_low.h:138 backend/hp-option.c:3098 #, no-c-format msgid "Blue" msgstr "Blu" -#: backend/canon_dr.c:427 +#: backend/canon_dr.c:429 #, fuzzy, no-c-format msgid "Enhance Red" msgstr "Miglioramento" -#: backend/canon_dr.c:428 +#: backend/canon_dr.c:430 #, fuzzy, no-c-format msgid "Enhance Green" msgstr "Miglioramento" -#: backend/canon_dr.c:429 +#: backend/canon_dr.c:431 #, fuzzy, no-c-format msgid "Enhance Blue" msgstr "Miglioramento" -#: backend/canon_dr.c:431 backend/epson.c:556 backend/epson.c:564 +#: backend/canon_dr.c:433 backend/epson.c:556 backend/epson.c:564 #: backend/epson.c:576 backend/epson.c:598 backend/epson2.c:165 #: backend/epson2.c:173 backend/epson2.c:185 backend/epson2.c:200 -#: backend/epson2.c:214 backend/fujitsu.c:701 -#: backend/genesys/genesys.cpp:109 backend/leo.c:109 +#: backend/epson2.c:214 backend/fujitsu.c:703 +#: backend/genesys/genesys.cpp:130 backend/leo.c:109 #: backend/matsushita.c:138 backend/matsushita.c:159 #: backend/matsushita.c:191 backend/matsushita.c:213 #: backend/snapscan-options.c:91 @@ -1645,42 +1648,46 @@ msgstr "Miglioramento" msgid "None" msgstr "Nessuno" -#: backend/canon_dr.c:432 backend/fujitsu.c:702 +#: backend/canon_dr.c:434 backend/fujitsu.c:704 #, no-c-format msgid "JPEG" msgstr "" -#: backend/canon_dr.c:2477 backend/fujitsu.c:4113 -#: backend/genesys/genesys.cpp:4126 backend/kvs1025_opt.c:910 +#: backend/canon_dr.c:2479 backend/fujitsu.c:4117 +#: backend/genesys/genesys.cpp:4168 backend/kvs1025_opt.c:910 #, no-c-format msgid "Software blank skip percentage" msgstr "" -#: backend/canon_dr.c:2478 backend/fujitsu.c:4114 +#: backend/canon_dr.c:2480 backend/fujitsu.c:4118 #, no-c-format msgid "Request driver to discard pages with low percentage of dark pixels" msgstr "" -#: backend/epson.c:491 backend/epson2.c:108 backend/magicolor.c:174 +#: backend/epson.c:491 backend/epson2.c:108 backend/epsonds.c:88 +#: backend/kodakaio.c:611 backend/magicolor.c:174 #, no-c-format msgid "Simplex" msgstr "Solo fronte" -#: backend/epson.c:492 backend/epson2.c:109 backend/kvs1025.h:50 -#: backend/kvs20xx_opt.c:204 backend/kvs40xx_opt.c:353 -#: backend/magicolor.c:175 backend/matsushita.h:218 +#: backend/epson.c:492 backend/epson2.c:109 backend/epsonds.c:89 +#: backend/kodakaio.c:612 backend/kvs1025.h:50 backend/kvs20xx_opt.c:204 +#: backend/kvs40xx_opt.c:353 backend/magicolor.c:175 +#: backend/matsushita.h:218 #, no-c-format msgid "Duplex" msgstr "Fronte e retro" -#: backend/epson.c:502 backend/epson2.c:116 backend/pixma.c:937 +#: backend/epson.c:502 backend/epson2-ops.c:102 backend/epson2.c:116 +#: backend/epsonds-ops.c:33 backend/epsonds.h:63 backend/pixma/pixma.c:937 #, no-c-format msgid "Transparency Unit" msgstr "Adattatore per trasparenze" -#: backend/epson.c:503 backend/epson2.c:118 backend/magicolor.c:182 -#: backend/mustek.c:160 backend/pixma.c:925 backend/test.c:192 -#: backend/umax.c:183 +#: backend/epson.c:503 backend/epson2-ops.c:104 backend/epson2.c:118 +#: backend/epsonds-ops.c:34 backend/epsonds.c:96 backend/epsonds.h:64 +#: backend/kodakaio.c:618 backend/magicolor.c:182 backend/mustek.c:160 +#: backend/pixma/pixma.c:925 backend/test.c:192 backend/umax.c:183 #, no-c-format msgid "Automatic Document Feeder" msgstr "Caricatore automatico fogli" @@ -1792,7 +1799,7 @@ msgstr "Stampanti a getto d'inchiostro" msgid "CRT monitors" msgstr "Monitor CRT" -#: backend/epson.c:656 backend/epson2.c:254 backend/fujitsu.c:685 +#: backend/epson.c:656 backend/epson2.c:254 backend/fujitsu.c:687 #: backend/hp-option.c:3229 backend/test.c:143 #, no-c-format msgid "Default" @@ -1856,8 +1863,8 @@ msgstr "A4" msgid "Max" msgstr "Massimo" -#: backend/epson.c:2813 backend/epson2.c:976 -#: backend/genesys/genesys.cpp:3893 backend/gt68xx.c:451 +#: backend/epson.c:2813 backend/epson2.c:976 backend/epsonds.c:629 +#: backend/genesys/genesys.cpp:3965 backend/gt68xx.c:451 #: backend/hp-option.c:2917 backend/kvs1025_opt.c:521 #: backend/kvs20xx_opt.c:171 backend/kvs40xx_opt.c:320 backend/ma1509.c:501 #: backend/matsushita.c:1084 backend/microtek2.h:598 backend/mustek.c:4215 @@ -2032,17 +2039,17 @@ msgstr "Definisce il fattore di zoom usato dallo scanner" msgid "Quick format" msgstr "Formato rapido" -#: backend/epson.c:3360 backend/epson2.c:1340 +#: backend/epson.c:3360 backend/epson2.c:1340 backend/epsonds.c:726 #, no-c-format msgid "Optional equipment" msgstr "Dispositivi opzionali" -#: backend/epson.c:3431 backend/epson2.c:1393 +#: backend/epson.c:3431 backend/epson2.c:1393 backend/epsonds.c:742 #, no-c-format msgid "Eject" msgstr "Espulsione" -#: backend/epson.c:3432 backend/epson2.c:1394 +#: backend/epson.c:3432 backend/epson2.c:1394 backend/epsonds.c:743 #, no-c-format msgid "Eject the sheet in the ADF" msgstr "Espelle il foglio dall'alimentatore automatico" @@ -2057,12 +2064,14 @@ msgstr "Espulsione automatica" msgid "Eject document after scanning" msgstr "Espelle il documento dopo la sua scansione" -#: backend/epson.c:3457 backend/epson2.c:1416 backend/magicolor.c:2420 +#: backend/epson.c:3457 backend/epson2.c:1416 backend/epsonds.c:758 +#: backend/kodakaio.c:2855 backend/magicolor.c:2420 #, no-c-format msgid "ADF Mode" msgstr "Modalità ADF" -#: backend/epson.c:3459 backend/epson2.c:1418 backend/magicolor.c:2422 +#: backend/epson.c:3459 backend/epson2.c:1418 backend/epsonds.c:760 +#: backend/kodakaio.c:2857 backend/magicolor.c:2422 #, no-c-format msgid "Selects the ADF mode (simplex/duplex)" msgstr "Seleziona la modalità ADF (solo fronte/fronte-retro)" @@ -2114,16 +2123,16 @@ msgstr "" "premuto il tasto dello scanner per fare partire il processo di " "acquisizione." -#: backend/epson2.c:102 backend/pixma.c:409 -#, no-c-format -msgid "Infrared" -msgstr "" - -#: backend/epson2.c:117 +#: backend/epson2-ops.c:103 backend/epson2.c:117 #, no-c-format msgid "TPU8x10" msgstr "" +#: backend/epson2.c:102 backend/pixma/pixma.c:409 +#, no-c-format +msgid "Infrared" +msgstr "" + #: backend/epson2.c:136 #, no-c-format msgid "Positive Slide" @@ -2144,493 +2153,513 @@ msgstr "" msgid "User defined CCT profile" msgstr "Definito dall'utente" -#: backend/fujitsu.c:686 backend/hp-option.c:3330 backend/hp-option.c:3343 +#: backend/epsonds.c:750 +#, no-c-format +msgid "Load" +msgstr "" + +#: backend/epsonds.c:751 +#, fuzzy, no-c-format +msgid "Load a sheet in the ADF" +msgstr "Espelle il foglio dall'alimentatore automatico" + +#: backend/epsonds.c:771 +#, fuzzy, no-c-format +msgid "ADF Skew Correction" +msgstr "Nessuna correzione" + +#: backend/epsonds.c:773 +#, fuzzy, no-c-format +msgid "Enables ADF skew correction" +msgstr "Correzione gamma analogica" + +#: backend/fujitsu.c:688 backend/hp-option.c:3330 backend/hp-option.c:3343 #, no-c-format msgid "On" msgstr "Attivo" -#: backend/fujitsu.c:687 backend/hp-option.c:3162 backend/hp-option.c:3329 +#: backend/fujitsu.c:689 backend/hp-option.c:3162 backend/hp-option.c:3329 #: backend/hp-option.c:3342 #, no-c-format msgid "Off" msgstr "Disattivo" -#: backend/fujitsu.c:689 +#: backend/fujitsu.c:691 #, no-c-format msgid "DTC" msgstr "" -#: backend/fujitsu.c:690 +#: backend/fujitsu.c:692 #, no-c-format msgid "SDTC" msgstr "" -#: backend/fujitsu.c:692 backend/teco1.c:1152 backend/teco1.c:1153 +#: backend/fujitsu.c:694 backend/teco1.c:1152 backend/teco1.c:1153 #: backend/teco2.c:1967 backend/teco2.c:1968 backend/teco3.c:977 #: backend/teco3.c:978 #, no-c-format msgid "Dither" msgstr "Sfumatura" -#: backend/fujitsu.c:693 +#: backend/fujitsu.c:695 #, fuzzy, no-c-format msgid "Diffusion" msgstr "Diffusione d'errore" -#: backend/fujitsu.c:698 +#: backend/fujitsu.c:700 #, fuzzy, no-c-format msgid "White" msgstr "Livello bianco" -#: backend/fujitsu.c:699 +#: backend/fujitsu.c:701 #, fuzzy, no-c-format msgid "Black" msgstr "Livello nero" -#: backend/fujitsu.c:704 +#: backend/fujitsu.c:706 #, fuzzy, no-c-format msgid "Continue" msgstr "Condizionale" -#: backend/fujitsu.c:705 +#: backend/fujitsu.c:707 #, no-c-format msgid "Stop" msgstr "" -#: backend/fujitsu.c:707 +#: backend/fujitsu.c:709 #, no-c-format msgid "10mm" msgstr "" -#: backend/fujitsu.c:708 +#: backend/fujitsu.c:710 #, no-c-format msgid "15mm" msgstr "" -#: backend/fujitsu.c:709 +#: backend/fujitsu.c:711 #, no-c-format msgid "20mm" msgstr "" -#: backend/fujitsu.c:711 backend/hp-option.c:3048 +#: backend/fujitsu.c:713 backend/hp-option.c:3048 #, no-c-format msgid "Horizontal" msgstr "Orizzontale" -#: backend/fujitsu.c:712 +#: backend/fujitsu.c:714 #, fuzzy, no-c-format msgid "Horizontal bold" msgstr "Orizzontale" -#: backend/fujitsu.c:713 +#: backend/fujitsu.c:715 #, fuzzy, no-c-format msgid "Horizontal narrow" msgstr "Orizzontale" -#: backend/fujitsu.c:714 backend/hp-option.c:3047 +#: backend/fujitsu.c:716 backend/hp-option.c:3047 #, no-c-format msgid "Vertical" msgstr "Verticale" -#: backend/fujitsu.c:715 +#: backend/fujitsu.c:717 #, fuzzy, no-c-format msgid "Vertical bold" msgstr "Verticale" -#: backend/fujitsu.c:717 +#: backend/fujitsu.c:719 #, no-c-format msgid "Top to bottom" msgstr "" -#: backend/fujitsu.c:718 +#: backend/fujitsu.c:720 #, no-c-format msgid "Bottom to top" msgstr "" -#: backend/fujitsu.c:720 +#: backend/fujitsu.c:722 #, fuzzy, no-c-format msgid "Front" msgstr "Stampa" -#: backend/fujitsu.c:721 +#: backend/fujitsu.c:723 #, no-c-format msgid "Back" msgstr "" -#: backend/fujitsu.c:3144 backend/pixma_sane_options.c:145 +#: backend/fujitsu.c:3148 backend/pixma/pixma_sane_options.c:145 #, no-c-format msgid "Gamma function exponent" msgstr "" -#: backend/fujitsu.c:3145 backend/pixma_sane_options.c:146 +#: backend/fujitsu.c:3149 backend/pixma/pixma_sane_options.c:146 #, no-c-format msgid "Changes intensity of midtones" msgstr "" -#: backend/fujitsu.c:3194 +#: backend/fujitsu.c:3198 #, no-c-format msgid "RIF" msgstr "" -#: backend/fujitsu.c:3195 +#: backend/fujitsu.c:3199 #, no-c-format msgid "Reverse image format" msgstr "" -#: backend/fujitsu.c:3212 +#: backend/fujitsu.c:3216 #, fuzzy, no-c-format msgid "Halftone type" msgstr "Mezzi toni" -#: backend/fujitsu.c:3213 +#: backend/fujitsu.c:3217 #, no-c-format msgid "Control type of halftone filter" msgstr "" -#: backend/fujitsu.c:3234 +#: backend/fujitsu.c:3238 #, no-c-format msgid "Control pattern of halftone filter" msgstr "" -#: backend/fujitsu.c:3256 +#: backend/fujitsu.c:3260 #, no-c-format msgid "Outline" msgstr "" -#: backend/fujitsu.c:3257 +#: backend/fujitsu.c:3261 #, fuzzy, no-c-format msgid "Perform outline extraction" msgstr "Effettua calibrazione" -#: backend/fujitsu.c:3268 +#: backend/fujitsu.c:3272 #, fuzzy, no-c-format msgid "Emphasis" msgstr "Accentuazione dell'immagine" -#: backend/fujitsu.c:3269 +#: backend/fujitsu.c:3273 #, no-c-format msgid "Negative to smooth or positive to sharpen image" msgstr "" -#: backend/fujitsu.c:3287 +#: backend/fujitsu.c:3291 #, fuzzy, no-c-format msgid "Separation" msgstr "Saturazione" -#: backend/fujitsu.c:3288 +#: backend/fujitsu.c:3292 #, fuzzy, no-c-format msgid "Enable automatic separation of image and text" msgstr "" "Abilita la valutazione automatica della soglia per la scansione binaria." -#: backend/fujitsu.c:3299 +#: backend/fujitsu.c:3303 #, fuzzy, no-c-format msgid "Mirroring" msgstr "Immagine riflessa" -#: backend/fujitsu.c:3300 +#: backend/fujitsu.c:3304 #, fuzzy, no-c-format msgid "Reflect output image horizontally" msgstr "Riflette l'immagine orizzontalmente." -#: backend/fujitsu.c:3317 +#: backend/fujitsu.c:3321 #, fuzzy, no-c-format msgid "White level follower" msgstr "Livello di bianco sul blu" -#: backend/fujitsu.c:3318 +#: backend/fujitsu.c:3322 #, fuzzy, no-c-format msgid "Control white level follower" msgstr "Controlla il livello del rosso" -#: backend/fujitsu.c:3336 +#: backend/fujitsu.c:3340 #, fuzzy, no-c-format msgid "BP filter" msgstr "Filtro colore" -#: backend/fujitsu.c:3337 +#: backend/fujitsu.c:3341 #, no-c-format msgid "Improves quality of high resolution ball-point pen text" msgstr "" -#: backend/fujitsu.c:3353 backend/hp-option.h:73 +#: backend/fujitsu.c:3357 backend/hp-option.h:73 #, no-c-format msgid "Smoothing" msgstr "Ammorbidimento" -#: backend/fujitsu.c:3354 +#: backend/fujitsu.c:3358 #, no-c-format msgid "Enable smoothing for improved OCR" msgstr "" -#: backend/fujitsu.c:3370 +#: backend/fujitsu.c:3374 #, fuzzy, no-c-format msgid "Gamma curve" msgstr "Valore gamma" -#: backend/fujitsu.c:3371 +#: backend/fujitsu.c:3375 #, no-c-format msgid "Gamma curve, from light to dark, but upper two may not work" msgstr "" -#: backend/fujitsu.c:3393 backend/genesys/genesys.cpp:4187 -#: backend/pixma_sane_options.c:335 +#: backend/fujitsu.c:3397 backend/genesys/genesys.cpp:4229 +#: backend/pixma/pixma_sane_options.c:335 #, fuzzy, no-c-format msgid "Threshold curve" msgstr "Soglia" -#: backend/fujitsu.c:3394 +#: backend/fujitsu.c:3398 #, no-c-format msgid "" "Threshold curve, from light to dark, but upper two may not be linear" msgstr "" -#: backend/fujitsu.c:3416 +#: backend/fujitsu.c:3420 #, fuzzy, no-c-format msgid "Threshold white" msgstr "Soglia" -#: backend/fujitsu.c:3417 +#: backend/fujitsu.c:3421 #, no-c-format msgid "Set pixels equal to threshold to white instead of black" msgstr "" -#: backend/fujitsu.c:3433 backend/fujitsu.c:3434 +#: backend/fujitsu.c:3437 backend/fujitsu.c:3438 #, fuzzy, no-c-format msgid "Noise removal" msgstr "Riduzione del rumore" -#: backend/fujitsu.c:3450 +#: backend/fujitsu.c:3454 #, no-c-format msgid "Matrix 5x5" msgstr "" -#: backend/fujitsu.c:3451 +#: backend/fujitsu.c:3455 #, no-c-format msgid "Remove 5 pixel square noise" msgstr "" -#: backend/fujitsu.c:3467 +#: backend/fujitsu.c:3471 #, no-c-format msgid "Matrix 4x4" msgstr "" -#: backend/fujitsu.c:3468 +#: backend/fujitsu.c:3472 #, no-c-format msgid "Remove 4 pixel square noise" msgstr "" -#: backend/fujitsu.c:3484 +#: backend/fujitsu.c:3488 #, no-c-format msgid "Matrix 3x3" msgstr "" -#: backend/fujitsu.c:3485 +#: backend/fujitsu.c:3489 #, no-c-format msgid "Remove 3 pixel square noise" msgstr "" -#: backend/fujitsu.c:3501 +#: backend/fujitsu.c:3505 #, no-c-format msgid "Matrix 2x2" msgstr "" -#: backend/fujitsu.c:3502 +#: backend/fujitsu.c:3506 #, no-c-format msgid "Remove 2 pixel square noise" msgstr "" -#: backend/fujitsu.c:3521 +#: backend/fujitsu.c:3525 #, no-c-format msgid "Variance" msgstr "" -#: backend/fujitsu.c:3522 +#: backend/fujitsu.c:3526 #, no-c-format msgid "Set SDTC variance rate (sensitivity), 0 equals 127" msgstr "" -#: backend/fujitsu.c:3555 +#: backend/fujitsu.c:3559 #, fuzzy, no-c-format msgid "Auto width detection" msgstr "Nessuna correzione" -#: backend/fujitsu.c:3556 +#: backend/fujitsu.c:3560 #, no-c-format msgid "Scanner detects paper sides. May reduce scanning speed." msgstr "" -#: backend/fujitsu.c:3573 +#: backend/fujitsu.c:3577 #, fuzzy, no-c-format msgid "Auto length detection" msgstr "Nessuna correzione" -#: backend/fujitsu.c:3574 +#: backend/fujitsu.c:3578 #, no-c-format msgid "Scanner detects paper lower edge. May confuse some frontends." msgstr "" -#: backend/fujitsu.c:3600 +#: backend/fujitsu.c:3604 #, no-c-format msgid "Compression" msgstr "" -#: backend/fujitsu.c:3601 +#: backend/fujitsu.c:3605 #, no-c-format msgid "Enable compressed data. May crash your front-end program" msgstr "" -#: backend/fujitsu.c:3621 +#: backend/fujitsu.c:3625 #, no-c-format msgid "Compression argument" msgstr "" -#: backend/fujitsu.c:3622 +#: backend/fujitsu.c:3626 #, no-c-format msgid "" "Level of JPEG compression. 1 is small file, 7 is large file. 0 (default) " "is same as 4" msgstr "" -#: backend/fujitsu.c:3652 +#: backend/fujitsu.c:3656 #, no-c-format msgid "DF action" msgstr "" -#: backend/fujitsu.c:3653 +#: backend/fujitsu.c:3657 #, no-c-format msgid "Action following double feed error" msgstr "" -#: backend/fujitsu.c:3669 +#: backend/fujitsu.c:3673 #, no-c-format msgid "DF skew" msgstr "" -#: backend/fujitsu.c:3670 +#: backend/fujitsu.c:3674 #, no-c-format msgid "Enable double feed error due to skew" msgstr "" -#: backend/fujitsu.c:3688 +#: backend/fujitsu.c:3692 #, no-c-format msgid "DF thickness" msgstr "" -#: backend/fujitsu.c:3689 +#: backend/fujitsu.c:3693 #, no-c-format msgid "Enable double feed error due to paper thickness" msgstr "" -#: backend/fujitsu.c:3707 +#: backend/fujitsu.c:3711 #, no-c-format msgid "DF length" msgstr "" -#: backend/fujitsu.c:3708 +#: backend/fujitsu.c:3712 #, no-c-format msgid "Enable double feed error due to paper length" msgstr "" -#: backend/fujitsu.c:3731 +#: backend/fujitsu.c:3735 #, no-c-format msgid "DF length difference" msgstr "" -#: backend/fujitsu.c:3732 +#: backend/fujitsu.c:3736 #, no-c-format msgid "Difference in page length to trigger double feed error" msgstr "" -#: backend/fujitsu.c:3755 +#: backend/fujitsu.c:3759 #, fuzzy, no-c-format msgid "DF recovery mode" msgstr "Coperchio ADF aperto" -#: backend/fujitsu.c:3756 +#: backend/fujitsu.c:3760 #, no-c-format msgid "Request scanner to reverse feed on paper jam" msgstr "" -#: backend/fujitsu.c:3775 +#: backend/fujitsu.c:3779 #, no-c-format msgid "Paper protection" msgstr "" -#: backend/fujitsu.c:3776 +#: backend/fujitsu.c:3780 #, no-c-format msgid "Request scanner to predict jams in the ADF" msgstr "" -#: backend/fujitsu.c:3795 +#: backend/fujitsu.c:3799 #, fuzzy, no-c-format msgid "Advanced paper protection" msgstr "Opzioni avanzate" -#: backend/fujitsu.c:3796 +#: backend/fujitsu.c:3800 #, no-c-format msgid "Request scanner to predict jams in the ADF using improved sensors" msgstr "" -#: backend/fujitsu.c:3815 +#: backend/fujitsu.c:3819 #, fuzzy, no-c-format msgid "Staple detection" msgstr "Nessuna correzione" -#: backend/fujitsu.c:3816 +#: backend/fujitsu.c:3820 #, no-c-format msgid "Request scanner to detect jams in the ADF caused by staples" msgstr "" -#: backend/fujitsu.c:3835 +#: backend/fujitsu.c:3839 #, no-c-format msgid "Background color" msgstr "" -#: backend/fujitsu.c:3836 +#: backend/fujitsu.c:3840 #, no-c-format msgid "" "Set color of background for scans. May conflict with overscan option" msgstr "" -#: backend/fujitsu.c:3856 +#: backend/fujitsu.c:3860 #, fuzzy, no-c-format msgid "Dropout color" msgstr "Esclusione" -#: backend/fujitsu.c:3857 +#: backend/fujitsu.c:3861 #, no-c-format msgid "" "One-pass scanners use only one color during gray or binary scanning, " "useful for colored paper or ink" msgstr "" -#: backend/fujitsu.c:3880 +#: backend/fujitsu.c:3884 #, fuzzy, no-c-format msgid "Buffer mode" msgstr "Modalità di caricamento" -#: backend/fujitsu.c:3881 +#: backend/fujitsu.c:3885 #, no-c-format msgid "Request scanner to read pages quickly from ADF into internal memory" msgstr "" -#: backend/fujitsu.c:3900 +#: backend/fujitsu.c:3904 #, no-c-format msgid "Prepick" msgstr "" -#: backend/fujitsu.c:3901 +#: backend/fujitsu.c:3905 #, no-c-format msgid "Request scanner to grab next page from ADF" msgstr "" -#: backend/fujitsu.c:3920 +#: backend/fujitsu.c:3924 #, no-c-format msgid "Overscan" msgstr "" -#: backend/fujitsu.c:3921 +#: backend/fujitsu.c:3925 #, no-c-format msgid "" "Collect a few mm of background on top side of scan, before paper enters " @@ -2638,65 +2667,65 @@ msgid "" "collection on remaining sides. May conflict with bgcolor option" msgstr "" -#: backend/fujitsu.c:3939 +#: backend/fujitsu.c:3943 #, no-c-format msgid "Sleep timer" msgstr "" -#: backend/fujitsu.c:3940 +#: backend/fujitsu.c:3944 #, no-c-format msgid "" "Time in minutes until the internal power supply switches to sleep mode" msgstr "" -#: backend/fujitsu.c:3958 +#: backend/fujitsu.c:3962 #, fuzzy, no-c-format msgid "Off timer" msgstr "Durata spegnimento lampada" -#: backend/fujitsu.c:3959 +#: backend/fujitsu.c:3963 #, no-c-format msgid "" "Time in minutes until the internal power supply switches the scanner " "off. Will be rounded to nearest 15 minutes. Zero means never power off." msgstr "" -#: backend/fujitsu.c:3977 +#: backend/fujitsu.c:3981 #, fuzzy, no-c-format msgid "Duplex offset" msgstr "Scarto sul blu" -#: backend/fujitsu.c:3978 +#: backend/fujitsu.c:3982 #, no-c-format msgid "Adjust front/back offset" msgstr "" -#: backend/fujitsu.c:3995 backend/plustek.c:1025 backend/umax_pp.c:800 +#: backend/fujitsu.c:3999 backend/plustek.c:1025 backend/umax_pp.c:794 #, no-c-format msgid "Green offset" msgstr "Scarto sul verde" -#: backend/fujitsu.c:3996 +#: backend/fujitsu.c:4000 #, fuzzy, no-c-format msgid "Adjust green/red offset" msgstr "Scarto sul verde" -#: backend/fujitsu.c:4013 backend/plustek.c:1041 backend/umax_pp.c:812 +#: backend/fujitsu.c:4017 backend/plustek.c:1041 backend/umax_pp.c:806 #, no-c-format msgid "Blue offset" msgstr "Scarto sul blu" -#: backend/fujitsu.c:4014 +#: backend/fujitsu.c:4018 #, fuzzy, no-c-format msgid "Adjust blue/red offset" msgstr "Imposta lo scarto sul blu" -#: backend/fujitsu.c:4027 +#: backend/fujitsu.c:4031 #, no-c-format msgid "Low Memory" msgstr "" -#: backend/fujitsu.c:4028 +#: backend/fujitsu.c:4032 #, no-c-format msgid "" "Limit driver memory usage for use in embedded systems. Causes some " @@ -2705,374 +2734,362 @@ msgid "" "only be used with custom front-end software." msgstr "" -#: backend/fujitsu.c:4043 +#: backend/fujitsu.c:4047 #, fuzzy, no-c-format msgid "Duplex side" msgstr "Scansione Duplex" -#: backend/fujitsu.c:4044 +#: backend/fujitsu.c:4048 #, no-c-format msgid "" "Tells which side (0=front, 1=back) of a duplex scan the next call to " "sane_read will return." msgstr "" -#: backend/fujitsu.c:4055 +#: backend/fujitsu.c:4059 #, no-c-format msgid "Hardware deskew and crop" msgstr "" -#: backend/fujitsu.c:4056 +#: backend/fujitsu.c:4060 #, no-c-format msgid "Request scanner to rotate and crop pages digitally." msgstr "" -#: backend/fujitsu.c:4067 backend/kvs1025_opt.c:871 +#: backend/fujitsu.c:4071 backend/kvs1025_opt.c:871 #, no-c-format msgid "Software deskew" msgstr "" -#: backend/fujitsu.c:4068 +#: backend/fujitsu.c:4072 #, no-c-format msgid "Request driver to rotate skewed pages digitally." msgstr "" -#: backend/fujitsu.c:4080 backend/kvs1025_opt.c:880 +#: backend/fujitsu.c:4084 backend/kvs1025_opt.c:880 #, no-c-format msgid "Software despeckle diameter" msgstr "" -#: backend/fujitsu.c:4081 +#: backend/fujitsu.c:4085 #, no-c-format msgid "Maximum diameter of lone dots to remove from scan." msgstr "" -#: backend/fujitsu.c:4100 backend/genesys/genesys.cpp:4117 +#: backend/fujitsu.c:4104 backend/genesys/genesys.cpp:4159 #, no-c-format msgid "Software crop" msgstr "" -#: backend/fujitsu.c:4101 +#: backend/fujitsu.c:4105 #, no-c-format msgid "Request driver to remove border from pages digitally." msgstr "" -#: backend/fujitsu.c:4130 +#: backend/fujitsu.c:4134 #, no-c-format msgid "Halt on Cancel" msgstr "" -#: backend/fujitsu.c:4131 +#: backend/fujitsu.c:4135 #, no-c-format msgid "" "Request driver to halt the paper feed instead of eject during a cancel." msgstr "" -#: backend/fujitsu.c:4142 +#: backend/fujitsu.c:4146 #, fuzzy, no-c-format msgid "Endorser Options" msgstr "Opzioni avanzate" -#: backend/fujitsu.c:4143 +#: backend/fujitsu.c:4147 #, no-c-format msgid "Controls for endorser unit" msgstr "" -#: backend/fujitsu.c:4154 +#: backend/fujitsu.c:4158 #, no-c-format msgid "Endorser" msgstr "" -#: backend/fujitsu.c:4155 +#: backend/fujitsu.c:4159 #, no-c-format msgid "Enable endorser unit" msgstr "" -#: backend/fujitsu.c:4170 +#: backend/fujitsu.c:4174 #, no-c-format msgid "Endorser bits" msgstr "" -#: backend/fujitsu.c:4171 +#: backend/fujitsu.c:4175 #, no-c-format msgid "Determines maximum endorser counter value." msgstr "" -#: backend/fujitsu.c:4196 +#: backend/fujitsu.c:4200 #, no-c-format msgid "Endorser value" msgstr "" -#: backend/fujitsu.c:4197 +#: backend/fujitsu.c:4201 #, no-c-format msgid "Initial endorser counter value." msgstr "" -#: backend/fujitsu.c:4220 +#: backend/fujitsu.c:4224 #, no-c-format msgid "Endorser step" msgstr "" -#: backend/fujitsu.c:4221 +#: backend/fujitsu.c:4225 #, no-c-format msgid "Change endorser counter value by this much for each page." msgstr "" -#: backend/fujitsu.c:4244 +#: backend/fujitsu.c:4248 #, no-c-format msgid "Endorser Y" msgstr "" -#: backend/fujitsu.c:4245 +#: backend/fujitsu.c:4249 #, no-c-format msgid "Endorser print offset from top of paper." msgstr "" -#: backend/fujitsu.c:4270 +#: backend/fujitsu.c:4274 #, no-c-format msgid "Endorser font" msgstr "" -#: backend/fujitsu.c:4271 +#: backend/fujitsu.c:4275 #, no-c-format msgid "Endorser printing font." msgstr "" -#: backend/fujitsu.c:4300 +#: backend/fujitsu.c:4304 #, fuzzy, no-c-format msgid "Endorser direction" msgstr "Riduzione del rumore" -#: backend/fujitsu.c:4301 +#: backend/fujitsu.c:4305 #, no-c-format msgid "Endorser printing direction." msgstr "" -#: backend/fujitsu.c:4325 +#: backend/fujitsu.c:4329 #, no-c-format msgid "Endorser side" msgstr "" -#: backend/fujitsu.c:4326 +#: backend/fujitsu.c:4330 #, no-c-format msgid "Endorser printing side, requires hardware support to change" msgstr "" -#: backend/fujitsu.c:4351 +#: backend/fujitsu.c:4355 #, no-c-format msgid "Endorser string" msgstr "" -#: backend/fujitsu.c:4352 +#: backend/fujitsu.c:4356 #, no-c-format msgid "" "Endorser alphanumeric print format. %05ud or %08ud at the end will be " "replaced by counter value." msgstr "" -#: backend/fujitsu.c:4379 +#: backend/fujitsu.c:4383 #, no-c-format msgid "Top edge" msgstr "" -#: backend/fujitsu.c:4380 +#: backend/fujitsu.c:4384 #, no-c-format msgid "Paper is pulled partly into ADF" msgstr "" -#: backend/fujitsu.c:4391 +#: backend/fujitsu.c:4395 #, fuzzy, no-c-format msgid "A3 paper" msgstr "Da carta" -#: backend/fujitsu.c:4392 +#: backend/fujitsu.c:4396 #, no-c-format msgid "A3 paper detected" msgstr "" -#: backend/fujitsu.c:4403 +#: backend/fujitsu.c:4407 #, fuzzy, no-c-format msgid "B4 paper" msgstr "Da carta" -#: backend/fujitsu.c:4404 +#: backend/fujitsu.c:4408 #, no-c-format msgid "B4 paper detected" msgstr "" -#: backend/fujitsu.c:4415 +#: backend/fujitsu.c:4419 #, fuzzy, no-c-format msgid "A4 paper" msgstr "Da carta" -#: backend/fujitsu.c:4416 +#: backend/fujitsu.c:4420 #, no-c-format msgid "A4 paper detected" msgstr "" -#: backend/fujitsu.c:4427 +#: backend/fujitsu.c:4431 #, fuzzy, no-c-format msgid "B5 paper" msgstr "Da carta" -#: backend/fujitsu.c:4428 +#: backend/fujitsu.c:4432 #, no-c-format msgid "B5 paper detected" msgstr "" -#: backend/fujitsu.c:4451 +#: backend/fujitsu.c:4455 #, no-c-format msgid "OMR or DF" msgstr "" -#: backend/fujitsu.c:4452 +#: backend/fujitsu.c:4456 #, no-c-format msgid "OMR or double feed detected" msgstr "" -#: backend/fujitsu.c:4475 +#: backend/fujitsu.c:4479 #, no-c-format msgid "Power saving" msgstr "" -#: backend/fujitsu.c:4476 +#: backend/fujitsu.c:4480 #, fuzzy, no-c-format msgid "Scanner in power saving mode" msgstr "Coperchio ADF aperto" -#: backend/fujitsu.c:4499 +#: backend/fujitsu.c:4503 #, fuzzy, no-c-format msgid "Manual feed" msgstr "Messa a fuoco preliminare manuale" -#: backend/fujitsu.c:4500 +#: backend/fujitsu.c:4504 #, fuzzy, no-c-format msgid "Manual feed selected" msgstr "Messa a fuoco preliminare manuale" -#: backend/fujitsu.c:4523 +#: backend/fujitsu.c:4527 #, no-c-format msgid "Function" msgstr "" -#: backend/fujitsu.c:4524 +#: backend/fujitsu.c:4528 #, no-c-format msgid "Function character on screen" msgstr "" -#: backend/fujitsu.c:4535 +#: backend/fujitsu.c:4539 #, no-c-format msgid "Ink low" msgstr "" -#: backend/fujitsu.c:4536 +#: backend/fujitsu.c:4540 #, no-c-format msgid "Imprinter ink running low" msgstr "" -#: backend/fujitsu.c:4547 +#: backend/fujitsu.c:4551 #, no-c-format msgid "Double feed" msgstr "" -#: backend/fujitsu.c:4548 +#: backend/fujitsu.c:4552 #, no-c-format msgid "Double feed detected" msgstr "" -#: backend/fujitsu.c:4559 +#: backend/fujitsu.c:4563 #, no-c-format msgid "Error code" msgstr "" -#: backend/fujitsu.c:4560 +#: backend/fujitsu.c:4564 #, fuzzy, no-c-format msgid "Hardware error code" msgstr "errore nei controlli hardware" -#: backend/fujitsu.c:4571 +#: backend/fujitsu.c:4575 #, no-c-format msgid "Skew angle" msgstr "" -#: backend/fujitsu.c:4572 +#: backend/fujitsu.c:4576 #, no-c-format msgid "Requires black background for scanning" msgstr "" -#: backend/fujitsu.c:4583 +#: backend/fujitsu.c:4587 #, no-c-format msgid "Ink remaining" msgstr "" -#: backend/fujitsu.c:4584 +#: backend/fujitsu.c:4588 #, fuzzy, no-c-format msgid "Imprinter ink level" msgstr "Livello bianco" -#: backend/fujitsu.c:4595 +#: backend/fujitsu.c:4599 #, fuzzy, no-c-format msgid "Density" msgstr "Controllo della densità" -#: backend/fujitsu.c:4596 +#: backend/fujitsu.c:4600 #, fuzzy, no-c-format msgid "Density dial" msgstr "Controllo della densità" -#: backend/fujitsu.c:4607 backend/fujitsu.c:4608 +#: backend/fujitsu.c:4611 backend/fujitsu.c:4612 #, fuzzy, no-c-format msgid "Duplex switch" msgstr "Scansione Duplex" -#: backend/genesys/genesys.cpp:4118 +#: backend/genesys/genesys.cpp:4160 #, no-c-format msgid "Request backend to remove border from pages digitally" msgstr "" -#: backend/genesys/genesys.cpp:4127 backend/kvs1025_opt.c:912 +#: backend/genesys/genesys.cpp:4169 backend/kvs1025_opt.c:912 #, no-c-format msgid "Request driver to discard pages with low numbers of dark pixels" msgstr "" -#: backend/genesys/genesys.cpp:4137 backend/kvs1025_opt.c:892 +#: backend/genesys/genesys.cpp:4179 backend/kvs1025_opt.c:892 #, no-c-format msgid "Software derotate" msgstr "" -#: backend/genesys/genesys.cpp:4138 backend/kvs1025_opt.c:894 +#: backend/genesys/genesys.cpp:4180 backend/kvs1025_opt.c:894 #, no-c-format msgid "Request driver to detect and correct 90 degree image rotation" msgstr "" -#: backend/genesys/genesys.cpp:4168 backend/pixma_sane_options.c:314 +#: backend/genesys/genesys.cpp:4210 backend/pixma/pixma_sane_options.c:314 #, no-c-format msgid "Extras" msgstr "Extra" -#: backend/genesys/genesys.cpp:4188 backend/pixma_sane_options.c:336 +#: backend/genesys/genesys.cpp:4230 backend/pixma/pixma_sane_options.c:336 #, no-c-format msgid "Dynamic threshold curve, from light to dark, normally 50-65" msgstr "" -#: backend/genesys/genesys.cpp:4197 -#, no-c-format -msgid "Disable dynamic lineart" -msgstr "" - -#: backend/genesys/genesys.cpp:4199 -#, no-c-format -msgid "" -"Disable use of a software adaptive algorithm to generate lineart relying " -"instead on hardware lineart." -msgstr "" - -#: backend/genesys/genesys.cpp:4215 +#: backend/genesys/genesys.cpp:4240 #, no-c-format msgid "Disable interpolation" msgstr "Disattiva interpolazione" -#: backend/genesys/genesys.cpp:4218 +#: backend/genesys/genesys.cpp:4243 #, no-c-format msgid "" "When using high resolutions where the horizontal resolution is smaller " @@ -3081,46 +3098,46 @@ msgstr "" "Quando si usano alte risoluzione con quella orizzontale minore della " "verticale, l'interpolazione orizzontale viene disabilitata." -#: backend/genesys/genesys.cpp:4227 +#: backend/genesys/genesys.cpp:4252 #, fuzzy, no-c-format msgid "Color filter" msgstr "Filtro colore" -#: backend/genesys/genesys.cpp:4230 +#: backend/genesys/genesys.cpp:4255 #, no-c-format msgid "When using gray or lineart this option selects the used color." msgstr "" "Quando si usano i grigi o il binario questa opzione seleziona il colore " "usato." -#: backend/genesys/genesys.cpp:4254 +#: backend/genesys/genesys.cpp:4279 #, fuzzy, no-c-format msgid "Calibration file" msgstr "Calibrazione" -#: backend/genesys/genesys.cpp:4255 +#: backend/genesys/genesys.cpp:4280 #, fuzzy, no-c-format msgid "Specify the calibration file to use" msgstr "Definire la modalità di calibrazione" -#: backend/genesys/genesys.cpp:4272 +#: backend/genesys/genesys.cpp:4297 #, fuzzy, no-c-format msgid "Calibration cache expiration time" msgstr "Cache per la calibrazione" -#: backend/genesys/genesys.cpp:4273 +#: backend/genesys/genesys.cpp:4298 #, no-c-format msgid "" "Time (in minutes) before a cached calibration expires. A value of 0 " "means cache is not used. A negative value means cache never expires." msgstr "" -#: backend/genesys/genesys.cpp:4283 +#: backend/genesys/genesys.cpp:4308 #, no-c-format msgid "Lamp off time" msgstr "Durata spegnimento lampada" -#: backend/genesys/genesys.cpp:4286 +#: backend/genesys/genesys.cpp:4311 #, no-c-format msgid "" "The lamp will be turned off after the given time (in minutes). A value " @@ -3129,104 +3146,109 @@ msgstr "" "La lampada verrà spenta allo scadere del tempo impostato (in minuti). Il " "valore 0 indica che la lampada non deve mai essere spenta." -#: backend/genesys/genesys.cpp:4296 +#: backend/genesys/genesys.cpp:4321 #, fuzzy, no-c-format msgid "Lamp off during scan" msgstr "Calibrazione granulosa" -#: backend/genesys/genesys.cpp:4297 +#: backend/genesys/genesys.cpp:4322 #, fuzzy, no-c-format msgid "The lamp will be turned off during scan. " msgstr "" "Numero di minuti prima che la lampada venga spenta dopo la scansione" -#: backend/genesys/genesys.cpp:4324 backend/genesys/genesys.cpp:4325 +#: backend/genesys/genesys.cpp:4349 backend/genesys/genesys.cpp:4350 #, fuzzy, no-c-format msgid "File button" msgstr "Attendi il tasto" -#: backend/genesys/genesys.cpp:4369 backend/genesys/genesys.cpp:4370 +#: backend/genesys/genesys.cpp:4394 backend/genesys/genesys.cpp:4395 #, no-c-format msgid "OCR button" msgstr "" -#: backend/genesys/genesys.cpp:4381 backend/genesys/genesys.cpp:4382 +#: backend/genesys/genesys.cpp:4406 backend/genesys/genesys.cpp:4407 #, fuzzy, no-c-format msgid "Power button" msgstr "Attendi il tasto" -#: backend/genesys/genesys.cpp:4393 backend/genesys/genesys.cpp:4394 +#: backend/genesys/genesys.cpp:4418 backend/genesys/genesys.cpp:4419 #, fuzzy, no-c-format msgid "Extra button" msgstr "Attendi il tasto" -#: backend/genesys/genesys.cpp:4405 backend/gt68xx.c:755 +#: backend/genesys/genesys.cpp:4430 backend/gt68xx.c:755 #, fuzzy, no-c-format msgid "Needs calibration" msgstr "Calibrazione granulosa" -#: backend/genesys/genesys.cpp:4406 backend/gt68xx.c:756 +#: backend/genesys/genesys.cpp:4431 backend/gt68xx.c:756 backend/p5.c:1928 #, fuzzy, no-c-format msgid "The scanner needs calibration for the current settings" msgstr "Forza la calibrazione dello scanner prima della scansione" -#: backend/genesys/genesys.cpp:4417 backend/gt68xx.c:780 -#: backend/gt68xx.c:781 backend/pixma_sane_options.c:226 -#: backend/plustek.c:1080 +#: backend/genesys/genesys.cpp:4442 backend/gt68xx.c:780 +#: backend/gt68xx.c:781 backend/p5.c:1937 backend/p5.c:1938 +#: backend/pixma/pixma_sane_options.c:226 backend/plustek.c:1080 #, no-c-format msgid "Buttons" msgstr "Pulsanti" -#: backend/genesys/genesys.cpp:4426 backend/gt68xx.c:787 -#: backend/hp5400_sane.c:392 backend/hp-option.h:97 backend/niash.c:726 -#: backend/plustek.c:941 +#: backend/genesys/genesys.cpp:4451 backend/gt68xx.c:787 +#: backend/hp-option.h:97 backend/hp5400_sane.c:392 backend/niash.c:726 +#: backend/p5.c:1945 backend/plustek.c:941 #, no-c-format msgid "Calibrate" msgstr "Calibrazione" -#: backend/genesys/genesys.cpp:4428 backend/gt68xx.c:789 +#: backend/genesys/genesys.cpp:4453 backend/gt68xx.c:789 backend/p5.c:1947 #, fuzzy, no-c-format msgid "Start calibration using special sheet" msgstr "Inizia la calibrazione." -#: backend/genesys/genesys.cpp:4440 backend/gt68xx.c:802 +#: backend/genesys/genesys.cpp:4465 backend/gt68xx.c:802 backend/p5.c:1958 #, fuzzy, no-c-format msgid "Clear calibration" msgstr "Calibrazione granulosa" -#: backend/genesys/genesys.cpp:4441 backend/gt68xx.c:803 +#: backend/genesys/genesys.cpp:4466 backend/gt68xx.c:803 backend/p5.c:1960 #, fuzzy, no-c-format msgid "Clear calibration cache" msgstr "Cache per la calibrazione" -#: backend/genesys/genesys.cpp:4451 +#: backend/genesys/genesys.cpp:4476 #, fuzzy, no-c-format msgid "Force calibration" msgstr "Calibrazione granulosa" -#: backend/genesys/genesys.cpp:4452 +#: backend/genesys/genesys.cpp:4477 #, no-c-format msgid "Force calibration ignoring all and any calibration caches" msgstr "" -#: backend/genesys/genesys.cpp:4462 +#: backend/genesys/genesys.cpp:4487 #, fuzzy, no-c-format msgid "Ignore internal offsets" msgstr "Scarto sul verde" -#: backend/genesys/genesys.cpp:4464 +#: backend/genesys/genesys.cpp:4489 #, no-c-format msgid "" "Acquires the image including the internal calibration areas of the " "scanner" msgstr "" -#: backend/gt68xx.c:149 backend/ma1509.c:108 backend/mustek.c:164 -#: backend/snapscan-options.c:87 backend/umax.c:182 +#: backend/genesys/genesys.h:79 backend/gt68xx.c:149 backend/ma1509.c:108 +#: backend/mustek.c:164 backend/snapscan-options.c:87 backend/umax.c:182 #, no-c-format msgid "Transparency Adapter" msgstr "Adattatore per trasparenza" +#: backend/genesys/genesys.h:80 +#, fuzzy, no-c-format +msgid "Transparency Adapter Infrared" +msgstr "Adattatore per trasparenza" + #: backend/gt68xx.c:470 #, no-c-format msgid "Gray mode color" @@ -3336,6 +3358,313 @@ msgstr "Valore gamma" msgid "Sets the gamma value of all channels." msgstr "Imposta il valore gamma per tutti i canali." +#: backend/hp-option.c:2987 +#, no-c-format +msgid "Advanced Options" +msgstr "Opzioni avanzate" + +#: backend/hp-option.c:3044 +#, no-c-format +msgid "Coarse" +msgstr "Granuloso" + +#: backend/hp-option.c:3045 +#, no-c-format +msgid "Fine" +msgstr "A grana fine" + +# Bayer è il nome della persona che ha inventato questa matrice per il +# dithering. +#: backend/hp-option.c:3046 +#, no-c-format +msgid "Bayer" +msgstr "Bayer" + +#: backend/hp-option.c:3049 backend/hp-option.c:3100 +#, no-c-format +msgid "Custom" +msgstr "Personalizzato" + +#: backend/hp-option.c:3090 backend/hp-option.c:3146 +#: backend/hp-option.c:3161 +#, no-c-format +msgid "Auto" +msgstr "Automatico" + +#: backend/hp-option.c:3091 +#, no-c-format +msgid "NTSC RGB" +msgstr "NTSC RGB" + +#: backend/hp-option.c:3092 +#, no-c-format +msgid "XPA RGB" +msgstr "XPA RGB" + +#: backend/hp-option.c:3093 +#, no-c-format +msgid "Pass-through" +msgstr "Passante" + +#: backend/hp-option.c:3094 +#, no-c-format +msgid "NTSC Gray" +msgstr "Grigio NTSC" + +#: backend/hp-option.c:3095 +#, no-c-format +msgid "XPA Gray" +msgstr "XPA Grigio" + +#: backend/hp-option.c:3147 +#, no-c-format +msgid "Slow" +msgstr "Lento" + +#: backend/hp-option.c:3148 backend/hp-option.c:3255 +#: backend/kvs40xx_opt.c:230 backend/matsushita.c:244 backend/mustek.c:149 +#: backend/plustek.c:234 backend/plustek_pp.c:203 backend/u12.c:155 +#, no-c-format +msgid "Normal" +msgstr "Normale" + +#: backend/hp-option.c:3149 +#, no-c-format +msgid "Fast" +msgstr "Veloce" + +#: backend/hp-option.c:3150 +#, no-c-format +msgid "Extra Fast" +msgstr "Extra veloce" + +#: backend/hp-option.c:3163 +#, no-c-format +msgid "2-pixel" +msgstr "2-pixel" + +#: backend/hp-option.c:3164 +#, no-c-format +msgid "4-pixel" +msgstr "4-pixel" + +#: backend/hp-option.c:3165 +#, no-c-format +msgid "8-pixel" +msgstr "8-pixel" + +#: backend/hp-option.c:3176 +#, no-c-format +msgid "Print" +msgstr "Stampa" + +#: backend/hp-option.c:3177 backend/hp3900_sane.c:427 +#: backend/hp3900_sane.c:1019 +#, no-c-format +msgid "Slide" +msgstr "Diapositiva" + +#: backend/hp-option.c:3178 +#, no-c-format +msgid "Film-strip" +msgstr "Pellicola" + +#: backend/hp-option.c:3256 backend/hp5590.c:93 +#, no-c-format +msgid "ADF" +msgstr "ADF" + +#: backend/hp-option.c:3257 +#, no-c-format +msgid "XPA" +msgstr "XPA" + +#: backend/hp-option.c:3331 backend/hp-option.c:3344 +#, no-c-format +msgid "Conditional" +msgstr "Condizionale" + +#: backend/hp-option.c:3417 +#, no-c-format +msgid "Experiment" +msgstr "Esperimento" + +#: backend/hp-option.h:60 +#, no-c-format +msgid "Sharpening" +msgstr "Nitidezza" + +#: backend/hp-option.h:61 +#, no-c-format +msgid "Set sharpening value." +msgstr "Imposta il valore di nitidezza." + +#: backend/hp-option.h:66 +#, no-c-format +msgid "Auto Threshold" +msgstr "Soglia automatica" + +#: backend/hp-option.h:68 +#, no-c-format +msgid "Enable automatic determination of threshold for line-art scans." +msgstr "" +"Abilita la valutazione automatica della soglia per la scansione binaria." + +#: backend/hp-option.h:74 +#, no-c-format +msgid "Select smoothing filter." +msgstr "Seleziona il filtro per l'ammorbidimento (smoothing)." + +#: backend/hp-option.h:79 +#, no-c-format +msgid "Unload media after scan" +msgstr "Espelle il supporto dopo la scansione" + +#: backend/hp-option.h:80 +#, no-c-format +msgid "Unloads the media after a scan." +msgstr "Estrae il supporto originale dopo aver effettuato la scansione." + +#: backend/hp-option.h:85 +#, no-c-format +msgid "Change document" +msgstr "Cambia il documento" + +#: backend/hp-option.h:86 +#, no-c-format +msgid "Change Document." +msgstr "Cambia il documento." + +#: backend/hp-option.h:91 +#, no-c-format +msgid "Unload" +msgstr "Espulsione" + +#: backend/hp-option.h:92 +#, no-c-format +msgid "Unload Document." +msgstr "Espelle il documento." + +#: backend/hp-option.h:98 +#, no-c-format +msgid "Start calibration process." +msgstr "Inizia la calibrazione." + +#: backend/hp-option.h:103 +#, no-c-format +msgid "Media" +msgstr "Supporto" + +#: backend/hp-option.h:104 +#, no-c-format +msgid "Set type of media." +msgstr "Imposta il tipo di supporto." + +#: backend/hp-option.h:109 +#, no-c-format +msgid "Exposure time" +msgstr "Tempo di esposizione" + +#: backend/hp-option.h:111 +#, no-c-format +msgid "" +"A longer exposure time lets the scanner collect more light. Suggested " +"use is 175% for prints, 150% for normal slides and \"Negative\" for " +"negative film. For dark (underexposed) images you can increase this " +"value." +msgstr "" +"Un maggiore tempo di esposizione permette allo scanner di raccogliere " +"più luce. I valori suggeriti sono 175% per le stampe, 150% per le " +"normali diapositive e \"Negativo\" per le pellicole. Per immagini scure " +"(sottoesposte) si può aumentare questo valore." + +#: backend/hp-option.h:119 backend/hp-option.h:126 +#, no-c-format +msgid "Color Matrix" +msgstr "Matrice del colore" + +#: backend/hp-option.h:121 +#, fuzzy, no-c-format +msgid "Set the scanner's color matrix." +msgstr "Imposta la matrice del colore." + +#: backend/hp-option.h:127 +#, no-c-format +msgid "Custom color matrix." +msgstr "Matrice personalizzata del colore." + +#: backend/hp-option.h:132 +#, no-c-format +msgid "Mono Color Matrix" +msgstr "Matrice del colore mono" + +#: backend/hp-option.h:133 +#, no-c-format +msgid "Custom color matrix for grayscale scans." +msgstr "Matrice personalizzata del colore per scansioni a scale di grigi." + +#: backend/hp-option.h:138 +#, no-c-format +msgid "Mirror horizontal" +msgstr "Specchio orizzontale" + +#: backend/hp-option.h:139 +#, no-c-format +msgid "Mirror image horizontally." +msgstr "Riflette l'immagine orizzontalmente." + +#: backend/hp-option.h:144 +#, no-c-format +msgid "Mirror vertical" +msgstr "Specchio verticale" + +#: backend/hp-option.h:145 +#, no-c-format +msgid "Mirror image vertically." +msgstr "Riflette l'immagine verticalmente." + +#: backend/hp-option.h:150 +#, no-c-format +msgid "Update options" +msgstr "Opzioni di aggiornamento" + +#: backend/hp-option.h:151 +#, no-c-format +msgid "Update options." +msgstr "Opzioni di aggiornamento." + +#: backend/hp-option.h:156 +#, no-c-format +msgid "8 bit output" +msgstr "uscita a 8 bit" + +#: backend/hp-option.h:158 +#, no-c-format +msgid "Use bit depth greater eight internally, but output only eight bits." +msgstr "Usa internamente più di 8 bit, ma produce solo 8 bit." + +#: backend/hp-option.h:164 +#, no-c-format +msgid "Front button wait" +msgstr "Attesa del bottone frontale" + +#: backend/hp-option.h:165 +#, no-c-format +msgid "Wait to scan for front-panel button push." +msgstr "" +"Viene attesa la pressione del bottone frontale prima di effettuare la " +"scansione." + +#: backend/hp-option.h:172 +#, no-c-format +msgid "Shut off lamp" +msgstr "Spegnimento della lampada" + +#: backend/hp-option.h:173 +#, no-c-format +msgid "Shut off scanner lamp." +msgstr "Spegne la lampada dello scanner." + #: backend/hp3500.c:1020 #, fuzzy, no-c-format msgid "Geometry Group" @@ -3346,12 +3675,6 @@ msgstr "Geometria" msgid "Scan Mode Group" msgstr "Modalità di scansione" -#: backend/hp3900_sane.c:427 backend/hp3900_sane.c:1019 -#: backend/hp-option.c:3177 -#, no-c-format -msgid "Slide" -msgstr "Diapositiva" - #: backend/hp3900_sane.c:1405 #, fuzzy, no-c-format msgid "Scanner model" @@ -3545,11 +3868,6 @@ msgstr "Accendi o spegni la lampada" msgid "Calibrates for black and white level." msgstr "Calibrare i livelli del bianco e nero" -#: backend/hp5590.c:93 backend/hp-option.c:3256 -#, no-c-format -msgid "ADF" -msgstr "ADF" - #: backend/hp5590.c:95 #, fuzzy, no-c-format msgid "TMA Slides" @@ -3660,302 +3978,6 @@ msgid "" "r*65536+256*g+b or gray value (default=violet or gray)" msgstr "" -#: backend/hp-option.c:2987 -#, no-c-format -msgid "Advanced Options" -msgstr "Opzioni avanzate" - -#: backend/hp-option.c:3044 -#, no-c-format -msgid "Coarse" -msgstr "Granuloso" - -#: backend/hp-option.c:3045 -#, no-c-format -msgid "Fine" -msgstr "A grana fine" - -# Bayer è il nome della persona che ha inventato questa matrice per il -# dithering. -#: backend/hp-option.c:3046 -#, no-c-format -msgid "Bayer" -msgstr "Bayer" - -#: backend/hp-option.c:3049 backend/hp-option.c:3100 -#, no-c-format -msgid "Custom" -msgstr "Personalizzato" - -#: backend/hp-option.c:3090 backend/hp-option.c:3146 -#: backend/hp-option.c:3161 -#, no-c-format -msgid "Auto" -msgstr "Automatico" - -#: backend/hp-option.c:3091 -#, no-c-format -msgid "NTSC RGB" -msgstr "NTSC RGB" - -#: backend/hp-option.c:3092 -#, no-c-format -msgid "XPA RGB" -msgstr "XPA RGB" - -#: backend/hp-option.c:3093 -#, no-c-format -msgid "Pass-through" -msgstr "Passante" - -#: backend/hp-option.c:3094 -#, no-c-format -msgid "NTSC Gray" -msgstr "Grigio NTSC" - -#: backend/hp-option.c:3095 -#, no-c-format -msgid "XPA Gray" -msgstr "XPA Grigio" - -#: backend/hp-option.c:3147 -#, no-c-format -msgid "Slow" -msgstr "Lento" - -#: backend/hp-option.c:3148 backend/hp-option.c:3255 -#: backend/kvs40xx_opt.c:230 backend/matsushita.c:244 backend/mustek.c:149 -#: backend/plustek.c:234 backend/plustek_pp.c:203 backend/u12.c:155 -#, no-c-format -msgid "Normal" -msgstr "Normale" - -#: backend/hp-option.c:3149 -#, no-c-format -msgid "Fast" -msgstr "Veloce" - -#: backend/hp-option.c:3150 -#, no-c-format -msgid "Extra Fast" -msgstr "Extra veloce" - -#: backend/hp-option.c:3163 -#, no-c-format -msgid "2-pixel" -msgstr "2-pixel" - -#: backend/hp-option.c:3164 -#, no-c-format -msgid "4-pixel" -msgstr "4-pixel" - -#: backend/hp-option.c:3165 -#, no-c-format -msgid "8-pixel" -msgstr "8-pixel" - -#: backend/hp-option.c:3176 -#, no-c-format -msgid "Print" -msgstr "Stampa" - -#: backend/hp-option.c:3178 -#, no-c-format -msgid "Film-strip" -msgstr "Pellicola" - -#: backend/hp-option.c:3257 -#, no-c-format -msgid "XPA" -msgstr "XPA" - -#: backend/hp-option.c:3331 backend/hp-option.c:3344 -#, no-c-format -msgid "Conditional" -msgstr "Condizionale" - -#: backend/hp-option.c:3417 -#, no-c-format -msgid "Experiment" -msgstr "Esperimento" - -#: backend/hp-option.h:60 -#, no-c-format -msgid "Sharpening" -msgstr "Nitidezza" - -#: backend/hp-option.h:61 -#, no-c-format -msgid "Set sharpening value." -msgstr "Imposta il valore di nitidezza." - -#: backend/hp-option.h:66 -#, no-c-format -msgid "Auto Threshold" -msgstr "Soglia automatica" - -#: backend/hp-option.h:68 -#, no-c-format -msgid "Enable automatic determination of threshold for line-art scans." -msgstr "" -"Abilita la valutazione automatica della soglia per la scansione binaria." - -#: backend/hp-option.h:74 -#, no-c-format -msgid "Select smoothing filter." -msgstr "Seleziona il filtro per l'ammorbidimento (smoothing)." - -#: backend/hp-option.h:79 -#, no-c-format -msgid "Unload media after scan" -msgstr "Espelle il supporto dopo la scansione" - -#: backend/hp-option.h:80 -#, no-c-format -msgid "Unloads the media after a scan." -msgstr "Estrae il supporto originale dopo aver effettuato la scansione." - -#: backend/hp-option.h:85 -#, no-c-format -msgid "Change document" -msgstr "Cambia il documento" - -#: backend/hp-option.h:86 -#, no-c-format -msgid "Change Document." -msgstr "Cambia il documento." - -#: backend/hp-option.h:91 -#, no-c-format -msgid "Unload" -msgstr "Espulsione" - -#: backend/hp-option.h:92 -#, no-c-format -msgid "Unload Document." -msgstr "Espelle il documento." - -#: backend/hp-option.h:98 -#, no-c-format -msgid "Start calibration process." -msgstr "Inizia la calibrazione." - -#: backend/hp-option.h:103 -#, no-c-format -msgid "Media" -msgstr "Supporto" - -#: backend/hp-option.h:104 -#, no-c-format -msgid "Set type of media." -msgstr "Imposta il tipo di supporto." - -#: backend/hp-option.h:109 -#, no-c-format -msgid "Exposure time" -msgstr "Tempo di esposizione" - -#: backend/hp-option.h:111 -#, no-c-format -msgid "" -"A longer exposure time lets the scanner collect more light. Suggested " -"use is 175% for prints, 150% for normal slides and \"Negative\" for " -"negative film. For dark (underexposed) images you can increase this " -"value." -msgstr "" -"Un maggiore tempo di esposizione permette allo scanner di raccogliere " -"più luce. I valori suggeriti sono 175% per le stampe, 150% per le " -"normali diapositive e \"Negativo\" per le pellicole. Per immagini scure " -"(sottoesposte) si può aumentare questo valore." - -#: backend/hp-option.h:119 backend/hp-option.h:126 -#, no-c-format -msgid "Color Matrix" -msgstr "Matrice del colore" - -#: backend/hp-option.h:121 -#, fuzzy, no-c-format -msgid "Set the scanner's color matrix." -msgstr "Imposta la matrice del colore." - -#: backend/hp-option.h:127 -#, no-c-format -msgid "Custom color matrix." -msgstr "Matrice personalizzata del colore." - -#: backend/hp-option.h:132 -#, no-c-format -msgid "Mono Color Matrix" -msgstr "Matrice del colore mono" - -#: backend/hp-option.h:133 -#, no-c-format -msgid "Custom color matrix for grayscale scans." -msgstr "Matrice personalizzata del colore per scansioni a scale di grigi." - -#: backend/hp-option.h:138 -#, no-c-format -msgid "Mirror horizontal" -msgstr "Specchio orizzontale" - -#: backend/hp-option.h:139 -#, no-c-format -msgid "Mirror image horizontally." -msgstr "Riflette l'immagine orizzontalmente." - -#: backend/hp-option.h:144 -#, no-c-format -msgid "Mirror vertical" -msgstr "Specchio verticale" - -#: backend/hp-option.h:145 -#, no-c-format -msgid "Mirror image vertically." -msgstr "Riflette l'immagine verticalmente." - -#: backend/hp-option.h:150 -#, no-c-format -msgid "Update options" -msgstr "Opzioni di aggiornamento" - -#: backend/hp-option.h:151 -#, no-c-format -msgid "Update options." -msgstr "Opzioni di aggiornamento." - -#: backend/hp-option.h:156 -#, no-c-format -msgid "8 bit output" -msgstr "uscita a 8 bit" - -#: backend/hp-option.h:158 -#, no-c-format -msgid "Use bit depth greater eight internally, but output only eight bits." -msgstr "Usa internamente più di 8 bit, ma produce solo 8 bit." - -#: backend/hp-option.h:164 -#, no-c-format -msgid "Front button wait" -msgstr "Attesa del bottone frontale" - -#: backend/hp-option.h:165 -#, no-c-format -msgid "Wait to scan for front-panel button push." -msgstr "" -"Viene attesa la pressione del bottone frontale prima di effettuare la " -"scansione." - -#: backend/hp-option.h:172 -#, no-c-format -msgid "Shut off lamp" -msgstr "Spegnimento della lampada" - -#: backend/hp-option.h:173 -#, no-c-format -msgid "Shut off scanner lamp." -msgstr "Spegne la lampada dello scanner." - #: backend/kvs1025.h:51 backend/kvs20xx_opt.c:295 backend/kvs40xx_opt.c:516 #: backend/matsushita.h:219 #, no-c-format @@ -4054,7 +4076,7 @@ msgid "single" msgstr "" #: backend/kvs1025_opt.c:73 backend/kvs20xx.c:462 backend/kvs20xx_opt.c:56 -#: backend/kvs40xx.c:704 backend/kvs40xx.c:722 backend/kvs40xx_opt.c:102 +#: backend/kvs40xx.c:705 backend/kvs40xx.c:723 backend/kvs40xx_opt.c:102 #: backend/kvs40xx_opt.c:1087 #, fuzzy, no-c-format msgid "continuous" @@ -4358,7 +4380,7 @@ msgstr "Imposta l'accentuazione dell'immagine" #: backend/kvs1025_opt.c:807 backend/kvs1025_opt.c:808 #: backend/matsushita.c:1300 backend/matsushita.c:1301 -#: backend/pixma_sane_options.c:112 +#: backend/pixma/pixma_sane_options.c:112 #, no-c-format msgid "Gamma" msgstr "Gamma" @@ -4648,52 +4670,52 @@ msgstr "8x8 Bayer" msgid "8x8 Vertical Line" msgstr "8x8 linea verticale" -#: backend/lexmark.c:273 backend/umax_pp.c:711 +#: backend/lexmark.c:273 backend/umax_pp.c:705 #, no-c-format msgid "Gain" msgstr "Guadagno" -#: backend/lexmark.c:274 backend/umax_pp.c:712 +#: backend/lexmark.c:274 backend/umax_pp.c:706 #, no-c-format msgid "Color channels gain settings" msgstr "Regolazione del guadagno sui canali di colore" -#: backend/lexmark.c:283 backend/umax_pp.c:719 +#: backend/lexmark.c:283 backend/umax_pp.c:713 #, no-c-format msgid "Gray gain" msgstr "Guadagno sul grigio" -#: backend/lexmark.c:284 backend/umax_pp.c:720 +#: backend/lexmark.c:284 backend/umax_pp.c:714 #, no-c-format msgid "Sets gray channel gain" msgstr "Imposta il guadagno sul canale grigio" -#: backend/lexmark.c:297 backend/plustek.c:1001 backend/umax_pp.c:731 +#: backend/lexmark.c:297 backend/plustek.c:1001 backend/umax_pp.c:725 #, no-c-format msgid "Red gain" msgstr "Guadagno sul rosso" -#: backend/lexmark.c:298 backend/umax_pp.c:732 +#: backend/lexmark.c:298 backend/umax_pp.c:726 #, no-c-format msgid "Sets red channel gain" msgstr "Imposta il guadagno sul canale rosso" -#: backend/lexmark.c:311 backend/plustek.c:1017 backend/umax_pp.c:743 +#: backend/lexmark.c:311 backend/plustek.c:1017 backend/umax_pp.c:737 #, no-c-format msgid "Green gain" msgstr "Guadagno sul verde" -#: backend/lexmark.c:312 backend/umax_pp.c:744 +#: backend/lexmark.c:312 backend/umax_pp.c:738 #, no-c-format msgid "Sets green channel gain" msgstr "Imposta il guadagno sul canale verde" -#: backend/lexmark.c:325 backend/plustek.c:1033 backend/umax_pp.c:755 +#: backend/lexmark.c:325 backend/plustek.c:1033 backend/umax_pp.c:749 #, no-c-format msgid "Blue gain" msgstr "Guadagno sul blu" -#: backend/lexmark.c:326 backend/umax_pp.c:756 +#: backend/lexmark.c:326 backend/umax_pp.c:750 #, no-c-format msgid "Sets blue channel gain" msgstr "Imposta il guadagno sul canale blu" @@ -4779,7 +4801,7 @@ msgstr "Pagina singola" msgid "All pages" msgstr "Tutte le pagine" -#: backend/matsushita.c:1034 backend/plustek.c:1333 +#: backend/matsushita.c:1034 backend/p5_device.c:8 backend/plustek.c:1333 #, no-c-format msgid "sheetfed scanner" msgstr "Scanner con alimentatore automatico dei fogli" @@ -5288,39 +5310,44 @@ msgstr "" "Preriscalda fino a che la luminisità della lampada sia costante invece " "di attendere 40 secondi." -#: backend/pixma.c:397 +#: backend/p5.c:1926 +#, fuzzy, no-c-format +msgid "Need calibration" +msgstr "Calibrazione granulosa" + +#: backend/pixma/pixma.c:397 #, fuzzy, no-c-format msgid "Negative color" msgstr "Pellicola negativa" -#: backend/pixma.c:402 +#: backend/pixma/pixma.c:402 #, fuzzy, no-c-format msgid "Negative gray" msgstr "Negativo" -#: backend/pixma.c:415 +#: backend/pixma/pixma.c:415 #, fuzzy, no-c-format msgid "48 bits color" msgstr "Colore ad alta qualità" -#: backend/pixma.c:420 +#: backend/pixma/pixma.c:420 #, no-c-format msgid "16 bits gray" msgstr "" -#: backend/pixma_sane_options.c:84 +#: backend/pixma/pixma_sane_options.c:84 #, no-c-format msgid "" "Selects the scan source (such as a document-feeder). Set source before " "mode and resolution. Resets mode and resolution to auto values." msgstr "" -#: backend/pixma_sane_options.c:98 +#: backend/pixma/pixma_sane_options.c:98 #, no-c-format msgid "Button-controlled scan" msgstr "Scansione controllata da pulsante" -#: backend/pixma_sane_options.c:99 +#: backend/pixma/pixma_sane_options.c:99 #, no-c-format msgid "" "When enabled, scan process will not start immediately. To proceed, press " @@ -5331,37 +5358,37 @@ msgstr "" "procedere premere il pulsante \"SCAN\" (per ML150) oppure \"COLOR\" (per " "altri modelli). Per annullare premere il pulsante \"GRAY\"." -#: backend/pixma_sane_options.c:232 +#: backend/pixma/pixma_sane_options.c:232 #, no-c-format msgid "Update button state" msgstr "Aggiorna lo stato del pulsante" -#: backend/pixma_sane_options.c:244 +#: backend/pixma/pixma_sane_options.c:244 #, no-c-format msgid "Button 1" msgstr "Pulsante 1" -#: backend/pixma_sane_options.c:258 +#: backend/pixma/pixma_sane_options.c:258 #, no-c-format msgid "Button 2" msgstr "Pulsante 2" -#: backend/pixma_sane_options.c:272 +#: backend/pixma/pixma_sane_options.c:272 #, no-c-format msgid "Type of original to scan" msgstr "" -#: backend/pixma_sane_options.c:286 +#: backend/pixma/pixma_sane_options.c:286 #, no-c-format msgid "Target operation type" msgstr "" -#: backend/pixma_sane_options.c:348 +#: backend/pixma/pixma_sane_options.c:348 #, no-c-format msgid "ADF Waiting Time" msgstr "" -#: backend/pixma_sane_options.c:349 +#: backend/pixma/pixma_sane_options.c:349 #, no-c-format msgid "" "When set, the scanner waits upto the specified time in seconds for a new " @@ -5453,7 +5480,7 @@ msgstr "Frontend analogico" msgid "Red gain value of the AFE" msgstr "Valore del guadagno sul rosso per AFE (Analog FrontEnd)" -#: backend/plustek.c:1009 backend/umax_pp.c:788 +#: backend/plustek.c:1009 backend/umax_pp.c:782 #, no-c-format msgid "Red offset" msgstr "Scarto sul rosso" @@ -5732,7 +5759,7 @@ msgstr "" msgid "This option reflects the status of a scanner button." msgstr "Queste opzioni riflettono lo stato dei pulsanti dello scanner." -#: backend/rts8891.c:2840 backend/umax.c:5795 backend/umax_pp.c:635 +#: backend/rts8891.c:2840 backend/umax.c:5795 backend/umax_pp.c:629 #, no-c-format msgid "Lamp on" msgstr "Lampada accesa" @@ -5742,12 +5769,12 @@ msgstr "Lampada accesa" msgid "Turn on scanner lamp" msgstr "Accendere la lampada" -#: backend/rts8891.c:2851 backend/umax1220u.c:248 backend/umax.c:5812 +#: backend/rts8891.c:2851 backend/umax.c:5812 backend/umax1220u.c:248 #, no-c-format msgid "Lamp off" msgstr "Lampada spenta" -#: backend/rts8891.c:2852 backend/umax1220u.c:249 backend/umax.c:5813 +#: backend/rts8891.c:2852 backend/umax.c:5813 backend/umax1220u.c:249 #, no-c-format msgid "Turn off scanner lamp" msgstr "Spegnere la lampada" @@ -6555,52 +6582,52 @@ msgstr "Modalità di calibrazione" msgid "Define calibration mode" msgstr "Definire la modalità di calibrazione" -#: backend/umax_pp.c:636 +#: backend/umax_pp.c:630 #, no-c-format msgid "Sets lamp on/off" msgstr "Commuta lo stato della lampada" -#: backend/umax_pp.c:645 +#: backend/umax_pp.c:639 #, no-c-format msgid "UTA on" msgstr "Adattatore per trasparenze acceso" -#: backend/umax_pp.c:646 +#: backend/umax_pp.c:640 #, no-c-format msgid "Sets UTA on/off" msgstr "Accendere/spegnere l'adattatore per trasparenze" -#: backend/umax_pp.c:767 +#: backend/umax_pp.c:761 #, no-c-format msgid "Offset" msgstr "Scarto" -#: backend/umax_pp.c:769 +#: backend/umax_pp.c:763 #, no-c-format msgid "Color channels offset settings" msgstr "Impostazione dello scarto sui canali del colore" -#: backend/umax_pp.c:776 +#: backend/umax_pp.c:770 #, no-c-format msgid "Gray offset" msgstr "Scarto sul grigio" -#: backend/umax_pp.c:777 +#: backend/umax_pp.c:771 #, no-c-format msgid "Sets gray channel offset" msgstr "Imposta lo scarto sul grigio" -#: backend/umax_pp.c:789 +#: backend/umax_pp.c:783 #, no-c-format msgid "Sets red channel offset" msgstr "Imposta lo scarto sul rosso" -#: backend/umax_pp.c:801 +#: backend/umax_pp.c:795 #, no-c-format msgid "Sets green channel offset" msgstr "Imposta lo scarto sul verde" -#: backend/umax_pp.c:813 +#: backend/umax_pp.c:807 #, no-c-format msgid "Sets blue channel offset" msgstr "Imposta lo scarto sul blu" diff --git a/po/ja.po b/po/ja.po index 7c64688cb..1a8a3f125 100644 --- a/po/ja.po +++ b/po/ja.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: sane-backends 1.0.20\n" "Report-Msgid-Bugs-To: sane-devel@alioth-lists.debian.net\n" -"POT-Creation-Date: 2019-10-12 17:41+0300\n" +"POT-Creation-Date: 2020-01-12 07:09+0000\n" "PO-Revision-Date: 2009-10-31 10:30+0900\n" "Last-Translator: Hiroshi Miura \n" "Language-Team: Japanese \n" @@ -30,23 +30,23 @@ msgid "Standard" msgstr "標準" #: include/sane/saneopts.h:157 backend/artec_eplus48u.c:2884 -#: backend/epson.c:3298 backend/epson2.c:1290 -#: backend/genesys/genesys.cpp:3976 backend/gt68xx.c:696 -#: backend/hp3500.c:1019 backend/hp-option.c:3300 backend/kvs1025_opt.c:639 +#: backend/epson.c:3298 backend/epson2.c:1290 backend/epsonds.c:677 +#: backend/genesys/genesys.cpp:4034 backend/gt68xx.c:696 +#: backend/hp-option.c:3300 backend/hp3500.c:1019 backend/kvs1025_opt.c:639 #: backend/kvs20xx_opt.c:285 backend/kvs40xx_opt.c:506 backend/leo.c:823 #: backend/lexmark.c:199 backend/ma1509.c:551 backend/matsushita.c:1135 #: backend/microtek2.h:599 backend/mustek.c:4373 backend/mustek_usb.c:301 -#: backend/mustek_usb2.c:465 backend/pixma_sane_options.c:160 +#: backend/mustek_usb2.c:465 backend/pixma/pixma_sane_options.c:160 #: backend/plustek.c:808 backend/plustek_pp.c:747 backend/sceptre.c:702 #: backend/snapscan-options.c:550 backend/teco1.c:1095 backend/teco2.c:1910 #: backend/teco3.c:920 backend/test.c:647 backend/u12.c:546 -#: backend/umax.c:5176 backend/umax_pp.c:576 +#: backend/umax.c:5176 backend/umax_pp.c:570 #, no-c-format msgid "Geometry" msgstr "配置" #: include/sane/saneopts.h:158 backend/artec_eplus48u.c:2805 -#: backend/canon.c:1493 backend/genesys/genesys.cpp:4035 +#: backend/canon.c:1493 backend/genesys/genesys.cpp:4077 #: backend/gt68xx.c:665 backend/hp-option.c:2956 backend/kvs1025_opt.c:703 #: backend/leo.c:871 backend/ma1509.c:599 backend/matsushita.c:1189 #: backend/microtek2.h:600 backend/mustek.c:4421 backend/mustek_usb.c:349 @@ -54,7 +54,7 @@ msgstr "配置" #: backend/plustek_pp.c:793 backend/sceptre.c:750 #: backend/snapscan-options.c:617 backend/stv680.c:1067 #: backend/teco1.c:1143 backend/teco2.c:1958 backend/teco3.c:968 -#: backend/u12.c:592 backend/umax.c:5226 backend/umax_pp.c:625 +#: backend/u12.c:592 backend/umax.c:5226 backend/umax_pp.c:619 #, no-c-format msgid "Enhancement" msgstr "増強" @@ -88,7 +88,7 @@ msgid "Bit depth" msgstr "ビット深度" #: include/sane/saneopts.h:165 backend/canon.c:1140 backend/leo.c:781 -#: backend/pixma_sane_options.c:47 +#: backend/pixma/pixma_sane_options.c:47 #, no-c-format msgid "Scan mode" msgstr "走査モード" @@ -129,7 +129,7 @@ msgid "Bottom-right y" msgstr "右下のy" #: include/sane/saneopts.h:173 backend/canon.c:1216 -#: backend/pixma_sane_options.c:300 +#: backend/pixma/pixma_sane_options.c:300 #, no-c-format msgid "Scan resolution" msgstr "走査解像度" @@ -284,7 +284,7 @@ msgstr "ファイル名" msgid "Halftone pattern size" msgstr "ハーフトーンパターンの大きさ" -#: include/sane/saneopts.h:204 backend/fujitsu.c:3233 +#: include/sane/saneopts.h:204 backend/fujitsu.c:3237 #, no-c-format msgid "Halftone pattern" msgstr "ハーフトーンのパターン" @@ -294,10 +294,10 @@ msgstr "ハーフトーンのパターン" msgid "Bind X and Y resolution" msgstr "XとY解像度を拘束" -#: include/sane/saneopts.h:206 backend/hp3900_sane.c:428 -#: backend/hp3900_sane.c:1021 backend/hp3900_sane.c:1421 -#: backend/hp-option.c:3238 backend/mustek_usb2.c:121 backend/plustek.c:236 -#: backend/plustek_pp.c:205 backend/u12.c:157 +#: include/sane/saneopts.h:206 backend/hp-option.c:3238 +#: backend/hp3900_sane.c:428 backend/hp3900_sane.c:1021 +#: backend/hp3900_sane.c:1421 backend/mustek_usb2.c:121 +#: backend/plustek.c:236 backend/plustek_pp.c:205 backend/u12.c:157 #, no-c-format msgid "Negative" msgstr "ネガ" @@ -1007,78 +1007,38 @@ msgid "" "Duplex scan provides a scan of the front and back side of the document" msgstr "両面スキャンでは、文書の表面と裏面の走査が行われます。" -#: backend/canon630u.c:159 +#: backend/canon-sane.c:674 backend/canon.c:171 #, no-c-format -msgid "Calibrate Scanner" -msgstr "スキャナーの校正" +msgid "Correction according to transparency ratio" +msgstr "透過率に従って、補正されます。" -#: backend/canon630u.c:160 +#: backend/canon-sane.c:680 backend/canon.c:170 #, no-c-format -msgid "Force scanner calibration before scan" -msgstr "走査前にスキャナの校正を強制する" +msgid "Correction according to film type" +msgstr "フィルムの種類に従った補正" -#: backend/canon630u.c:259 backend/umax1220u.c:208 -#, no-c-format -msgid "Grayscale scan" -msgstr "グレースケール走査" - -#: backend/canon630u.c:260 backend/umax1220u.c:209 -#, no-c-format -msgid "Do a grayscale rather than color scan" -msgstr "カラーの代わりに、グレースケールで走査します。" - -#: backend/canon630u.c:306 -#, no-c-format -msgid "Analog Gain" -msgstr "アナログ利得" - -#: backend/canon630u.c:307 -#, no-c-format -msgid "Increase or decrease the analog gain of the CCD array" -msgstr "CCD配列のアナログ利得を増加または減少" - -#: backend/canon630u.c:347 backend/epson.h:68 backend/epson2.h:67 -#, no-c-format -msgid "Gamma Correction" -msgstr "ガンマ校正" - -#: backend/canon630u.c:348 -#, no-c-format -msgid "Selects the gamma corrected transfer curve" -msgstr "ガンマ補正された変換カーブを選択" - -#: backend/canon.c:149 backend/canon-sane.c:1318 -#, no-c-format -msgid "Raw" -msgstr "無加工" - -#: backend/canon.c:157 backend/canon-sane.c:732 backend/canon-sane.c:940 +#: backend/canon-sane.c:732 backend/canon-sane.c:940 #: backend/canon-sane.c:1076 backend/canon-sane.c:1314 -#: backend/canon-sane.c:1494 backend/canon-sane.c:1643 +#: backend/canon-sane.c:1494 backend/canon-sane.c:1643 backend/canon.c:157 #, no-c-format msgid "Fine color" msgstr "高精彩" +#: backend/canon-sane.c:776 backend/canon.c:176 +#, no-c-format +msgid "Negatives" +msgstr "ネガ画像" + +#: backend/canon-sane.c:1318 backend/canon.c:149 +#, no-c-format +msgid "Raw" +msgstr "無加工" + #: backend/canon.c:169 #, no-c-format msgid "No transparency correction" msgstr "透明度補正は行わない" -#: backend/canon.c:170 backend/canon-sane.c:680 -#, no-c-format -msgid "Correction according to film type" -msgstr "フィルムの種類に従った補正" - -#: backend/canon.c:171 backend/canon-sane.c:674 -#, no-c-format -msgid "Correction according to transparency ratio" -msgstr "透過率に従って、補正されます。" - -#: backend/canon.c:176 backend/canon-sane.c:776 -#, no-c-format -msgid "Negatives" -msgstr "ネガ画像" - #: backend/canon.c:176 #, no-c-format msgid "Slides" @@ -1502,94 +1462,137 @@ msgstr "フィルムの種類を選択" msgid "Select the film type" msgstr "フィルムの種類を選ぶ" -#: backend/canon_dr.c:411 backend/epjitsu.c:233 backend/epson.c:501 -#: backend/epson2.c:115 backend/fujitsu.c:675 backend/gt68xx.c:148 +#: backend/canon630u.c:159 +#, no-c-format +msgid "Calibrate Scanner" +msgstr "スキャナーの校正" + +#: backend/canon630u.c:160 +#, no-c-format +msgid "Force scanner calibration before scan" +msgstr "走査前にスキャナの校正を強制する" + +#: backend/canon630u.c:259 backend/umax1220u.c:208 +#, no-c-format +msgid "Grayscale scan" +msgstr "グレースケール走査" + +#: backend/canon630u.c:260 backend/umax1220u.c:209 +#, no-c-format +msgid "Do a grayscale rather than color scan" +msgstr "カラーの代わりに、グレースケールで走査します。" + +#: backend/canon630u.c:306 +#, no-c-format +msgid "Analog Gain" +msgstr "アナログ利得" + +#: backend/canon630u.c:307 +#, no-c-format +msgid "Increase or decrease the analog gain of the CCD array" +msgstr "CCD配列のアナログ利得を増加または減少" + +#: backend/canon630u.c:347 backend/epson.h:68 backend/epson2.h:67 +#, no-c-format +msgid "Gamma Correction" +msgstr "ガンマ校正" + +#: backend/canon630u.c:348 +#, no-c-format +msgid "Selects the gamma corrected transfer curve" +msgstr "ガンマ補正された変換カーブを選択" + +#: backend/canon_dr.c:413 backend/epjitsu.c:233 backend/epson.c:501 +#: backend/epson2-ops.c:101 backend/epson2.c:115 backend/epsonds-ops.c:32 +#: backend/epsonds.c:95 backend/epsonds.h:62 backend/fujitsu.c:677 +#: backend/genesys/genesys.h:78 backend/gt68xx.c:148 #: backend/hp3900_sane.c:418 backend/hp3900_sane.c:427 -#: backend/hp3900_sane.c:1017 backend/hp5590.c:92 backend/ma1509.c:108 -#: backend/magicolor.c:181 backend/mustek.c:156 backend/mustek.c:160 -#: backend/mustek.c:164 backend/pixma.c:920 backend/pixma_sane_options.c:92 -#: backend/snapscan-options.c:86 backend/test.c:192 backend/umax.c:181 +#: backend/hp3900_sane.c:1017 backend/hp5590.c:92 backend/kodakaio.c:617 +#: backend/ma1509.c:108 backend/magicolor.c:181 backend/mustek.c:156 +#: backend/mustek.c:160 backend/mustek.c:164 backend/pixma/pixma.c:920 +#: backend/pixma/pixma_sane_options.c:92 backend/snapscan-options.c:86 +#: backend/test.c:192 backend/umax.c:181 #, no-c-format msgid "Flatbed" msgstr "フラットベッド" -#: backend/canon_dr.c:412 backend/epjitsu.c:234 backend/fujitsu.c:676 +#: backend/canon_dr.c:414 backend/epjitsu.c:234 backend/fujitsu.c:678 #: backend/kodak.c:140 #, no-c-format msgid "ADF Front" msgstr "ADF表面" -#: backend/canon_dr.c:413 backend/epjitsu.c:235 backend/fujitsu.c:677 +#: backend/canon_dr.c:415 backend/epjitsu.c:235 backend/fujitsu.c:679 #: backend/kodak.c:141 #, no-c-format msgid "ADF Back" msgstr "ADF裏面" -#: backend/canon_dr.c:414 backend/epjitsu.c:236 backend/fujitsu.c:678 -#: backend/hp5590.c:94 backend/kodak.c:142 backend/pixma.c:931 +#: backend/canon_dr.c:416 backend/epjitsu.c:236 backend/fujitsu.c:680 +#: backend/hp5590.c:94 backend/kodak.c:142 backend/pixma/pixma.c:931 #, no-c-format msgid "ADF Duplex" msgstr "ADF両面" -#: backend/canon_dr.c:415 +#: backend/canon_dr.c:417 #, fuzzy, no-c-format msgid "Card Front" msgstr "ADF表面" -#: backend/canon_dr.c:416 +#: backend/canon_dr.c:418 #, fuzzy, no-c-format msgid "Card Back" msgstr "ADF裏面" -#: backend/canon_dr.c:417 +#: backend/canon_dr.c:419 #, fuzzy, no-c-format msgid "Card Duplex" msgstr "両面" -#: backend/canon_dr.c:424 backend/epson.c:599 backend/epson.c:3096 -#: backend/epson2.c:201 backend/fujitsu.c:695 -#: backend/genesys/genesys.cpp:99 backend/genesys/genesys.cpp:106 +#: backend/canon_dr.c:426 backend/epson.c:599 backend/epson.c:3096 +#: backend/epson2.c:201 backend/fujitsu.c:697 +#: backend/genesys/genesys.cpp:120 backend/genesys/genesys.cpp:127 #: backend/gt68xx_low.h:136 backend/hp-option.c:3096 #, no-c-format msgid "Red" msgstr "赤" -#: backend/canon_dr.c:425 backend/epson.c:600 backend/epson.c:3092 -#: backend/epson2.c:202 backend/fujitsu.c:696 -#: backend/genesys/genesys.cpp:100 backend/genesys/genesys.cpp:107 +#: backend/canon_dr.c:427 backend/epson.c:600 backend/epson.c:3092 +#: backend/epson2.c:202 backend/fujitsu.c:698 +#: backend/genesys/genesys.cpp:121 backend/genesys/genesys.cpp:128 #: backend/gt68xx_low.h:137 backend/hp-option.c:3097 #, no-c-format msgid "Green" msgstr "緑" -#: backend/canon_dr.c:426 backend/epson.c:601 backend/epson.c:3100 -#: backend/epson2.c:203 backend/fujitsu.c:697 -#: backend/genesys/genesys.cpp:101 backend/genesys/genesys.cpp:108 +#: backend/canon_dr.c:428 backend/epson.c:601 backend/epson.c:3100 +#: backend/epson2.c:203 backend/fujitsu.c:699 +#: backend/genesys/genesys.cpp:122 backend/genesys/genesys.cpp:129 #: backend/gt68xx_low.h:138 backend/hp-option.c:3098 #, no-c-format msgid "Blue" msgstr "青" -#: backend/canon_dr.c:427 +#: backend/canon_dr.c:429 #, fuzzy, no-c-format msgid "Enhance Red" msgstr "増強" -#: backend/canon_dr.c:428 +#: backend/canon_dr.c:430 #, fuzzy, no-c-format msgid "Enhance Green" msgstr "増強" -#: backend/canon_dr.c:429 +#: backend/canon_dr.c:431 #, fuzzy, no-c-format msgid "Enhance Blue" msgstr "増強" -#: backend/canon_dr.c:431 backend/epson.c:556 backend/epson.c:564 +#: backend/canon_dr.c:433 backend/epson.c:556 backend/epson.c:564 #: backend/epson.c:576 backend/epson.c:598 backend/epson2.c:165 #: backend/epson2.c:173 backend/epson2.c:185 backend/epson2.c:200 -#: backend/epson2.c:214 backend/fujitsu.c:701 -#: backend/genesys/genesys.cpp:109 backend/leo.c:109 +#: backend/epson2.c:214 backend/fujitsu.c:703 +#: backend/genesys/genesys.cpp:130 backend/leo.c:109 #: backend/matsushita.c:138 backend/matsushita.c:159 #: backend/matsushita.c:191 backend/matsushita.c:213 #: backend/snapscan-options.c:91 @@ -1597,42 +1600,46 @@ msgstr "増強" msgid "None" msgstr " なし" -#: backend/canon_dr.c:432 backend/fujitsu.c:702 +#: backend/canon_dr.c:434 backend/fujitsu.c:704 #, no-c-format msgid "JPEG" msgstr "" -#: backend/canon_dr.c:2477 backend/fujitsu.c:4113 -#: backend/genesys/genesys.cpp:4126 backend/kvs1025_opt.c:910 +#: backend/canon_dr.c:2479 backend/fujitsu.c:4117 +#: backend/genesys/genesys.cpp:4168 backend/kvs1025_opt.c:910 #, no-c-format msgid "Software blank skip percentage" msgstr "" -#: backend/canon_dr.c:2478 backend/fujitsu.c:4114 +#: backend/canon_dr.c:2480 backend/fujitsu.c:4118 #, no-c-format msgid "Request driver to discard pages with low percentage of dark pixels" msgstr "" -#: backend/epson.c:491 backend/epson2.c:108 backend/magicolor.c:174 +#: backend/epson.c:491 backend/epson2.c:108 backend/epsonds.c:88 +#: backend/kodakaio.c:611 backend/magicolor.c:174 #, no-c-format msgid "Simplex" msgstr "片面" -#: backend/epson.c:492 backend/epson2.c:109 backend/kvs1025.h:50 -#: backend/kvs20xx_opt.c:204 backend/kvs40xx_opt.c:353 -#: backend/magicolor.c:175 backend/matsushita.h:218 +#: backend/epson.c:492 backend/epson2.c:109 backend/epsonds.c:89 +#: backend/kodakaio.c:612 backend/kvs1025.h:50 backend/kvs20xx_opt.c:204 +#: backend/kvs40xx_opt.c:353 backend/magicolor.c:175 +#: backend/matsushita.h:218 #, no-c-format msgid "Duplex" msgstr "両面" -#: backend/epson.c:502 backend/epson2.c:116 backend/pixma.c:937 +#: backend/epson.c:502 backend/epson2-ops.c:102 backend/epson2.c:116 +#: backend/epsonds-ops.c:33 backend/epsonds.h:63 backend/pixma/pixma.c:937 #, no-c-format msgid "Transparency Unit" msgstr "透過ユニット" -#: backend/epson.c:503 backend/epson2.c:118 backend/magicolor.c:182 -#: backend/mustek.c:160 backend/pixma.c:925 backend/test.c:192 -#: backend/umax.c:183 +#: backend/epson.c:503 backend/epson2-ops.c:104 backend/epson2.c:118 +#: backend/epsonds-ops.c:34 backend/epsonds.c:96 backend/epsonds.h:64 +#: backend/kodakaio.c:618 backend/magicolor.c:182 backend/mustek.c:160 +#: backend/pixma/pixma.c:925 backend/test.c:192 backend/umax.c:183 #, no-c-format msgid "Automatic Document Feeder" msgstr "自動原稿送り装置" @@ -1744,7 +1751,7 @@ msgstr "インクジェットプリンタ" msgid "CRT monitors" msgstr "CRTモニター" -#: backend/epson.c:656 backend/epson2.c:254 backend/fujitsu.c:685 +#: backend/epson.c:656 backend/epson2.c:254 backend/fujitsu.c:687 #: backend/hp-option.c:3229 backend/test.c:143 #, no-c-format msgid "Default" @@ -1808,8 +1815,8 @@ msgstr "A4" msgid "Max" msgstr "最大" -#: backend/epson.c:2813 backend/epson2.c:976 -#: backend/genesys/genesys.cpp:3893 backend/gt68xx.c:451 +#: backend/epson.c:2813 backend/epson2.c:976 backend/epsonds.c:629 +#: backend/genesys/genesys.cpp:3965 backend/gt68xx.c:451 #: backend/hp-option.c:2917 backend/kvs1025_opt.c:521 #: backend/kvs20xx_opt.c:171 backend/kvs40xx_opt.c:320 backend/ma1509.c:501 #: backend/matsushita.c:1084 backend/microtek2.h:598 backend/mustek.c:4215 @@ -1982,17 +1989,17 @@ msgstr "スキャナーが使うべきズーム値を定義" msgid "Quick format" msgstr "簡易フォーマット" -#: backend/epson.c:3360 backend/epson2.c:1340 +#: backend/epson.c:3360 backend/epson2.c:1340 backend/epsonds.c:726 #, no-c-format msgid "Optional equipment" msgstr "光学装置" -#: backend/epson.c:3431 backend/epson2.c:1393 +#: backend/epson.c:3431 backend/epson2.c:1393 backend/epsonds.c:742 #, no-c-format msgid "Eject" msgstr "排出" -#: backend/epson.c:3432 backend/epson2.c:1394 +#: backend/epson.c:3432 backend/epson2.c:1394 backend/epsonds.c:743 #, no-c-format msgid "Eject the sheet in the ADF" msgstr "ADFの書類を排出する" @@ -2007,12 +2014,14 @@ msgstr "自動排出" msgid "Eject document after scanning" msgstr "走査後、書類を排出" -#: backend/epson.c:3457 backend/epson2.c:1416 backend/magicolor.c:2420 +#: backend/epson.c:3457 backend/epson2.c:1416 backend/epsonds.c:758 +#: backend/kodakaio.c:2855 backend/magicolor.c:2420 #, no-c-format msgid "ADF Mode" msgstr "ADFモード" -#: backend/epson.c:3459 backend/epson2.c:1418 backend/magicolor.c:2422 +#: backend/epson.c:3459 backend/epson2.c:1418 backend/epsonds.c:760 +#: backend/kodakaio.c:2857 backend/magicolor.c:2422 #, no-c-format msgid "Selects the ADF mode (simplex/duplex)" msgstr "ADFモードの選択(片面、両面)" @@ -2059,16 +2068,16 @@ msgstr "" "スキャンコマンドを送信後、実際に走査処理が始まる、スキャナーのボタンが押" "されるのをまつ。" -#: backend/epson2.c:102 backend/pixma.c:409 -#, no-c-format -msgid "Infrared" -msgstr "" - -#: backend/epson2.c:117 +#: backend/epson2-ops.c:103 backend/epson2.c:117 #, no-c-format msgid "TPU8x10" msgstr "" +#: backend/epson2.c:102 backend/pixma/pixma.c:409 +#, no-c-format +msgid "Infrared" +msgstr "" + #: backend/epson2.c:136 #, no-c-format msgid "Positive Slide" @@ -2089,492 +2098,512 @@ msgstr "" msgid "User defined CCT profile" msgstr "ユーザ定義" -#: backend/fujitsu.c:686 backend/hp-option.c:3330 backend/hp-option.c:3343 +#: backend/epsonds.c:750 +#, no-c-format +msgid "Load" +msgstr "" + +#: backend/epsonds.c:751 +#, fuzzy, no-c-format +msgid "Load a sheet in the ADF" +msgstr "ADFの書類を排出する" + +#: backend/epsonds.c:771 +#, fuzzy, no-c-format +msgid "ADF Skew Correction" +msgstr "補正をしない" + +#: backend/epsonds.c:773 +#, fuzzy, no-c-format +msgid "Enables ADF skew correction" +msgstr "ガンマ補正を無効" + +#: backend/fujitsu.c:688 backend/hp-option.c:3330 backend/hp-option.c:3343 #, no-c-format msgid "On" msgstr "オン" -#: backend/fujitsu.c:687 backend/hp-option.c:3162 backend/hp-option.c:3329 +#: backend/fujitsu.c:689 backend/hp-option.c:3162 backend/hp-option.c:3329 #: backend/hp-option.c:3342 #, no-c-format msgid "Off" msgstr "オフ" -#: backend/fujitsu.c:689 +#: backend/fujitsu.c:691 #, no-c-format msgid "DTC" msgstr "" -#: backend/fujitsu.c:690 +#: backend/fujitsu.c:692 #, no-c-format msgid "SDTC" msgstr "" -#: backend/fujitsu.c:692 backend/teco1.c:1152 backend/teco1.c:1153 +#: backend/fujitsu.c:694 backend/teco1.c:1152 backend/teco1.c:1153 #: backend/teco2.c:1967 backend/teco2.c:1968 backend/teco3.c:977 #: backend/teco3.c:978 #, no-c-format msgid "Dither" msgstr "ディザー" -#: backend/fujitsu.c:693 +#: backend/fujitsu.c:695 #, fuzzy, no-c-format msgid "Diffusion" msgstr "エラー拡散" -#: backend/fujitsu.c:698 +#: backend/fujitsu.c:700 #, fuzzy, no-c-format msgid "White" msgstr "ホワイトレベル" -#: backend/fujitsu.c:699 +#: backend/fujitsu.c:701 #, fuzzy, no-c-format msgid "Black" msgstr "黒レベル" -#: backend/fujitsu.c:704 +#: backend/fujitsu.c:706 #, fuzzy, no-c-format msgid "Continue" msgstr "条件付き" -#: backend/fujitsu.c:705 +#: backend/fujitsu.c:707 #, no-c-format msgid "Stop" msgstr "" -#: backend/fujitsu.c:707 +#: backend/fujitsu.c:709 #, no-c-format msgid "10mm" msgstr "" -#: backend/fujitsu.c:708 +#: backend/fujitsu.c:710 #, no-c-format msgid "15mm" msgstr "" -#: backend/fujitsu.c:709 +#: backend/fujitsu.c:711 #, no-c-format msgid "20mm" msgstr "" -#: backend/fujitsu.c:711 backend/hp-option.c:3048 +#: backend/fujitsu.c:713 backend/hp-option.c:3048 #, no-c-format msgid "Horizontal" msgstr "水平の" -#: backend/fujitsu.c:712 +#: backend/fujitsu.c:714 #, fuzzy, no-c-format msgid "Horizontal bold" msgstr "水平の" -#: backend/fujitsu.c:713 +#: backend/fujitsu.c:715 #, fuzzy, no-c-format msgid "Horizontal narrow" msgstr "水平の" -#: backend/fujitsu.c:714 backend/hp-option.c:3047 +#: backend/fujitsu.c:716 backend/hp-option.c:3047 #, no-c-format msgid "Vertical" msgstr "垂直の" -#: backend/fujitsu.c:715 +#: backend/fujitsu.c:717 #, fuzzy, no-c-format msgid "Vertical bold" msgstr "垂直の" -#: backend/fujitsu.c:717 +#: backend/fujitsu.c:719 #, no-c-format msgid "Top to bottom" msgstr "" -#: backend/fujitsu.c:718 +#: backend/fujitsu.c:720 #, no-c-format msgid "Bottom to top" msgstr "" -#: backend/fujitsu.c:720 +#: backend/fujitsu.c:722 #, fuzzy, no-c-format msgid "Front" msgstr "ADF表面" -#: backend/fujitsu.c:721 +#: backend/fujitsu.c:723 #, fuzzy, no-c-format msgid "Back" msgstr "ADF裏面" -#: backend/fujitsu.c:3144 backend/pixma_sane_options.c:145 +#: backend/fujitsu.c:3148 backend/pixma/pixma_sane_options.c:145 #, no-c-format msgid "Gamma function exponent" msgstr "" -#: backend/fujitsu.c:3145 backend/pixma_sane_options.c:146 +#: backend/fujitsu.c:3149 backend/pixma/pixma_sane_options.c:146 #, no-c-format msgid "Changes intensity of midtones" msgstr "" -#: backend/fujitsu.c:3194 +#: backend/fujitsu.c:3198 #, no-c-format msgid "RIF" msgstr "" -#: backend/fujitsu.c:3195 +#: backend/fujitsu.c:3199 #, no-c-format msgid "Reverse image format" msgstr "" -#: backend/fujitsu.c:3212 +#: backend/fujitsu.c:3216 #, fuzzy, no-c-format msgid "Halftone type" msgstr "網版" -#: backend/fujitsu.c:3213 +#: backend/fujitsu.c:3217 #, no-c-format msgid "Control type of halftone filter" msgstr "" -#: backend/fujitsu.c:3234 +#: backend/fujitsu.c:3238 #, no-c-format msgid "Control pattern of halftone filter" msgstr "" -#: backend/fujitsu.c:3256 +#: backend/fujitsu.c:3260 #, no-c-format msgid "Outline" msgstr "" -#: backend/fujitsu.c:3257 +#: backend/fujitsu.c:3261 #, fuzzy, no-c-format msgid "Perform outline extraction" msgstr "較正の実行" -#: backend/fujitsu.c:3268 +#: backend/fujitsu.c:3272 #, fuzzy, no-c-format msgid "Emphasis" msgstr "画像強調" -#: backend/fujitsu.c:3269 +#: backend/fujitsu.c:3273 #, no-c-format msgid "Negative to smooth or positive to sharpen image" msgstr "" -#: backend/fujitsu.c:3287 +#: backend/fujitsu.c:3291 #, fuzzy, no-c-format msgid "Separation" msgstr "彩度" -#: backend/fujitsu.c:3288 +#: backend/fujitsu.c:3292 #, fuzzy, no-c-format msgid "Enable automatic separation of image and text" msgstr "線画の走査で閾値の自動判定を有効にする" -#: backend/fujitsu.c:3299 +#: backend/fujitsu.c:3303 #, fuzzy, no-c-format msgid "Mirroring" msgstr "鏡像画像" -#: backend/fujitsu.c:3300 +#: backend/fujitsu.c:3304 #, fuzzy, no-c-format msgid "Reflect output image horizontally" msgstr "水平に鏡像をとる。" -#: backend/fujitsu.c:3317 +#: backend/fujitsu.c:3321 #, fuzzy, no-c-format msgid "White level follower" msgstr "ホワイトレベルの青値" -#: backend/fujitsu.c:3318 +#: backend/fujitsu.c:3322 #, fuzzy, no-c-format msgid "Control white level follower" msgstr "赤レベルの制御" -#: backend/fujitsu.c:3336 +#: backend/fujitsu.c:3340 #, fuzzy, no-c-format msgid "BP filter" msgstr "カラーフィルタ" -#: backend/fujitsu.c:3337 +#: backend/fujitsu.c:3341 #, no-c-format msgid "Improves quality of high resolution ball-point pen text" msgstr "" -#: backend/fujitsu.c:3353 backend/hp-option.h:73 +#: backend/fujitsu.c:3357 backend/hp-option.h:73 #, no-c-format msgid "Smoothing" msgstr "スムージング" -#: backend/fujitsu.c:3354 +#: backend/fujitsu.c:3358 #, no-c-format msgid "Enable smoothing for improved OCR" msgstr "" -#: backend/fujitsu.c:3370 +#: backend/fujitsu.c:3374 #, fuzzy, no-c-format msgid "Gamma curve" msgstr "ガンマ値" -#: backend/fujitsu.c:3371 +#: backend/fujitsu.c:3375 #, no-c-format msgid "Gamma curve, from light to dark, but upper two may not work" msgstr "" -#: backend/fujitsu.c:3393 backend/genesys/genesys.cpp:4187 -#: backend/pixma_sane_options.c:335 +#: backend/fujitsu.c:3397 backend/genesys/genesys.cpp:4229 +#: backend/pixma/pixma_sane_options.c:335 #, fuzzy, no-c-format msgid "Threshold curve" msgstr "閾値" -#: backend/fujitsu.c:3394 +#: backend/fujitsu.c:3398 #, no-c-format msgid "" "Threshold curve, from light to dark, but upper two may not be linear" msgstr "" -#: backend/fujitsu.c:3416 +#: backend/fujitsu.c:3420 #, fuzzy, no-c-format msgid "Threshold white" msgstr "閾値" -#: backend/fujitsu.c:3417 +#: backend/fujitsu.c:3421 #, no-c-format msgid "Set pixels equal to threshold to white instead of black" msgstr "" -#: backend/fujitsu.c:3433 backend/fujitsu.c:3434 +#: backend/fujitsu.c:3437 backend/fujitsu.c:3438 #, fuzzy, no-c-format msgid "Noise removal" msgstr "ノイズ除去" -#: backend/fujitsu.c:3450 +#: backend/fujitsu.c:3454 #, no-c-format msgid "Matrix 5x5" msgstr "" -#: backend/fujitsu.c:3451 +#: backend/fujitsu.c:3455 #, no-c-format msgid "Remove 5 pixel square noise" msgstr "" -#: backend/fujitsu.c:3467 +#: backend/fujitsu.c:3471 #, no-c-format msgid "Matrix 4x4" msgstr "" -#: backend/fujitsu.c:3468 +#: backend/fujitsu.c:3472 #, no-c-format msgid "Remove 4 pixel square noise" msgstr "" -#: backend/fujitsu.c:3484 +#: backend/fujitsu.c:3488 #, no-c-format msgid "Matrix 3x3" msgstr "" -#: backend/fujitsu.c:3485 +#: backend/fujitsu.c:3489 #, no-c-format msgid "Remove 3 pixel square noise" msgstr "" -#: backend/fujitsu.c:3501 +#: backend/fujitsu.c:3505 #, no-c-format msgid "Matrix 2x2" msgstr "" -#: backend/fujitsu.c:3502 +#: backend/fujitsu.c:3506 #, no-c-format msgid "Remove 2 pixel square noise" msgstr "" -#: backend/fujitsu.c:3521 +#: backend/fujitsu.c:3525 #, no-c-format msgid "Variance" msgstr "" -#: backend/fujitsu.c:3522 +#: backend/fujitsu.c:3526 #, no-c-format msgid "Set SDTC variance rate (sensitivity), 0 equals 127" msgstr "" -#: backend/fujitsu.c:3555 +#: backend/fujitsu.c:3559 #, fuzzy, no-c-format msgid "Auto width detection" msgstr "補正をしない" -#: backend/fujitsu.c:3556 +#: backend/fujitsu.c:3560 #, no-c-format msgid "Scanner detects paper sides. May reduce scanning speed." msgstr "" -#: backend/fujitsu.c:3573 +#: backend/fujitsu.c:3577 #, fuzzy, no-c-format msgid "Auto length detection" msgstr "補正をしない" -#: backend/fujitsu.c:3574 +#: backend/fujitsu.c:3578 #, no-c-format msgid "Scanner detects paper lower edge. May confuse some frontends." msgstr "" -#: backend/fujitsu.c:3600 +#: backend/fujitsu.c:3604 #, no-c-format msgid "Compression" msgstr "" -#: backend/fujitsu.c:3601 +#: backend/fujitsu.c:3605 #, no-c-format msgid "Enable compressed data. May crash your front-end program" msgstr "" -#: backend/fujitsu.c:3621 +#: backend/fujitsu.c:3625 #, no-c-format msgid "Compression argument" msgstr "" -#: backend/fujitsu.c:3622 +#: backend/fujitsu.c:3626 #, no-c-format msgid "" "Level of JPEG compression. 1 is small file, 7 is large file. 0 (default) " "is same as 4" msgstr "" -#: backend/fujitsu.c:3652 +#: backend/fujitsu.c:3656 #, no-c-format msgid "DF action" msgstr "" -#: backend/fujitsu.c:3653 +#: backend/fujitsu.c:3657 #, no-c-format msgid "Action following double feed error" msgstr "" -#: backend/fujitsu.c:3669 +#: backend/fujitsu.c:3673 #, no-c-format msgid "DF skew" msgstr "" -#: backend/fujitsu.c:3670 +#: backend/fujitsu.c:3674 #, no-c-format msgid "Enable double feed error due to skew" msgstr "" -#: backend/fujitsu.c:3688 +#: backend/fujitsu.c:3692 #, no-c-format msgid "DF thickness" msgstr "" -#: backend/fujitsu.c:3689 +#: backend/fujitsu.c:3693 #, no-c-format msgid "Enable double feed error due to paper thickness" msgstr "" -#: backend/fujitsu.c:3707 +#: backend/fujitsu.c:3711 #, no-c-format msgid "DF length" msgstr "" -#: backend/fujitsu.c:3708 +#: backend/fujitsu.c:3712 #, no-c-format msgid "Enable double feed error due to paper length" msgstr "" -#: backend/fujitsu.c:3731 +#: backend/fujitsu.c:3735 #, no-c-format msgid "DF length difference" msgstr "" -#: backend/fujitsu.c:3732 +#: backend/fujitsu.c:3736 #, no-c-format msgid "Difference in page length to trigger double feed error" msgstr "" -#: backend/fujitsu.c:3755 +#: backend/fujitsu.c:3759 #, fuzzy, no-c-format msgid "DF recovery mode" msgstr "ADFのカバーが開いています" -#: backend/fujitsu.c:3756 +#: backend/fujitsu.c:3760 #, no-c-format msgid "Request scanner to reverse feed on paper jam" msgstr "" -#: backend/fujitsu.c:3775 +#: backend/fujitsu.c:3779 #, no-c-format msgid "Paper protection" msgstr "" -#: backend/fujitsu.c:3776 +#: backend/fujitsu.c:3780 #, no-c-format msgid "Request scanner to predict jams in the ADF" msgstr "" -#: backend/fujitsu.c:3795 +#: backend/fujitsu.c:3799 #, fuzzy, no-c-format msgid "Advanced paper protection" msgstr "上級オプション" -#: backend/fujitsu.c:3796 +#: backend/fujitsu.c:3800 #, no-c-format msgid "Request scanner to predict jams in the ADF using improved sensors" msgstr "" -#: backend/fujitsu.c:3815 +#: backend/fujitsu.c:3819 #, fuzzy, no-c-format msgid "Staple detection" msgstr "補正をしない" -#: backend/fujitsu.c:3816 +#: backend/fujitsu.c:3820 #, no-c-format msgid "Request scanner to detect jams in the ADF caused by staples" msgstr "" -#: backend/fujitsu.c:3835 +#: backend/fujitsu.c:3839 #, no-c-format msgid "Background color" msgstr "" -#: backend/fujitsu.c:3836 +#: backend/fujitsu.c:3840 #, no-c-format msgid "" "Set color of background for scans. May conflict with overscan option" msgstr "" -#: backend/fujitsu.c:3856 +#: backend/fujitsu.c:3860 #, fuzzy, no-c-format msgid "Dropout color" msgstr "取り出し口" -#: backend/fujitsu.c:3857 +#: backend/fujitsu.c:3861 #, no-c-format msgid "" "One-pass scanners use only one color during gray or binary scanning, " "useful for colored paper or ink" msgstr "" -#: backend/fujitsu.c:3880 +#: backend/fujitsu.c:3884 #, fuzzy, no-c-format msgid "Buffer mode" msgstr "フィーダーモード" -#: backend/fujitsu.c:3881 +#: backend/fujitsu.c:3885 #, no-c-format msgid "Request scanner to read pages quickly from ADF into internal memory" msgstr "" -#: backend/fujitsu.c:3900 +#: backend/fujitsu.c:3904 #, no-c-format msgid "Prepick" msgstr "" -#: backend/fujitsu.c:3901 +#: backend/fujitsu.c:3905 #, no-c-format msgid "Request scanner to grab next page from ADF" msgstr "" -#: backend/fujitsu.c:3920 +#: backend/fujitsu.c:3924 #, no-c-format msgid "Overscan" msgstr "" -#: backend/fujitsu.c:3921 +#: backend/fujitsu.c:3925 #, no-c-format msgid "" "Collect a few mm of background on top side of scan, before paper enters " @@ -2582,65 +2611,65 @@ msgid "" "collection on remaining sides. May conflict with bgcolor option" msgstr "" -#: backend/fujitsu.c:3939 +#: backend/fujitsu.c:3943 #, no-c-format msgid "Sleep timer" msgstr "" -#: backend/fujitsu.c:3940 +#: backend/fujitsu.c:3944 #, no-c-format msgid "" "Time in minutes until the internal power supply switches to sleep mode" msgstr "" -#: backend/fujitsu.c:3958 +#: backend/fujitsu.c:3962 #, fuzzy, no-c-format msgid "Off timer" msgstr "ランプをオフにする時間" -#: backend/fujitsu.c:3959 +#: backend/fujitsu.c:3963 #, no-c-format msgid "" "Time in minutes until the internal power supply switches the scanner " "off. Will be rounded to nearest 15 minutes. Zero means never power off." msgstr "" -#: backend/fujitsu.c:3977 +#: backend/fujitsu.c:3981 #, fuzzy, no-c-format msgid "Duplex offset" msgstr "赤オフセット" -#: backend/fujitsu.c:3978 +#: backend/fujitsu.c:3982 #, no-c-format msgid "Adjust front/back offset" msgstr "" -#: backend/fujitsu.c:3995 backend/plustek.c:1025 backend/umax_pp.c:800 +#: backend/fujitsu.c:3999 backend/plustek.c:1025 backend/umax_pp.c:794 #, no-c-format msgid "Green offset" msgstr "緑オフセット" -#: backend/fujitsu.c:3996 +#: backend/fujitsu.c:4000 #, fuzzy, no-c-format msgid "Adjust green/red offset" msgstr "緑オフセット" -#: backend/fujitsu.c:4013 backend/plustek.c:1041 backend/umax_pp.c:812 +#: backend/fujitsu.c:4017 backend/plustek.c:1041 backend/umax_pp.c:806 #, no-c-format msgid "Blue offset" msgstr "" -#: backend/fujitsu.c:4014 +#: backend/fujitsu.c:4018 #, no-c-format msgid "Adjust blue/red offset" msgstr "" -#: backend/fujitsu.c:4027 +#: backend/fujitsu.c:4031 #, fuzzy, no-c-format msgid "Low Memory" msgstr "メモリ不足" -#: backend/fujitsu.c:4028 +#: backend/fujitsu.c:4032 #, no-c-format msgid "" "Limit driver memory usage for use in embedded systems. Causes some " @@ -2649,374 +2678,362 @@ msgid "" "only be used with custom front-end software." msgstr "" -#: backend/fujitsu.c:4043 +#: backend/fujitsu.c:4047 #, fuzzy, no-c-format msgid "Duplex side" msgstr "両面スキャン" -#: backend/fujitsu.c:4044 +#: backend/fujitsu.c:4048 #, no-c-format msgid "" "Tells which side (0=front, 1=back) of a duplex scan the next call to " "sane_read will return." msgstr "" -#: backend/fujitsu.c:4055 +#: backend/fujitsu.c:4059 #, no-c-format msgid "Hardware deskew and crop" msgstr "" -#: backend/fujitsu.c:4056 +#: backend/fujitsu.c:4060 #, no-c-format msgid "Request scanner to rotate and crop pages digitally." msgstr "" -#: backend/fujitsu.c:4067 backend/kvs1025_opt.c:871 +#: backend/fujitsu.c:4071 backend/kvs1025_opt.c:871 #, no-c-format msgid "Software deskew" msgstr "" -#: backend/fujitsu.c:4068 +#: backend/fujitsu.c:4072 #, no-c-format msgid "Request driver to rotate skewed pages digitally." msgstr "" -#: backend/fujitsu.c:4080 backend/kvs1025_opt.c:880 +#: backend/fujitsu.c:4084 backend/kvs1025_opt.c:880 #, no-c-format msgid "Software despeckle diameter" msgstr "" -#: backend/fujitsu.c:4081 +#: backend/fujitsu.c:4085 #, no-c-format msgid "Maximum diameter of lone dots to remove from scan." msgstr "" -#: backend/fujitsu.c:4100 backend/genesys/genesys.cpp:4117 +#: backend/fujitsu.c:4104 backend/genesys/genesys.cpp:4159 #, no-c-format msgid "Software crop" msgstr "" -#: backend/fujitsu.c:4101 +#: backend/fujitsu.c:4105 #, no-c-format msgid "Request driver to remove border from pages digitally." msgstr "" -#: backend/fujitsu.c:4130 +#: backend/fujitsu.c:4134 #, no-c-format msgid "Halt on Cancel" msgstr "" -#: backend/fujitsu.c:4131 +#: backend/fujitsu.c:4135 #, no-c-format msgid "" "Request driver to halt the paper feed instead of eject during a cancel." msgstr "" -#: backend/fujitsu.c:4142 +#: backend/fujitsu.c:4146 #, fuzzy, no-c-format msgid "Endorser Options" msgstr "上級オプション" -#: backend/fujitsu.c:4143 +#: backend/fujitsu.c:4147 #, no-c-format msgid "Controls for endorser unit" msgstr "" -#: backend/fujitsu.c:4154 +#: backend/fujitsu.c:4158 #, no-c-format msgid "Endorser" msgstr "" -#: backend/fujitsu.c:4155 +#: backend/fujitsu.c:4159 #, no-c-format msgid "Enable endorser unit" msgstr "" -#: backend/fujitsu.c:4170 +#: backend/fujitsu.c:4174 #, no-c-format msgid "Endorser bits" msgstr "" -#: backend/fujitsu.c:4171 +#: backend/fujitsu.c:4175 #, no-c-format msgid "Determines maximum endorser counter value." msgstr "" -#: backend/fujitsu.c:4196 +#: backend/fujitsu.c:4200 #, no-c-format msgid "Endorser value" msgstr "" -#: backend/fujitsu.c:4197 +#: backend/fujitsu.c:4201 #, no-c-format msgid "Initial endorser counter value." msgstr "" -#: backend/fujitsu.c:4220 +#: backend/fujitsu.c:4224 #, no-c-format msgid "Endorser step" msgstr "" -#: backend/fujitsu.c:4221 +#: backend/fujitsu.c:4225 #, no-c-format msgid "Change endorser counter value by this much for each page." msgstr "" -#: backend/fujitsu.c:4244 +#: backend/fujitsu.c:4248 #, no-c-format msgid "Endorser Y" msgstr "" -#: backend/fujitsu.c:4245 +#: backend/fujitsu.c:4249 #, no-c-format msgid "Endorser print offset from top of paper." msgstr "" -#: backend/fujitsu.c:4270 +#: backend/fujitsu.c:4274 #, no-c-format msgid "Endorser font" msgstr "" -#: backend/fujitsu.c:4271 +#: backend/fujitsu.c:4275 #, no-c-format msgid "Endorser printing font." msgstr "" -#: backend/fujitsu.c:4300 +#: backend/fujitsu.c:4304 #, fuzzy, no-c-format msgid "Endorser direction" msgstr "ノイズ除去" -#: backend/fujitsu.c:4301 +#: backend/fujitsu.c:4305 #, no-c-format msgid "Endorser printing direction." msgstr "" -#: backend/fujitsu.c:4325 +#: backend/fujitsu.c:4329 #, no-c-format msgid "Endorser side" msgstr "" -#: backend/fujitsu.c:4326 +#: backend/fujitsu.c:4330 #, no-c-format msgid "Endorser printing side, requires hardware support to change" msgstr "" -#: backend/fujitsu.c:4351 +#: backend/fujitsu.c:4355 #, no-c-format msgid "Endorser string" msgstr "" -#: backend/fujitsu.c:4352 +#: backend/fujitsu.c:4356 #, no-c-format msgid "" "Endorser alphanumeric print format. %05ud or %08ud at the end will be " "replaced by counter value." msgstr "" -#: backend/fujitsu.c:4379 +#: backend/fujitsu.c:4383 #, no-c-format msgid "Top edge" msgstr "" -#: backend/fujitsu.c:4380 +#: backend/fujitsu.c:4384 #, no-c-format msgid "Paper is pulled partly into ADF" msgstr "" -#: backend/fujitsu.c:4391 +#: backend/fujitsu.c:4395 #, fuzzy, no-c-format msgid "A3 paper" msgstr "紙から" -#: backend/fujitsu.c:4392 +#: backend/fujitsu.c:4396 #, no-c-format msgid "A3 paper detected" msgstr "" -#: backend/fujitsu.c:4403 +#: backend/fujitsu.c:4407 #, fuzzy, no-c-format msgid "B4 paper" msgstr "紙から" -#: backend/fujitsu.c:4404 +#: backend/fujitsu.c:4408 #, no-c-format msgid "B4 paper detected" msgstr "" -#: backend/fujitsu.c:4415 +#: backend/fujitsu.c:4419 #, fuzzy, no-c-format msgid "A4 paper" msgstr "紙から" -#: backend/fujitsu.c:4416 +#: backend/fujitsu.c:4420 #, no-c-format msgid "A4 paper detected" msgstr "" -#: backend/fujitsu.c:4427 +#: backend/fujitsu.c:4431 #, fuzzy, no-c-format msgid "B5 paper" msgstr "紙から" -#: backend/fujitsu.c:4428 +#: backend/fujitsu.c:4432 #, no-c-format msgid "B5 paper detected" msgstr "" -#: backend/fujitsu.c:4451 +#: backend/fujitsu.c:4455 #, no-c-format msgid "OMR or DF" msgstr "" -#: backend/fujitsu.c:4452 +#: backend/fujitsu.c:4456 #, no-c-format msgid "OMR or double feed detected" msgstr "" -#: backend/fujitsu.c:4475 +#: backend/fujitsu.c:4479 #, no-c-format msgid "Power saving" msgstr "" -#: backend/fujitsu.c:4476 +#: backend/fujitsu.c:4480 #, fuzzy, no-c-format msgid "Scanner in power saving mode" msgstr "スキャナーのカバーが開いています" -#: backend/fujitsu.c:4499 +#: backend/fujitsu.c:4503 #, fuzzy, no-c-format msgid "Manual feed" msgstr "手動焦点位置" -#: backend/fujitsu.c:4500 +#: backend/fujitsu.c:4504 #, fuzzy, no-c-format msgid "Manual feed selected" msgstr "手動焦点位置" -#: backend/fujitsu.c:4523 +#: backend/fujitsu.c:4527 #, no-c-format msgid "Function" msgstr "" -#: backend/fujitsu.c:4524 +#: backend/fujitsu.c:4528 #, no-c-format msgid "Function character on screen" msgstr "" -#: backend/fujitsu.c:4535 +#: backend/fujitsu.c:4539 #, no-c-format msgid "Ink low" msgstr "" -#: backend/fujitsu.c:4536 +#: backend/fujitsu.c:4540 #, no-c-format msgid "Imprinter ink running low" msgstr "" -#: backend/fujitsu.c:4547 +#: backend/fujitsu.c:4551 #, no-c-format msgid "Double feed" msgstr "" -#: backend/fujitsu.c:4548 +#: backend/fujitsu.c:4552 #, no-c-format msgid "Double feed detected" msgstr "" -#: backend/fujitsu.c:4559 +#: backend/fujitsu.c:4563 #, no-c-format msgid "Error code" msgstr "" -#: backend/fujitsu.c:4560 +#: backend/fujitsu.c:4564 #, fuzzy, no-c-format msgid "Hardware error code" msgstr "ハードウエアチェックエラー" -#: backend/fujitsu.c:4571 +#: backend/fujitsu.c:4575 #, no-c-format msgid "Skew angle" msgstr "" -#: backend/fujitsu.c:4572 +#: backend/fujitsu.c:4576 #, no-c-format msgid "Requires black background for scanning" msgstr "" -#: backend/fujitsu.c:4583 +#: backend/fujitsu.c:4587 #, no-c-format msgid "Ink remaining" msgstr "" -#: backend/fujitsu.c:4584 +#: backend/fujitsu.c:4588 #, fuzzy, no-c-format msgid "Imprinter ink level" msgstr "ホワイトレベル" -#: backend/fujitsu.c:4595 +#: backend/fujitsu.c:4599 #, fuzzy, no-c-format msgid "Density" msgstr "濃度制御" -#: backend/fujitsu.c:4596 +#: backend/fujitsu.c:4600 #, fuzzy, no-c-format msgid "Density dial" msgstr "濃度制御" -#: backend/fujitsu.c:4607 backend/fujitsu.c:4608 +#: backend/fujitsu.c:4611 backend/fujitsu.c:4612 #, fuzzy, no-c-format msgid "Duplex switch" msgstr "両面スキャン" -#: backend/genesys/genesys.cpp:4118 +#: backend/genesys/genesys.cpp:4160 #, no-c-format msgid "Request backend to remove border from pages digitally" msgstr "" -#: backend/genesys/genesys.cpp:4127 backend/kvs1025_opt.c:912 +#: backend/genesys/genesys.cpp:4169 backend/kvs1025_opt.c:912 #, no-c-format msgid "Request driver to discard pages with low numbers of dark pixels" msgstr "" -#: backend/genesys/genesys.cpp:4137 backend/kvs1025_opt.c:892 +#: backend/genesys/genesys.cpp:4179 backend/kvs1025_opt.c:892 #, no-c-format msgid "Software derotate" msgstr "" -#: backend/genesys/genesys.cpp:4138 backend/kvs1025_opt.c:894 +#: backend/genesys/genesys.cpp:4180 backend/kvs1025_opt.c:894 #, no-c-format msgid "Request driver to detect and correct 90 degree image rotation" msgstr "" -#: backend/genesys/genesys.cpp:4168 backend/pixma_sane_options.c:314 +#: backend/genesys/genesys.cpp:4210 backend/pixma/pixma_sane_options.c:314 #, no-c-format msgid "Extras" msgstr "追加" -#: backend/genesys/genesys.cpp:4188 backend/pixma_sane_options.c:336 +#: backend/genesys/genesys.cpp:4230 backend/pixma/pixma_sane_options.c:336 #, no-c-format msgid "Dynamic threshold curve, from light to dark, normally 50-65" msgstr "" -#: backend/genesys/genesys.cpp:4197 -#, no-c-format -msgid "Disable dynamic lineart" -msgstr "" - -#: backend/genesys/genesys.cpp:4199 -#, no-c-format -msgid "" -"Disable use of a software adaptive algorithm to generate lineart relying " -"instead on hardware lineart." -msgstr "" - -#: backend/genesys/genesys.cpp:4215 +#: backend/genesys/genesys.cpp:4240 #, no-c-format msgid "Disable interpolation" msgstr "" -#: backend/genesys/genesys.cpp:4218 +#: backend/genesys/genesys.cpp:4243 #, no-c-format msgid "" "When using high resolutions where the horizontal resolution is smaller " @@ -3025,44 +3042,44 @@ msgstr "" "水平解像度が垂直解像度より低いような高解像度を使うときは、水平" "interpolationを無効にします。" -#: backend/genesys/genesys.cpp:4227 +#: backend/genesys/genesys.cpp:4252 #, fuzzy, no-c-format msgid "Color filter" msgstr "カラーフィルタ" -#: backend/genesys/genesys.cpp:4230 +#: backend/genesys/genesys.cpp:4255 #, no-c-format msgid "When using gray or lineart this option selects the used color." msgstr "" -#: backend/genesys/genesys.cpp:4254 +#: backend/genesys/genesys.cpp:4279 #, fuzzy, no-c-format msgid "Calibration file" msgstr "校正" -#: backend/genesys/genesys.cpp:4255 +#: backend/genesys/genesys.cpp:4280 #, fuzzy, no-c-format msgid "Specify the calibration file to use" msgstr "較正を「すぐに」実行します" -#: backend/genesys/genesys.cpp:4272 +#: backend/genesys/genesys.cpp:4297 #, fuzzy, no-c-format msgid "Calibration cache expiration time" msgstr "較正データのキャッシュ" -#: backend/genesys/genesys.cpp:4273 +#: backend/genesys/genesys.cpp:4298 #, no-c-format msgid "" "Time (in minutes) before a cached calibration expires. A value of 0 " "means cache is not used. A negative value means cache never expires." msgstr "" -#: backend/genesys/genesys.cpp:4283 +#: backend/genesys/genesys.cpp:4308 #, no-c-format msgid "Lamp off time" msgstr "ランプをオフにする時間" -#: backend/genesys/genesys.cpp:4286 +#: backend/genesys/genesys.cpp:4311 #, no-c-format msgid "" "The lamp will be turned off after the given time (in minutes). A value " @@ -3071,103 +3088,108 @@ msgstr "" "ランプは指定された時間(分)が経過したらオフにされます。値が0のときは、" "この機能は働きません。" -#: backend/genesys/genesys.cpp:4296 +#: backend/genesys/genesys.cpp:4321 #, fuzzy, no-c-format msgid "Lamp off during scan" msgstr "ダーク補正時にランプをオフにする" -#: backend/genesys/genesys.cpp:4297 +#: backend/genesys/genesys.cpp:4322 #, fuzzy, no-c-format msgid "The lamp will be turned off during scan. " msgstr "走査した後、ランプがオフになるまでの時間(分)" -#: backend/genesys/genesys.cpp:4324 backend/genesys/genesys.cpp:4325 +#: backend/genesys/genesys.cpp:4349 backend/genesys/genesys.cpp:4350 #, no-c-format msgid "File button" msgstr "ファイルボタン" -#: backend/genesys/genesys.cpp:4369 backend/genesys/genesys.cpp:4370 +#: backend/genesys/genesys.cpp:4394 backend/genesys/genesys.cpp:4395 #, no-c-format msgid "OCR button" msgstr "OCRボタン" -#: backend/genesys/genesys.cpp:4381 backend/genesys/genesys.cpp:4382 +#: backend/genesys/genesys.cpp:4406 backend/genesys/genesys.cpp:4407 #, no-c-format msgid "Power button" msgstr "電源ボタン" -#: backend/genesys/genesys.cpp:4393 backend/genesys/genesys.cpp:4394 +#: backend/genesys/genesys.cpp:4418 backend/genesys/genesys.cpp:4419 #, fuzzy, no-c-format msgid "Extra button" msgstr "電子メールボタン" -#: backend/genesys/genesys.cpp:4405 backend/gt68xx.c:755 +#: backend/genesys/genesys.cpp:4430 backend/gt68xx.c:755 #, fuzzy, no-c-format msgid "Needs calibration" msgstr "較正のクリア" -#: backend/genesys/genesys.cpp:4406 backend/gt68xx.c:756 +#: backend/genesys/genesys.cpp:4431 backend/gt68xx.c:756 backend/p5.c:1928 #, fuzzy, no-c-format msgid "The scanner needs calibration for the current settings" msgstr "走査前にスキャナの校正を強制する" -#: backend/genesys/genesys.cpp:4417 backend/gt68xx.c:780 -#: backend/gt68xx.c:781 backend/pixma_sane_options.c:226 -#: backend/plustek.c:1080 +#: backend/genesys/genesys.cpp:4442 backend/gt68xx.c:780 +#: backend/gt68xx.c:781 backend/p5.c:1937 backend/p5.c:1938 +#: backend/pixma/pixma_sane_options.c:226 backend/plustek.c:1080 #, no-c-format msgid "Buttons" msgstr "ボタン" -#: backend/genesys/genesys.cpp:4426 backend/gt68xx.c:787 -#: backend/hp5400_sane.c:392 backend/hp-option.h:97 backend/niash.c:726 -#: backend/plustek.c:941 +#: backend/genesys/genesys.cpp:4451 backend/gt68xx.c:787 +#: backend/hp-option.h:97 backend/hp5400_sane.c:392 backend/niash.c:726 +#: backend/p5.c:1945 backend/plustek.c:941 #, no-c-format msgid "Calibrate" msgstr "較正" -#: backend/genesys/genesys.cpp:4428 backend/gt68xx.c:789 +#: backend/genesys/genesys.cpp:4453 backend/gt68xx.c:789 backend/p5.c:1947 #, no-c-format msgid "Start calibration using special sheet" msgstr "特殊シートを用いた補正を開始" -#: backend/genesys/genesys.cpp:4440 backend/gt68xx.c:802 +#: backend/genesys/genesys.cpp:4465 backend/gt68xx.c:802 backend/p5.c:1958 #, no-c-format msgid "Clear calibration" msgstr "較正のクリア" -#: backend/genesys/genesys.cpp:4441 backend/gt68xx.c:803 +#: backend/genesys/genesys.cpp:4466 backend/gt68xx.c:803 backend/p5.c:1960 #, no-c-format msgid "Clear calibration cache" msgstr "校正キャッシュを消去する" -#: backend/genesys/genesys.cpp:4451 +#: backend/genesys/genesys.cpp:4476 #, fuzzy, no-c-format msgid "Force calibration" msgstr "粗校正" -#: backend/genesys/genesys.cpp:4452 +#: backend/genesys/genesys.cpp:4477 #, no-c-format msgid "Force calibration ignoring all and any calibration caches" msgstr "" -#: backend/genesys/genesys.cpp:4462 +#: backend/genesys/genesys.cpp:4487 #, fuzzy, no-c-format msgid "Ignore internal offsets" msgstr "緑オフセット" -#: backend/genesys/genesys.cpp:4464 +#: backend/genesys/genesys.cpp:4489 #, no-c-format msgid "" "Acquires the image including the internal calibration areas of the " "scanner" msgstr "" -#: backend/gt68xx.c:149 backend/ma1509.c:108 backend/mustek.c:164 -#: backend/snapscan-options.c:87 backend/umax.c:182 +#: backend/genesys/genesys.h:79 backend/gt68xx.c:149 backend/ma1509.c:108 +#: backend/mustek.c:164 backend/snapscan-options.c:87 backend/umax.c:182 #, no-c-format msgid "Transparency Adapter" msgstr "透過アダプター" +#: backend/genesys/genesys.h:80 +#, fuzzy, no-c-format +msgid "Transparency Adapter Infrared" +msgstr "透過アダプター" + #: backend/gt68xx.c:470 #, no-c-format msgid "Gray mode color" @@ -3265,6 +3287,304 @@ msgstr "ガンマ値" msgid "Sets the gamma value of all channels." msgstr "すべてのチャネルのガンマ値を設定" +#: backend/hp-option.c:2987 +#, no-c-format +msgid "Advanced Options" +msgstr "上級オプション" + +#: backend/hp-option.c:3044 +#, no-c-format +msgid "Coarse" +msgstr "粗" + +#: backend/hp-option.c:3045 +#, no-c-format +msgid "Fine" +msgstr "密" + +#: backend/hp-option.c:3046 +#, no-c-format +msgid "Bayer" +msgstr "バイエル" + +#: backend/hp-option.c:3049 backend/hp-option.c:3100 +#, no-c-format +msgid "Custom" +msgstr "カスタム" + +#: backend/hp-option.c:3090 backend/hp-option.c:3146 +#: backend/hp-option.c:3161 +#, no-c-format +msgid "Auto" +msgstr "自動" + +#: backend/hp-option.c:3091 +#, no-c-format +msgid "NTSC RGB" +msgstr "NTSC方式RGB" + +#: backend/hp-option.c:3092 +#, no-c-format +msgid "XPA RGB" +msgstr "XPA方式RGB" + +#: backend/hp-option.c:3093 +#, no-c-format +msgid "Pass-through" +msgstr "パススルー" + +#: backend/hp-option.c:3094 +#, no-c-format +msgid "NTSC Gray" +msgstr "NTSCのグレー" + +#: backend/hp-option.c:3095 +#, no-c-format +msgid "XPA Gray" +msgstr "XPAのグレー" + +#: backend/hp-option.c:3147 +#, no-c-format +msgid "Slow" +msgstr "遅い" + +#: backend/hp-option.c:3148 backend/hp-option.c:3255 +#: backend/kvs40xx_opt.c:230 backend/matsushita.c:244 backend/mustek.c:149 +#: backend/plustek.c:234 backend/plustek_pp.c:203 backend/u12.c:155 +#, no-c-format +msgid "Normal" +msgstr "普通" + +#: backend/hp-option.c:3149 +#, no-c-format +msgid "Fast" +msgstr "速い" + +#: backend/hp-option.c:3150 +#, no-c-format +msgid "Extra Fast" +msgstr "超高速" + +#: backend/hp-option.c:3163 +#, no-c-format +msgid "2-pixel" +msgstr "2ピクセル" + +#: backend/hp-option.c:3164 +#, no-c-format +msgid "4-pixel" +msgstr "4ピクセル" + +#: backend/hp-option.c:3165 +#, no-c-format +msgid "8-pixel" +msgstr "8ピクセル" + +#: backend/hp-option.c:3176 +#, no-c-format +msgid "Print" +msgstr "印刷" + +#: backend/hp-option.c:3177 backend/hp3900_sane.c:427 +#: backend/hp3900_sane.c:1019 +#, no-c-format +msgid "Slide" +msgstr "スライド" + +#: backend/hp-option.c:3178 +#, no-c-format +msgid "Film-strip" +msgstr "フィルムの一片" + +#: backend/hp-option.c:3256 backend/hp5590.c:93 +#, no-c-format +msgid "ADF" +msgstr "ADF" + +#: backend/hp-option.c:3257 +#, no-c-format +msgid "XPA" +msgstr "XPA" + +#: backend/hp-option.c:3331 backend/hp-option.c:3344 +#, no-c-format +msgid "Conditional" +msgstr "条件付き" + +#: backend/hp-option.c:3417 +#, no-c-format +msgid "Experiment" +msgstr "実験的" + +#: backend/hp-option.h:60 +#, no-c-format +msgid "Sharpening" +msgstr "鮮鋭化" + +#: backend/hp-option.h:61 +#, no-c-format +msgid "Set sharpening value." +msgstr "鮮鋭化値を設定" + +#: backend/hp-option.h:66 +#, no-c-format +msgid "Auto Threshold" +msgstr "自動閾値" + +#: backend/hp-option.h:68 +#, no-c-format +msgid "Enable automatic determination of threshold for line-art scans." +msgstr "線画の走査で閾値の自動判定を有効にする" + +#: backend/hp-option.h:74 +#, no-c-format +msgid "Select smoothing filter." +msgstr "スムージングフィルタを選択" + +#: backend/hp-option.h:79 +#, no-c-format +msgid "Unload media after scan" +msgstr "走査後、メディアを取り出す" + +#: backend/hp-option.h:80 +#, no-c-format +msgid "Unloads the media after a scan." +msgstr "走査後にメディアを取り出す。" + +#: backend/hp-option.h:85 +#, no-c-format +msgid "Change document" +msgstr "書類を換える。" + +#: backend/hp-option.h:86 +#, no-c-format +msgid "Change Document." +msgstr "書類を取り換える。" + +#: backend/hp-option.h:91 +#, no-c-format +msgid "Unload" +msgstr "取り出し" + +#: backend/hp-option.h:92 +#, no-c-format +msgid "Unload Document." +msgstr "書類の取り出し" + +#: backend/hp-option.h:98 +#, no-c-format +msgid "Start calibration process." +msgstr "校正プロセスを開始。" + +#: backend/hp-option.h:103 +#, no-c-format +msgid "Media" +msgstr "メディア" + +#: backend/hp-option.h:104 +#, no-c-format +msgid "Set type of media." +msgstr "メディアの種類を設定" + +#: backend/hp-option.h:109 +#, no-c-format +msgid "Exposure time" +msgstr "露出時間" + +#: backend/hp-option.h:111 +#, no-c-format +msgid "" +"A longer exposure time lets the scanner collect more light. Suggested " +"use is 175% for prints, 150% for normal slides and \"Negative\" for " +"negative film. For dark (underexposed) images you can increase this " +"value." +msgstr "" + +#: backend/hp-option.h:119 backend/hp-option.h:126 +#, no-c-format +msgid "Color Matrix" +msgstr "カラーマトリックス" + +#: backend/hp-option.h:121 +#, fuzzy, no-c-format +msgid "Set the scanner's color matrix." +msgstr "スキャナーのカラーマトリックスを設定する。" + +#: backend/hp-option.h:127 +#, no-c-format +msgid "Custom color matrix." +msgstr "カスタムカラーマトリックス" + +#: backend/hp-option.h:132 +#, no-c-format +msgid "Mono Color Matrix" +msgstr "モノクロ・カラーマトリックス" + +#: backend/hp-option.h:133 +#, no-c-format +msgid "Custom color matrix for grayscale scans." +msgstr "グレースケール走査のカスタム・カラーマトリックス" + +#: backend/hp-option.h:138 +#, no-c-format +msgid "Mirror horizontal" +msgstr "水平の鏡像" + +#: backend/hp-option.h:139 +#, no-c-format +msgid "Mirror image horizontally." +msgstr "水平に鏡像をとる。" + +#: backend/hp-option.h:144 +#, no-c-format +msgid "Mirror vertical" +msgstr "垂直鏡像" + +#: backend/hp-option.h:145 +#, no-c-format +msgid "Mirror image vertically." +msgstr "垂直に鏡像をとる。" + +#: backend/hp-option.h:150 +#, no-c-format +msgid "Update options" +msgstr "オプションの更新" + +#: backend/hp-option.h:151 +#, no-c-format +msgid "Update options." +msgstr "オプションを更新する。" + +#: backend/hp-option.h:156 +#, no-c-format +msgid "8 bit output" +msgstr "8ビット出力" + +#: backend/hp-option.h:158 +#, no-c-format +msgid "Use bit depth greater eight internally, but output only eight bits." +msgstr "" + +#: backend/hp-option.h:164 +#, no-c-format +msgid "Front button wait" +msgstr "前面ボタンを待つ" + +#: backend/hp-option.h:165 +#, no-c-format +msgid "Wait to scan for front-panel button push." +msgstr "" + +#: backend/hp-option.h:172 +#, no-c-format +msgid "Shut off lamp" +msgstr "ランプの停止" + +#: backend/hp-option.h:173 +#, no-c-format +msgid "Shut off scanner lamp." +msgstr "スキャナーのランプを停止する。" + #: backend/hp3500.c:1020 #, no-c-format msgid "Geometry Group" @@ -3275,12 +3595,6 @@ msgstr "配置グループ" msgid "Scan Mode Group" msgstr "スキャンモードグループ" -#: backend/hp3900_sane.c:427 backend/hp3900_sane.c:1019 -#: backend/hp-option.c:3177 -#, no-c-format -msgid "Slide" -msgstr "スライド" - #: backend/hp3900_sane.c:1405 #, no-c-format msgid "Scanner model" @@ -3481,11 +3795,6 @@ msgstr "ランプのオフ/オンを切り替え" msgid "Calibrates for black and white level." msgstr "白黒レベルを較正" -#: backend/hp5590.c:93 backend/hp-option.c:3256 -#, no-c-format -msgid "ADF" -msgstr "ADF" - #: backend/hp5590.c:95 #, no-c-format msgid "TMA Slides" @@ -3596,293 +3905,6 @@ msgid "" "r*65536+256*g+b or gray value (default=violet or gray)" msgstr "" -#: backend/hp-option.c:2987 -#, no-c-format -msgid "Advanced Options" -msgstr "上級オプション" - -#: backend/hp-option.c:3044 -#, no-c-format -msgid "Coarse" -msgstr "粗" - -#: backend/hp-option.c:3045 -#, no-c-format -msgid "Fine" -msgstr "密" - -#: backend/hp-option.c:3046 -#, no-c-format -msgid "Bayer" -msgstr "バイエル" - -#: backend/hp-option.c:3049 backend/hp-option.c:3100 -#, no-c-format -msgid "Custom" -msgstr "カスタム" - -#: backend/hp-option.c:3090 backend/hp-option.c:3146 -#: backend/hp-option.c:3161 -#, no-c-format -msgid "Auto" -msgstr "自動" - -#: backend/hp-option.c:3091 -#, no-c-format -msgid "NTSC RGB" -msgstr "NTSC方式RGB" - -#: backend/hp-option.c:3092 -#, no-c-format -msgid "XPA RGB" -msgstr "XPA方式RGB" - -#: backend/hp-option.c:3093 -#, no-c-format -msgid "Pass-through" -msgstr "パススルー" - -#: backend/hp-option.c:3094 -#, no-c-format -msgid "NTSC Gray" -msgstr "NTSCのグレー" - -#: backend/hp-option.c:3095 -#, no-c-format -msgid "XPA Gray" -msgstr "XPAのグレー" - -#: backend/hp-option.c:3147 -#, no-c-format -msgid "Slow" -msgstr "遅い" - -#: backend/hp-option.c:3148 backend/hp-option.c:3255 -#: backend/kvs40xx_opt.c:230 backend/matsushita.c:244 backend/mustek.c:149 -#: backend/plustek.c:234 backend/plustek_pp.c:203 backend/u12.c:155 -#, no-c-format -msgid "Normal" -msgstr "普通" - -#: backend/hp-option.c:3149 -#, no-c-format -msgid "Fast" -msgstr "速い" - -#: backend/hp-option.c:3150 -#, no-c-format -msgid "Extra Fast" -msgstr "超高速" - -#: backend/hp-option.c:3163 -#, no-c-format -msgid "2-pixel" -msgstr "2ピクセル" - -#: backend/hp-option.c:3164 -#, no-c-format -msgid "4-pixel" -msgstr "4ピクセル" - -#: backend/hp-option.c:3165 -#, no-c-format -msgid "8-pixel" -msgstr "8ピクセル" - -#: backend/hp-option.c:3176 -#, no-c-format -msgid "Print" -msgstr "印刷" - -#: backend/hp-option.c:3178 -#, no-c-format -msgid "Film-strip" -msgstr "フィルムの一片" - -#: backend/hp-option.c:3257 -#, no-c-format -msgid "XPA" -msgstr "XPA" - -#: backend/hp-option.c:3331 backend/hp-option.c:3344 -#, no-c-format -msgid "Conditional" -msgstr "条件付き" - -#: backend/hp-option.c:3417 -#, no-c-format -msgid "Experiment" -msgstr "実験的" - -#: backend/hp-option.h:60 -#, no-c-format -msgid "Sharpening" -msgstr "鮮鋭化" - -#: backend/hp-option.h:61 -#, no-c-format -msgid "Set sharpening value." -msgstr "鮮鋭化値を設定" - -#: backend/hp-option.h:66 -#, no-c-format -msgid "Auto Threshold" -msgstr "自動閾値" - -#: backend/hp-option.h:68 -#, no-c-format -msgid "Enable automatic determination of threshold for line-art scans." -msgstr "線画の走査で閾値の自動判定を有効にする" - -#: backend/hp-option.h:74 -#, no-c-format -msgid "Select smoothing filter." -msgstr "スムージングフィルタを選択" - -#: backend/hp-option.h:79 -#, no-c-format -msgid "Unload media after scan" -msgstr "走査後、メディアを取り出す" - -#: backend/hp-option.h:80 -#, no-c-format -msgid "Unloads the media after a scan." -msgstr "走査後にメディアを取り出す。" - -#: backend/hp-option.h:85 -#, no-c-format -msgid "Change document" -msgstr "書類を換える。" - -#: backend/hp-option.h:86 -#, no-c-format -msgid "Change Document." -msgstr "書類を取り換える。" - -#: backend/hp-option.h:91 -#, no-c-format -msgid "Unload" -msgstr "取り出し" - -#: backend/hp-option.h:92 -#, no-c-format -msgid "Unload Document." -msgstr "書類の取り出し" - -#: backend/hp-option.h:98 -#, no-c-format -msgid "Start calibration process." -msgstr "校正プロセスを開始。" - -#: backend/hp-option.h:103 -#, no-c-format -msgid "Media" -msgstr "メディア" - -#: backend/hp-option.h:104 -#, no-c-format -msgid "Set type of media." -msgstr "メディアの種類を設定" - -#: backend/hp-option.h:109 -#, no-c-format -msgid "Exposure time" -msgstr "露出時間" - -#: backend/hp-option.h:111 -#, no-c-format -msgid "" -"A longer exposure time lets the scanner collect more light. Suggested " -"use is 175% for prints, 150% for normal slides and \"Negative\" for " -"negative film. For dark (underexposed) images you can increase this " -"value." -msgstr "" - -#: backend/hp-option.h:119 backend/hp-option.h:126 -#, no-c-format -msgid "Color Matrix" -msgstr "カラーマトリックス" - -#: backend/hp-option.h:121 -#, fuzzy, no-c-format -msgid "Set the scanner's color matrix." -msgstr "スキャナーのカラーマトリックスを設定する。" - -#: backend/hp-option.h:127 -#, no-c-format -msgid "Custom color matrix." -msgstr "カスタムカラーマトリックス" - -#: backend/hp-option.h:132 -#, no-c-format -msgid "Mono Color Matrix" -msgstr "モノクロ・カラーマトリックス" - -#: backend/hp-option.h:133 -#, no-c-format -msgid "Custom color matrix for grayscale scans." -msgstr "グレースケール走査のカスタム・カラーマトリックス" - -#: backend/hp-option.h:138 -#, no-c-format -msgid "Mirror horizontal" -msgstr "水平の鏡像" - -#: backend/hp-option.h:139 -#, no-c-format -msgid "Mirror image horizontally." -msgstr "水平に鏡像をとる。" - -#: backend/hp-option.h:144 -#, no-c-format -msgid "Mirror vertical" -msgstr "垂直鏡像" - -#: backend/hp-option.h:145 -#, no-c-format -msgid "Mirror image vertically." -msgstr "垂直に鏡像をとる。" - -#: backend/hp-option.h:150 -#, no-c-format -msgid "Update options" -msgstr "オプションの更新" - -#: backend/hp-option.h:151 -#, no-c-format -msgid "Update options." -msgstr "オプションを更新する。" - -#: backend/hp-option.h:156 -#, no-c-format -msgid "8 bit output" -msgstr "8ビット出力" - -#: backend/hp-option.h:158 -#, no-c-format -msgid "Use bit depth greater eight internally, but output only eight bits." -msgstr "" - -#: backend/hp-option.h:164 -#, no-c-format -msgid "Front button wait" -msgstr "前面ボタンを待つ" - -#: backend/hp-option.h:165 -#, no-c-format -msgid "Wait to scan for front-panel button push." -msgstr "" - -#: backend/hp-option.h:172 -#, no-c-format -msgid "Shut off lamp" -msgstr "ランプの停止" - -#: backend/hp-option.h:173 -#, no-c-format -msgid "Shut off scanner lamp." -msgstr "スキャナーのランプを停止する。" - #: backend/kvs1025.h:51 backend/kvs20xx_opt.c:295 backend/kvs40xx_opt.c:516 #: backend/matsushita.h:219 #, no-c-format @@ -3981,7 +4003,7 @@ msgid "single" msgstr "" #: backend/kvs1025_opt.c:73 backend/kvs20xx.c:462 backend/kvs20xx_opt.c:56 -#: backend/kvs40xx.c:704 backend/kvs40xx.c:722 backend/kvs40xx_opt.c:102 +#: backend/kvs40xx.c:705 backend/kvs40xx.c:723 backend/kvs40xx_opt.c:102 #: backend/kvs40xx_opt.c:1087 #, fuzzy, no-c-format msgid "continuous" @@ -4280,7 +4302,7 @@ msgstr "イメージ強調を設定" #: backend/kvs1025_opt.c:807 backend/kvs1025_opt.c:808 #: backend/matsushita.c:1300 backend/matsushita.c:1301 -#: backend/pixma_sane_options.c:112 +#: backend/pixma/pixma_sane_options.c:112 #, no-c-format msgid "Gamma" msgstr "ガンマ" @@ -4570,52 +4592,52 @@ msgstr "8x8 バイエル" msgid "8x8 Vertical Line" msgstr "8x8縦の線" -#: backend/lexmark.c:273 backend/umax_pp.c:711 +#: backend/lexmark.c:273 backend/umax_pp.c:705 #, no-c-format msgid "Gain" msgstr "利得" -#: backend/lexmark.c:274 backend/umax_pp.c:712 +#: backend/lexmark.c:274 backend/umax_pp.c:706 #, no-c-format msgid "Color channels gain settings" msgstr "カラーチャネルの利得設定" -#: backend/lexmark.c:283 backend/umax_pp.c:719 +#: backend/lexmark.c:283 backend/umax_pp.c:713 #, no-c-format msgid "Gray gain" msgstr "グレー利得" -#: backend/lexmark.c:284 backend/umax_pp.c:720 +#: backend/lexmark.c:284 backend/umax_pp.c:714 #, no-c-format msgid "Sets gray channel gain" msgstr "グレーチャネル利得を設定" -#: backend/lexmark.c:297 backend/plustek.c:1001 backend/umax_pp.c:731 +#: backend/lexmark.c:297 backend/plustek.c:1001 backend/umax_pp.c:725 #, no-c-format msgid "Red gain" msgstr "赤利得" -#: backend/lexmark.c:298 backend/umax_pp.c:732 +#: backend/lexmark.c:298 backend/umax_pp.c:726 #, no-c-format msgid "Sets red channel gain" msgstr "赤チャネル利得を設定" -#: backend/lexmark.c:311 backend/plustek.c:1017 backend/umax_pp.c:743 +#: backend/lexmark.c:311 backend/plustek.c:1017 backend/umax_pp.c:737 #, no-c-format msgid "Green gain" msgstr "緑利得" -#: backend/lexmark.c:312 backend/umax_pp.c:744 +#: backend/lexmark.c:312 backend/umax_pp.c:738 #, no-c-format msgid "Sets green channel gain" msgstr "緑チャネル利得を設定" -#: backend/lexmark.c:325 backend/plustek.c:1033 backend/umax_pp.c:755 +#: backend/lexmark.c:325 backend/plustek.c:1033 backend/umax_pp.c:749 #, no-c-format msgid "Blue gain" msgstr "青利得" -#: backend/lexmark.c:326 backend/umax_pp.c:756 +#: backend/lexmark.c:326 backend/umax_pp.c:750 #, no-c-format msgid "Sets blue channel gain" msgstr "青チャネル利得を設定" @@ -4701,7 +4723,7 @@ msgstr "1ページ" msgid "All pages" msgstr "全ページ" -#: backend/matsushita.c:1034 backend/plustek.c:1333 +#: backend/matsushita.c:1034 backend/p5_device.c:8 backend/plustek.c:1333 #, no-c-format msgid "sheetfed scanner" msgstr "シートフィーダスキャナー" @@ -5195,39 +5217,44 @@ msgid "" "40 seconds warm-up time." msgstr "" -#: backend/pixma.c:397 +#: backend/p5.c:1926 +#, fuzzy, no-c-format +msgid "Need calibration" +msgstr "較正のクリア" + +#: backend/pixma/pixma.c:397 #, fuzzy, no-c-format msgid "Negative color" msgstr "ネガフィルム" -#: backend/pixma.c:402 +#: backend/pixma/pixma.c:402 #, fuzzy, no-c-format msgid "Negative gray" msgstr "ネガ" -#: backend/pixma.c:415 +#: backend/pixma/pixma.c:415 #, fuzzy, no-c-format msgid "48 bits color" msgstr "高精彩" -#: backend/pixma.c:420 +#: backend/pixma/pixma.c:420 #, no-c-format msgid "16 bits gray" msgstr "" -#: backend/pixma_sane_options.c:84 +#: backend/pixma/pixma_sane_options.c:84 #, no-c-format msgid "" "Selects the scan source (such as a document-feeder). Set source before " "mode and resolution. Resets mode and resolution to auto values." msgstr "" -#: backend/pixma_sane_options.c:98 +#: backend/pixma/pixma_sane_options.c:98 #, no-c-format msgid "Button-controlled scan" msgstr "ボタン制御走査" -#: backend/pixma_sane_options.c:99 +#: backend/pixma/pixma_sane_options.c:99 #, no-c-format msgid "" "When enabled, scan process will not start immediately. To proceed, press " @@ -5235,37 +5262,37 @@ msgid "" "cancel, press \"GRAY\" button." msgstr "" -#: backend/pixma_sane_options.c:232 +#: backend/pixma/pixma_sane_options.c:232 #, no-c-format msgid "Update button state" msgstr "ボタン状態の更新" -#: backend/pixma_sane_options.c:244 +#: backend/pixma/pixma_sane_options.c:244 #, no-c-format msgid "Button 1" msgstr "ボタン1" -#: backend/pixma_sane_options.c:258 +#: backend/pixma/pixma_sane_options.c:258 #, no-c-format msgid "Button 2" msgstr "ボタン2" -#: backend/pixma_sane_options.c:272 +#: backend/pixma/pixma_sane_options.c:272 #, no-c-format msgid "Type of original to scan" msgstr "" -#: backend/pixma_sane_options.c:286 +#: backend/pixma/pixma_sane_options.c:286 #, no-c-format msgid "Target operation type" msgstr "" -#: backend/pixma_sane_options.c:348 +#: backend/pixma/pixma_sane_options.c:348 #, no-c-format msgid "ADF Waiting Time" msgstr "" -#: backend/pixma_sane_options.c:349 +#: backend/pixma/pixma_sane_options.c:349 #, no-c-format msgid "" "When set, the scanner waits upto the specified time in seconds for a new " @@ -5357,7 +5384,7 @@ msgstr "アナログフロントエンド" msgid "Red gain value of the AFE" msgstr "AFEの赤の利得値" -#: backend/plustek.c:1009 backend/umax_pp.c:788 +#: backend/plustek.c:1009 backend/umax_pp.c:782 #, no-c-format msgid "Red offset" msgstr "赤オフセット" @@ -5624,7 +5651,7 @@ msgstr "" msgid "This option reflects the status of a scanner button." msgstr "このオプションは、スキャナーボタンの状態を反映します。" -#: backend/rts8891.c:2840 backend/umax.c:5795 backend/umax_pp.c:635 +#: backend/rts8891.c:2840 backend/umax.c:5795 backend/umax_pp.c:629 #, no-c-format msgid "Lamp on" msgstr "ランプをオン" @@ -5634,12 +5661,12 @@ msgstr "ランプをオン" msgid "Turn on scanner lamp" msgstr "スキャナーのランプをオンにする。" -#: backend/rts8891.c:2851 backend/umax1220u.c:248 backend/umax.c:5812 +#: backend/rts8891.c:2851 backend/umax.c:5812 backend/umax1220u.c:248 #, no-c-format msgid "Lamp off" msgstr "ランプオフ" -#: backend/rts8891.c:2852 backend/umax1220u.c:249 backend/umax.c:5813 +#: backend/rts8891.c:2852 backend/umax.c:5813 backend/umax1220u.c:249 #, no-c-format msgid "Turn off scanner lamp" msgstr "スキャナーのランプをオフにする。" @@ -6378,52 +6405,52 @@ msgstr "" msgid "Define calibration mode" msgstr "" -#: backend/umax_pp.c:636 +#: backend/umax_pp.c:630 #, no-c-format msgid "Sets lamp on/off" msgstr "" -#: backend/umax_pp.c:645 +#: backend/umax_pp.c:639 #, no-c-format msgid "UTA on" msgstr "" -#: backend/umax_pp.c:646 +#: backend/umax_pp.c:640 #, no-c-format msgid "Sets UTA on/off" msgstr "" -#: backend/umax_pp.c:767 +#: backend/umax_pp.c:761 #, no-c-format msgid "Offset" msgstr "" -#: backend/umax_pp.c:769 +#: backend/umax_pp.c:763 #, no-c-format msgid "Color channels offset settings" msgstr "" -#: backend/umax_pp.c:776 +#: backend/umax_pp.c:770 #, no-c-format msgid "Gray offset" msgstr "" -#: backend/umax_pp.c:777 +#: backend/umax_pp.c:771 #, no-c-format msgid "Sets gray channel offset" msgstr "" -#: backend/umax_pp.c:789 +#: backend/umax_pp.c:783 #, no-c-format msgid "Sets red channel offset" msgstr "" -#: backend/umax_pp.c:801 +#: backend/umax_pp.c:795 #, no-c-format msgid "Sets green channel offset" msgstr "" -#: backend/umax_pp.c:813 +#: backend/umax_pp.c:807 #, no-c-format msgid "Sets blue channel offset" msgstr "" diff --git a/po/nb.po b/po/nb.po index 57a1a1655..c6b55ba66 100644 --- a/po/nb.po +++ b/po/nb.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: sane-backends 1.0.12\n" "Report-Msgid-Bugs-To: sane-devel@alioth-lists.debian.net\n" -"POT-Creation-Date: 2019-10-12 17:41+0300\n" +"POT-Creation-Date: 2020-01-12 07:09+0000\n" "PO-Revision-Date: 2007-12-17 23:01+0100\n" "Last-Translator: Sigurd Stordal \n" "Language-Team: \n" @@ -25,23 +25,23 @@ msgid "Standard" msgstr "" #: include/sane/saneopts.h:157 backend/artec_eplus48u.c:2884 -#: backend/epson.c:3298 backend/epson2.c:1290 -#: backend/genesys/genesys.cpp:3976 backend/gt68xx.c:696 -#: backend/hp3500.c:1019 backend/hp-option.c:3300 backend/kvs1025_opt.c:639 +#: backend/epson.c:3298 backend/epson2.c:1290 backend/epsonds.c:677 +#: backend/genesys/genesys.cpp:4034 backend/gt68xx.c:696 +#: backend/hp-option.c:3300 backend/hp3500.c:1019 backend/kvs1025_opt.c:639 #: backend/kvs20xx_opt.c:285 backend/kvs40xx_opt.c:506 backend/leo.c:823 #: backend/lexmark.c:199 backend/ma1509.c:551 backend/matsushita.c:1135 #: backend/microtek2.h:599 backend/mustek.c:4373 backend/mustek_usb.c:301 -#: backend/mustek_usb2.c:465 backend/pixma_sane_options.c:160 +#: backend/mustek_usb2.c:465 backend/pixma/pixma_sane_options.c:160 #: backend/plustek.c:808 backend/plustek_pp.c:747 backend/sceptre.c:702 #: backend/snapscan-options.c:550 backend/teco1.c:1095 backend/teco2.c:1910 #: backend/teco3.c:920 backend/test.c:647 backend/u12.c:546 -#: backend/umax.c:5176 backend/umax_pp.c:576 +#: backend/umax.c:5176 backend/umax_pp.c:570 #, no-c-format msgid "Geometry" msgstr "Geometri" #: include/sane/saneopts.h:158 backend/artec_eplus48u.c:2805 -#: backend/canon.c:1493 backend/genesys/genesys.cpp:4035 +#: backend/canon.c:1493 backend/genesys/genesys.cpp:4077 #: backend/gt68xx.c:665 backend/hp-option.c:2956 backend/kvs1025_opt.c:703 #: backend/leo.c:871 backend/ma1509.c:599 backend/matsushita.c:1189 #: backend/microtek2.h:600 backend/mustek.c:4421 backend/mustek_usb.c:349 @@ -49,7 +49,7 @@ msgstr "Geometri" #: backend/plustek_pp.c:793 backend/sceptre.c:750 #: backend/snapscan-options.c:617 backend/stv680.c:1067 #: backend/teco1.c:1143 backend/teco2.c:1958 backend/teco3.c:968 -#: backend/u12.c:592 backend/umax.c:5226 backend/umax_pp.c:625 +#: backend/u12.c:592 backend/umax.c:5226 backend/umax_pp.c:619 #, no-c-format msgid "Enhancement" msgstr "Forbedring" @@ -83,7 +83,7 @@ msgid "Bit depth" msgstr "Bit dybde" #: include/sane/saneopts.h:165 backend/canon.c:1140 backend/leo.c:781 -#: backend/pixma_sane_options.c:47 +#: backend/pixma/pixma_sane_options.c:47 #, no-c-format msgid "Scan mode" msgstr "" @@ -124,7 +124,7 @@ msgid "Bottom-right y" msgstr "Bunn-høyre y" #: include/sane/saneopts.h:173 backend/canon.c:1216 -#: backend/pixma_sane_options.c:300 +#: backend/pixma/pixma_sane_options.c:300 #, no-c-format msgid "Scan resolution" msgstr "Skanoppløsning" @@ -279,7 +279,7 @@ msgstr "Filnavn" msgid "Halftone pattern size" msgstr "" -#: include/sane/saneopts.h:204 backend/fujitsu.c:3233 +#: include/sane/saneopts.h:204 backend/fujitsu.c:3237 #, no-c-format msgid "Halftone pattern" msgstr "" @@ -289,10 +289,10 @@ msgstr "" msgid "Bind X and Y resolution" msgstr "" -#: include/sane/saneopts.h:206 backend/hp3900_sane.c:428 -#: backend/hp3900_sane.c:1021 backend/hp3900_sane.c:1421 -#: backend/hp-option.c:3238 backend/mustek_usb2.c:121 backend/plustek.c:236 -#: backend/plustek_pp.c:205 backend/u12.c:157 +#: include/sane/saneopts.h:206 backend/hp-option.c:3238 +#: backend/hp3900_sane.c:428 backend/hp3900_sane.c:1021 +#: backend/hp3900_sane.c:1421 backend/mustek_usb2.c:121 +#: backend/plustek.c:236 backend/plustek_pp.c:205 backend/u12.c:157 #, no-c-format msgid "Negative" msgstr "Negativ" @@ -995,78 +995,38 @@ msgid "" "Duplex scan provides a scan of the front and back side of the document" msgstr "" -#: backend/canon630u.c:159 -#, fuzzy, no-c-format -msgid "Calibrate Scanner" -msgstr "Kalibrering" - -#: backend/canon630u.c:160 -#, fuzzy, no-c-format -msgid "Force scanner calibration before scan" -msgstr "Grov kalibrering kun for første skan" - -#: backend/canon630u.c:259 backend/umax1220u.c:208 +#: backend/canon-sane.c:674 backend/canon.c:171 #, no-c-format -msgid "Grayscale scan" -msgstr "Gråskala scan" - -#: backend/canon630u.c:260 backend/umax1220u.c:209 -#, no-c-format -msgid "Do a grayscale rather than color scan" -msgstr "Gjør et gråskala heller enn farge scan" - -#: backend/canon630u.c:306 -#, no-c-format -msgid "Analog Gain" +msgid "Correction according to transparency ratio" msgstr "" -#: backend/canon630u.c:307 +#: backend/canon-sane.c:680 backend/canon.c:170 #, no-c-format -msgid "Increase or decrease the analog gain of the CCD array" +msgid "Correction according to film type" msgstr "" -#: backend/canon630u.c:347 backend/epson.h:68 backend/epson2.h:67 -#, no-c-format -msgid "Gamma Correction" -msgstr "Gamma korreksjon" - -#: backend/canon630u.c:348 -#, no-c-format -msgid "Selects the gamma corrected transfer curve" -msgstr "Velger den gamma korrigerte overførsels kurven" - -#: backend/canon.c:149 backend/canon-sane.c:1318 -#, no-c-format -msgid "Raw" -msgstr "" - -#: backend/canon.c:157 backend/canon-sane.c:732 backend/canon-sane.c:940 +#: backend/canon-sane.c:732 backend/canon-sane.c:940 #: backend/canon-sane.c:1076 backend/canon-sane.c:1314 -#: backend/canon-sane.c:1494 backend/canon-sane.c:1643 +#: backend/canon-sane.c:1494 backend/canon-sane.c:1643 backend/canon.c:157 #, no-c-format msgid "Fine color" msgstr "" +#: backend/canon-sane.c:776 backend/canon.c:176 +#, fuzzy, no-c-format +msgid "Negatives" +msgstr "Negativ" + +#: backend/canon-sane.c:1318 backend/canon.c:149 +#, no-c-format +msgid "Raw" +msgstr "" + #: backend/canon.c:169 #, fuzzy, no-c-format msgid "No transparency correction" msgstr "Farge korreksjon" -#: backend/canon.c:170 backend/canon-sane.c:680 -#, no-c-format -msgid "Correction according to film type" -msgstr "" - -#: backend/canon.c:171 backend/canon-sane.c:674 -#, no-c-format -msgid "Correction according to transparency ratio" -msgstr "" - -#: backend/canon.c:176 backend/canon-sane.c:776 -#, fuzzy, no-c-format -msgid "Negatives" -msgstr "Negativ" - #: backend/canon.c:176 #, fuzzy, no-c-format msgid "Slides" @@ -1489,94 +1449,137 @@ msgstr "Filmtype" msgid "Select the film type" msgstr "" -#: backend/canon_dr.c:411 backend/epjitsu.c:233 backend/epson.c:501 -#: backend/epson2.c:115 backend/fujitsu.c:675 backend/gt68xx.c:148 +#: backend/canon630u.c:159 +#, fuzzy, no-c-format +msgid "Calibrate Scanner" +msgstr "Kalibrering" + +#: backend/canon630u.c:160 +#, fuzzy, no-c-format +msgid "Force scanner calibration before scan" +msgstr "Grov kalibrering kun for første skan" + +#: backend/canon630u.c:259 backend/umax1220u.c:208 +#, no-c-format +msgid "Grayscale scan" +msgstr "Gråskala scan" + +#: backend/canon630u.c:260 backend/umax1220u.c:209 +#, no-c-format +msgid "Do a grayscale rather than color scan" +msgstr "Gjør et gråskala heller enn farge scan" + +#: backend/canon630u.c:306 +#, no-c-format +msgid "Analog Gain" +msgstr "" + +#: backend/canon630u.c:307 +#, no-c-format +msgid "Increase or decrease the analog gain of the CCD array" +msgstr "" + +#: backend/canon630u.c:347 backend/epson.h:68 backend/epson2.h:67 +#, no-c-format +msgid "Gamma Correction" +msgstr "Gamma korreksjon" + +#: backend/canon630u.c:348 +#, no-c-format +msgid "Selects the gamma corrected transfer curve" +msgstr "Velger den gamma korrigerte overførsels kurven" + +#: backend/canon_dr.c:413 backend/epjitsu.c:233 backend/epson.c:501 +#: backend/epson2-ops.c:101 backend/epson2.c:115 backend/epsonds-ops.c:32 +#: backend/epsonds.c:95 backend/epsonds.h:62 backend/fujitsu.c:677 +#: backend/genesys/genesys.h:78 backend/gt68xx.c:148 #: backend/hp3900_sane.c:418 backend/hp3900_sane.c:427 -#: backend/hp3900_sane.c:1017 backend/hp5590.c:92 backend/ma1509.c:108 -#: backend/magicolor.c:181 backend/mustek.c:156 backend/mustek.c:160 -#: backend/mustek.c:164 backend/pixma.c:920 backend/pixma_sane_options.c:92 -#: backend/snapscan-options.c:86 backend/test.c:192 backend/umax.c:181 +#: backend/hp3900_sane.c:1017 backend/hp5590.c:92 backend/kodakaio.c:617 +#: backend/ma1509.c:108 backend/magicolor.c:181 backend/mustek.c:156 +#: backend/mustek.c:160 backend/mustek.c:164 backend/pixma/pixma.c:920 +#: backend/pixma/pixma_sane_options.c:92 backend/snapscan-options.c:86 +#: backend/test.c:192 backend/umax.c:181 #, no-c-format msgid "Flatbed" msgstr "" -#: backend/canon_dr.c:412 backend/epjitsu.c:234 backend/fujitsu.c:676 +#: backend/canon_dr.c:414 backend/epjitsu.c:234 backend/fujitsu.c:678 #: backend/kodak.c:140 #, no-c-format msgid "ADF Front" msgstr "" -#: backend/canon_dr.c:413 backend/epjitsu.c:235 backend/fujitsu.c:677 +#: backend/canon_dr.c:415 backend/epjitsu.c:235 backend/fujitsu.c:679 #: backend/kodak.c:141 #, no-c-format msgid "ADF Back" msgstr "" -#: backend/canon_dr.c:414 backend/epjitsu.c:236 backend/fujitsu.c:678 -#: backend/hp5590.c:94 backend/kodak.c:142 backend/pixma.c:931 +#: backend/canon_dr.c:416 backend/epjitsu.c:236 backend/fujitsu.c:680 +#: backend/hp5590.c:94 backend/kodak.c:142 backend/pixma/pixma.c:931 #, no-c-format msgid "ADF Duplex" msgstr "" -#: backend/canon_dr.c:415 +#: backend/canon_dr.c:417 #, no-c-format msgid "Card Front" msgstr "" -#: backend/canon_dr.c:416 +#: backend/canon_dr.c:418 #, no-c-format msgid "Card Back" msgstr "" -#: backend/canon_dr.c:417 +#: backend/canon_dr.c:419 #, no-c-format msgid "Card Duplex" msgstr "" -#: backend/canon_dr.c:424 backend/epson.c:599 backend/epson.c:3096 -#: backend/epson2.c:201 backend/fujitsu.c:695 -#: backend/genesys/genesys.cpp:99 backend/genesys/genesys.cpp:106 +#: backend/canon_dr.c:426 backend/epson.c:599 backend/epson.c:3096 +#: backend/epson2.c:201 backend/fujitsu.c:697 +#: backend/genesys/genesys.cpp:120 backend/genesys/genesys.cpp:127 #: backend/gt68xx_low.h:136 backend/hp-option.c:3096 #, no-c-format msgid "Red" msgstr "Rød" -#: backend/canon_dr.c:425 backend/epson.c:600 backend/epson.c:3092 -#: backend/epson2.c:202 backend/fujitsu.c:696 -#: backend/genesys/genesys.cpp:100 backend/genesys/genesys.cpp:107 +#: backend/canon_dr.c:427 backend/epson.c:600 backend/epson.c:3092 +#: backend/epson2.c:202 backend/fujitsu.c:698 +#: backend/genesys/genesys.cpp:121 backend/genesys/genesys.cpp:128 #: backend/gt68xx_low.h:137 backend/hp-option.c:3097 #, no-c-format msgid "Green" msgstr "Grønn" -#: backend/canon_dr.c:426 backend/epson.c:601 backend/epson.c:3100 -#: backend/epson2.c:203 backend/fujitsu.c:697 -#: backend/genesys/genesys.cpp:101 backend/genesys/genesys.cpp:108 +#: backend/canon_dr.c:428 backend/epson.c:601 backend/epson.c:3100 +#: backend/epson2.c:203 backend/fujitsu.c:699 +#: backend/genesys/genesys.cpp:122 backend/genesys/genesys.cpp:129 #: backend/gt68xx_low.h:138 backend/hp-option.c:3098 #, no-c-format msgid "Blue" msgstr "Blå" -#: backend/canon_dr.c:427 +#: backend/canon_dr.c:429 #, fuzzy, no-c-format msgid "Enhance Red" msgstr "Forbedring" -#: backend/canon_dr.c:428 +#: backend/canon_dr.c:430 #, fuzzy, no-c-format msgid "Enhance Green" msgstr "Forbedring" -#: backend/canon_dr.c:429 +#: backend/canon_dr.c:431 #, fuzzy, no-c-format msgid "Enhance Blue" msgstr "Forbedring" -#: backend/canon_dr.c:431 backend/epson.c:556 backend/epson.c:564 +#: backend/canon_dr.c:433 backend/epson.c:556 backend/epson.c:564 #: backend/epson.c:576 backend/epson.c:598 backend/epson2.c:165 #: backend/epson2.c:173 backend/epson2.c:185 backend/epson2.c:200 -#: backend/epson2.c:214 backend/fujitsu.c:701 -#: backend/genesys/genesys.cpp:109 backend/leo.c:109 +#: backend/epson2.c:214 backend/fujitsu.c:703 +#: backend/genesys/genesys.cpp:130 backend/leo.c:109 #: backend/matsushita.c:138 backend/matsushita.c:159 #: backend/matsushita.c:191 backend/matsushita.c:213 #: backend/snapscan-options.c:91 @@ -1584,42 +1587,46 @@ msgstr "Forbedring" msgid "None" msgstr "Ingen" -#: backend/canon_dr.c:432 backend/fujitsu.c:702 +#: backend/canon_dr.c:434 backend/fujitsu.c:704 #, no-c-format msgid "JPEG" msgstr "" -#: backend/canon_dr.c:2477 backend/fujitsu.c:4113 -#: backend/genesys/genesys.cpp:4126 backend/kvs1025_opt.c:910 +#: backend/canon_dr.c:2479 backend/fujitsu.c:4117 +#: backend/genesys/genesys.cpp:4168 backend/kvs1025_opt.c:910 #, no-c-format msgid "Software blank skip percentage" msgstr "" -#: backend/canon_dr.c:2478 backend/fujitsu.c:4114 +#: backend/canon_dr.c:2480 backend/fujitsu.c:4118 #, no-c-format msgid "Request driver to discard pages with low percentage of dark pixels" msgstr "" -#: backend/epson.c:491 backend/epson2.c:108 backend/magicolor.c:174 +#: backend/epson.c:491 backend/epson2.c:108 backend/epsonds.c:88 +#: backend/kodakaio.c:611 backend/magicolor.c:174 #, no-c-format msgid "Simplex" msgstr "" -#: backend/epson.c:492 backend/epson2.c:109 backend/kvs1025.h:50 -#: backend/kvs20xx_opt.c:204 backend/kvs40xx_opt.c:353 -#: backend/magicolor.c:175 backend/matsushita.h:218 +#: backend/epson.c:492 backend/epson2.c:109 backend/epsonds.c:89 +#: backend/kodakaio.c:612 backend/kvs1025.h:50 backend/kvs20xx_opt.c:204 +#: backend/kvs40xx_opt.c:353 backend/magicolor.c:175 +#: backend/matsushita.h:218 #, no-c-format msgid "Duplex" msgstr "" -#: backend/epson.c:502 backend/epson2.c:116 backend/pixma.c:937 +#: backend/epson.c:502 backend/epson2-ops.c:102 backend/epson2.c:116 +#: backend/epsonds-ops.c:33 backend/epsonds.h:63 backend/pixma/pixma.c:937 #, no-c-format msgid "Transparency Unit" msgstr "" -#: backend/epson.c:503 backend/epson2.c:118 backend/magicolor.c:182 -#: backend/mustek.c:160 backend/pixma.c:925 backend/test.c:192 -#: backend/umax.c:183 +#: backend/epson.c:503 backend/epson2-ops.c:104 backend/epson2.c:118 +#: backend/epsonds-ops.c:34 backend/epsonds.c:96 backend/epsonds.h:64 +#: backend/kodakaio.c:618 backend/magicolor.c:182 backend/mustek.c:160 +#: backend/pixma/pixma.c:925 backend/test.c:192 backend/umax.c:183 #, no-c-format msgid "Automatic Document Feeder" msgstr "" @@ -1731,7 +1738,7 @@ msgstr "Blekkskrivere" msgid "CRT monitors" msgstr "" -#: backend/epson.c:656 backend/epson2.c:254 backend/fujitsu.c:685 +#: backend/epson.c:656 backend/epson2.c:254 backend/fujitsu.c:687 #: backend/hp-option.c:3229 backend/test.c:143 #, no-c-format msgid "Default" @@ -1795,8 +1802,8 @@ msgstr "" msgid "Max" msgstr "Maks" -#: backend/epson.c:2813 backend/epson2.c:976 -#: backend/genesys/genesys.cpp:3893 backend/gt68xx.c:451 +#: backend/epson.c:2813 backend/epson2.c:976 backend/epsonds.c:629 +#: backend/genesys/genesys.cpp:3965 backend/gt68xx.c:451 #: backend/hp-option.c:2917 backend/kvs1025_opt.c:521 #: backend/kvs20xx_opt.c:171 backend/kvs40xx_opt.c:320 backend/ma1509.c:501 #: backend/matsushita.c:1084 backend/microtek2.h:598 backend/mustek.c:4215 @@ -1969,17 +1976,17 @@ msgstr "" msgid "Quick format" msgstr "" -#: backend/epson.c:3360 backend/epson2.c:1340 +#: backend/epson.c:3360 backend/epson2.c:1340 backend/epsonds.c:726 #, no-c-format msgid "Optional equipment" msgstr "Tilleggsutstyr" -#: backend/epson.c:3431 backend/epson2.c:1393 +#: backend/epson.c:3431 backend/epson2.c:1393 backend/epsonds.c:742 #, no-c-format msgid "Eject" msgstr "Utløs" -#: backend/epson.c:3432 backend/epson2.c:1394 +#: backend/epson.c:3432 backend/epson2.c:1394 backend/epsonds.c:743 #, no-c-format msgid "Eject the sheet in the ADF" msgstr "Utløs arket i ADF" @@ -1994,12 +2001,14 @@ msgstr "Automatisk utløsning" msgid "Eject document after scanning" msgstr "Løs ut dokoment etter skanning" -#: backend/epson.c:3457 backend/epson2.c:1416 backend/magicolor.c:2420 +#: backend/epson.c:3457 backend/epson2.c:1416 backend/epsonds.c:758 +#: backend/kodakaio.c:2855 backend/magicolor.c:2420 #, no-c-format msgid "ADF Mode" msgstr "" -#: backend/epson.c:3459 backend/epson2.c:1418 backend/magicolor.c:2422 +#: backend/epson.c:3459 backend/epson2.c:1418 backend/epsonds.c:760 +#: backend/kodakaio.c:2857 backend/magicolor.c:2422 #, no-c-format msgid "Selects the ADF mode (simplex/duplex)" msgstr "" @@ -2046,16 +2055,16 @@ msgstr "" "Etter at kommandoen for skan er sendt, vent til skannerens knapp " "ertrykket før skanings prossesen startes." -#: backend/epson2.c:102 backend/pixma.c:409 -#, no-c-format -msgid "Infrared" -msgstr "" - -#: backend/epson2.c:117 +#: backend/epson2-ops.c:103 backend/epson2.c:117 #, no-c-format msgid "TPU8x10" msgstr "" +#: backend/epson2.c:102 backend/pixma/pixma.c:409 +#, no-c-format +msgid "Infrared" +msgstr "" + #: backend/epson2.c:136 #, fuzzy, no-c-format msgid "Positive Slide" @@ -2076,492 +2085,512 @@ msgstr "" msgid "User defined CCT profile" msgstr "Brukerdefinert" -#: backend/fujitsu.c:686 backend/hp-option.c:3330 backend/hp-option.c:3343 +#: backend/epsonds.c:750 +#, no-c-format +msgid "Load" +msgstr "" + +#: backend/epsonds.c:751 +#, fuzzy, no-c-format +msgid "Load a sheet in the ADF" +msgstr "Utløs arket i ADF" + +#: backend/epsonds.c:771 +#, fuzzy, no-c-format +msgid "ADF Skew Correction" +msgstr "Ingen korrigering" + +#: backend/epsonds.c:773 +#, fuzzy, no-c-format +msgid "Enables ADF skew correction" +msgstr "Gamma korreksjon" + +#: backend/fujitsu.c:688 backend/hp-option.c:3330 backend/hp-option.c:3343 #, no-c-format msgid "On" msgstr "" -#: backend/fujitsu.c:687 backend/hp-option.c:3162 backend/hp-option.c:3329 +#: backend/fujitsu.c:689 backend/hp-option.c:3162 backend/hp-option.c:3329 #: backend/hp-option.c:3342 #, no-c-format msgid "Off" msgstr "" -#: backend/fujitsu.c:689 +#: backend/fujitsu.c:691 #, no-c-format msgid "DTC" msgstr "" -#: backend/fujitsu.c:690 +#: backend/fujitsu.c:692 #, no-c-format msgid "SDTC" msgstr "" -#: backend/fujitsu.c:692 backend/teco1.c:1152 backend/teco1.c:1153 +#: backend/fujitsu.c:694 backend/teco1.c:1152 backend/teco1.c:1153 #: backend/teco2.c:1967 backend/teco2.c:1968 backend/teco3.c:977 #: backend/teco3.c:978 #, no-c-format msgid "Dither" msgstr "" -#: backend/fujitsu.c:693 +#: backend/fujitsu.c:695 #, no-c-format msgid "Diffusion" msgstr "" -#: backend/fujitsu.c:698 +#: backend/fujitsu.c:700 #, fuzzy, no-c-format msgid "White" msgstr "Hvitnivå" -#: backend/fujitsu.c:699 +#: backend/fujitsu.c:701 #, fuzzy, no-c-format msgid "Black" msgstr "Svartnivå" -#: backend/fujitsu.c:704 +#: backend/fujitsu.c:706 #, no-c-format msgid "Continue" msgstr "" -#: backend/fujitsu.c:705 +#: backend/fujitsu.c:707 #, no-c-format msgid "Stop" msgstr "" -#: backend/fujitsu.c:707 +#: backend/fujitsu.c:709 #, no-c-format msgid "10mm" msgstr "" -#: backend/fujitsu.c:708 +#: backend/fujitsu.c:710 #, no-c-format msgid "15mm" msgstr "" -#: backend/fujitsu.c:709 +#: backend/fujitsu.c:711 #, no-c-format msgid "20mm" msgstr "" -#: backend/fujitsu.c:711 backend/hp-option.c:3048 +#: backend/fujitsu.c:713 backend/hp-option.c:3048 #, no-c-format msgid "Horizontal" msgstr "" -#: backend/fujitsu.c:712 +#: backend/fujitsu.c:714 #, no-c-format msgid "Horizontal bold" msgstr "" -#: backend/fujitsu.c:713 +#: backend/fujitsu.c:715 #, no-c-format msgid "Horizontal narrow" msgstr "" -#: backend/fujitsu.c:714 backend/hp-option.c:3047 +#: backend/fujitsu.c:716 backend/hp-option.c:3047 #, no-c-format msgid "Vertical" msgstr "" -#: backend/fujitsu.c:715 +#: backend/fujitsu.c:717 #, no-c-format msgid "Vertical bold" msgstr "" -#: backend/fujitsu.c:717 +#: backend/fujitsu.c:719 #, no-c-format msgid "Top to bottom" msgstr "" -#: backend/fujitsu.c:718 +#: backend/fujitsu.c:720 #, no-c-format msgid "Bottom to top" msgstr "" -#: backend/fujitsu.c:720 +#: backend/fujitsu.c:722 #, no-c-format msgid "Front" msgstr "" -#: backend/fujitsu.c:721 +#: backend/fujitsu.c:723 #, no-c-format msgid "Back" msgstr "" -#: backend/fujitsu.c:3144 backend/pixma_sane_options.c:145 +#: backend/fujitsu.c:3148 backend/pixma/pixma_sane_options.c:145 #, no-c-format msgid "Gamma function exponent" msgstr "" -#: backend/fujitsu.c:3145 backend/pixma_sane_options.c:146 +#: backend/fujitsu.c:3149 backend/pixma/pixma_sane_options.c:146 #, no-c-format msgid "Changes intensity of midtones" msgstr "" -#: backend/fujitsu.c:3194 +#: backend/fujitsu.c:3198 #, no-c-format msgid "RIF" msgstr "" -#: backend/fujitsu.c:3195 +#: backend/fujitsu.c:3199 #, no-c-format msgid "Reverse image format" msgstr "" -#: backend/fujitsu.c:3212 +#: backend/fujitsu.c:3216 #, no-c-format msgid "Halftone type" msgstr "" -#: backend/fujitsu.c:3213 +#: backend/fujitsu.c:3217 #, no-c-format msgid "Control type of halftone filter" msgstr "" -#: backend/fujitsu.c:3234 +#: backend/fujitsu.c:3238 #, no-c-format msgid "Control pattern of halftone filter" msgstr "" -#: backend/fujitsu.c:3256 +#: backend/fujitsu.c:3260 #, no-c-format msgid "Outline" msgstr "" -#: backend/fujitsu.c:3257 +#: backend/fujitsu.c:3261 #, fuzzy, no-c-format msgid "Perform outline extraction" msgstr "Grov kalibrering" -#: backend/fujitsu.c:3268 +#: backend/fujitsu.c:3272 #, no-c-format msgid "Emphasis" msgstr "" -#: backend/fujitsu.c:3269 +#: backend/fujitsu.c:3273 #, no-c-format msgid "Negative to smooth or positive to sharpen image" msgstr "" -#: backend/fujitsu.c:3287 +#: backend/fujitsu.c:3291 #, fuzzy, no-c-format msgid "Separation" msgstr "Kalibrering" -#: backend/fujitsu.c:3288 +#: backend/fujitsu.c:3292 #, no-c-format msgid "Enable automatic separation of image and text" msgstr "" -#: backend/fujitsu.c:3299 +#: backend/fujitsu.c:3303 #, fuzzy, no-c-format msgid "Mirroring" msgstr "Speilbilde" -#: backend/fujitsu.c:3300 +#: backend/fujitsu.c:3304 #, fuzzy, no-c-format msgid "Reflect output image horizontally" msgstr "Speilbilde" -#: backend/fujitsu.c:3317 +#: backend/fujitsu.c:3321 #, fuzzy, no-c-format msgid "White level follower" msgstr "Hvitnivå for blå" -#: backend/fujitsu.c:3318 +#: backend/fujitsu.c:3322 #, fuzzy, no-c-format msgid "Control white level follower" msgstr "Kontrollerer rød-nivå" -#: backend/fujitsu.c:3336 +#: backend/fujitsu.c:3340 #, fuzzy, no-c-format msgid "BP filter" msgstr "Fargestrektegning" -#: backend/fujitsu.c:3337 +#: backend/fujitsu.c:3341 #, no-c-format msgid "Improves quality of high resolution ball-point pen text" msgstr "" -#: backend/fujitsu.c:3353 backend/hp-option.h:73 +#: backend/fujitsu.c:3357 backend/hp-option.h:73 #, no-c-format msgid "Smoothing" msgstr "" -#: backend/fujitsu.c:3354 +#: backend/fujitsu.c:3358 #, no-c-format msgid "Enable smoothing for improved OCR" msgstr "" -#: backend/fujitsu.c:3370 +#: backend/fujitsu.c:3374 #, fuzzy, no-c-format msgid "Gamma curve" msgstr "Gammaverdi" -#: backend/fujitsu.c:3371 +#: backend/fujitsu.c:3375 #, no-c-format msgid "Gamma curve, from light to dark, but upper two may not work" msgstr "" -#: backend/fujitsu.c:3393 backend/genesys/genesys.cpp:4187 -#: backend/pixma_sane_options.c:335 +#: backend/fujitsu.c:3397 backend/genesys/genesys.cpp:4229 +#: backend/pixma/pixma_sane_options.c:335 #, no-c-format msgid "Threshold curve" msgstr "" -#: backend/fujitsu.c:3394 +#: backend/fujitsu.c:3398 #, no-c-format msgid "" "Threshold curve, from light to dark, but upper two may not be linear" msgstr "" -#: backend/fujitsu.c:3416 +#: backend/fujitsu.c:3420 #, no-c-format msgid "Threshold white" msgstr "" -#: backend/fujitsu.c:3417 +#: backend/fujitsu.c:3421 #, no-c-format msgid "Set pixels equal to threshold to white instead of black" msgstr "" -#: backend/fujitsu.c:3433 backend/fujitsu.c:3434 +#: backend/fujitsu.c:3437 backend/fujitsu.c:3438 #, fuzzy, no-c-format msgid "Noise removal" msgstr "Støyreduksjon" -#: backend/fujitsu.c:3450 +#: backend/fujitsu.c:3454 #, no-c-format msgid "Matrix 5x5" msgstr "" -#: backend/fujitsu.c:3451 +#: backend/fujitsu.c:3455 #, no-c-format msgid "Remove 5 pixel square noise" msgstr "" -#: backend/fujitsu.c:3467 +#: backend/fujitsu.c:3471 #, no-c-format msgid "Matrix 4x4" msgstr "" -#: backend/fujitsu.c:3468 +#: backend/fujitsu.c:3472 #, no-c-format msgid "Remove 4 pixel square noise" msgstr "" -#: backend/fujitsu.c:3484 +#: backend/fujitsu.c:3488 #, no-c-format msgid "Matrix 3x3" msgstr "" -#: backend/fujitsu.c:3485 +#: backend/fujitsu.c:3489 #, no-c-format msgid "Remove 3 pixel square noise" msgstr "" -#: backend/fujitsu.c:3501 +#: backend/fujitsu.c:3505 #, no-c-format msgid "Matrix 2x2" msgstr "" -#: backend/fujitsu.c:3502 +#: backend/fujitsu.c:3506 #, no-c-format msgid "Remove 2 pixel square noise" msgstr "" -#: backend/fujitsu.c:3521 +#: backend/fujitsu.c:3525 #, no-c-format msgid "Variance" msgstr "" -#: backend/fujitsu.c:3522 +#: backend/fujitsu.c:3526 #, no-c-format msgid "Set SDTC variance rate (sensitivity), 0 equals 127" msgstr "" -#: backend/fujitsu.c:3555 +#: backend/fujitsu.c:3559 #, fuzzy, no-c-format msgid "Auto width detection" msgstr "Ingen korrigering" -#: backend/fujitsu.c:3556 +#: backend/fujitsu.c:3560 #, no-c-format msgid "Scanner detects paper sides. May reduce scanning speed." msgstr "" -#: backend/fujitsu.c:3573 +#: backend/fujitsu.c:3577 #, fuzzy, no-c-format msgid "Auto length detection" msgstr "Ingen korrigering" -#: backend/fujitsu.c:3574 +#: backend/fujitsu.c:3578 #, no-c-format msgid "Scanner detects paper lower edge. May confuse some frontends." msgstr "" -#: backend/fujitsu.c:3600 +#: backend/fujitsu.c:3604 #, no-c-format msgid "Compression" msgstr "" -#: backend/fujitsu.c:3601 +#: backend/fujitsu.c:3605 #, no-c-format msgid "Enable compressed data. May crash your front-end program" msgstr "" -#: backend/fujitsu.c:3621 +#: backend/fujitsu.c:3625 #, no-c-format msgid "Compression argument" msgstr "" -#: backend/fujitsu.c:3622 +#: backend/fujitsu.c:3626 #, no-c-format msgid "" "Level of JPEG compression. 1 is small file, 7 is large file. 0 (default) " "is same as 4" msgstr "" -#: backend/fujitsu.c:3652 +#: backend/fujitsu.c:3656 #, no-c-format msgid "DF action" msgstr "" -#: backend/fujitsu.c:3653 +#: backend/fujitsu.c:3657 #, no-c-format msgid "Action following double feed error" msgstr "" -#: backend/fujitsu.c:3669 +#: backend/fujitsu.c:3673 #, no-c-format msgid "DF skew" msgstr "" -#: backend/fujitsu.c:3670 +#: backend/fujitsu.c:3674 #, no-c-format msgid "Enable double feed error due to skew" msgstr "" -#: backend/fujitsu.c:3688 +#: backend/fujitsu.c:3692 #, no-c-format msgid "DF thickness" msgstr "" -#: backend/fujitsu.c:3689 +#: backend/fujitsu.c:3693 #, no-c-format msgid "Enable double feed error due to paper thickness" msgstr "" -#: backend/fujitsu.c:3707 +#: backend/fujitsu.c:3711 #, no-c-format msgid "DF length" msgstr "" -#: backend/fujitsu.c:3708 +#: backend/fujitsu.c:3712 #, no-c-format msgid "Enable double feed error due to paper length" msgstr "" -#: backend/fujitsu.c:3731 +#: backend/fujitsu.c:3735 #, no-c-format msgid "DF length difference" msgstr "" -#: backend/fujitsu.c:3732 +#: backend/fujitsu.c:3736 #, no-c-format msgid "Difference in page length to trigger double feed error" msgstr "" -#: backend/fujitsu.c:3755 +#: backend/fujitsu.c:3759 #, no-c-format msgid "DF recovery mode" msgstr "" -#: backend/fujitsu.c:3756 +#: backend/fujitsu.c:3760 #, no-c-format msgid "Request scanner to reverse feed on paper jam" msgstr "" -#: backend/fujitsu.c:3775 +#: backend/fujitsu.c:3779 #, no-c-format msgid "Paper protection" msgstr "" -#: backend/fujitsu.c:3776 +#: backend/fujitsu.c:3780 #, no-c-format msgid "Request scanner to predict jams in the ADF" msgstr "" -#: backend/fujitsu.c:3795 +#: backend/fujitsu.c:3799 #, fuzzy, no-c-format msgid "Advanced paper protection" msgstr "Spesielle valg" -#: backend/fujitsu.c:3796 +#: backend/fujitsu.c:3800 #, no-c-format msgid "Request scanner to predict jams in the ADF using improved sensors" msgstr "" -#: backend/fujitsu.c:3815 +#: backend/fujitsu.c:3819 #, fuzzy, no-c-format msgid "Staple detection" msgstr "Ingen korrigering" -#: backend/fujitsu.c:3816 +#: backend/fujitsu.c:3820 #, no-c-format msgid "Request scanner to detect jams in the ADF caused by staples" msgstr "" -#: backend/fujitsu.c:3835 +#: backend/fujitsu.c:3839 #, no-c-format msgid "Background color" msgstr "" -#: backend/fujitsu.c:3836 +#: backend/fujitsu.c:3840 #, no-c-format msgid "" "Set color of background for scans. May conflict with overscan option" msgstr "" -#: backend/fujitsu.c:3856 +#: backend/fujitsu.c:3860 #, fuzzy, no-c-format msgid "Dropout color" msgstr "Lampe på" -#: backend/fujitsu.c:3857 +#: backend/fujitsu.c:3861 #, no-c-format msgid "" "One-pass scanners use only one color during gray or binary scanning, " "useful for colored paper or ink" msgstr "" -#: backend/fujitsu.c:3880 +#: backend/fujitsu.c:3884 #, no-c-format msgid "Buffer mode" msgstr "" -#: backend/fujitsu.c:3881 +#: backend/fujitsu.c:3885 #, no-c-format msgid "Request scanner to read pages quickly from ADF into internal memory" msgstr "" -#: backend/fujitsu.c:3900 +#: backend/fujitsu.c:3904 #, no-c-format msgid "Prepick" msgstr "" -#: backend/fujitsu.c:3901 +#: backend/fujitsu.c:3905 #, no-c-format msgid "Request scanner to grab next page from ADF" msgstr "" -#: backend/fujitsu.c:3920 +#: backend/fujitsu.c:3924 #, no-c-format msgid "Overscan" msgstr "" -#: backend/fujitsu.c:3921 +#: backend/fujitsu.c:3925 #, no-c-format msgid "" "Collect a few mm of background on top side of scan, before paper enters " @@ -2569,65 +2598,65 @@ msgid "" "collection on remaining sides. May conflict with bgcolor option" msgstr "" -#: backend/fujitsu.c:3939 +#: backend/fujitsu.c:3943 #, no-c-format msgid "Sleep timer" msgstr "" -#: backend/fujitsu.c:3940 +#: backend/fujitsu.c:3944 #, no-c-format msgid "" "Time in minutes until the internal power supply switches to sleep mode" msgstr "" -#: backend/fujitsu.c:3958 +#: backend/fujitsu.c:3962 #, fuzzy, no-c-format msgid "Off timer" msgstr "Lampe av" -#: backend/fujitsu.c:3959 +#: backend/fujitsu.c:3963 #, no-c-format msgid "" "Time in minutes until the internal power supply switches the scanner " "off. Will be rounded to nearest 15 minutes. Zero means never power off." msgstr "" -#: backend/fujitsu.c:3977 +#: backend/fujitsu.c:3981 #, fuzzy, no-c-format msgid "Duplex offset" msgstr "Lampe av" -#: backend/fujitsu.c:3978 +#: backend/fujitsu.c:3982 #, no-c-format msgid "Adjust front/back offset" msgstr "" -#: backend/fujitsu.c:3995 backend/plustek.c:1025 backend/umax_pp.c:800 +#: backend/fujitsu.c:3999 backend/plustek.c:1025 backend/umax_pp.c:794 #, fuzzy, no-c-format msgid "Green offset" msgstr "Lampe av" -#: backend/fujitsu.c:3996 +#: backend/fujitsu.c:4000 #, fuzzy, no-c-format msgid "Adjust green/red offset" msgstr "Lampe av" -#: backend/fujitsu.c:4013 backend/plustek.c:1041 backend/umax_pp.c:812 +#: backend/fujitsu.c:4017 backend/plustek.c:1041 backend/umax_pp.c:806 #, fuzzy, no-c-format msgid "Blue offset" msgstr "Lampe av" -#: backend/fujitsu.c:4014 +#: backend/fujitsu.c:4018 #, fuzzy, no-c-format msgid "Adjust blue/red offset" msgstr "Kontrast blåkanal" -#: backend/fujitsu.c:4027 +#: backend/fujitsu.c:4031 #, no-c-format msgid "Low Memory" msgstr "" -#: backend/fujitsu.c:4028 +#: backend/fujitsu.c:4032 #, no-c-format msgid "" "Limit driver memory usage for use in embedded systems. Causes some " @@ -2636,521 +2665,514 @@ msgid "" "only be used with custom front-end software." msgstr "" -#: backend/fujitsu.c:4043 +#: backend/fujitsu.c:4047 #, fuzzy, no-c-format msgid "Duplex side" msgstr "Full skan" -#: backend/fujitsu.c:4044 +#: backend/fujitsu.c:4048 #, no-c-format msgid "" "Tells which side (0=front, 1=back) of a duplex scan the next call to " "sane_read will return." msgstr "" -#: backend/fujitsu.c:4055 +#: backend/fujitsu.c:4059 #, no-c-format msgid "Hardware deskew and crop" msgstr "" -#: backend/fujitsu.c:4056 +#: backend/fujitsu.c:4060 #, no-c-format msgid "Request scanner to rotate and crop pages digitally." msgstr "" -#: backend/fujitsu.c:4067 backend/kvs1025_opt.c:871 +#: backend/fujitsu.c:4071 backend/kvs1025_opt.c:871 #, no-c-format msgid "Software deskew" msgstr "" -#: backend/fujitsu.c:4068 +#: backend/fujitsu.c:4072 #, no-c-format msgid "Request driver to rotate skewed pages digitally." msgstr "" -#: backend/fujitsu.c:4080 backend/kvs1025_opt.c:880 +#: backend/fujitsu.c:4084 backend/kvs1025_opt.c:880 #, no-c-format msgid "Software despeckle diameter" msgstr "" -#: backend/fujitsu.c:4081 +#: backend/fujitsu.c:4085 #, no-c-format msgid "Maximum diameter of lone dots to remove from scan." msgstr "" -#: backend/fujitsu.c:4100 backend/genesys/genesys.cpp:4117 +#: backend/fujitsu.c:4104 backend/genesys/genesys.cpp:4159 #, no-c-format msgid "Software crop" msgstr "" -#: backend/fujitsu.c:4101 +#: backend/fujitsu.c:4105 #, no-c-format msgid "Request driver to remove border from pages digitally." msgstr "" -#: backend/fujitsu.c:4130 +#: backend/fujitsu.c:4134 #, no-c-format msgid "Halt on Cancel" msgstr "" -#: backend/fujitsu.c:4131 +#: backend/fujitsu.c:4135 #, no-c-format msgid "" "Request driver to halt the paper feed instead of eject during a cancel." msgstr "" -#: backend/fujitsu.c:4142 +#: backend/fujitsu.c:4146 #, fuzzy, no-c-format msgid "Endorser Options" msgstr "Spesielle valg" -#: backend/fujitsu.c:4143 +#: backend/fujitsu.c:4147 #, no-c-format msgid "Controls for endorser unit" msgstr "" -#: backend/fujitsu.c:4154 +#: backend/fujitsu.c:4158 #, no-c-format msgid "Endorser" msgstr "" -#: backend/fujitsu.c:4155 +#: backend/fujitsu.c:4159 #, no-c-format msgid "Enable endorser unit" msgstr "" -#: backend/fujitsu.c:4170 +#: backend/fujitsu.c:4174 #, no-c-format msgid "Endorser bits" msgstr "" -#: backend/fujitsu.c:4171 +#: backend/fujitsu.c:4175 #, no-c-format msgid "Determines maximum endorser counter value." msgstr "" -#: backend/fujitsu.c:4196 +#: backend/fujitsu.c:4200 #, no-c-format msgid "Endorser value" msgstr "" -#: backend/fujitsu.c:4197 +#: backend/fujitsu.c:4201 #, no-c-format msgid "Initial endorser counter value." msgstr "" -#: backend/fujitsu.c:4220 +#: backend/fujitsu.c:4224 #, no-c-format msgid "Endorser step" msgstr "" -#: backend/fujitsu.c:4221 +#: backend/fujitsu.c:4225 #, no-c-format msgid "Change endorser counter value by this much for each page." msgstr "" -#: backend/fujitsu.c:4244 +#: backend/fujitsu.c:4248 #, no-c-format msgid "Endorser Y" msgstr "" -#: backend/fujitsu.c:4245 +#: backend/fujitsu.c:4249 #, no-c-format msgid "Endorser print offset from top of paper." msgstr "" -#: backend/fujitsu.c:4270 +#: backend/fujitsu.c:4274 #, no-c-format msgid "Endorser font" msgstr "" -#: backend/fujitsu.c:4271 +#: backend/fujitsu.c:4275 #, no-c-format msgid "Endorser printing font." msgstr "" -#: backend/fujitsu.c:4300 +#: backend/fujitsu.c:4304 #, fuzzy, no-c-format msgid "Endorser direction" msgstr "Støyreduksjon" -#: backend/fujitsu.c:4301 +#: backend/fujitsu.c:4305 #, no-c-format msgid "Endorser printing direction." msgstr "" -#: backend/fujitsu.c:4325 +#: backend/fujitsu.c:4329 #, no-c-format msgid "Endorser side" msgstr "" -#: backend/fujitsu.c:4326 +#: backend/fujitsu.c:4330 #, no-c-format msgid "Endorser printing side, requires hardware support to change" msgstr "" -#: backend/fujitsu.c:4351 +#: backend/fujitsu.c:4355 #, no-c-format msgid "Endorser string" msgstr "" -#: backend/fujitsu.c:4352 +#: backend/fujitsu.c:4356 #, no-c-format msgid "" "Endorser alphanumeric print format. %05ud or %08ud at the end will be " "replaced by counter value." msgstr "" -#: backend/fujitsu.c:4379 +#: backend/fujitsu.c:4383 #, no-c-format msgid "Top edge" msgstr "" -#: backend/fujitsu.c:4380 +#: backend/fujitsu.c:4384 #, no-c-format msgid "Paper is pulled partly into ADF" msgstr "" -#: backend/fujitsu.c:4391 +#: backend/fujitsu.c:4395 #, fuzzy, no-c-format msgid "A3 paper" msgstr "Fra papir" -#: backend/fujitsu.c:4392 +#: backend/fujitsu.c:4396 #, no-c-format msgid "A3 paper detected" msgstr "" -#: backend/fujitsu.c:4403 +#: backend/fujitsu.c:4407 #, fuzzy, no-c-format msgid "B4 paper" msgstr "Fra papir" -#: backend/fujitsu.c:4404 +#: backend/fujitsu.c:4408 #, no-c-format msgid "B4 paper detected" msgstr "" -#: backend/fujitsu.c:4415 +#: backend/fujitsu.c:4419 #, fuzzy, no-c-format msgid "A4 paper" msgstr "Fra papir" -#: backend/fujitsu.c:4416 +#: backend/fujitsu.c:4420 #, no-c-format msgid "A4 paper detected" msgstr "" -#: backend/fujitsu.c:4427 +#: backend/fujitsu.c:4431 #, fuzzy, no-c-format msgid "B5 paper" msgstr "Fra papir" -#: backend/fujitsu.c:4428 +#: backend/fujitsu.c:4432 #, no-c-format msgid "B5 paper detected" msgstr "" -#: backend/fujitsu.c:4451 +#: backend/fujitsu.c:4455 #, no-c-format msgid "OMR or DF" msgstr "" -#: backend/fujitsu.c:4452 +#: backend/fujitsu.c:4456 #, no-c-format msgid "OMR or double feed detected" msgstr "" -#: backend/fujitsu.c:4475 +#: backend/fujitsu.c:4479 #, no-c-format msgid "Power saving" msgstr "" -#: backend/fujitsu.c:4476 +#: backend/fujitsu.c:4480 #, no-c-format msgid "Scanner in power saving mode" msgstr "" -#: backend/fujitsu.c:4499 +#: backend/fujitsu.c:4503 #, fuzzy, no-c-format msgid "Manual feed" msgstr "Manuell førfokus" -#: backend/fujitsu.c:4500 +#: backend/fujitsu.c:4504 #, fuzzy, no-c-format msgid "Manual feed selected" msgstr "Manuell førfokus" -#: backend/fujitsu.c:4523 +#: backend/fujitsu.c:4527 #, no-c-format msgid "Function" msgstr "" -#: backend/fujitsu.c:4524 +#: backend/fujitsu.c:4528 #, no-c-format msgid "Function character on screen" msgstr "" -#: backend/fujitsu.c:4535 +#: backend/fujitsu.c:4539 #, no-c-format msgid "Ink low" msgstr "" -#: backend/fujitsu.c:4536 +#: backend/fujitsu.c:4540 #, no-c-format msgid "Imprinter ink running low" msgstr "" -#: backend/fujitsu.c:4547 +#: backend/fujitsu.c:4551 #, no-c-format msgid "Double feed" msgstr "" -#: backend/fujitsu.c:4548 +#: backend/fujitsu.c:4552 #, no-c-format msgid "Double feed detected" msgstr "" -#: backend/fujitsu.c:4559 +#: backend/fujitsu.c:4563 #, no-c-format msgid "Error code" msgstr "" -#: backend/fujitsu.c:4560 +#: backend/fujitsu.c:4564 #, fuzzy, no-c-format msgid "Hardware error code" msgstr "Skanoppløsning" -#: backend/fujitsu.c:4571 +#: backend/fujitsu.c:4575 #, no-c-format msgid "Skew angle" msgstr "" -#: backend/fujitsu.c:4572 +#: backend/fujitsu.c:4576 #, no-c-format msgid "Requires black background for scanning" msgstr "" -#: backend/fujitsu.c:4583 +#: backend/fujitsu.c:4587 #, no-c-format msgid "Ink remaining" msgstr "" -#: backend/fujitsu.c:4584 +#: backend/fujitsu.c:4588 #, fuzzy, no-c-format msgid "Imprinter ink level" msgstr "Hvitnivå" -#: backend/fujitsu.c:4595 +#: backend/fujitsu.c:4599 #, fuzzy, no-c-format msgid "Density" msgstr "lav densitets utskrift" -#: backend/fujitsu.c:4596 +#: backend/fujitsu.c:4600 #, no-c-format msgid "Density dial" msgstr "" -#: backend/fujitsu.c:4607 backend/fujitsu.c:4608 +#: backend/fujitsu.c:4611 backend/fujitsu.c:4612 #, fuzzy, no-c-format msgid "Duplex switch" msgstr "Full skan" -#: backend/genesys/genesys.cpp:4118 +#: backend/genesys/genesys.cpp:4160 #, no-c-format msgid "Request backend to remove border from pages digitally" msgstr "" -#: backend/genesys/genesys.cpp:4127 backend/kvs1025_opt.c:912 +#: backend/genesys/genesys.cpp:4169 backend/kvs1025_opt.c:912 #, no-c-format msgid "Request driver to discard pages with low numbers of dark pixels" msgstr "" -#: backend/genesys/genesys.cpp:4137 backend/kvs1025_opt.c:892 +#: backend/genesys/genesys.cpp:4179 backend/kvs1025_opt.c:892 #, no-c-format msgid "Software derotate" msgstr "" -#: backend/genesys/genesys.cpp:4138 backend/kvs1025_opt.c:894 +#: backend/genesys/genesys.cpp:4180 backend/kvs1025_opt.c:894 #, no-c-format msgid "Request driver to detect and correct 90 degree image rotation" msgstr "" -#: backend/genesys/genesys.cpp:4168 backend/pixma_sane_options.c:314 +#: backend/genesys/genesys.cpp:4210 backend/pixma/pixma_sane_options.c:314 #, no-c-format msgid "Extras" msgstr "" -#: backend/genesys/genesys.cpp:4188 backend/pixma_sane_options.c:336 +#: backend/genesys/genesys.cpp:4230 backend/pixma/pixma_sane_options.c:336 #, no-c-format msgid "Dynamic threshold curve, from light to dark, normally 50-65" msgstr "" -#: backend/genesys/genesys.cpp:4197 -#, no-c-format -msgid "Disable dynamic lineart" -msgstr "" - -#: backend/genesys/genesys.cpp:4199 -#, no-c-format -msgid "" -"Disable use of a software adaptive algorithm to generate lineart relying " -"instead on hardware lineart." -msgstr "" - -#: backend/genesys/genesys.cpp:4215 +#: backend/genesys/genesys.cpp:4240 #, no-c-format msgid "Disable interpolation" msgstr "" -#: backend/genesys/genesys.cpp:4218 +#: backend/genesys/genesys.cpp:4243 #, no-c-format msgid "" "When using high resolutions where the horizontal resolution is smaller " "than the vertical resolution this disables horizontal interpolation." msgstr "" -#: backend/genesys/genesys.cpp:4227 +#: backend/genesys/genesys.cpp:4252 #, fuzzy, no-c-format msgid "Color filter" msgstr "Fargestrektegning" -#: backend/genesys/genesys.cpp:4230 +#: backend/genesys/genesys.cpp:4255 #, no-c-format msgid "When using gray or lineart this option selects the used color." msgstr "" -#: backend/genesys/genesys.cpp:4254 +#: backend/genesys/genesys.cpp:4279 #, fuzzy, no-c-format msgid "Calibration file" msgstr "Kalibrering" -#: backend/genesys/genesys.cpp:4255 +#: backend/genesys/genesys.cpp:4280 #, fuzzy, no-c-format msgid "Specify the calibration file to use" msgstr "Kvalitets kalibrering" -#: backend/genesys/genesys.cpp:4272 +#: backend/genesys/genesys.cpp:4297 #, fuzzy, no-c-format msgid "Calibration cache expiration time" msgstr "Kalibrering" -#: backend/genesys/genesys.cpp:4273 +#: backend/genesys/genesys.cpp:4298 #, no-c-format msgid "" "Time (in minutes) before a cached calibration expires. A value of 0 " "means cache is not used. A negative value means cache never expires." msgstr "" -#: backend/genesys/genesys.cpp:4283 +#: backend/genesys/genesys.cpp:4308 #, fuzzy, no-c-format msgid "Lamp off time" msgstr "Lampe av" -#: backend/genesys/genesys.cpp:4286 +#: backend/genesys/genesys.cpp:4311 #, no-c-format msgid "" "The lamp will be turned off after the given time (in minutes). A value " "of 0 means, that the lamp won't be turned off." msgstr "" -#: backend/genesys/genesys.cpp:4296 +#: backend/genesys/genesys.cpp:4321 #, fuzzy, no-c-format msgid "Lamp off during scan" msgstr "Grov kalibrering" -#: backend/genesys/genesys.cpp:4297 +#: backend/genesys/genesys.cpp:4322 #, no-c-format msgid "The lamp will be turned off during scan. " msgstr "" -#: backend/genesys/genesys.cpp:4324 backend/genesys/genesys.cpp:4325 +#: backend/genesys/genesys.cpp:4349 backend/genesys/genesys.cpp:4350 #, fuzzy, no-c-format msgid "File button" msgstr "Vent på knappen" -#: backend/genesys/genesys.cpp:4369 backend/genesys/genesys.cpp:4370 +#: backend/genesys/genesys.cpp:4394 backend/genesys/genesys.cpp:4395 #, no-c-format msgid "OCR button" msgstr "" -#: backend/genesys/genesys.cpp:4381 backend/genesys/genesys.cpp:4382 +#: backend/genesys/genesys.cpp:4406 backend/genesys/genesys.cpp:4407 #, fuzzy, no-c-format msgid "Power button" msgstr "Vent på knappen" -#: backend/genesys/genesys.cpp:4393 backend/genesys/genesys.cpp:4394 +#: backend/genesys/genesys.cpp:4418 backend/genesys/genesys.cpp:4419 #, fuzzy, no-c-format msgid "Extra button" msgstr "Vent på knappen" -#: backend/genesys/genesys.cpp:4405 backend/gt68xx.c:755 +#: backend/genesys/genesys.cpp:4430 backend/gt68xx.c:755 #, fuzzy, no-c-format msgid "Needs calibration" msgstr "Grov kalibrering" -#: backend/genesys/genesys.cpp:4406 backend/gt68xx.c:756 +#: backend/genesys/genesys.cpp:4431 backend/gt68xx.c:756 backend/p5.c:1928 #, fuzzy, no-c-format msgid "The scanner needs calibration for the current settings" msgstr "Grov kalibrering kun for første skan" -#: backend/genesys/genesys.cpp:4417 backend/gt68xx.c:780 -#: backend/gt68xx.c:781 backend/pixma_sane_options.c:226 -#: backend/plustek.c:1080 +#: backend/genesys/genesys.cpp:4442 backend/gt68xx.c:780 +#: backend/gt68xx.c:781 backend/p5.c:1937 backend/p5.c:1938 +#: backend/pixma/pixma_sane_options.c:226 backend/plustek.c:1080 #, fuzzy, no-c-format msgid "Buttons" msgstr "Knappstatus" -#: backend/genesys/genesys.cpp:4426 backend/gt68xx.c:787 -#: backend/hp5400_sane.c:392 backend/hp-option.h:97 backend/niash.c:726 -#: backend/plustek.c:941 +#: backend/genesys/genesys.cpp:4451 backend/gt68xx.c:787 +#: backend/hp-option.h:97 backend/hp5400_sane.c:392 backend/niash.c:726 +#: backend/p5.c:1945 backend/plustek.c:941 #, fuzzy, no-c-format msgid "Calibrate" msgstr "Kalibrering" -#: backend/genesys/genesys.cpp:4428 backend/gt68xx.c:789 +#: backend/genesys/genesys.cpp:4453 backend/gt68xx.c:789 backend/p5.c:1947 #, fuzzy, no-c-format msgid "Start calibration using special sheet" msgstr "Grov kalibrering" -#: backend/genesys/genesys.cpp:4440 backend/gt68xx.c:802 +#: backend/genesys/genesys.cpp:4465 backend/gt68xx.c:802 backend/p5.c:1958 #, fuzzy, no-c-format msgid "Clear calibration" msgstr "Grov kalibrering" -#: backend/genesys/genesys.cpp:4441 backend/gt68xx.c:803 +#: backend/genesys/genesys.cpp:4466 backend/gt68xx.c:803 backend/p5.c:1960 #, fuzzy, no-c-format msgid "Clear calibration cache" msgstr "Kalibrering" -#: backend/genesys/genesys.cpp:4451 +#: backend/genesys/genesys.cpp:4476 #, fuzzy, no-c-format msgid "Force calibration" msgstr "Grov kalibrering" -#: backend/genesys/genesys.cpp:4452 +#: backend/genesys/genesys.cpp:4477 #, no-c-format msgid "Force calibration ignoring all and any calibration caches" msgstr "" -#: backend/genesys/genesys.cpp:4462 +#: backend/genesys/genesys.cpp:4487 #, fuzzy, no-c-format msgid "Ignore internal offsets" msgstr "Lampe av" -#: backend/genesys/genesys.cpp:4464 +#: backend/genesys/genesys.cpp:4489 #, no-c-format msgid "" "Acquires the image including the internal calibration areas of the " "scanner" msgstr "" -#: backend/gt68xx.c:149 backend/ma1509.c:108 backend/mustek.c:164 -#: backend/snapscan-options.c:87 backend/umax.c:182 +#: backend/genesys/genesys.h:79 backend/gt68xx.c:149 backend/ma1509.c:108 +#: backend/mustek.c:164 backend/snapscan-options.c:87 backend/umax.c:182 #, no-c-format msgid "Transparency Adapter" msgstr "" +#: backend/genesys/genesys.h:80 +#, no-c-format +msgid "Transparency Adapter Infrared" +msgstr "" + #: backend/gt68xx.c:470 #, no-c-format msgid "Gray mode color" @@ -3241,6 +3263,304 @@ msgstr "Gammaverdi" msgid "Sets the gamma value of all channels." msgstr "" +#: backend/hp-option.c:2987 +#, fuzzy, no-c-format +msgid "Advanced Options" +msgstr "Spesielle valg" + +#: backend/hp-option.c:3044 +#, no-c-format +msgid "Coarse" +msgstr "Grov" + +#: backend/hp-option.c:3045 +#, no-c-format +msgid "Fine" +msgstr "Fin" + +#: backend/hp-option.c:3046 +#, no-c-format +msgid "Bayer" +msgstr "" + +#: backend/hp-option.c:3049 backend/hp-option.c:3100 +#, no-c-format +msgid "Custom" +msgstr "Valgfri" + +#: backend/hp-option.c:3090 backend/hp-option.c:3146 +#: backend/hp-option.c:3161 +#, no-c-format +msgid "Auto" +msgstr "Automatisk" + +#: backend/hp-option.c:3091 +#, no-c-format +msgid "NTSC RGB" +msgstr "" + +#: backend/hp-option.c:3092 +#, no-c-format +msgid "XPA RGB" +msgstr "" + +#: backend/hp-option.c:3093 +#, no-c-format +msgid "Pass-through" +msgstr "" + +#: backend/hp-option.c:3094 +#, no-c-format +msgid "NTSC Gray" +msgstr "NTSC-grå" + +#: backend/hp-option.c:3095 +#, no-c-format +msgid "XPA Gray" +msgstr "XPA-grå" + +#: backend/hp-option.c:3147 +#, no-c-format +msgid "Slow" +msgstr "Treig" + +#: backend/hp-option.c:3148 backend/hp-option.c:3255 +#: backend/kvs40xx_opt.c:230 backend/matsushita.c:244 backend/mustek.c:149 +#: backend/plustek.c:234 backend/plustek_pp.c:203 backend/u12.c:155 +#, no-c-format +msgid "Normal" +msgstr "" + +#: backend/hp-option.c:3149 +#, no-c-format +msgid "Fast" +msgstr "Rask" + +#: backend/hp-option.c:3150 +#, no-c-format +msgid "Extra Fast" +msgstr "" + +#: backend/hp-option.c:3163 +#, no-c-format +msgid "2-pixel" +msgstr "" + +#: backend/hp-option.c:3164 +#, no-c-format +msgid "4-pixel" +msgstr "" + +#: backend/hp-option.c:3165 +#, no-c-format +msgid "8-pixel" +msgstr "" + +#: backend/hp-option.c:3176 +#, no-c-format +msgid "Print" +msgstr "" + +#: backend/hp-option.c:3177 backend/hp3900_sane.c:427 +#: backend/hp3900_sane.c:1019 +#, no-c-format +msgid "Slide" +msgstr "" + +#: backend/hp-option.c:3178 +#, fuzzy, no-c-format +msgid "Film-strip" +msgstr "Filmtype" + +#: backend/hp-option.c:3256 backend/hp5590.c:93 +#, no-c-format +msgid "ADF" +msgstr "" + +#: backend/hp-option.c:3257 +#, no-c-format +msgid "XPA" +msgstr "" + +#: backend/hp-option.c:3331 backend/hp-option.c:3344 +#, no-c-format +msgid "Conditional" +msgstr "" + +#: backend/hp-option.c:3417 +#, no-c-format +msgid "Experiment" +msgstr "" + +#: backend/hp-option.h:60 +#, fuzzy, no-c-format +msgid "Sharpening" +msgstr "Skarphet" + +#: backend/hp-option.h:61 +#, no-c-format +msgid "Set sharpening value." +msgstr "" + +#: backend/hp-option.h:66 +#, no-c-format +msgid "Auto Threshold" +msgstr "" + +#: backend/hp-option.h:68 +#, no-c-format +msgid "Enable automatic determination of threshold for line-art scans." +msgstr "" + +#: backend/hp-option.h:74 +#, no-c-format +msgid "Select smoothing filter." +msgstr "" + +#: backend/hp-option.h:79 +#, no-c-format +msgid "Unload media after scan" +msgstr "" + +#: backend/hp-option.h:80 +#, fuzzy, no-c-format +msgid "Unloads the media after a scan." +msgstr "Last bildet som gråskala" + +#: backend/hp-option.h:85 +#, fuzzy, no-c-format +msgid "Change document" +msgstr "Forbedring" + +#: backend/hp-option.h:86 +#, no-c-format +msgid "Change Document." +msgstr "" + +#: backend/hp-option.h:91 +#, no-c-format +msgid "Unload" +msgstr "" + +#: backend/hp-option.h:92 +#, no-c-format +msgid "Unload Document." +msgstr "" + +#: backend/hp-option.h:98 +#, fuzzy, no-c-format +msgid "Start calibration process." +msgstr "Grov kalibrering" + +#: backend/hp-option.h:103 +#, fuzzy, no-c-format +msgid "Media" +msgstr "Middels" + +#: backend/hp-option.h:104 +#, no-c-format +msgid "Set type of media." +msgstr "" + +#: backend/hp-option.h:109 +#, no-c-format +msgid "Exposure time" +msgstr "" + +#: backend/hp-option.h:111 +#, no-c-format +msgid "" +"A longer exposure time lets the scanner collect more light. Suggested " +"use is 175% for prints, 150% for normal slides and \"Negative\" for " +"negative film. For dark (underexposed) images you can increase this " +"value." +msgstr "" + +#: backend/hp-option.h:119 backend/hp-option.h:126 +#, fuzzy, no-c-format +msgid "Color Matrix" +msgstr "Fargemønster" + +#: backend/hp-option.h:121 +#, fuzzy, no-c-format +msgid "Set the scanner's color matrix." +msgstr "Kontrast rødkanal" + +#: backend/hp-option.h:127 +#, no-c-format +msgid "Custom color matrix." +msgstr "" + +#: backend/hp-option.h:132 +#, fuzzy, no-c-format +msgid "Mono Color Matrix" +msgstr "Fargemønster" + +#: backend/hp-option.h:133 +#, no-c-format +msgid "Custom color matrix for grayscale scans." +msgstr "" + +#: backend/hp-option.h:138 +#, fuzzy, no-c-format +msgid "Mirror horizontal" +msgstr "Speilbilde" + +#: backend/hp-option.h:139 +#, fuzzy, no-c-format +msgid "Mirror image horizontally." +msgstr "Speilbilde" + +#: backend/hp-option.h:144 +#, fuzzy, no-c-format +msgid "Mirror vertical" +msgstr "Speilbilde" + +#: backend/hp-option.h:145 +#, fuzzy, no-c-format +msgid "Mirror image vertically." +msgstr "Speilbilde" + +#: backend/hp-option.h:150 +#, fuzzy, no-c-format +msgid "Update options" +msgstr "Spesielle valg" + +#: backend/hp-option.h:151 +#, fuzzy, no-c-format +msgid "Update options." +msgstr "Spesielle valg" + +#: backend/hp-option.h:156 +#, no-c-format +msgid "8 bit output" +msgstr "" + +#: backend/hp-option.h:158 +#, no-c-format +msgid "Use bit depth greater eight internally, but output only eight bits." +msgstr "" + +#: backend/hp-option.h:164 +#, no-c-format +msgid "Front button wait" +msgstr "" + +#: backend/hp-option.h:165 +#, no-c-format +msgid "Wait to scan for front-panel button push." +msgstr "" + +#: backend/hp-option.h:172 +#, no-c-format +msgid "Shut off lamp" +msgstr "" + +#: backend/hp-option.h:173 +#, no-c-format +msgid "Shut off scanner lamp." +msgstr "Slå av skanner lampen." + #: backend/hp3500.c:1020 #, fuzzy, no-c-format msgid "Geometry Group" @@ -3251,12 +3571,6 @@ msgstr "Geometri" msgid "Scan Mode Group" msgstr "" -#: backend/hp3900_sane.c:427 backend/hp3900_sane.c:1019 -#: backend/hp-option.c:3177 -#, no-c-format -msgid "Slide" -msgstr "" - #: backend/hp3900_sane.c:1405 #, no-c-format msgid "Scanner model" @@ -3450,11 +3764,6 @@ msgstr "" msgid "Calibrates for black and white level." msgstr "" -#: backend/hp5590.c:93 backend/hp-option.c:3256 -#, no-c-format -msgid "ADF" -msgstr "" - #: backend/hp5590.c:95 #, fuzzy, no-c-format msgid "TMA Slides" @@ -3565,293 +3874,6 @@ msgid "" "r*65536+256*g+b or gray value (default=violet or gray)" msgstr "" -#: backend/hp-option.c:2987 -#, fuzzy, no-c-format -msgid "Advanced Options" -msgstr "Spesielle valg" - -#: backend/hp-option.c:3044 -#, no-c-format -msgid "Coarse" -msgstr "Grov" - -#: backend/hp-option.c:3045 -#, no-c-format -msgid "Fine" -msgstr "Fin" - -#: backend/hp-option.c:3046 -#, no-c-format -msgid "Bayer" -msgstr "" - -#: backend/hp-option.c:3049 backend/hp-option.c:3100 -#, no-c-format -msgid "Custom" -msgstr "Valgfri" - -#: backend/hp-option.c:3090 backend/hp-option.c:3146 -#: backend/hp-option.c:3161 -#, no-c-format -msgid "Auto" -msgstr "Automatisk" - -#: backend/hp-option.c:3091 -#, no-c-format -msgid "NTSC RGB" -msgstr "" - -#: backend/hp-option.c:3092 -#, no-c-format -msgid "XPA RGB" -msgstr "" - -#: backend/hp-option.c:3093 -#, no-c-format -msgid "Pass-through" -msgstr "" - -#: backend/hp-option.c:3094 -#, no-c-format -msgid "NTSC Gray" -msgstr "NTSC-grå" - -#: backend/hp-option.c:3095 -#, no-c-format -msgid "XPA Gray" -msgstr "XPA-grå" - -#: backend/hp-option.c:3147 -#, no-c-format -msgid "Slow" -msgstr "Treig" - -#: backend/hp-option.c:3148 backend/hp-option.c:3255 -#: backend/kvs40xx_opt.c:230 backend/matsushita.c:244 backend/mustek.c:149 -#: backend/plustek.c:234 backend/plustek_pp.c:203 backend/u12.c:155 -#, no-c-format -msgid "Normal" -msgstr "" - -#: backend/hp-option.c:3149 -#, no-c-format -msgid "Fast" -msgstr "Rask" - -#: backend/hp-option.c:3150 -#, no-c-format -msgid "Extra Fast" -msgstr "" - -#: backend/hp-option.c:3163 -#, no-c-format -msgid "2-pixel" -msgstr "" - -#: backend/hp-option.c:3164 -#, no-c-format -msgid "4-pixel" -msgstr "" - -#: backend/hp-option.c:3165 -#, no-c-format -msgid "8-pixel" -msgstr "" - -#: backend/hp-option.c:3176 -#, no-c-format -msgid "Print" -msgstr "" - -#: backend/hp-option.c:3178 -#, fuzzy, no-c-format -msgid "Film-strip" -msgstr "Filmtype" - -#: backend/hp-option.c:3257 -#, no-c-format -msgid "XPA" -msgstr "" - -#: backend/hp-option.c:3331 backend/hp-option.c:3344 -#, no-c-format -msgid "Conditional" -msgstr "" - -#: backend/hp-option.c:3417 -#, no-c-format -msgid "Experiment" -msgstr "" - -#: backend/hp-option.h:60 -#, fuzzy, no-c-format -msgid "Sharpening" -msgstr "Skarphet" - -#: backend/hp-option.h:61 -#, no-c-format -msgid "Set sharpening value." -msgstr "" - -#: backend/hp-option.h:66 -#, no-c-format -msgid "Auto Threshold" -msgstr "" - -#: backend/hp-option.h:68 -#, no-c-format -msgid "Enable automatic determination of threshold for line-art scans." -msgstr "" - -#: backend/hp-option.h:74 -#, no-c-format -msgid "Select smoothing filter." -msgstr "" - -#: backend/hp-option.h:79 -#, no-c-format -msgid "Unload media after scan" -msgstr "" - -#: backend/hp-option.h:80 -#, fuzzy, no-c-format -msgid "Unloads the media after a scan." -msgstr "Last bildet som gråskala" - -#: backend/hp-option.h:85 -#, fuzzy, no-c-format -msgid "Change document" -msgstr "Forbedring" - -#: backend/hp-option.h:86 -#, no-c-format -msgid "Change Document." -msgstr "" - -#: backend/hp-option.h:91 -#, no-c-format -msgid "Unload" -msgstr "" - -#: backend/hp-option.h:92 -#, no-c-format -msgid "Unload Document." -msgstr "" - -#: backend/hp-option.h:98 -#, fuzzy, no-c-format -msgid "Start calibration process." -msgstr "Grov kalibrering" - -#: backend/hp-option.h:103 -#, fuzzy, no-c-format -msgid "Media" -msgstr "Middels" - -#: backend/hp-option.h:104 -#, no-c-format -msgid "Set type of media." -msgstr "" - -#: backend/hp-option.h:109 -#, no-c-format -msgid "Exposure time" -msgstr "" - -#: backend/hp-option.h:111 -#, no-c-format -msgid "" -"A longer exposure time lets the scanner collect more light. Suggested " -"use is 175% for prints, 150% for normal slides and \"Negative\" for " -"negative film. For dark (underexposed) images you can increase this " -"value." -msgstr "" - -#: backend/hp-option.h:119 backend/hp-option.h:126 -#, fuzzy, no-c-format -msgid "Color Matrix" -msgstr "Fargemønster" - -#: backend/hp-option.h:121 -#, fuzzy, no-c-format -msgid "Set the scanner's color matrix." -msgstr "Kontrast rødkanal" - -#: backend/hp-option.h:127 -#, no-c-format -msgid "Custom color matrix." -msgstr "" - -#: backend/hp-option.h:132 -#, fuzzy, no-c-format -msgid "Mono Color Matrix" -msgstr "Fargemønster" - -#: backend/hp-option.h:133 -#, no-c-format -msgid "Custom color matrix for grayscale scans." -msgstr "" - -#: backend/hp-option.h:138 -#, fuzzy, no-c-format -msgid "Mirror horizontal" -msgstr "Speilbilde" - -#: backend/hp-option.h:139 -#, fuzzy, no-c-format -msgid "Mirror image horizontally." -msgstr "Speilbilde" - -#: backend/hp-option.h:144 -#, fuzzy, no-c-format -msgid "Mirror vertical" -msgstr "Speilbilde" - -#: backend/hp-option.h:145 -#, fuzzy, no-c-format -msgid "Mirror image vertically." -msgstr "Speilbilde" - -#: backend/hp-option.h:150 -#, fuzzy, no-c-format -msgid "Update options" -msgstr "Spesielle valg" - -#: backend/hp-option.h:151 -#, fuzzy, no-c-format -msgid "Update options." -msgstr "Spesielle valg" - -#: backend/hp-option.h:156 -#, no-c-format -msgid "8 bit output" -msgstr "" - -#: backend/hp-option.h:158 -#, no-c-format -msgid "Use bit depth greater eight internally, but output only eight bits." -msgstr "" - -#: backend/hp-option.h:164 -#, no-c-format -msgid "Front button wait" -msgstr "" - -#: backend/hp-option.h:165 -#, no-c-format -msgid "Wait to scan for front-panel button push." -msgstr "" - -#: backend/hp-option.h:172 -#, no-c-format -msgid "Shut off lamp" -msgstr "" - -#: backend/hp-option.h:173 -#, no-c-format -msgid "Shut off scanner lamp." -msgstr "Slå av skanner lampen." - #: backend/kvs1025.h:51 backend/kvs20xx_opt.c:295 backend/kvs40xx_opt.c:516 #: backend/matsushita.h:219 #, no-c-format @@ -3950,7 +3972,7 @@ msgid "single" msgstr "" #: backend/kvs1025_opt.c:73 backend/kvs20xx.c:462 backend/kvs20xx_opt.c:56 -#: backend/kvs40xx.c:704 backend/kvs40xx.c:722 backend/kvs40xx_opt.c:102 +#: backend/kvs40xx.c:705 backend/kvs40xx.c:723 backend/kvs40xx_opt.c:102 #: backend/kvs40xx_opt.c:1087 #, no-c-format msgid "continuous" @@ -4247,7 +4269,7 @@ msgstr "" #: backend/kvs1025_opt.c:807 backend/kvs1025_opt.c:808 #: backend/matsushita.c:1300 backend/matsushita.c:1301 -#: backend/pixma_sane_options.c:112 +#: backend/pixma/pixma_sane_options.c:112 #, no-c-format msgid "Gamma" msgstr "" @@ -4537,52 +4559,52 @@ msgstr "" msgid "8x8 Vertical Line" msgstr "" -#: backend/lexmark.c:273 backend/umax_pp.c:711 +#: backend/lexmark.c:273 backend/umax_pp.c:705 #, no-c-format msgid "Gain" msgstr "" -#: backend/lexmark.c:274 backend/umax_pp.c:712 +#: backend/lexmark.c:274 backend/umax_pp.c:706 #, no-c-format msgid "Color channels gain settings" msgstr "" -#: backend/lexmark.c:283 backend/umax_pp.c:719 +#: backend/lexmark.c:283 backend/umax_pp.c:713 #, fuzzy, no-c-format msgid "Gray gain" msgstr "Grønn" -#: backend/lexmark.c:284 backend/umax_pp.c:720 +#: backend/lexmark.c:284 backend/umax_pp.c:714 #, fuzzy, no-c-format msgid "Sets gray channel gain" msgstr "Kontrast grønnkanal" -#: backend/lexmark.c:297 backend/plustek.c:1001 backend/umax_pp.c:731 +#: backend/lexmark.c:297 backend/plustek.c:1001 backend/umax_pp.c:725 #, fuzzy, no-c-format msgid "Red gain" msgstr "Rødbalanse" -#: backend/lexmark.c:298 backend/umax_pp.c:732 +#: backend/lexmark.c:298 backend/umax_pp.c:726 #, fuzzy, no-c-format msgid "Sets red channel gain" msgstr "Kontrast rødkanal" -#: backend/lexmark.c:311 backend/plustek.c:1017 backend/umax_pp.c:743 +#: backend/lexmark.c:311 backend/plustek.c:1017 backend/umax_pp.c:737 #, fuzzy, no-c-format msgid "Green gain" msgstr "Grønn" -#: backend/lexmark.c:312 backend/umax_pp.c:744 +#: backend/lexmark.c:312 backend/umax_pp.c:738 #, fuzzy, no-c-format msgid "Sets green channel gain" msgstr "Kontrast grønnkanal" -#: backend/lexmark.c:325 backend/plustek.c:1033 backend/umax_pp.c:755 +#: backend/lexmark.c:325 backend/plustek.c:1033 backend/umax_pp.c:749 #, fuzzy, no-c-format msgid "Blue gain" msgstr "Blå" -#: backend/lexmark.c:326 backend/umax_pp.c:756 +#: backend/lexmark.c:326 backend/umax_pp.c:750 #, fuzzy, no-c-format msgid "Sets blue channel gain" msgstr "Kontrast blåkanal" @@ -4668,7 +4690,7 @@ msgstr "En side" msgid "All pages" msgstr "Alle sider" -#: backend/matsushita.c:1034 backend/plustek.c:1333 +#: backend/matsushita.c:1034 backend/p5_device.c:8 backend/plustek.c:1333 #, no-c-format msgid "sheetfed scanner" msgstr "" @@ -5164,39 +5186,44 @@ msgid "" "40 seconds warm-up time." msgstr "" -#: backend/pixma.c:397 +#: backend/p5.c:1926 +#, fuzzy, no-c-format +msgid "Need calibration" +msgstr "Grov kalibrering" + +#: backend/pixma/pixma.c:397 #, fuzzy, no-c-format msgid "Negative color" msgstr "Negativ Film" -#: backend/pixma.c:402 +#: backend/pixma/pixma.c:402 #, fuzzy, no-c-format msgid "Negative gray" msgstr "Negativ" -#: backend/pixma.c:415 +#: backend/pixma/pixma.c:415 #, no-c-format msgid "48 bits color" msgstr "" -#: backend/pixma.c:420 +#: backend/pixma/pixma.c:420 #, no-c-format msgid "16 bits gray" msgstr "" -#: backend/pixma_sane_options.c:84 +#: backend/pixma/pixma_sane_options.c:84 #, no-c-format msgid "" "Selects the scan source (such as a document-feeder). Set source before " "mode and resolution. Resets mode and resolution to auto values." msgstr "" -#: backend/pixma_sane_options.c:98 +#: backend/pixma/pixma_sane_options.c:98 #, no-c-format msgid "Button-controlled scan" msgstr "" -#: backend/pixma_sane_options.c:99 +#: backend/pixma/pixma_sane_options.c:99 #, no-c-format msgid "" "When enabled, scan process will not start immediately. To proceed, press " @@ -5204,37 +5231,37 @@ msgid "" "cancel, press \"GRAY\" button." msgstr "" -#: backend/pixma_sane_options.c:232 +#: backend/pixma/pixma_sane_options.c:232 #, fuzzy, no-c-format msgid "Update button state" msgstr "Knappstatus" -#: backend/pixma_sane_options.c:244 +#: backend/pixma/pixma_sane_options.c:244 #, fuzzy, no-c-format msgid "Button 1" msgstr "Knappstatus" -#: backend/pixma_sane_options.c:258 +#: backend/pixma/pixma_sane_options.c:258 #, fuzzy, no-c-format msgid "Button 2" msgstr "Knappstatus" -#: backend/pixma_sane_options.c:272 +#: backend/pixma/pixma_sane_options.c:272 #, no-c-format msgid "Type of original to scan" msgstr "" -#: backend/pixma_sane_options.c:286 +#: backend/pixma/pixma_sane_options.c:286 #, no-c-format msgid "Target operation type" msgstr "" -#: backend/pixma_sane_options.c:348 +#: backend/pixma/pixma_sane_options.c:348 #, no-c-format msgid "ADF Waiting Time" msgstr "" -#: backend/pixma_sane_options.c:349 +#: backend/pixma/pixma_sane_options.c:349 #, no-c-format msgid "" "When set, the scanner waits upto the specified time in seconds for a new " @@ -5326,7 +5353,7 @@ msgstr "" msgid "Red gain value of the AFE" msgstr "" -#: backend/plustek.c:1009 backend/umax_pp.c:788 +#: backend/plustek.c:1009 backend/umax_pp.c:782 #, fuzzy, no-c-format msgid "Red offset" msgstr "Lampe av" @@ -5581,7 +5608,7 @@ msgstr "" msgid "This option reflects the status of a scanner button." msgstr "" -#: backend/rts8891.c:2840 backend/umax.c:5795 backend/umax_pp.c:635 +#: backend/rts8891.c:2840 backend/umax.c:5795 backend/umax_pp.c:629 #, no-c-format msgid "Lamp on" msgstr "Lampe på" @@ -5591,12 +5618,12 @@ msgstr "Lampe på" msgid "Turn on scanner lamp" msgstr "Slå på skanner lampen" -#: backend/rts8891.c:2851 backend/umax1220u.c:248 backend/umax.c:5812 +#: backend/rts8891.c:2851 backend/umax.c:5812 backend/umax1220u.c:248 #, no-c-format msgid "Lamp off" msgstr "Lampe av" -#: backend/rts8891.c:2852 backend/umax1220u.c:249 backend/umax.c:5813 +#: backend/rts8891.c:2852 backend/umax.c:5813 backend/umax1220u.c:249 #, no-c-format msgid "Turn off scanner lamp" msgstr "Slå av skanner lampen" @@ -6322,52 +6349,52 @@ msgstr "" msgid "Define calibration mode" msgstr "" -#: backend/umax_pp.c:636 +#: backend/umax_pp.c:630 #, no-c-format msgid "Sets lamp on/off" msgstr "" -#: backend/umax_pp.c:645 +#: backend/umax_pp.c:639 #, no-c-format msgid "UTA on" msgstr "" -#: backend/umax_pp.c:646 +#: backend/umax_pp.c:640 #, no-c-format msgid "Sets UTA on/off" msgstr "" -#: backend/umax_pp.c:767 +#: backend/umax_pp.c:761 #, no-c-format msgid "Offset" msgstr "" -#: backend/umax_pp.c:769 +#: backend/umax_pp.c:763 #, no-c-format msgid "Color channels offset settings" msgstr "" -#: backend/umax_pp.c:776 +#: backend/umax_pp.c:770 #, fuzzy, no-c-format msgid "Gray offset" msgstr "Lampe av" -#: backend/umax_pp.c:777 +#: backend/umax_pp.c:771 #, fuzzy, no-c-format msgid "Sets gray channel offset" msgstr "Kontrast grønnkanal" -#: backend/umax_pp.c:789 +#: backend/umax_pp.c:783 #, fuzzy, no-c-format msgid "Sets red channel offset" msgstr "Kontrast rødkanal" -#: backend/umax_pp.c:801 +#: backend/umax_pp.c:795 #, fuzzy, no-c-format msgid "Sets green channel offset" msgstr "Kontrast grønnkanal" -#: backend/umax_pp.c:813 +#: backend/umax_pp.c:807 #, fuzzy, no-c-format msgid "Sets blue channel offset" msgstr "Kontrast blåkanal" diff --git a/po/nl.po b/po/nl.po index 24a767f7d..cc2cc5311 100644 --- a/po/nl.po +++ b/po/nl.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: sane-backends.nl\n" "Report-Msgid-Bugs-To: sane-devel@alioth-lists.debian.net\n" -"POT-Creation-Date: 2019-10-12 17:41+0300\n" +"POT-Creation-Date: 2020-01-12 07:09+0000\n" "PO-Revision-Date: 2019-07-26 13:38+0900\n" "Last-Translator: Olaf Meeuwissen \n" "Language-Team:\n" @@ -30,23 +30,23 @@ msgid "Standard" msgstr "Standaard" #: include/sane/saneopts.h:157 backend/artec_eplus48u.c:2884 -#: backend/epson.c:3298 backend/epson2.c:1290 -#: backend/genesys/genesys.cpp:3976 backend/gt68xx.c:696 -#: backend/hp3500.c:1019 backend/hp-option.c:3300 backend/kvs1025_opt.c:639 +#: backend/epson.c:3298 backend/epson2.c:1290 backend/epsonds.c:677 +#: backend/genesys/genesys.cpp:4034 backend/gt68xx.c:696 +#: backend/hp-option.c:3300 backend/hp3500.c:1019 backend/kvs1025_opt.c:639 #: backend/kvs20xx_opt.c:285 backend/kvs40xx_opt.c:506 backend/leo.c:823 #: backend/lexmark.c:199 backend/ma1509.c:551 backend/matsushita.c:1135 #: backend/microtek2.h:599 backend/mustek.c:4373 backend/mustek_usb.c:301 -#: backend/mustek_usb2.c:465 backend/pixma_sane_options.c:160 +#: backend/mustek_usb2.c:465 backend/pixma/pixma_sane_options.c:160 #: backend/plustek.c:808 backend/plustek_pp.c:747 backend/sceptre.c:702 #: backend/snapscan-options.c:550 backend/teco1.c:1095 backend/teco2.c:1910 #: backend/teco3.c:920 backend/test.c:647 backend/u12.c:546 -#: backend/umax.c:5176 backend/umax_pp.c:576 +#: backend/umax.c:5176 backend/umax_pp.c:570 #, no-c-format msgid "Geometry" msgstr "Geometrie" #: include/sane/saneopts.h:158 backend/artec_eplus48u.c:2805 -#: backend/canon.c:1493 backend/genesys/genesys.cpp:4035 +#: backend/canon.c:1493 backend/genesys/genesys.cpp:4077 #: backend/gt68xx.c:665 backend/hp-option.c:2956 backend/kvs1025_opt.c:703 #: backend/leo.c:871 backend/ma1509.c:599 backend/matsushita.c:1189 #: backend/microtek2.h:600 backend/mustek.c:4421 backend/mustek_usb.c:349 @@ -54,7 +54,7 @@ msgstr "Geometrie" #: backend/plustek_pp.c:793 backend/sceptre.c:750 #: backend/snapscan-options.c:617 backend/stv680.c:1067 #: backend/teco1.c:1143 backend/teco2.c:1958 backend/teco3.c:968 -#: backend/u12.c:592 backend/umax.c:5226 backend/umax_pp.c:625 +#: backend/u12.c:592 backend/umax.c:5226 backend/umax_pp.c:619 #, no-c-format msgid "Enhancement" msgstr "Kleurverbetering" @@ -88,7 +88,7 @@ msgid "Bit depth" msgstr "Bitdiepte" #: include/sane/saneopts.h:165 backend/canon.c:1140 backend/leo.c:781 -#: backend/pixma_sane_options.c:47 +#: backend/pixma/pixma_sane_options.c:47 #, no-c-format msgid "Scan mode" msgstr "Scanmodus" @@ -129,7 +129,7 @@ msgid "Bottom-right y" msgstr "Rechtsonder y" #: include/sane/saneopts.h:173 backend/canon.c:1216 -#: backend/pixma_sane_options.c:300 +#: backend/pixma/pixma_sane_options.c:300 #, no-c-format msgid "Scan resolution" msgstr "Scanresolutie" @@ -284,7 +284,7 @@ msgstr "Bestandsnaam" msgid "Halftone pattern size" msgstr "Grootte van het halftoonpatroon" -#: include/sane/saneopts.h:204 backend/fujitsu.c:3233 +#: include/sane/saneopts.h:204 backend/fujitsu.c:3237 #, no-c-format msgid "Halftone pattern" msgstr "Halftoonpatroon" @@ -294,10 +294,10 @@ msgstr "Halftoonpatroon" msgid "Bind X and Y resolution" msgstr "Combineer X- en Y-resolutie" -#: include/sane/saneopts.h:206 backend/hp3900_sane.c:428 -#: backend/hp3900_sane.c:1021 backend/hp3900_sane.c:1421 -#: backend/hp-option.c:3238 backend/mustek_usb2.c:121 backend/plustek.c:236 -#: backend/plustek_pp.c:205 backend/u12.c:157 +#: include/sane/saneopts.h:206 backend/hp-option.c:3238 +#: backend/hp3900_sane.c:428 backend/hp3900_sane.c:1021 +#: backend/hp3900_sane.c:1421 backend/mustek_usb2.c:121 +#: backend/plustek.c:236 backend/plustek_pp.c:205 backend/u12.c:157 #, no-c-format msgid "Negative" msgstr "Negatief" @@ -1046,78 +1046,38 @@ msgid "" "Duplex scan provides a scan of the front and back side of the document" msgstr "Dubbelzijdige scan scant beide zijden van een document" -#: backend/canon630u.c:159 +#: backend/canon-sane.c:674 backend/canon.c:171 #, no-c-format -msgid "Calibrate Scanner" -msgstr "Kalibreer scanner" +msgid "Correction according to transparency ratio" +msgstr "Correctie op basis van de transparantieverhouding" -#: backend/canon630u.c:160 +#: backend/canon-sane.c:680 backend/canon.c:170 #, no-c-format -msgid "Force scanner calibration before scan" -msgstr "Dwing te kalibreren voor het scannen" +msgid "Correction according to film type" +msgstr "Correctie op basis van filmtype" -#: backend/canon630u.c:259 backend/umax1220u.c:208 -#, no-c-format -msgid "Grayscale scan" -msgstr "Grijstrapscan" - -#: backend/canon630u.c:260 backend/umax1220u.c:209 -#, no-c-format -msgid "Do a grayscale rather than color scan" -msgstr "Voer een grijstrap-, in plaats van een kleurenscan uit" - -#: backend/canon630u.c:306 -#, no-c-format -msgid "Analog Gain" -msgstr "Analoog bereik" - -#: backend/canon630u.c:307 -#, no-c-format -msgid "Increase or decrease the analog gain of the CCD array" -msgstr "Vergroot of verklein het analoge bereik van de CCD-sensor" - -#: backend/canon630u.c:347 backend/epson.h:68 backend/epson2.h:67 -#, no-c-format -msgid "Gamma Correction" -msgstr "Gammacorrectie" - -#: backend/canon630u.c:348 -#, no-c-format -msgid "Selects the gamma corrected transfer curve" -msgstr "Kiest de gamma gecorrigeerde overdrachtscurve" - -#: backend/canon.c:149 backend/canon-sane.c:1318 -#, no-c-format -msgid "Raw" -msgstr "Ongecomprimeerd" - -#: backend/canon.c:157 backend/canon-sane.c:732 backend/canon-sane.c:940 +#: backend/canon-sane.c:732 backend/canon-sane.c:940 #: backend/canon-sane.c:1076 backend/canon-sane.c:1314 -#: backend/canon-sane.c:1494 backend/canon-sane.c:1643 +#: backend/canon-sane.c:1494 backend/canon-sane.c:1643 backend/canon.c:157 #, no-c-format msgid "Fine color" msgstr "Fraaie kleuren" +#: backend/canon-sane.c:776 backend/canon.c:176 +#, no-c-format +msgid "Negatives" +msgstr "Negatieven" + +#: backend/canon-sane.c:1318 backend/canon.c:149 +#, no-c-format +msgid "Raw" +msgstr "Ongecomprimeerd" + #: backend/canon.c:169 #, no-c-format msgid "No transparency correction" msgstr "Ongecorrigeerde transparantie" -#: backend/canon.c:170 backend/canon-sane.c:680 -#, no-c-format -msgid "Correction according to film type" -msgstr "Correctie op basis van filmtype" - -#: backend/canon.c:171 backend/canon-sane.c:674 -#, no-c-format -msgid "Correction according to transparency ratio" -msgstr "Correctie op basis van de transparantieverhouding" - -#: backend/canon.c:176 backend/canon-sane.c:776 -#, no-c-format -msgid "Negatives" -msgstr "Negatieven" - #: backend/canon.c:176 #, no-c-format msgid "Slides" @@ -1543,94 +1503,137 @@ msgstr "Selecteert filmtype" msgid "Select the film type" msgstr "Selecteert het filmtype" -#: backend/canon_dr.c:411 backend/epjitsu.c:233 backend/epson.c:501 -#: backend/epson2.c:115 backend/fujitsu.c:675 backend/gt68xx.c:148 +#: backend/canon630u.c:159 +#, no-c-format +msgid "Calibrate Scanner" +msgstr "Kalibreer scanner" + +#: backend/canon630u.c:160 +#, no-c-format +msgid "Force scanner calibration before scan" +msgstr "Dwing te kalibreren voor het scannen" + +#: backend/canon630u.c:259 backend/umax1220u.c:208 +#, no-c-format +msgid "Grayscale scan" +msgstr "Grijstrapscan" + +#: backend/canon630u.c:260 backend/umax1220u.c:209 +#, no-c-format +msgid "Do a grayscale rather than color scan" +msgstr "Voer een grijstrap-, in plaats van een kleurenscan uit" + +#: backend/canon630u.c:306 +#, no-c-format +msgid "Analog Gain" +msgstr "Analoog bereik" + +#: backend/canon630u.c:307 +#, no-c-format +msgid "Increase or decrease the analog gain of the CCD array" +msgstr "Vergroot of verklein het analoge bereik van de CCD-sensor" + +#: backend/canon630u.c:347 backend/epson.h:68 backend/epson2.h:67 +#, no-c-format +msgid "Gamma Correction" +msgstr "Gammacorrectie" + +#: backend/canon630u.c:348 +#, no-c-format +msgid "Selects the gamma corrected transfer curve" +msgstr "Kiest de gamma gecorrigeerde overdrachtscurve" + +#: backend/canon_dr.c:413 backend/epjitsu.c:233 backend/epson.c:501 +#: backend/epson2-ops.c:101 backend/epson2.c:115 backend/epsonds-ops.c:32 +#: backend/epsonds.c:95 backend/epsonds.h:62 backend/fujitsu.c:677 +#: backend/genesys/genesys.h:78 backend/gt68xx.c:148 #: backend/hp3900_sane.c:418 backend/hp3900_sane.c:427 -#: backend/hp3900_sane.c:1017 backend/hp5590.c:92 backend/ma1509.c:108 -#: backend/magicolor.c:181 backend/mustek.c:156 backend/mustek.c:160 -#: backend/mustek.c:164 backend/pixma.c:920 backend/pixma_sane_options.c:92 -#: backend/snapscan-options.c:86 backend/test.c:192 backend/umax.c:181 +#: backend/hp3900_sane.c:1017 backend/hp5590.c:92 backend/kodakaio.c:617 +#: backend/ma1509.c:108 backend/magicolor.c:181 backend/mustek.c:156 +#: backend/mustek.c:160 backend/mustek.c:164 backend/pixma/pixma.c:920 +#: backend/pixma/pixma_sane_options.c:92 backend/snapscan-options.c:86 +#: backend/test.c:192 backend/umax.c:181 #, no-c-format msgid "Flatbed" msgstr "Flatbed" -#: backend/canon_dr.c:412 backend/epjitsu.c:234 backend/fujitsu.c:676 +#: backend/canon_dr.c:414 backend/epjitsu.c:234 backend/fujitsu.c:678 #: backend/kodak.c:140 #, no-c-format msgid "ADF Front" msgstr "Automatische documentinvoer voorzijde" -#: backend/canon_dr.c:413 backend/epjitsu.c:235 backend/fujitsu.c:677 +#: backend/canon_dr.c:415 backend/epjitsu.c:235 backend/fujitsu.c:679 #: backend/kodak.c:141 #, no-c-format msgid "ADF Back" msgstr "Automatische documentinvoer achterzijde" -#: backend/canon_dr.c:414 backend/epjitsu.c:236 backend/fujitsu.c:678 -#: backend/hp5590.c:94 backend/kodak.c:142 backend/pixma.c:931 +#: backend/canon_dr.c:416 backend/epjitsu.c:236 backend/fujitsu.c:680 +#: backend/hp5590.c:94 backend/kodak.c:142 backend/pixma/pixma.c:931 #, no-c-format msgid "ADF Duplex" msgstr "Automatische documentinvoer dubbelzijdig" -#: backend/canon_dr.c:415 +#: backend/canon_dr.c:417 #, no-c-format msgid "Card Front" msgstr "Kaart voorzijde" -#: backend/canon_dr.c:416 +#: backend/canon_dr.c:418 #, no-c-format msgid "Card Back" msgstr "Kaart achterzijde" -#: backend/canon_dr.c:417 +#: backend/canon_dr.c:419 #, no-c-format msgid "Card Duplex" msgstr "Kaart dubbelzijdig" -#: backend/canon_dr.c:424 backend/epson.c:599 backend/epson.c:3096 -#: backend/epson2.c:201 backend/fujitsu.c:695 -#: backend/genesys/genesys.cpp:99 backend/genesys/genesys.cpp:106 +#: backend/canon_dr.c:426 backend/epson.c:599 backend/epson.c:3096 +#: backend/epson2.c:201 backend/fujitsu.c:697 +#: backend/genesys/genesys.cpp:120 backend/genesys/genesys.cpp:127 #: backend/gt68xx_low.h:136 backend/hp-option.c:3096 #, no-c-format msgid "Red" msgstr "Rood" -#: backend/canon_dr.c:425 backend/epson.c:600 backend/epson.c:3092 -#: backend/epson2.c:202 backend/fujitsu.c:696 -#: backend/genesys/genesys.cpp:100 backend/genesys/genesys.cpp:107 +#: backend/canon_dr.c:427 backend/epson.c:600 backend/epson.c:3092 +#: backend/epson2.c:202 backend/fujitsu.c:698 +#: backend/genesys/genesys.cpp:121 backend/genesys/genesys.cpp:128 #: backend/gt68xx_low.h:137 backend/hp-option.c:3097 #, no-c-format msgid "Green" msgstr "Groen" -#: backend/canon_dr.c:426 backend/epson.c:601 backend/epson.c:3100 -#: backend/epson2.c:203 backend/fujitsu.c:697 -#: backend/genesys/genesys.cpp:101 backend/genesys/genesys.cpp:108 +#: backend/canon_dr.c:428 backend/epson.c:601 backend/epson.c:3100 +#: backend/epson2.c:203 backend/fujitsu.c:699 +#: backend/genesys/genesys.cpp:122 backend/genesys/genesys.cpp:129 #: backend/gt68xx_low.h:138 backend/hp-option.c:3098 #, no-c-format msgid "Blue" msgstr "Blauw" -#: backend/canon_dr.c:427 +#: backend/canon_dr.c:429 #, no-c-format msgid "Enhance Red" msgstr "Verbeter rood" -#: backend/canon_dr.c:428 +#: backend/canon_dr.c:430 #, no-c-format msgid "Enhance Green" msgstr "Verbeter groen" -#: backend/canon_dr.c:429 +#: backend/canon_dr.c:431 #, no-c-format msgid "Enhance Blue" msgstr "Verbeter blauw" -#: backend/canon_dr.c:431 backend/epson.c:556 backend/epson.c:564 +#: backend/canon_dr.c:433 backend/epson.c:556 backend/epson.c:564 #: backend/epson.c:576 backend/epson.c:598 backend/epson2.c:165 #: backend/epson2.c:173 backend/epson2.c:185 backend/epson2.c:200 -#: backend/epson2.c:214 backend/fujitsu.c:701 -#: backend/genesys/genesys.cpp:109 backend/leo.c:109 +#: backend/epson2.c:214 backend/fujitsu.c:703 +#: backend/genesys/genesys.cpp:130 backend/leo.c:109 #: backend/matsushita.c:138 backend/matsushita.c:159 #: backend/matsushita.c:191 backend/matsushita.c:213 #: backend/snapscan-options.c:91 @@ -1638,42 +1641,46 @@ msgstr "Verbeter blauw" msgid "None" msgstr "Geen" -#: backend/canon_dr.c:432 backend/fujitsu.c:702 +#: backend/canon_dr.c:434 backend/fujitsu.c:704 #, no-c-format msgid "JPEG" msgstr "JPEG" -#: backend/canon_dr.c:2477 backend/fujitsu.c:4113 -#: backend/genesys/genesys.cpp:4126 backend/kvs1025_opt.c:910 +#: backend/canon_dr.c:2479 backend/fujitsu.c:4117 +#: backend/genesys/genesys.cpp:4168 backend/kvs1025_opt.c:910 #, no-c-format msgid "Software blank skip percentage" msgstr "Softwarematig over te slaan percentage lege pagina's" -#: backend/canon_dr.c:2478 backend/fujitsu.c:4114 +#: backend/canon_dr.c:2480 backend/fujitsu.c:4118 #, no-c-format msgid "Request driver to discard pages with low percentage of dark pixels" msgstr "Verzoek het stuurprogramma pagina's met weinig dekking te negeren" -#: backend/epson.c:491 backend/epson2.c:108 backend/magicolor.c:174 +#: backend/epson.c:491 backend/epson2.c:108 backend/epsonds.c:88 +#: backend/kodakaio.c:611 backend/magicolor.c:174 #, no-c-format msgid "Simplex" msgstr "enkelzijdig" -#: backend/epson.c:492 backend/epson2.c:109 backend/kvs1025.h:50 -#: backend/kvs20xx_opt.c:204 backend/kvs40xx_opt.c:353 -#: backend/magicolor.c:175 backend/matsushita.h:218 +#: backend/epson.c:492 backend/epson2.c:109 backend/epsonds.c:89 +#: backend/kodakaio.c:612 backend/kvs1025.h:50 backend/kvs20xx_opt.c:204 +#: backend/kvs40xx_opt.c:353 backend/magicolor.c:175 +#: backend/matsushita.h:218 #, no-c-format msgid "Duplex" msgstr "Dubbelzijdig" -#: backend/epson.c:502 backend/epson2.c:116 backend/pixma.c:937 +#: backend/epson.c:502 backend/epson2-ops.c:102 backend/epson2.c:116 +#: backend/epsonds-ops.c:33 backend/epsonds.h:63 backend/pixma/pixma.c:937 #, no-c-format msgid "Transparency Unit" msgstr "Filmeenheid" -#: backend/epson.c:503 backend/epson2.c:118 backend/magicolor.c:182 -#: backend/mustek.c:160 backend/pixma.c:925 backend/test.c:192 -#: backend/umax.c:183 +#: backend/epson.c:503 backend/epson2-ops.c:104 backend/epson2.c:118 +#: backend/epsonds-ops.c:34 backend/epsonds.c:96 backend/epsonds.h:64 +#: backend/kodakaio.c:618 backend/magicolor.c:182 backend/mustek.c:160 +#: backend/pixma/pixma.c:925 backend/test.c:192 backend/umax.c:183 #, no-c-format msgid "Automatic Document Feeder" msgstr "Automatische documentinvoer" @@ -1785,7 +1792,7 @@ msgstr "Inkjetprinters" msgid "CRT monitors" msgstr "CRT-monitoren" -#: backend/epson.c:656 backend/epson2.c:254 backend/fujitsu.c:685 +#: backend/epson.c:656 backend/epson2.c:254 backend/fujitsu.c:687 #: backend/hp-option.c:3229 backend/test.c:143 #, no-c-format msgid "Default" @@ -1849,8 +1856,8 @@ msgstr "A4" msgid "Max" msgstr "Maximaal" -#: backend/epson.c:2813 backend/epson2.c:976 -#: backend/genesys/genesys.cpp:3893 backend/gt68xx.c:451 +#: backend/epson.c:2813 backend/epson2.c:976 backend/epsonds.c:629 +#: backend/genesys/genesys.cpp:3965 backend/gt68xx.c:451 #: backend/hp-option.c:2917 backend/kvs1025_opt.c:521 #: backend/kvs20xx_opt.c:171 backend/kvs40xx_opt.c:320 backend/ma1509.c:501 #: backend/matsushita.c:1084 backend/microtek2.h:598 backend/mustek.c:4215 @@ -2023,17 +2030,17 @@ msgstr "Definieert de vergrotingsfactor die de scanner zal gebruiken" msgid "Quick format" msgstr "Snelle opmaak" -#: backend/epson.c:3360 backend/epson2.c:1340 +#: backend/epson.c:3360 backend/epson2.c:1340 backend/epsonds.c:726 #, no-c-format msgid "Optional equipment" msgstr "Optioneel hulpstuk" -#: backend/epson.c:3431 backend/epson2.c:1393 +#: backend/epson.c:3431 backend/epson2.c:1393 backend/epsonds.c:742 #, no-c-format msgid "Eject" msgstr "Uitwerpen" -#: backend/epson.c:3432 backend/epson2.c:1394 +#: backend/epson.c:3432 backend/epson2.c:1394 backend/epsonds.c:743 #, no-c-format msgid "Eject the sheet in the ADF" msgstr "Werp het document in de automatische documentinvoer uit" @@ -2048,12 +2055,14 @@ msgstr "Automatische uitworp" msgid "Eject document after scanning" msgstr "Werp het document uit na het scannen" -#: backend/epson.c:3457 backend/epson2.c:1416 backend/magicolor.c:2420 +#: backend/epson.c:3457 backend/epson2.c:1416 backend/epsonds.c:758 +#: backend/kodakaio.c:2855 backend/magicolor.c:2420 #, no-c-format msgid "ADF Mode" msgstr "Automatische documentinvoer Modus" -#: backend/epson.c:3459 backend/epson2.c:1418 backend/magicolor.c:2422 +#: backend/epson.c:3459 backend/epson2.c:1418 backend/epsonds.c:760 +#: backend/kodakaio.c:2857 backend/magicolor.c:2422 #, no-c-format msgid "Selects the ADF mode (simplex/duplex)" msgstr "" @@ -2105,16 +2114,16 @@ msgstr "" "Begin pas met scannen als eerst het scancommando naar de scanner is " "gestuurd en daarna de knop van de scanner is ingedrukt." -#: backend/epson2.c:102 backend/pixma.c:409 -#, no-c-format -msgid "Infrared" -msgstr "Infrarood" - -#: backend/epson2.c:117 +#: backend/epson2-ops.c:103 backend/epson2.c:117 #, no-c-format msgid "TPU8x10" msgstr "TPU8x10" +#: backend/epson2.c:102 backend/pixma/pixma.c:409 +#, no-c-format +msgid "Infrared" +msgstr "Infrarood" + #: backend/epson2.c:136 #, no-c-format msgid "Positive Slide" @@ -2135,243 +2144,263 @@ msgstr "Ingebouwd CCT profiel" msgid "User defined CCT profile" msgstr "Door gebruiker gedefinieerd CCT profiel" -#: backend/fujitsu.c:686 backend/hp-option.c:3330 backend/hp-option.c:3343 +#: backend/epsonds.c:750 +#, no-c-format +msgid "Load" +msgstr "" + +#: backend/epsonds.c:751 +#, fuzzy, no-c-format +msgid "Load a sheet in the ADF" +msgstr "Werp het document in de automatische documentinvoer uit" + +#: backend/epsonds.c:771 +#, fuzzy, no-c-format +msgid "ADF Skew Correction" +msgstr "Geen correctie" + +#: backend/epsonds.c:773 +#, fuzzy, no-c-format +msgid "Enables ADF skew correction" +msgstr "Schakel gammacorrectie uit" + +#: backend/fujitsu.c:688 backend/hp-option.c:3330 backend/hp-option.c:3343 #, no-c-format msgid "On" msgstr "Aan" -#: backend/fujitsu.c:687 backend/hp-option.c:3162 backend/hp-option.c:3329 +#: backend/fujitsu.c:689 backend/hp-option.c:3162 backend/hp-option.c:3329 #: backend/hp-option.c:3342 #, no-c-format msgid "Off" msgstr "Uit" -#: backend/fujitsu.c:689 +#: backend/fujitsu.c:691 #, no-c-format msgid "DTC" msgstr "DTC" -#: backend/fujitsu.c:690 +#: backend/fujitsu.c:692 #, no-c-format msgid "SDTC" msgstr "SDTC" -#: backend/fujitsu.c:692 backend/teco1.c:1152 backend/teco1.c:1153 +#: backend/fujitsu.c:694 backend/teco1.c:1152 backend/teco1.c:1153 #: backend/teco2.c:1967 backend/teco2.c:1968 backend/teco3.c:977 #: backend/teco3.c:978 #, no-c-format msgid "Dither" msgstr "Dither" -#: backend/fujitsu.c:693 +#: backend/fujitsu.c:695 #, no-c-format msgid "Diffusion" msgstr "Verspreiding" -#: backend/fujitsu.c:698 +#: backend/fujitsu.c:700 #, no-c-format msgid "White" msgstr "Wit" -#: backend/fujitsu.c:699 +#: backend/fujitsu.c:701 #, no-c-format msgid "Black" msgstr "Zwart" -#: backend/fujitsu.c:704 +#: backend/fujitsu.c:706 #, no-c-format msgid "Continue" msgstr "Voortzetten" -#: backend/fujitsu.c:705 +#: backend/fujitsu.c:707 #, no-c-format msgid "Stop" msgstr "Stoppen" -#: backend/fujitsu.c:707 +#: backend/fujitsu.c:709 #, no-c-format msgid "10mm" msgstr "10mm" -#: backend/fujitsu.c:708 +#: backend/fujitsu.c:710 #, no-c-format msgid "15mm" msgstr "15mm" -#: backend/fujitsu.c:709 +#: backend/fujitsu.c:711 #, no-c-format msgid "20mm" msgstr "20mm" -#: backend/fujitsu.c:711 backend/hp-option.c:3048 +#: backend/fujitsu.c:713 backend/hp-option.c:3048 #, no-c-format msgid "Horizontal" msgstr "Horizontaal" -#: backend/fujitsu.c:712 +#: backend/fujitsu.c:714 #, no-c-format msgid "Horizontal bold" msgstr "Horizontaal vet" -#: backend/fujitsu.c:713 +#: backend/fujitsu.c:715 #, no-c-format msgid "Horizontal narrow" msgstr "Horizontaal smal" -#: backend/fujitsu.c:714 backend/hp-option.c:3047 +#: backend/fujitsu.c:716 backend/hp-option.c:3047 #, no-c-format msgid "Vertical" msgstr "Verticaal" -#: backend/fujitsu.c:715 +#: backend/fujitsu.c:717 #, no-c-format msgid "Vertical bold" msgstr "Verticaal vet" -#: backend/fujitsu.c:717 +#: backend/fujitsu.c:719 #, no-c-format msgid "Top to bottom" msgstr "Van boven naar beneden" -#: backend/fujitsu.c:718 +#: backend/fujitsu.c:720 #, no-c-format msgid "Bottom to top" msgstr "Van beneden naar boven" -#: backend/fujitsu.c:720 +#: backend/fujitsu.c:722 #, no-c-format msgid "Front" msgstr "Voorzijde" -#: backend/fujitsu.c:721 +#: backend/fujitsu.c:723 #, no-c-format msgid "Back" msgstr "Achterzijde" -#: backend/fujitsu.c:3144 backend/pixma_sane_options.c:145 +#: backend/fujitsu.c:3148 backend/pixma/pixma_sane_options.c:145 #, no-c-format msgid "Gamma function exponent" msgstr "Gammafunctie exponent" -#: backend/fujitsu.c:3145 backend/pixma_sane_options.c:146 +#: backend/fujitsu.c:3149 backend/pixma/pixma_sane_options.c:146 #, no-c-format msgid "Changes intensity of midtones" msgstr "Verandert de intensiteit van de middentonen" -#: backend/fujitsu.c:3194 +#: backend/fujitsu.c:3198 #, no-c-format msgid "RIF" msgstr "GBF" -#: backend/fujitsu.c:3195 +#: backend/fujitsu.c:3199 #, no-c-format msgid "Reverse image format" msgstr "Gespiegeld beeld formaat" -#: backend/fujitsu.c:3212 +#: backend/fujitsu.c:3216 #, no-c-format msgid "Halftone type" msgstr "Halftoon type" -#: backend/fujitsu.c:3213 +#: backend/fujitsu.c:3217 #, no-c-format msgid "Control type of halftone filter" msgstr "Regeltype van het halftoon filter" -#: backend/fujitsu.c:3234 +#: backend/fujitsu.c:3238 #, no-c-format msgid "Control pattern of halftone filter" msgstr "Regelpatroon van het halftoon filter" -#: backend/fujitsu.c:3256 +#: backend/fujitsu.c:3260 #, no-c-format msgid "Outline" msgstr "Contour" -#: backend/fujitsu.c:3257 +#: backend/fujitsu.c:3261 #, no-c-format msgid "Perform outline extraction" msgstr "Extract contouren" -#: backend/fujitsu.c:3268 +#: backend/fujitsu.c:3272 #, no-c-format msgid "Emphasis" msgstr "Nadruk" -#: backend/fujitsu.c:3269 +#: backend/fujitsu.c:3273 #, no-c-format msgid "Negative to smooth or positive to sharpen image" msgstr "Negatief naar geleidelijk of positief naar scherp beeld" -#: backend/fujitsu.c:3287 +#: backend/fujitsu.c:3291 #, no-c-format msgid "Separation" msgstr "Scheiding" -#: backend/fujitsu.c:3288 +#: backend/fujitsu.c:3292 #, no-c-format msgid "Enable automatic separation of image and text" msgstr "Schakel automatische scheiding tussen beeld en tekst in" -#: backend/fujitsu.c:3299 +#: backend/fujitsu.c:3303 #, no-c-format msgid "Mirroring" msgstr "Spiegelen" -#: backend/fujitsu.c:3300 +#: backend/fujitsu.c:3304 #, no-c-format msgid "Reflect output image horizontally" msgstr "Spiegel het resulterende beeld horizontaal" -#: backend/fujitsu.c:3317 +#: backend/fujitsu.c:3321 #, no-c-format msgid "White level follower" msgstr "Witwaarde volger" -#: backend/fujitsu.c:3318 +#: backend/fujitsu.c:3322 #, no-c-format msgid "Control white level follower" msgstr "Regel de witwaarde volger" -#: backend/fujitsu.c:3336 +#: backend/fujitsu.c:3340 #, no-c-format msgid "BP filter" msgstr "BP filter" -#: backend/fujitsu.c:3337 +#: backend/fujitsu.c:3341 #, no-c-format msgid "Improves quality of high resolution ball-point pen text" msgstr "Verbeterd de kwaliteit van hoog resolutie bal-punt pen tekst" -#: backend/fujitsu.c:3353 backend/hp-option.h:73 +#: backend/fujitsu.c:3357 backend/hp-option.h:73 #, no-c-format msgid "Smoothing" msgstr "Verzachten" -#: backend/fujitsu.c:3354 +#: backend/fujitsu.c:3358 #, no-c-format msgid "Enable smoothing for improved OCR" msgstr "Schakelt verzachting in om OCR te verbeteren" -#: backend/fujitsu.c:3370 +#: backend/fujitsu.c:3374 #, no-c-format msgid "Gamma curve" msgstr "Gammakromme" -#: backend/fujitsu.c:3371 +#: backend/fujitsu.c:3375 #, no-c-format msgid "Gamma curve, from light to dark, but upper two may not work" msgstr "" "Gammakromme, van licht naar donker, maar bovenste twee werken misschien " "niet" -#: backend/fujitsu.c:3393 backend/genesys/genesys.cpp:4187 -#: backend/pixma_sane_options.c:335 +#: backend/fujitsu.c:3397 backend/genesys/genesys.cpp:4229 +#: backend/pixma/pixma_sane_options.c:335 #, no-c-format msgid "Threshold curve" msgstr "Drempel curve" -#: backend/fujitsu.c:3394 +#: backend/fujitsu.c:3398 #, no-c-format msgid "" "Threshold curve, from light to dark, but upper two may not be linear" @@ -2379,111 +2408,111 @@ msgstr "" "Drempel curve, van licht naar donker, maar bovenste twee zijn misschien " "niet liniair" -#: backend/fujitsu.c:3416 +#: backend/fujitsu.c:3420 #, no-c-format msgid "Threshold white" msgstr "Drempel wit" -#: backend/fujitsu.c:3417 +#: backend/fujitsu.c:3421 #, no-c-format msgid "Set pixels equal to threshold to white instead of black" msgstr "Stelt schermpunten in overeenkomstig de drempel voor wit ipv zwart" -#: backend/fujitsu.c:3433 backend/fujitsu.c:3434 +#: backend/fujitsu.c:3437 backend/fujitsu.c:3438 #, no-c-format msgid "Noise removal" msgstr "Ruisverwijdering" -#: backend/fujitsu.c:3450 +#: backend/fujitsu.c:3454 #, no-c-format msgid "Matrix 5x5" msgstr "Matrix 5x5" -#: backend/fujitsu.c:3451 +#: backend/fujitsu.c:3455 #, no-c-format msgid "Remove 5 pixel square noise" msgstr "Verwijder ruis met een 5 pixel vierkant" -#: backend/fujitsu.c:3467 +#: backend/fujitsu.c:3471 #, no-c-format msgid "Matrix 4x4" msgstr "Matrix 4x4" -#: backend/fujitsu.c:3468 +#: backend/fujitsu.c:3472 #, no-c-format msgid "Remove 4 pixel square noise" msgstr "Verwijder ruis met een 4 pixel vierkant" -#: backend/fujitsu.c:3484 +#: backend/fujitsu.c:3488 #, no-c-format msgid "Matrix 3x3" msgstr "Matrix 3x3" -#: backend/fujitsu.c:3485 +#: backend/fujitsu.c:3489 #, no-c-format msgid "Remove 3 pixel square noise" msgstr "Verwijder ruis met een 3 pixel vierkant" -#: backend/fujitsu.c:3501 +#: backend/fujitsu.c:3505 #, no-c-format msgid "Matrix 2x2" msgstr "Matrix 2x2" -#: backend/fujitsu.c:3502 +#: backend/fujitsu.c:3506 #, no-c-format msgid "Remove 2 pixel square noise" msgstr "Verwijder 2 beeldpunten in een vierkant ruis" -#: backend/fujitsu.c:3521 +#: backend/fujitsu.c:3525 #, no-c-format msgid "Variance" msgstr "Variantie" -#: backend/fujitsu.c:3522 +#: backend/fujitsu.c:3526 #, no-c-format msgid "Set SDTC variance rate (sensitivity), 0 equals 127" msgstr "Stelt SDTC variantie rato in (gevoeligheid), 0 is gelijk aan 127" -#: backend/fujitsu.c:3555 +#: backend/fujitsu.c:3559 #, no-c-format msgid "Auto width detection" msgstr "Automatische breedte herkenning" -#: backend/fujitsu.c:3556 +#: backend/fujitsu.c:3560 #, no-c-format msgid "Scanner detects paper sides. May reduce scanning speed." msgstr "Scanner herkent paper zijden. Kan de scansnelheid verminderen." -#: backend/fujitsu.c:3573 +#: backend/fujitsu.c:3577 #, no-c-format msgid "Auto length detection" msgstr "Automatische lengte herkenning" -#: backend/fujitsu.c:3574 +#: backend/fujitsu.c:3578 #, no-c-format msgid "Scanner detects paper lower edge. May confuse some frontends." msgstr "" "Scanner herkent onderzijde van het papier. Kan sommige frontends in de " "war brengen." -#: backend/fujitsu.c:3600 +#: backend/fujitsu.c:3604 #, no-c-format msgid "Compression" msgstr "Compressie" -#: backend/fujitsu.c:3601 +#: backend/fujitsu.c:3605 #, no-c-format msgid "Enable compressed data. May crash your front-end program" msgstr "" "Schakelt gecomprimeerde gegevens in. Kan je front-end programma laten " "crashen." -#: backend/fujitsu.c:3621 +#: backend/fujitsu.c:3625 #, no-c-format msgid "Compression argument" msgstr "Compressie argument" -#: backend/fujitsu.c:3622 +#: backend/fujitsu.c:3626 #, no-c-format msgid "" "Level of JPEG compression. 1 is small file, 7 is large file. 0 (default) " @@ -2492,106 +2521,106 @@ msgstr "" "Niveau van JPEG compressie. 1 is klein bestand, 7 is groot bestand. 0 " "(standaard) is hetzelfde als 4" -#: backend/fujitsu.c:3652 +#: backend/fujitsu.c:3656 #, no-c-format msgid "DF action" msgstr "DF actie" -#: backend/fujitsu.c:3653 +#: backend/fujitsu.c:3657 #, no-c-format msgid "Action following double feed error" msgstr "Actie die volgt op dubbele doorvoer fout" -#: backend/fujitsu.c:3669 +#: backend/fujitsu.c:3673 #, no-c-format msgid "DF skew" msgstr "DF scheefheid" -#: backend/fujitsu.c:3670 +#: backend/fujitsu.c:3674 #, no-c-format msgid "Enable double feed error due to skew" msgstr "Schakel dubbele doorvoer fout in als gevolg van scheefheid" -#: backend/fujitsu.c:3688 +#: backend/fujitsu.c:3692 #, no-c-format msgid "DF thickness" msgstr "DF dikte" -#: backend/fujitsu.c:3689 +#: backend/fujitsu.c:3693 #, no-c-format msgid "Enable double feed error due to paper thickness" msgstr "Stelt dubbele doorvoer fout in als gevolg van papierdikte" -#: backend/fujitsu.c:3707 +#: backend/fujitsu.c:3711 #, no-c-format msgid "DF length" msgstr "DF lengte" -#: backend/fujitsu.c:3708 +#: backend/fujitsu.c:3712 #, no-c-format msgid "Enable double feed error due to paper length" msgstr "Stelt dubbele doorvoer fout in als gevolg van papierlengte" -#: backend/fujitsu.c:3731 +#: backend/fujitsu.c:3735 #, no-c-format msgid "DF length difference" msgstr "DF lengte verschil" -#: backend/fujitsu.c:3732 +#: backend/fujitsu.c:3736 #, no-c-format msgid "Difference in page length to trigger double feed error" msgstr "Verschil in papier lengte om dubbele doorvoer fout te veroorzaken" -#: backend/fujitsu.c:3755 +#: backend/fujitsu.c:3759 #, no-c-format msgid "DF recovery mode" msgstr "DF herstel modus" -#: backend/fujitsu.c:3756 +#: backend/fujitsu.c:3760 #, no-c-format msgid "Request scanner to reverse feed on paper jam" msgstr "Vraag de scanner de doorvoer om te keren bij papier opstopping" -#: backend/fujitsu.c:3775 +#: backend/fujitsu.c:3779 #, no-c-format msgid "Paper protection" msgstr "Papier protectie" -#: backend/fujitsu.c:3776 +#: backend/fujitsu.c:3780 #, no-c-format msgid "Request scanner to predict jams in the ADF" msgstr "Vraag de scanner opstoppingen in de ADF te voorspellen " -#: backend/fujitsu.c:3795 +#: backend/fujitsu.c:3799 #, no-c-format msgid "Advanced paper protection" msgstr "Geavanceerde papier protectie" -#: backend/fujitsu.c:3796 +#: backend/fujitsu.c:3800 #, no-c-format msgid "Request scanner to predict jams in the ADF using improved sensors" msgstr "" "Vraag de scanner opstoppingen in de ADF te voorspellen met behulp van " "verbeterde sensoren" -#: backend/fujitsu.c:3815 +#: backend/fujitsu.c:3819 #, no-c-format msgid "Staple detection" msgstr "Nietjes detectie" -#: backend/fujitsu.c:3816 +#: backend/fujitsu.c:3820 #, no-c-format msgid "Request scanner to detect jams in the ADF caused by staples" msgstr "" "Vraag de scanner opstoppingen in de ADF te detecteren die worden " "veroorzaakt door nietjes" -#: backend/fujitsu.c:3835 +#: backend/fujitsu.c:3839 #, no-c-format msgid "Background color" msgstr "Achtergrond kleur" -#: backend/fujitsu.c:3836 +#: backend/fujitsu.c:3840 #, no-c-format msgid "" "Set color of background for scans. May conflict with overscan option" @@ -2599,12 +2628,12 @@ msgstr "" "Stel de achtergrond kleur van scans in. Kan conflicteren met de " "'overscan' optie" -#: backend/fujitsu.c:3856 +#: backend/fujitsu.c:3860 #, no-c-format msgid "Dropout color" msgstr "Uitvalkleur" -#: backend/fujitsu.c:3857 +#: backend/fujitsu.c:3861 #, no-c-format msgid "" "One-pass scanners use only one color during gray or binary scanning, " @@ -2613,34 +2642,34 @@ msgstr "" "One-pass scanners gebruiken slechts een kleur bij grijstrap of binair " "scannen, bruikbaar voor gekleurd papier of inkt." -#: backend/fujitsu.c:3880 +#: backend/fujitsu.c:3884 #, no-c-format msgid "Buffer mode" msgstr "Buffermodus" -#: backend/fujitsu.c:3881 +#: backend/fujitsu.c:3885 #, no-c-format msgid "Request scanner to read pages quickly from ADF into internal memory" msgstr "" "Vraag de scanner pagina's vanuit de ADF zo snel mogelijk in te lezen in " "het interne geheugen" -#: backend/fujitsu.c:3900 +#: backend/fujitsu.c:3904 #, no-c-format msgid "Prepick" msgstr "Voorkeuze" -#: backend/fujitsu.c:3901 +#: backend/fujitsu.c:3905 #, no-c-format msgid "Request scanner to grab next page from ADF" msgstr "Vraag de scanner de volgende pagina uit de ADF op te halen" -#: backend/fujitsu.c:3920 +#: backend/fujitsu.c:3924 #, no-c-format msgid "Overscan" msgstr "Overscan" -#: backend/fujitsu.c:3921 +#: backend/fujitsu.c:3925 #, no-c-format msgid "" "Collect a few mm of background on top side of scan, before paper enters " @@ -2652,24 +2681,24 @@ msgstr "" "oppervlak t.o.v. het papierformaat, om de inzameling van de overige " "kanten toe te staan. Kan conflicteren met 'bgcolor' optie" -#: backend/fujitsu.c:3939 +#: backend/fujitsu.c:3943 #, no-c-format msgid "Sleep timer" msgstr "Tijdschakelaar - slaapstand" -#: backend/fujitsu.c:3940 +#: backend/fujitsu.c:3944 #, no-c-format msgid "" "Time in minutes until the internal power supply switches to sleep mode" msgstr "" "Tijd in minuten voordat de interne voeding overschakelt naar slaap modus" -#: backend/fujitsu.c:3958 +#: backend/fujitsu.c:3962 #, no-c-format msgid "Off timer" msgstr "Tijdschakelaar - uitstand" -#: backend/fujitsu.c:3959 +#: backend/fujitsu.c:3963 #, no-c-format msgid "" "Time in minutes until the internal power supply switches the scanner " @@ -2678,42 +2707,42 @@ msgstr "" "Tijd in minuten voordat de interne voeding de scanner uitschakelt. In " "stappen van 15 minuten. Nul betekent nooit uitschakelen" -#: backend/fujitsu.c:3977 +#: backend/fujitsu.c:3981 #, no-c-format msgid "Duplex offset" msgstr "Dubbelzijdige compensatie" -#: backend/fujitsu.c:3978 +#: backend/fujitsu.c:3982 #, no-c-format msgid "Adjust front/back offset" msgstr "Pas voor-/achtercompensatie aan" -#: backend/fujitsu.c:3995 backend/plustek.c:1025 backend/umax_pp.c:800 +#: backend/fujitsu.c:3999 backend/plustek.c:1025 backend/umax_pp.c:794 #, no-c-format msgid "Green offset" msgstr "Groen compensatie" -#: backend/fujitsu.c:3996 +#: backend/fujitsu.c:4000 #, no-c-format msgid "Adjust green/red offset" msgstr "Pas groen-/roodcompensatie aan" -#: backend/fujitsu.c:4013 backend/plustek.c:1041 backend/umax_pp.c:812 +#: backend/fujitsu.c:4017 backend/plustek.c:1041 backend/umax_pp.c:806 #, no-c-format msgid "Blue offset" msgstr "Blauw compensatie" -#: backend/fujitsu.c:4014 +#: backend/fujitsu.c:4018 #, no-c-format msgid "Adjust blue/red offset" msgstr "Pas blauw-/roodcompensatie aan" -#: backend/fujitsu.c:4027 +#: backend/fujitsu.c:4031 #, no-c-format msgid "Low Memory" msgstr "Te weinig geheugen beschikbaar" -#: backend/fujitsu.c:4028 +#: backend/fujitsu.c:4032 #, no-c-format msgid "" "Limit driver memory usage for use in embedded systems. Causes some " @@ -2727,12 +2756,12 @@ msgstr "" "gebruikt om het juiste beeld vast te stellen. Deze optie dient " "uitsluitend te worden gebruikt door aangepaste front-end software." -#: backend/fujitsu.c:4043 +#: backend/fujitsu.c:4047 #, no-c-format msgid "Duplex side" msgstr "Duplex zijde" -#: backend/fujitsu.c:4044 +#: backend/fujitsu.c:4048 #, no-c-format msgid "" "Tells which side (0=front, 1=back) of a duplex scan the next call to " @@ -2741,56 +2770,56 @@ msgstr "" "Vertelt welke zijde (0=voorkant, 1=achterkant) van een duplex scan bij " "de volgende aanroep van sane_read wordt geretourneerd." -#: backend/fujitsu.c:4055 +#: backend/fujitsu.c:4059 #, no-c-format msgid "Hardware deskew and crop" msgstr "Hardware rechtzetten en afknippen" -#: backend/fujitsu.c:4056 +#: backend/fujitsu.c:4060 #, no-c-format msgid "Request scanner to rotate and crop pages digitally." msgstr "Vraag de scanner pagina's digitaal te roteren en af te knippen." -#: backend/fujitsu.c:4067 backend/kvs1025_opt.c:871 +#: backend/fujitsu.c:4071 backend/kvs1025_opt.c:871 #, no-c-format msgid "Software deskew" msgstr "Softwarematige scheefheid correctie" -#: backend/fujitsu.c:4068 +#: backend/fujitsu.c:4072 #, no-c-format msgid "Request driver to rotate skewed pages digitally." msgstr "" "Vraag het stuurprogramma scheef getrokken pagina's digitaal te roteren." -#: backend/fujitsu.c:4080 backend/kvs1025_opt.c:880 +#: backend/fujitsu.c:4084 backend/kvs1025_opt.c:880 #, no-c-format msgid "Software despeckle diameter" msgstr "Softwarematige ontspikkel omvang" -#: backend/fujitsu.c:4081 +#: backend/fujitsu.c:4085 #, no-c-format msgid "Maximum diameter of lone dots to remove from scan." msgstr "" "Maximale diameter van verspreid liggende spikkels, die van het gescande " "beeld moeten worden verwijderd." -#: backend/fujitsu.c:4100 backend/genesys/genesys.cpp:4117 +#: backend/fujitsu.c:4104 backend/genesys/genesys.cpp:4159 #, no-c-format msgid "Software crop" msgstr "Softwarematig uitsnijden" -#: backend/fujitsu.c:4101 +#: backend/fujitsu.c:4105 #, no-c-format msgid "Request driver to remove border from pages digitally." msgstr "" "Vraag het stuurprogramma randen van pagina's digitaal te verwijderen." -#: backend/fujitsu.c:4130 +#: backend/fujitsu.c:4134 #, no-c-format msgid "Halt on Cancel" msgstr "Stoppen bij annuleren" -#: backend/fujitsu.c:4131 +#: backend/fujitsu.c:4135 #, no-c-format msgid "" "Request driver to halt the paper feed instead of eject during a cancel." @@ -2798,105 +2827,105 @@ msgstr "" "Vraag het stuurprogramma de papierdoorvoer te stoppen i.p.v. uit te " "werpen tijdens een annulering" -#: backend/fujitsu.c:4142 +#: backend/fujitsu.c:4146 #, no-c-format msgid "Endorser Options" msgstr "Endorser-opties" -#: backend/fujitsu.c:4143 +#: backend/fujitsu.c:4147 #, no-c-format msgid "Controls for endorser unit" msgstr "Stuurt de Endorser eenheid aan" -#: backend/fujitsu.c:4154 +#: backend/fujitsu.c:4158 #, no-c-format msgid "Endorser" msgstr "Endorser" -#: backend/fujitsu.c:4155 +#: backend/fujitsu.c:4159 #, no-c-format msgid "Enable endorser unit" msgstr "Schakel Endorser eenheid in" -#: backend/fujitsu.c:4170 +#: backend/fujitsu.c:4174 #, no-c-format msgid "Endorser bits" msgstr "Endorser delen" -#: backend/fujitsu.c:4171 +#: backend/fujitsu.c:4175 #, no-c-format msgid "Determines maximum endorser counter value." msgstr "Bepaald maximale Endorser teller waarde" -#: backend/fujitsu.c:4196 +#: backend/fujitsu.c:4200 #, no-c-format msgid "Endorser value" msgstr "Endorser waarde" -#: backend/fujitsu.c:4197 +#: backend/fujitsu.c:4201 #, no-c-format msgid "Initial endorser counter value." msgstr "Initiële Endorser teller waarde" -#: backend/fujitsu.c:4220 +#: backend/fujitsu.c:4224 #, no-c-format msgid "Endorser step" msgstr "Endorser stap" -#: backend/fujitsu.c:4221 +#: backend/fujitsu.c:4225 #, no-c-format msgid "Change endorser counter value by this much for each page." msgstr "" "Wijzig Endorser teller waarde met deze hoeveelheid voor elke pagina" -#: backend/fujitsu.c:4244 +#: backend/fujitsu.c:4248 #, no-c-format msgid "Endorser Y" msgstr "Endorser Y" -#: backend/fujitsu.c:4245 +#: backend/fujitsu.c:4249 #, no-c-format msgid "Endorser print offset from top of paper." msgstr "Endorser afdruk compensatie vanaf de bovenkant van het papier" -#: backend/fujitsu.c:4270 +#: backend/fujitsu.c:4274 #, no-c-format msgid "Endorser font" msgstr "Endorser lettertype" -#: backend/fujitsu.c:4271 +#: backend/fujitsu.c:4275 #, no-c-format msgid "Endorser printing font." msgstr "Endorser afdruk lettertype" -#: backend/fujitsu.c:4300 +#: backend/fujitsu.c:4304 #, no-c-format msgid "Endorser direction" msgstr "Endorser richting" -#: backend/fujitsu.c:4301 +#: backend/fujitsu.c:4305 #, no-c-format msgid "Endorser printing direction." msgstr "Endorser afdruk richting" -#: backend/fujitsu.c:4325 +#: backend/fujitsu.c:4329 #, no-c-format msgid "Endorser side" msgstr "Endorser zijde" -#: backend/fujitsu.c:4326 +#: backend/fujitsu.c:4330 #, no-c-format msgid "Endorser printing side, requires hardware support to change" msgstr "" "Endorser afdrukzijde, vereist hardware ondersteuning om te worden " "gewijzigd" -#: backend/fujitsu.c:4351 +#: backend/fujitsu.c:4355 #, no-c-format msgid "Endorser string" msgstr "Endorser tekst" -#: backend/fujitsu.c:4352 +#: backend/fujitsu.c:4356 #, no-c-format msgid "" "Endorser alphanumeric print format. %05ud or %08ud at the end will be " @@ -2905,214 +2934,200 @@ msgstr "" "Endorser alfanumerieke afdrukformaat. %05ud of %08ud zal aan het eind " "worden vervangen door de teller waarde." -#: backend/fujitsu.c:4379 +#: backend/fujitsu.c:4383 #, no-c-format msgid "Top edge" msgstr "Bovenrand" -#: backend/fujitsu.c:4380 +#: backend/fujitsu.c:4384 #, fuzzy, no-c-format msgid "Paper is pulled partly into ADF" msgstr "Papier is gedeeltelijk in de ADF getrokken" -#: backend/fujitsu.c:4391 +#: backend/fujitsu.c:4395 #, no-c-format msgid "A3 paper" msgstr "A3 papier" -#: backend/fujitsu.c:4392 +#: backend/fujitsu.c:4396 #, no-c-format msgid "A3 paper detected" msgstr "A3 papier gedetecteerd" -#: backend/fujitsu.c:4403 +#: backend/fujitsu.c:4407 #, no-c-format msgid "B4 paper" msgstr "B4 papier" -#: backend/fujitsu.c:4404 +#: backend/fujitsu.c:4408 #, no-c-format msgid "B4 paper detected" msgstr "B4 papier gedetecteerd" -#: backend/fujitsu.c:4415 +#: backend/fujitsu.c:4419 #, no-c-format msgid "A4 paper" msgstr "A4 papier" -#: backend/fujitsu.c:4416 +#: backend/fujitsu.c:4420 #, no-c-format msgid "A4 paper detected" msgstr "A4 papier gedetecteerd" -#: backend/fujitsu.c:4427 +#: backend/fujitsu.c:4431 #, no-c-format msgid "B5 paper" msgstr "B5 papier" -#: backend/fujitsu.c:4428 +#: backend/fujitsu.c:4432 #, no-c-format msgid "B5 paper detected" msgstr "B5 papier gedetecteerd" -#: backend/fujitsu.c:4451 +#: backend/fujitsu.c:4455 #, no-c-format msgid "OMR or DF" msgstr "OMR of DF" -#: backend/fujitsu.c:4452 +#: backend/fujitsu.c:4456 #, no-c-format msgid "OMR or double feed detected" msgstr "OMR of dubbele doorvoer gedetecteerd" -#: backend/fujitsu.c:4475 +#: backend/fujitsu.c:4479 #, no-c-format msgid "Power saving" msgstr "Energiebesparende" -#: backend/fujitsu.c:4476 +#: backend/fujitsu.c:4480 #, no-c-format msgid "Scanner in power saving mode" msgstr "Scanner in energiebesparende modus" -#: backend/fujitsu.c:4499 +#: backend/fujitsu.c:4503 #, no-c-format msgid "Manual feed" msgstr "Handmatige doorvoer" -#: backend/fujitsu.c:4500 +#: backend/fujitsu.c:4504 #, no-c-format msgid "Manual feed selected" msgstr "Handmatige doorvoer geselecteerd" -#: backend/fujitsu.c:4523 +#: backend/fujitsu.c:4527 #, no-c-format msgid "Function" msgstr "Functie" -#: backend/fujitsu.c:4524 +#: backend/fujitsu.c:4528 #, no-c-format msgid "Function character on screen" msgstr "Functie karakter op het scherm" -#: backend/fujitsu.c:4535 +#: backend/fujitsu.c:4539 #, no-c-format msgid "Ink low" msgstr "Inkt bijna op" -#: backend/fujitsu.c:4536 +#: backend/fujitsu.c:4540 #, no-c-format msgid "Imprinter ink running low" msgstr "Imprinter inkt is bijna op" -#: backend/fujitsu.c:4547 +#: backend/fujitsu.c:4551 #, no-c-format msgid "Double feed" msgstr "Dubbele doorvoer" -#: backend/fujitsu.c:4548 +#: backend/fujitsu.c:4552 #, no-c-format msgid "Double feed detected" msgstr "Dubbele doorvoer gedetecteerd" -#: backend/fujitsu.c:4559 +#: backend/fujitsu.c:4563 #, no-c-format msgid "Error code" msgstr "Foutcode" -#: backend/fujitsu.c:4560 +#: backend/fujitsu.c:4564 #, no-c-format msgid "Hardware error code" msgstr "Hardware foutcode" -#: backend/fujitsu.c:4571 +#: backend/fujitsu.c:4575 #, no-c-format msgid "Skew angle" msgstr "Scheefheidshoek" -#: backend/fujitsu.c:4572 +#: backend/fujitsu.c:4576 #, no-c-format msgid "Requires black background for scanning" msgstr "Vereist zwarte achtergrond voor het scannen" -#: backend/fujitsu.c:4583 +#: backend/fujitsu.c:4587 #, no-c-format msgid "Ink remaining" msgstr "Resterende hoeveelheid inkt" -#: backend/fujitsu.c:4584 +#: backend/fujitsu.c:4588 #, no-c-format msgid "Imprinter ink level" msgstr "Imprinter inkt niveau" -#: backend/fujitsu.c:4595 +#: backend/fujitsu.c:4599 #, no-c-format msgid "Density" msgstr "Dichtheid" -#: backend/fujitsu.c:4596 +#: backend/fujitsu.c:4600 #, no-c-format msgid "Density dial" msgstr "Dichtheid schaal" -#: backend/fujitsu.c:4607 backend/fujitsu.c:4608 +#: backend/fujitsu.c:4611 backend/fujitsu.c:4612 #, no-c-format msgid "Duplex switch" msgstr "Duplex schakelaar" -#: backend/genesys/genesys.cpp:4118 +#: backend/genesys/genesys.cpp:4160 #, no-c-format msgid "Request backend to remove border from pages digitally" msgstr "Vraag backend randen van pagina's digitaal te verwijderen" -#: backend/genesys/genesys.cpp:4127 backend/kvs1025_opt.c:912 +#: backend/genesys/genesys.cpp:4169 backend/kvs1025_opt.c:912 #, no-c-format msgid "Request driver to discard pages with low numbers of dark pixels" msgstr "" "Vraag het stuurprogramma pagina's met weinig dekking te verwijderen" -#: backend/genesys/genesys.cpp:4137 backend/kvs1025_opt.c:892 +#: backend/genesys/genesys.cpp:4179 backend/kvs1025_opt.c:892 #, no-c-format msgid "Software derotate" msgstr "Softwarematige rotatie tegen de klok in" -#: backend/genesys/genesys.cpp:4138 backend/kvs1025_opt.c:894 +#: backend/genesys/genesys.cpp:4180 backend/kvs1025_opt.c:894 #, no-c-format msgid "Request driver to detect and correct 90 degree image rotation" msgstr "" "Vraag stuurprogramma een 90 graden gedraaid beeld te herkennen en " "corrigeren" -#: backend/genesys/genesys.cpp:4168 backend/pixma_sane_options.c:314 +#: backend/genesys/genesys.cpp:4210 backend/pixma/pixma_sane_options.c:314 #, no-c-format msgid "Extras" msgstr "Extra's" -#: backend/genesys/genesys.cpp:4188 backend/pixma_sane_options.c:336 +#: backend/genesys/genesys.cpp:4230 backend/pixma/pixma_sane_options.c:336 #, no-c-format msgid "Dynamic threshold curve, from light to dark, normally 50-65" msgstr "Dynamische drempel curve, van licht naar donker, normaal 50-65" -#: backend/genesys/genesys.cpp:4197 -#, no-c-format -msgid "Disable dynamic lineart" -msgstr "Dynamische lijntekening uitschakelen" - -#: backend/genesys/genesys.cpp:4199 -#, no-c-format -msgid "" -"Disable use of a software adaptive algorithm to generate lineart relying " -"instead on hardware lineart." -msgstr "" -"Schakel, om een lijntekening te genereren het gebruik van een software " -"aanpassend algoritme uit en vertrouw in plaats daarvan op de hardware." - -#: backend/genesys/genesys.cpp:4215 +#: backend/genesys/genesys.cpp:4240 #, no-c-format msgid "Disable interpolation" msgstr "Schakel interpolatie uit" -#: backend/genesys/genesys.cpp:4218 +#: backend/genesys/genesys.cpp:4243 #, no-c-format msgid "" "When using high resolutions where the horizontal resolution is smaller " @@ -3122,34 +3137,34 @@ msgstr "" "resolutie kleiner is dan de verticale resolutie, wordt de horizontale " "interpolatie uitgeschakeld." -#: backend/genesys/genesys.cpp:4227 +#: backend/genesys/genesys.cpp:4252 #, no-c-format msgid "Color filter" msgstr "Kleurenfilter" -#: backend/genesys/genesys.cpp:4230 +#: backend/genesys/genesys.cpp:4255 #, no-c-format msgid "When using gray or lineart this option selects the used color." msgstr "" "Wanneer grijs of lijntekening wordt gebruikt, selecteert deze optie de " "huidige actieve kleur." -#: backend/genesys/genesys.cpp:4254 +#: backend/genesys/genesys.cpp:4279 #, no-c-format msgid "Calibration file" msgstr "Kalibratiebestand" -#: backend/genesys/genesys.cpp:4255 +#: backend/genesys/genesys.cpp:4280 #, no-c-format msgid "Specify the calibration file to use" msgstr "Specificeer het te gebruiken kalibratiebestand" -#: backend/genesys/genesys.cpp:4272 +#: backend/genesys/genesys.cpp:4297 #, no-c-format msgid "Calibration cache expiration time" msgstr "Vervaltijd van de kalibratie cache" -#: backend/genesys/genesys.cpp:4273 +#: backend/genesys/genesys.cpp:4298 #, no-c-format msgid "" "Time (in minutes) before a cached calibration expires. A value of 0 " @@ -3159,12 +3174,12 @@ msgstr "" "van 0 betekent dat geen cache wordt gebruikt. Een negatieve waarde " "betekent dat de cache nooit verloopt." -#: backend/genesys/genesys.cpp:4283 +#: backend/genesys/genesys.cpp:4308 #, no-c-format msgid "Lamp off time" msgstr "Lamp-uit tijd" -#: backend/genesys/genesys.cpp:4286 +#: backend/genesys/genesys.cpp:4311 #, no-c-format msgid "" "The lamp will be turned off after the given time (in minutes). A value " @@ -3173,103 +3188,108 @@ msgstr "" "De lamp wordt uitgeschakeld na de opgegeven tijd (in minuten). Een " "waarde van 0 betekent, dat de lamp niet wordt uitgeschakeld." -#: backend/genesys/genesys.cpp:4296 +#: backend/genesys/genesys.cpp:4321 #, no-c-format msgid "Lamp off during scan" msgstr "Lamp uit tijdens het scannen" -#: backend/genesys/genesys.cpp:4297 +#: backend/genesys/genesys.cpp:4322 #, no-c-format msgid "The lamp will be turned off during scan. " msgstr "De lamp wordt uitgeschakeld tijdens het scannen" -#: backend/genesys/genesys.cpp:4324 backend/genesys/genesys.cpp:4325 +#: backend/genesys/genesys.cpp:4349 backend/genesys/genesys.cpp:4350 #, no-c-format msgid "File button" msgstr "Bestand-knop" -#: backend/genesys/genesys.cpp:4369 backend/genesys/genesys.cpp:4370 +#: backend/genesys/genesys.cpp:4394 backend/genesys/genesys.cpp:4395 #, no-c-format msgid "OCR button" msgstr "OCR-knop" -#: backend/genesys/genesys.cpp:4381 backend/genesys/genesys.cpp:4382 +#: backend/genesys/genesys.cpp:4406 backend/genesys/genesys.cpp:4407 #, no-c-format msgid "Power button" msgstr "Aan/Uit-knop" -#: backend/genesys/genesys.cpp:4393 backend/genesys/genesys.cpp:4394 +#: backend/genesys/genesys.cpp:4418 backend/genesys/genesys.cpp:4419 #, no-c-format msgid "Extra button" msgstr "Extra-knop" -#: backend/genesys/genesys.cpp:4405 backend/gt68xx.c:755 +#: backend/genesys/genesys.cpp:4430 backend/gt68xx.c:755 #, fuzzy, no-c-format msgid "Needs calibration" msgstr "Kalibratie nodig" -#: backend/genesys/genesys.cpp:4406 backend/gt68xx.c:756 +#: backend/genesys/genesys.cpp:4431 backend/gt68xx.c:756 backend/p5.c:1928 #, no-c-format msgid "The scanner needs calibration for the current settings" msgstr "De scanner moet worden gekalibreerd voor de huidige instellingen" -#: backend/genesys/genesys.cpp:4417 backend/gt68xx.c:780 -#: backend/gt68xx.c:781 backend/pixma_sane_options.c:226 -#: backend/plustek.c:1080 +#: backend/genesys/genesys.cpp:4442 backend/gt68xx.c:780 +#: backend/gt68xx.c:781 backend/p5.c:1937 backend/p5.c:1938 +#: backend/pixma/pixma_sane_options.c:226 backend/plustek.c:1080 #, no-c-format msgid "Buttons" msgstr "Knoppen" -#: backend/genesys/genesys.cpp:4426 backend/gt68xx.c:787 -#: backend/hp5400_sane.c:392 backend/hp-option.h:97 backend/niash.c:726 -#: backend/plustek.c:941 +#: backend/genesys/genesys.cpp:4451 backend/gt68xx.c:787 +#: backend/hp-option.h:97 backend/hp5400_sane.c:392 backend/niash.c:726 +#: backend/p5.c:1945 backend/plustek.c:941 #, no-c-format msgid "Calibrate" msgstr "Kalibreren" -#: backend/genesys/genesys.cpp:4428 backend/gt68xx.c:789 +#: backend/genesys/genesys.cpp:4453 backend/gt68xx.c:789 backend/p5.c:1947 #, no-c-format msgid "Start calibration using special sheet" msgstr "Begin kalibreerproces met een speciale transparant" -#: backend/genesys/genesys.cpp:4440 backend/gt68xx.c:802 +#: backend/genesys/genesys.cpp:4465 backend/gt68xx.c:802 backend/p5.c:1958 #, no-c-format msgid "Clear calibration" msgstr "Reset kalibratie" -#: backend/genesys/genesys.cpp:4441 backend/gt68xx.c:803 +#: backend/genesys/genesys.cpp:4466 backend/gt68xx.c:803 backend/p5.c:1960 #, no-c-format msgid "Clear calibration cache" msgstr "Reset kalibratiecache" -#: backend/genesys/genesys.cpp:4451 +#: backend/genesys/genesys.cpp:4476 #, no-c-format msgid "Force calibration" msgstr "Dwing kalibratie" -#: backend/genesys/genesys.cpp:4452 +#: backend/genesys/genesys.cpp:4477 #, no-c-format msgid "Force calibration ignoring all and any calibration caches" msgstr "Dwing kalibratie en negeer alle kalibratie caches" -#: backend/genesys/genesys.cpp:4462 +#: backend/genesys/genesys.cpp:4487 #, fuzzy, no-c-format msgid "Ignore internal offsets" msgstr "Groen compensatie" -#: backend/genesys/genesys.cpp:4464 +#: backend/genesys/genesys.cpp:4489 #, no-c-format msgid "" "Acquires the image including the internal calibration areas of the " "scanner" msgstr "" -#: backend/gt68xx.c:149 backend/ma1509.c:108 backend/mustek.c:164 -#: backend/snapscan-options.c:87 backend/umax.c:182 +#: backend/genesys/genesys.h:79 backend/gt68xx.c:149 backend/ma1509.c:108 +#: backend/mustek.c:164 backend/snapscan-options.c:87 backend/umax.c:182 #, no-c-format msgid "Transparency Adapter" msgstr "Transparantenhulpstuk" +#: backend/genesys/genesys.h:80 +#, fuzzy, no-c-format +msgid "Transparency Adapter Infrared" +msgstr "Transparantenhulpstuk" + #: backend/gt68xx.c:470 #, no-c-format msgid "Gray mode color" @@ -3378,6 +3398,310 @@ msgstr "Gammawaarde" msgid "Sets the gamma value of all channels." msgstr "Stelt de gammawaarde voor alle kanalen in." +#: backend/hp-option.c:2987 +#, no-c-format +msgid "Advanced Options" +msgstr "Geavanceerde opties" + +#: backend/hp-option.c:3044 +#, no-c-format +msgid "Coarse" +msgstr "Grof" + +#: backend/hp-option.c:3045 +#, no-c-format +msgid "Fine" +msgstr "Fijn" + +#: backend/hp-option.c:3046 +#, no-c-format +msgid "Bayer" +msgstr "Bayer" + +#: backend/hp-option.c:3049 backend/hp-option.c:3100 +#, no-c-format +msgid "Custom" +msgstr "Door de gebruiker gedefinieerd" + +#: backend/hp-option.c:3090 backend/hp-option.c:3146 +#: backend/hp-option.c:3161 +#, no-c-format +msgid "Auto" +msgstr "Automatisch" + +#: backend/hp-option.c:3091 +#, no-c-format +msgid "NTSC RGB" +msgstr "NTSC RGB" + +#: backend/hp-option.c:3092 +#, no-c-format +msgid "XPA RGB" +msgstr "XPA RGB" + +#: backend/hp-option.c:3093 +#, no-c-format +msgid "Pass-through" +msgstr "Doorgang" + +#: backend/hp-option.c:3094 +#, no-c-format +msgid "NTSC Gray" +msgstr "NTSC Grijs" + +#: backend/hp-option.c:3095 +#, no-c-format +msgid "XPA Gray" +msgstr "XPA Grijs" + +#: backend/hp-option.c:3147 +#, no-c-format +msgid "Slow" +msgstr "Langzaam" + +#: backend/hp-option.c:3148 backend/hp-option.c:3255 +#: backend/kvs40xx_opt.c:230 backend/matsushita.c:244 backend/mustek.c:149 +#: backend/plustek.c:234 backend/plustek_pp.c:203 backend/u12.c:155 +#, no-c-format +msgid "Normal" +msgstr "Normaal" + +#: backend/hp-option.c:3149 +#, no-c-format +msgid "Fast" +msgstr "Snel" + +#: backend/hp-option.c:3150 +#, no-c-format +msgid "Extra Fast" +msgstr "Extra snel" + +#: backend/hp-option.c:3163 +#, no-c-format +msgid "2-pixel" +msgstr "2-beeldpunt" + +#: backend/hp-option.c:3164 +#, no-c-format +msgid "4-pixel" +msgstr "4-beeldpunt" + +#: backend/hp-option.c:3165 +#, no-c-format +msgid "8-pixel" +msgstr "8-beeldpunt" + +#: backend/hp-option.c:3176 +#, no-c-format +msgid "Print" +msgstr "Afdruk" + +#: backend/hp-option.c:3177 backend/hp3900_sane.c:427 +#: backend/hp3900_sane.c:1019 +#, no-c-format +msgid "Slide" +msgstr "Dia" + +#: backend/hp-option.c:3178 +#, no-c-format +msgid "Film-strip" +msgstr "Filmstrook" + +#: backend/hp-option.c:3256 backend/hp5590.c:93 +#, no-c-format +msgid "ADF" +msgstr "Automatische documentinvoer" + +#: backend/hp-option.c:3257 +#, no-c-format +msgid "XPA" +msgstr "XPA" + +#: backend/hp-option.c:3331 backend/hp-option.c:3344 +#, no-c-format +msgid "Conditional" +msgstr "Voorwaardelijk" + +#: backend/hp-option.c:3417 +#, no-c-format +msgid "Experiment" +msgstr "Experiment" + +#: backend/hp-option.h:60 +#, no-c-format +msgid "Sharpening" +msgstr "Scherper maken" + +#: backend/hp-option.h:61 +#, no-c-format +msgid "Set sharpening value." +msgstr "Stel scherpte waarde in." + +#: backend/hp-option.h:66 +#, no-c-format +msgid "Auto Threshold" +msgstr "Automatische drempelwaarde" + +#: backend/hp-option.h:68 +#, no-c-format +msgid "Enable automatic determination of threshold for line-art scans." +msgstr "" +"Maak automatische bepaling mogelijk van de drempelwaarde voor " +"lijntekening scans." + +#: backend/hp-option.h:74 +#, no-c-format +msgid "Select smoothing filter." +msgstr "Kies halftoon filter." + +#: backend/hp-option.h:79 +#, no-c-format +msgid "Unload media after scan" +msgstr "Verwijder origineel na de scan" + +#: backend/hp-option.h:80 +#, no-c-format +msgid "Unloads the media after a scan." +msgstr "Verwijdert het origineel na de scan." + +#: backend/hp-option.h:85 +#, no-c-format +msgid "Change document" +msgstr "Wijzig origineel" + +#: backend/hp-option.h:86 +#, no-c-format +msgid "Change Document." +msgstr "Wijzig Origineel." + +#: backend/hp-option.h:91 +#, no-c-format +msgid "Unload" +msgstr "Verwijder" + +#: backend/hp-option.h:92 +#, no-c-format +msgid "Unload Document." +msgstr "Verwijder Origineel." + +#: backend/hp-option.h:98 +#, no-c-format +msgid "Start calibration process." +msgstr "Begin het kalibreer proces" + +#: backend/hp-option.h:103 +#, no-c-format +msgid "Media" +msgstr "Origineel" + +#: backend/hp-option.h:104 +#, no-c-format +msgid "Set type of media." +msgstr "Stel origineel type in." + +#: backend/hp-option.h:109 +#, no-c-format +msgid "Exposure time" +msgstr "Belichtingstijd" + +#: backend/hp-option.h:111 +#, no-c-format +msgid "" +"A longer exposure time lets the scanner collect more light. Suggested " +"use is 175% for prints, 150% for normal slides and \"Negative\" for " +"negative film. For dark (underexposed) images you can increase this " +"value." +msgstr "" +"Een langere belichtingstijd laat de scanner meer licht verzamelen. " +"Advies is om 175% voor papieren originelen, 150% voor dia's en \"Negatief" +"\" voor negatieven te gebruiken. Voor donkere (onderbelichte) beelden " +"kun je deze waarde verhogen." + +#: backend/hp-option.h:119 backend/hp-option.h:126 +#, no-c-format +msgid "Color Matrix" +msgstr "Kleurmatrix" + +#: backend/hp-option.h:121 +#, fuzzy, no-c-format +msgid "Set the scanner's color matrix." +msgstr "Stel de kleurmatrix in van de scanner" + +#: backend/hp-option.h:127 +#, no-c-format +msgid "Custom color matrix." +msgstr "Door de gebruiker gedefinieerde kleurmatrix" + +#: backend/hp-option.h:132 +#, no-c-format +msgid "Mono Color Matrix" +msgstr "Mono Kleurmatrix" + +#: backend/hp-option.h:133 +#, no-c-format +msgid "Custom color matrix for grayscale scans." +msgstr "Door de gebruiker gedefinieerd kleurmatrix voor grijstint scans" + +#: backend/hp-option.h:138 +#, no-c-format +msgid "Mirror horizontal" +msgstr "Horizontaal spiegelen" + +#: backend/hp-option.h:139 +#, no-c-format +msgid "Mirror image horizontally." +msgstr "Beeld horizontaal spiegelen" + +#: backend/hp-option.h:144 +#, no-c-format +msgid "Mirror vertical" +msgstr "Verticaal spiegelen" + +#: backend/hp-option.h:145 +#, no-c-format +msgid "Mirror image vertically." +msgstr "Beeld verticaal spiegelen" + +#: backend/hp-option.h:150 +#, no-c-format +msgid "Update options" +msgstr "Opties bijwerken" + +#: backend/hp-option.h:151 +#, no-c-format +msgid "Update options." +msgstr "Opties bijwerken." + +#: backend/hp-option.h:156 +#, no-c-format +msgid "8 bit output" +msgstr "8-bit resultaat" + +#: backend/hp-option.h:158 +#, no-c-format +msgid "Use bit depth greater eight internally, but output only eight bits." +msgstr "Gebruik intern meer dan acht bits, maar geef slechts acht bits." + +#: backend/hp-option.h:164 +#, no-c-format +msgid "Front button wait" +msgstr "Voorpaneel knop wacht" + +#: backend/hp-option.h:165 +#, no-c-format +msgid "Wait to scan for front-panel button push." +msgstr "Wacht met scannen totdat knop op voorpaneel is ingedrukt." + +#: backend/hp-option.h:172 +#, no-c-format +msgid "Shut off lamp" +msgstr "Schakel de lamp uit" + +#: backend/hp-option.h:173 +#, no-c-format +msgid "Shut off scanner lamp." +msgstr "Schakel de scannerlamp uit." + #: backend/hp3500.c:1020 #, no-c-format msgid "Geometry Group" @@ -3388,12 +3712,6 @@ msgstr "Geometrie groep" msgid "Scan Mode Group" msgstr "Scanmodus groep" -#: backend/hp3900_sane.c:427 backend/hp3900_sane.c:1019 -#: backend/hp-option.c:3177 -#, no-c-format -msgid "Slide" -msgstr "Dia" - #: backend/hp3900_sane.c:1405 #, no-c-format msgid "Scanner model" @@ -3598,11 +3916,6 @@ msgstr "Schakelt de lamp aan of uit." msgid "Calibrates for black and white level." msgstr "Kalibreert voor de zwart-/witwaarde" -#: backend/hp5590.c:93 backend/hp-option.c:3256 -#, no-c-format -msgid "ADF" -msgstr "Automatische documentinvoer" - #: backend/hp5590.c:95 #, no-c-format msgid "TMA Slides" @@ -3713,299 +4026,6 @@ msgid "" "r*65536+256*g+b or gray value (default=violet or gray)" msgstr "" -#: backend/hp-option.c:2987 -#, no-c-format -msgid "Advanced Options" -msgstr "Geavanceerde opties" - -#: backend/hp-option.c:3044 -#, no-c-format -msgid "Coarse" -msgstr "Grof" - -#: backend/hp-option.c:3045 -#, no-c-format -msgid "Fine" -msgstr "Fijn" - -#: backend/hp-option.c:3046 -#, no-c-format -msgid "Bayer" -msgstr "Bayer" - -#: backend/hp-option.c:3049 backend/hp-option.c:3100 -#, no-c-format -msgid "Custom" -msgstr "Door de gebruiker gedefinieerd" - -#: backend/hp-option.c:3090 backend/hp-option.c:3146 -#: backend/hp-option.c:3161 -#, no-c-format -msgid "Auto" -msgstr "Automatisch" - -#: backend/hp-option.c:3091 -#, no-c-format -msgid "NTSC RGB" -msgstr "NTSC RGB" - -#: backend/hp-option.c:3092 -#, no-c-format -msgid "XPA RGB" -msgstr "XPA RGB" - -#: backend/hp-option.c:3093 -#, no-c-format -msgid "Pass-through" -msgstr "Doorgang" - -#: backend/hp-option.c:3094 -#, no-c-format -msgid "NTSC Gray" -msgstr "NTSC Grijs" - -#: backend/hp-option.c:3095 -#, no-c-format -msgid "XPA Gray" -msgstr "XPA Grijs" - -#: backend/hp-option.c:3147 -#, no-c-format -msgid "Slow" -msgstr "Langzaam" - -#: backend/hp-option.c:3148 backend/hp-option.c:3255 -#: backend/kvs40xx_opt.c:230 backend/matsushita.c:244 backend/mustek.c:149 -#: backend/plustek.c:234 backend/plustek_pp.c:203 backend/u12.c:155 -#, no-c-format -msgid "Normal" -msgstr "Normaal" - -#: backend/hp-option.c:3149 -#, no-c-format -msgid "Fast" -msgstr "Snel" - -#: backend/hp-option.c:3150 -#, no-c-format -msgid "Extra Fast" -msgstr "Extra snel" - -#: backend/hp-option.c:3163 -#, no-c-format -msgid "2-pixel" -msgstr "2-beeldpunt" - -#: backend/hp-option.c:3164 -#, no-c-format -msgid "4-pixel" -msgstr "4-beeldpunt" - -#: backend/hp-option.c:3165 -#, no-c-format -msgid "8-pixel" -msgstr "8-beeldpunt" - -#: backend/hp-option.c:3176 -#, no-c-format -msgid "Print" -msgstr "Afdruk" - -#: backend/hp-option.c:3178 -#, no-c-format -msgid "Film-strip" -msgstr "Filmstrook" - -#: backend/hp-option.c:3257 -#, no-c-format -msgid "XPA" -msgstr "XPA" - -#: backend/hp-option.c:3331 backend/hp-option.c:3344 -#, no-c-format -msgid "Conditional" -msgstr "Voorwaardelijk" - -#: backend/hp-option.c:3417 -#, no-c-format -msgid "Experiment" -msgstr "Experiment" - -#: backend/hp-option.h:60 -#, no-c-format -msgid "Sharpening" -msgstr "Scherper maken" - -#: backend/hp-option.h:61 -#, no-c-format -msgid "Set sharpening value." -msgstr "Stel scherpte waarde in." - -#: backend/hp-option.h:66 -#, no-c-format -msgid "Auto Threshold" -msgstr "Automatische drempelwaarde" - -#: backend/hp-option.h:68 -#, no-c-format -msgid "Enable automatic determination of threshold for line-art scans." -msgstr "" -"Maak automatische bepaling mogelijk van de drempelwaarde voor " -"lijntekening scans." - -#: backend/hp-option.h:74 -#, no-c-format -msgid "Select smoothing filter." -msgstr "Kies halftoon filter." - -#: backend/hp-option.h:79 -#, no-c-format -msgid "Unload media after scan" -msgstr "Verwijder origineel na de scan" - -#: backend/hp-option.h:80 -#, no-c-format -msgid "Unloads the media after a scan." -msgstr "Verwijdert het origineel na de scan." - -#: backend/hp-option.h:85 -#, no-c-format -msgid "Change document" -msgstr "Wijzig origineel" - -#: backend/hp-option.h:86 -#, no-c-format -msgid "Change Document." -msgstr "Wijzig Origineel." - -#: backend/hp-option.h:91 -#, no-c-format -msgid "Unload" -msgstr "Verwijder" - -#: backend/hp-option.h:92 -#, no-c-format -msgid "Unload Document." -msgstr "Verwijder Origineel." - -#: backend/hp-option.h:98 -#, no-c-format -msgid "Start calibration process." -msgstr "Begin het kalibreer proces" - -#: backend/hp-option.h:103 -#, no-c-format -msgid "Media" -msgstr "Origineel" - -#: backend/hp-option.h:104 -#, no-c-format -msgid "Set type of media." -msgstr "Stel origineel type in." - -#: backend/hp-option.h:109 -#, no-c-format -msgid "Exposure time" -msgstr "Belichtingstijd" - -#: backend/hp-option.h:111 -#, no-c-format -msgid "" -"A longer exposure time lets the scanner collect more light. Suggested " -"use is 175% for prints, 150% for normal slides and \"Negative\" for " -"negative film. For dark (underexposed) images you can increase this " -"value." -msgstr "" -"Een langere belichtingstijd laat de scanner meer licht verzamelen. " -"Advies is om 175% voor papieren originelen, 150% voor dia's en \"Negatief" -"\" voor negatieven te gebruiken. Voor donkere (onderbelichte) beelden " -"kun je deze waarde verhogen." - -#: backend/hp-option.h:119 backend/hp-option.h:126 -#, no-c-format -msgid "Color Matrix" -msgstr "Kleurmatrix" - -#: backend/hp-option.h:121 -#, fuzzy, no-c-format -msgid "Set the scanner's color matrix." -msgstr "Stel de kleurmatrix in van de scanner" - -#: backend/hp-option.h:127 -#, no-c-format -msgid "Custom color matrix." -msgstr "Door de gebruiker gedefinieerde kleurmatrix" - -#: backend/hp-option.h:132 -#, no-c-format -msgid "Mono Color Matrix" -msgstr "Mono Kleurmatrix" - -#: backend/hp-option.h:133 -#, no-c-format -msgid "Custom color matrix for grayscale scans." -msgstr "Door de gebruiker gedefinieerd kleurmatrix voor grijstint scans" - -#: backend/hp-option.h:138 -#, no-c-format -msgid "Mirror horizontal" -msgstr "Horizontaal spiegelen" - -#: backend/hp-option.h:139 -#, no-c-format -msgid "Mirror image horizontally." -msgstr "Beeld horizontaal spiegelen" - -#: backend/hp-option.h:144 -#, no-c-format -msgid "Mirror vertical" -msgstr "Verticaal spiegelen" - -#: backend/hp-option.h:145 -#, no-c-format -msgid "Mirror image vertically." -msgstr "Beeld verticaal spiegelen" - -#: backend/hp-option.h:150 -#, no-c-format -msgid "Update options" -msgstr "Opties bijwerken" - -#: backend/hp-option.h:151 -#, no-c-format -msgid "Update options." -msgstr "Opties bijwerken." - -#: backend/hp-option.h:156 -#, no-c-format -msgid "8 bit output" -msgstr "8-bit resultaat" - -#: backend/hp-option.h:158 -#, no-c-format -msgid "Use bit depth greater eight internally, but output only eight bits." -msgstr "Gebruik intern meer dan acht bits, maar geef slechts acht bits." - -#: backend/hp-option.h:164 -#, no-c-format -msgid "Front button wait" -msgstr "Voorpaneel knop wacht" - -#: backend/hp-option.h:165 -#, no-c-format -msgid "Wait to scan for front-panel button push." -msgstr "Wacht met scannen totdat knop op voorpaneel is ingedrukt." - -#: backend/hp-option.h:172 -#, no-c-format -msgid "Shut off lamp" -msgstr "Schakel de lamp uit" - -#: backend/hp-option.h:173 -#, no-c-format -msgid "Shut off scanner lamp." -msgstr "Schakel de scannerlamp uit." - #: backend/kvs1025.h:51 backend/kvs20xx_opt.c:295 backend/kvs40xx_opt.c:516 #: backend/matsushita.h:219 #, no-c-format @@ -4105,7 +4125,7 @@ msgid "single" msgstr "enkel" #: backend/kvs1025_opt.c:73 backend/kvs20xx.c:462 backend/kvs20xx_opt.c:56 -#: backend/kvs40xx.c:704 backend/kvs40xx.c:722 backend/kvs40xx_opt.c:102 +#: backend/kvs40xx.c:705 backend/kvs40xx.c:723 backend/kvs40xx_opt.c:102 #: backend/kvs40xx_opt.c:1087 #, no-c-format msgid "continuous" @@ -4404,7 +4424,7 @@ msgstr "Stelt beeldverbetering in" #: backend/kvs1025_opt.c:807 backend/kvs1025_opt.c:808 #: backend/matsushita.c:1300 backend/matsushita.c:1301 -#: backend/pixma_sane_options.c:112 +#: backend/pixma/pixma_sane_options.c:112 #, no-c-format msgid "Gamma" msgstr "Gamma" @@ -4709,52 +4729,52 @@ msgstr "8x8 Bayer" msgid "8x8 Vertical Line" msgstr "8x8 Verticale Lijn" -#: backend/lexmark.c:273 backend/umax_pp.c:711 +#: backend/lexmark.c:273 backend/umax_pp.c:705 #, no-c-format msgid "Gain" msgstr "Bereik" -#: backend/lexmark.c:274 backend/umax_pp.c:712 +#: backend/lexmark.c:274 backend/umax_pp.c:706 #, no-c-format msgid "Color channels gain settings" msgstr "Bereikinstellingen van de kleurkanalen" -#: backend/lexmark.c:283 backend/umax_pp.c:719 +#: backend/lexmark.c:283 backend/umax_pp.c:713 #, no-c-format msgid "Gray gain" msgstr "Grijsbereik" -#: backend/lexmark.c:284 backend/umax_pp.c:720 +#: backend/lexmark.c:284 backend/umax_pp.c:714 #, no-c-format msgid "Sets gray channel gain" msgstr "Stelt het bereik in van het grijze kanaal" -#: backend/lexmark.c:297 backend/plustek.c:1001 backend/umax_pp.c:731 +#: backend/lexmark.c:297 backend/plustek.c:1001 backend/umax_pp.c:725 #, no-c-format msgid "Red gain" msgstr "Roodbereik" -#: backend/lexmark.c:298 backend/umax_pp.c:732 +#: backend/lexmark.c:298 backend/umax_pp.c:726 #, no-c-format msgid "Sets red channel gain" msgstr "Stelt het bereik in van het rode kanaal" -#: backend/lexmark.c:311 backend/plustek.c:1017 backend/umax_pp.c:743 +#: backend/lexmark.c:311 backend/plustek.c:1017 backend/umax_pp.c:737 #, no-c-format msgid "Green gain" msgstr "Groenbereik" -#: backend/lexmark.c:312 backend/umax_pp.c:744 +#: backend/lexmark.c:312 backend/umax_pp.c:738 #, no-c-format msgid "Sets green channel gain" msgstr "Stelt het bereik in van het groene kanaal" -#: backend/lexmark.c:325 backend/plustek.c:1033 backend/umax_pp.c:755 +#: backend/lexmark.c:325 backend/plustek.c:1033 backend/umax_pp.c:749 #, no-c-format msgid "Blue gain" msgstr "Blauwbereik" -#: backend/lexmark.c:326 backend/umax_pp.c:756 +#: backend/lexmark.c:326 backend/umax_pp.c:750 #, no-c-format msgid "Sets blue channel gain" msgstr "Stelt het bereik in van het blauwe kanaal" @@ -4840,7 +4860,7 @@ msgstr "Eén pagina" msgid "All pages" msgstr "Alle pagina's" -#: backend/matsushita.c:1034 backend/plustek.c:1333 +#: backend/matsushita.c:1034 backend/p5_device.c:8 backend/plustek.c:1333 #, no-c-format msgid "sheetfed scanner" msgstr "Doorvoerscanner" @@ -5355,27 +5375,32 @@ msgstr "" "Warm op totdat de helderheid van de lamp constant is in plaats van de " "'verplichte' 40 seconde opwarmtijd aan te houden." -#: backend/pixma.c:397 +#: backend/p5.c:1926 +#, fuzzy, no-c-format +msgid "Need calibration" +msgstr "Kalibratie nodig" + +#: backend/pixma/pixma.c:397 #, no-c-format msgid "Negative color" msgstr "Kleurennegatief" -#: backend/pixma.c:402 +#: backend/pixma/pixma.c:402 #, no-c-format msgid "Negative gray" msgstr "Grijsnegatief" -#: backend/pixma.c:415 +#: backend/pixma/pixma.c:415 #, no-c-format msgid "48 bits color" msgstr "48 bits kleur" -#: backend/pixma.c:420 +#: backend/pixma/pixma.c:420 #, no-c-format msgid "16 bits gray" msgstr "16 bits grijs" -#: backend/pixma_sane_options.c:84 +#: backend/pixma/pixma_sane_options.c:84 #, no-c-format msgid "" "Selects the scan source (such as a document-feeder). Set source before " @@ -5385,12 +5410,12 @@ msgstr "" "de modus en resolutie. Zet modus en resolutie terug naar automatische " "waarden." -#: backend/pixma_sane_options.c:98 +#: backend/pixma/pixma_sane_options.c:98 #, no-c-format msgid "Button-controlled scan" msgstr "Knop-gestuurde scan" -#: backend/pixma_sane_options.c:99 +#: backend/pixma/pixma_sane_options.c:99 #, no-c-format msgid "" "When enabled, scan process will not start immediately. To proceed, press " @@ -5401,37 +5426,37 @@ msgstr "" "gaan, druk op de \"SCAN\" knop (voor MP150) of \"COLOR\" knop (voor " "andere modellen). Om te annuleren, druk op de \"GRAY\" knop." -#: backend/pixma_sane_options.c:232 +#: backend/pixma/pixma_sane_options.c:232 #, no-c-format msgid "Update button state" msgstr "Werk de status van de knop bij" -#: backend/pixma_sane_options.c:244 +#: backend/pixma/pixma_sane_options.c:244 #, no-c-format msgid "Button 1" msgstr "Knop 1" -#: backend/pixma_sane_options.c:258 +#: backend/pixma/pixma_sane_options.c:258 #, no-c-format msgid "Button 2" msgstr "Knop 2" -#: backend/pixma_sane_options.c:272 +#: backend/pixma/pixma_sane_options.c:272 #, no-c-format msgid "Type of original to scan" msgstr "Soort te scannen origineel" -#: backend/pixma_sane_options.c:286 +#: backend/pixma/pixma_sane_options.c:286 #, no-c-format msgid "Target operation type" msgstr "Soort bewerking van het resultaat" -#: backend/pixma_sane_options.c:348 +#: backend/pixma/pixma_sane_options.c:348 #, no-c-format msgid "ADF Waiting Time" msgstr "ADF wachttijd" -#: backend/pixma_sane_options.c:349 +#: backend/pixma/pixma_sane_options.c:349 #, fuzzy, no-c-format msgid "" "When set, the scanner waits upto the specified time in seconds for a new " @@ -5526,7 +5551,7 @@ msgstr "Analoge \"frontend\"" msgid "Red gain value of the AFE" msgstr "Roodbereik waarde van de AFE" -#: backend/plustek.c:1009 backend/umax_pp.c:788 +#: backend/plustek.c:1009 backend/umax_pp.c:782 #, no-c-format msgid "Red offset" msgstr "Rood compensatie" @@ -5804,7 +5829,7 @@ msgstr "" msgid "This option reflects the status of a scanner button." msgstr "Deze optie geeft de status weer van een scannerknop." -#: backend/rts8891.c:2840 backend/umax.c:5795 backend/umax_pp.c:635 +#: backend/rts8891.c:2840 backend/umax.c:5795 backend/umax_pp.c:629 #, no-c-format msgid "Lamp on" msgstr "Lamp aan" @@ -5814,12 +5839,12 @@ msgstr "Lamp aan" msgid "Turn on scanner lamp" msgstr "Schakel scannerlamp aan" -#: backend/rts8891.c:2851 backend/umax1220u.c:248 backend/umax.c:5812 +#: backend/rts8891.c:2851 backend/umax.c:5812 backend/umax1220u.c:248 #, no-c-format msgid "Lamp off" msgstr "Lamp uit" -#: backend/rts8891.c:2852 backend/umax1220u.c:249 backend/umax.c:5813 +#: backend/rts8891.c:2852 backend/umax.c:5813 backend/umax1220u.c:249 #, no-c-format msgid "Turn off scanner lamp" msgstr "Schakel de scannerlamp uit" @@ -6627,56 +6652,67 @@ msgstr "Kalibreermodus" msgid "Define calibration mode" msgstr "Bepaal kalibreermodus" -#: backend/umax_pp.c:636 +#: backend/umax_pp.c:630 #, no-c-format msgid "Sets lamp on/off" msgstr "Schakelt de lamp aan/uit" -#: backend/umax_pp.c:645 +#: backend/umax_pp.c:639 #, no-c-format msgid "UTA on" msgstr "UTA aan" -#: backend/umax_pp.c:646 +#: backend/umax_pp.c:640 #, no-c-format msgid "Sets UTA on/off" msgstr "Schakelt UTA aan/uit" -#: backend/umax_pp.c:767 +#: backend/umax_pp.c:761 #, no-c-format msgid "Offset" msgstr "Compensatie" -#: backend/umax_pp.c:769 +#: backend/umax_pp.c:763 #, no-c-format msgid "Color channels offset settings" msgstr "Compensatieinstellingen van de kleurkanalen" -#: backend/umax_pp.c:776 +#: backend/umax_pp.c:770 #, no-c-format msgid "Gray offset" msgstr "Grijscompensatie" -#: backend/umax_pp.c:777 +#: backend/umax_pp.c:771 #, no-c-format msgid "Sets gray channel offset" msgstr "Stelt de compensatie in van het grijze kanaal" -#: backend/umax_pp.c:789 +#: backend/umax_pp.c:783 #, no-c-format msgid "Sets red channel offset" msgstr "Stelt de compensatie in van het rode kanaal" -#: backend/umax_pp.c:801 +#: backend/umax_pp.c:795 #, no-c-format msgid "Sets green channel offset" msgstr "Stelt de compensatie in van het groene kanaal" -#: backend/umax_pp.c:813 +#: backend/umax_pp.c:807 #, no-c-format msgid "Sets blue channel offset" msgstr "Stelt de compensatie in van het blauwe kanaal" +#~ msgid "Disable dynamic lineart" +#~ msgstr "Dynamische lijntekening uitschakelen" + +#~ msgid "" +#~ "Disable use of a software adaptive algorithm to generate lineart " +#~ "relying instead on hardware lineart." +#~ msgstr "" +#~ "Schakel, om een lijntekening te genereren het gebruik van een " +#~ "software aanpassend algoritme uit en vertrouw in plaats daarvan op de " +#~ "hardware." + #~ msgid "linier" #~ msgstr "lineair" diff --git a/po/pl.po b/po/pl.po index 5c02a72b7..0862660e1 100644 --- a/po/pl.po +++ b/po/pl.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: sane-backends 1.0.21\n" "Report-Msgid-Bugs-To: sane-devel@alioth-lists.debian.net\n" -"POT-Creation-Date: 2019-10-12 17:41+0300\n" +"POT-Creation-Date: 2020-01-12 07:09+0000\n" "PO-Revision-Date: 2010-11-06 19:33+0100\n" "Last-Translator: Jakub Bogusz \n" "Language-Team: Polish \n" @@ -26,23 +26,23 @@ msgid "Standard" msgstr "Standardowe" #: include/sane/saneopts.h:157 backend/artec_eplus48u.c:2884 -#: backend/epson.c:3298 backend/epson2.c:1290 -#: backend/genesys/genesys.cpp:3976 backend/gt68xx.c:696 -#: backend/hp3500.c:1019 backend/hp-option.c:3300 backend/kvs1025_opt.c:639 +#: backend/epson.c:3298 backend/epson2.c:1290 backend/epsonds.c:677 +#: backend/genesys/genesys.cpp:4034 backend/gt68xx.c:696 +#: backend/hp-option.c:3300 backend/hp3500.c:1019 backend/kvs1025_opt.c:639 #: backend/kvs20xx_opt.c:285 backend/kvs40xx_opt.c:506 backend/leo.c:823 #: backend/lexmark.c:199 backend/ma1509.c:551 backend/matsushita.c:1135 #: backend/microtek2.h:599 backend/mustek.c:4373 backend/mustek_usb.c:301 -#: backend/mustek_usb2.c:465 backend/pixma_sane_options.c:160 +#: backend/mustek_usb2.c:465 backend/pixma/pixma_sane_options.c:160 #: backend/plustek.c:808 backend/plustek_pp.c:747 backend/sceptre.c:702 #: backend/snapscan-options.c:550 backend/teco1.c:1095 backend/teco2.c:1910 #: backend/teco3.c:920 backend/test.c:647 backend/u12.c:546 -#: backend/umax.c:5176 backend/umax_pp.c:576 +#: backend/umax.c:5176 backend/umax_pp.c:570 #, no-c-format msgid "Geometry" msgstr "Krawędzie obszaru skanowania" #: include/sane/saneopts.h:158 backend/artec_eplus48u.c:2805 -#: backend/canon.c:1493 backend/genesys/genesys.cpp:4035 +#: backend/canon.c:1493 backend/genesys/genesys.cpp:4077 #: backend/gt68xx.c:665 backend/hp-option.c:2956 backend/kvs1025_opt.c:703 #: backend/leo.c:871 backend/ma1509.c:599 backend/matsushita.c:1189 #: backend/microtek2.h:600 backend/mustek.c:4421 backend/mustek_usb.c:349 @@ -50,7 +50,7 @@ msgstr "Krawędzie obszaru skanowania" #: backend/plustek_pp.c:793 backend/sceptre.c:750 #: backend/snapscan-options.c:617 backend/stv680.c:1067 #: backend/teco1.c:1143 backend/teco2.c:1958 backend/teco3.c:968 -#: backend/u12.c:592 backend/umax.c:5226 backend/umax_pp.c:625 +#: backend/u12.c:592 backend/umax.c:5226 backend/umax_pp.c:619 #, no-c-format msgid "Enhancement" msgstr "Ulepszanie" @@ -84,7 +84,7 @@ msgid "Bit depth" msgstr "Głębokość bitowa" #: include/sane/saneopts.h:165 backend/canon.c:1140 backend/leo.c:781 -#: backend/pixma_sane_options.c:47 +#: backend/pixma/pixma_sane_options.c:47 #, no-c-format msgid "Scan mode" msgstr "Tryb skanowania" @@ -125,7 +125,7 @@ msgid "Bottom-right y" msgstr "Dolna" #: include/sane/saneopts.h:173 backend/canon.c:1216 -#: backend/pixma_sane_options.c:300 +#: backend/pixma/pixma_sane_options.c:300 #, no-c-format msgid "Scan resolution" msgstr "Rozdzielczość skanowania" @@ -280,7 +280,7 @@ msgstr "Nazwa pliku" msgid "Halftone pattern size" msgstr "Rozmiar wzoru półcienia" -#: include/sane/saneopts.h:204 backend/fujitsu.c:3233 +#: include/sane/saneopts.h:204 backend/fujitsu.c:3237 #, no-c-format msgid "Halftone pattern" msgstr "Wzór półcienia" @@ -290,10 +290,10 @@ msgstr "Wzór półcienia" msgid "Bind X and Y resolution" msgstr "Zrównaj rozdzielczość w osi X i Y" -#: include/sane/saneopts.h:206 backend/hp3900_sane.c:428 -#: backend/hp3900_sane.c:1021 backend/hp3900_sane.c:1421 -#: backend/hp-option.c:3238 backend/mustek_usb2.c:121 backend/plustek.c:236 -#: backend/plustek_pp.c:205 backend/u12.c:157 +#: include/sane/saneopts.h:206 backend/hp-option.c:3238 +#: backend/hp3900_sane.c:428 backend/hp3900_sane.c:1021 +#: backend/hp3900_sane.c:1421 backend/mustek_usb2.c:121 +#: backend/plustek.c:236 backend/plustek_pp.c:205 backend/u12.c:157 #, no-c-format msgid "Negative" msgstr "Negatyw" @@ -1042,78 +1042,38 @@ msgstr "" "Skanowanie dwustronne pozwala na skanowanie przedniej i tylnej strony " "dokumentu" -#: backend/canon630u.c:159 +#: backend/canon-sane.c:674 backend/canon.c:171 #, no-c-format -msgid "Calibrate Scanner" -msgstr "Kalibruj Skaner" +msgid "Correction according to transparency ratio" +msgstr "Korekcja zgodna ze współczynnikiem przezroczystości" -#: backend/canon630u.c:160 +#: backend/canon-sane.c:680 backend/canon.c:170 #, no-c-format -msgid "Force scanner calibration before scan" -msgstr "Wymuś kalibrację przed skanowaniem" +msgid "Correction according to film type" +msgstr "Korekcja zgodna z rodzajem filmu" -#: backend/canon630u.c:259 backend/umax1220u.c:208 -#, no-c-format -msgid "Grayscale scan" -msgstr "Skanowanie w odcieniach szarości" - -#: backend/canon630u.c:260 backend/umax1220u.c:209 -#, no-c-format -msgid "Do a grayscale rather than color scan" -msgstr "Skanuj raczej w odcieniach szarości niż w kolorze" - -#: backend/canon630u.c:306 -#, no-c-format -msgid "Analog Gain" -msgstr "Wzmocnienie analogowe" - -#: backend/canon630u.c:307 -#, no-c-format -msgid "Increase or decrease the analog gain of the CCD array" -msgstr "Zwiększ lub zmniejsz wzmocnienie analogowe matrycy CCD" - -#: backend/canon630u.c:347 backend/epson.h:68 backend/epson2.h:67 -#, no-c-format -msgid "Gamma Correction" -msgstr "Korekcja Gamma" - -#: backend/canon630u.c:348 -#, no-c-format -msgid "Selects the gamma corrected transfer curve" -msgstr "Wybiera poprawioną krzywą przejścia" - -#: backend/canon.c:149 backend/canon-sane.c:1318 -#, no-c-format -msgid "Raw" -msgstr "Surowy" - -#: backend/canon.c:157 backend/canon-sane.c:732 backend/canon-sane.c:940 +#: backend/canon-sane.c:732 backend/canon-sane.c:940 #: backend/canon-sane.c:1076 backend/canon-sane.c:1314 -#: backend/canon-sane.c:1494 backend/canon-sane.c:1643 +#: backend/canon-sane.c:1494 backend/canon-sane.c:1643 backend/canon.c:157 #, no-c-format msgid "Fine color" msgstr "Dobry kolor" +#: backend/canon-sane.c:776 backend/canon.c:176 +#, no-c-format +msgid "Negatives" +msgstr "Negatywy" + +#: backend/canon-sane.c:1318 backend/canon.c:149 +#, no-c-format +msgid "Raw" +msgstr "Surowy" + #: backend/canon.c:169 #, no-c-format msgid "No transparency correction" msgstr "Brak korekcji dla klisz" -#: backend/canon.c:170 backend/canon-sane.c:680 -#, no-c-format -msgid "Correction according to film type" -msgstr "Korekcja zgodna z rodzajem filmu" - -#: backend/canon.c:171 backend/canon-sane.c:674 -#, no-c-format -msgid "Correction according to transparency ratio" -msgstr "Korekcja zgodna ze współczynnikiem przezroczystości" - -#: backend/canon.c:176 backend/canon-sane.c:776 -#, no-c-format -msgid "Negatives" -msgstr "Negatywy" - #: backend/canon.c:176 #, no-c-format msgid "Slides" @@ -1538,94 +1498,137 @@ msgstr "Rodzaj filmu" msgid "Select the film type" msgstr "Wybór rodzaju filmu" -#: backend/canon_dr.c:411 backend/epjitsu.c:233 backend/epson.c:501 -#: backend/epson2.c:115 backend/fujitsu.c:675 backend/gt68xx.c:148 +#: backend/canon630u.c:159 +#, no-c-format +msgid "Calibrate Scanner" +msgstr "Kalibruj Skaner" + +#: backend/canon630u.c:160 +#, no-c-format +msgid "Force scanner calibration before scan" +msgstr "Wymuś kalibrację przed skanowaniem" + +#: backend/canon630u.c:259 backend/umax1220u.c:208 +#, no-c-format +msgid "Grayscale scan" +msgstr "Skanowanie w odcieniach szarości" + +#: backend/canon630u.c:260 backend/umax1220u.c:209 +#, no-c-format +msgid "Do a grayscale rather than color scan" +msgstr "Skanuj raczej w odcieniach szarości niż w kolorze" + +#: backend/canon630u.c:306 +#, no-c-format +msgid "Analog Gain" +msgstr "Wzmocnienie analogowe" + +#: backend/canon630u.c:307 +#, no-c-format +msgid "Increase or decrease the analog gain of the CCD array" +msgstr "Zwiększ lub zmniejsz wzmocnienie analogowe matrycy CCD" + +#: backend/canon630u.c:347 backend/epson.h:68 backend/epson2.h:67 +#, no-c-format +msgid "Gamma Correction" +msgstr "Korekcja Gamma" + +#: backend/canon630u.c:348 +#, no-c-format +msgid "Selects the gamma corrected transfer curve" +msgstr "Wybiera poprawioną krzywą przejścia" + +#: backend/canon_dr.c:413 backend/epjitsu.c:233 backend/epson.c:501 +#: backend/epson2-ops.c:101 backend/epson2.c:115 backend/epsonds-ops.c:32 +#: backend/epsonds.c:95 backend/epsonds.h:62 backend/fujitsu.c:677 +#: backend/genesys/genesys.h:78 backend/gt68xx.c:148 #: backend/hp3900_sane.c:418 backend/hp3900_sane.c:427 -#: backend/hp3900_sane.c:1017 backend/hp5590.c:92 backend/ma1509.c:108 -#: backend/magicolor.c:181 backend/mustek.c:156 backend/mustek.c:160 -#: backend/mustek.c:164 backend/pixma.c:920 backend/pixma_sane_options.c:92 -#: backend/snapscan-options.c:86 backend/test.c:192 backend/umax.c:181 +#: backend/hp3900_sane.c:1017 backend/hp5590.c:92 backend/kodakaio.c:617 +#: backend/ma1509.c:108 backend/magicolor.c:181 backend/mustek.c:156 +#: backend/mustek.c:160 backend/mustek.c:164 backend/pixma/pixma.c:920 +#: backend/pixma/pixma_sane_options.c:92 backend/snapscan-options.c:86 +#: backend/test.c:192 backend/umax.c:181 #, no-c-format msgid "Flatbed" msgstr "Płyta" -#: backend/canon_dr.c:412 backend/epjitsu.c:234 backend/fujitsu.c:676 +#: backend/canon_dr.c:414 backend/epjitsu.c:234 backend/fujitsu.c:678 #: backend/kodak.c:140 #, no-c-format msgid "ADF Front" msgstr "ADF przód" -#: backend/canon_dr.c:413 backend/epjitsu.c:235 backend/fujitsu.c:677 +#: backend/canon_dr.c:415 backend/epjitsu.c:235 backend/fujitsu.c:679 #: backend/kodak.c:141 #, no-c-format msgid "ADF Back" msgstr "ADF tył" -#: backend/canon_dr.c:414 backend/epjitsu.c:236 backend/fujitsu.c:678 -#: backend/hp5590.c:94 backend/kodak.c:142 backend/pixma.c:931 +#: backend/canon_dr.c:416 backend/epjitsu.c:236 backend/fujitsu.c:680 +#: backend/hp5590.c:94 backend/kodak.c:142 backend/pixma/pixma.c:931 #, no-c-format msgid "ADF Duplex" msgstr "ADF dwustronny" -#: backend/canon_dr.c:415 +#: backend/canon_dr.c:417 #, fuzzy, no-c-format msgid "Card Front" msgstr "Przód" -#: backend/canon_dr.c:416 +#: backend/canon_dr.c:418 #, fuzzy, no-c-format msgid "Card Back" msgstr "Tył" -#: backend/canon_dr.c:417 +#: backend/canon_dr.c:419 #, fuzzy, no-c-format msgid "Card Duplex" msgstr "Dwustronny" -#: backend/canon_dr.c:424 backend/epson.c:599 backend/epson.c:3096 -#: backend/epson2.c:201 backend/fujitsu.c:695 -#: backend/genesys/genesys.cpp:99 backend/genesys/genesys.cpp:106 +#: backend/canon_dr.c:426 backend/epson.c:599 backend/epson.c:3096 +#: backend/epson2.c:201 backend/fujitsu.c:697 +#: backend/genesys/genesys.cpp:120 backend/genesys/genesys.cpp:127 #: backend/gt68xx_low.h:136 backend/hp-option.c:3096 #, no-c-format msgid "Red" msgstr "Czerwony" -#: backend/canon_dr.c:425 backend/epson.c:600 backend/epson.c:3092 -#: backend/epson2.c:202 backend/fujitsu.c:696 -#: backend/genesys/genesys.cpp:100 backend/genesys/genesys.cpp:107 +#: backend/canon_dr.c:427 backend/epson.c:600 backend/epson.c:3092 +#: backend/epson2.c:202 backend/fujitsu.c:698 +#: backend/genesys/genesys.cpp:121 backend/genesys/genesys.cpp:128 #: backend/gt68xx_low.h:137 backend/hp-option.c:3097 #, no-c-format msgid "Green" msgstr "Zielony" -#: backend/canon_dr.c:426 backend/epson.c:601 backend/epson.c:3100 -#: backend/epson2.c:203 backend/fujitsu.c:697 -#: backend/genesys/genesys.cpp:101 backend/genesys/genesys.cpp:108 +#: backend/canon_dr.c:428 backend/epson.c:601 backend/epson.c:3100 +#: backend/epson2.c:203 backend/fujitsu.c:699 +#: backend/genesys/genesys.cpp:122 backend/genesys/genesys.cpp:129 #: backend/gt68xx_low.h:138 backend/hp-option.c:3098 #, no-c-format msgid "Blue" msgstr "Niebieski" -#: backend/canon_dr.c:427 +#: backend/canon_dr.c:429 #, no-c-format msgid "Enhance Red" msgstr "Rozszerzenie czerwieni" -#: backend/canon_dr.c:428 +#: backend/canon_dr.c:430 #, no-c-format msgid "Enhance Green" msgstr "Rozszerzenie zieleni" -#: backend/canon_dr.c:429 +#: backend/canon_dr.c:431 #, no-c-format msgid "Enhance Blue" msgstr "Rozszerzenie błękitu" -#: backend/canon_dr.c:431 backend/epson.c:556 backend/epson.c:564 +#: backend/canon_dr.c:433 backend/epson.c:556 backend/epson.c:564 #: backend/epson.c:576 backend/epson.c:598 backend/epson2.c:165 #: backend/epson2.c:173 backend/epson2.c:185 backend/epson2.c:200 -#: backend/epson2.c:214 backend/fujitsu.c:701 -#: backend/genesys/genesys.cpp:109 backend/leo.c:109 +#: backend/epson2.c:214 backend/fujitsu.c:703 +#: backend/genesys/genesys.cpp:130 backend/leo.c:109 #: backend/matsushita.c:138 backend/matsushita.c:159 #: backend/matsushita.c:191 backend/matsushita.c:213 #: backend/snapscan-options.c:91 @@ -1633,42 +1636,46 @@ msgstr "Rozszerzenie błękitu" msgid "None" msgstr "Brak" -#: backend/canon_dr.c:432 backend/fujitsu.c:702 +#: backend/canon_dr.c:434 backend/fujitsu.c:704 #, no-c-format msgid "JPEG" msgstr "JPEG" -#: backend/canon_dr.c:2477 backend/fujitsu.c:4113 -#: backend/genesys/genesys.cpp:4126 backend/kvs1025_opt.c:910 +#: backend/canon_dr.c:2479 backend/fujitsu.c:4117 +#: backend/genesys/genesys.cpp:4168 backend/kvs1025_opt.c:910 #, no-c-format msgid "Software blank skip percentage" msgstr "" -#: backend/canon_dr.c:2478 backend/fujitsu.c:4114 +#: backend/canon_dr.c:2480 backend/fujitsu.c:4118 #, no-c-format msgid "Request driver to discard pages with low percentage of dark pixels" msgstr "" -#: backend/epson.c:491 backend/epson2.c:108 backend/magicolor.c:174 +#: backend/epson.c:491 backend/epson2.c:108 backend/epsonds.c:88 +#: backend/kodakaio.c:611 backend/magicolor.c:174 #, no-c-format msgid "Simplex" msgstr "Jednostronny" -#: backend/epson.c:492 backend/epson2.c:109 backend/kvs1025.h:50 -#: backend/kvs20xx_opt.c:204 backend/kvs40xx_opt.c:353 -#: backend/magicolor.c:175 backend/matsushita.h:218 +#: backend/epson.c:492 backend/epson2.c:109 backend/epsonds.c:89 +#: backend/kodakaio.c:612 backend/kvs1025.h:50 backend/kvs20xx_opt.c:204 +#: backend/kvs40xx_opt.c:353 backend/magicolor.c:175 +#: backend/matsushita.h:218 #, no-c-format msgid "Duplex" msgstr "Dwustronny" -#: backend/epson.c:502 backend/epson2.c:116 backend/pixma.c:937 +#: backend/epson.c:502 backend/epson2-ops.c:102 backend/epson2.c:116 +#: backend/epsonds-ops.c:33 backend/epsonds.h:63 backend/pixma/pixma.c:937 #, no-c-format msgid "Transparency Unit" msgstr "Moduł do skanowania przezroczy" -#: backend/epson.c:503 backend/epson2.c:118 backend/magicolor.c:182 -#: backend/mustek.c:160 backend/pixma.c:925 backend/test.c:192 -#: backend/umax.c:183 +#: backend/epson.c:503 backend/epson2-ops.c:104 backend/epson2.c:118 +#: backend/epsonds-ops.c:34 backend/epsonds.c:96 backend/epsonds.h:64 +#: backend/kodakaio.c:618 backend/magicolor.c:182 backend/mustek.c:160 +#: backend/pixma/pixma.c:925 backend/test.c:192 backend/umax.c:183 #, no-c-format msgid "Automatic Document Feeder" msgstr "Automatyczny podajnik dokumentów" @@ -1780,7 +1787,7 @@ msgstr "Drukarki atramentowe" msgid "CRT monitors" msgstr "Monitory CRT" -#: backend/epson.c:656 backend/epson2.c:254 backend/fujitsu.c:685 +#: backend/epson.c:656 backend/epson2.c:254 backend/fujitsu.c:687 #: backend/hp-option.c:3229 backend/test.c:143 #, no-c-format msgid "Default" @@ -1844,8 +1851,8 @@ msgstr "A4" msgid "Max" msgstr "Maksimum" -#: backend/epson.c:2813 backend/epson2.c:976 -#: backend/genesys/genesys.cpp:3893 backend/gt68xx.c:451 +#: backend/epson.c:2813 backend/epson2.c:976 backend/epsonds.c:629 +#: backend/genesys/genesys.cpp:3965 backend/gt68xx.c:451 #: backend/hp-option.c:2917 backend/kvs1025_opt.c:521 #: backend/kvs20xx_opt.c:171 backend/kvs40xx_opt.c:320 backend/ma1509.c:501 #: backend/matsushita.c:1084 backend/microtek2.h:598 backend/mustek.c:4215 @@ -2019,17 +2026,17 @@ msgstr "Definiuje współczynnik powiększenia dla skanera" msgid "Quick format" msgstr "Szybkie formatowanie" -#: backend/epson.c:3360 backend/epson2.c:1340 +#: backend/epson.c:3360 backend/epson2.c:1340 backend/epsonds.c:726 #, no-c-format msgid "Optional equipment" msgstr "Wyposażenie opcjonalne" -#: backend/epson.c:3431 backend/epson2.c:1393 +#: backend/epson.c:3431 backend/epson2.c:1393 backend/epsonds.c:742 #, no-c-format msgid "Eject" msgstr "Wysuń" -#: backend/epson.c:3432 backend/epson2.c:1394 +#: backend/epson.c:3432 backend/epson2.c:1394 backend/epsonds.c:743 #, no-c-format msgid "Eject the sheet in the ADF" msgstr "Wysuń arkusz z ADF" @@ -2044,12 +2051,14 @@ msgstr "Wysuwanie automatyczne" msgid "Eject document after scanning" msgstr "Wysuń dokument po zeskanowaniu" -#: backend/epson.c:3457 backend/epson2.c:1416 backend/magicolor.c:2420 +#: backend/epson.c:3457 backend/epson2.c:1416 backend/epsonds.c:758 +#: backend/kodakaio.c:2855 backend/magicolor.c:2420 #, no-c-format msgid "ADF Mode" msgstr "Tryb ADF" -#: backend/epson.c:3459 backend/epson2.c:1418 backend/magicolor.c:2422 +#: backend/epson.c:3459 backend/epson2.c:1418 backend/epsonds.c:760 +#: backend/kodakaio.c:2857 backend/magicolor.c:2422 #, no-c-format msgid "Selects the ADF mode (simplex/duplex)" msgstr "Wybiera tryb ADF (jedno/dwustronny)" @@ -2098,16 +2107,16 @@ msgstr "" "Po wysłaniu komendy skanowania, czekaj aż przycisk na skanerze jest " "naciśnięty, aby naprawdę rozpocząć skanowanie" -#: backend/epson2.c:102 backend/pixma.c:409 -#, no-c-format -msgid "Infrared" -msgstr "Podczerwień" - -#: backend/epson2.c:117 +#: backend/epson2-ops.c:103 backend/epson2.c:117 #, no-c-format msgid "TPU8x10" msgstr "" +#: backend/epson2.c:102 backend/pixma/pixma.c:409 +#, no-c-format +msgid "Infrared" +msgstr "Podczerwień" + #: backend/epson2.c:136 #, no-c-format msgid "Positive Slide" @@ -2128,492 +2137,512 @@ msgstr "Wbudowany profil CCT" msgid "User defined CCT profile" msgstr "Profil CCT zdefiniowany przez użytkownika" -#: backend/fujitsu.c:686 backend/hp-option.c:3330 backend/hp-option.c:3343 +#: backend/epsonds.c:750 +#, no-c-format +msgid "Load" +msgstr "" + +#: backend/epsonds.c:751 +#, fuzzy, no-c-format +msgid "Load a sheet in the ADF" +msgstr "Wysuń arkusz z ADF" + +#: backend/epsonds.c:771 +#, fuzzy, no-c-format +msgid "ADF Skew Correction" +msgstr "Brak korekcji" + +#: backend/epsonds.c:773 +#, fuzzy, no-c-format +msgid "Enables ADF skew correction" +msgstr "Wyłącz korekcję gamma" + +#: backend/fujitsu.c:688 backend/hp-option.c:3330 backend/hp-option.c:3343 #, no-c-format msgid "On" msgstr "Włączony" -#: backend/fujitsu.c:687 backend/hp-option.c:3162 backend/hp-option.c:3329 +#: backend/fujitsu.c:689 backend/hp-option.c:3162 backend/hp-option.c:3329 #: backend/hp-option.c:3342 #, no-c-format msgid "Off" msgstr "Wyłącz" -#: backend/fujitsu.c:689 +#: backend/fujitsu.c:691 #, no-c-format msgid "DTC" msgstr "DTC" -#: backend/fujitsu.c:690 +#: backend/fujitsu.c:692 #, no-c-format msgid "SDTC" msgstr "SDTC" -#: backend/fujitsu.c:692 backend/teco1.c:1152 backend/teco1.c:1153 +#: backend/fujitsu.c:694 backend/teco1.c:1152 backend/teco1.c:1153 #: backend/teco2.c:1967 backend/teco2.c:1968 backend/teco3.c:977 #: backend/teco3.c:978 #, no-c-format msgid "Dither" msgstr "Ditheruj" -#: backend/fujitsu.c:693 +#: backend/fujitsu.c:695 #, no-c-format msgid "Diffusion" msgstr "Dyfuzja" -#: backend/fujitsu.c:698 +#: backend/fujitsu.c:700 #, no-c-format msgid "White" msgstr "Biel" -#: backend/fujitsu.c:699 +#: backend/fujitsu.c:701 #, no-c-format msgid "Black" msgstr "Czerń" -#: backend/fujitsu.c:704 +#: backend/fujitsu.c:706 #, no-c-format msgid "Continue" msgstr "Kontynuacja" -#: backend/fujitsu.c:705 +#: backend/fujitsu.c:707 #, no-c-format msgid "Stop" msgstr "Stop" -#: backend/fujitsu.c:707 +#: backend/fujitsu.c:709 #, no-c-format msgid "10mm" msgstr "10mm" -#: backend/fujitsu.c:708 +#: backend/fujitsu.c:710 #, no-c-format msgid "15mm" msgstr "15mm" -#: backend/fujitsu.c:709 +#: backend/fujitsu.c:711 #, no-c-format msgid "20mm" msgstr "20mm" -#: backend/fujitsu.c:711 backend/hp-option.c:3048 +#: backend/fujitsu.c:713 backend/hp-option.c:3048 #, no-c-format msgid "Horizontal" msgstr "Poziomy" -#: backend/fujitsu.c:712 +#: backend/fujitsu.c:714 #, no-c-format msgid "Horizontal bold" msgstr "Poziomy pogrubiony" -#: backend/fujitsu.c:713 +#: backend/fujitsu.c:715 #, no-c-format msgid "Horizontal narrow" msgstr "Poziomy cienki" -#: backend/fujitsu.c:714 backend/hp-option.c:3047 +#: backend/fujitsu.c:716 backend/hp-option.c:3047 #, no-c-format msgid "Vertical" msgstr "Pionowy" -#: backend/fujitsu.c:715 +#: backend/fujitsu.c:717 #, no-c-format msgid "Vertical bold" msgstr "Pionowy pogrubiony" -#: backend/fujitsu.c:717 +#: backend/fujitsu.c:719 #, no-c-format msgid "Top to bottom" msgstr "Od góry do dołu" -#: backend/fujitsu.c:718 +#: backend/fujitsu.c:720 #, no-c-format msgid "Bottom to top" msgstr "Od dołu do góry" -#: backend/fujitsu.c:720 +#: backend/fujitsu.c:722 #, no-c-format msgid "Front" msgstr "Przód" -#: backend/fujitsu.c:721 +#: backend/fujitsu.c:723 #, no-c-format msgid "Back" msgstr "Tył" -#: backend/fujitsu.c:3144 backend/pixma_sane_options.c:145 +#: backend/fujitsu.c:3148 backend/pixma/pixma_sane_options.c:145 #, no-c-format msgid "Gamma function exponent" msgstr "" -#: backend/fujitsu.c:3145 backend/pixma_sane_options.c:146 +#: backend/fujitsu.c:3149 backend/pixma/pixma_sane_options.c:146 #, no-c-format msgid "Changes intensity of midtones" msgstr "" -#: backend/fujitsu.c:3194 +#: backend/fujitsu.c:3198 #, no-c-format msgid "RIF" msgstr "" -#: backend/fujitsu.c:3195 +#: backend/fujitsu.c:3199 #, no-c-format msgid "Reverse image format" msgstr "" -#: backend/fujitsu.c:3212 +#: backend/fujitsu.c:3216 #, fuzzy, no-c-format msgid "Halftone type" msgstr "Półtony" -#: backend/fujitsu.c:3213 +#: backend/fujitsu.c:3217 #, no-c-format msgid "Control type of halftone filter" msgstr "" -#: backend/fujitsu.c:3234 +#: backend/fujitsu.c:3238 #, no-c-format msgid "Control pattern of halftone filter" msgstr "" -#: backend/fujitsu.c:3256 +#: backend/fujitsu.c:3260 #, no-c-format msgid "Outline" msgstr "" -#: backend/fujitsu.c:3257 +#: backend/fujitsu.c:3261 #, fuzzy, no-c-format msgid "Perform outline extraction" msgstr "Wykonuje kalibrację" -#: backend/fujitsu.c:3268 +#: backend/fujitsu.c:3272 #, fuzzy, no-c-format msgid "Emphasis" msgstr "Emfaza obrazka" -#: backend/fujitsu.c:3269 +#: backend/fujitsu.c:3273 #, no-c-format msgid "Negative to smooth or positive to sharpen image" msgstr "" -#: backend/fujitsu.c:3287 +#: backend/fujitsu.c:3291 #, fuzzy, no-c-format msgid "Separation" msgstr "Nasycenie" -#: backend/fujitsu.c:3288 +#: backend/fujitsu.c:3292 #, fuzzy, no-c-format msgid "Enable automatic separation of image and text" msgstr "Włącz automatyczne rozpoznawanie progu dla skanów w trybie kreski." -#: backend/fujitsu.c:3299 +#: backend/fujitsu.c:3303 #, fuzzy, no-c-format msgid "Mirroring" msgstr "Odbicie lustrzane obrazka" -#: backend/fujitsu.c:3300 +#: backend/fujitsu.c:3304 #, fuzzy, no-c-format msgid "Reflect output image horizontally" msgstr "Poziome, lustrzane odbicie obrazka." -#: backend/fujitsu.c:3317 +#: backend/fujitsu.c:3321 #, fuzzy, no-c-format msgid "White level follower" msgstr "Poziom bieli dla niebieskiego" -#: backend/fujitsu.c:3318 +#: backend/fujitsu.c:3322 #, fuzzy, no-c-format msgid "Control white level follower" msgstr "Nadzoruje poziom czerwieni" -#: backend/fujitsu.c:3336 +#: backend/fujitsu.c:3340 #, fuzzy, no-c-format msgid "BP filter" msgstr "Filtr kolorów" -#: backend/fujitsu.c:3337 +#: backend/fujitsu.c:3341 #, no-c-format msgid "Improves quality of high resolution ball-point pen text" msgstr "" -#: backend/fujitsu.c:3353 backend/hp-option.h:73 +#: backend/fujitsu.c:3357 backend/hp-option.h:73 #, no-c-format msgid "Smoothing" msgstr "Wygładzanie" -#: backend/fujitsu.c:3354 +#: backend/fujitsu.c:3358 #, no-c-format msgid "Enable smoothing for improved OCR" msgstr "" -#: backend/fujitsu.c:3370 +#: backend/fujitsu.c:3374 #, fuzzy, no-c-format msgid "Gamma curve" msgstr "Wartość gamma" -#: backend/fujitsu.c:3371 +#: backend/fujitsu.c:3375 #, no-c-format msgid "Gamma curve, from light to dark, but upper two may not work" msgstr "" -#: backend/fujitsu.c:3393 backend/genesys/genesys.cpp:4187 -#: backend/pixma_sane_options.c:335 +#: backend/fujitsu.c:3397 backend/genesys/genesys.cpp:4229 +#: backend/pixma/pixma_sane_options.c:335 #, no-c-format msgid "Threshold curve" msgstr "Krzywa progowa" -#: backend/fujitsu.c:3394 +#: backend/fujitsu.c:3398 #, fuzzy, no-c-format msgid "" "Threshold curve, from light to dark, but upper two may not be linear" msgstr "Dynamiczna krzywa progowa, od ciemnego do jasnego, zwykle 50-65" -#: backend/fujitsu.c:3416 +#: backend/fujitsu.c:3420 #, fuzzy, no-c-format msgid "Threshold white" msgstr "Próg" -#: backend/fujitsu.c:3417 +#: backend/fujitsu.c:3421 #, no-c-format msgid "Set pixels equal to threshold to white instead of black" msgstr "" -#: backend/fujitsu.c:3433 backend/fujitsu.c:3434 +#: backend/fujitsu.c:3437 backend/fujitsu.c:3438 #, fuzzy, no-c-format msgid "Noise removal" msgstr "Redukcja szumów" -#: backend/fujitsu.c:3450 +#: backend/fujitsu.c:3454 #, no-c-format msgid "Matrix 5x5" msgstr "" -#: backend/fujitsu.c:3451 +#: backend/fujitsu.c:3455 #, no-c-format msgid "Remove 5 pixel square noise" msgstr "" -#: backend/fujitsu.c:3467 +#: backend/fujitsu.c:3471 #, no-c-format msgid "Matrix 4x4" msgstr "" -#: backend/fujitsu.c:3468 +#: backend/fujitsu.c:3472 #, no-c-format msgid "Remove 4 pixel square noise" msgstr "" -#: backend/fujitsu.c:3484 +#: backend/fujitsu.c:3488 #, no-c-format msgid "Matrix 3x3" msgstr "" -#: backend/fujitsu.c:3485 +#: backend/fujitsu.c:3489 #, no-c-format msgid "Remove 3 pixel square noise" msgstr "" -#: backend/fujitsu.c:3501 +#: backend/fujitsu.c:3505 #, no-c-format msgid "Matrix 2x2" msgstr "" -#: backend/fujitsu.c:3502 +#: backend/fujitsu.c:3506 #, no-c-format msgid "Remove 2 pixel square noise" msgstr "" -#: backend/fujitsu.c:3521 +#: backend/fujitsu.c:3525 #, no-c-format msgid "Variance" msgstr "" -#: backend/fujitsu.c:3522 +#: backend/fujitsu.c:3526 #, no-c-format msgid "Set SDTC variance rate (sensitivity), 0 equals 127" msgstr "" -#: backend/fujitsu.c:3555 +#: backend/fujitsu.c:3559 #, fuzzy, no-c-format msgid "Auto width detection" msgstr "Brak korekcji" -#: backend/fujitsu.c:3556 +#: backend/fujitsu.c:3560 #, no-c-format msgid "Scanner detects paper sides. May reduce scanning speed." msgstr "" -#: backend/fujitsu.c:3573 +#: backend/fujitsu.c:3577 #, fuzzy, no-c-format msgid "Auto length detection" msgstr "Brak korekcji" -#: backend/fujitsu.c:3574 +#: backend/fujitsu.c:3578 #, no-c-format msgid "Scanner detects paper lower edge. May confuse some frontends." msgstr "" -#: backend/fujitsu.c:3600 +#: backend/fujitsu.c:3604 #, no-c-format msgid "Compression" msgstr "" -#: backend/fujitsu.c:3601 +#: backend/fujitsu.c:3605 #, no-c-format msgid "Enable compressed data. May crash your front-end program" msgstr "" -#: backend/fujitsu.c:3621 +#: backend/fujitsu.c:3625 #, no-c-format msgid "Compression argument" msgstr "" -#: backend/fujitsu.c:3622 +#: backend/fujitsu.c:3626 #, no-c-format msgid "" "Level of JPEG compression. 1 is small file, 7 is large file. 0 (default) " "is same as 4" msgstr "" -#: backend/fujitsu.c:3652 +#: backend/fujitsu.c:3656 #, no-c-format msgid "DF action" msgstr "" -#: backend/fujitsu.c:3653 +#: backend/fujitsu.c:3657 #, no-c-format msgid "Action following double feed error" msgstr "" -#: backend/fujitsu.c:3669 +#: backend/fujitsu.c:3673 #, no-c-format msgid "DF skew" msgstr "" -#: backend/fujitsu.c:3670 +#: backend/fujitsu.c:3674 #, no-c-format msgid "Enable double feed error due to skew" msgstr "" -#: backend/fujitsu.c:3688 +#: backend/fujitsu.c:3692 #, no-c-format msgid "DF thickness" msgstr "" -#: backend/fujitsu.c:3689 +#: backend/fujitsu.c:3693 #, no-c-format msgid "Enable double feed error due to paper thickness" msgstr "" -#: backend/fujitsu.c:3707 +#: backend/fujitsu.c:3711 #, no-c-format msgid "DF length" msgstr "" -#: backend/fujitsu.c:3708 +#: backend/fujitsu.c:3712 #, no-c-format msgid "Enable double feed error due to paper length" msgstr "" -#: backend/fujitsu.c:3731 +#: backend/fujitsu.c:3735 #, no-c-format msgid "DF length difference" msgstr "" -#: backend/fujitsu.c:3732 +#: backend/fujitsu.c:3736 #, no-c-format msgid "Difference in page length to trigger double feed error" msgstr "" -#: backend/fujitsu.c:3755 +#: backend/fujitsu.c:3759 #, fuzzy, no-c-format msgid "DF recovery mode" msgstr "pokrywa ADF otwarta" -#: backend/fujitsu.c:3756 +#: backend/fujitsu.c:3760 #, no-c-format msgid "Request scanner to reverse feed on paper jam" msgstr "" -#: backend/fujitsu.c:3775 +#: backend/fujitsu.c:3779 #, no-c-format msgid "Paper protection" msgstr "" -#: backend/fujitsu.c:3776 +#: backend/fujitsu.c:3780 #, no-c-format msgid "Request scanner to predict jams in the ADF" msgstr "" -#: backend/fujitsu.c:3795 +#: backend/fujitsu.c:3799 #, fuzzy, no-c-format msgid "Advanced paper protection" msgstr "Opcje zaawansowane" -#: backend/fujitsu.c:3796 +#: backend/fujitsu.c:3800 #, no-c-format msgid "Request scanner to predict jams in the ADF using improved sensors" msgstr "" -#: backend/fujitsu.c:3815 +#: backend/fujitsu.c:3819 #, fuzzy, no-c-format msgid "Staple detection" msgstr "Brak korekcji" -#: backend/fujitsu.c:3816 +#: backend/fujitsu.c:3820 #, no-c-format msgid "Request scanner to detect jams in the ADF caused by staples" msgstr "" -#: backend/fujitsu.c:3835 +#: backend/fujitsu.c:3839 #, no-c-format msgid "Background color" msgstr "" -#: backend/fujitsu.c:3836 +#: backend/fujitsu.c:3840 #, no-c-format msgid "" "Set color of background for scans. May conflict with overscan option" msgstr "" -#: backend/fujitsu.c:3856 +#: backend/fujitsu.c:3860 #, fuzzy, no-c-format msgid "Dropout color" msgstr "Dropout" -#: backend/fujitsu.c:3857 +#: backend/fujitsu.c:3861 #, no-c-format msgid "" "One-pass scanners use only one color during gray or binary scanning, " "useful for colored paper or ink" msgstr "" -#: backend/fujitsu.c:3880 +#: backend/fujitsu.c:3884 #, fuzzy, no-c-format msgid "Buffer mode" msgstr "tryb podajnika" -#: backend/fujitsu.c:3881 +#: backend/fujitsu.c:3885 #, no-c-format msgid "Request scanner to read pages quickly from ADF into internal memory" msgstr "" -#: backend/fujitsu.c:3900 +#: backend/fujitsu.c:3904 #, no-c-format msgid "Prepick" msgstr "" -#: backend/fujitsu.c:3901 +#: backend/fujitsu.c:3905 #, no-c-format msgid "Request scanner to grab next page from ADF" msgstr "" -#: backend/fujitsu.c:3920 +#: backend/fujitsu.c:3924 #, no-c-format msgid "Overscan" msgstr "" -#: backend/fujitsu.c:3921 +#: backend/fujitsu.c:3925 #, no-c-format msgid "" "Collect a few mm of background on top side of scan, before paper enters " @@ -2621,65 +2650,65 @@ msgid "" "collection on remaining sides. May conflict with bgcolor option" msgstr "" -#: backend/fujitsu.c:3939 +#: backend/fujitsu.c:3943 #, no-c-format msgid "Sleep timer" msgstr "" -#: backend/fujitsu.c:3940 +#: backend/fujitsu.c:3944 #, no-c-format msgid "" "Time in minutes until the internal power supply switches to sleep mode" msgstr "" -#: backend/fujitsu.c:3958 +#: backend/fujitsu.c:3962 #, fuzzy, no-c-format msgid "Off timer" msgstr "Czas wyłączania lampy" -#: backend/fujitsu.c:3959 +#: backend/fujitsu.c:3963 #, no-c-format msgid "" "Time in minutes until the internal power supply switches the scanner " "off. Will be rounded to nearest 15 minutes. Zero means never power off." msgstr "" -#: backend/fujitsu.c:3977 +#: backend/fujitsu.c:3981 #, fuzzy, no-c-format msgid "Duplex offset" msgstr "Offset błękitu" -#: backend/fujitsu.c:3978 +#: backend/fujitsu.c:3982 #, no-c-format msgid "Adjust front/back offset" msgstr "" -#: backend/fujitsu.c:3995 backend/plustek.c:1025 backend/umax_pp.c:800 +#: backend/fujitsu.c:3999 backend/plustek.c:1025 backend/umax_pp.c:794 #, no-c-format msgid "Green offset" msgstr "Offset zieleni" -#: backend/fujitsu.c:3996 +#: backend/fujitsu.c:4000 #, fuzzy, no-c-format msgid "Adjust green/red offset" msgstr "Offset zieleni" -#: backend/fujitsu.c:4013 backend/plustek.c:1041 backend/umax_pp.c:812 +#: backend/fujitsu.c:4017 backend/plustek.c:1041 backend/umax_pp.c:806 #, no-c-format msgid "Blue offset" msgstr "Offset błękitu" -#: backend/fujitsu.c:4014 +#: backend/fujitsu.c:4018 #, fuzzy, no-c-format msgid "Adjust blue/red offset" msgstr "Ustawienie offsetu kanału błękitu" -#: backend/fujitsu.c:4027 +#: backend/fujitsu.c:4031 #, fuzzy, no-c-format msgid "Low Memory" msgstr "Brak pamięci" -#: backend/fujitsu.c:4028 +#: backend/fujitsu.c:4032 #, no-c-format msgid "" "Limit driver memory usage for use in embedded systems. Causes some " @@ -2688,376 +2717,362 @@ msgid "" "only be used with custom front-end software." msgstr "" -#: backend/fujitsu.c:4043 +#: backend/fujitsu.c:4047 #, fuzzy, no-c-format msgid "Duplex side" msgstr "Skanowanie dwustronne" -#: backend/fujitsu.c:4044 +#: backend/fujitsu.c:4048 #, no-c-format msgid "" "Tells which side (0=front, 1=back) of a duplex scan the next call to " "sane_read will return." msgstr "" -#: backend/fujitsu.c:4055 +#: backend/fujitsu.c:4059 #, no-c-format msgid "Hardware deskew and crop" msgstr "" -#: backend/fujitsu.c:4056 +#: backend/fujitsu.c:4060 #, no-c-format msgid "Request scanner to rotate and crop pages digitally." msgstr "" -#: backend/fujitsu.c:4067 backend/kvs1025_opt.c:871 +#: backend/fujitsu.c:4071 backend/kvs1025_opt.c:871 #, no-c-format msgid "Software deskew" msgstr "" -#: backend/fujitsu.c:4068 +#: backend/fujitsu.c:4072 #, no-c-format msgid "Request driver to rotate skewed pages digitally." msgstr "" -#: backend/fujitsu.c:4080 backend/kvs1025_opt.c:880 +#: backend/fujitsu.c:4084 backend/kvs1025_opt.c:880 #, no-c-format msgid "Software despeckle diameter" msgstr "" -#: backend/fujitsu.c:4081 +#: backend/fujitsu.c:4085 #, no-c-format msgid "Maximum diameter of lone dots to remove from scan." msgstr "" -#: backend/fujitsu.c:4100 backend/genesys/genesys.cpp:4117 +#: backend/fujitsu.c:4104 backend/genesys/genesys.cpp:4159 #, no-c-format msgid "Software crop" msgstr "" -#: backend/fujitsu.c:4101 +#: backend/fujitsu.c:4105 #, no-c-format msgid "Request driver to remove border from pages digitally." msgstr "" -#: backend/fujitsu.c:4130 +#: backend/fujitsu.c:4134 #, no-c-format msgid "Halt on Cancel" msgstr "" -#: backend/fujitsu.c:4131 +#: backend/fujitsu.c:4135 #, no-c-format msgid "" "Request driver to halt the paper feed instead of eject during a cancel." msgstr "" -#: backend/fujitsu.c:4142 +#: backend/fujitsu.c:4146 #, fuzzy, no-c-format msgid "Endorser Options" msgstr "Opcje zaawansowane" -#: backend/fujitsu.c:4143 +#: backend/fujitsu.c:4147 #, no-c-format msgid "Controls for endorser unit" msgstr "" -#: backend/fujitsu.c:4154 +#: backend/fujitsu.c:4158 #, no-c-format msgid "Endorser" msgstr "" -#: backend/fujitsu.c:4155 +#: backend/fujitsu.c:4159 #, no-c-format msgid "Enable endorser unit" msgstr "" -#: backend/fujitsu.c:4170 +#: backend/fujitsu.c:4174 #, no-c-format msgid "Endorser bits" msgstr "" -#: backend/fujitsu.c:4171 +#: backend/fujitsu.c:4175 #, no-c-format msgid "Determines maximum endorser counter value." msgstr "" -#: backend/fujitsu.c:4196 +#: backend/fujitsu.c:4200 #, no-c-format msgid "Endorser value" msgstr "" -#: backend/fujitsu.c:4197 +#: backend/fujitsu.c:4201 #, no-c-format msgid "Initial endorser counter value." msgstr "" -#: backend/fujitsu.c:4220 +#: backend/fujitsu.c:4224 #, no-c-format msgid "Endorser step" msgstr "" -#: backend/fujitsu.c:4221 +#: backend/fujitsu.c:4225 #, no-c-format msgid "Change endorser counter value by this much for each page." msgstr "" -#: backend/fujitsu.c:4244 +#: backend/fujitsu.c:4248 #, no-c-format msgid "Endorser Y" msgstr "" -#: backend/fujitsu.c:4245 +#: backend/fujitsu.c:4249 #, no-c-format msgid "Endorser print offset from top of paper." msgstr "" -#: backend/fujitsu.c:4270 +#: backend/fujitsu.c:4274 #, no-c-format msgid "Endorser font" msgstr "" -#: backend/fujitsu.c:4271 +#: backend/fujitsu.c:4275 #, no-c-format msgid "Endorser printing font." msgstr "" -#: backend/fujitsu.c:4300 +#: backend/fujitsu.c:4304 #, fuzzy, no-c-format msgid "Endorser direction" msgstr "Redukcja szumów" -#: backend/fujitsu.c:4301 +#: backend/fujitsu.c:4305 #, no-c-format msgid "Endorser printing direction." msgstr "" -#: backend/fujitsu.c:4325 +#: backend/fujitsu.c:4329 #, no-c-format msgid "Endorser side" msgstr "" -#: backend/fujitsu.c:4326 +#: backend/fujitsu.c:4330 #, no-c-format msgid "Endorser printing side, requires hardware support to change" msgstr "" -#: backend/fujitsu.c:4351 +#: backend/fujitsu.c:4355 #, no-c-format msgid "Endorser string" msgstr "" -#: backend/fujitsu.c:4352 +#: backend/fujitsu.c:4356 #, no-c-format msgid "" "Endorser alphanumeric print format. %05ud or %08ud at the end will be " "replaced by counter value." msgstr "" -#: backend/fujitsu.c:4379 +#: backend/fujitsu.c:4383 #, no-c-format msgid "Top edge" msgstr "" -#: backend/fujitsu.c:4380 +#: backend/fujitsu.c:4384 #, no-c-format msgid "Paper is pulled partly into ADF" msgstr "" -#: backend/fujitsu.c:4391 +#: backend/fujitsu.c:4395 #, fuzzy, no-c-format msgid "A3 paper" msgstr "Od papieru" -#: backend/fujitsu.c:4392 +#: backend/fujitsu.c:4396 #, no-c-format msgid "A3 paper detected" msgstr "" -#: backend/fujitsu.c:4403 +#: backend/fujitsu.c:4407 #, fuzzy, no-c-format msgid "B4 paper" msgstr "Od papieru" -#: backend/fujitsu.c:4404 +#: backend/fujitsu.c:4408 #, no-c-format msgid "B4 paper detected" msgstr "" -#: backend/fujitsu.c:4415 +#: backend/fujitsu.c:4419 #, fuzzy, no-c-format msgid "A4 paper" msgstr "Od papieru" -#: backend/fujitsu.c:4416 +#: backend/fujitsu.c:4420 #, no-c-format msgid "A4 paper detected" msgstr "" -#: backend/fujitsu.c:4427 +#: backend/fujitsu.c:4431 #, fuzzy, no-c-format msgid "B5 paper" msgstr "Od papieru" -#: backend/fujitsu.c:4428 +#: backend/fujitsu.c:4432 #, no-c-format msgid "B5 paper detected" msgstr "" -#: backend/fujitsu.c:4451 +#: backend/fujitsu.c:4455 #, no-c-format msgid "OMR or DF" msgstr "" -#: backend/fujitsu.c:4452 +#: backend/fujitsu.c:4456 #, no-c-format msgid "OMR or double feed detected" msgstr "" -#: backend/fujitsu.c:4475 +#: backend/fujitsu.c:4479 #, no-c-format msgid "Power saving" msgstr "" -#: backend/fujitsu.c:4476 +#: backend/fujitsu.c:4480 #, fuzzy, no-c-format msgid "Scanner in power saving mode" msgstr "Pokrywa skanera jest otwarta" -#: backend/fujitsu.c:4499 +#: backend/fujitsu.c:4503 #, fuzzy, no-c-format msgid "Manual feed" msgstr "Ręczne wstępne ustawianie ostrości" -#: backend/fujitsu.c:4500 +#: backend/fujitsu.c:4504 #, fuzzy, no-c-format msgid "Manual feed selected" msgstr "Ręczne wstępne ustawianie ostrości" -#: backend/fujitsu.c:4523 +#: backend/fujitsu.c:4527 #, no-c-format msgid "Function" msgstr "" -#: backend/fujitsu.c:4524 +#: backend/fujitsu.c:4528 #, no-c-format msgid "Function character on screen" msgstr "" -#: backend/fujitsu.c:4535 +#: backend/fujitsu.c:4539 #, no-c-format msgid "Ink low" msgstr "" -#: backend/fujitsu.c:4536 +#: backend/fujitsu.c:4540 #, no-c-format msgid "Imprinter ink running low" msgstr "" -#: backend/fujitsu.c:4547 +#: backend/fujitsu.c:4551 #, no-c-format msgid "Double feed" msgstr "" -#: backend/fujitsu.c:4548 +#: backend/fujitsu.c:4552 #, no-c-format msgid "Double feed detected" msgstr "" -#: backend/fujitsu.c:4559 +#: backend/fujitsu.c:4563 #, no-c-format msgid "Error code" msgstr "" -#: backend/fujitsu.c:4560 +#: backend/fujitsu.c:4564 #, fuzzy, no-c-format msgid "Hardware error code" msgstr "błąd kontroli sprzętu" -#: backend/fujitsu.c:4571 +#: backend/fujitsu.c:4575 #, no-c-format msgid "Skew angle" msgstr "" -#: backend/fujitsu.c:4572 +#: backend/fujitsu.c:4576 #, no-c-format msgid "Requires black background for scanning" msgstr "" -#: backend/fujitsu.c:4583 +#: backend/fujitsu.c:4587 #, no-c-format msgid "Ink remaining" msgstr "" -#: backend/fujitsu.c:4584 +#: backend/fujitsu.c:4588 #, fuzzy, no-c-format msgid "Imprinter ink level" msgstr "Poziom bieli" -#: backend/fujitsu.c:4595 +#: backend/fujitsu.c:4599 #, fuzzy, no-c-format msgid "Density" msgstr "Kontrola gęstości" -#: backend/fujitsu.c:4596 +#: backend/fujitsu.c:4600 #, fuzzy, no-c-format msgid "Density dial" msgstr "Kontrola gęstości" -#: backend/fujitsu.c:4607 backend/fujitsu.c:4608 +#: backend/fujitsu.c:4611 backend/fujitsu.c:4612 #, fuzzy, no-c-format msgid "Duplex switch" msgstr "Skanowanie dwustronne" -#: backend/genesys/genesys.cpp:4118 +#: backend/genesys/genesys.cpp:4160 #, no-c-format msgid "Request backend to remove border from pages digitally" msgstr "" -#: backend/genesys/genesys.cpp:4127 backend/kvs1025_opt.c:912 +#: backend/genesys/genesys.cpp:4169 backend/kvs1025_opt.c:912 #, no-c-format msgid "Request driver to discard pages with low numbers of dark pixels" msgstr "" -#: backend/genesys/genesys.cpp:4137 backend/kvs1025_opt.c:892 +#: backend/genesys/genesys.cpp:4179 backend/kvs1025_opt.c:892 #, no-c-format msgid "Software derotate" msgstr "" -#: backend/genesys/genesys.cpp:4138 backend/kvs1025_opt.c:894 +#: backend/genesys/genesys.cpp:4180 backend/kvs1025_opt.c:894 #, no-c-format msgid "Request driver to detect and correct 90 degree image rotation" msgstr "" -#: backend/genesys/genesys.cpp:4168 backend/pixma_sane_options.c:314 +#: backend/genesys/genesys.cpp:4210 backend/pixma/pixma_sane_options.c:314 #, no-c-format msgid "Extras" msgstr "Dodatki" -#: backend/genesys/genesys.cpp:4188 backend/pixma_sane_options.c:336 +#: backend/genesys/genesys.cpp:4230 backend/pixma/pixma_sane_options.c:336 #, no-c-format msgid "Dynamic threshold curve, from light to dark, normally 50-65" msgstr "Dynamiczna krzywa progowa, od ciemnego do jasnego, zwykle 50-65" -#: backend/genesys/genesys.cpp:4197 -#, no-c-format -msgid "Disable dynamic lineart" -msgstr "Wyłączenie dynamicznego trybu kreski" - -#: backend/genesys/genesys.cpp:4199 -#, fuzzy, no-c-format -msgid "" -"Disable use of a software adaptive algorithm to generate lineart relying " -"instead on hardware lineart." -msgstr "" -"Wyłączenie użycia algorytmu adaptacyjnego do generowania linii zamiast " -"polegania na trybie sprzętowym" - -#: backend/genesys/genesys.cpp:4215 +#: backend/genesys/genesys.cpp:4240 #, no-c-format msgid "Disable interpolation" msgstr "Wyłącz interpolację" -#: backend/genesys/genesys.cpp:4218 +#: backend/genesys/genesys.cpp:4243 #, no-c-format msgid "" "When using high resolutions where the horizontal resolution is smaller " @@ -3067,44 +3082,44 @@ msgstr "" "mniejsza niż rozdzielczość pionowa, ta opcja wyłącza interpolację " "poziomą." -#: backend/genesys/genesys.cpp:4227 +#: backend/genesys/genesys.cpp:4252 #, fuzzy, no-c-format msgid "Color filter" msgstr "Filtr kolorów" -#: backend/genesys/genesys.cpp:4230 +#: backend/genesys/genesys.cpp:4255 #, no-c-format msgid "When using gray or lineart this option selects the used color." msgstr "W trybie szarości lub kreski ta opcja wybiera używany kolor." -#: backend/genesys/genesys.cpp:4254 +#: backend/genesys/genesys.cpp:4279 #, fuzzy, no-c-format msgid "Calibration file" msgstr "Kalibracja" -#: backend/genesys/genesys.cpp:4255 +#: backend/genesys/genesys.cpp:4280 #, fuzzy, no-c-format msgid "Specify the calibration file to use" msgstr "Zdefiniuj tryb kalibracji" -#: backend/genesys/genesys.cpp:4272 +#: backend/genesys/genesys.cpp:4297 #, fuzzy, no-c-format msgid "Calibration cache expiration time" msgstr "Pamięć podręczna danych kalibracji" -#: backend/genesys/genesys.cpp:4273 +#: backend/genesys/genesys.cpp:4298 #, no-c-format msgid "" "Time (in minutes) before a cached calibration expires. A value of 0 " "means cache is not used. A negative value means cache never expires." msgstr "" -#: backend/genesys/genesys.cpp:4283 +#: backend/genesys/genesys.cpp:4308 #, no-c-format msgid "Lamp off time" msgstr "Czas wyłączania lampy" -#: backend/genesys/genesys.cpp:4286 +#: backend/genesys/genesys.cpp:4311 #, no-c-format msgid "" "The lamp will be turned off after the given time (in minutes). A value " @@ -3113,103 +3128,108 @@ msgstr "" "Lampa zostanie wyłączona po podanym czasie (w minutach). Wartość 0 " "oznacza, że lampa nie będzie wyłączana." -#: backend/genesys/genesys.cpp:4296 +#: backend/genesys/genesys.cpp:4321 #, fuzzy, no-c-format msgid "Lamp off during scan" msgstr "Wyłącz lampę podczas kalibracji ciemności" -#: backend/genesys/genesys.cpp:4297 +#: backend/genesys/genesys.cpp:4322 #, fuzzy, no-c-format msgid "The lamp will be turned off during scan. " msgstr "Liczba minut do wyłączenia lampy po skanowaniu" -#: backend/genesys/genesys.cpp:4324 backend/genesys/genesys.cpp:4325 +#: backend/genesys/genesys.cpp:4349 backend/genesys/genesys.cpp:4350 #, no-c-format msgid "File button" msgstr "Przycisk pliku" -#: backend/genesys/genesys.cpp:4369 backend/genesys/genesys.cpp:4370 +#: backend/genesys/genesys.cpp:4394 backend/genesys/genesys.cpp:4395 #, no-c-format msgid "OCR button" msgstr "Przycisk OCR" -#: backend/genesys/genesys.cpp:4381 backend/genesys/genesys.cpp:4382 +#: backend/genesys/genesys.cpp:4406 backend/genesys/genesys.cpp:4407 #, no-c-format msgid "Power button" msgstr "Przycisk zasilania" -#: backend/genesys/genesys.cpp:4393 backend/genesys/genesys.cpp:4394 +#: backend/genesys/genesys.cpp:4418 backend/genesys/genesys.cpp:4419 #, fuzzy, no-c-format msgid "Extra button" msgstr "Przycisk E-maila" -#: backend/genesys/genesys.cpp:4405 backend/gt68xx.c:755 +#: backend/genesys/genesys.cpp:4430 backend/gt68xx.c:755 #, fuzzy, no-c-format msgid "Needs calibration" msgstr "Wymaga kalibracji" -#: backend/genesys/genesys.cpp:4406 backend/gt68xx.c:756 +#: backend/genesys/genesys.cpp:4431 backend/gt68xx.c:756 backend/p5.c:1928 #, no-c-format msgid "The scanner needs calibration for the current settings" msgstr "Skaner wymaga kalibracji dla obecnych ustawień" -#: backend/genesys/genesys.cpp:4417 backend/gt68xx.c:780 -#: backend/gt68xx.c:781 backend/pixma_sane_options.c:226 -#: backend/plustek.c:1080 +#: backend/genesys/genesys.cpp:4442 backend/gt68xx.c:780 +#: backend/gt68xx.c:781 backend/p5.c:1937 backend/p5.c:1938 +#: backend/pixma/pixma_sane_options.c:226 backend/plustek.c:1080 #, no-c-format msgid "Buttons" msgstr "Przyciski" -#: backend/genesys/genesys.cpp:4426 backend/gt68xx.c:787 -#: backend/hp5400_sane.c:392 backend/hp-option.h:97 backend/niash.c:726 -#: backend/plustek.c:941 +#: backend/genesys/genesys.cpp:4451 backend/gt68xx.c:787 +#: backend/hp-option.h:97 backend/hp5400_sane.c:392 backend/niash.c:726 +#: backend/p5.c:1945 backend/plustek.c:941 #, no-c-format msgid "Calibrate" msgstr "Kalibracja" -#: backend/genesys/genesys.cpp:4428 backend/gt68xx.c:789 +#: backend/genesys/genesys.cpp:4453 backend/gt68xx.c:789 backend/p5.c:1947 #, no-c-format msgid "Start calibration using special sheet" msgstr "Rozpocznij kalibrację przy użyciu specjalnej kartki" -#: backend/genesys/genesys.cpp:4440 backend/gt68xx.c:802 +#: backend/genesys/genesys.cpp:4465 backend/gt68xx.c:802 backend/p5.c:1958 #, no-c-format msgid "Clear calibration" msgstr "Wyczyść kalibrację" -#: backend/genesys/genesys.cpp:4441 backend/gt68xx.c:803 +#: backend/genesys/genesys.cpp:4466 backend/gt68xx.c:803 backend/p5.c:1960 #, no-c-format msgid "Clear calibration cache" msgstr "Wyczyść pamięć podręczną kalibracji" -#: backend/genesys/genesys.cpp:4451 +#: backend/genesys/genesys.cpp:4476 #, fuzzy, no-c-format msgid "Force calibration" msgstr "Kalibracja ziarnistości" -#: backend/genesys/genesys.cpp:4452 +#: backend/genesys/genesys.cpp:4477 #, no-c-format msgid "Force calibration ignoring all and any calibration caches" msgstr "" -#: backend/genesys/genesys.cpp:4462 +#: backend/genesys/genesys.cpp:4487 #, fuzzy, no-c-format msgid "Ignore internal offsets" msgstr "Offset zieleni" -#: backend/genesys/genesys.cpp:4464 +#: backend/genesys/genesys.cpp:4489 #, no-c-format msgid "" "Acquires the image including the internal calibration areas of the " "scanner" msgstr "" -#: backend/gt68xx.c:149 backend/ma1509.c:108 backend/mustek.c:164 -#: backend/snapscan-options.c:87 backend/umax.c:182 +#: backend/genesys/genesys.h:79 backend/gt68xx.c:149 backend/ma1509.c:108 +#: backend/mustek.c:164 backend/snapscan-options.c:87 backend/umax.c:182 #, no-c-format msgid "Transparency Adapter" msgstr "Moduł do skanowania negatywów" +#: backend/genesys/genesys.h:80 +#, fuzzy, no-c-format +msgid "Transparency Adapter Infrared" +msgstr "Moduł do skanowania negatywów" + #: backend/gt68xx.c:470 #, no-c-format msgid "Gray mode color" @@ -3318,6 +3338,310 @@ msgstr "Wartość gamma" msgid "Sets the gamma value of all channels." msgstr "Ustawia wartość gamma dla wszystkich kanałów" +#: backend/hp-option.c:2987 +#, no-c-format +msgid "Advanced Options" +msgstr "Opcje zaawansowane" + +#: backend/hp-option.c:3044 +#, no-c-format +msgid "Coarse" +msgstr "Ziarnistość" + +#: backend/hp-option.c:3045 +#, no-c-format +msgid "Fine" +msgstr "Dokładny" + +#: backend/hp-option.c:3046 +#, no-c-format +msgid "Bayer" +msgstr "Bayera" + +#: backend/hp-option.c:3049 backend/hp-option.c:3100 +#, no-c-format +msgid "Custom" +msgstr "Użytkownika" + +#: backend/hp-option.c:3090 backend/hp-option.c:3146 +#: backend/hp-option.c:3161 +#, no-c-format +msgid "Auto" +msgstr "Automatyczny" + +#: backend/hp-option.c:3091 +#, no-c-format +msgid "NTSC RGB" +msgstr "NTSC RGB" + +#: backend/hp-option.c:3092 +#, no-c-format +msgid "XPA RGB" +msgstr "XPA RGB" + +#: backend/hp-option.c:3093 +#, no-c-format +msgid "Pass-through" +msgstr "Środkowoprzepustowy" + +#: backend/hp-option.c:3094 +#, no-c-format +msgid "NTSC Gray" +msgstr "Skala szarości NTSC" + +#: backend/hp-option.c:3095 +#, no-c-format +msgid "XPA Gray" +msgstr "Skala szarości XPA" + +#: backend/hp-option.c:3147 +#, no-c-format +msgid "Slow" +msgstr "Powolny" + +#: backend/hp-option.c:3148 backend/hp-option.c:3255 +#: backend/kvs40xx_opt.c:230 backend/matsushita.c:244 backend/mustek.c:149 +#: backend/plustek.c:234 backend/plustek_pp.c:203 backend/u12.c:155 +#, no-c-format +msgid "Normal" +msgstr "Zwykły" + +#: backend/hp-option.c:3149 +#, no-c-format +msgid "Fast" +msgstr "Szybki" + +#: backend/hp-option.c:3150 +#, no-c-format +msgid "Extra Fast" +msgstr "Bardzo szybki" + +#: backend/hp-option.c:3163 +#, no-c-format +msgid "2-pixel" +msgstr "2-pikselowy" + +#: backend/hp-option.c:3164 +#, no-c-format +msgid "4-pixel" +msgstr "4-pikselowy" + +#: backend/hp-option.c:3165 +#, no-c-format +msgid "8-pixel" +msgstr "8-pikselowy" + +#: backend/hp-option.c:3176 +#, no-c-format +msgid "Print" +msgstr "Drukuj" + +#: backend/hp-option.c:3177 backend/hp3900_sane.c:427 +#: backend/hp3900_sane.c:1019 +#, no-c-format +msgid "Slide" +msgstr "Slajd" + +#: backend/hp-option.c:3178 +#, no-c-format +msgid "Film-strip" +msgstr "Pasek filmu" + +#: backend/hp-option.c:3256 backend/hp5590.c:93 +#, no-c-format +msgid "ADF" +msgstr "ADF" + +#: backend/hp-option.c:3257 +#, no-c-format +msgid "XPA" +msgstr "XPA" + +#: backend/hp-option.c:3331 backend/hp-option.c:3344 +#, no-c-format +msgid "Conditional" +msgstr "Warunkowy" + +#: backend/hp-option.c:3417 +#, no-c-format +msgid "Experiment" +msgstr "Eksperyment" + +#: backend/hp-option.h:60 +#, no-c-format +msgid "Sharpening" +msgstr "Wyostrzanie" + +#: backend/hp-option.h:61 +#, no-c-format +msgid "Set sharpening value." +msgstr "Ustaw wartość wyostrzania." + +#: backend/hp-option.h:66 +#, no-c-format +msgid "Auto Threshold" +msgstr "Automatyczne progowanie" + +#: backend/hp-option.h:68 +#, no-c-format +msgid "Enable automatic determination of threshold for line-art scans." +msgstr "Włącz automatyczne rozpoznawanie progu dla skanów w trybie kreski." + +#: backend/hp-option.h:74 +#, no-c-format +msgid "Select smoothing filter." +msgstr "Wybierz filtr wygładzający." + +#: backend/hp-option.h:79 +#, no-c-format +msgid "Unload media after scan" +msgstr "Wysuń nośnik po skanowaniu" + +#: backend/hp-option.h:80 +#, no-c-format +msgid "Unloads the media after a scan." +msgstr "Wysuwa nośnik po skanowaniu." + +#: backend/hp-option.h:85 +#, no-c-format +msgid "Change document" +msgstr "Zmień dokument" + +#: backend/hp-option.h:86 +#, no-c-format +msgid "Change Document." +msgstr "Zmień Dokument." + +#: backend/hp-option.h:91 +#, no-c-format +msgid "Unload" +msgstr "Wysuń" + +#: backend/hp-option.h:92 +#, no-c-format +msgid "Unload Document." +msgstr "Wysuń Dokument." + +#: backend/hp-option.h:98 +#, no-c-format +msgid "Start calibration process." +msgstr "Rozpocznij proces kalibracji." + +#: backend/hp-option.h:103 +#, no-c-format +msgid "Media" +msgstr "Nośnik" + +#: backend/hp-option.h:104 +#, no-c-format +msgid "Set type of media." +msgstr "Ustaw rodzaj nośnika." + +#: backend/hp-option.h:109 +#, no-c-format +msgid "Exposure time" +msgstr "Czas ekspozycji" + +#: backend/hp-option.h:111 +#, no-c-format +msgid "" +"A longer exposure time lets the scanner collect more light. Suggested " +"use is 175% for prints, 150% for normal slides and \"Negative\" for " +"negative film. For dark (underexposed) images you can increase this " +"value." +msgstr "" +"Dłuższy czas ekspozycji pozwala głowicy odebrać więcej światła. " +"Sugerowane jest 175% dla wydruków, 150% dla zwykłych slajdów i \"Negatyw" +"\" dla filmu negatywowego. Dla ciemnych (nie doświetlonych) obrazków " +"możesz zwiększyć tę wartość." + +#: backend/hp-option.h:119 backend/hp-option.h:126 +#, no-c-format +msgid "Color Matrix" +msgstr "Matryca kolorów" + +#: backend/hp-option.h:121 +#, fuzzy, no-c-format +msgid "Set the scanner's color matrix." +msgstr "Ustaw matrycę kolorów skanera." + +#: backend/hp-option.h:127 +#, no-c-format +msgid "Custom color matrix." +msgstr "Matryca kolorów użytkownika" + +#: backend/hp-option.h:132 +#, no-c-format +msgid "Mono Color Matrix" +msgstr "Monochromatyczna matryca kolorów" + +#: backend/hp-option.h:133 +#, no-c-format +msgid "Custom color matrix for grayscale scans." +msgstr "Matryca kolorów użytkownika dla skanów w skali szarości." + +#: backend/hp-option.h:138 +#, no-c-format +msgid "Mirror horizontal" +msgstr "Odbicie poziome" + +#: backend/hp-option.h:139 +#, no-c-format +msgid "Mirror image horizontally." +msgstr "Poziome, lustrzane odbicie obrazka." + +#: backend/hp-option.h:144 +#, no-c-format +msgid "Mirror vertical" +msgstr "Odbij pionowo." + +#: backend/hp-option.h:145 +#, no-c-format +msgid "Mirror image vertically." +msgstr "Pionowe, lustrzane odbicie obrazka." + +#: backend/hp-option.h:150 +#, no-c-format +msgid "Update options" +msgstr "Aktualizuj opcje" + +#: backend/hp-option.h:151 +#, no-c-format +msgid "Update options." +msgstr "Aktualizuj opcje." + +#: backend/hp-option.h:156 +#, no-c-format +msgid "8 bit output" +msgstr "8-bitowe wyjście" + +#: backend/hp-option.h:158 +#, no-c-format +msgid "Use bit depth greater eight internally, but output only eight bits." +msgstr "" +"Użyj wewnętrznie głębi większej niż osiem bitów, lecz na wyjściu daj " +"równe osiem." + +#: backend/hp-option.h:164 +#, no-c-format +msgid "Front button wait" +msgstr "Oczekiwanie na przycisk panelu" + +#: backend/hp-option.h:165 +#, no-c-format +msgid "Wait to scan for front-panel button push." +msgstr "Czekaj ze skanowaniem na naciśnięcie przycisku na przednim panelu." + +#: backend/hp-option.h:172 +#, no-c-format +msgid "Shut off lamp" +msgstr "Wyłącz lampę" + +#: backend/hp-option.h:173 +#, no-c-format +msgid "Shut off scanner lamp." +msgstr "Wyłącz lampę skanera." + #: backend/hp3500.c:1020 #, no-c-format msgid "Geometry Group" @@ -3328,12 +3652,6 @@ msgstr "Grupa geometrii" msgid "Scan Mode Group" msgstr "Grupa trybu skanowania" -#: backend/hp3900_sane.c:427 backend/hp3900_sane.c:1019 -#: backend/hp-option.c:3177 -#, no-c-format -msgid "Slide" -msgstr "Slajd" - #: backend/hp3900_sane.c:1405 #, no-c-format msgid "Scanner model" @@ -3537,11 +3855,6 @@ msgstr "Włącza lub wyłącza lampę." msgid "Calibrates for black and white level." msgstr "Kalibruje poziom dla czerni i bieli." -#: backend/hp5590.c:93 backend/hp-option.c:3256 -#, no-c-format -msgid "ADF" -msgstr "ADF" - #: backend/hp5590.c:95 #, no-c-format msgid "TMA Slides" @@ -3652,299 +3965,6 @@ msgid "" "r*65536+256*g+b or gray value (default=violet or gray)" msgstr "" -#: backend/hp-option.c:2987 -#, no-c-format -msgid "Advanced Options" -msgstr "Opcje zaawansowane" - -#: backend/hp-option.c:3044 -#, no-c-format -msgid "Coarse" -msgstr "Ziarnistość" - -#: backend/hp-option.c:3045 -#, no-c-format -msgid "Fine" -msgstr "Dokładny" - -#: backend/hp-option.c:3046 -#, no-c-format -msgid "Bayer" -msgstr "Bayera" - -#: backend/hp-option.c:3049 backend/hp-option.c:3100 -#, no-c-format -msgid "Custom" -msgstr "Użytkownika" - -#: backend/hp-option.c:3090 backend/hp-option.c:3146 -#: backend/hp-option.c:3161 -#, no-c-format -msgid "Auto" -msgstr "Automatyczny" - -#: backend/hp-option.c:3091 -#, no-c-format -msgid "NTSC RGB" -msgstr "NTSC RGB" - -#: backend/hp-option.c:3092 -#, no-c-format -msgid "XPA RGB" -msgstr "XPA RGB" - -#: backend/hp-option.c:3093 -#, no-c-format -msgid "Pass-through" -msgstr "Środkowoprzepustowy" - -#: backend/hp-option.c:3094 -#, no-c-format -msgid "NTSC Gray" -msgstr "Skala szarości NTSC" - -#: backend/hp-option.c:3095 -#, no-c-format -msgid "XPA Gray" -msgstr "Skala szarości XPA" - -#: backend/hp-option.c:3147 -#, no-c-format -msgid "Slow" -msgstr "Powolny" - -#: backend/hp-option.c:3148 backend/hp-option.c:3255 -#: backend/kvs40xx_opt.c:230 backend/matsushita.c:244 backend/mustek.c:149 -#: backend/plustek.c:234 backend/plustek_pp.c:203 backend/u12.c:155 -#, no-c-format -msgid "Normal" -msgstr "Zwykły" - -#: backend/hp-option.c:3149 -#, no-c-format -msgid "Fast" -msgstr "Szybki" - -#: backend/hp-option.c:3150 -#, no-c-format -msgid "Extra Fast" -msgstr "Bardzo szybki" - -#: backend/hp-option.c:3163 -#, no-c-format -msgid "2-pixel" -msgstr "2-pikselowy" - -#: backend/hp-option.c:3164 -#, no-c-format -msgid "4-pixel" -msgstr "4-pikselowy" - -#: backend/hp-option.c:3165 -#, no-c-format -msgid "8-pixel" -msgstr "8-pikselowy" - -#: backend/hp-option.c:3176 -#, no-c-format -msgid "Print" -msgstr "Drukuj" - -#: backend/hp-option.c:3178 -#, no-c-format -msgid "Film-strip" -msgstr "Pasek filmu" - -#: backend/hp-option.c:3257 -#, no-c-format -msgid "XPA" -msgstr "XPA" - -#: backend/hp-option.c:3331 backend/hp-option.c:3344 -#, no-c-format -msgid "Conditional" -msgstr "Warunkowy" - -#: backend/hp-option.c:3417 -#, no-c-format -msgid "Experiment" -msgstr "Eksperyment" - -#: backend/hp-option.h:60 -#, no-c-format -msgid "Sharpening" -msgstr "Wyostrzanie" - -#: backend/hp-option.h:61 -#, no-c-format -msgid "Set sharpening value." -msgstr "Ustaw wartość wyostrzania." - -#: backend/hp-option.h:66 -#, no-c-format -msgid "Auto Threshold" -msgstr "Automatyczne progowanie" - -#: backend/hp-option.h:68 -#, no-c-format -msgid "Enable automatic determination of threshold for line-art scans." -msgstr "Włącz automatyczne rozpoznawanie progu dla skanów w trybie kreski." - -#: backend/hp-option.h:74 -#, no-c-format -msgid "Select smoothing filter." -msgstr "Wybierz filtr wygładzający." - -#: backend/hp-option.h:79 -#, no-c-format -msgid "Unload media after scan" -msgstr "Wysuń nośnik po skanowaniu" - -#: backend/hp-option.h:80 -#, no-c-format -msgid "Unloads the media after a scan." -msgstr "Wysuwa nośnik po skanowaniu." - -#: backend/hp-option.h:85 -#, no-c-format -msgid "Change document" -msgstr "Zmień dokument" - -#: backend/hp-option.h:86 -#, no-c-format -msgid "Change Document." -msgstr "Zmień Dokument." - -#: backend/hp-option.h:91 -#, no-c-format -msgid "Unload" -msgstr "Wysuń" - -#: backend/hp-option.h:92 -#, no-c-format -msgid "Unload Document." -msgstr "Wysuń Dokument." - -#: backend/hp-option.h:98 -#, no-c-format -msgid "Start calibration process." -msgstr "Rozpocznij proces kalibracji." - -#: backend/hp-option.h:103 -#, no-c-format -msgid "Media" -msgstr "Nośnik" - -#: backend/hp-option.h:104 -#, no-c-format -msgid "Set type of media." -msgstr "Ustaw rodzaj nośnika." - -#: backend/hp-option.h:109 -#, no-c-format -msgid "Exposure time" -msgstr "Czas ekspozycji" - -#: backend/hp-option.h:111 -#, no-c-format -msgid "" -"A longer exposure time lets the scanner collect more light. Suggested " -"use is 175% for prints, 150% for normal slides and \"Negative\" for " -"negative film. For dark (underexposed) images you can increase this " -"value." -msgstr "" -"Dłuższy czas ekspozycji pozwala głowicy odebrać więcej światła. " -"Sugerowane jest 175% dla wydruków, 150% dla zwykłych slajdów i \"Negatyw" -"\" dla filmu negatywowego. Dla ciemnych (nie doświetlonych) obrazków " -"możesz zwiększyć tę wartość." - -#: backend/hp-option.h:119 backend/hp-option.h:126 -#, no-c-format -msgid "Color Matrix" -msgstr "Matryca kolorów" - -#: backend/hp-option.h:121 -#, fuzzy, no-c-format -msgid "Set the scanner's color matrix." -msgstr "Ustaw matrycę kolorów skanera." - -#: backend/hp-option.h:127 -#, no-c-format -msgid "Custom color matrix." -msgstr "Matryca kolorów użytkownika" - -#: backend/hp-option.h:132 -#, no-c-format -msgid "Mono Color Matrix" -msgstr "Monochromatyczna matryca kolorów" - -#: backend/hp-option.h:133 -#, no-c-format -msgid "Custom color matrix for grayscale scans." -msgstr "Matryca kolorów użytkownika dla skanów w skali szarości." - -#: backend/hp-option.h:138 -#, no-c-format -msgid "Mirror horizontal" -msgstr "Odbicie poziome" - -#: backend/hp-option.h:139 -#, no-c-format -msgid "Mirror image horizontally." -msgstr "Poziome, lustrzane odbicie obrazka." - -#: backend/hp-option.h:144 -#, no-c-format -msgid "Mirror vertical" -msgstr "Odbij pionowo." - -#: backend/hp-option.h:145 -#, no-c-format -msgid "Mirror image vertically." -msgstr "Pionowe, lustrzane odbicie obrazka." - -#: backend/hp-option.h:150 -#, no-c-format -msgid "Update options" -msgstr "Aktualizuj opcje" - -#: backend/hp-option.h:151 -#, no-c-format -msgid "Update options." -msgstr "Aktualizuj opcje." - -#: backend/hp-option.h:156 -#, no-c-format -msgid "8 bit output" -msgstr "8-bitowe wyjście" - -#: backend/hp-option.h:158 -#, no-c-format -msgid "Use bit depth greater eight internally, but output only eight bits." -msgstr "" -"Użyj wewnętrznie głębi większej niż osiem bitów, lecz na wyjściu daj " -"równe osiem." - -#: backend/hp-option.h:164 -#, no-c-format -msgid "Front button wait" -msgstr "Oczekiwanie na przycisk panelu" - -#: backend/hp-option.h:165 -#, no-c-format -msgid "Wait to scan for front-panel button push." -msgstr "Czekaj ze skanowaniem na naciśnięcie przycisku na przednim panelu." - -#: backend/hp-option.h:172 -#, no-c-format -msgid "Shut off lamp" -msgstr "Wyłącz lampę" - -#: backend/hp-option.h:173 -#, no-c-format -msgid "Shut off scanner lamp." -msgstr "Wyłącz lampę skanera." - #: backend/kvs1025.h:51 backend/kvs20xx_opt.c:295 backend/kvs40xx_opt.c:516 #: backend/matsushita.h:219 #, no-c-format @@ -4043,7 +4063,7 @@ msgid "single" msgstr "" #: backend/kvs1025_opt.c:73 backend/kvs20xx.c:462 backend/kvs20xx_opt.c:56 -#: backend/kvs40xx.c:704 backend/kvs40xx.c:722 backend/kvs40xx_opt.c:102 +#: backend/kvs40xx.c:705 backend/kvs40xx.c:723 backend/kvs40xx_opt.c:102 #: backend/kvs40xx_opt.c:1087 #, fuzzy, no-c-format msgid "continuous" @@ -4342,7 +4362,7 @@ msgstr "Ustawia emfazę obrazka" #: backend/kvs1025_opt.c:807 backend/kvs1025_opt.c:808 #: backend/matsushita.c:1300 backend/matsushita.c:1301 -#: backend/pixma_sane_options.c:112 +#: backend/pixma/pixma_sane_options.c:112 #, no-c-format msgid "Gamma" msgstr "Gamma" @@ -4632,52 +4652,52 @@ msgstr "Pogrubianie Bayera 8x8" msgid "8x8 Vertical Line" msgstr "Linie pionowe 8x8" -#: backend/lexmark.c:273 backend/umax_pp.c:711 +#: backend/lexmark.c:273 backend/umax_pp.c:705 #, no-c-format msgid "Gain" msgstr "Wzmocnienie" -#: backend/lexmark.c:274 backend/umax_pp.c:712 +#: backend/lexmark.c:274 backend/umax_pp.c:706 #, no-c-format msgid "Color channels gain settings" msgstr "Ustawienia wzmocnienia kanałów kolorów" -#: backend/lexmark.c:283 backend/umax_pp.c:719 +#: backend/lexmark.c:283 backend/umax_pp.c:713 #, no-c-format msgid "Gray gain" msgstr "Wzmocnienie szarości" -#: backend/lexmark.c:284 backend/umax_pp.c:720 +#: backend/lexmark.c:284 backend/umax_pp.c:714 #, no-c-format msgid "Sets gray channel gain" msgstr "Ustawia wzmocnienie kanału szarości" -#: backend/lexmark.c:297 backend/plustek.c:1001 backend/umax_pp.c:731 +#: backend/lexmark.c:297 backend/plustek.c:1001 backend/umax_pp.c:725 #, no-c-format msgid "Red gain" msgstr "Wzmocnienie czerwieni" -#: backend/lexmark.c:298 backend/umax_pp.c:732 +#: backend/lexmark.c:298 backend/umax_pp.c:726 #, no-c-format msgid "Sets red channel gain" msgstr "Ustawia wzmocnienie kanału czerwieni" -#: backend/lexmark.c:311 backend/plustek.c:1017 backend/umax_pp.c:743 +#: backend/lexmark.c:311 backend/plustek.c:1017 backend/umax_pp.c:737 #, no-c-format msgid "Green gain" msgstr "Wzmocnienie zieleni" -#: backend/lexmark.c:312 backend/umax_pp.c:744 +#: backend/lexmark.c:312 backend/umax_pp.c:738 #, no-c-format msgid "Sets green channel gain" msgstr "Ustawia wzmocnienie kanału zieleni" -#: backend/lexmark.c:325 backend/plustek.c:1033 backend/umax_pp.c:755 +#: backend/lexmark.c:325 backend/plustek.c:1033 backend/umax_pp.c:749 #, no-c-format msgid "Blue gain" msgstr "Wzmocnienie błękitu" -#: backend/lexmark.c:326 backend/umax_pp.c:756 +#: backend/lexmark.c:326 backend/umax_pp.c:750 #, no-c-format msgid "Sets blue channel gain" msgstr "Ustawia wzmocnienie kanału błękitu" @@ -4763,7 +4783,7 @@ msgstr "Jedna strona" msgid "All pages" msgstr "Wszystkie strony" -#: backend/matsushita.c:1034 backend/plustek.c:1333 +#: backend/matsushita.c:1034 backend/p5_device.c:8 backend/plustek.c:1333 #, no-c-format msgid "sheetfed scanner" msgstr "skaner arkuszy" @@ -5276,39 +5296,44 @@ msgstr "" "Rozgrzewaj dopóki jasność lampy będzie stała, zamiast przyjmować stały " "czas 40 sekund." -#: backend/pixma.c:397 +#: backend/p5.c:1926 +#, fuzzy, no-c-format +msgid "Need calibration" +msgstr "Wymaga kalibracji" + +#: backend/pixma/pixma.c:397 #, fuzzy, no-c-format msgid "Negative color" msgstr "Negatyw" -#: backend/pixma.c:402 +#: backend/pixma/pixma.c:402 #, fuzzy, no-c-format msgid "Negative gray" msgstr "Negatyw" -#: backend/pixma.c:415 +#: backend/pixma/pixma.c:415 #, fuzzy, no-c-format msgid "48 bits color" msgstr "Dobry kolor" -#: backend/pixma.c:420 +#: backend/pixma/pixma.c:420 #, no-c-format msgid "16 bits gray" msgstr "" -#: backend/pixma_sane_options.c:84 +#: backend/pixma/pixma_sane_options.c:84 #, no-c-format msgid "" "Selects the scan source (such as a document-feeder). Set source before " "mode and resolution. Resets mode and resolution to auto values." msgstr "" -#: backend/pixma_sane_options.c:98 +#: backend/pixma/pixma_sane_options.c:98 #, no-c-format msgid "Button-controlled scan" msgstr "Skanowanie sterowane przyciskiem" -#: backend/pixma_sane_options.c:99 +#: backend/pixma/pixma_sane_options.c:99 #, no-c-format msgid "" "When enabled, scan process will not start immediately. To proceed, press " @@ -5320,37 +5345,37 @@ msgstr "" "\"COLOR\" (dla innych modeli). Aby anulować, należy nacisnąć przycisk " "\"GRAY\"." -#: backend/pixma_sane_options.c:232 +#: backend/pixma/pixma_sane_options.c:232 #, no-c-format msgid "Update button state" msgstr "Uaktualnij stan przycisku" -#: backend/pixma_sane_options.c:244 +#: backend/pixma/pixma_sane_options.c:244 #, no-c-format msgid "Button 1" msgstr "Przycisk 1" -#: backend/pixma_sane_options.c:258 +#: backend/pixma/pixma_sane_options.c:258 #, no-c-format msgid "Button 2" msgstr "Przycisk 2" -#: backend/pixma_sane_options.c:272 +#: backend/pixma/pixma_sane_options.c:272 #, no-c-format msgid "Type of original to scan" msgstr "" -#: backend/pixma_sane_options.c:286 +#: backend/pixma/pixma_sane_options.c:286 #, no-c-format msgid "Target operation type" msgstr "" -#: backend/pixma_sane_options.c:348 +#: backend/pixma/pixma_sane_options.c:348 #, no-c-format msgid "ADF Waiting Time" msgstr "" -#: backend/pixma_sane_options.c:349 +#: backend/pixma/pixma_sane_options.c:349 #, no-c-format msgid "" "When set, the scanner waits upto the specified time in seconds for a new " @@ -5442,7 +5467,7 @@ msgstr "Frontend analogowy" msgid "Red gain value of the AFE" msgstr "Wartość AFE wzmocnienia czerwieni" -#: backend/plustek.c:1009 backend/umax_pp.c:788 +#: backend/plustek.c:1009 backend/umax_pp.c:782 #, no-c-format msgid "Red offset" msgstr "Offset czerwieni" @@ -5718,7 +5743,7 @@ msgstr "" msgid "This option reflects the status of a scanner button." msgstr "Opcja ta odzwierciedla stan przycisku skanera." -#: backend/rts8891.c:2840 backend/umax.c:5795 backend/umax_pp.c:635 +#: backend/rts8891.c:2840 backend/umax.c:5795 backend/umax_pp.c:629 #, no-c-format msgid "Lamp on" msgstr "Włącz lampę" @@ -5728,12 +5753,12 @@ msgstr "Włącz lampę" msgid "Turn on scanner lamp" msgstr "Włącza lampę skanera" -#: backend/rts8891.c:2851 backend/umax1220u.c:248 backend/umax.c:5812 +#: backend/rts8891.c:2851 backend/umax.c:5812 backend/umax1220u.c:248 #, no-c-format msgid "Lamp off" msgstr "Wyłącz lampę" -#: backend/rts8891.c:2852 backend/umax1220u.c:249 backend/umax.c:5813 +#: backend/rts8891.c:2852 backend/umax.c:5813 backend/umax1220u.c:249 #, no-c-format msgid "Turn off scanner lamp" msgstr "Wyłącza lampę skanera" @@ -6538,56 +6563,67 @@ msgstr "Tryb kalibracji" msgid "Define calibration mode" msgstr "Zdefiniuj tryb kalibracji" -#: backend/umax_pp.c:636 +#: backend/umax_pp.c:630 #, no-c-format msgid "Sets lamp on/off" msgstr "Ustawia lapę jako włączoną lub wyłączoną" -#: backend/umax_pp.c:645 +#: backend/umax_pp.c:639 #, no-c-format msgid "UTA on" msgstr "Włącz UTA" -#: backend/umax_pp.c:646 +#: backend/umax_pp.c:640 #, no-c-format msgid "Sets UTA on/off" msgstr "Ustawia UTA jako włączone lub wyłączone" -#: backend/umax_pp.c:767 +#: backend/umax_pp.c:761 #, no-c-format msgid "Offset" msgstr "Offset" -#: backend/umax_pp.c:769 +#: backend/umax_pp.c:763 #, no-c-format msgid "Color channels offset settings" msgstr "Ustawienia offsetu kanałów koloru" -#: backend/umax_pp.c:776 +#: backend/umax_pp.c:770 #, no-c-format msgid "Gray offset" msgstr "Przesunięcie (offset) skali szarości" -#: backend/umax_pp.c:777 +#: backend/umax_pp.c:771 #, no-c-format msgid "Sets gray channel offset" msgstr "Ustawienie offsetu kanału szarości" -#: backend/umax_pp.c:789 +#: backend/umax_pp.c:783 #, no-c-format msgid "Sets red channel offset" msgstr "Ustawienie offsetu kanału czerwieni" -#: backend/umax_pp.c:801 +#: backend/umax_pp.c:795 #, no-c-format msgid "Sets green channel offset" msgstr "Ustawienie offsetu kanału zieleni" -#: backend/umax_pp.c:813 +#: backend/umax_pp.c:807 #, no-c-format msgid "Sets blue channel offset" msgstr "Ustawienie offsetu kanału błękitu" +#~ msgid "Disable dynamic lineart" +#~ msgstr "Wyłączenie dynamicznego trybu kreski" + +#, fuzzy +#~ msgid "" +#~ "Disable use of a software adaptive algorithm to generate lineart " +#~ "relying instead on hardware lineart." +#~ msgstr "" +#~ "Wyłączenie użycia algorytmu adaptacyjnego do generowania linii " +#~ "zamiast polegania na trybie sprzętowym" + #, fuzzy #~ msgid "IPC mode" #~ msgstr "Tryb podglądu" diff --git a/po/pt.po b/po/pt.po index 8aeae6b65..525756e87 100644 --- a/po/pt.po +++ b/po/pt.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: sane-backends 1.0.10\n" "Report-Msgid-Bugs-To: sane-devel@alioth-lists.debian.net\n" -"POT-Creation-Date: 2019-10-12 17:41+0300\n" +"POT-Creation-Date: 2020-01-12 07:09+0000\n" "PO-Revision-Date: 2007-05-08 13:31+0200\n" "Last-Translator: Pedro Morais \n" "Language-Team: pt \n" @@ -25,23 +25,23 @@ msgid "Standard" msgstr "" #: include/sane/saneopts.h:157 backend/artec_eplus48u.c:2884 -#: backend/epson.c:3298 backend/epson2.c:1290 -#: backend/genesys/genesys.cpp:3976 backend/gt68xx.c:696 -#: backend/hp3500.c:1019 backend/hp-option.c:3300 backend/kvs1025_opt.c:639 +#: backend/epson.c:3298 backend/epson2.c:1290 backend/epsonds.c:677 +#: backend/genesys/genesys.cpp:4034 backend/gt68xx.c:696 +#: backend/hp-option.c:3300 backend/hp3500.c:1019 backend/kvs1025_opt.c:639 #: backend/kvs20xx_opt.c:285 backend/kvs40xx_opt.c:506 backend/leo.c:823 #: backend/lexmark.c:199 backend/ma1509.c:551 backend/matsushita.c:1135 #: backend/microtek2.h:599 backend/mustek.c:4373 backend/mustek_usb.c:301 -#: backend/mustek_usb2.c:465 backend/pixma_sane_options.c:160 +#: backend/mustek_usb2.c:465 backend/pixma/pixma_sane_options.c:160 #: backend/plustek.c:808 backend/plustek_pp.c:747 backend/sceptre.c:702 #: backend/snapscan-options.c:550 backend/teco1.c:1095 backend/teco2.c:1910 #: backend/teco3.c:920 backend/test.c:647 backend/u12.c:546 -#: backend/umax.c:5176 backend/umax_pp.c:576 +#: backend/umax.c:5176 backend/umax_pp.c:570 #, no-c-format msgid "Geometry" msgstr "Geometria" #: include/sane/saneopts.h:158 backend/artec_eplus48u.c:2805 -#: backend/canon.c:1493 backend/genesys/genesys.cpp:4035 +#: backend/canon.c:1493 backend/genesys/genesys.cpp:4077 #: backend/gt68xx.c:665 backend/hp-option.c:2956 backend/kvs1025_opt.c:703 #: backend/leo.c:871 backend/ma1509.c:599 backend/matsushita.c:1189 #: backend/microtek2.h:600 backend/mustek.c:4421 backend/mustek_usb.c:349 @@ -49,7 +49,7 @@ msgstr "Geometria" #: backend/plustek_pp.c:793 backend/sceptre.c:750 #: backend/snapscan-options.c:617 backend/stv680.c:1067 #: backend/teco1.c:1143 backend/teco2.c:1958 backend/teco3.c:968 -#: backend/u12.c:592 backend/umax.c:5226 backend/umax_pp.c:625 +#: backend/u12.c:592 backend/umax.c:5226 backend/umax_pp.c:619 #, no-c-format msgid "Enhancement" msgstr "Melhorias" @@ -83,7 +83,7 @@ msgid "Bit depth" msgstr "" #: include/sane/saneopts.h:165 backend/canon.c:1140 backend/leo.c:781 -#: backend/pixma_sane_options.c:47 +#: backend/pixma/pixma_sane_options.c:47 #, no-c-format msgid "Scan mode" msgstr "Modo de digitalização" @@ -124,7 +124,7 @@ msgid "Bottom-right y" msgstr "Inferior-direita y" #: include/sane/saneopts.h:173 backend/canon.c:1216 -#: backend/pixma_sane_options.c:300 +#: backend/pixma/pixma_sane_options.c:300 #, no-c-format msgid "Scan resolution" msgstr "Resolução digitalização" @@ -279,7 +279,7 @@ msgstr "Nome do ficheiro" msgid "Halftone pattern size" msgstr "Tamanho padrão ponto - simulação cinza" -#: include/sane/saneopts.h:204 backend/fujitsu.c:3233 +#: include/sane/saneopts.h:204 backend/fujitsu.c:3237 #, no-c-format msgid "Halftone pattern" msgstr "Simulação cinza padrão" @@ -289,10 +289,10 @@ msgstr "Simulação cinza padrão" msgid "Bind X and Y resolution" msgstr "Vincular resoluções X e Y" -#: include/sane/saneopts.h:206 backend/hp3900_sane.c:428 -#: backend/hp3900_sane.c:1021 backend/hp3900_sane.c:1421 -#: backend/hp-option.c:3238 backend/mustek_usb2.c:121 backend/plustek.c:236 -#: backend/plustek_pp.c:205 backend/u12.c:157 +#: include/sane/saneopts.h:206 backend/hp-option.c:3238 +#: backend/hp3900_sane.c:428 backend/hp3900_sane.c:1021 +#: backend/hp3900_sane.c:1421 backend/mustek_usb2.c:121 +#: backend/plustek.c:236 backend/plustek_pp.c:205 backend/u12.c:157 #, no-c-format msgid "Negative" msgstr "Negativo" @@ -998,78 +998,38 @@ msgid "" "Duplex scan provides a scan of the front and back side of the document" msgstr "" -#: backend/canon630u.c:159 -#, fuzzy, no-c-format -msgid "Calibrate Scanner" -msgstr "Calibração" - -#: backend/canon630u.c:160 -#, fuzzy, no-c-format -msgid "Force scanner calibration before scan" -msgstr "Calibração rudimentar apenas na primeira digitalização" - -#: backend/canon630u.c:259 backend/umax1220u.c:208 +#: backend/canon-sane.c:674 backend/canon.c:171 #, no-c-format -msgid "Grayscale scan" +msgid "Correction according to transparency ratio" msgstr "" -#: backend/canon630u.c:260 backend/umax1220u.c:209 +#: backend/canon-sane.c:680 backend/canon.c:170 #, no-c-format -msgid "Do a grayscale rather than color scan" +msgid "Correction according to film type" msgstr "" -#: backend/canon630u.c:306 -#, no-c-format -msgid "Analog Gain" -msgstr "Ganho analógico" - -#: backend/canon630u.c:307 -#, no-c-format -msgid "Increase or decrease the analog gain of the CCD array" -msgstr "" - -#: backend/canon630u.c:347 backend/epson.h:68 backend/epson2.h:67 -#, no-c-format -msgid "Gamma Correction" -msgstr "Correcção do gamma" - -#: backend/canon630u.c:348 -#, no-c-format -msgid "Selects the gamma corrected transfer curve" -msgstr "" - -#: backend/canon.c:149 backend/canon-sane.c:1318 -#, no-c-format -msgid "Raw" -msgstr "" - -#: backend/canon.c:157 backend/canon-sane.c:732 backend/canon-sane.c:940 +#: backend/canon-sane.c:732 backend/canon-sane.c:940 #: backend/canon-sane.c:1076 backend/canon-sane.c:1314 -#: backend/canon-sane.c:1494 backend/canon-sane.c:1643 +#: backend/canon-sane.c:1494 backend/canon-sane.c:1643 backend/canon.c:157 #, no-c-format msgid "Fine color" msgstr "" +#: backend/canon-sane.c:776 backend/canon.c:176 +#, fuzzy, no-c-format +msgid "Negatives" +msgstr "Negativo" + +#: backend/canon-sane.c:1318 backend/canon.c:149 +#, no-c-format +msgid "Raw" +msgstr "" + #: backend/canon.c:169 #, fuzzy, no-c-format msgid "No transparency correction" msgstr "Correcção do gamma" -#: backend/canon.c:170 backend/canon-sane.c:680 -#, no-c-format -msgid "Correction according to film type" -msgstr "" - -#: backend/canon.c:171 backend/canon-sane.c:674 -#, no-c-format -msgid "Correction according to transparency ratio" -msgstr "" - -#: backend/canon.c:176 backend/canon-sane.c:776 -#, fuzzy, no-c-format -msgid "Negatives" -msgstr "Negativo" - #: backend/canon.c:176 #, fuzzy, no-c-format msgid "Slides" @@ -1492,94 +1452,137 @@ msgstr "" msgid "Select the film type" msgstr "" -#: backend/canon_dr.c:411 backend/epjitsu.c:233 backend/epson.c:501 -#: backend/epson2.c:115 backend/fujitsu.c:675 backend/gt68xx.c:148 +#: backend/canon630u.c:159 +#, fuzzy, no-c-format +msgid "Calibrate Scanner" +msgstr "Calibração" + +#: backend/canon630u.c:160 +#, fuzzy, no-c-format +msgid "Force scanner calibration before scan" +msgstr "Calibração rudimentar apenas na primeira digitalização" + +#: backend/canon630u.c:259 backend/umax1220u.c:208 +#, no-c-format +msgid "Grayscale scan" +msgstr "" + +#: backend/canon630u.c:260 backend/umax1220u.c:209 +#, no-c-format +msgid "Do a grayscale rather than color scan" +msgstr "" + +#: backend/canon630u.c:306 +#, no-c-format +msgid "Analog Gain" +msgstr "Ganho analógico" + +#: backend/canon630u.c:307 +#, no-c-format +msgid "Increase or decrease the analog gain of the CCD array" +msgstr "" + +#: backend/canon630u.c:347 backend/epson.h:68 backend/epson2.h:67 +#, no-c-format +msgid "Gamma Correction" +msgstr "Correcção do gamma" + +#: backend/canon630u.c:348 +#, no-c-format +msgid "Selects the gamma corrected transfer curve" +msgstr "" + +#: backend/canon_dr.c:413 backend/epjitsu.c:233 backend/epson.c:501 +#: backend/epson2-ops.c:101 backend/epson2.c:115 backend/epsonds-ops.c:32 +#: backend/epsonds.c:95 backend/epsonds.h:62 backend/fujitsu.c:677 +#: backend/genesys/genesys.h:78 backend/gt68xx.c:148 #: backend/hp3900_sane.c:418 backend/hp3900_sane.c:427 -#: backend/hp3900_sane.c:1017 backend/hp5590.c:92 backend/ma1509.c:108 -#: backend/magicolor.c:181 backend/mustek.c:156 backend/mustek.c:160 -#: backend/mustek.c:164 backend/pixma.c:920 backend/pixma_sane_options.c:92 -#: backend/snapscan-options.c:86 backend/test.c:192 backend/umax.c:181 +#: backend/hp3900_sane.c:1017 backend/hp5590.c:92 backend/kodakaio.c:617 +#: backend/ma1509.c:108 backend/magicolor.c:181 backend/mustek.c:156 +#: backend/mustek.c:160 backend/mustek.c:164 backend/pixma/pixma.c:920 +#: backend/pixma/pixma_sane_options.c:92 backend/snapscan-options.c:86 +#: backend/test.c:192 backend/umax.c:181 #, no-c-format msgid "Flatbed" msgstr "Flachbett" -#: backend/canon_dr.c:412 backend/epjitsu.c:234 backend/fujitsu.c:676 +#: backend/canon_dr.c:414 backend/epjitsu.c:234 backend/fujitsu.c:678 #: backend/kodak.c:140 #, no-c-format msgid "ADF Front" msgstr "" -#: backend/canon_dr.c:413 backend/epjitsu.c:235 backend/fujitsu.c:677 +#: backend/canon_dr.c:415 backend/epjitsu.c:235 backend/fujitsu.c:679 #: backend/kodak.c:141 #, no-c-format msgid "ADF Back" msgstr "" -#: backend/canon_dr.c:414 backend/epjitsu.c:236 backend/fujitsu.c:678 -#: backend/hp5590.c:94 backend/kodak.c:142 backend/pixma.c:931 +#: backend/canon_dr.c:416 backend/epjitsu.c:236 backend/fujitsu.c:680 +#: backend/hp5590.c:94 backend/kodak.c:142 backend/pixma/pixma.c:931 #, no-c-format msgid "ADF Duplex" msgstr "" -#: backend/canon_dr.c:415 +#: backend/canon_dr.c:417 #, no-c-format msgid "Card Front" msgstr "" -#: backend/canon_dr.c:416 +#: backend/canon_dr.c:418 #, no-c-format msgid "Card Back" msgstr "" -#: backend/canon_dr.c:417 +#: backend/canon_dr.c:419 #, no-c-format msgid "Card Duplex" msgstr "" -#: backend/canon_dr.c:424 backend/epson.c:599 backend/epson.c:3096 -#: backend/epson2.c:201 backend/fujitsu.c:695 -#: backend/genesys/genesys.cpp:99 backend/genesys/genesys.cpp:106 +#: backend/canon_dr.c:426 backend/epson.c:599 backend/epson.c:3096 +#: backend/epson2.c:201 backend/fujitsu.c:697 +#: backend/genesys/genesys.cpp:120 backend/genesys/genesys.cpp:127 #: backend/gt68xx_low.h:136 backend/hp-option.c:3096 #, no-c-format msgid "Red" msgstr "Vermelho" -#: backend/canon_dr.c:425 backend/epson.c:600 backend/epson.c:3092 -#: backend/epson2.c:202 backend/fujitsu.c:696 -#: backend/genesys/genesys.cpp:100 backend/genesys/genesys.cpp:107 +#: backend/canon_dr.c:427 backend/epson.c:600 backend/epson.c:3092 +#: backend/epson2.c:202 backend/fujitsu.c:698 +#: backend/genesys/genesys.cpp:121 backend/genesys/genesys.cpp:128 #: backend/gt68xx_low.h:137 backend/hp-option.c:3097 #, no-c-format msgid "Green" msgstr "Verde" -#: backend/canon_dr.c:426 backend/epson.c:601 backend/epson.c:3100 -#: backend/epson2.c:203 backend/fujitsu.c:697 -#: backend/genesys/genesys.cpp:101 backend/genesys/genesys.cpp:108 +#: backend/canon_dr.c:428 backend/epson.c:601 backend/epson.c:3100 +#: backend/epson2.c:203 backend/fujitsu.c:699 +#: backend/genesys/genesys.cpp:122 backend/genesys/genesys.cpp:129 #: backend/gt68xx_low.h:138 backend/hp-option.c:3098 #, no-c-format msgid "Blue" msgstr "Azul" -#: backend/canon_dr.c:427 +#: backend/canon_dr.c:429 #, fuzzy, no-c-format msgid "Enhance Red" msgstr "Melhorias" -#: backend/canon_dr.c:428 +#: backend/canon_dr.c:430 #, fuzzy, no-c-format msgid "Enhance Green" msgstr "Melhorias" -#: backend/canon_dr.c:429 +#: backend/canon_dr.c:431 #, fuzzy, no-c-format msgid "Enhance Blue" msgstr "Melhorias" -#: backend/canon_dr.c:431 backend/epson.c:556 backend/epson.c:564 +#: backend/canon_dr.c:433 backend/epson.c:556 backend/epson.c:564 #: backend/epson.c:576 backend/epson.c:598 backend/epson2.c:165 #: backend/epson2.c:173 backend/epson2.c:185 backend/epson2.c:200 -#: backend/epson2.c:214 backend/fujitsu.c:701 -#: backend/genesys/genesys.cpp:109 backend/leo.c:109 +#: backend/epson2.c:214 backend/fujitsu.c:703 +#: backend/genesys/genesys.cpp:130 backend/leo.c:109 #: backend/matsushita.c:138 backend/matsushita.c:159 #: backend/matsushita.c:191 backend/matsushita.c:213 #: backend/snapscan-options.c:91 @@ -1587,44 +1590,48 @@ msgstr "Melhorias" msgid "None" msgstr "" -#: backend/canon_dr.c:432 backend/fujitsu.c:702 +#: backend/canon_dr.c:434 backend/fujitsu.c:704 #, no-c-format msgid "JPEG" msgstr "" -#: backend/canon_dr.c:2477 backend/fujitsu.c:4113 -#: backend/genesys/genesys.cpp:4126 backend/kvs1025_opt.c:910 +#: backend/canon_dr.c:2479 backend/fujitsu.c:4117 +#: backend/genesys/genesys.cpp:4168 backend/kvs1025_opt.c:910 #, no-c-format msgid "Software blank skip percentage" msgstr "Desconsiderar porcentagem branco" -#: backend/canon_dr.c:2478 backend/fujitsu.c:4114 +#: backend/canon_dr.c:2480 backend/fujitsu.c:4118 #, fuzzy, no-c-format msgid "Request driver to discard pages with low percentage of dark pixels" msgstr "" "Solicita ao driver para eliminar páginas com baixo número de pixels " "escuros" -#: backend/epson.c:491 backend/epson2.c:108 backend/magicolor.c:174 +#: backend/epson.c:491 backend/epson2.c:108 backend/epsonds.c:88 +#: backend/kodakaio.c:611 backend/magicolor.c:174 #, no-c-format msgid "Simplex" msgstr "" -#: backend/epson.c:492 backend/epson2.c:109 backend/kvs1025.h:50 -#: backend/kvs20xx_opt.c:204 backend/kvs40xx_opt.c:353 -#: backend/magicolor.c:175 backend/matsushita.h:218 +#: backend/epson.c:492 backend/epson2.c:109 backend/epsonds.c:89 +#: backend/kodakaio.c:612 backend/kvs1025.h:50 backend/kvs20xx_opt.c:204 +#: backend/kvs40xx_opt.c:353 backend/magicolor.c:175 +#: backend/matsushita.h:218 #, no-c-format msgid "Duplex" msgstr "" -#: backend/epson.c:502 backend/epson2.c:116 backend/pixma.c:937 +#: backend/epson.c:502 backend/epson2-ops.c:102 backend/epson2.c:116 +#: backend/epsonds-ops.c:33 backend/epsonds.h:63 backend/pixma/pixma.c:937 #, no-c-format msgid "Transparency Unit" msgstr "Unidade de Transparências" -#: backend/epson.c:503 backend/epson2.c:118 backend/magicolor.c:182 -#: backend/mustek.c:160 backend/pixma.c:925 backend/test.c:192 -#: backend/umax.c:183 +#: backend/epson.c:503 backend/epson2-ops.c:104 backend/epson2.c:118 +#: backend/epsonds-ops.c:34 backend/epsonds.c:96 backend/epsonds.h:64 +#: backend/kodakaio.c:618 backend/magicolor.c:182 backend/mustek.c:160 +#: backend/pixma/pixma.c:925 backend/test.c:192 backend/umax.c:183 #, no-c-format msgid "Automatic Document Feeder" msgstr "" @@ -1736,7 +1743,7 @@ msgstr "Impressoras de jacto de tinta" msgid "CRT monitors" msgstr "Monitores CRT" -#: backend/epson.c:656 backend/epson2.c:254 backend/fujitsu.c:685 +#: backend/epson.c:656 backend/epson2.c:254 backend/fujitsu.c:687 #: backend/hp-option.c:3229 backend/test.c:143 #, no-c-format msgid "Default" @@ -1800,8 +1807,8 @@ msgstr "A4" msgid "Max" msgstr "Máximo" -#: backend/epson.c:2813 backend/epson2.c:976 -#: backend/genesys/genesys.cpp:3893 backend/gt68xx.c:451 +#: backend/epson.c:2813 backend/epson2.c:976 backend/epsonds.c:629 +#: backend/genesys/genesys.cpp:3965 backend/gt68xx.c:451 #: backend/hp-option.c:2917 backend/kvs1025_opt.c:521 #: backend/kvs20xx_opt.c:171 backend/kvs40xx_opt.c:320 backend/ma1509.c:501 #: backend/matsushita.c:1084 backend/microtek2.h:598 backend/mustek.c:4215 @@ -1974,17 +1981,17 @@ msgstr "" msgid "Quick format" msgstr "" -#: backend/epson.c:3360 backend/epson2.c:1340 +#: backend/epson.c:3360 backend/epson2.c:1340 backend/epsonds.c:726 #, no-c-format msgid "Optional equipment" msgstr "" -#: backend/epson.c:3431 backend/epson2.c:1393 +#: backend/epson.c:3431 backend/epson2.c:1393 backend/epsonds.c:742 #, no-c-format msgid "Eject" msgstr "" -#: backend/epson.c:3432 backend/epson2.c:1394 +#: backend/epson.c:3432 backend/epson2.c:1394 backend/epsonds.c:743 #, no-c-format msgid "Eject the sheet in the ADF" msgstr "" @@ -1999,12 +2006,14 @@ msgstr "" msgid "Eject document after scanning" msgstr "" -#: backend/epson.c:3457 backend/epson2.c:1416 backend/magicolor.c:2420 +#: backend/epson.c:3457 backend/epson2.c:1416 backend/epsonds.c:758 +#: backend/kodakaio.c:2855 backend/magicolor.c:2420 #, no-c-format msgid "ADF Mode" msgstr "" -#: backend/epson.c:3459 backend/epson2.c:1418 backend/magicolor.c:2422 +#: backend/epson.c:3459 backend/epson2.c:1418 backend/epsonds.c:760 +#: backend/kodakaio.c:2857 backend/magicolor.c:2422 #, no-c-format msgid "Selects the ADF mode (simplex/duplex)" msgstr "" @@ -2049,16 +2058,16 @@ msgid "" "pressed to actually start the scan process." msgstr "" -#: backend/epson2.c:102 backend/pixma.c:409 -#, no-c-format -msgid "Infrared" -msgstr "" - -#: backend/epson2.c:117 +#: backend/epson2-ops.c:103 backend/epson2.c:117 #, no-c-format msgid "TPU8x10" msgstr "" +#: backend/epson2.c:102 backend/pixma/pixma.c:409 +#, no-c-format +msgid "Infrared" +msgstr "" + #: backend/epson2.c:136 #, fuzzy, no-c-format msgid "Positive Slide" @@ -2079,492 +2088,512 @@ msgstr "" msgid "User defined CCT profile" msgstr "Definido pelo utilizador" -#: backend/fujitsu.c:686 backend/hp-option.c:3330 backend/hp-option.c:3343 +#: backend/epsonds.c:750 +#, no-c-format +msgid "Load" +msgstr "" + +#: backend/epsonds.c:751 +#, no-c-format +msgid "Load a sheet in the ADF" +msgstr "" + +#: backend/epsonds.c:771 +#, fuzzy, no-c-format +msgid "ADF Skew Correction" +msgstr "Sem Correcção" + +#: backend/epsonds.c:773 +#, fuzzy, no-c-format +msgid "Enables ADF skew correction" +msgstr "Correcção do gamma" + +#: backend/fujitsu.c:688 backend/hp-option.c:3330 backend/hp-option.c:3343 #, no-c-format msgid "On" msgstr "" -#: backend/fujitsu.c:687 backend/hp-option.c:3162 backend/hp-option.c:3329 +#: backend/fujitsu.c:689 backend/hp-option.c:3162 backend/hp-option.c:3329 #: backend/hp-option.c:3342 #, no-c-format msgid "Off" msgstr "" -#: backend/fujitsu.c:689 +#: backend/fujitsu.c:691 #, no-c-format msgid "DTC" msgstr "" -#: backend/fujitsu.c:690 +#: backend/fujitsu.c:692 #, no-c-format msgid "SDTC" msgstr "" -#: backend/fujitsu.c:692 backend/teco1.c:1152 backend/teco1.c:1153 +#: backend/fujitsu.c:694 backend/teco1.c:1152 backend/teco1.c:1153 #: backend/teco2.c:1967 backend/teco2.c:1968 backend/teco3.c:977 #: backend/teco3.c:978 #, no-c-format msgid "Dither" msgstr "" -#: backend/fujitsu.c:693 +#: backend/fujitsu.c:695 #, no-c-format msgid "Diffusion" msgstr "" -#: backend/fujitsu.c:698 +#: backend/fujitsu.c:700 #, fuzzy, no-c-format msgid "White" msgstr "Nível de branco" -#: backend/fujitsu.c:699 +#: backend/fujitsu.c:701 #, fuzzy, no-c-format msgid "Black" msgstr "Nível de preto" -#: backend/fujitsu.c:704 +#: backend/fujitsu.c:706 #, no-c-format msgid "Continue" msgstr "" -#: backend/fujitsu.c:705 +#: backend/fujitsu.c:707 #, no-c-format msgid "Stop" msgstr "" -#: backend/fujitsu.c:707 +#: backend/fujitsu.c:709 #, no-c-format msgid "10mm" msgstr "" -#: backend/fujitsu.c:708 +#: backend/fujitsu.c:710 #, no-c-format msgid "15mm" msgstr "" -#: backend/fujitsu.c:709 +#: backend/fujitsu.c:711 #, no-c-format msgid "20mm" msgstr "" -#: backend/fujitsu.c:711 backend/hp-option.c:3048 +#: backend/fujitsu.c:713 backend/hp-option.c:3048 #, no-c-format msgid "Horizontal" msgstr "" -#: backend/fujitsu.c:712 +#: backend/fujitsu.c:714 #, no-c-format msgid "Horizontal bold" msgstr "" -#: backend/fujitsu.c:713 +#: backend/fujitsu.c:715 #, no-c-format msgid "Horizontal narrow" msgstr "" -#: backend/fujitsu.c:714 backend/hp-option.c:3047 +#: backend/fujitsu.c:716 backend/hp-option.c:3047 #, no-c-format msgid "Vertical" msgstr "" -#: backend/fujitsu.c:715 +#: backend/fujitsu.c:717 #, no-c-format msgid "Vertical bold" msgstr "" -#: backend/fujitsu.c:717 +#: backend/fujitsu.c:719 #, no-c-format msgid "Top to bottom" msgstr "" -#: backend/fujitsu.c:718 +#: backend/fujitsu.c:720 #, no-c-format msgid "Bottom to top" msgstr "" -#: backend/fujitsu.c:720 +#: backend/fujitsu.c:722 #, no-c-format msgid "Front" msgstr "" -#: backend/fujitsu.c:721 +#: backend/fujitsu.c:723 #, no-c-format msgid "Back" msgstr "" -#: backend/fujitsu.c:3144 backend/pixma_sane_options.c:145 +#: backend/fujitsu.c:3148 backend/pixma/pixma_sane_options.c:145 #, no-c-format msgid "Gamma function exponent" msgstr "" -#: backend/fujitsu.c:3145 backend/pixma_sane_options.c:146 +#: backend/fujitsu.c:3149 backend/pixma/pixma_sane_options.c:146 #, no-c-format msgid "Changes intensity of midtones" msgstr "" -#: backend/fujitsu.c:3194 +#: backend/fujitsu.c:3198 #, no-c-format msgid "RIF" msgstr "" -#: backend/fujitsu.c:3195 +#: backend/fujitsu.c:3199 #, fuzzy, no-c-format msgid "Reverse image format" msgstr "Inverte imagem" -#: backend/fujitsu.c:3212 +#: backend/fujitsu.c:3216 #, fuzzy, no-c-format msgid "Halftone type" msgstr "Simulação cinza padrão" -#: backend/fujitsu.c:3213 +#: backend/fujitsu.c:3217 #, no-c-format msgid "Control type of halftone filter" msgstr "" -#: backend/fujitsu.c:3234 +#: backend/fujitsu.c:3238 #, no-c-format msgid "Control pattern of halftone filter" msgstr "" -#: backend/fujitsu.c:3256 +#: backend/fujitsu.c:3260 #, no-c-format msgid "Outline" msgstr "" -#: backend/fujitsu.c:3257 +#: backend/fujitsu.c:3261 #, fuzzy, no-c-format msgid "Perform outline extraction" msgstr "Calibração rudimentar" -#: backend/fujitsu.c:3268 +#: backend/fujitsu.c:3272 #, no-c-format msgid "Emphasis" msgstr "" -#: backend/fujitsu.c:3269 +#: backend/fujitsu.c:3273 #, no-c-format msgid "Negative to smooth or positive to sharpen image" msgstr "" -#: backend/fujitsu.c:3287 +#: backend/fujitsu.c:3291 #, fuzzy, no-c-format msgid "Separation" msgstr "Saturação" -#: backend/fujitsu.c:3288 +#: backend/fujitsu.c:3292 #, no-c-format msgid "Enable automatic separation of image and text" msgstr "" -#: backend/fujitsu.c:3299 +#: backend/fujitsu.c:3303 #, no-c-format msgid "Mirroring" msgstr "" -#: backend/fujitsu.c:3300 +#: backend/fujitsu.c:3304 #, no-c-format msgid "Reflect output image horizontally" msgstr "" -#: backend/fujitsu.c:3317 +#: backend/fujitsu.c:3321 #, fuzzy, no-c-format msgid "White level follower" msgstr "Nível de branco para azul" -#: backend/fujitsu.c:3318 +#: backend/fujitsu.c:3322 #, fuzzy, no-c-format msgid "Control white level follower" msgstr "Contraste do canal azul" -#: backend/fujitsu.c:3336 +#: backend/fujitsu.c:3340 #, fuzzy, no-c-format msgid "BP filter" msgstr "Linhas em cor" -#: backend/fujitsu.c:3337 +#: backend/fujitsu.c:3341 #, no-c-format msgid "Improves quality of high resolution ball-point pen text" msgstr "" -#: backend/fujitsu.c:3353 backend/hp-option.h:73 +#: backend/fujitsu.c:3357 backend/hp-option.h:73 #, no-c-format msgid "Smoothing" msgstr "" -#: backend/fujitsu.c:3354 +#: backend/fujitsu.c:3358 #, no-c-format msgid "Enable smoothing for improved OCR" msgstr "" -#: backend/fujitsu.c:3370 +#: backend/fujitsu.c:3374 #, fuzzy, no-c-format msgid "Gamma curve" msgstr "Valor de 'gamma'" -#: backend/fujitsu.c:3371 +#: backend/fujitsu.c:3375 #, no-c-format msgid "Gamma curve, from light to dark, but upper two may not work" msgstr "" -#: backend/fujitsu.c:3393 backend/genesys/genesys.cpp:4187 -#: backend/pixma_sane_options.c:335 +#: backend/fujitsu.c:3397 backend/genesys/genesys.cpp:4229 +#: backend/pixma/pixma_sane_options.c:335 #, fuzzy, no-c-format msgid "Threshold curve" msgstr "Limiar de aquecimento" -#: backend/fujitsu.c:3394 +#: backend/fujitsu.c:3398 #, no-c-format msgid "" "Threshold curve, from light to dark, but upper two may not be linear" msgstr "" -#: backend/fujitsu.c:3416 +#: backend/fujitsu.c:3420 #, fuzzy, no-c-format msgid "Threshold white" msgstr "Valor do pixel-Threshold" -#: backend/fujitsu.c:3417 +#: backend/fujitsu.c:3421 #, no-c-format msgid "Set pixels equal to threshold to white instead of black" msgstr "" -#: backend/fujitsu.c:3433 backend/fujitsu.c:3434 +#: backend/fujitsu.c:3437 backend/fujitsu.c:3438 #, no-c-format msgid "Noise removal" msgstr "" -#: backend/fujitsu.c:3450 +#: backend/fujitsu.c:3454 #, no-c-format msgid "Matrix 5x5" msgstr "" -#: backend/fujitsu.c:3451 +#: backend/fujitsu.c:3455 #, no-c-format msgid "Remove 5 pixel square noise" msgstr "" -#: backend/fujitsu.c:3467 +#: backend/fujitsu.c:3471 #, no-c-format msgid "Matrix 4x4" msgstr "" -#: backend/fujitsu.c:3468 +#: backend/fujitsu.c:3472 #, no-c-format msgid "Remove 4 pixel square noise" msgstr "" -#: backend/fujitsu.c:3484 +#: backend/fujitsu.c:3488 #, no-c-format msgid "Matrix 3x3" msgstr "" -#: backend/fujitsu.c:3485 +#: backend/fujitsu.c:3489 #, no-c-format msgid "Remove 3 pixel square noise" msgstr "" -#: backend/fujitsu.c:3501 +#: backend/fujitsu.c:3505 #, no-c-format msgid "Matrix 2x2" msgstr "" -#: backend/fujitsu.c:3502 +#: backend/fujitsu.c:3506 #, no-c-format msgid "Remove 2 pixel square noise" msgstr "" -#: backend/fujitsu.c:3521 +#: backend/fujitsu.c:3525 #, no-c-format msgid "Variance" msgstr "" -#: backend/fujitsu.c:3522 +#: backend/fujitsu.c:3526 #, no-c-format msgid "Set SDTC variance rate (sensitivity), 0 equals 127" msgstr "" -#: backend/fujitsu.c:3555 +#: backend/fujitsu.c:3559 #, fuzzy, no-c-format msgid "Auto width detection" msgstr "Sem Correcção" -#: backend/fujitsu.c:3556 +#: backend/fujitsu.c:3560 #, no-c-format msgid "Scanner detects paper sides. May reduce scanning speed." msgstr "" -#: backend/fujitsu.c:3573 +#: backend/fujitsu.c:3577 #, fuzzy, no-c-format msgid "Auto length detection" msgstr "Sem Correcção" -#: backend/fujitsu.c:3574 +#: backend/fujitsu.c:3578 #, no-c-format msgid "Scanner detects paper lower edge. May confuse some frontends." msgstr "" -#: backend/fujitsu.c:3600 +#: backend/fujitsu.c:3604 #, fuzzy, no-c-format msgid "Compression" msgstr "Compressão JPEG" -#: backend/fujitsu.c:3601 +#: backend/fujitsu.c:3605 #, no-c-format msgid "Enable compressed data. May crash your front-end program" msgstr "" -#: backend/fujitsu.c:3621 +#: backend/fujitsu.c:3625 #, no-c-format msgid "Compression argument" msgstr "" -#: backend/fujitsu.c:3622 +#: backend/fujitsu.c:3626 #, no-c-format msgid "" "Level of JPEG compression. 1 is small file, 7 is large file. 0 (default) " "is same as 4" msgstr "" -#: backend/fujitsu.c:3652 +#: backend/fujitsu.c:3656 #, no-c-format msgid "DF action" msgstr "" -#: backend/fujitsu.c:3653 +#: backend/fujitsu.c:3657 #, no-c-format msgid "Action following double feed error" msgstr "" -#: backend/fujitsu.c:3669 +#: backend/fujitsu.c:3673 #, no-c-format msgid "DF skew" msgstr "" -#: backend/fujitsu.c:3670 +#: backend/fujitsu.c:3674 #, fuzzy, no-c-format msgid "Enable double feed error due to skew" msgstr "Liga / Desliga Modo de detecção de alimentação" -#: backend/fujitsu.c:3688 +#: backend/fujitsu.c:3692 #, no-c-format msgid "DF thickness" msgstr "" -#: backend/fujitsu.c:3689 +#: backend/fujitsu.c:3693 #, fuzzy, no-c-format msgid "Enable double feed error due to paper thickness" msgstr "Liga / Desliga Modo de detecção de alimentação" -#: backend/fujitsu.c:3707 +#: backend/fujitsu.c:3711 #, no-c-format msgid "DF length" msgstr "" -#: backend/fujitsu.c:3708 +#: backend/fujitsu.c:3712 #, fuzzy, no-c-format msgid "Enable double feed error due to paper length" msgstr "Liga / Desliga Modo de detecção de alimentação" -#: backend/fujitsu.c:3731 +#: backend/fujitsu.c:3735 #, no-c-format msgid "DF length difference" msgstr "" -#: backend/fujitsu.c:3732 +#: backend/fujitsu.c:3736 #, no-c-format msgid "Difference in page length to trigger double feed error" msgstr "" -#: backend/fujitsu.c:3755 +#: backend/fujitsu.c:3759 #, no-c-format msgid "DF recovery mode" msgstr "" -#: backend/fujitsu.c:3756 +#: backend/fujitsu.c:3760 #, fuzzy, no-c-format msgid "Request scanner to reverse feed on paper jam" msgstr "Solicita ao driver para remover digitalmente bordas das páginas" -#: backend/fujitsu.c:3775 +#: backend/fujitsu.c:3779 #, no-c-format msgid "Paper protection" msgstr "" -#: backend/fujitsu.c:3776 +#: backend/fujitsu.c:3780 #, no-c-format msgid "Request scanner to predict jams in the ADF" msgstr "" -#: backend/fujitsu.c:3795 +#: backend/fujitsu.c:3799 #, fuzzy, no-c-format msgid "Advanced paper protection" msgstr "Imprimir opções" -#: backend/fujitsu.c:3796 +#: backend/fujitsu.c:3800 #, no-c-format msgid "Request scanner to predict jams in the ADF using improved sensors" msgstr "" -#: backend/fujitsu.c:3815 +#: backend/fujitsu.c:3819 #, fuzzy, no-c-format msgid "Staple detection" msgstr "Sem Correcção" -#: backend/fujitsu.c:3816 +#: backend/fujitsu.c:3820 #, no-c-format msgid "Request scanner to detect jams in the ADF caused by staples" msgstr "" -#: backend/fujitsu.c:3835 +#: backend/fujitsu.c:3839 #, no-c-format msgid "Background color" msgstr "" -#: backend/fujitsu.c:3836 +#: backend/fujitsu.c:3840 #, no-c-format msgid "" "Set color of background for scans. May conflict with overscan option" msgstr "" -#: backend/fujitsu.c:3856 +#: backend/fujitsu.c:3860 #, fuzzy, no-c-format msgid "Dropout color" msgstr "Cor da lâmpada" -#: backend/fujitsu.c:3857 +#: backend/fujitsu.c:3861 #, no-c-format msgid "" "One-pass scanners use only one color during gray or binary scanning, " "useful for colored paper or ink" msgstr "" -#: backend/fujitsu.c:3880 +#: backend/fujitsu.c:3884 #, no-c-format msgid "Buffer mode" msgstr "" -#: backend/fujitsu.c:3881 +#: backend/fujitsu.c:3885 #, no-c-format msgid "Request scanner to read pages quickly from ADF into internal memory" msgstr "" -#: backend/fujitsu.c:3900 +#: backend/fujitsu.c:3904 #, no-c-format msgid "Prepick" msgstr "" -#: backend/fujitsu.c:3901 +#: backend/fujitsu.c:3905 #, no-c-format msgid "Request scanner to grab next page from ADF" msgstr "" -#: backend/fujitsu.c:3920 +#: backend/fujitsu.c:3924 #, no-c-format msgid "Overscan" msgstr "" -#: backend/fujitsu.c:3921 +#: backend/fujitsu.c:3925 #, no-c-format msgid "" "Collect a few mm of background on top side of scan, before paper enters " @@ -2572,65 +2601,65 @@ msgid "" "collection on remaining sides. May conflict with bgcolor option" msgstr "" -#: backend/fujitsu.c:3939 +#: backend/fujitsu.c:3943 #, no-c-format msgid "Sleep timer" msgstr "" -#: backend/fujitsu.c:3940 +#: backend/fujitsu.c:3944 #, no-c-format msgid "" "Time in minutes until the internal power supply switches to sleep mode" msgstr "" -#: backend/fujitsu.c:3958 +#: backend/fujitsu.c:3962 #, fuzzy, no-c-format msgid "Off timer" msgstr "Lâmpada acesa" -#: backend/fujitsu.c:3959 +#: backend/fujitsu.c:3963 #, no-c-format msgid "" "Time in minutes until the internal power supply switches the scanner " "off. Will be rounded to nearest 15 minutes. Zero means never power off." msgstr "" -#: backend/fujitsu.c:3977 +#: backend/fujitsu.c:3981 #, fuzzy, no-c-format msgid "Duplex offset" msgstr "Deslocamento do azul" -#: backend/fujitsu.c:3978 +#: backend/fujitsu.c:3982 #, no-c-format msgid "Adjust front/back offset" msgstr "" -#: backend/fujitsu.c:3995 backend/plustek.c:1025 backend/umax_pp.c:800 +#: backend/fujitsu.c:3999 backend/plustek.c:1025 backend/umax_pp.c:794 #, no-c-format msgid "Green offset" msgstr "Deslocamento do verde" -#: backend/fujitsu.c:3996 +#: backend/fujitsu.c:4000 #, fuzzy, no-c-format msgid "Adjust green/red offset" msgstr "Deslocamento do verde" -#: backend/fujitsu.c:4013 backend/plustek.c:1041 backend/umax_pp.c:812 +#: backend/fujitsu.c:4017 backend/plustek.c:1041 backend/umax_pp.c:806 #, no-c-format msgid "Blue offset" msgstr "Deslocamento do azul" -#: backend/fujitsu.c:4014 +#: backend/fujitsu.c:4018 #, fuzzy, no-c-format msgid "Adjust blue/red offset" msgstr "Deslocamento do canal azul" -#: backend/fujitsu.c:4027 +#: backend/fujitsu.c:4031 #, no-c-format msgid "Low Memory" msgstr "" -#: backend/fujitsu.c:4028 +#: backend/fujitsu.c:4032 #, no-c-format msgid "" "Limit driver memory usage for use in embedded systems. Causes some " @@ -2639,524 +2668,517 @@ msgid "" "only be used with custom front-end software." msgstr "" -#: backend/fujitsu.c:4043 +#: backend/fujitsu.c:4047 #, fuzzy, no-c-format msgid "Duplex side" msgstr "Digitalização completa" -#: backend/fujitsu.c:4044 +#: backend/fujitsu.c:4048 #, no-c-format msgid "" "Tells which side (0=front, 1=back) of a duplex scan the next call to " "sane_read will return." msgstr "" -#: backend/fujitsu.c:4055 +#: backend/fujitsu.c:4059 #, no-c-format msgid "Hardware deskew and crop" msgstr "" -#: backend/fujitsu.c:4056 +#: backend/fujitsu.c:4060 #, fuzzy, no-c-format msgid "Request scanner to rotate and crop pages digitally." msgstr "Solicita ao driver para rotacionar digitalmente páginas inclinadas" -#: backend/fujitsu.c:4067 backend/kvs1025_opt.c:871 +#: backend/fujitsu.c:4071 backend/kvs1025_opt.c:871 #, no-c-format msgid "Software deskew" msgstr "Alinhamento - Deskew" -#: backend/fujitsu.c:4068 +#: backend/fujitsu.c:4072 #, fuzzy, no-c-format msgid "Request driver to rotate skewed pages digitally." msgstr "Solicita ao driver para rotacionar digitalmente páginas inclinadas" -#: backend/fujitsu.c:4080 backend/kvs1025_opt.c:880 +#: backend/fujitsu.c:4084 backend/kvs1025_opt.c:880 #, no-c-format msgid "Software despeckle diameter" msgstr "Diâmetro despeckle" -#: backend/fujitsu.c:4081 +#: backend/fujitsu.c:4085 #, fuzzy, no-c-format msgid "Maximum diameter of lone dots to remove from scan." msgstr "" "Diâmetro máximo de pontos isolados a serem removidos da digitalização" -#: backend/fujitsu.c:4100 backend/genesys/genesys.cpp:4117 +#: backend/fujitsu.c:4104 backend/genesys/genesys.cpp:4159 #, fuzzy, no-c-format msgid "Software crop" msgstr "Crop automático" -#: backend/fujitsu.c:4101 +#: backend/fujitsu.c:4105 #, fuzzy, no-c-format msgid "Request driver to remove border from pages digitally." msgstr "Solicita ao driver para remover digitalmente bordas das páginas" -#: backend/fujitsu.c:4130 +#: backend/fujitsu.c:4134 #, no-c-format msgid "Halt on Cancel" msgstr "" -#: backend/fujitsu.c:4131 +#: backend/fujitsu.c:4135 #, no-c-format msgid "" "Request driver to halt the paper feed instead of eject during a cancel." msgstr "" -#: backend/fujitsu.c:4142 +#: backend/fujitsu.c:4146 #, fuzzy, no-c-format msgid "Endorser Options" msgstr "Imprimir opções" -#: backend/fujitsu.c:4143 +#: backend/fujitsu.c:4147 #, no-c-format msgid "Controls for endorser unit" msgstr "" -#: backend/fujitsu.c:4154 +#: backend/fujitsu.c:4158 #, no-c-format msgid "Endorser" msgstr "" -#: backend/fujitsu.c:4155 +#: backend/fujitsu.c:4159 #, no-c-format msgid "Enable endorser unit" msgstr "" -#: backend/fujitsu.c:4170 +#: backend/fujitsu.c:4174 #, no-c-format msgid "Endorser bits" msgstr "" -#: backend/fujitsu.c:4171 +#: backend/fujitsu.c:4175 #, no-c-format msgid "Determines maximum endorser counter value." msgstr "" -#: backend/fujitsu.c:4196 +#: backend/fujitsu.c:4200 #, no-c-format msgid "Endorser value" msgstr "" -#: backend/fujitsu.c:4197 +#: backend/fujitsu.c:4201 #, no-c-format msgid "Initial endorser counter value." msgstr "" -#: backend/fujitsu.c:4220 +#: backend/fujitsu.c:4224 #, no-c-format msgid "Endorser step" msgstr "" -#: backend/fujitsu.c:4221 +#: backend/fujitsu.c:4225 #, no-c-format msgid "Change endorser counter value by this much for each page." msgstr "" -#: backend/fujitsu.c:4244 +#: backend/fujitsu.c:4248 #, no-c-format msgid "Endorser Y" msgstr "" -#: backend/fujitsu.c:4245 +#: backend/fujitsu.c:4249 #, no-c-format msgid "Endorser print offset from top of paper." msgstr "" -#: backend/fujitsu.c:4270 +#: backend/fujitsu.c:4274 #, no-c-format msgid "Endorser font" msgstr "" -#: backend/fujitsu.c:4271 +#: backend/fujitsu.c:4275 #, no-c-format msgid "Endorser printing font." msgstr "" -#: backend/fujitsu.c:4300 +#: backend/fujitsu.c:4304 #, fuzzy, no-c-format msgid "Endorser direction" msgstr "Calibração rudimentar" -#: backend/fujitsu.c:4301 +#: backend/fujitsu.c:4305 #, no-c-format msgid "Endorser printing direction." msgstr "" -#: backend/fujitsu.c:4325 +#: backend/fujitsu.c:4329 #, no-c-format msgid "Endorser side" msgstr "" -#: backend/fujitsu.c:4326 +#: backend/fujitsu.c:4330 #, no-c-format msgid "Endorser printing side, requires hardware support to change" msgstr "" -#: backend/fujitsu.c:4351 +#: backend/fujitsu.c:4355 #, no-c-format msgid "Endorser string" msgstr "" -#: backend/fujitsu.c:4352 +#: backend/fujitsu.c:4356 #, no-c-format msgid "" "Endorser alphanumeric print format. %05ud or %08ud at the end will be " "replaced by counter value." msgstr "" -#: backend/fujitsu.c:4379 +#: backend/fujitsu.c:4383 #, no-c-format msgid "Top edge" msgstr "" -#: backend/fujitsu.c:4380 +#: backend/fujitsu.c:4384 #, no-c-format msgid "Paper is pulled partly into ADF" msgstr "" -#: backend/fujitsu.c:4391 +#: backend/fujitsu.c:4395 #, no-c-format msgid "A3 paper" msgstr "" -#: backend/fujitsu.c:4392 +#: backend/fujitsu.c:4396 #, no-c-format msgid "A3 paper detected" msgstr "" -#: backend/fujitsu.c:4403 +#: backend/fujitsu.c:4407 #, no-c-format msgid "B4 paper" msgstr "" -#: backend/fujitsu.c:4404 +#: backend/fujitsu.c:4408 #, no-c-format msgid "B4 paper detected" msgstr "" -#: backend/fujitsu.c:4415 +#: backend/fujitsu.c:4419 #, no-c-format msgid "A4 paper" msgstr "" -#: backend/fujitsu.c:4416 +#: backend/fujitsu.c:4420 #, no-c-format msgid "A4 paper detected" msgstr "" -#: backend/fujitsu.c:4427 +#: backend/fujitsu.c:4431 #, no-c-format msgid "B5 paper" msgstr "" -#: backend/fujitsu.c:4428 +#: backend/fujitsu.c:4432 #, no-c-format msgid "B5 paper detected" msgstr "" -#: backend/fujitsu.c:4451 +#: backend/fujitsu.c:4455 #, no-c-format msgid "OMR or DF" msgstr "" -#: backend/fujitsu.c:4452 +#: backend/fujitsu.c:4456 #, fuzzy, no-c-format msgid "OMR or double feed detected" msgstr "Detecção de dupla alimentação" -#: backend/fujitsu.c:4475 +#: backend/fujitsu.c:4479 #, no-c-format msgid "Power saving" msgstr "" -#: backend/fujitsu.c:4476 +#: backend/fujitsu.c:4480 #, no-c-format msgid "Scanner in power saving mode" msgstr "" -#: backend/fujitsu.c:4499 +#: backend/fujitsu.c:4503 #, fuzzy, no-c-format msgid "Manual feed" msgstr "Modo de Alimentação manual" -#: backend/fujitsu.c:4500 +#: backend/fujitsu.c:4504 #, fuzzy, no-c-format msgid "Manual feed selected" msgstr "Modo de Alimentação manual" -#: backend/fujitsu.c:4523 +#: backend/fujitsu.c:4527 #, no-c-format msgid "Function" msgstr "" -#: backend/fujitsu.c:4524 +#: backend/fujitsu.c:4528 #, no-c-format msgid "Function character on screen" msgstr "" -#: backend/fujitsu.c:4535 +#: backend/fujitsu.c:4539 #, no-c-format msgid "Ink low" msgstr "" -#: backend/fujitsu.c:4536 +#: backend/fujitsu.c:4540 #, no-c-format msgid "Imprinter ink running low" msgstr "" -#: backend/fujitsu.c:4547 +#: backend/fujitsu.c:4551 #, fuzzy, no-c-format msgid "Double feed" msgstr "Detecção de dupla alimentação" -#: backend/fujitsu.c:4548 +#: backend/fujitsu.c:4552 #, fuzzy, no-c-format msgid "Double feed detected" msgstr "Detecção de dupla alimentação" -#: backend/fujitsu.c:4559 +#: backend/fujitsu.c:4563 #, no-c-format msgid "Error code" msgstr "" -#: backend/fujitsu.c:4560 +#: backend/fujitsu.c:4564 #, no-c-format msgid "Hardware error code" msgstr "" -#: backend/fujitsu.c:4571 +#: backend/fujitsu.c:4575 #, no-c-format msgid "Skew angle" msgstr "" -#: backend/fujitsu.c:4572 +#: backend/fujitsu.c:4576 #, no-c-format msgid "Requires black background for scanning" msgstr "" -#: backend/fujitsu.c:4583 +#: backend/fujitsu.c:4587 #, no-c-format msgid "Ink remaining" msgstr "" -#: backend/fujitsu.c:4584 +#: backend/fujitsu.c:4588 #, fuzzy, no-c-format msgid "Imprinter ink level" msgstr "Nível de branco" -#: backend/fujitsu.c:4595 +#: backend/fujitsu.c:4599 #, fuzzy, no-c-format msgid "Density" msgstr "Intensidade do vermelho" -#: backend/fujitsu.c:4596 +#: backend/fujitsu.c:4600 #, no-c-format msgid "Density dial" msgstr "" -#: backend/fujitsu.c:4607 backend/fujitsu.c:4608 +#: backend/fujitsu.c:4611 backend/fujitsu.c:4612 #, fuzzy, no-c-format msgid "Duplex switch" msgstr "Digitalização completa" -#: backend/genesys/genesys.cpp:4118 +#: backend/genesys/genesys.cpp:4160 #, fuzzy, no-c-format msgid "Request backend to remove border from pages digitally" msgstr "Solicita ao driver para remover digitalmente bordas das páginas" -#: backend/genesys/genesys.cpp:4127 backend/kvs1025_opt.c:912 +#: backend/genesys/genesys.cpp:4169 backend/kvs1025_opt.c:912 #, no-c-format msgid "Request driver to discard pages with low numbers of dark pixels" msgstr "" "Solicita ao driver para eliminar páginas com baixo número de pixels " "escuros" -#: backend/genesys/genesys.cpp:4137 backend/kvs1025_opt.c:892 +#: backend/genesys/genesys.cpp:4179 backend/kvs1025_opt.c:892 #, fuzzy, no-c-format msgid "Software derotate" msgstr "Alinhamento - Deskew" -#: backend/genesys/genesys.cpp:4138 backend/kvs1025_opt.c:894 +#: backend/genesys/genesys.cpp:4180 backend/kvs1025_opt.c:894 #, fuzzy, no-c-format msgid "Request driver to detect and correct 90 degree image rotation" msgstr "Solicita ao driver para remover digitalmente bordas das páginas" -#: backend/genesys/genesys.cpp:4168 backend/pixma_sane_options.c:314 +#: backend/genesys/genesys.cpp:4210 backend/pixma/pixma_sane_options.c:314 #, no-c-format msgid "Extras" msgstr "" -#: backend/genesys/genesys.cpp:4188 backend/pixma_sane_options.c:336 +#: backend/genesys/genesys.cpp:4230 backend/pixma/pixma_sane_options.c:336 #, no-c-format msgid "Dynamic threshold curve, from light to dark, normally 50-65" msgstr "" -#: backend/genesys/genesys.cpp:4197 -#, no-c-format -msgid "Disable dynamic lineart" -msgstr "" - -#: backend/genesys/genesys.cpp:4199 -#, no-c-format -msgid "" -"Disable use of a software adaptive algorithm to generate lineart relying " -"instead on hardware lineart." -msgstr "" - -#: backend/genesys/genesys.cpp:4215 +#: backend/genesys/genesys.cpp:4240 #, no-c-format msgid "Disable interpolation" msgstr "" -#: backend/genesys/genesys.cpp:4218 +#: backend/genesys/genesys.cpp:4243 #, no-c-format msgid "" "When using high resolutions where the horizontal resolution is smaller " "than the vertical resolution this disables horizontal interpolation." msgstr "" -#: backend/genesys/genesys.cpp:4227 +#: backend/genesys/genesys.cpp:4252 #, fuzzy, no-c-format msgid "Color filter" msgstr "Linhas em cor" -#: backend/genesys/genesys.cpp:4230 +#: backend/genesys/genesys.cpp:4255 #, no-c-format msgid "When using gray or lineart this option selects the used color." msgstr "" -#: backend/genesys/genesys.cpp:4254 +#: backend/genesys/genesys.cpp:4279 #, fuzzy, no-c-format msgid "Calibration file" msgstr "Calibração" -#: backend/genesys/genesys.cpp:4255 +#: backend/genesys/genesys.cpp:4280 #, fuzzy, no-c-format msgid "Specify the calibration file to use" msgstr "Definine o modo de calibração" -#: backend/genesys/genesys.cpp:4272 +#: backend/genesys/genesys.cpp:4297 #, fuzzy, no-c-format msgid "Calibration cache expiration time" msgstr "Modo de calibração" -#: backend/genesys/genesys.cpp:4273 +#: backend/genesys/genesys.cpp:4298 #, no-c-format msgid "" "Time (in minutes) before a cached calibration expires. A value of 0 " "means cache is not used. A negative value means cache never expires." msgstr "" -#: backend/genesys/genesys.cpp:4283 +#: backend/genesys/genesys.cpp:4308 #, fuzzy, no-c-format msgid "Lamp off time" msgstr "Lâmpada acesa" -#: backend/genesys/genesys.cpp:4286 +#: backend/genesys/genesys.cpp:4311 #, no-c-format msgid "" "The lamp will be turned off after the given time (in minutes). A value " "of 0 means, that the lamp won't be turned off." msgstr "" -#: backend/genesys/genesys.cpp:4296 +#: backend/genesys/genesys.cpp:4321 #, fuzzy, no-c-format msgid "Lamp off during scan" msgstr "Calibração rudimentar" -#: backend/genesys/genesys.cpp:4297 +#: backend/genesys/genesys.cpp:4322 #, no-c-format msgid "The lamp will be turned off during scan. " msgstr "" -#: backend/genesys/genesys.cpp:4324 backend/genesys/genesys.cpp:4325 +#: backend/genesys/genesys.cpp:4349 backend/genesys/genesys.cpp:4350 #, no-c-format msgid "File button" msgstr "" -#: backend/genesys/genesys.cpp:4369 backend/genesys/genesys.cpp:4370 +#: backend/genesys/genesys.cpp:4394 backend/genesys/genesys.cpp:4395 #, no-c-format msgid "OCR button" msgstr "" -#: backend/genesys/genesys.cpp:4381 backend/genesys/genesys.cpp:4382 +#: backend/genesys/genesys.cpp:4406 backend/genesys/genesys.cpp:4407 #, no-c-format msgid "Power button" msgstr "" -#: backend/genesys/genesys.cpp:4393 backend/genesys/genesys.cpp:4394 +#: backend/genesys/genesys.cpp:4418 backend/genesys/genesys.cpp:4419 #, fuzzy, no-c-format msgid "Extra button" msgstr "Origem da digitalização" -#: backend/genesys/genesys.cpp:4405 backend/gt68xx.c:755 +#: backend/genesys/genesys.cpp:4430 backend/gt68xx.c:755 #, fuzzy, no-c-format msgid "Needs calibration" msgstr "Calibração rudimentar" -#: backend/genesys/genesys.cpp:4406 backend/gt68xx.c:756 +#: backend/genesys/genesys.cpp:4431 backend/gt68xx.c:756 backend/p5.c:1928 #, fuzzy, no-c-format msgid "The scanner needs calibration for the current settings" msgstr "Calibração rudimentar apenas na primeira digitalização" -#: backend/genesys/genesys.cpp:4417 backend/gt68xx.c:780 -#: backend/gt68xx.c:781 backend/pixma_sane_options.c:226 -#: backend/plustek.c:1080 +#: backend/genesys/genesys.cpp:4442 backend/gt68xx.c:780 +#: backend/gt68xx.c:781 backend/p5.c:1937 backend/p5.c:1938 +#: backend/pixma/pixma_sane_options.c:226 backend/plustek.c:1080 #, fuzzy, no-c-format msgid "Buttons" msgstr "Estado do botão" -#: backend/genesys/genesys.cpp:4426 backend/gt68xx.c:787 -#: backend/hp5400_sane.c:392 backend/hp-option.h:97 backend/niash.c:726 -#: backend/plustek.c:941 +#: backend/genesys/genesys.cpp:4451 backend/gt68xx.c:787 +#: backend/hp-option.h:97 backend/hp5400_sane.c:392 backend/niash.c:726 +#: backend/p5.c:1945 backend/plustek.c:941 #, fuzzy, no-c-format msgid "Calibrate" msgstr "Calibração" -#: backend/genesys/genesys.cpp:4428 backend/gt68xx.c:789 +#: backend/genesys/genesys.cpp:4453 backend/gt68xx.c:789 backend/p5.c:1947 #, fuzzy, no-c-format msgid "Start calibration using special sheet" msgstr "Calibração rudimentar" -#: backend/genesys/genesys.cpp:4440 backend/gt68xx.c:802 +#: backend/genesys/genesys.cpp:4465 backend/gt68xx.c:802 backend/p5.c:1958 #, fuzzy, no-c-format msgid "Clear calibration" msgstr "Calibração rudimentar" -#: backend/genesys/genesys.cpp:4441 backend/gt68xx.c:803 +#: backend/genesys/genesys.cpp:4466 backend/gt68xx.c:803 backend/p5.c:1960 #, fuzzy, no-c-format msgid "Clear calibration cache" msgstr "Modo de calibração" -#: backend/genesys/genesys.cpp:4451 +#: backend/genesys/genesys.cpp:4476 #, fuzzy, no-c-format msgid "Force calibration" msgstr "Calibração rudimentar" -#: backend/genesys/genesys.cpp:4452 +#: backend/genesys/genesys.cpp:4477 #, no-c-format msgid "Force calibration ignoring all and any calibration caches" msgstr "" -#: backend/genesys/genesys.cpp:4462 +#: backend/genesys/genesys.cpp:4487 #, fuzzy, no-c-format msgid "Ignore internal offsets" msgstr "Deslocamento do verde" -#: backend/genesys/genesys.cpp:4464 +#: backend/genesys/genesys.cpp:4489 #, no-c-format msgid "" "Acquires the image including the internal calibration areas of the " "scanner" msgstr "" -#: backend/gt68xx.c:149 backend/ma1509.c:108 backend/mustek.c:164 -#: backend/snapscan-options.c:87 backend/umax.c:182 +#: backend/genesys/genesys.h:79 backend/gt68xx.c:149 backend/ma1509.c:108 +#: backend/mustek.c:164 backend/snapscan-options.c:87 backend/umax.c:182 #, no-c-format msgid "Transparency Adapter" msgstr "Adaptador de Transparências" +#: backend/genesys/genesys.h:80 +#, fuzzy, no-c-format +msgid "Transparency Adapter Infrared" +msgstr "Adaptador de Transparências" + #: backend/gt68xx.c:470 #, no-c-format msgid "Gray mode color" @@ -3258,6 +3280,304 @@ msgstr "Valor de 'gamma'" msgid "Sets the gamma value of all channels." msgstr "Define o valor de 'gamma' em todos os canais." +#: backend/hp-option.c:2987 +#, fuzzy, no-c-format +msgid "Advanced Options" +msgstr "Imprimir opções" + +#: backend/hp-option.c:3044 +#, no-c-format +msgid "Coarse" +msgstr "" + +#: backend/hp-option.c:3045 +#, fuzzy, no-c-format +msgid "Fine" +msgstr "Nome do ficheiro" + +#: backend/hp-option.c:3046 +#, no-c-format +msgid "Bayer" +msgstr "" + +#: backend/hp-option.c:3049 backend/hp-option.c:3100 +#, no-c-format +msgid "Custom" +msgstr "" + +#: backend/hp-option.c:3090 backend/hp-option.c:3146 +#: backend/hp-option.c:3161 +#, no-c-format +msgid "Auto" +msgstr "Automático" + +#: backend/hp-option.c:3091 +#, no-c-format +msgid "NTSC RGB" +msgstr "" + +#: backend/hp-option.c:3092 +#, no-c-format +msgid "XPA RGB" +msgstr "" + +#: backend/hp-option.c:3093 +#, no-c-format +msgid "Pass-through" +msgstr "" + +#: backend/hp-option.c:3094 +#, no-c-format +msgid "NTSC Gray" +msgstr "NTSC cinzento" + +#: backend/hp-option.c:3095 +#, no-c-format +msgid "XPA Gray" +msgstr "XPA cinzento" + +#: backend/hp-option.c:3147 +#, no-c-format +msgid "Slow" +msgstr "Lento" + +#: backend/hp-option.c:3148 backend/hp-option.c:3255 +#: backend/kvs40xx_opt.c:230 backend/matsushita.c:244 backend/mustek.c:149 +#: backend/plustek.c:234 backend/plustek_pp.c:203 backend/u12.c:155 +#, no-c-format +msgid "Normal" +msgstr "Normal" + +#: backend/hp-option.c:3149 +#, no-c-format +msgid "Fast" +msgstr "Rápido" + +#: backend/hp-option.c:3150 +#, no-c-format +msgid "Extra Fast" +msgstr "" + +#: backend/hp-option.c:3163 +#, no-c-format +msgid "2-pixel" +msgstr "" + +#: backend/hp-option.c:3164 +#, no-c-format +msgid "4-pixel" +msgstr "" + +#: backend/hp-option.c:3165 +#, no-c-format +msgid "8-pixel" +msgstr "" + +#: backend/hp-option.c:3176 +#, no-c-format +msgid "Print" +msgstr "" + +#: backend/hp-option.c:3177 backend/hp3900_sane.c:427 +#: backend/hp3900_sane.c:1019 +#, no-c-format +msgid "Slide" +msgstr "" + +#: backend/hp-option.c:3178 +#, no-c-format +msgid "Film-strip" +msgstr "" + +#: backend/hp-option.c:3256 backend/hp5590.c:93 +#, no-c-format +msgid "ADF" +msgstr "" + +#: backend/hp-option.c:3257 +#, no-c-format +msgid "XPA" +msgstr "" + +#: backend/hp-option.c:3331 backend/hp-option.c:3344 +#, no-c-format +msgid "Conditional" +msgstr "" + +#: backend/hp-option.c:3417 +#, no-c-format +msgid "Experiment" +msgstr "" + +#: backend/hp-option.h:60 +#, no-c-format +msgid "Sharpening" +msgstr "" + +#: backend/hp-option.h:61 +#, no-c-format +msgid "Set sharpening value." +msgstr "" + +#: backend/hp-option.h:66 +#, no-c-format +msgid "Auto Threshold" +msgstr "Limiar de aquecimento" + +#: backend/hp-option.h:68 +#, no-c-format +msgid "Enable automatic determination of threshold for line-art scans." +msgstr "" + +#: backend/hp-option.h:74 +#, no-c-format +msgid "Select smoothing filter." +msgstr "" + +#: backend/hp-option.h:79 +#, no-c-format +msgid "Unload media after scan" +msgstr "" + +#: backend/hp-option.h:80 +#, no-c-format +msgid "Unloads the media after a scan." +msgstr "" + +#: backend/hp-option.h:85 +#, fuzzy, no-c-format +msgid "Change document" +msgstr "Melhorias" + +#: backend/hp-option.h:86 +#, no-c-format +msgid "Change Document." +msgstr "" + +#: backend/hp-option.h:91 +#, no-c-format +msgid "Unload" +msgstr "" + +#: backend/hp-option.h:92 +#, no-c-format +msgid "Unload Document." +msgstr "" + +#: backend/hp-option.h:98 +#, fuzzy, no-c-format +msgid "Start calibration process." +msgstr "Calibração rudimentar" + +#: backend/hp-option.h:103 +#, no-c-format +msgid "Media" +msgstr "" + +#: backend/hp-option.h:104 +#, no-c-format +msgid "Set type of media." +msgstr "" + +#: backend/hp-option.h:109 +#, no-c-format +msgid "Exposure time" +msgstr "" + +#: backend/hp-option.h:111 +#, no-c-format +msgid "" +"A longer exposure time lets the scanner collect more light. Suggested " +"use is 175% for prints, 150% for normal slides and \"Negative\" for " +"negative film. For dark (underexposed) images you can increase this " +"value." +msgstr "" + +#: backend/hp-option.h:119 backend/hp-option.h:126 +#, fuzzy, no-c-format +msgid "Color Matrix" +msgstr "Linhas em cor" + +#: backend/hp-option.h:121 +#, fuzzy, no-c-format +msgid "Set the scanner's color matrix." +msgstr "Contraste do canal vermelho." + +#: backend/hp-option.h:127 +#, no-c-format +msgid "Custom color matrix." +msgstr "" + +#: backend/hp-option.h:132 +#, fuzzy, no-c-format +msgid "Mono Color Matrix" +msgstr "Linhas em cor" + +#: backend/hp-option.h:133 +#, no-c-format +msgid "Custom color matrix for grayscale scans." +msgstr "" + +#: backend/hp-option.h:138 +#, no-c-format +msgid "Mirror horizontal" +msgstr "" + +#: backend/hp-option.h:139 +#, no-c-format +msgid "Mirror image horizontally." +msgstr "" + +#: backend/hp-option.h:144 +#, no-c-format +msgid "Mirror vertical" +msgstr "" + +#: backend/hp-option.h:145 +#, no-c-format +msgid "Mirror image vertically." +msgstr "" + +#: backend/hp-option.h:150 +#, fuzzy, no-c-format +msgid "Update options" +msgstr "Imprimir opções" + +#: backend/hp-option.h:151 +#, fuzzy, no-c-format +msgid "Update options." +msgstr "Imprimir opções" + +#: backend/hp-option.h:156 +#, no-c-format +msgid "8 bit output" +msgstr "" + +#: backend/hp-option.h:158 +#, no-c-format +msgid "Use bit depth greater eight internally, but output only eight bits." +msgstr "" + +#: backend/hp-option.h:164 +#, no-c-format +msgid "Front button wait" +msgstr "" + +#: backend/hp-option.h:165 +#, no-c-format +msgid "Wait to scan for front-panel button push." +msgstr "" + +#: backend/hp-option.h:172 +#, no-c-format +msgid "Shut off lamp" +msgstr "" + +#: backend/hp-option.h:173 +#, no-c-format +msgid "Shut off scanner lamp." +msgstr "" + #: backend/hp3500.c:1020 #, fuzzy, no-c-format msgid "Geometry Group" @@ -3268,12 +3588,6 @@ msgstr "Geometria" msgid "Scan Mode Group" msgstr "Modo de Digitalização" -#: backend/hp3900_sane.c:427 backend/hp3900_sane.c:1019 -#: backend/hp-option.c:3177 -#, no-c-format -msgid "Slide" -msgstr "" - #: backend/hp3900_sane.c:1405 #, fuzzy, no-c-format msgid "Scanner model" @@ -3467,11 +3781,6 @@ msgstr "" msgid "Calibrates for black and white level." msgstr "" -#: backend/hp5590.c:93 backend/hp-option.c:3256 -#, no-c-format -msgid "ADF" -msgstr "" - #: backend/hp5590.c:95 #, fuzzy, no-c-format msgid "TMA Slides" @@ -3582,293 +3891,6 @@ msgid "" "r*65536+256*g+b or gray value (default=violet or gray)" msgstr "" -#: backend/hp-option.c:2987 -#, fuzzy, no-c-format -msgid "Advanced Options" -msgstr "Imprimir opções" - -#: backend/hp-option.c:3044 -#, no-c-format -msgid "Coarse" -msgstr "" - -#: backend/hp-option.c:3045 -#, fuzzy, no-c-format -msgid "Fine" -msgstr "Nome do ficheiro" - -#: backend/hp-option.c:3046 -#, no-c-format -msgid "Bayer" -msgstr "" - -#: backend/hp-option.c:3049 backend/hp-option.c:3100 -#, no-c-format -msgid "Custom" -msgstr "" - -#: backend/hp-option.c:3090 backend/hp-option.c:3146 -#: backend/hp-option.c:3161 -#, no-c-format -msgid "Auto" -msgstr "Automático" - -#: backend/hp-option.c:3091 -#, no-c-format -msgid "NTSC RGB" -msgstr "" - -#: backend/hp-option.c:3092 -#, no-c-format -msgid "XPA RGB" -msgstr "" - -#: backend/hp-option.c:3093 -#, no-c-format -msgid "Pass-through" -msgstr "" - -#: backend/hp-option.c:3094 -#, no-c-format -msgid "NTSC Gray" -msgstr "NTSC cinzento" - -#: backend/hp-option.c:3095 -#, no-c-format -msgid "XPA Gray" -msgstr "XPA cinzento" - -#: backend/hp-option.c:3147 -#, no-c-format -msgid "Slow" -msgstr "Lento" - -#: backend/hp-option.c:3148 backend/hp-option.c:3255 -#: backend/kvs40xx_opt.c:230 backend/matsushita.c:244 backend/mustek.c:149 -#: backend/plustek.c:234 backend/plustek_pp.c:203 backend/u12.c:155 -#, no-c-format -msgid "Normal" -msgstr "Normal" - -#: backend/hp-option.c:3149 -#, no-c-format -msgid "Fast" -msgstr "Rápido" - -#: backend/hp-option.c:3150 -#, no-c-format -msgid "Extra Fast" -msgstr "" - -#: backend/hp-option.c:3163 -#, no-c-format -msgid "2-pixel" -msgstr "" - -#: backend/hp-option.c:3164 -#, no-c-format -msgid "4-pixel" -msgstr "" - -#: backend/hp-option.c:3165 -#, no-c-format -msgid "8-pixel" -msgstr "" - -#: backend/hp-option.c:3176 -#, no-c-format -msgid "Print" -msgstr "" - -#: backend/hp-option.c:3178 -#, no-c-format -msgid "Film-strip" -msgstr "" - -#: backend/hp-option.c:3257 -#, no-c-format -msgid "XPA" -msgstr "" - -#: backend/hp-option.c:3331 backend/hp-option.c:3344 -#, no-c-format -msgid "Conditional" -msgstr "" - -#: backend/hp-option.c:3417 -#, no-c-format -msgid "Experiment" -msgstr "" - -#: backend/hp-option.h:60 -#, no-c-format -msgid "Sharpening" -msgstr "" - -#: backend/hp-option.h:61 -#, no-c-format -msgid "Set sharpening value." -msgstr "" - -#: backend/hp-option.h:66 -#, no-c-format -msgid "Auto Threshold" -msgstr "Limiar de aquecimento" - -#: backend/hp-option.h:68 -#, no-c-format -msgid "Enable automatic determination of threshold for line-art scans." -msgstr "" - -#: backend/hp-option.h:74 -#, no-c-format -msgid "Select smoothing filter." -msgstr "" - -#: backend/hp-option.h:79 -#, no-c-format -msgid "Unload media after scan" -msgstr "" - -#: backend/hp-option.h:80 -#, no-c-format -msgid "Unloads the media after a scan." -msgstr "" - -#: backend/hp-option.h:85 -#, fuzzy, no-c-format -msgid "Change document" -msgstr "Melhorias" - -#: backend/hp-option.h:86 -#, no-c-format -msgid "Change Document." -msgstr "" - -#: backend/hp-option.h:91 -#, no-c-format -msgid "Unload" -msgstr "" - -#: backend/hp-option.h:92 -#, no-c-format -msgid "Unload Document." -msgstr "" - -#: backend/hp-option.h:98 -#, fuzzy, no-c-format -msgid "Start calibration process." -msgstr "Calibração rudimentar" - -#: backend/hp-option.h:103 -#, no-c-format -msgid "Media" -msgstr "" - -#: backend/hp-option.h:104 -#, no-c-format -msgid "Set type of media." -msgstr "" - -#: backend/hp-option.h:109 -#, no-c-format -msgid "Exposure time" -msgstr "" - -#: backend/hp-option.h:111 -#, no-c-format -msgid "" -"A longer exposure time lets the scanner collect more light. Suggested " -"use is 175% for prints, 150% for normal slides and \"Negative\" for " -"negative film. For dark (underexposed) images you can increase this " -"value." -msgstr "" - -#: backend/hp-option.h:119 backend/hp-option.h:126 -#, fuzzy, no-c-format -msgid "Color Matrix" -msgstr "Linhas em cor" - -#: backend/hp-option.h:121 -#, fuzzy, no-c-format -msgid "Set the scanner's color matrix." -msgstr "Contraste do canal vermelho." - -#: backend/hp-option.h:127 -#, no-c-format -msgid "Custom color matrix." -msgstr "" - -#: backend/hp-option.h:132 -#, fuzzy, no-c-format -msgid "Mono Color Matrix" -msgstr "Linhas em cor" - -#: backend/hp-option.h:133 -#, no-c-format -msgid "Custom color matrix for grayscale scans." -msgstr "" - -#: backend/hp-option.h:138 -#, no-c-format -msgid "Mirror horizontal" -msgstr "" - -#: backend/hp-option.h:139 -#, no-c-format -msgid "Mirror image horizontally." -msgstr "" - -#: backend/hp-option.h:144 -#, no-c-format -msgid "Mirror vertical" -msgstr "" - -#: backend/hp-option.h:145 -#, no-c-format -msgid "Mirror image vertically." -msgstr "" - -#: backend/hp-option.h:150 -#, fuzzy, no-c-format -msgid "Update options" -msgstr "Imprimir opções" - -#: backend/hp-option.h:151 -#, fuzzy, no-c-format -msgid "Update options." -msgstr "Imprimir opções" - -#: backend/hp-option.h:156 -#, no-c-format -msgid "8 bit output" -msgstr "" - -#: backend/hp-option.h:158 -#, no-c-format -msgid "Use bit depth greater eight internally, but output only eight bits." -msgstr "" - -#: backend/hp-option.h:164 -#, no-c-format -msgid "Front button wait" -msgstr "" - -#: backend/hp-option.h:165 -#, no-c-format -msgid "Wait to scan for front-panel button push." -msgstr "" - -#: backend/hp-option.h:172 -#, no-c-format -msgid "Shut off lamp" -msgstr "" - -#: backend/hp-option.h:173 -#, no-c-format -msgid "Shut off scanner lamp." -msgstr "" - #: backend/kvs1025.h:51 backend/kvs20xx_opt.c:295 backend/kvs40xx_opt.c:516 #: backend/matsushita.h:219 #, no-c-format @@ -3967,7 +3989,7 @@ msgid "single" msgstr "simples" #: backend/kvs1025_opt.c:73 backend/kvs20xx.c:462 backend/kvs20xx_opt.c:56 -#: backend/kvs40xx.c:704 backend/kvs40xx.c:722 backend/kvs40xx_opt.c:102 +#: backend/kvs40xx.c:705 backend/kvs40xx.c:723 backend/kvs40xx_opt.c:102 #: backend/kvs40xx_opt.c:1087 #, no-c-format msgid "continuous" @@ -4265,7 +4287,7 @@ msgstr "" #: backend/kvs1025_opt.c:807 backend/kvs1025_opt.c:808 #: backend/matsushita.c:1300 backend/matsushita.c:1301 -#: backend/pixma_sane_options.c:112 +#: backend/pixma/pixma_sane_options.c:112 #, no-c-format msgid "Gamma" msgstr "" @@ -4556,52 +4578,52 @@ msgstr "" msgid "8x8 Vertical Line" msgstr "" -#: backend/lexmark.c:273 backend/umax_pp.c:711 +#: backend/lexmark.c:273 backend/umax_pp.c:705 #, no-c-format msgid "Gain" msgstr "Ganho" -#: backend/lexmark.c:274 backend/umax_pp.c:712 +#: backend/lexmark.c:274 backend/umax_pp.c:706 #, no-c-format msgid "Color channels gain settings" msgstr "" -#: backend/lexmark.c:283 backend/umax_pp.c:719 +#: backend/lexmark.c:283 backend/umax_pp.c:713 #, no-c-format msgid "Gray gain" msgstr "Ganho do cinzento" -#: backend/lexmark.c:284 backend/umax_pp.c:720 +#: backend/lexmark.c:284 backend/umax_pp.c:714 #, no-c-format msgid "Sets gray channel gain" msgstr "Ganho do canal cinzento" -#: backend/lexmark.c:297 backend/plustek.c:1001 backend/umax_pp.c:731 +#: backend/lexmark.c:297 backend/plustek.c:1001 backend/umax_pp.c:725 #, no-c-format msgid "Red gain" msgstr "Ganho do vermelho" -#: backend/lexmark.c:298 backend/umax_pp.c:732 +#: backend/lexmark.c:298 backend/umax_pp.c:726 #, no-c-format msgid "Sets red channel gain" msgstr "Ganho do canal vermelho" -#: backend/lexmark.c:311 backend/plustek.c:1017 backend/umax_pp.c:743 +#: backend/lexmark.c:311 backend/plustek.c:1017 backend/umax_pp.c:737 #, no-c-format msgid "Green gain" msgstr "Ganho do verde" -#: backend/lexmark.c:312 backend/umax_pp.c:744 +#: backend/lexmark.c:312 backend/umax_pp.c:738 #, no-c-format msgid "Sets green channel gain" msgstr "Ganho do canal verde" -#: backend/lexmark.c:325 backend/plustek.c:1033 backend/umax_pp.c:755 +#: backend/lexmark.c:325 backend/plustek.c:1033 backend/umax_pp.c:749 #, no-c-format msgid "Blue gain" msgstr "Ganho do azul" -#: backend/lexmark.c:326 backend/umax_pp.c:756 +#: backend/lexmark.c:326 backend/umax_pp.c:750 #, no-c-format msgid "Sets blue channel gain" msgstr "Ganho do canal azul" @@ -4687,7 +4709,7 @@ msgstr "Uma página" msgid "All pages" msgstr "Todas as páginas" -#: backend/matsushita.c:1034 backend/plustek.c:1333 +#: backend/matsushita.c:1034 backend/p5_device.c:8 backend/plustek.c:1333 #, no-c-format msgid "sheetfed scanner" msgstr "" @@ -5182,39 +5204,44 @@ msgstr "" "Aquecer até o brilho da lâmpada ser constante em ver de insistir em 40 " "segundos de tempo de aquecimento." -#: backend/pixma.c:397 +#: backend/p5.c:1926 +#, fuzzy, no-c-format +msgid "Need calibration" +msgstr "Calibração rudimentar" + +#: backend/pixma/pixma.c:397 #, fuzzy, no-c-format msgid "Negative color" msgstr "Filme Negativo" -#: backend/pixma.c:402 +#: backend/pixma/pixma.c:402 #, fuzzy, no-c-format msgid "Negative gray" msgstr "Negativo" -#: backend/pixma.c:415 +#: backend/pixma/pixma.c:415 #, no-c-format msgid "48 bits color" msgstr "" -#: backend/pixma.c:420 +#: backend/pixma/pixma.c:420 #, no-c-format msgid "16 bits gray" msgstr "" -#: backend/pixma_sane_options.c:84 +#: backend/pixma/pixma_sane_options.c:84 #, no-c-format msgid "" "Selects the scan source (such as a document-feeder). Set source before " "mode and resolution. Resets mode and resolution to auto values." msgstr "" -#: backend/pixma_sane_options.c:98 +#: backend/pixma/pixma_sane_options.c:98 #, no-c-format msgid "Button-controlled scan" msgstr "" -#: backend/pixma_sane_options.c:99 +#: backend/pixma/pixma_sane_options.c:99 #, no-c-format msgid "" "When enabled, scan process will not start immediately. To proceed, press " @@ -5222,37 +5249,37 @@ msgid "" "cancel, press \"GRAY\" button." msgstr "" -#: backend/pixma_sane_options.c:232 +#: backend/pixma/pixma_sane_options.c:232 #, fuzzy, no-c-format msgid "Update button state" msgstr "Estado do botão" -#: backend/pixma_sane_options.c:244 +#: backend/pixma/pixma_sane_options.c:244 #, fuzzy, no-c-format msgid "Button 1" msgstr "Estado do botão" -#: backend/pixma_sane_options.c:258 +#: backend/pixma/pixma_sane_options.c:258 #, fuzzy, no-c-format msgid "Button 2" msgstr "Estado do botão" -#: backend/pixma_sane_options.c:272 +#: backend/pixma/pixma_sane_options.c:272 #, no-c-format msgid "Type of original to scan" msgstr "" -#: backend/pixma_sane_options.c:286 +#: backend/pixma/pixma_sane_options.c:286 #, no-c-format msgid "Target operation type" msgstr "" -#: backend/pixma_sane_options.c:348 +#: backend/pixma/pixma_sane_options.c:348 #, no-c-format msgid "ADF Waiting Time" msgstr "" -#: backend/pixma_sane_options.c:349 +#: backend/pixma/pixma_sane_options.c:349 #, no-c-format msgid "" "When set, the scanner waits upto the specified time in seconds for a new " @@ -5344,7 +5371,7 @@ msgstr "Ganho analógico" msgid "Red gain value of the AFE" msgstr "" -#: backend/plustek.c:1009 backend/umax_pp.c:788 +#: backend/plustek.c:1009 backend/umax_pp.c:782 #, no-c-format msgid "Red offset" msgstr "Deslocamento do vermelho" @@ -5599,7 +5626,7 @@ msgstr "" msgid "This option reflects the status of a scanner button." msgstr "" -#: backend/rts8891.c:2840 backend/umax.c:5795 backend/umax_pp.c:635 +#: backend/rts8891.c:2840 backend/umax.c:5795 backend/umax_pp.c:629 #, no-c-format msgid "Lamp on" msgstr "Lâmpada acesa" @@ -5609,12 +5636,12 @@ msgstr "Lâmpada acesa" msgid "Turn on scanner lamp" msgstr "" -#: backend/rts8891.c:2851 backend/umax1220u.c:248 backend/umax.c:5812 +#: backend/rts8891.c:2851 backend/umax.c:5812 backend/umax1220u.c:248 #, no-c-format msgid "Lamp off" msgstr "" -#: backend/rts8891.c:2852 backend/umax1220u.c:249 backend/umax.c:5813 +#: backend/rts8891.c:2852 backend/umax.c:5813 backend/umax1220u.c:249 #, no-c-format msgid "Turn off scanner lamp" msgstr "" @@ -6340,52 +6367,52 @@ msgstr "Modo de calibração" msgid "Define calibration mode" msgstr "Definine o modo de calibração" -#: backend/umax_pp.c:636 +#: backend/umax_pp.c:630 #, no-c-format msgid "Sets lamp on/off" msgstr "" -#: backend/umax_pp.c:645 +#: backend/umax_pp.c:639 #, no-c-format msgid "UTA on" msgstr "" -#: backend/umax_pp.c:646 +#: backend/umax_pp.c:640 #, no-c-format msgid "Sets UTA on/off" msgstr "" -#: backend/umax_pp.c:767 +#: backend/umax_pp.c:761 #, no-c-format msgid "Offset" msgstr "Deslocamento" -#: backend/umax_pp.c:769 +#: backend/umax_pp.c:763 #, no-c-format msgid "Color channels offset settings" msgstr "" -#: backend/umax_pp.c:776 +#: backend/umax_pp.c:770 #, no-c-format msgid "Gray offset" msgstr "Deslocamento do cinzento" -#: backend/umax_pp.c:777 +#: backend/umax_pp.c:771 #, no-c-format msgid "Sets gray channel offset" msgstr "Deslocamento do canal cinzento" -#: backend/umax_pp.c:789 +#: backend/umax_pp.c:783 #, no-c-format msgid "Sets red channel offset" msgstr "Deslocamento do canal vermelho" -#: backend/umax_pp.c:801 +#: backend/umax_pp.c:795 #, no-c-format msgid "Sets green channel offset" msgstr "Deslocamento do canal verde" -#: backend/umax_pp.c:813 +#: backend/umax_pp.c:807 #, no-c-format msgid "Sets blue channel offset" msgstr "Deslocamento do canal azul" diff --git a/po/ru.po b/po/ru.po index 47ab22e5f..14308d106 100644 --- a/po/ru.po +++ b/po/ru.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: sane-backends\n" "Report-Msgid-Bugs-To: sane-devel@alioth-lists.debian.net\n" -"POT-Creation-Date: 2019-10-12 17:41+0300\n" +"POT-Creation-Date: 2020-01-12 07:09+0000\n" "PO-Revision-Date: 2007-12-17 23:05+0100\n" "Last-Translator: \n" "Language-Team: \n" @@ -31,23 +31,23 @@ msgid "Standard" msgstr "" #: include/sane/saneopts.h:157 backend/artec_eplus48u.c:2884 -#: backend/epson.c:3298 backend/epson2.c:1290 -#: backend/genesys/genesys.cpp:3976 backend/gt68xx.c:696 -#: backend/hp3500.c:1019 backend/hp-option.c:3300 backend/kvs1025_opt.c:639 +#: backend/epson.c:3298 backend/epson2.c:1290 backend/epsonds.c:677 +#: backend/genesys/genesys.cpp:4034 backend/gt68xx.c:696 +#: backend/hp-option.c:3300 backend/hp3500.c:1019 backend/kvs1025_opt.c:639 #: backend/kvs20xx_opt.c:285 backend/kvs40xx_opt.c:506 backend/leo.c:823 #: backend/lexmark.c:199 backend/ma1509.c:551 backend/matsushita.c:1135 #: backend/microtek2.h:599 backend/mustek.c:4373 backend/mustek_usb.c:301 -#: backend/mustek_usb2.c:465 backend/pixma_sane_options.c:160 +#: backend/mustek_usb2.c:465 backend/pixma/pixma_sane_options.c:160 #: backend/plustek.c:808 backend/plustek_pp.c:747 backend/sceptre.c:702 #: backend/snapscan-options.c:550 backend/teco1.c:1095 backend/teco2.c:1910 #: backend/teco3.c:920 backend/test.c:647 backend/u12.c:546 -#: backend/umax.c:5176 backend/umax_pp.c:576 +#: backend/umax.c:5176 backend/umax_pp.c:570 #, no-c-format msgid "Geometry" msgstr "Расположение" #: include/sane/saneopts.h:158 backend/artec_eplus48u.c:2805 -#: backend/canon.c:1493 backend/genesys/genesys.cpp:4035 +#: backend/canon.c:1493 backend/genesys/genesys.cpp:4077 #: backend/gt68xx.c:665 backend/hp-option.c:2956 backend/kvs1025_opt.c:703 #: backend/leo.c:871 backend/ma1509.c:599 backend/matsushita.c:1189 #: backend/microtek2.h:600 backend/mustek.c:4421 backend/mustek_usb.c:349 @@ -55,7 +55,7 @@ msgstr "Расположение" #: backend/plustek_pp.c:793 backend/sceptre.c:750 #: backend/snapscan-options.c:617 backend/stv680.c:1067 #: backend/teco1.c:1143 backend/teco2.c:1958 backend/teco3.c:968 -#: backend/u12.c:592 backend/umax.c:5226 backend/umax_pp.c:625 +#: backend/u12.c:592 backend/umax.c:5226 backend/umax_pp.c:619 #, no-c-format msgid "Enhancement" msgstr "Повышение" @@ -89,7 +89,7 @@ msgid "Bit depth" msgstr "Бит на цвет" #: include/sane/saneopts.h:165 backend/canon.c:1140 backend/leo.c:781 -#: backend/pixma_sane_options.c:47 +#: backend/pixma/pixma_sane_options.c:47 #, no-c-format msgid "Scan mode" msgstr "Режим сканирования" @@ -130,7 +130,7 @@ msgid "Bottom-right y" msgstr "Правая нижняя координата Y" #: include/sane/saneopts.h:173 backend/canon.c:1216 -#: backend/pixma_sane_options.c:300 +#: backend/pixma/pixma_sane_options.c:300 #, no-c-format msgid "Scan resolution" msgstr "Разрешение сканирования" @@ -285,7 +285,7 @@ msgstr "Название файла" msgid "Halftone pattern size" msgstr "Размер чёрно-белого шаблона" -#: include/sane/saneopts.h:204 backend/fujitsu.c:3233 +#: include/sane/saneopts.h:204 backend/fujitsu.c:3237 #, no-c-format msgid "Halftone pattern" msgstr "Чёрно-белый шаблон" @@ -295,10 +295,10 @@ msgstr "Чёрно-белый шаблон" msgid "Bind X and Y resolution" msgstr "Согласовывать разрешение по X и по Y" -#: include/sane/saneopts.h:206 backend/hp3900_sane.c:428 -#: backend/hp3900_sane.c:1021 backend/hp3900_sane.c:1421 -#: backend/hp-option.c:3238 backend/mustek_usb2.c:121 backend/plustek.c:236 -#: backend/plustek_pp.c:205 backend/u12.c:157 +#: include/sane/saneopts.h:206 backend/hp-option.c:3238 +#: backend/hp3900_sane.c:428 backend/hp3900_sane.c:1021 +#: backend/hp3900_sane.c:1421 backend/mustek_usb2.c:121 +#: backend/plustek.c:236 backend/plustek_pp.c:205 backend/u12.c:157 #, no-c-format msgid "Negative" msgstr "Негатив" @@ -1058,78 +1058,38 @@ msgstr "" "Двухстороннее сканирование позволяет получить изображение лицевой и " "обратной стороны документа" -#: backend/canon630u.c:159 +#: backend/canon-sane.c:674 backend/canon.c:171 #, no-c-format -msgid "Calibrate Scanner" -msgstr "Калибровать сканер" - -#: backend/canon630u.c:160 -#, no-c-format -msgid "Force scanner calibration before scan" -msgstr "Выполнять калибровку сканера перед сканированием" - -#: backend/canon630u.c:259 backend/umax1220u.c:208 -#, no-c-format -msgid "Grayscale scan" -msgstr "Чёрно-белое сканирование" - -#: backend/canon630u.c:260 backend/umax1220u.c:209 -#, no-c-format -msgid "Do a grayscale rather than color scan" -msgstr "Выполнять чёрно-белое сканирование вместо цветного" - -#: backend/canon630u.c:306 -#, no-c-format -msgid "Analog Gain" -msgstr "Аналоговое усиление" - -#: backend/canon630u.c:307 -#, no-c-format -msgid "Increase or decrease the analog gain of the CCD array" -msgstr "Увеличить или уменьшить аналоговое усиление матрицы CCD" - -#: backend/canon630u.c:347 backend/epson.h:68 backend/epson2.h:67 -#, no-c-format -msgid "Gamma Correction" -msgstr "Коррекция гаммы" - -#: backend/canon630u.c:348 -#, no-c-format -msgid "Selects the gamma corrected transfer curve" -msgstr "Выберите кривую гамма-коррекции" - -#: backend/canon.c:149 backend/canon-sane.c:1318 -#, no-c-format -msgid "Raw" +msgid "Correction according to transparency ratio" msgstr "" -#: backend/canon.c:157 backend/canon-sane.c:732 backend/canon-sane.c:940 +#: backend/canon-sane.c:680 backend/canon.c:170 +#, no-c-format +msgid "Correction according to film type" +msgstr "" + +#: backend/canon-sane.c:732 backend/canon-sane.c:940 #: backend/canon-sane.c:1076 backend/canon-sane.c:1314 -#: backend/canon-sane.c:1494 backend/canon-sane.c:1643 +#: backend/canon-sane.c:1494 backend/canon-sane.c:1643 backend/canon.c:157 #, no-c-format msgid "Fine color" msgstr "" +#: backend/canon-sane.c:776 backend/canon.c:176 +#, fuzzy, no-c-format +msgid "Negatives" +msgstr "Негатив" + +#: backend/canon-sane.c:1318 backend/canon.c:149 +#, no-c-format +msgid "Raw" +msgstr "" + #: backend/canon.c:169 #, fuzzy, no-c-format msgid "No transparency correction" msgstr "Коррекция цветов" -#: backend/canon.c:170 backend/canon-sane.c:680 -#, no-c-format -msgid "Correction according to film type" -msgstr "" - -#: backend/canon.c:171 backend/canon-sane.c:674 -#, no-c-format -msgid "Correction according to transparency ratio" -msgstr "" - -#: backend/canon.c:176 backend/canon-sane.c:776 -#, fuzzy, no-c-format -msgid "Negatives" -msgstr "Негатив" - #: backend/canon.c:176 #, fuzzy, no-c-format msgid "Slides" @@ -1552,94 +1512,137 @@ msgstr "Тип плёнки" msgid "Select the film type" msgstr "Выбирает полутона." -#: backend/canon_dr.c:411 backend/epjitsu.c:233 backend/epson.c:501 -#: backend/epson2.c:115 backend/fujitsu.c:675 backend/gt68xx.c:148 +#: backend/canon630u.c:159 +#, no-c-format +msgid "Calibrate Scanner" +msgstr "Калибровать сканер" + +#: backend/canon630u.c:160 +#, no-c-format +msgid "Force scanner calibration before scan" +msgstr "Выполнять калибровку сканера перед сканированием" + +#: backend/canon630u.c:259 backend/umax1220u.c:208 +#, no-c-format +msgid "Grayscale scan" +msgstr "Чёрно-белое сканирование" + +#: backend/canon630u.c:260 backend/umax1220u.c:209 +#, no-c-format +msgid "Do a grayscale rather than color scan" +msgstr "Выполнять чёрно-белое сканирование вместо цветного" + +#: backend/canon630u.c:306 +#, no-c-format +msgid "Analog Gain" +msgstr "Аналоговое усиление" + +#: backend/canon630u.c:307 +#, no-c-format +msgid "Increase or decrease the analog gain of the CCD array" +msgstr "Увеличить или уменьшить аналоговое усиление матрицы CCD" + +#: backend/canon630u.c:347 backend/epson.h:68 backend/epson2.h:67 +#, no-c-format +msgid "Gamma Correction" +msgstr "Коррекция гаммы" + +#: backend/canon630u.c:348 +#, no-c-format +msgid "Selects the gamma corrected transfer curve" +msgstr "Выберите кривую гамма-коррекции" + +#: backend/canon_dr.c:413 backend/epjitsu.c:233 backend/epson.c:501 +#: backend/epson2-ops.c:101 backend/epson2.c:115 backend/epsonds-ops.c:32 +#: backend/epsonds.c:95 backend/epsonds.h:62 backend/fujitsu.c:677 +#: backend/genesys/genesys.h:78 backend/gt68xx.c:148 #: backend/hp3900_sane.c:418 backend/hp3900_sane.c:427 -#: backend/hp3900_sane.c:1017 backend/hp5590.c:92 backend/ma1509.c:108 -#: backend/magicolor.c:181 backend/mustek.c:156 backend/mustek.c:160 -#: backend/mustek.c:164 backend/pixma.c:920 backend/pixma_sane_options.c:92 -#: backend/snapscan-options.c:86 backend/test.c:192 backend/umax.c:181 +#: backend/hp3900_sane.c:1017 backend/hp5590.c:92 backend/kodakaio.c:617 +#: backend/ma1509.c:108 backend/magicolor.c:181 backend/mustek.c:156 +#: backend/mustek.c:160 backend/mustek.c:164 backend/pixma/pixma.c:920 +#: backend/pixma/pixma_sane_options.c:92 backend/snapscan-options.c:86 +#: backend/test.c:192 backend/umax.c:181 #, no-c-format msgid "Flatbed" msgstr "Планшетный" -#: backend/canon_dr.c:412 backend/epjitsu.c:234 backend/fujitsu.c:676 +#: backend/canon_dr.c:414 backend/epjitsu.c:234 backend/fujitsu.c:678 #: backend/kodak.c:140 #, no-c-format msgid "ADF Front" msgstr "" -#: backend/canon_dr.c:413 backend/epjitsu.c:235 backend/fujitsu.c:677 +#: backend/canon_dr.c:415 backend/epjitsu.c:235 backend/fujitsu.c:679 #: backend/kodak.c:141 #, fuzzy, no-c-format msgid "ADF Back" msgstr "АПД" -#: backend/canon_dr.c:414 backend/epjitsu.c:236 backend/fujitsu.c:678 -#: backend/hp5590.c:94 backend/kodak.c:142 backend/pixma.c:931 +#: backend/canon_dr.c:416 backend/epjitsu.c:236 backend/fujitsu.c:680 +#: backend/hp5590.c:94 backend/kodak.c:142 backend/pixma/pixma.c:931 #, fuzzy, no-c-format msgid "ADF Duplex" msgstr "Двухсторонний" -#: backend/canon_dr.c:415 +#: backend/canon_dr.c:417 #, fuzzy, no-c-format msgid "Card Front" msgstr "Распечатка" -#: backend/canon_dr.c:416 +#: backend/canon_dr.c:418 #, no-c-format msgid "Card Back" msgstr "" -#: backend/canon_dr.c:417 +#: backend/canon_dr.c:419 #, fuzzy, no-c-format msgid "Card Duplex" msgstr "Двухсторонний" -#: backend/canon_dr.c:424 backend/epson.c:599 backend/epson.c:3096 -#: backend/epson2.c:201 backend/fujitsu.c:695 -#: backend/genesys/genesys.cpp:99 backend/genesys/genesys.cpp:106 +#: backend/canon_dr.c:426 backend/epson.c:599 backend/epson.c:3096 +#: backend/epson2.c:201 backend/fujitsu.c:697 +#: backend/genesys/genesys.cpp:120 backend/genesys/genesys.cpp:127 #: backend/gt68xx_low.h:136 backend/hp-option.c:3096 #, no-c-format msgid "Red" msgstr "Красный" -#: backend/canon_dr.c:425 backend/epson.c:600 backend/epson.c:3092 -#: backend/epson2.c:202 backend/fujitsu.c:696 -#: backend/genesys/genesys.cpp:100 backend/genesys/genesys.cpp:107 +#: backend/canon_dr.c:427 backend/epson.c:600 backend/epson.c:3092 +#: backend/epson2.c:202 backend/fujitsu.c:698 +#: backend/genesys/genesys.cpp:121 backend/genesys/genesys.cpp:128 #: backend/gt68xx_low.h:137 backend/hp-option.c:3097 #, no-c-format msgid "Green" msgstr "Зелёный" -#: backend/canon_dr.c:426 backend/epson.c:601 backend/epson.c:3100 -#: backend/epson2.c:203 backend/fujitsu.c:697 -#: backend/genesys/genesys.cpp:101 backend/genesys/genesys.cpp:108 +#: backend/canon_dr.c:428 backend/epson.c:601 backend/epson.c:3100 +#: backend/epson2.c:203 backend/fujitsu.c:699 +#: backend/genesys/genesys.cpp:122 backend/genesys/genesys.cpp:129 #: backend/gt68xx_low.h:138 backend/hp-option.c:3098 #, no-c-format msgid "Blue" msgstr "Синий" -#: backend/canon_dr.c:427 +#: backend/canon_dr.c:429 #, fuzzy, no-c-format msgid "Enhance Red" msgstr "Повышение" -#: backend/canon_dr.c:428 +#: backend/canon_dr.c:430 #, fuzzy, no-c-format msgid "Enhance Green" msgstr "Повышение" -#: backend/canon_dr.c:429 +#: backend/canon_dr.c:431 #, fuzzy, no-c-format msgid "Enhance Blue" msgstr "Повышение" -#: backend/canon_dr.c:431 backend/epson.c:556 backend/epson.c:564 +#: backend/canon_dr.c:433 backend/epson.c:556 backend/epson.c:564 #: backend/epson.c:576 backend/epson.c:598 backend/epson2.c:165 #: backend/epson2.c:173 backend/epson2.c:185 backend/epson2.c:200 -#: backend/epson2.c:214 backend/fujitsu.c:701 -#: backend/genesys/genesys.cpp:109 backend/leo.c:109 +#: backend/epson2.c:214 backend/fujitsu.c:703 +#: backend/genesys/genesys.cpp:130 backend/leo.c:109 #: backend/matsushita.c:138 backend/matsushita.c:159 #: backend/matsushita.c:191 backend/matsushita.c:213 #: backend/snapscan-options.c:91 @@ -1647,42 +1650,46 @@ msgstr "Повышение" msgid "None" msgstr "Ничего" -#: backend/canon_dr.c:432 backend/fujitsu.c:702 +#: backend/canon_dr.c:434 backend/fujitsu.c:704 #, no-c-format msgid "JPEG" msgstr "" -#: backend/canon_dr.c:2477 backend/fujitsu.c:4113 -#: backend/genesys/genesys.cpp:4126 backend/kvs1025_opt.c:910 +#: backend/canon_dr.c:2479 backend/fujitsu.c:4117 +#: backend/genesys/genesys.cpp:4168 backend/kvs1025_opt.c:910 #, no-c-format msgid "Software blank skip percentage" msgstr "" -#: backend/canon_dr.c:2478 backend/fujitsu.c:4114 +#: backend/canon_dr.c:2480 backend/fujitsu.c:4118 #, no-c-format msgid "Request driver to discard pages with low percentage of dark pixels" msgstr "" -#: backend/epson.c:491 backend/epson2.c:108 backend/magicolor.c:174 +#: backend/epson.c:491 backend/epson2.c:108 backend/epsonds.c:88 +#: backend/kodakaio.c:611 backend/magicolor.c:174 #, no-c-format msgid "Simplex" msgstr "Односторонний" -#: backend/epson.c:492 backend/epson2.c:109 backend/kvs1025.h:50 -#: backend/kvs20xx_opt.c:204 backend/kvs40xx_opt.c:353 -#: backend/magicolor.c:175 backend/matsushita.h:218 +#: backend/epson.c:492 backend/epson2.c:109 backend/epsonds.c:89 +#: backend/kodakaio.c:612 backend/kvs1025.h:50 backend/kvs20xx_opt.c:204 +#: backend/kvs40xx_opt.c:353 backend/magicolor.c:175 +#: backend/matsushita.h:218 #, no-c-format msgid "Duplex" msgstr "Двухсторонний" -#: backend/epson.c:502 backend/epson2.c:116 backend/pixma.c:937 +#: backend/epson.c:502 backend/epson2-ops.c:102 backend/epson2.c:116 +#: backend/epsonds-ops.c:33 backend/epsonds.h:63 backend/pixma/pixma.c:937 #, no-c-format msgid "Transparency Unit" msgstr "Модуль для слайдов" -#: backend/epson.c:503 backend/epson2.c:118 backend/magicolor.c:182 -#: backend/mustek.c:160 backend/pixma.c:925 backend/test.c:192 -#: backend/umax.c:183 +#: backend/epson.c:503 backend/epson2-ops.c:104 backend/epson2.c:118 +#: backend/epsonds-ops.c:34 backend/epsonds.c:96 backend/epsonds.h:64 +#: backend/kodakaio.c:618 backend/magicolor.c:182 backend/mustek.c:160 +#: backend/pixma/pixma.c:925 backend/test.c:192 backend/umax.c:183 #, no-c-format msgid "Automatic Document Feeder" msgstr "Автоматический податчик документов" @@ -1794,7 +1801,7 @@ msgstr "Струйные принтеры" msgid "CRT monitors" msgstr "Мониторы с ЭЛТ" -#: backend/epson.c:656 backend/epson2.c:254 backend/fujitsu.c:685 +#: backend/epson.c:656 backend/epson2.c:254 backend/fujitsu.c:687 #: backend/hp-option.c:3229 backend/test.c:143 #, no-c-format msgid "Default" @@ -1858,8 +1865,8 @@ msgstr "A4" msgid "Max" msgstr "Макс" -#: backend/epson.c:2813 backend/epson2.c:976 -#: backend/genesys/genesys.cpp:3893 backend/gt68xx.c:451 +#: backend/epson.c:2813 backend/epson2.c:976 backend/epsonds.c:629 +#: backend/genesys/genesys.cpp:3965 backend/gt68xx.c:451 #: backend/hp-option.c:2917 backend/kvs1025_opt.c:521 #: backend/kvs20xx_opt.c:171 backend/kvs40xx_opt.c:320 backend/ma1509.c:501 #: backend/matsushita.c:1084 backend/microtek2.h:598 backend/mustek.c:4215 @@ -2036,17 +2043,17 @@ msgstr "" msgid "Quick format" msgstr "Быстрый формат" -#: backend/epson.c:3360 backend/epson2.c:1340 +#: backend/epson.c:3360 backend/epson2.c:1340 backend/epsonds.c:726 #, no-c-format msgid "Optional equipment" msgstr "Дополнительное оборудование" -#: backend/epson.c:3431 backend/epson2.c:1393 +#: backend/epson.c:3431 backend/epson2.c:1393 backend/epsonds.c:742 #, no-c-format msgid "Eject" msgstr "Извлечь" -#: backend/epson.c:3432 backend/epson2.c:1394 +#: backend/epson.c:3432 backend/epson2.c:1394 backend/epsonds.c:743 #, no-c-format msgid "Eject the sheet in the ADF" msgstr "Вставить бумагу в устройство подачи документов" @@ -2061,12 +2068,14 @@ msgstr "Автоизвлечение" msgid "Eject document after scanning" msgstr "Извлечь документ после сканирования" -#: backend/epson.c:3457 backend/epson2.c:1416 backend/magicolor.c:2420 +#: backend/epson.c:3457 backend/epson2.c:1416 backend/epsonds.c:758 +#: backend/kodakaio.c:2855 backend/magicolor.c:2420 #, no-c-format msgid "ADF Mode" msgstr "Режим автоподачи" -#: backend/epson.c:3459 backend/epson2.c:1418 backend/magicolor.c:2422 +#: backend/epson.c:3459 backend/epson2.c:1418 backend/epsonds.c:760 +#: backend/kodakaio.c:2857 backend/magicolor.c:2422 #, no-c-format msgid "Selects the ADF mode (simplex/duplex)" msgstr "Выбирает режим автоподачи (односторонний/двухсторонний)" @@ -2117,16 +2126,16 @@ msgstr "" "После подачи команды \"сканировать\", будет ожидать пока не будет нажата " "кнопка на сканере, чтобы действительно начать процесс сканирования." -#: backend/epson2.c:102 backend/pixma.c:409 -#, no-c-format -msgid "Infrared" -msgstr "" - -#: backend/epson2.c:117 +#: backend/epson2-ops.c:103 backend/epson2.c:117 #, no-c-format msgid "TPU8x10" msgstr "" +#: backend/epson2.c:102 backend/pixma/pixma.c:409 +#, no-c-format +msgid "Infrared" +msgstr "" + #: backend/epson2.c:136 #, fuzzy, no-c-format msgid "Positive Slide" @@ -2147,494 +2156,514 @@ msgstr "" msgid "User defined CCT profile" msgstr "Определяемое пользователем" -#: backend/fujitsu.c:686 backend/hp-option.c:3330 backend/hp-option.c:3343 +#: backend/epsonds.c:750 +#, no-c-format +msgid "Load" +msgstr "" + +#: backend/epsonds.c:751 +#, fuzzy, no-c-format +msgid "Load a sheet in the ADF" +msgstr "Вставить бумагу в устройство подачи документов" + +#: backend/epsonds.c:771 +#, fuzzy, no-c-format +msgid "ADF Skew Correction" +msgstr "Без коррекции" + +#: backend/epsonds.c:773 +#, fuzzy, no-c-format +msgid "Enables ADF skew correction" +msgstr "Аналоговая коррекция гаммы" + +#: backend/fujitsu.c:688 backend/hp-option.c:3330 backend/hp-option.c:3343 #, no-c-format msgid "On" msgstr "Вкл" -#: backend/fujitsu.c:687 backend/hp-option.c:3162 backend/hp-option.c:3329 +#: backend/fujitsu.c:689 backend/hp-option.c:3162 backend/hp-option.c:3329 #: backend/hp-option.c:3342 #, no-c-format msgid "Off" msgstr "Выкл" -#: backend/fujitsu.c:689 +#: backend/fujitsu.c:691 #, no-c-format msgid "DTC" msgstr "" -#: backend/fujitsu.c:690 +#: backend/fujitsu.c:692 #, no-c-format msgid "SDTC" msgstr "" -#: backend/fujitsu.c:692 backend/teco1.c:1152 backend/teco1.c:1153 +#: backend/fujitsu.c:694 backend/teco1.c:1152 backend/teco1.c:1153 #: backend/teco2.c:1967 backend/teco2.c:1968 backend/teco3.c:977 #: backend/teco3.c:978 #, no-c-format msgid "Dither" msgstr "Размытие" -#: backend/fujitsu.c:693 +#: backend/fujitsu.c:695 #, fuzzy, no-c-format msgid "Diffusion" msgstr "Диффузия ошибок" -#: backend/fujitsu.c:698 +#: backend/fujitsu.c:700 #, fuzzy, no-c-format msgid "White" msgstr "Уровень белого" -#: backend/fujitsu.c:699 +#: backend/fujitsu.c:701 #, fuzzy, no-c-format msgid "Black" msgstr "Уровень чёрного" -#: backend/fujitsu.c:704 +#: backend/fujitsu.c:706 #, fuzzy, no-c-format msgid "Continue" msgstr "Условно" -#: backend/fujitsu.c:705 +#: backend/fujitsu.c:707 #, no-c-format msgid "Stop" msgstr "" -#: backend/fujitsu.c:707 +#: backend/fujitsu.c:709 #, no-c-format msgid "10mm" msgstr "" -#: backend/fujitsu.c:708 +#: backend/fujitsu.c:710 #, no-c-format msgid "15mm" msgstr "" -#: backend/fujitsu.c:709 +#: backend/fujitsu.c:711 #, no-c-format msgid "20mm" msgstr "" -#: backend/fujitsu.c:711 backend/hp-option.c:3048 +#: backend/fujitsu.c:713 backend/hp-option.c:3048 #, no-c-format msgid "Horizontal" msgstr "Горизонтально" -#: backend/fujitsu.c:712 +#: backend/fujitsu.c:714 #, fuzzy, no-c-format msgid "Horizontal bold" msgstr "Горизонтально" -#: backend/fujitsu.c:713 +#: backend/fujitsu.c:715 #, fuzzy, no-c-format msgid "Horizontal narrow" msgstr "Горизонтально" -#: backend/fujitsu.c:714 backend/hp-option.c:3047 +#: backend/fujitsu.c:716 backend/hp-option.c:3047 #, no-c-format msgid "Vertical" msgstr "Вертикальное" -#: backend/fujitsu.c:715 +#: backend/fujitsu.c:717 #, fuzzy, no-c-format msgid "Vertical bold" msgstr "Вертикальное" -#: backend/fujitsu.c:717 +#: backend/fujitsu.c:719 #, no-c-format msgid "Top to bottom" msgstr "" -#: backend/fujitsu.c:718 +#: backend/fujitsu.c:720 #, no-c-format msgid "Bottom to top" msgstr "" -#: backend/fujitsu.c:720 +#: backend/fujitsu.c:722 #, fuzzy, no-c-format msgid "Front" msgstr "Распечатка" -#: backend/fujitsu.c:721 +#: backend/fujitsu.c:723 #, no-c-format msgid "Back" msgstr "" -#: backend/fujitsu.c:3144 backend/pixma_sane_options.c:145 +#: backend/fujitsu.c:3148 backend/pixma/pixma_sane_options.c:145 #, no-c-format msgid "Gamma function exponent" msgstr "" -#: backend/fujitsu.c:3145 backend/pixma_sane_options.c:146 +#: backend/fujitsu.c:3149 backend/pixma/pixma_sane_options.c:146 #, no-c-format msgid "Changes intensity of midtones" msgstr "" -#: backend/fujitsu.c:3194 +#: backend/fujitsu.c:3198 #, no-c-format msgid "RIF" msgstr "" -#: backend/fujitsu.c:3195 +#: backend/fujitsu.c:3199 #, no-c-format msgid "Reverse image format" msgstr "" -#: backend/fujitsu.c:3212 +#: backend/fujitsu.c:3216 #, fuzzy, no-c-format msgid "Halftone type" msgstr "Полутоновый (растр)" -#: backend/fujitsu.c:3213 +#: backend/fujitsu.c:3217 #, no-c-format msgid "Control type of halftone filter" msgstr "" -#: backend/fujitsu.c:3234 +#: backend/fujitsu.c:3238 #, no-c-format msgid "Control pattern of halftone filter" msgstr "" -#: backend/fujitsu.c:3256 +#: backend/fujitsu.c:3260 #, no-c-format msgid "Outline" msgstr "" -#: backend/fujitsu.c:3257 +#: backend/fujitsu.c:3261 #, fuzzy, no-c-format msgid "Perform outline extraction" msgstr "Грубая калибровка" -#: backend/fujitsu.c:3268 +#: backend/fujitsu.c:3272 #, fuzzy, no-c-format msgid "Emphasis" msgstr "Выразительность изображения" -#: backend/fujitsu.c:3269 +#: backend/fujitsu.c:3273 #, no-c-format msgid "Negative to smooth or positive to sharpen image" msgstr "" -#: backend/fujitsu.c:3287 +#: backend/fujitsu.c:3291 #, fuzzy, no-c-format msgid "Separation" msgstr "Насыщенность" -#: backend/fujitsu.c:3288 +#: backend/fujitsu.c:3292 #, fuzzy, no-c-format msgid "Enable automatic separation of image and text" msgstr "" "Включает автоматическое определение порога при сканировании штриховых " "изображений." -#: backend/fujitsu.c:3299 +#: backend/fujitsu.c:3303 #, fuzzy, no-c-format msgid "Mirroring" msgstr "Зеркальное изображение" -#: backend/fujitsu.c:3300 +#: backend/fujitsu.c:3304 #, fuzzy, no-c-format msgid "Reflect output image horizontally" msgstr "Отображает изображение по горизонтали." -#: backend/fujitsu.c:3317 +#: backend/fujitsu.c:3321 #, fuzzy, no-c-format msgid "White level follower" msgstr "Уровень белого для синего" -#: backend/fujitsu.c:3318 +#: backend/fujitsu.c:3322 #, fuzzy, no-c-format msgid "Control white level follower" msgstr "Управляет уровнем красного" -#: backend/fujitsu.c:3336 +#: backend/fujitsu.c:3340 #, fuzzy, no-c-format msgid "BP filter" msgstr "Цветное штриховое" -#: backend/fujitsu.c:3337 +#: backend/fujitsu.c:3341 #, no-c-format msgid "Improves quality of high resolution ball-point pen text" msgstr "" -#: backend/fujitsu.c:3353 backend/hp-option.h:73 +#: backend/fujitsu.c:3357 backend/hp-option.h:73 #, no-c-format msgid "Smoothing" msgstr "Сглаживание" -#: backend/fujitsu.c:3354 +#: backend/fujitsu.c:3358 #, no-c-format msgid "Enable smoothing for improved OCR" msgstr "" -#: backend/fujitsu.c:3370 +#: backend/fujitsu.c:3374 #, fuzzy, no-c-format msgid "Gamma curve" msgstr "Значение гаммы" -#: backend/fujitsu.c:3371 +#: backend/fujitsu.c:3375 #, no-c-format msgid "Gamma curve, from light to dark, but upper two may not work" msgstr "" -#: backend/fujitsu.c:3393 backend/genesys/genesys.cpp:4187 -#: backend/pixma_sane_options.c:335 +#: backend/fujitsu.c:3397 backend/genesys/genesys.cpp:4229 +#: backend/pixma/pixma_sane_options.c:335 #, fuzzy, no-c-format msgid "Threshold curve" msgstr "Порог" -#: backend/fujitsu.c:3394 +#: backend/fujitsu.c:3398 #, no-c-format msgid "" "Threshold curve, from light to dark, but upper two may not be linear" msgstr "" -#: backend/fujitsu.c:3416 +#: backend/fujitsu.c:3420 #, fuzzy, no-c-format msgid "Threshold white" msgstr "Порог" -#: backend/fujitsu.c:3417 +#: backend/fujitsu.c:3421 #, no-c-format msgid "Set pixels equal to threshold to white instead of black" msgstr "" -#: backend/fujitsu.c:3433 backend/fujitsu.c:3434 +#: backend/fujitsu.c:3437 backend/fujitsu.c:3438 #, fuzzy, no-c-format msgid "Noise removal" msgstr "Уменьшение шумов" -#: backend/fujitsu.c:3450 +#: backend/fujitsu.c:3454 #, no-c-format msgid "Matrix 5x5" msgstr "" -#: backend/fujitsu.c:3451 +#: backend/fujitsu.c:3455 #, no-c-format msgid "Remove 5 pixel square noise" msgstr "" -#: backend/fujitsu.c:3467 +#: backend/fujitsu.c:3471 #, no-c-format msgid "Matrix 4x4" msgstr "" -#: backend/fujitsu.c:3468 +#: backend/fujitsu.c:3472 #, no-c-format msgid "Remove 4 pixel square noise" msgstr "" -#: backend/fujitsu.c:3484 +#: backend/fujitsu.c:3488 #, no-c-format msgid "Matrix 3x3" msgstr "" -#: backend/fujitsu.c:3485 +#: backend/fujitsu.c:3489 #, no-c-format msgid "Remove 3 pixel square noise" msgstr "" -#: backend/fujitsu.c:3501 +#: backend/fujitsu.c:3505 #, no-c-format msgid "Matrix 2x2" msgstr "" -#: backend/fujitsu.c:3502 +#: backend/fujitsu.c:3506 #, no-c-format msgid "Remove 2 pixel square noise" msgstr "" -#: backend/fujitsu.c:3521 +#: backend/fujitsu.c:3525 #, no-c-format msgid "Variance" msgstr "" -#: backend/fujitsu.c:3522 +#: backend/fujitsu.c:3526 #, no-c-format msgid "Set SDTC variance rate (sensitivity), 0 equals 127" msgstr "" -#: backend/fujitsu.c:3555 +#: backend/fujitsu.c:3559 #, fuzzy, no-c-format msgid "Auto width detection" msgstr "Без коррекции" -#: backend/fujitsu.c:3556 +#: backend/fujitsu.c:3560 #, no-c-format msgid "Scanner detects paper sides. May reduce scanning speed." msgstr "" -#: backend/fujitsu.c:3573 +#: backend/fujitsu.c:3577 #, fuzzy, no-c-format msgid "Auto length detection" msgstr "Без коррекции" -#: backend/fujitsu.c:3574 +#: backend/fujitsu.c:3578 #, no-c-format msgid "Scanner detects paper lower edge. May confuse some frontends." msgstr "" -#: backend/fujitsu.c:3600 +#: backend/fujitsu.c:3604 #, no-c-format msgid "Compression" msgstr "" -#: backend/fujitsu.c:3601 +#: backend/fujitsu.c:3605 #, no-c-format msgid "Enable compressed data. May crash your front-end program" msgstr "" -#: backend/fujitsu.c:3621 +#: backend/fujitsu.c:3625 #, no-c-format msgid "Compression argument" msgstr "" -#: backend/fujitsu.c:3622 +#: backend/fujitsu.c:3626 #, no-c-format msgid "" "Level of JPEG compression. 1 is small file, 7 is large file. 0 (default) " "is same as 4" msgstr "" -#: backend/fujitsu.c:3652 +#: backend/fujitsu.c:3656 #, no-c-format msgid "DF action" msgstr "" -#: backend/fujitsu.c:3653 +#: backend/fujitsu.c:3657 #, no-c-format msgid "Action following double feed error" msgstr "" -#: backend/fujitsu.c:3669 +#: backend/fujitsu.c:3673 #, no-c-format msgid "DF skew" msgstr "" -#: backend/fujitsu.c:3670 +#: backend/fujitsu.c:3674 #, no-c-format msgid "Enable double feed error due to skew" msgstr "" -#: backend/fujitsu.c:3688 +#: backend/fujitsu.c:3692 #, no-c-format msgid "DF thickness" msgstr "" -#: backend/fujitsu.c:3689 +#: backend/fujitsu.c:3693 #, no-c-format msgid "Enable double feed error due to paper thickness" msgstr "" -#: backend/fujitsu.c:3707 +#: backend/fujitsu.c:3711 #, no-c-format msgid "DF length" msgstr "" -#: backend/fujitsu.c:3708 +#: backend/fujitsu.c:3712 #, no-c-format msgid "Enable double feed error due to paper length" msgstr "" -#: backend/fujitsu.c:3731 +#: backend/fujitsu.c:3735 #, no-c-format msgid "DF length difference" msgstr "" -#: backend/fujitsu.c:3732 +#: backend/fujitsu.c:3736 #, no-c-format msgid "Difference in page length to trigger double feed error" msgstr "" -#: backend/fujitsu.c:3755 +#: backend/fujitsu.c:3759 #, fuzzy, no-c-format msgid "DF recovery mode" msgstr "Режим подачи" -#: backend/fujitsu.c:3756 +#: backend/fujitsu.c:3760 #, no-c-format msgid "Request scanner to reverse feed on paper jam" msgstr "" -#: backend/fujitsu.c:3775 +#: backend/fujitsu.c:3779 #, no-c-format msgid "Paper protection" msgstr "" -#: backend/fujitsu.c:3776 +#: backend/fujitsu.c:3780 #, no-c-format msgid "Request scanner to predict jams in the ADF" msgstr "" -#: backend/fujitsu.c:3795 +#: backend/fujitsu.c:3799 #, fuzzy, no-c-format msgid "Advanced paper protection" msgstr "Дополнительные параметры" -#: backend/fujitsu.c:3796 +#: backend/fujitsu.c:3800 #, no-c-format msgid "Request scanner to predict jams in the ADF using improved sensors" msgstr "" -#: backend/fujitsu.c:3815 +#: backend/fujitsu.c:3819 #, fuzzy, no-c-format msgid "Staple detection" msgstr "Без коррекции" -#: backend/fujitsu.c:3816 +#: backend/fujitsu.c:3820 #, no-c-format msgid "Request scanner to detect jams in the ADF caused by staples" msgstr "" -#: backend/fujitsu.c:3835 +#: backend/fujitsu.c:3839 #, no-c-format msgid "Background color" msgstr "" -#: backend/fujitsu.c:3836 +#: backend/fujitsu.c:3840 #, no-c-format msgid "" "Set color of background for scans. May conflict with overscan option" msgstr "" -#: backend/fujitsu.c:3856 +#: backend/fujitsu.c:3860 #, fuzzy, no-c-format msgid "Dropout color" msgstr "Включить лампу" -#: backend/fujitsu.c:3857 +#: backend/fujitsu.c:3861 #, no-c-format msgid "" "One-pass scanners use only one color during gray or binary scanning, " "useful for colored paper or ink" msgstr "" -#: backend/fujitsu.c:3880 +#: backend/fujitsu.c:3884 #, fuzzy, no-c-format msgid "Buffer mode" msgstr "Режим подачи" -#: backend/fujitsu.c:3881 +#: backend/fujitsu.c:3885 #, no-c-format msgid "Request scanner to read pages quickly from ADF into internal memory" msgstr "" -#: backend/fujitsu.c:3900 +#: backend/fujitsu.c:3904 #, no-c-format msgid "Prepick" msgstr "" -#: backend/fujitsu.c:3901 +#: backend/fujitsu.c:3905 #, no-c-format msgid "Request scanner to grab next page from ADF" msgstr "" -#: backend/fujitsu.c:3920 +#: backend/fujitsu.c:3924 #, no-c-format msgid "Overscan" msgstr "" -#: backend/fujitsu.c:3921 +#: backend/fujitsu.c:3925 #, no-c-format msgid "" "Collect a few mm of background on top side of scan, before paper enters " @@ -2642,65 +2671,65 @@ msgid "" "collection on remaining sides. May conflict with bgcolor option" msgstr "" -#: backend/fujitsu.c:3939 +#: backend/fujitsu.c:3943 #, no-c-format msgid "Sleep timer" msgstr "" -#: backend/fujitsu.c:3940 +#: backend/fujitsu.c:3944 #, no-c-format msgid "" "Time in minutes until the internal power supply switches to sleep mode" msgstr "" -#: backend/fujitsu.c:3958 +#: backend/fujitsu.c:3962 #, fuzzy, no-c-format msgid "Off timer" msgstr "Время выключения лампы" -#: backend/fujitsu.c:3959 +#: backend/fujitsu.c:3963 #, no-c-format msgid "" "Time in minutes until the internal power supply switches the scanner " "off. Will be rounded to nearest 15 minutes. Zero means never power off." msgstr "" -#: backend/fujitsu.c:3977 +#: backend/fujitsu.c:3981 #, fuzzy, no-c-format msgid "Duplex offset" msgstr "Смещение синего" -#: backend/fujitsu.c:3978 +#: backend/fujitsu.c:3982 #, no-c-format msgid "Adjust front/back offset" msgstr "" -#: backend/fujitsu.c:3995 backend/plustek.c:1025 backend/umax_pp.c:800 +#: backend/fujitsu.c:3999 backend/plustek.c:1025 backend/umax_pp.c:794 #, no-c-format msgid "Green offset" msgstr "Смещение зелёного" -#: backend/fujitsu.c:3996 +#: backend/fujitsu.c:4000 #, fuzzy, no-c-format msgid "Adjust green/red offset" msgstr "Смещение зелёного" -#: backend/fujitsu.c:4013 backend/plustek.c:1041 backend/umax_pp.c:812 +#: backend/fujitsu.c:4017 backend/plustek.c:1041 backend/umax_pp.c:806 #, no-c-format msgid "Blue offset" msgstr "Смещение синего" -#: backend/fujitsu.c:4014 +#: backend/fujitsu.c:4018 #, fuzzy, no-c-format msgid "Adjust blue/red offset" msgstr "Устанавливает смещение канала синего" -#: backend/fujitsu.c:4027 +#: backend/fujitsu.c:4031 #, no-c-format msgid "Low Memory" msgstr "" -#: backend/fujitsu.c:4028 +#: backend/fujitsu.c:4032 #, no-c-format msgid "" "Limit driver memory usage for use in embedded systems. Causes some " @@ -2709,418 +2738,406 @@ msgid "" "only be used with custom front-end software." msgstr "" -#: backend/fujitsu.c:4043 +#: backend/fujitsu.c:4047 #, fuzzy, no-c-format msgid "Duplex side" msgstr "Двухстороннее сканирование" -#: backend/fujitsu.c:4044 +#: backend/fujitsu.c:4048 #, no-c-format msgid "" "Tells which side (0=front, 1=back) of a duplex scan the next call to " "sane_read will return." msgstr "" -#: backend/fujitsu.c:4055 +#: backend/fujitsu.c:4059 #, no-c-format msgid "Hardware deskew and crop" msgstr "" -#: backend/fujitsu.c:4056 +#: backend/fujitsu.c:4060 #, no-c-format msgid "Request scanner to rotate and crop pages digitally." msgstr "" -#: backend/fujitsu.c:4067 backend/kvs1025_opt.c:871 +#: backend/fujitsu.c:4071 backend/kvs1025_opt.c:871 #, no-c-format msgid "Software deskew" msgstr "" -#: backend/fujitsu.c:4068 +#: backend/fujitsu.c:4072 #, no-c-format msgid "Request driver to rotate skewed pages digitally." msgstr "" -#: backend/fujitsu.c:4080 backend/kvs1025_opt.c:880 +#: backend/fujitsu.c:4084 backend/kvs1025_opt.c:880 #, no-c-format msgid "Software despeckle diameter" msgstr "" -#: backend/fujitsu.c:4081 +#: backend/fujitsu.c:4085 #, no-c-format msgid "Maximum diameter of lone dots to remove from scan." msgstr "" -#: backend/fujitsu.c:4100 backend/genesys/genesys.cpp:4117 +#: backend/fujitsu.c:4104 backend/genesys/genesys.cpp:4159 #, no-c-format msgid "Software crop" msgstr "" -#: backend/fujitsu.c:4101 +#: backend/fujitsu.c:4105 #, no-c-format msgid "Request driver to remove border from pages digitally." msgstr "" -#: backend/fujitsu.c:4130 +#: backend/fujitsu.c:4134 #, no-c-format msgid "Halt on Cancel" msgstr "" -#: backend/fujitsu.c:4131 +#: backend/fujitsu.c:4135 #, no-c-format msgid "" "Request driver to halt the paper feed instead of eject during a cancel." msgstr "" -#: backend/fujitsu.c:4142 +#: backend/fujitsu.c:4146 #, fuzzy, no-c-format msgid "Endorser Options" msgstr "Дополнительные параметры" -#: backend/fujitsu.c:4143 +#: backend/fujitsu.c:4147 #, no-c-format msgid "Controls for endorser unit" msgstr "" -#: backend/fujitsu.c:4154 +#: backend/fujitsu.c:4158 #, no-c-format msgid "Endorser" msgstr "" -#: backend/fujitsu.c:4155 +#: backend/fujitsu.c:4159 #, no-c-format msgid "Enable endorser unit" msgstr "" -#: backend/fujitsu.c:4170 +#: backend/fujitsu.c:4174 #, no-c-format msgid "Endorser bits" msgstr "" -#: backend/fujitsu.c:4171 +#: backend/fujitsu.c:4175 #, no-c-format msgid "Determines maximum endorser counter value." msgstr "" -#: backend/fujitsu.c:4196 +#: backend/fujitsu.c:4200 #, no-c-format msgid "Endorser value" msgstr "" -#: backend/fujitsu.c:4197 +#: backend/fujitsu.c:4201 #, no-c-format msgid "Initial endorser counter value." msgstr "" -#: backend/fujitsu.c:4220 +#: backend/fujitsu.c:4224 #, no-c-format msgid "Endorser step" msgstr "" -#: backend/fujitsu.c:4221 +#: backend/fujitsu.c:4225 #, no-c-format msgid "Change endorser counter value by this much for each page." msgstr "" -#: backend/fujitsu.c:4244 +#: backend/fujitsu.c:4248 #, no-c-format msgid "Endorser Y" msgstr "" -#: backend/fujitsu.c:4245 +#: backend/fujitsu.c:4249 #, no-c-format msgid "Endorser print offset from top of paper." msgstr "" -#: backend/fujitsu.c:4270 +#: backend/fujitsu.c:4274 #, no-c-format msgid "Endorser font" msgstr "" -#: backend/fujitsu.c:4271 +#: backend/fujitsu.c:4275 #, no-c-format msgid "Endorser printing font." msgstr "" -#: backend/fujitsu.c:4300 +#: backend/fujitsu.c:4304 #, fuzzy, no-c-format msgid "Endorser direction" msgstr "Уменьшение шумов" -#: backend/fujitsu.c:4301 +#: backend/fujitsu.c:4305 #, no-c-format msgid "Endorser printing direction." msgstr "" -#: backend/fujitsu.c:4325 +#: backend/fujitsu.c:4329 #, no-c-format msgid "Endorser side" msgstr "" -#: backend/fujitsu.c:4326 +#: backend/fujitsu.c:4330 #, no-c-format msgid "Endorser printing side, requires hardware support to change" msgstr "" -#: backend/fujitsu.c:4351 +#: backend/fujitsu.c:4355 #, no-c-format msgid "Endorser string" msgstr "" -#: backend/fujitsu.c:4352 +#: backend/fujitsu.c:4356 #, no-c-format msgid "" "Endorser alphanumeric print format. %05ud or %08ud at the end will be " "replaced by counter value." msgstr "" -#: backend/fujitsu.c:4379 +#: backend/fujitsu.c:4383 #, no-c-format msgid "Top edge" msgstr "" -#: backend/fujitsu.c:4380 +#: backend/fujitsu.c:4384 #, no-c-format msgid "Paper is pulled partly into ADF" msgstr "" -#: backend/fujitsu.c:4391 +#: backend/fujitsu.c:4395 #, fuzzy, no-c-format msgid "A3 paper" msgstr "От бумаги" -#: backend/fujitsu.c:4392 +#: backend/fujitsu.c:4396 #, no-c-format msgid "A3 paper detected" msgstr "" -#: backend/fujitsu.c:4403 +#: backend/fujitsu.c:4407 #, fuzzy, no-c-format msgid "B4 paper" msgstr "От бумаги" -#: backend/fujitsu.c:4404 +#: backend/fujitsu.c:4408 #, no-c-format msgid "B4 paper detected" msgstr "" -#: backend/fujitsu.c:4415 +#: backend/fujitsu.c:4419 #, fuzzy, no-c-format msgid "A4 paper" msgstr "От бумаги" -#: backend/fujitsu.c:4416 +#: backend/fujitsu.c:4420 #, no-c-format msgid "A4 paper detected" msgstr "" -#: backend/fujitsu.c:4427 +#: backend/fujitsu.c:4431 #, fuzzy, no-c-format msgid "B5 paper" msgstr "От бумаги" -#: backend/fujitsu.c:4428 +#: backend/fujitsu.c:4432 #, no-c-format msgid "B5 paper detected" msgstr "" -#: backend/fujitsu.c:4451 +#: backend/fujitsu.c:4455 #, no-c-format msgid "OMR or DF" msgstr "" -#: backend/fujitsu.c:4452 +#: backend/fujitsu.c:4456 #, no-c-format msgid "OMR or double feed detected" msgstr "" -#: backend/fujitsu.c:4475 +#: backend/fujitsu.c:4479 #, no-c-format msgid "Power saving" msgstr "" -#: backend/fujitsu.c:4476 +#: backend/fujitsu.c:4480 #, no-c-format msgid "Scanner in power saving mode" msgstr "" -#: backend/fujitsu.c:4499 +#: backend/fujitsu.c:4503 #, fuzzy, no-c-format msgid "Manual feed" msgstr "Ручная предварительная фокусировка" -#: backend/fujitsu.c:4500 +#: backend/fujitsu.c:4504 #, fuzzy, no-c-format msgid "Manual feed selected" msgstr "Ручная предварительная фокусировка" -#: backend/fujitsu.c:4523 +#: backend/fujitsu.c:4527 #, no-c-format msgid "Function" msgstr "" -#: backend/fujitsu.c:4524 +#: backend/fujitsu.c:4528 #, no-c-format msgid "Function character on screen" msgstr "" -#: backend/fujitsu.c:4535 +#: backend/fujitsu.c:4539 #, no-c-format msgid "Ink low" msgstr "" -#: backend/fujitsu.c:4536 +#: backend/fujitsu.c:4540 #, no-c-format msgid "Imprinter ink running low" msgstr "" -#: backend/fujitsu.c:4547 +#: backend/fujitsu.c:4551 #, no-c-format msgid "Double feed" msgstr "" -#: backend/fujitsu.c:4548 +#: backend/fujitsu.c:4552 #, no-c-format msgid "Double feed detected" msgstr "" -#: backend/fujitsu.c:4559 +#: backend/fujitsu.c:4563 #, no-c-format msgid "Error code" msgstr "" -#: backend/fujitsu.c:4560 +#: backend/fujitsu.c:4564 #, fuzzy, no-c-format msgid "Hardware error code" msgstr "Разрешение сканирования" -#: backend/fujitsu.c:4571 +#: backend/fujitsu.c:4575 #, no-c-format msgid "Skew angle" msgstr "" -#: backend/fujitsu.c:4572 +#: backend/fujitsu.c:4576 #, no-c-format msgid "Requires black background for scanning" msgstr "" -#: backend/fujitsu.c:4583 +#: backend/fujitsu.c:4587 #, no-c-format msgid "Ink remaining" msgstr "" -#: backend/fujitsu.c:4584 +#: backend/fujitsu.c:4588 #, fuzzy, no-c-format msgid "Imprinter ink level" msgstr "Уровень белого" -#: backend/fujitsu.c:4595 +#: backend/fujitsu.c:4599 #, fuzzy, no-c-format msgid "Density" msgstr "Интенсивность красного" -#: backend/fujitsu.c:4596 +#: backend/fujitsu.c:4600 #, no-c-format msgid "Density dial" msgstr "" -#: backend/fujitsu.c:4607 backend/fujitsu.c:4608 +#: backend/fujitsu.c:4611 backend/fujitsu.c:4612 #, fuzzy, no-c-format msgid "Duplex switch" msgstr "Двухстороннее сканирование" -#: backend/genesys/genesys.cpp:4118 +#: backend/genesys/genesys.cpp:4160 #, no-c-format msgid "Request backend to remove border from pages digitally" msgstr "" -#: backend/genesys/genesys.cpp:4127 backend/kvs1025_opt.c:912 +#: backend/genesys/genesys.cpp:4169 backend/kvs1025_opt.c:912 #, no-c-format msgid "Request driver to discard pages with low numbers of dark pixels" msgstr "" -#: backend/genesys/genesys.cpp:4137 backend/kvs1025_opt.c:892 +#: backend/genesys/genesys.cpp:4179 backend/kvs1025_opt.c:892 #, no-c-format msgid "Software derotate" msgstr "" -#: backend/genesys/genesys.cpp:4138 backend/kvs1025_opt.c:894 +#: backend/genesys/genesys.cpp:4180 backend/kvs1025_opt.c:894 #, no-c-format msgid "Request driver to detect and correct 90 degree image rotation" msgstr "" -#: backend/genesys/genesys.cpp:4168 backend/pixma_sane_options.c:314 +#: backend/genesys/genesys.cpp:4210 backend/pixma/pixma_sane_options.c:314 #, no-c-format msgid "Extras" msgstr "Дополнительно" -#: backend/genesys/genesys.cpp:4188 backend/pixma_sane_options.c:336 +#: backend/genesys/genesys.cpp:4230 backend/pixma/pixma_sane_options.c:336 #, no-c-format msgid "Dynamic threshold curve, from light to dark, normally 50-65" msgstr "" -#: backend/genesys/genesys.cpp:4197 -#, no-c-format -msgid "Disable dynamic lineart" -msgstr "" - -#: backend/genesys/genesys.cpp:4199 -#, no-c-format -msgid "" -"Disable use of a software adaptive algorithm to generate lineart relying " -"instead on hardware lineart." -msgstr "" - -#: backend/genesys/genesys.cpp:4215 +#: backend/genesys/genesys.cpp:4240 #, fuzzy, no-c-format msgid "Disable interpolation" msgstr "Выключить отслеживание" -#: backend/genesys/genesys.cpp:4218 +#: backend/genesys/genesys.cpp:4243 #, no-c-format msgid "" "When using high resolutions where the horizontal resolution is smaller " "than the vertical resolution this disables horizontal interpolation." msgstr "" -#: backend/genesys/genesys.cpp:4227 +#: backend/genesys/genesys.cpp:4252 #, fuzzy, no-c-format msgid "Color filter" msgstr "Цветное штриховое" -#: backend/genesys/genesys.cpp:4230 +#: backend/genesys/genesys.cpp:4255 #, no-c-format msgid "When using gray or lineart this option selects the used color." msgstr "" -#: backend/genesys/genesys.cpp:4254 +#: backend/genesys/genesys.cpp:4279 #, fuzzy, no-c-format msgid "Calibration file" msgstr "Калибровка" -#: backend/genesys/genesys.cpp:4255 +#: backend/genesys/genesys.cpp:4280 #, fuzzy, no-c-format msgid "Specify the calibration file to use" msgstr "Задать режим калибровки" -#: backend/genesys/genesys.cpp:4272 +#: backend/genesys/genesys.cpp:4297 #, fuzzy, no-c-format msgid "Calibration cache expiration time" msgstr "Кэширование калибровочных данных" -#: backend/genesys/genesys.cpp:4273 +#: backend/genesys/genesys.cpp:4298 #, no-c-format msgid "" "Time (in minutes) before a cached calibration expires. A value of 0 " "means cache is not used. A negative value means cache never expires." msgstr "" -#: backend/genesys/genesys.cpp:4283 +#: backend/genesys/genesys.cpp:4308 #, no-c-format msgid "Lamp off time" msgstr "Время выключения лампы" -#: backend/genesys/genesys.cpp:4286 +#: backend/genesys/genesys.cpp:4311 #, no-c-format msgid "" "The lamp will be turned off after the given time (in minutes). A value " @@ -3129,103 +3146,108 @@ msgstr "" "Лампа будет выключена через указанное время (в минутах). Значение 0 " "означает, что лампа выключаться не будет." -#: backend/genesys/genesys.cpp:4296 +#: backend/genesys/genesys.cpp:4321 #, fuzzy, no-c-format msgid "Lamp off during scan" msgstr "Грубая калибровка" -#: backend/genesys/genesys.cpp:4297 +#: backend/genesys/genesys.cpp:4322 #, no-c-format msgid "The lamp will be turned off during scan. " msgstr "" -#: backend/genesys/genesys.cpp:4324 backend/genesys/genesys.cpp:4325 +#: backend/genesys/genesys.cpp:4349 backend/genesys/genesys.cpp:4350 #, fuzzy, no-c-format msgid "File button" msgstr "Ожидать нажатия кнопки" -#: backend/genesys/genesys.cpp:4369 backend/genesys/genesys.cpp:4370 +#: backend/genesys/genesys.cpp:4394 backend/genesys/genesys.cpp:4395 #, no-c-format msgid "OCR button" msgstr "" -#: backend/genesys/genesys.cpp:4381 backend/genesys/genesys.cpp:4382 +#: backend/genesys/genesys.cpp:4406 backend/genesys/genesys.cpp:4407 #, fuzzy, no-c-format msgid "Power button" msgstr "Ожидать нажатия кнопки" -#: backend/genesys/genesys.cpp:4393 backend/genesys/genesys.cpp:4394 +#: backend/genesys/genesys.cpp:4418 backend/genesys/genesys.cpp:4419 #, fuzzy, no-c-format msgid "Extra button" msgstr "Ожидать нажатия кнопки" -#: backend/genesys/genesys.cpp:4405 backend/gt68xx.c:755 +#: backend/genesys/genesys.cpp:4430 backend/gt68xx.c:755 #, fuzzy, no-c-format msgid "Needs calibration" msgstr "Грубая калибровка" -#: backend/genesys/genesys.cpp:4406 backend/gt68xx.c:756 +#: backend/genesys/genesys.cpp:4431 backend/gt68xx.c:756 backend/p5.c:1928 #, fuzzy, no-c-format msgid "The scanner needs calibration for the current settings" msgstr "Выполнять калибровку сканера перед сканированием" -#: backend/genesys/genesys.cpp:4417 backend/gt68xx.c:780 -#: backend/gt68xx.c:781 backend/pixma_sane_options.c:226 -#: backend/plustek.c:1080 +#: backend/genesys/genesys.cpp:4442 backend/gt68xx.c:780 +#: backend/gt68xx.c:781 backend/p5.c:1937 backend/p5.c:1938 +#: backend/pixma/pixma_sane_options.c:226 backend/plustek.c:1080 #, no-c-format msgid "Buttons" msgstr "Кнопки" -#: backend/genesys/genesys.cpp:4426 backend/gt68xx.c:787 -#: backend/hp5400_sane.c:392 backend/hp-option.h:97 backend/niash.c:726 -#: backend/plustek.c:941 +#: backend/genesys/genesys.cpp:4451 backend/gt68xx.c:787 +#: backend/hp-option.h:97 backend/hp5400_sane.c:392 backend/niash.c:726 +#: backend/p5.c:1945 backend/plustek.c:941 #, no-c-format msgid "Calibrate" msgstr "Калибровка" -#: backend/genesys/genesys.cpp:4428 backend/gt68xx.c:789 +#: backend/genesys/genesys.cpp:4453 backend/gt68xx.c:789 backend/p5.c:1947 #, fuzzy, no-c-format msgid "Start calibration using special sheet" msgstr "Начать процесс калибровки." -#: backend/genesys/genesys.cpp:4440 backend/gt68xx.c:802 +#: backend/genesys/genesys.cpp:4465 backend/gt68xx.c:802 backend/p5.c:1958 #, fuzzy, no-c-format msgid "Clear calibration" msgstr "Грубая калибровка" -#: backend/genesys/genesys.cpp:4441 backend/gt68xx.c:803 +#: backend/genesys/genesys.cpp:4466 backend/gt68xx.c:803 backend/p5.c:1960 #, fuzzy, no-c-format msgid "Clear calibration cache" msgstr "Кэширование калибровочных данных" -#: backend/genesys/genesys.cpp:4451 +#: backend/genesys/genesys.cpp:4476 #, fuzzy, no-c-format msgid "Force calibration" msgstr "Грубая калибровка" -#: backend/genesys/genesys.cpp:4452 +#: backend/genesys/genesys.cpp:4477 #, no-c-format msgid "Force calibration ignoring all and any calibration caches" msgstr "" -#: backend/genesys/genesys.cpp:4462 +#: backend/genesys/genesys.cpp:4487 #, fuzzy, no-c-format msgid "Ignore internal offsets" msgstr "Смещение зелёного" -#: backend/genesys/genesys.cpp:4464 +#: backend/genesys/genesys.cpp:4489 #, no-c-format msgid "" "Acquires the image including the internal calibration areas of the " "scanner" msgstr "" -#: backend/gt68xx.c:149 backend/ma1509.c:108 backend/mustek.c:164 -#: backend/snapscan-options.c:87 backend/umax.c:182 +#: backend/genesys/genesys.h:79 backend/gt68xx.c:149 backend/ma1509.c:108 +#: backend/mustek.c:164 backend/snapscan-options.c:87 backend/umax.c:182 #, no-c-format msgid "Transparency Adapter" msgstr "Слайд-модуль" +#: backend/genesys/genesys.h:80 +#, fuzzy, no-c-format +msgid "Transparency Adapter Infrared" +msgstr "Слайд-модуль" + #: backend/gt68xx.c:470 #, no-c-format msgid "Gray mode color" @@ -3335,6 +3357,311 @@ msgstr "Значение гаммы" msgid "Sets the gamma value of all channels." msgstr "Устанавливает значение гаммы всех каналов." +#: backend/hp-option.c:2987 +#, no-c-format +msgid "Advanced Options" +msgstr "Дополнительные параметры" + +#: backend/hp-option.c:3044 +#, no-c-format +msgid "Coarse" +msgstr "Грубое" + +#: backend/hp-option.c:3045 +#, no-c-format +msgid "Fine" +msgstr "Точное" + +#: backend/hp-option.c:3046 +#, no-c-format +msgid "Bayer" +msgstr "" + +#: backend/hp-option.c:3049 backend/hp-option.c:3100 +#, no-c-format +msgid "Custom" +msgstr "Пользовательское" + +#: backend/hp-option.c:3090 backend/hp-option.c:3146 +#: backend/hp-option.c:3161 +#, no-c-format +msgid "Auto" +msgstr "Автоматически" + +#: backend/hp-option.c:3091 +#, no-c-format +msgid "NTSC RGB" +msgstr "NTSC RGB" + +#: backend/hp-option.c:3092 +#, no-c-format +msgid "XPA RGB" +msgstr "XPA RGB" + +#: backend/hp-option.c:3093 +#, no-c-format +msgid "Pass-through" +msgstr "Пропускать сквозь" + +#: backend/hp-option.c:3094 +#, no-c-format +msgid "NTSC Gray" +msgstr "Чёрно-белое NTSC" + +#: backend/hp-option.c:3095 +#, no-c-format +msgid "XPA Gray" +msgstr "Чёрно-белое XPA" + +#: backend/hp-option.c:3147 +#, no-c-format +msgid "Slow" +msgstr "Медленно" + +#: backend/hp-option.c:3148 backend/hp-option.c:3255 +#: backend/kvs40xx_opt.c:230 backend/matsushita.c:244 backend/mustek.c:149 +#: backend/plustek.c:234 backend/plustek_pp.c:203 backend/u12.c:155 +#, no-c-format +msgid "Normal" +msgstr "Нормально" + +#: backend/hp-option.c:3149 +#, no-c-format +msgid "Fast" +msgstr "Быстро" + +#: backend/hp-option.c:3150 +#, no-c-format +msgid "Extra Fast" +msgstr "Очень быстро" + +#: backend/hp-option.c:3163 +#, no-c-format +msgid "2-pixel" +msgstr "Двухточечное" + +#: backend/hp-option.c:3164 +#, no-c-format +msgid "4-pixel" +msgstr "Четырёхточечное" + +#: backend/hp-option.c:3165 +#, no-c-format +msgid "8-pixel" +msgstr "Восьмиточечное" + +#: backend/hp-option.c:3176 +#, no-c-format +msgid "Print" +msgstr "Распечатка" + +#: backend/hp-option.c:3177 backend/hp3900_sane.c:427 +#: backend/hp3900_sane.c:1019 +#, no-c-format +msgid "Slide" +msgstr "Слайд" + +#: backend/hp-option.c:3178 +#, no-c-format +msgid "Film-strip" +msgstr "Плёнка" + +#: backend/hp-option.c:3256 backend/hp5590.c:93 +#, no-c-format +msgid "ADF" +msgstr "АПД" + +#: backend/hp-option.c:3257 +#, no-c-format +msgid "XPA" +msgstr "" + +#: backend/hp-option.c:3331 backend/hp-option.c:3344 +#, no-c-format +msgid "Conditional" +msgstr "Условно" + +#: backend/hp-option.c:3417 +#, no-c-format +msgid "Experiment" +msgstr "Эксперимент" + +#: backend/hp-option.h:60 +#, no-c-format +msgid "Sharpening" +msgstr "Заострения" + +#: backend/hp-option.h:61 +#, no-c-format +msgid "Set sharpening value." +msgstr "Устанавливает величину заострения." + +#: backend/hp-option.h:66 +#, no-c-format +msgid "Auto Threshold" +msgstr "Автоматический порог" + +#: backend/hp-option.h:68 +#, no-c-format +msgid "Enable automatic determination of threshold for line-art scans." +msgstr "" +"Включает автоматическое определение порога при сканировании штриховых " +"изображений." + +#: backend/hp-option.h:74 +#, no-c-format +msgid "Select smoothing filter." +msgstr "Выберите фильтр для сглаживания." + +#: backend/hp-option.h:79 +#, no-c-format +msgid "Unload media after scan" +msgstr "Выгружать носитель после сканирования" + +#: backend/hp-option.h:80 +#, no-c-format +msgid "Unloads the media after a scan." +msgstr "Выгружает носитель после сканирования." + +#: backend/hp-option.h:85 +#, no-c-format +msgid "Change document" +msgstr "Сменить документ" + +#: backend/hp-option.h:86 +#, no-c-format +msgid "Change Document." +msgstr "Изменить документ." + +#: backend/hp-option.h:91 +#, no-c-format +msgid "Unload" +msgstr "Выгрузить" + +#: backend/hp-option.h:92 +#, no-c-format +msgid "Unload Document." +msgstr "Выгрузить документ." + +#: backend/hp-option.h:98 +#, no-c-format +msgid "Start calibration process." +msgstr "Начать процесс калибровки." + +#: backend/hp-option.h:103 +#, no-c-format +msgid "Media" +msgstr "Носитель" + +#: backend/hp-option.h:104 +#, no-c-format +msgid "Set type of media." +msgstr "Установить тип носителя." + +#: backend/hp-option.h:109 +#, no-c-format +msgid "Exposure time" +msgstr "Время выдержки" + +#: backend/hp-option.h:111 +#, no-c-format +msgid "" +"A longer exposure time lets the scanner collect more light. Suggested " +"use is 175% for prints, 150% for normal slides and \"Negative\" for " +"negative film. For dark (underexposed) images you can increase this " +"value." +msgstr "" +"Длительное время выдержки позволяет сканеру собрать больше света. " +"Рекомендуется использовать 175% для распечаток, 150% для нормальных " +"слайдов и \"Негатив\" для негативов. Для тёмных (недоэкспонированных) " +"изображений вы можете увеличить это значение." + +#: backend/hp-option.h:119 backend/hp-option.h:126 +#, no-c-format +msgid "Color Matrix" +msgstr "Цветовая матрица" + +#: backend/hp-option.h:121 +#, fuzzy, no-c-format +msgid "Set the scanner's color matrix." +msgstr "Устанавливает цветовую матрицу сканера." + +#: backend/hp-option.h:127 +#, no-c-format +msgid "Custom color matrix." +msgstr "Пользовательская цветовая матрица" + +#: backend/hp-option.h:132 +#, no-c-format +msgid "Mono Color Matrix" +msgstr "Однотонная цветовая матрица" + +#: backend/hp-option.h:133 +#, no-c-format +msgid "Custom color matrix for grayscale scans." +msgstr "Пользовательская цветовая матрица для чёрно-белых изображений." + +#: backend/hp-option.h:138 +#, no-c-format +msgid "Mirror horizontal" +msgstr "Отобразить горизонтально" + +#: backend/hp-option.h:139 +#, no-c-format +msgid "Mirror image horizontally." +msgstr "Отображает изображение по горизонтали." + +#: backend/hp-option.h:144 +#, no-c-format +msgid "Mirror vertical" +msgstr "Отобразить вертикально" + +#: backend/hp-option.h:145 +#, no-c-format +msgid "Mirror image vertically." +msgstr "Отображает изображение по вертикали." + +#: backend/hp-option.h:150 +#, no-c-format +msgid "Update options" +msgstr "Обновить параметры" + +#: backend/hp-option.h:151 +#, no-c-format +msgid "Update options." +msgstr "Обновляет параметры." + +#: backend/hp-option.h:156 +#, no-c-format +msgid "8 bit output" +msgstr "Восьмибитный вывод" + +#: backend/hp-option.h:158 +#, no-c-format +msgid "Use bit depth greater eight internally, but output only eight bits." +msgstr "" +"Внутри использовать разрядность более 8 бит, но выводить только 8 бит." + +#: backend/hp-option.h:164 +#, no-c-format +msgid "Front button wait" +msgstr "Ожидать кнопки на лицевой панели" + +#: backend/hp-option.h:165 +#, no-c-format +msgid "Wait to scan for front-panel button push." +msgstr "Ждать нажатия кнопки на передней панели для начала сканирования." + +#: backend/hp-option.h:172 +#, no-c-format +msgid "Shut off lamp" +msgstr "Выключить лампу" + +#: backend/hp-option.h:173 +#, no-c-format +msgid "Shut off scanner lamp." +msgstr "Выключает лампу сканера." + #: backend/hp3500.c:1020 #, fuzzy, no-c-format msgid "Geometry Group" @@ -3345,12 +3672,6 @@ msgstr "Расположение" msgid "Scan Mode Group" msgstr "Режим сканирования" -#: backend/hp3900_sane.c:427 backend/hp3900_sane.c:1019 -#: backend/hp-option.c:3177 -#, no-c-format -msgid "Slide" -msgstr "Слайд" - #: backend/hp3900_sane.c:1405 #, fuzzy, no-c-format msgid "Scanner model" @@ -3544,11 +3865,6 @@ msgstr "Включить/выключить лампу." msgid "Calibrates for black and white level." msgstr "Калибрует для чёрного и белого уровня." -#: backend/hp5590.c:93 backend/hp-option.c:3256 -#, no-c-format -msgid "ADF" -msgstr "АПД" - #: backend/hp5590.c:95 #, fuzzy, no-c-format msgid "TMA Slides" @@ -3659,300 +3975,6 @@ msgid "" "r*65536+256*g+b or gray value (default=violet or gray)" msgstr "" -#: backend/hp-option.c:2987 -#, no-c-format -msgid "Advanced Options" -msgstr "Дополнительные параметры" - -#: backend/hp-option.c:3044 -#, no-c-format -msgid "Coarse" -msgstr "Грубое" - -#: backend/hp-option.c:3045 -#, no-c-format -msgid "Fine" -msgstr "Точное" - -#: backend/hp-option.c:3046 -#, no-c-format -msgid "Bayer" -msgstr "" - -#: backend/hp-option.c:3049 backend/hp-option.c:3100 -#, no-c-format -msgid "Custom" -msgstr "Пользовательское" - -#: backend/hp-option.c:3090 backend/hp-option.c:3146 -#: backend/hp-option.c:3161 -#, no-c-format -msgid "Auto" -msgstr "Автоматически" - -#: backend/hp-option.c:3091 -#, no-c-format -msgid "NTSC RGB" -msgstr "NTSC RGB" - -#: backend/hp-option.c:3092 -#, no-c-format -msgid "XPA RGB" -msgstr "XPA RGB" - -#: backend/hp-option.c:3093 -#, no-c-format -msgid "Pass-through" -msgstr "Пропускать сквозь" - -#: backend/hp-option.c:3094 -#, no-c-format -msgid "NTSC Gray" -msgstr "Чёрно-белое NTSC" - -#: backend/hp-option.c:3095 -#, no-c-format -msgid "XPA Gray" -msgstr "Чёрно-белое XPA" - -#: backend/hp-option.c:3147 -#, no-c-format -msgid "Slow" -msgstr "Медленно" - -#: backend/hp-option.c:3148 backend/hp-option.c:3255 -#: backend/kvs40xx_opt.c:230 backend/matsushita.c:244 backend/mustek.c:149 -#: backend/plustek.c:234 backend/plustek_pp.c:203 backend/u12.c:155 -#, no-c-format -msgid "Normal" -msgstr "Нормально" - -#: backend/hp-option.c:3149 -#, no-c-format -msgid "Fast" -msgstr "Быстро" - -#: backend/hp-option.c:3150 -#, no-c-format -msgid "Extra Fast" -msgstr "Очень быстро" - -#: backend/hp-option.c:3163 -#, no-c-format -msgid "2-pixel" -msgstr "Двухточечное" - -#: backend/hp-option.c:3164 -#, no-c-format -msgid "4-pixel" -msgstr "Четырёхточечное" - -#: backend/hp-option.c:3165 -#, no-c-format -msgid "8-pixel" -msgstr "Восьмиточечное" - -#: backend/hp-option.c:3176 -#, no-c-format -msgid "Print" -msgstr "Распечатка" - -#: backend/hp-option.c:3178 -#, no-c-format -msgid "Film-strip" -msgstr "Плёнка" - -#: backend/hp-option.c:3257 -#, no-c-format -msgid "XPA" -msgstr "" - -#: backend/hp-option.c:3331 backend/hp-option.c:3344 -#, no-c-format -msgid "Conditional" -msgstr "Условно" - -#: backend/hp-option.c:3417 -#, no-c-format -msgid "Experiment" -msgstr "Эксперимент" - -#: backend/hp-option.h:60 -#, no-c-format -msgid "Sharpening" -msgstr "Заострения" - -#: backend/hp-option.h:61 -#, no-c-format -msgid "Set sharpening value." -msgstr "Устанавливает величину заострения." - -#: backend/hp-option.h:66 -#, no-c-format -msgid "Auto Threshold" -msgstr "Автоматический порог" - -#: backend/hp-option.h:68 -#, no-c-format -msgid "Enable automatic determination of threshold for line-art scans." -msgstr "" -"Включает автоматическое определение порога при сканировании штриховых " -"изображений." - -#: backend/hp-option.h:74 -#, no-c-format -msgid "Select smoothing filter." -msgstr "Выберите фильтр для сглаживания." - -#: backend/hp-option.h:79 -#, no-c-format -msgid "Unload media after scan" -msgstr "Выгружать носитель после сканирования" - -#: backend/hp-option.h:80 -#, no-c-format -msgid "Unloads the media after a scan." -msgstr "Выгружает носитель после сканирования." - -#: backend/hp-option.h:85 -#, no-c-format -msgid "Change document" -msgstr "Сменить документ" - -#: backend/hp-option.h:86 -#, no-c-format -msgid "Change Document." -msgstr "Изменить документ." - -#: backend/hp-option.h:91 -#, no-c-format -msgid "Unload" -msgstr "Выгрузить" - -#: backend/hp-option.h:92 -#, no-c-format -msgid "Unload Document." -msgstr "Выгрузить документ." - -#: backend/hp-option.h:98 -#, no-c-format -msgid "Start calibration process." -msgstr "Начать процесс калибровки." - -#: backend/hp-option.h:103 -#, no-c-format -msgid "Media" -msgstr "Носитель" - -#: backend/hp-option.h:104 -#, no-c-format -msgid "Set type of media." -msgstr "Установить тип носителя." - -#: backend/hp-option.h:109 -#, no-c-format -msgid "Exposure time" -msgstr "Время выдержки" - -#: backend/hp-option.h:111 -#, no-c-format -msgid "" -"A longer exposure time lets the scanner collect more light. Suggested " -"use is 175% for prints, 150% for normal slides and \"Negative\" for " -"negative film. For dark (underexposed) images you can increase this " -"value." -msgstr "" -"Длительное время выдержки позволяет сканеру собрать больше света. " -"Рекомендуется использовать 175% для распечаток, 150% для нормальных " -"слайдов и \"Негатив\" для негативов. Для тёмных (недоэкспонированных) " -"изображений вы можете увеличить это значение." - -#: backend/hp-option.h:119 backend/hp-option.h:126 -#, no-c-format -msgid "Color Matrix" -msgstr "Цветовая матрица" - -#: backend/hp-option.h:121 -#, fuzzy, no-c-format -msgid "Set the scanner's color matrix." -msgstr "Устанавливает цветовую матрицу сканера." - -#: backend/hp-option.h:127 -#, no-c-format -msgid "Custom color matrix." -msgstr "Пользовательская цветовая матрица" - -#: backend/hp-option.h:132 -#, no-c-format -msgid "Mono Color Matrix" -msgstr "Однотонная цветовая матрица" - -#: backend/hp-option.h:133 -#, no-c-format -msgid "Custom color matrix for grayscale scans." -msgstr "Пользовательская цветовая матрица для чёрно-белых изображений." - -#: backend/hp-option.h:138 -#, no-c-format -msgid "Mirror horizontal" -msgstr "Отобразить горизонтально" - -#: backend/hp-option.h:139 -#, no-c-format -msgid "Mirror image horizontally." -msgstr "Отображает изображение по горизонтали." - -#: backend/hp-option.h:144 -#, no-c-format -msgid "Mirror vertical" -msgstr "Отобразить вертикально" - -#: backend/hp-option.h:145 -#, no-c-format -msgid "Mirror image vertically." -msgstr "Отображает изображение по вертикали." - -#: backend/hp-option.h:150 -#, no-c-format -msgid "Update options" -msgstr "Обновить параметры" - -#: backend/hp-option.h:151 -#, no-c-format -msgid "Update options." -msgstr "Обновляет параметры." - -#: backend/hp-option.h:156 -#, no-c-format -msgid "8 bit output" -msgstr "Восьмибитный вывод" - -#: backend/hp-option.h:158 -#, no-c-format -msgid "Use bit depth greater eight internally, but output only eight bits." -msgstr "" -"Внутри использовать разрядность более 8 бит, но выводить только 8 бит." - -#: backend/hp-option.h:164 -#, no-c-format -msgid "Front button wait" -msgstr "Ожидать кнопки на лицевой панели" - -#: backend/hp-option.h:165 -#, no-c-format -msgid "Wait to scan for front-panel button push." -msgstr "Ждать нажатия кнопки на передней панели для начала сканирования." - -#: backend/hp-option.h:172 -#, no-c-format -msgid "Shut off lamp" -msgstr "Выключить лампу" - -#: backend/hp-option.h:173 -#, no-c-format -msgid "Shut off scanner lamp." -msgstr "Выключает лампу сканера." - #: backend/kvs1025.h:51 backend/kvs20xx_opt.c:295 backend/kvs40xx_opt.c:516 #: backend/matsushita.h:219 #, no-c-format @@ -4051,7 +4073,7 @@ msgid "single" msgstr "" #: backend/kvs1025_opt.c:73 backend/kvs20xx.c:462 backend/kvs20xx_opt.c:56 -#: backend/kvs40xx.c:704 backend/kvs40xx.c:722 backend/kvs40xx_opt.c:102 +#: backend/kvs40xx.c:705 backend/kvs40xx.c:723 backend/kvs40xx_opt.c:102 #: backend/kvs40xx_opt.c:1087 #, fuzzy, no-c-format msgid "continuous" @@ -4350,7 +4372,7 @@ msgstr "Устанавливает выразительность изображ #: backend/kvs1025_opt.c:807 backend/kvs1025_opt.c:808 #: backend/matsushita.c:1300 backend/matsushita.c:1301 -#: backend/pixma_sane_options.c:112 +#: backend/pixma/pixma_sane_options.c:112 #, no-c-format msgid "Gamma" msgstr "Гамма" @@ -4640,52 +4662,52 @@ msgstr "" msgid "8x8 Vertical Line" msgstr "8x8 вертикальная линия" -#: backend/lexmark.c:273 backend/umax_pp.c:711 +#: backend/lexmark.c:273 backend/umax_pp.c:705 #, no-c-format msgid "Gain" msgstr "Усиление" -#: backend/lexmark.c:274 backend/umax_pp.c:712 +#: backend/lexmark.c:274 backend/umax_pp.c:706 #, no-c-format msgid "Color channels gain settings" msgstr "Настройки усиления цветовых каналов" -#: backend/lexmark.c:283 backend/umax_pp.c:719 +#: backend/lexmark.c:283 backend/umax_pp.c:713 #, no-c-format msgid "Gray gain" msgstr "Усиление серого" -#: backend/lexmark.c:284 backend/umax_pp.c:720 +#: backend/lexmark.c:284 backend/umax_pp.c:714 #, no-c-format msgid "Sets gray channel gain" msgstr "Устанавливает усиление серого канала" -#: backend/lexmark.c:297 backend/plustek.c:1001 backend/umax_pp.c:731 +#: backend/lexmark.c:297 backend/plustek.c:1001 backend/umax_pp.c:725 #, no-c-format msgid "Red gain" msgstr "Усиление красного" -#: backend/lexmark.c:298 backend/umax_pp.c:732 +#: backend/lexmark.c:298 backend/umax_pp.c:726 #, no-c-format msgid "Sets red channel gain" msgstr "Устанавливает усиление красного канала" -#: backend/lexmark.c:311 backend/plustek.c:1017 backend/umax_pp.c:743 +#: backend/lexmark.c:311 backend/plustek.c:1017 backend/umax_pp.c:737 #, no-c-format msgid "Green gain" msgstr "Усиление зелёного" -#: backend/lexmark.c:312 backend/umax_pp.c:744 +#: backend/lexmark.c:312 backend/umax_pp.c:738 #, no-c-format msgid "Sets green channel gain" msgstr "Устанавливает усиление зелёного канала" -#: backend/lexmark.c:325 backend/plustek.c:1033 backend/umax_pp.c:755 +#: backend/lexmark.c:325 backend/plustek.c:1033 backend/umax_pp.c:749 #, no-c-format msgid "Blue gain" msgstr "Усиление синего" -#: backend/lexmark.c:326 backend/umax_pp.c:756 +#: backend/lexmark.c:326 backend/umax_pp.c:750 #, no-c-format msgid "Sets blue channel gain" msgstr "Устанавливает усиление синего канала" @@ -4771,7 +4793,7 @@ msgstr "Одна страница" msgid "All pages" msgstr "Все страницы" -#: backend/matsushita.c:1034 backend/plustek.c:1333 +#: backend/matsushita.c:1034 backend/p5_device.c:8 backend/plustek.c:1333 #, no-c-format msgid "sheetfed scanner" msgstr "листовой сканер" @@ -5291,39 +5313,44 @@ msgstr "" "Разогревать пока яркость лампы не станет постоянной, вместо простого 40-" "тисекундного ожидания разогрева." -#: backend/pixma.c:397 +#: backend/p5.c:1926 +#, fuzzy, no-c-format +msgid "Need calibration" +msgstr "Грубая калибровка" + +#: backend/pixma/pixma.c:397 #, fuzzy, no-c-format msgid "Negative color" msgstr "Негатив" -#: backend/pixma.c:402 +#: backend/pixma/pixma.c:402 #, fuzzy, no-c-format msgid "Negative gray" msgstr "Негатив" -#: backend/pixma.c:415 +#: backend/pixma/pixma.c:415 #, no-c-format msgid "48 bits color" msgstr "" -#: backend/pixma.c:420 +#: backend/pixma/pixma.c:420 #, no-c-format msgid "16 bits gray" msgstr "" -#: backend/pixma_sane_options.c:84 +#: backend/pixma/pixma_sane_options.c:84 #, no-c-format msgid "" "Selects the scan source (such as a document-feeder). Set source before " "mode and resolution. Resets mode and resolution to auto values." msgstr "" -#: backend/pixma_sane_options.c:98 +#: backend/pixma/pixma_sane_options.c:98 #, no-c-format msgid "Button-controlled scan" msgstr "" -#: backend/pixma_sane_options.c:99 +#: backend/pixma/pixma_sane_options.c:99 #, no-c-format msgid "" "When enabled, scan process will not start immediately. To proceed, press " @@ -5331,37 +5358,37 @@ msgid "" "cancel, press \"GRAY\" button." msgstr "" -#: backend/pixma_sane_options.c:232 +#: backend/pixma/pixma_sane_options.c:232 #, fuzzy, no-c-format msgid "Update button state" msgstr "Состояние кнопки" -#: backend/pixma_sane_options.c:244 +#: backend/pixma/pixma_sane_options.c:244 #, fuzzy, no-c-format msgid "Button 1" msgstr "Кнопки" -#: backend/pixma_sane_options.c:258 +#: backend/pixma/pixma_sane_options.c:258 #, fuzzy, no-c-format msgid "Button 2" msgstr "Кнопки" -#: backend/pixma_sane_options.c:272 +#: backend/pixma/pixma_sane_options.c:272 #, no-c-format msgid "Type of original to scan" msgstr "" -#: backend/pixma_sane_options.c:286 +#: backend/pixma/pixma_sane_options.c:286 #, no-c-format msgid "Target operation type" msgstr "" -#: backend/pixma_sane_options.c:348 +#: backend/pixma/pixma_sane_options.c:348 #, no-c-format msgid "ADF Waiting Time" msgstr "" -#: backend/pixma_sane_options.c:349 +#: backend/pixma/pixma_sane_options.c:349 #, no-c-format msgid "" "When set, the scanner waits upto the specified time in seconds for a new " @@ -5453,7 +5480,7 @@ msgstr "" msgid "Red gain value of the AFE" msgstr "" -#: backend/plustek.c:1009 backend/umax_pp.c:788 +#: backend/plustek.c:1009 backend/umax_pp.c:782 #, no-c-format msgid "Red offset" msgstr "Смещение красного" @@ -5716,7 +5743,7 @@ msgstr "" msgid "This option reflects the status of a scanner button." msgstr "Этот параметр отражает состояние кнопок сканера." -#: backend/rts8891.c:2840 backend/umax.c:5795 backend/umax_pp.c:635 +#: backend/rts8891.c:2840 backend/umax.c:5795 backend/umax_pp.c:629 #, no-c-format msgid "Lamp on" msgstr "Включить лампу" @@ -5726,12 +5753,12 @@ msgstr "Включить лампу" msgid "Turn on scanner lamp" msgstr "Включить лампу сканера" -#: backend/rts8891.c:2851 backend/umax1220u.c:248 backend/umax.c:5812 +#: backend/rts8891.c:2851 backend/umax.c:5812 backend/umax1220u.c:248 #, no-c-format msgid "Lamp off" msgstr "Выключить лампу" -#: backend/rts8891.c:2852 backend/umax1220u.c:249 backend/umax.c:5813 +#: backend/rts8891.c:2852 backend/umax.c:5813 backend/umax1220u.c:249 #, no-c-format msgid "Turn off scanner lamp" msgstr "Выключить лампу сканера" @@ -6492,52 +6519,52 @@ msgstr "Режим калибровки" msgid "Define calibration mode" msgstr "Задать режим калибровки" -#: backend/umax_pp.c:636 +#: backend/umax_pp.c:630 #, no-c-format msgid "Sets lamp on/off" msgstr "Включить/выключить лампу" -#: backend/umax_pp.c:645 +#: backend/umax_pp.c:639 #, no-c-format msgid "UTA on" msgstr "включить UTA" -#: backend/umax_pp.c:646 +#: backend/umax_pp.c:640 #, no-c-format msgid "Sets UTA on/off" msgstr "Включить/выключить UTA" -#: backend/umax_pp.c:767 +#: backend/umax_pp.c:761 #, no-c-format msgid "Offset" msgstr "Смещение" -#: backend/umax_pp.c:769 +#: backend/umax_pp.c:763 #, no-c-format msgid "Color channels offset settings" msgstr "Настройки смещения цветовых каналов" -#: backend/umax_pp.c:776 +#: backend/umax_pp.c:770 #, no-c-format msgid "Gray offset" msgstr "Смещение серого" -#: backend/umax_pp.c:777 +#: backend/umax_pp.c:771 #, no-c-format msgid "Sets gray channel offset" msgstr "Устанавливает смещение канала серого" -#: backend/umax_pp.c:789 +#: backend/umax_pp.c:783 #, no-c-format msgid "Sets red channel offset" msgstr "Устанавливает смещение канала красного" -#: backend/umax_pp.c:801 +#: backend/umax_pp.c:795 #, no-c-format msgid "Sets green channel offset" msgstr "Устанавливает смещение канала зелёного" -#: backend/umax_pp.c:813 +#: backend/umax_pp.c:807 #, no-c-format msgid "Sets blue channel offset" msgstr "Устанавливает смещение канала синего" diff --git a/po/sv.po b/po/sv.po index 31e851d9d..5b6eec113 100644 --- a/po/sv.po +++ b/po/sv.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: sane-backends 1.0.18\n" "Report-Msgid-Bugs-To: sane-devel@alioth-lists.debian.net\n" -"POT-Creation-Date: 2019-10-12 17:41+0300\n" +"POT-Creation-Date: 2020-01-12 07:09+0000\n" "PO-Revision-Date: 2012-10-22 11:17+0200\n" "Last-Translator: Mattias Ellert \n" "Language-Team: Swedish \n" @@ -31,23 +31,23 @@ msgid "Standard" msgstr "Standard" #: include/sane/saneopts.h:157 backend/artec_eplus48u.c:2884 -#: backend/epson.c:3298 backend/epson2.c:1290 -#: backend/genesys/genesys.cpp:3976 backend/gt68xx.c:696 -#: backend/hp3500.c:1019 backend/hp-option.c:3300 backend/kvs1025_opt.c:639 +#: backend/epson.c:3298 backend/epson2.c:1290 backend/epsonds.c:677 +#: backend/genesys/genesys.cpp:4034 backend/gt68xx.c:696 +#: backend/hp-option.c:3300 backend/hp3500.c:1019 backend/kvs1025_opt.c:639 #: backend/kvs20xx_opt.c:285 backend/kvs40xx_opt.c:506 backend/leo.c:823 #: backend/lexmark.c:199 backend/ma1509.c:551 backend/matsushita.c:1135 #: backend/microtek2.h:599 backend/mustek.c:4373 backend/mustek_usb.c:301 -#: backend/mustek_usb2.c:465 backend/pixma_sane_options.c:160 +#: backend/mustek_usb2.c:465 backend/pixma/pixma_sane_options.c:160 #: backend/plustek.c:808 backend/plustek_pp.c:747 backend/sceptre.c:702 #: backend/snapscan-options.c:550 backend/teco1.c:1095 backend/teco2.c:1910 #: backend/teco3.c:920 backend/test.c:647 backend/u12.c:546 -#: backend/umax.c:5176 backend/umax_pp.c:576 +#: backend/umax.c:5176 backend/umax_pp.c:570 #, no-c-format msgid "Geometry" msgstr "Geometri" #: include/sane/saneopts.h:158 backend/artec_eplus48u.c:2805 -#: backend/canon.c:1493 backend/genesys/genesys.cpp:4035 +#: backend/canon.c:1493 backend/genesys/genesys.cpp:4077 #: backend/gt68xx.c:665 backend/hp-option.c:2956 backend/kvs1025_opt.c:703 #: backend/leo.c:871 backend/ma1509.c:599 backend/matsushita.c:1189 #: backend/microtek2.h:600 backend/mustek.c:4421 backend/mustek_usb.c:349 @@ -55,7 +55,7 @@ msgstr "Geometri" #: backend/plustek_pp.c:793 backend/sceptre.c:750 #: backend/snapscan-options.c:617 backend/stv680.c:1067 #: backend/teco1.c:1143 backend/teco2.c:1958 backend/teco3.c:968 -#: backend/u12.c:592 backend/umax.c:5226 backend/umax_pp.c:625 +#: backend/u12.c:592 backend/umax.c:5226 backend/umax_pp.c:619 #, no-c-format msgid "Enhancement" msgstr "Förbättring" @@ -89,7 +89,7 @@ msgid "Bit depth" msgstr "Bitdjup" #: include/sane/saneopts.h:165 backend/canon.c:1140 backend/leo.c:781 -#: backend/pixma_sane_options.c:47 +#: backend/pixma/pixma_sane_options.c:47 #, no-c-format msgid "Scan mode" msgstr "Bildläsarläge" @@ -130,7 +130,7 @@ msgid "Bottom-right y" msgstr "Nedre" #: include/sane/saneopts.h:173 backend/canon.c:1216 -#: backend/pixma_sane_options.c:300 +#: backend/pixma/pixma_sane_options.c:300 #, no-c-format msgid "Scan resolution" msgstr "Upplösning" @@ -285,7 +285,7 @@ msgstr "Filnamn" msgid "Halftone pattern size" msgstr "Rastermönstersstorlek" -#: include/sane/saneopts.h:204 backend/fujitsu.c:3233 +#: include/sane/saneopts.h:204 backend/fujitsu.c:3237 #, no-c-format msgid "Halftone pattern" msgstr "Rastermönster" @@ -295,10 +295,10 @@ msgstr "Rastermönster" msgid "Bind X and Y resolution" msgstr "Koppla X- och Y-upplösning" -#: include/sane/saneopts.h:206 backend/hp3900_sane.c:428 -#: backend/hp3900_sane.c:1021 backend/hp3900_sane.c:1421 -#: backend/hp-option.c:3238 backend/mustek_usb2.c:121 backend/plustek.c:236 -#: backend/plustek_pp.c:205 backend/u12.c:157 +#: include/sane/saneopts.h:206 backend/hp-option.c:3238 +#: backend/hp3900_sane.c:428 backend/hp3900_sane.c:1021 +#: backend/hp3900_sane.c:1421 backend/mustek_usb2.c:121 +#: backend/plustek.c:236 backend/plustek_pp.c:205 backend/u12.c:157 #, no-c-format msgid "Negative" msgstr "Negativ" @@ -1029,78 +1029,38 @@ msgid "" "Duplex scan provides a scan of the front and back side of the document" msgstr "Dubbelsidig inläsning läser in dokumentets framsida och baksida" -#: backend/canon630u.c:159 +#: backend/canon-sane.c:674 backend/canon.c:171 #, no-c-format -msgid "Calibrate Scanner" -msgstr "Kalibrera bildläsaren" +msgid "Correction according to transparency ratio" +msgstr "Korrigering beroende på genomlysningskvot" -#: backend/canon630u.c:160 +#: backend/canon-sane.c:680 backend/canon.c:170 #, no-c-format -msgid "Force scanner calibration before scan" -msgstr "Utför bildläsarkalibrering före inläsning" +msgid "Correction according to film type" +msgstr "Korrigering beroende på filmtyp" -#: backend/canon630u.c:259 backend/umax1220u.c:208 -#, no-c-format -msgid "Grayscale scan" -msgstr "Gråskaleinläsning" - -#: backend/canon630u.c:260 backend/umax1220u.c:209 -#, no-c-format -msgid "Do a grayscale rather than color scan" -msgstr "Gör en gråskaleinläsning i stället för en färginläsning" - -#: backend/canon630u.c:306 -#, no-c-format -msgid "Analog Gain" -msgstr "Analog förstärkning" - -#: backend/canon630u.c:307 -#, no-c-format -msgid "Increase or decrease the analog gain of the CCD array" -msgstr "Öka eller minska CCD-sensorns analoga förstärkning" - -#: backend/canon630u.c:347 backend/epson.h:68 backend/epson2.h:67 -#, no-c-format -msgid "Gamma Correction" -msgstr "Gammakorrigering" - -#: backend/canon630u.c:348 -#, no-c-format -msgid "Selects the gamma corrected transfer curve" -msgstr "Väljer gammakorrigerad överföringskurva" - -#: backend/canon.c:149 backend/canon-sane.c:1318 -#, no-c-format -msgid "Raw" -msgstr "Rå" - -#: backend/canon.c:157 backend/canon-sane.c:732 backend/canon-sane.c:940 +#: backend/canon-sane.c:732 backend/canon-sane.c:940 #: backend/canon-sane.c:1076 backend/canon-sane.c:1314 -#: backend/canon-sane.c:1494 backend/canon-sane.c:1643 +#: backend/canon-sane.c:1494 backend/canon-sane.c:1643 backend/canon.c:157 #, no-c-format msgid "Fine color" msgstr "Fin färg" +#: backend/canon-sane.c:776 backend/canon.c:176 +#, no-c-format +msgid "Negatives" +msgstr "Negativ" + +#: backend/canon-sane.c:1318 backend/canon.c:149 +#, no-c-format +msgid "Raw" +msgstr "Rå" + #: backend/canon.c:169 #, no-c-format msgid "No transparency correction" msgstr "Ingen genomlysningskorrigering" -#: backend/canon.c:170 backend/canon-sane.c:680 -#, no-c-format -msgid "Correction according to film type" -msgstr "Korrigering beroende på filmtyp" - -#: backend/canon.c:171 backend/canon-sane.c:674 -#, no-c-format -msgid "Correction according to transparency ratio" -msgstr "Korrigering beroende på genomlysningskvot" - -#: backend/canon.c:176 backend/canon-sane.c:776 -#, no-c-format -msgid "Negatives" -msgstr "Negativ" - #: backend/canon.c:176 #, no-c-format msgid "Slides" @@ -1525,94 +1485,137 @@ msgstr "Välj filmtyp" msgid "Select the film type" msgstr "Välj filmtyp" -#: backend/canon_dr.c:411 backend/epjitsu.c:233 backend/epson.c:501 -#: backend/epson2.c:115 backend/fujitsu.c:675 backend/gt68xx.c:148 +#: backend/canon630u.c:159 +#, no-c-format +msgid "Calibrate Scanner" +msgstr "Kalibrera bildläsaren" + +#: backend/canon630u.c:160 +#, no-c-format +msgid "Force scanner calibration before scan" +msgstr "Utför bildläsarkalibrering före inläsning" + +#: backend/canon630u.c:259 backend/umax1220u.c:208 +#, no-c-format +msgid "Grayscale scan" +msgstr "Gråskaleinläsning" + +#: backend/canon630u.c:260 backend/umax1220u.c:209 +#, no-c-format +msgid "Do a grayscale rather than color scan" +msgstr "Gör en gråskaleinläsning i stället för en färginläsning" + +#: backend/canon630u.c:306 +#, no-c-format +msgid "Analog Gain" +msgstr "Analog förstärkning" + +#: backend/canon630u.c:307 +#, no-c-format +msgid "Increase or decrease the analog gain of the CCD array" +msgstr "Öka eller minska CCD-sensorns analoga förstärkning" + +#: backend/canon630u.c:347 backend/epson.h:68 backend/epson2.h:67 +#, no-c-format +msgid "Gamma Correction" +msgstr "Gammakorrigering" + +#: backend/canon630u.c:348 +#, no-c-format +msgid "Selects the gamma corrected transfer curve" +msgstr "Väljer gammakorrigerad överföringskurva" + +#: backend/canon_dr.c:413 backend/epjitsu.c:233 backend/epson.c:501 +#: backend/epson2-ops.c:101 backend/epson2.c:115 backend/epsonds-ops.c:32 +#: backend/epsonds.c:95 backend/epsonds.h:62 backend/fujitsu.c:677 +#: backend/genesys/genesys.h:78 backend/gt68xx.c:148 #: backend/hp3900_sane.c:418 backend/hp3900_sane.c:427 -#: backend/hp3900_sane.c:1017 backend/hp5590.c:92 backend/ma1509.c:108 -#: backend/magicolor.c:181 backend/mustek.c:156 backend/mustek.c:160 -#: backend/mustek.c:164 backend/pixma.c:920 backend/pixma_sane_options.c:92 -#: backend/snapscan-options.c:86 backend/test.c:192 backend/umax.c:181 +#: backend/hp3900_sane.c:1017 backend/hp5590.c:92 backend/kodakaio.c:617 +#: backend/ma1509.c:108 backend/magicolor.c:181 backend/mustek.c:156 +#: backend/mustek.c:160 backend/mustek.c:164 backend/pixma/pixma.c:920 +#: backend/pixma/pixma_sane_options.c:92 backend/snapscan-options.c:86 +#: backend/test.c:192 backend/umax.c:181 #, no-c-format msgid "Flatbed" msgstr "Flatbädd" -#: backend/canon_dr.c:412 backend/epjitsu.c:234 backend/fujitsu.c:676 +#: backend/canon_dr.c:414 backend/epjitsu.c:234 backend/fujitsu.c:678 #: backend/kodak.c:140 #, no-c-format msgid "ADF Front" msgstr "Automatisk dokumentmatare framsida" -#: backend/canon_dr.c:413 backend/epjitsu.c:235 backend/fujitsu.c:677 +#: backend/canon_dr.c:415 backend/epjitsu.c:235 backend/fujitsu.c:679 #: backend/kodak.c:141 #, no-c-format msgid "ADF Back" msgstr "Automatisk dokumentmatare baksida" -#: backend/canon_dr.c:414 backend/epjitsu.c:236 backend/fujitsu.c:678 -#: backend/hp5590.c:94 backend/kodak.c:142 backend/pixma.c:931 +#: backend/canon_dr.c:416 backend/epjitsu.c:236 backend/fujitsu.c:680 +#: backend/hp5590.c:94 backend/kodak.c:142 backend/pixma/pixma.c:931 #, no-c-format msgid "ADF Duplex" msgstr "Automatisk dokumentmatare dubbelsidigt" -#: backend/canon_dr.c:415 +#: backend/canon_dr.c:417 #, fuzzy, no-c-format msgid "Card Front" msgstr "Framsida" -#: backend/canon_dr.c:416 +#: backend/canon_dr.c:418 #, fuzzy, no-c-format msgid "Card Back" msgstr "Baksida" -#: backend/canon_dr.c:417 +#: backend/canon_dr.c:419 #, fuzzy, no-c-format msgid "Card Duplex" msgstr "Dubbelsidigt" -#: backend/canon_dr.c:424 backend/epson.c:599 backend/epson.c:3096 -#: backend/epson2.c:201 backend/fujitsu.c:695 -#: backend/genesys/genesys.cpp:99 backend/genesys/genesys.cpp:106 +#: backend/canon_dr.c:426 backend/epson.c:599 backend/epson.c:3096 +#: backend/epson2.c:201 backend/fujitsu.c:697 +#: backend/genesys/genesys.cpp:120 backend/genesys/genesys.cpp:127 #: backend/gt68xx_low.h:136 backend/hp-option.c:3096 #, no-c-format msgid "Red" msgstr "Röd" -#: backend/canon_dr.c:425 backend/epson.c:600 backend/epson.c:3092 -#: backend/epson2.c:202 backend/fujitsu.c:696 -#: backend/genesys/genesys.cpp:100 backend/genesys/genesys.cpp:107 +#: backend/canon_dr.c:427 backend/epson.c:600 backend/epson.c:3092 +#: backend/epson2.c:202 backend/fujitsu.c:698 +#: backend/genesys/genesys.cpp:121 backend/genesys/genesys.cpp:128 #: backend/gt68xx_low.h:137 backend/hp-option.c:3097 #, no-c-format msgid "Green" msgstr "Grön" -#: backend/canon_dr.c:426 backend/epson.c:601 backend/epson.c:3100 -#: backend/epson2.c:203 backend/fujitsu.c:697 -#: backend/genesys/genesys.cpp:101 backend/genesys/genesys.cpp:108 +#: backend/canon_dr.c:428 backend/epson.c:601 backend/epson.c:3100 +#: backend/epson2.c:203 backend/fujitsu.c:699 +#: backend/genesys/genesys.cpp:122 backend/genesys/genesys.cpp:129 #: backend/gt68xx_low.h:138 backend/hp-option.c:3098 #, no-c-format msgid "Blue" msgstr "Blå" -#: backend/canon_dr.c:427 +#: backend/canon_dr.c:429 #, no-c-format msgid "Enhance Red" msgstr "Framhäv rött" -#: backend/canon_dr.c:428 +#: backend/canon_dr.c:430 #, no-c-format msgid "Enhance Green" msgstr "Framhäv grönt" -#: backend/canon_dr.c:429 +#: backend/canon_dr.c:431 #, no-c-format msgid "Enhance Blue" msgstr "Framhäv blått" -#: backend/canon_dr.c:431 backend/epson.c:556 backend/epson.c:564 +#: backend/canon_dr.c:433 backend/epson.c:556 backend/epson.c:564 #: backend/epson.c:576 backend/epson.c:598 backend/epson2.c:165 #: backend/epson2.c:173 backend/epson2.c:185 backend/epson2.c:200 -#: backend/epson2.c:214 backend/fujitsu.c:701 -#: backend/genesys/genesys.cpp:109 backend/leo.c:109 +#: backend/epson2.c:214 backend/fujitsu.c:703 +#: backend/genesys/genesys.cpp:130 backend/leo.c:109 #: backend/matsushita.c:138 backend/matsushita.c:159 #: backend/matsushita.c:191 backend/matsushita.c:213 #: backend/snapscan-options.c:91 @@ -1620,42 +1623,46 @@ msgstr "Framhäv blått" msgid "None" msgstr "Inget" -#: backend/canon_dr.c:432 backend/fujitsu.c:702 +#: backend/canon_dr.c:434 backend/fujitsu.c:704 #, no-c-format msgid "JPEG" msgstr "JPEG" -#: backend/canon_dr.c:2477 backend/fujitsu.c:4113 -#: backend/genesys/genesys.cpp:4126 backend/kvs1025_opt.c:910 +#: backend/canon_dr.c:2479 backend/fujitsu.c:4117 +#: backend/genesys/genesys.cpp:4168 backend/kvs1025_opt.c:910 #, no-c-format msgid "Software blank skip percentage" msgstr "Procentsats för hoppa över blanka sidor" -#: backend/canon_dr.c:2478 backend/fujitsu.c:4114 +#: backend/canon_dr.c:2480 backend/fujitsu.c:4118 #, fuzzy, no-c-format msgid "Request driver to discard pages with low percentage of dark pixels" msgstr "Begär att drivrutinen hoppar över sidor med få mörka pixlar" -#: backend/epson.c:491 backend/epson2.c:108 backend/magicolor.c:174 +#: backend/epson.c:491 backend/epson2.c:108 backend/epsonds.c:88 +#: backend/kodakaio.c:611 backend/magicolor.c:174 #, no-c-format msgid "Simplex" msgstr "Enkelsidigt" -#: backend/epson.c:492 backend/epson2.c:109 backend/kvs1025.h:50 -#: backend/kvs20xx_opt.c:204 backend/kvs40xx_opt.c:353 -#: backend/magicolor.c:175 backend/matsushita.h:218 +#: backend/epson.c:492 backend/epson2.c:109 backend/epsonds.c:89 +#: backend/kodakaio.c:612 backend/kvs1025.h:50 backend/kvs20xx_opt.c:204 +#: backend/kvs40xx_opt.c:353 backend/magicolor.c:175 +#: backend/matsushita.h:218 #, no-c-format msgid "Duplex" msgstr "Dubbelsidigt" -#: backend/epson.c:502 backend/epson2.c:116 backend/pixma.c:937 +#: backend/epson.c:502 backend/epson2-ops.c:102 backend/epson2.c:116 +#: backend/epsonds-ops.c:33 backend/epsonds.h:63 backend/pixma/pixma.c:937 #, no-c-format msgid "Transparency Unit" msgstr "Genomlysningsenhet" -#: backend/epson.c:503 backend/epson2.c:118 backend/magicolor.c:182 -#: backend/mustek.c:160 backend/pixma.c:925 backend/test.c:192 -#: backend/umax.c:183 +#: backend/epson.c:503 backend/epson2-ops.c:104 backend/epson2.c:118 +#: backend/epsonds-ops.c:34 backend/epsonds.c:96 backend/epsonds.h:64 +#: backend/kodakaio.c:618 backend/magicolor.c:182 backend/mustek.c:160 +#: backend/pixma/pixma.c:925 backend/test.c:192 backend/umax.c:183 #, no-c-format msgid "Automatic Document Feeder" msgstr "Automatisk dokumentmatare" @@ -1767,7 +1774,7 @@ msgstr "Bläckstråleskrivare" msgid "CRT monitors" msgstr "Bildskärmar (CRT)" -#: backend/epson.c:656 backend/epson2.c:254 backend/fujitsu.c:685 +#: backend/epson.c:656 backend/epson2.c:254 backend/fujitsu.c:687 #: backend/hp-option.c:3229 backend/test.c:143 #, no-c-format msgid "Default" @@ -1831,8 +1838,8 @@ msgstr "A4" msgid "Max" msgstr "Max" -#: backend/epson.c:2813 backend/epson2.c:976 -#: backend/genesys/genesys.cpp:3893 backend/gt68xx.c:451 +#: backend/epson.c:2813 backend/epson2.c:976 backend/epsonds.c:629 +#: backend/genesys/genesys.cpp:3965 backend/gt68xx.c:451 #: backend/hp-option.c:2917 backend/kvs1025_opt.c:521 #: backend/kvs20xx_opt.c:171 backend/kvs40xx_opt.c:320 backend/ma1509.c:501 #: backend/matsushita.c:1084 backend/microtek2.h:598 backend/mustek.c:4215 @@ -2005,17 +2012,17 @@ msgstr "Anger zoom-faktorn som bildläsaren kommer att använda" msgid "Quick format" msgstr "Snabbformatera" -#: backend/epson.c:3360 backend/epson2.c:1340 +#: backend/epson.c:3360 backend/epson2.c:1340 backend/epsonds.c:726 #, no-c-format msgid "Optional equipment" msgstr "Tillvalsutrustning" -#: backend/epson.c:3431 backend/epson2.c:1393 +#: backend/epson.c:3431 backend/epson2.c:1393 backend/epsonds.c:742 #, no-c-format msgid "Eject" msgstr "Mata ut" -#: backend/epson.c:3432 backend/epson2.c:1394 +#: backend/epson.c:3432 backend/epson2.c:1394 backend/epsonds.c:743 #, no-c-format msgid "Eject the sheet in the ADF" msgstr "Mata ut bladet i dokumentmataren" @@ -2030,12 +2037,14 @@ msgstr "Mata ut automatiskt" msgid "Eject document after scanning" msgstr "Mata ut dokument efter inläsning" -#: backend/epson.c:3457 backend/epson2.c:1416 backend/magicolor.c:2420 +#: backend/epson.c:3457 backend/epson2.c:1416 backend/epsonds.c:758 +#: backend/kodakaio.c:2855 backend/magicolor.c:2420 #, no-c-format msgid "ADF Mode" msgstr "Dokumentmatarläge" -#: backend/epson.c:3459 backend/epson2.c:1418 backend/magicolor.c:2422 +#: backend/epson.c:3459 backend/epson2.c:1418 backend/epsonds.c:760 +#: backend/kodakaio.c:2857 backend/magicolor.c:2422 #, no-c-format msgid "Selects the ADF mode (simplex/duplex)" msgstr "" @@ -2088,16 +2097,16 @@ msgstr "" "Efter att ha skickat inläsningskommandot, vänta tills knappen på läsaren " "trycks in för att starta inläsningen." -#: backend/epson2.c:102 backend/pixma.c:409 -#, no-c-format -msgid "Infrared" -msgstr "Infraröd" - -#: backend/epson2.c:117 +#: backend/epson2-ops.c:103 backend/epson2.c:117 #, no-c-format msgid "TPU8x10" msgstr "TPU 8x10" +#: backend/epson2.c:102 backend/pixma/pixma.c:409 +#, no-c-format +msgid "Infrared" +msgstr "Infraröd" + #: backend/epson2.c:136 #, no-c-format msgid "Positive Slide" @@ -2118,494 +2127,514 @@ msgstr "Inbyggd CCT-profil" msgid "User defined CCT profile" msgstr "Användardefinierad CCT-profil" -#: backend/fujitsu.c:686 backend/hp-option.c:3330 backend/hp-option.c:3343 +#: backend/epsonds.c:750 +#, no-c-format +msgid "Load" +msgstr "" + +#: backend/epsonds.c:751 +#, fuzzy, no-c-format +msgid "Load a sheet in the ADF" +msgstr "Mata ut bladet i dokumentmataren" + +#: backend/epsonds.c:771 +#, fuzzy, no-c-format +msgid "ADF Skew Correction" +msgstr "Ingen korrigering" + +#: backend/epsonds.c:773 +#, fuzzy, no-c-format +msgid "Enables ADF skew correction" +msgstr "Stäng av gammakorrigering" + +#: backend/fujitsu.c:688 backend/hp-option.c:3330 backend/hp-option.c:3343 #, no-c-format msgid "On" msgstr "På" -#: backend/fujitsu.c:687 backend/hp-option.c:3162 backend/hp-option.c:3329 +#: backend/fujitsu.c:689 backend/hp-option.c:3162 backend/hp-option.c:3329 #: backend/hp-option.c:3342 #, no-c-format msgid "Off" msgstr "Av" -#: backend/fujitsu.c:689 +#: backend/fujitsu.c:691 #, no-c-format msgid "DTC" msgstr "DTC" -#: backend/fujitsu.c:690 +#: backend/fujitsu.c:692 #, no-c-format msgid "SDTC" msgstr "SDTC" -#: backend/fujitsu.c:692 backend/teco1.c:1152 backend/teco1.c:1153 +#: backend/fujitsu.c:694 backend/teco1.c:1152 backend/teco1.c:1153 #: backend/teco2.c:1967 backend/teco2.c:1968 backend/teco3.c:977 #: backend/teco3.c:978 #, no-c-format msgid "Dither" msgstr "Gitter" -#: backend/fujitsu.c:693 +#: backend/fujitsu.c:695 #, no-c-format msgid "Diffusion" msgstr "Diffusion" -#: backend/fujitsu.c:698 +#: backend/fujitsu.c:700 #, no-c-format msgid "White" msgstr "Vit" -#: backend/fujitsu.c:699 +#: backend/fujitsu.c:701 #, no-c-format msgid "Black" msgstr "Svart" -#: backend/fujitsu.c:704 +#: backend/fujitsu.c:706 #, no-c-format msgid "Continue" msgstr "Fortsätt" -#: backend/fujitsu.c:705 +#: backend/fujitsu.c:707 #, no-c-format msgid "Stop" msgstr "Avsluta" -#: backend/fujitsu.c:707 +#: backend/fujitsu.c:709 #, no-c-format msgid "10mm" msgstr "10 mm" -#: backend/fujitsu.c:708 +#: backend/fujitsu.c:710 #, no-c-format msgid "15mm" msgstr "15 mm" -#: backend/fujitsu.c:709 +#: backend/fujitsu.c:711 #, no-c-format msgid "20mm" msgstr "20 mm" -#: backend/fujitsu.c:711 backend/hp-option.c:3048 +#: backend/fujitsu.c:713 backend/hp-option.c:3048 #, no-c-format msgid "Horizontal" msgstr "Vågrätt" -#: backend/fujitsu.c:712 +#: backend/fujitsu.c:714 #, no-c-format msgid "Horizontal bold" msgstr "Vågrätt fetstil" -#: backend/fujitsu.c:713 +#: backend/fujitsu.c:715 #, no-c-format msgid "Horizontal narrow" msgstr "Vågrätt smal" -#: backend/fujitsu.c:714 backend/hp-option.c:3047 +#: backend/fujitsu.c:716 backend/hp-option.c:3047 #, no-c-format msgid "Vertical" msgstr "Lodrätt" -#: backend/fujitsu.c:715 +#: backend/fujitsu.c:717 #, no-c-format msgid "Vertical bold" msgstr "Lodrätt fetstil" -#: backend/fujitsu.c:717 +#: backend/fujitsu.c:719 #, no-c-format msgid "Top to bottom" msgstr "Uppifrån och ner" -#: backend/fujitsu.c:718 +#: backend/fujitsu.c:720 #, no-c-format msgid "Bottom to top" msgstr "Nerifrån och upp" -#: backend/fujitsu.c:720 +#: backend/fujitsu.c:722 #, no-c-format msgid "Front" msgstr "Framsida" -#: backend/fujitsu.c:721 +#: backend/fujitsu.c:723 #, no-c-format msgid "Back" msgstr "Baksida" -#: backend/fujitsu.c:3144 backend/pixma_sane_options.c:145 +#: backend/fujitsu.c:3148 backend/pixma/pixma_sane_options.c:145 #, no-c-format msgid "Gamma function exponent" msgstr "Gammafunktionsexponent" -#: backend/fujitsu.c:3145 backend/pixma_sane_options.c:146 +#: backend/fujitsu.c:3149 backend/pixma/pixma_sane_options.c:146 #, no-c-format msgid "Changes intensity of midtones" msgstr "Ändrar intensitet hos mellantoner" -#: backend/fujitsu.c:3194 +#: backend/fujitsu.c:3198 #, no-c-format msgid "RIF" msgstr "" -#: backend/fujitsu.c:3195 +#: backend/fujitsu.c:3199 #, fuzzy, no-c-format msgid "Reverse image format" msgstr "Inverterad bild" -#: backend/fujitsu.c:3212 +#: backend/fujitsu.c:3216 #, fuzzy, no-c-format msgid "Halftone type" msgstr "Raster" -#: backend/fujitsu.c:3213 +#: backend/fujitsu.c:3217 #, no-c-format msgid "Control type of halftone filter" msgstr "" -#: backend/fujitsu.c:3234 +#: backend/fujitsu.c:3238 #, no-c-format msgid "Control pattern of halftone filter" msgstr "" -#: backend/fujitsu.c:3256 +#: backend/fujitsu.c:3260 #, no-c-format msgid "Outline" msgstr "" -#: backend/fujitsu.c:3257 +#: backend/fujitsu.c:3261 #, fuzzy, no-c-format msgid "Perform outline extraction" msgstr "Utför kalibrering" -#: backend/fujitsu.c:3268 +#: backend/fujitsu.c:3272 #, fuzzy, no-c-format msgid "Emphasis" msgstr "Bildton" -#: backend/fujitsu.c:3269 +#: backend/fujitsu.c:3273 #, no-c-format msgid "Negative to smooth or positive to sharpen image" msgstr "" -#: backend/fujitsu.c:3287 +#: backend/fujitsu.c:3291 #, fuzzy, no-c-format msgid "Separation" msgstr "Mättnad" -#: backend/fujitsu.c:3288 +#: backend/fujitsu.c:3292 #, fuzzy, no-c-format msgid "Enable automatic separation of image and text" msgstr "" "Möjliggör automatisk bestämning av tröskelvärde för " "streckteckningsinläsningar." -#: backend/fujitsu.c:3299 +#: backend/fujitsu.c:3303 #, fuzzy, no-c-format msgid "Mirroring" msgstr "Spegla bild" -#: backend/fujitsu.c:3300 +#: backend/fujitsu.c:3304 #, fuzzy, no-c-format msgid "Reflect output image horizontally" msgstr "Spegla bilden vågrätt." -#: backend/fujitsu.c:3317 +#: backend/fujitsu.c:3321 #, fuzzy, no-c-format msgid "White level follower" msgstr "Vitnivå för blått" -#: backend/fujitsu.c:3318 +#: backend/fujitsu.c:3322 #, fuzzy, no-c-format msgid "Control white level follower" msgstr "Bestämmer rödnivån" -#: backend/fujitsu.c:3336 +#: backend/fujitsu.c:3340 #, fuzzy, no-c-format msgid "BP filter" msgstr "Färgfilter" -#: backend/fujitsu.c:3337 +#: backend/fujitsu.c:3341 #, no-c-format msgid "Improves quality of high resolution ball-point pen text" msgstr "" -#: backend/fujitsu.c:3353 backend/hp-option.h:73 +#: backend/fujitsu.c:3357 backend/hp-option.h:73 #, no-c-format msgid "Smoothing" msgstr "Utjämning" -#: backend/fujitsu.c:3354 +#: backend/fujitsu.c:3358 #, no-c-format msgid "Enable smoothing for improved OCR" msgstr "" -#: backend/fujitsu.c:3370 +#: backend/fujitsu.c:3374 #, fuzzy, no-c-format msgid "Gamma curve" msgstr "Gammavärde" -#: backend/fujitsu.c:3371 +#: backend/fujitsu.c:3375 #, no-c-format msgid "Gamma curve, from light to dark, but upper two may not work" msgstr "" -#: backend/fujitsu.c:3393 backend/genesys/genesys.cpp:4187 -#: backend/pixma_sane_options.c:335 +#: backend/fujitsu.c:3397 backend/genesys/genesys.cpp:4229 +#: backend/pixma/pixma_sane_options.c:335 #, no-c-format msgid "Threshold curve" msgstr "Tröskelkurva" -#: backend/fujitsu.c:3394 +#: backend/fujitsu.c:3398 #, fuzzy, no-c-format msgid "" "Threshold curve, from light to dark, but upper two may not be linear" msgstr "Dynamisk tröskelkurva, från ljust till mörkt, vanligen 50-65" -#: backend/fujitsu.c:3416 +#: backend/fujitsu.c:3420 #, fuzzy, no-c-format msgid "Threshold white" msgstr "Tröskelvärde" -#: backend/fujitsu.c:3417 +#: backend/fujitsu.c:3421 #, no-c-format msgid "Set pixels equal to threshold to white instead of black" msgstr "" -#: backend/fujitsu.c:3433 backend/fujitsu.c:3434 +#: backend/fujitsu.c:3437 backend/fujitsu.c:3438 #, fuzzy, no-c-format msgid "Noise removal" msgstr "Brusreducering" -#: backend/fujitsu.c:3450 +#: backend/fujitsu.c:3454 #, no-c-format msgid "Matrix 5x5" msgstr "" -#: backend/fujitsu.c:3451 +#: backend/fujitsu.c:3455 #, no-c-format msgid "Remove 5 pixel square noise" msgstr "" -#: backend/fujitsu.c:3467 +#: backend/fujitsu.c:3471 #, no-c-format msgid "Matrix 4x4" msgstr "" -#: backend/fujitsu.c:3468 +#: backend/fujitsu.c:3472 #, no-c-format msgid "Remove 4 pixel square noise" msgstr "" -#: backend/fujitsu.c:3484 +#: backend/fujitsu.c:3488 #, no-c-format msgid "Matrix 3x3" msgstr "" -#: backend/fujitsu.c:3485 +#: backend/fujitsu.c:3489 #, no-c-format msgid "Remove 3 pixel square noise" msgstr "" -#: backend/fujitsu.c:3501 +#: backend/fujitsu.c:3505 #, no-c-format msgid "Matrix 2x2" msgstr "" -#: backend/fujitsu.c:3502 +#: backend/fujitsu.c:3506 #, no-c-format msgid "Remove 2 pixel square noise" msgstr "" -#: backend/fujitsu.c:3521 +#: backend/fujitsu.c:3525 #, no-c-format msgid "Variance" msgstr "" -#: backend/fujitsu.c:3522 +#: backend/fujitsu.c:3526 #, no-c-format msgid "Set SDTC variance rate (sensitivity), 0 equals 127" msgstr "" -#: backend/fujitsu.c:3555 +#: backend/fujitsu.c:3559 #, fuzzy, no-c-format msgid "Auto width detection" msgstr "Ingen detektering" -#: backend/fujitsu.c:3556 +#: backend/fujitsu.c:3560 #, no-c-format msgid "Scanner detects paper sides. May reduce scanning speed." msgstr "" -#: backend/fujitsu.c:3573 +#: backend/fujitsu.c:3577 #, fuzzy, no-c-format msgid "Auto length detection" msgstr "Ingen detektering" -#: backend/fujitsu.c:3574 +#: backend/fujitsu.c:3578 #, no-c-format msgid "Scanner detects paper lower edge. May confuse some frontends." msgstr "" -#: backend/fujitsu.c:3600 +#: backend/fujitsu.c:3604 #, fuzzy, no-c-format msgid "Compression" msgstr "jpeg-komprimmering" -#: backend/fujitsu.c:3601 +#: backend/fujitsu.c:3605 #, no-c-format msgid "Enable compressed data. May crash your front-end program" msgstr "" -#: backend/fujitsu.c:3621 +#: backend/fujitsu.c:3625 #, no-c-format msgid "Compression argument" msgstr "" -#: backend/fujitsu.c:3622 +#: backend/fujitsu.c:3626 #, no-c-format msgid "" "Level of JPEG compression. 1 is small file, 7 is large file. 0 (default) " "is same as 4" msgstr "" -#: backend/fujitsu.c:3652 +#: backend/fujitsu.c:3656 #, no-c-format msgid "DF action" msgstr "" -#: backend/fujitsu.c:3653 +#: backend/fujitsu.c:3657 #, fuzzy, no-c-format msgid "Action following double feed error" msgstr "Ignorera högra dubbelmatningssensorn" -#: backend/fujitsu.c:3669 +#: backend/fujitsu.c:3673 #, no-c-format msgid "DF skew" msgstr "" -#: backend/fujitsu.c:3670 +#: backend/fujitsu.c:3674 #, fuzzy, no-c-format msgid "Enable double feed error due to skew" msgstr "Aktivera/avaktivera dubbelmatningsdetekteing" -#: backend/fujitsu.c:3688 +#: backend/fujitsu.c:3692 #, no-c-format msgid "DF thickness" msgstr "" -#: backend/fujitsu.c:3689 +#: backend/fujitsu.c:3693 #, fuzzy, no-c-format msgid "Enable double feed error due to paper thickness" msgstr "Aktivera/avaktivera dubbelmatningsdetekteing" -#: backend/fujitsu.c:3707 +#: backend/fujitsu.c:3711 #, no-c-format msgid "DF length" msgstr "" -#: backend/fujitsu.c:3708 +#: backend/fujitsu.c:3712 #, fuzzy, no-c-format msgid "Enable double feed error due to paper length" msgstr "Aktivera/avaktivera dubbelmatningsdetekteing" -#: backend/fujitsu.c:3731 +#: backend/fujitsu.c:3735 #, no-c-format msgid "DF length difference" msgstr "" -#: backend/fujitsu.c:3732 +#: backend/fujitsu.c:3736 #, no-c-format msgid "Difference in page length to trigger double feed error" msgstr "" -#: backend/fujitsu.c:3755 +#: backend/fujitsu.c:3759 #, fuzzy, no-c-format msgid "DF recovery mode" msgstr "automatiska dokumentmatarens lock är öppet" -#: backend/fujitsu.c:3756 +#: backend/fujitsu.c:3760 #, fuzzy, no-c-format msgid "Request scanner to reverse feed on paper jam" msgstr "Begär att drivrutinen tar bort ramar från sidor auomatiskt" -#: backend/fujitsu.c:3775 +#: backend/fujitsu.c:3779 #, no-c-format msgid "Paper protection" msgstr "" -#: backend/fujitsu.c:3776 +#: backend/fujitsu.c:3780 #, no-c-format msgid "Request scanner to predict jams in the ADF" msgstr "" -#: backend/fujitsu.c:3795 +#: backend/fujitsu.c:3799 #, fuzzy, no-c-format msgid "Advanced paper protection" msgstr "Avancerade inställningar" -#: backend/fujitsu.c:3796 +#: backend/fujitsu.c:3800 #, no-c-format msgid "Request scanner to predict jams in the ADF using improved sensors" msgstr "" -#: backend/fujitsu.c:3815 +#: backend/fujitsu.c:3819 #, fuzzy, no-c-format msgid "Staple detection" msgstr "Ingen detektering" -#: backend/fujitsu.c:3816 +#: backend/fujitsu.c:3820 #, no-c-format msgid "Request scanner to detect jams in the ADF caused by staples" msgstr "" -#: backend/fujitsu.c:3835 +#: backend/fujitsu.c:3839 #, no-c-format msgid "Background color" msgstr "" -#: backend/fujitsu.c:3836 +#: backend/fujitsu.c:3840 #, no-c-format msgid "" "Set color of background for scans. May conflict with overscan option" msgstr "" -#: backend/fujitsu.c:3856 +#: backend/fujitsu.c:3860 #, fuzzy, no-c-format msgid "Dropout color" msgstr "Blindfärg" -#: backend/fujitsu.c:3857 +#: backend/fujitsu.c:3861 #, no-c-format msgid "" "One-pass scanners use only one color during gray or binary scanning, " "useful for colored paper or ink" msgstr "" -#: backend/fujitsu.c:3880 +#: backend/fujitsu.c:3884 #, fuzzy, no-c-format msgid "Buffer mode" msgstr "Dokumentmatarläge" -#: backend/fujitsu.c:3881 +#: backend/fujitsu.c:3885 #, no-c-format msgid "Request scanner to read pages quickly from ADF into internal memory" msgstr "" -#: backend/fujitsu.c:3900 +#: backend/fujitsu.c:3904 #, no-c-format msgid "Prepick" msgstr "" -#: backend/fujitsu.c:3901 +#: backend/fujitsu.c:3905 #, no-c-format msgid "Request scanner to grab next page from ADF" msgstr "" -#: backend/fujitsu.c:3920 +#: backend/fujitsu.c:3924 #, no-c-format msgid "Overscan" msgstr "" -#: backend/fujitsu.c:3921 +#: backend/fujitsu.c:3925 #, no-c-format msgid "" "Collect a few mm of background on top side of scan, before paper enters " @@ -2613,65 +2642,65 @@ msgid "" "collection on remaining sides. May conflict with bgcolor option" msgstr "" -#: backend/fujitsu.c:3939 +#: backend/fujitsu.c:3943 #, no-c-format msgid "Sleep timer" msgstr "" -#: backend/fujitsu.c:3940 +#: backend/fujitsu.c:3944 #, no-c-format msgid "" "Time in minutes until the internal power supply switches to sleep mode" msgstr "" -#: backend/fujitsu.c:3958 +#: backend/fujitsu.c:3962 #, fuzzy, no-c-format msgid "Off timer" msgstr "Lampavstängningstid" -#: backend/fujitsu.c:3959 +#: backend/fujitsu.c:3963 #, no-c-format msgid "" "Time in minutes until the internal power supply switches the scanner " "off. Will be rounded to nearest 15 minutes. Zero means never power off." msgstr "" -#: backend/fujitsu.c:3977 +#: backend/fujitsu.c:3981 #, fuzzy, no-c-format msgid "Duplex offset" msgstr "Blå offset" -#: backend/fujitsu.c:3978 +#: backend/fujitsu.c:3982 #, no-c-format msgid "Adjust front/back offset" msgstr "" -#: backend/fujitsu.c:3995 backend/plustek.c:1025 backend/umax_pp.c:800 +#: backend/fujitsu.c:3999 backend/plustek.c:1025 backend/umax_pp.c:794 #, no-c-format msgid "Green offset" msgstr "Grön offset" -#: backend/fujitsu.c:3996 +#: backend/fujitsu.c:4000 #, fuzzy, no-c-format msgid "Adjust green/red offset" msgstr "Grön offset" -#: backend/fujitsu.c:4013 backend/plustek.c:1041 backend/umax_pp.c:812 +#: backend/fujitsu.c:4017 backend/plustek.c:1041 backend/umax_pp.c:806 #, no-c-format msgid "Blue offset" msgstr "Blå offset" -#: backend/fujitsu.c:4014 +#: backend/fujitsu.c:4018 #, fuzzy, no-c-format msgid "Adjust blue/red offset" msgstr "Ställer in den blå kanalens offset" -#: backend/fujitsu.c:4027 +#: backend/fujitsu.c:4031 #, fuzzy, no-c-format msgid "Low Memory" msgstr "Slut på minne" -#: backend/fujitsu.c:4028 +#: backend/fujitsu.c:4032 #, no-c-format msgid "" "Limit driver memory usage for use in embedded systems. Causes some " @@ -2680,379 +2709,364 @@ msgid "" "only be used with custom front-end software." msgstr "" -#: backend/fujitsu.c:4043 +#: backend/fujitsu.c:4047 #, fuzzy, no-c-format msgid "Duplex side" msgstr "Dubbelsidig inläsning" -#: backend/fujitsu.c:4044 +#: backend/fujitsu.c:4048 #, no-c-format msgid "" "Tells which side (0=front, 1=back) of a duplex scan the next call to " "sane_read will return." msgstr "" -#: backend/fujitsu.c:4055 +#: backend/fujitsu.c:4059 #, no-c-format msgid "Hardware deskew and crop" msgstr "" -#: backend/fujitsu.c:4056 +#: backend/fujitsu.c:4060 #, fuzzy, no-c-format msgid "Request scanner to rotate and crop pages digitally." msgstr "Begär att drivrutinen linjerar upp sneda sidor digitalt" -#: backend/fujitsu.c:4067 backend/kvs1025_opt.c:871 +#: backend/fujitsu.c:4071 backend/kvs1025_opt.c:871 #, no-c-format msgid "Software deskew" msgstr "Mjukvaruupplinjering" -#: backend/fujitsu.c:4068 +#: backend/fujitsu.c:4072 #, fuzzy, no-c-format msgid "Request driver to rotate skewed pages digitally." msgstr "Begär att drivrutinen linjerar upp sneda sidor digitalt" -#: backend/fujitsu.c:4080 backend/kvs1025_opt.c:880 +#: backend/fujitsu.c:4084 backend/kvs1025_opt.c:880 #, no-c-format msgid "Software despeckle diameter" msgstr "Mjukvarufläckborttagningsdiameter" -#: backend/fujitsu.c:4081 +#: backend/fujitsu.c:4085 #, fuzzy, no-c-format msgid "Maximum diameter of lone dots to remove from scan." msgstr "" "Maximal diameter för ensamma prickar som tas bort från den inlästa bilden" -#: backend/fujitsu.c:4100 backend/genesys/genesys.cpp:4117 +#: backend/fujitsu.c:4104 backend/genesys/genesys.cpp:4159 #, no-c-format msgid "Software crop" msgstr "Mjukvarubeskärning" -#: backend/fujitsu.c:4101 +#: backend/fujitsu.c:4105 #, fuzzy, no-c-format msgid "Request driver to remove border from pages digitally." msgstr "Begär att drivrutinen tar bort ramar från sidor auomatiskt" -#: backend/fujitsu.c:4130 +#: backend/fujitsu.c:4134 #, no-c-format msgid "Halt on Cancel" msgstr "" -#: backend/fujitsu.c:4131 +#: backend/fujitsu.c:4135 #, no-c-format msgid "" "Request driver to halt the paper feed instead of eject during a cancel." msgstr "" -#: backend/fujitsu.c:4142 +#: backend/fujitsu.c:4146 #, fuzzy, no-c-format msgid "Endorser Options" msgstr "Avancerade inställningar" -#: backend/fujitsu.c:4143 +#: backend/fujitsu.c:4147 #, no-c-format msgid "Controls for endorser unit" msgstr "" -#: backend/fujitsu.c:4154 +#: backend/fujitsu.c:4158 #, no-c-format msgid "Endorser" msgstr "" -#: backend/fujitsu.c:4155 +#: backend/fujitsu.c:4159 #, no-c-format msgid "Enable endorser unit" msgstr "" -#: backend/fujitsu.c:4170 +#: backend/fujitsu.c:4174 #, no-c-format msgid "Endorser bits" msgstr "" -#: backend/fujitsu.c:4171 +#: backend/fujitsu.c:4175 #, no-c-format msgid "Determines maximum endorser counter value." msgstr "" -#: backend/fujitsu.c:4196 +#: backend/fujitsu.c:4200 #, no-c-format msgid "Endorser value" msgstr "" -#: backend/fujitsu.c:4197 +#: backend/fujitsu.c:4201 #, no-c-format msgid "Initial endorser counter value." msgstr "" -#: backend/fujitsu.c:4220 +#: backend/fujitsu.c:4224 #, no-c-format msgid "Endorser step" msgstr "" -#: backend/fujitsu.c:4221 +#: backend/fujitsu.c:4225 #, no-c-format msgid "Change endorser counter value by this much for each page." msgstr "" -#: backend/fujitsu.c:4244 +#: backend/fujitsu.c:4248 #, no-c-format msgid "Endorser Y" msgstr "" -#: backend/fujitsu.c:4245 +#: backend/fujitsu.c:4249 #, no-c-format msgid "Endorser print offset from top of paper." msgstr "" -#: backend/fujitsu.c:4270 +#: backend/fujitsu.c:4274 #, no-c-format msgid "Endorser font" msgstr "" -#: backend/fujitsu.c:4271 +#: backend/fujitsu.c:4275 #, no-c-format msgid "Endorser printing font." msgstr "" -#: backend/fujitsu.c:4300 +#: backend/fujitsu.c:4304 #, fuzzy, no-c-format msgid "Endorser direction" msgstr "Brusreducering" -#: backend/fujitsu.c:4301 +#: backend/fujitsu.c:4305 #, no-c-format msgid "Endorser printing direction." msgstr "" -#: backend/fujitsu.c:4325 +#: backend/fujitsu.c:4329 #, no-c-format msgid "Endorser side" msgstr "" -#: backend/fujitsu.c:4326 +#: backend/fujitsu.c:4330 #, no-c-format msgid "Endorser printing side, requires hardware support to change" msgstr "" -#: backend/fujitsu.c:4351 +#: backend/fujitsu.c:4355 #, no-c-format msgid "Endorser string" msgstr "" -#: backend/fujitsu.c:4352 +#: backend/fujitsu.c:4356 #, no-c-format msgid "" "Endorser alphanumeric print format. %05ud or %08ud at the end will be " "replaced by counter value." msgstr "" -#: backend/fujitsu.c:4379 +#: backend/fujitsu.c:4383 #, no-c-format msgid "Top edge" msgstr "" -#: backend/fujitsu.c:4380 +#: backend/fujitsu.c:4384 #, no-c-format msgid "Paper is pulled partly into ADF" msgstr "" -#: backend/fujitsu.c:4391 +#: backend/fujitsu.c:4395 #, fuzzy, no-c-format msgid "A3 paper" msgstr "Från papper" -#: backend/fujitsu.c:4392 +#: backend/fujitsu.c:4396 #, no-c-format msgid "A3 paper detected" msgstr "" -#: backend/fujitsu.c:4403 +#: backend/fujitsu.c:4407 #, fuzzy, no-c-format msgid "B4 paper" msgstr "Från papper" -#: backend/fujitsu.c:4404 +#: backend/fujitsu.c:4408 #, no-c-format msgid "B4 paper detected" msgstr "" -#: backend/fujitsu.c:4415 +#: backend/fujitsu.c:4419 #, fuzzy, no-c-format msgid "A4 paper" msgstr "Från papper" -#: backend/fujitsu.c:4416 +#: backend/fujitsu.c:4420 #, no-c-format msgid "A4 paper detected" msgstr "" -#: backend/fujitsu.c:4427 +#: backend/fujitsu.c:4431 #, fuzzy, no-c-format msgid "B5 paper" msgstr "Från papper" -#: backend/fujitsu.c:4428 +#: backend/fujitsu.c:4432 #, no-c-format msgid "B5 paper detected" msgstr "" -#: backend/fujitsu.c:4451 +#: backend/fujitsu.c:4455 #, no-c-format msgid "OMR or DF" msgstr "" -#: backend/fujitsu.c:4452 +#: backend/fujitsu.c:4456 #, fuzzy, no-c-format msgid "OMR or double feed detected" msgstr "Dubbelmatningsdetektering" -#: backend/fujitsu.c:4475 +#: backend/fujitsu.c:4479 #, no-c-format msgid "Power saving" msgstr "" -#: backend/fujitsu.c:4476 +#: backend/fujitsu.c:4480 #, fuzzy, no-c-format msgid "Scanner in power saving mode" msgstr "Bildläsarens lock är öppet" -#: backend/fujitsu.c:4499 +#: backend/fujitsu.c:4503 #, fuzzy, no-c-format msgid "Manual feed" msgstr "Manuell matning" -#: backend/fujitsu.c:4500 +#: backend/fujitsu.c:4504 #, fuzzy, no-c-format msgid "Manual feed selected" msgstr "Manuell matning" -#: backend/fujitsu.c:4523 +#: backend/fujitsu.c:4527 #, no-c-format msgid "Function" msgstr "" -#: backend/fujitsu.c:4524 +#: backend/fujitsu.c:4528 #, no-c-format msgid "Function character on screen" msgstr "" -#: backend/fujitsu.c:4535 +#: backend/fujitsu.c:4539 #, no-c-format msgid "Ink low" msgstr "" -#: backend/fujitsu.c:4536 +#: backend/fujitsu.c:4540 #, no-c-format msgid "Imprinter ink running low" msgstr "" -#: backend/fujitsu.c:4547 +#: backend/fujitsu.c:4551 #, fuzzy, no-c-format msgid "Double feed" msgstr "Dubbelmatningsdetektering" -#: backend/fujitsu.c:4548 +#: backend/fujitsu.c:4552 #, fuzzy, no-c-format msgid "Double feed detected" msgstr "Dubbelmatningsdetektering" -#: backend/fujitsu.c:4559 +#: backend/fujitsu.c:4563 #, no-c-format msgid "Error code" msgstr "" -#: backend/fujitsu.c:4560 +#: backend/fujitsu.c:4564 #, fuzzy, no-c-format msgid "Hardware error code" msgstr "hårdvarukontrollfel" -#: backend/fujitsu.c:4571 +#: backend/fujitsu.c:4575 #, no-c-format msgid "Skew angle" msgstr "" -#: backend/fujitsu.c:4572 +#: backend/fujitsu.c:4576 #, no-c-format msgid "Requires black background for scanning" msgstr "" -#: backend/fujitsu.c:4583 +#: backend/fujitsu.c:4587 #, no-c-format msgid "Ink remaining" msgstr "" -#: backend/fujitsu.c:4584 +#: backend/fujitsu.c:4588 #, fuzzy, no-c-format msgid "Imprinter ink level" msgstr "Vitnivå" -#: backend/fujitsu.c:4595 +#: backend/fujitsu.c:4599 #, fuzzy, no-c-format msgid "Density" msgstr "Densitetsinställning" -#: backend/fujitsu.c:4596 +#: backend/fujitsu.c:4600 #, fuzzy, no-c-format msgid "Density dial" msgstr "Densitetsinställning" -#: backend/fujitsu.c:4607 backend/fujitsu.c:4608 +#: backend/fujitsu.c:4611 backend/fujitsu.c:4612 #, fuzzy, no-c-format msgid "Duplex switch" msgstr "Dubbelsidig inläsning" -#: backend/genesys/genesys.cpp:4118 +#: backend/genesys/genesys.cpp:4160 #, no-c-format msgid "Request backend to remove border from pages digitally" msgstr "Begär att drivrutinen tar bort ram från sidor automatiskt" -#: backend/genesys/genesys.cpp:4127 backend/kvs1025_opt.c:912 +#: backend/genesys/genesys.cpp:4169 backend/kvs1025_opt.c:912 #, no-c-format msgid "Request driver to discard pages with low numbers of dark pixels" msgstr "Begär att drivrutinen hoppar över sidor med få mörka pixlar" -#: backend/genesys/genesys.cpp:4137 backend/kvs1025_opt.c:892 +#: backend/genesys/genesys.cpp:4179 backend/kvs1025_opt.c:892 #, no-c-format msgid "Software derotate" msgstr "Mjukvaruavrotera" -#: backend/genesys/genesys.cpp:4138 backend/kvs1025_opt.c:894 +#: backend/genesys/genesys.cpp:4180 backend/kvs1025_opt.c:894 #, no-c-format msgid "Request driver to detect and correct 90 degree image rotation" msgstr "" "Begär att drivrutinen detekterar och korrigerar 90 graders bildrotation" -#: backend/genesys/genesys.cpp:4168 backend/pixma_sane_options.c:314 +#: backend/genesys/genesys.cpp:4210 backend/pixma/pixma_sane_options.c:314 #, no-c-format msgid "Extras" msgstr "Övrigt" -#: backend/genesys/genesys.cpp:4188 backend/pixma_sane_options.c:336 +#: backend/genesys/genesys.cpp:4230 backend/pixma/pixma_sane_options.c:336 #, no-c-format msgid "Dynamic threshold curve, from light to dark, normally 50-65" msgstr "Dynamisk tröskelkurva, från ljust till mörkt, vanligen 50-65" -#: backend/genesys/genesys.cpp:4197 -#, no-c-format -msgid "Disable dynamic lineart" -msgstr "Avaktivera dynamisk streckteckning" - -#: backend/genesys/genesys.cpp:4199 -#, no-c-format -msgid "" -"Disable use of a software adaptive algorithm to generate lineart relying " -"instead on hardware lineart." -msgstr "" -"Stäng av användandet av en adaptiv algoritm i mjukvaran för att generera " -"streckteckningsinläsningar för att i stället använda hårdvarans " -"streckteckningsinläsningsläge." - -#: backend/genesys/genesys.cpp:4215 +#: backend/genesys/genesys.cpp:4240 #, no-c-format msgid "Disable interpolation" msgstr "Stäng av interpolering" -#: backend/genesys/genesys.cpp:4218 +#: backend/genesys/genesys.cpp:4243 #, no-c-format msgid "" "When using high resolutions where the horizontal resolution is smaller " @@ -3062,46 +3076,46 @@ msgstr "" "mindre än den vertikala upplösningen stänger detta av den horisontella " "interpoleringen." -#: backend/genesys/genesys.cpp:4227 +#: backend/genesys/genesys.cpp:4252 #, fuzzy, no-c-format msgid "Color filter" msgstr "Färgfilter" -#: backend/genesys/genesys.cpp:4230 +#: backend/genesys/genesys.cpp:4255 #, no-c-format msgid "When using gray or lineart this option selects the used color." msgstr "" "När gråskala eller streckteckning används väljer denna inställning den " "använda färgen." -#: backend/genesys/genesys.cpp:4254 +#: backend/genesys/genesys.cpp:4279 #, fuzzy, no-c-format msgid "Calibration file" msgstr "Kalibrering" -#: backend/genesys/genesys.cpp:4255 +#: backend/genesys/genesys.cpp:4280 #, fuzzy, no-c-format msgid "Specify the calibration file to use" msgstr "Definiera kalibreringsläge" -#: backend/genesys/genesys.cpp:4272 +#: backend/genesys/genesys.cpp:4297 #, fuzzy, no-c-format msgid "Calibration cache expiration time" msgstr "Kalibreringsdatacache" -#: backend/genesys/genesys.cpp:4273 +#: backend/genesys/genesys.cpp:4298 #, no-c-format msgid "" "Time (in minutes) before a cached calibration expires. A value of 0 " "means cache is not used. A negative value means cache never expires." msgstr "" -#: backend/genesys/genesys.cpp:4283 +#: backend/genesys/genesys.cpp:4308 #, no-c-format msgid "Lamp off time" msgstr "Lampavstängningstid" -#: backend/genesys/genesys.cpp:4286 +#: backend/genesys/genesys.cpp:4311 #, no-c-format msgid "" "The lamp will be turned off after the given time (in minutes). A value " @@ -3110,103 +3124,108 @@ msgstr "" "Lampan kommer att stängas av efter den angivna tiden (i minuter). Värdet " "0 betyder att lampan inte kommer att stängas av." -#: backend/genesys/genesys.cpp:4296 +#: backend/genesys/genesys.cpp:4321 #, no-c-format msgid "Lamp off during scan" msgstr "Stäng av lampan under inläsning" -#: backend/genesys/genesys.cpp:4297 +#: backend/genesys/genesys.cpp:4322 #, no-c-format msgid "The lamp will be turned off during scan. " msgstr "Lampan kommer att stängas av under inläsningen." -#: backend/genesys/genesys.cpp:4324 backend/genesys/genesys.cpp:4325 +#: backend/genesys/genesys.cpp:4349 backend/genesys/genesys.cpp:4350 #, no-c-format msgid "File button" msgstr "Filknapp" -#: backend/genesys/genesys.cpp:4369 backend/genesys/genesys.cpp:4370 +#: backend/genesys/genesys.cpp:4394 backend/genesys/genesys.cpp:4395 #, no-c-format msgid "OCR button" msgstr "Optisk teckenigenkännings-knapp" -#: backend/genesys/genesys.cpp:4381 backend/genesys/genesys.cpp:4382 +#: backend/genesys/genesys.cpp:4406 backend/genesys/genesys.cpp:4407 #, no-c-format msgid "Power button" msgstr "Påslagningsknapp" -#: backend/genesys/genesys.cpp:4393 backend/genesys/genesys.cpp:4394 +#: backend/genesys/genesys.cpp:4418 backend/genesys/genesys.cpp:4419 #, fuzzy, no-c-format msgid "Extra button" msgstr "E-postknapp" -#: backend/genesys/genesys.cpp:4405 backend/gt68xx.c:755 +#: backend/genesys/genesys.cpp:4430 backend/gt68xx.c:755 #, fuzzy, no-c-format msgid "Needs calibration" msgstr "Behöver kalibrering" -#: backend/genesys/genesys.cpp:4406 backend/gt68xx.c:756 +#: backend/genesys/genesys.cpp:4431 backend/gt68xx.c:756 backend/p5.c:1928 #, no-c-format msgid "The scanner needs calibration for the current settings" msgstr "Bildläsaren behöver kalibrering för nuvarande inställningar" -#: backend/genesys/genesys.cpp:4417 backend/gt68xx.c:780 -#: backend/gt68xx.c:781 backend/pixma_sane_options.c:226 -#: backend/plustek.c:1080 +#: backend/genesys/genesys.cpp:4442 backend/gt68xx.c:780 +#: backend/gt68xx.c:781 backend/p5.c:1937 backend/p5.c:1938 +#: backend/pixma/pixma_sane_options.c:226 backend/plustek.c:1080 #, no-c-format msgid "Buttons" msgstr "Knappar" -#: backend/genesys/genesys.cpp:4426 backend/gt68xx.c:787 -#: backend/hp5400_sane.c:392 backend/hp-option.h:97 backend/niash.c:726 -#: backend/plustek.c:941 +#: backend/genesys/genesys.cpp:4451 backend/gt68xx.c:787 +#: backend/hp-option.h:97 backend/hp5400_sane.c:392 backend/niash.c:726 +#: backend/p5.c:1945 backend/plustek.c:941 #, no-c-format msgid "Calibrate" msgstr "Kalibrera" -#: backend/genesys/genesys.cpp:4428 backend/gt68xx.c:789 +#: backend/genesys/genesys.cpp:4453 backend/gt68xx.c:789 backend/p5.c:1947 #, no-c-format msgid "Start calibration using special sheet" msgstr "Påbörja kalibrering med specialark" -#: backend/genesys/genesys.cpp:4440 backend/gt68xx.c:802 +#: backend/genesys/genesys.cpp:4465 backend/gt68xx.c:802 backend/p5.c:1958 #, no-c-format msgid "Clear calibration" msgstr "Rensa kalibrering" -#: backend/genesys/genesys.cpp:4441 backend/gt68xx.c:803 +#: backend/genesys/genesys.cpp:4466 backend/gt68xx.c:803 backend/p5.c:1960 #, no-c-format msgid "Clear calibration cache" msgstr "Rensa kalibreringsdatacache" -#: backend/genesys/genesys.cpp:4451 +#: backend/genesys/genesys.cpp:4476 #, fuzzy, no-c-format msgid "Force calibration" msgstr "Grovkalibrering" -#: backend/genesys/genesys.cpp:4452 +#: backend/genesys/genesys.cpp:4477 #, no-c-format msgid "Force calibration ignoring all and any calibration caches" msgstr "" -#: backend/genesys/genesys.cpp:4462 +#: backend/genesys/genesys.cpp:4487 #, fuzzy, no-c-format msgid "Ignore internal offsets" msgstr "Grön offset" -#: backend/genesys/genesys.cpp:4464 +#: backend/genesys/genesys.cpp:4489 #, no-c-format msgid "" "Acquires the image including the internal calibration areas of the " "scanner" msgstr "" -#: backend/gt68xx.c:149 backend/ma1509.c:108 backend/mustek.c:164 -#: backend/snapscan-options.c:87 backend/umax.c:182 +#: backend/genesys/genesys.h:79 backend/gt68xx.c:149 backend/ma1509.c:108 +#: backend/mustek.c:164 backend/snapscan-options.c:87 backend/umax.c:182 #, no-c-format msgid "Transparency Adapter" msgstr "Genomlysningsadapter" +#: backend/genesys/genesys.h:80 +#, fuzzy, no-c-format +msgid "Transparency Adapter Infrared" +msgstr "Genomlysningsadapter" + #: backend/gt68xx.c:470 #, no-c-format msgid "Gray mode color" @@ -3312,6 +3331,312 @@ msgstr "Gammavärde" msgid "Sets the gamma value of all channels." msgstr "Ställer in gammavärdet för alla kanaler." +#: backend/hp-option.c:2987 +#, no-c-format +msgid "Advanced Options" +msgstr "Avancerade inställningar" + +#: backend/hp-option.c:3044 +#, no-c-format +msgid "Coarse" +msgstr "Grovt" + +#: backend/hp-option.c:3045 +#, no-c-format +msgid "Fine" +msgstr "Fint" + +#: backend/hp-option.c:3046 +#, no-c-format +msgid "Bayer" +msgstr "Bayer" + +#: backend/hp-option.c:3049 backend/hp-option.c:3100 +#, no-c-format +msgid "Custom" +msgstr "Användardefinierat" + +#: backend/hp-option.c:3090 backend/hp-option.c:3146 +#: backend/hp-option.c:3161 +#, no-c-format +msgid "Auto" +msgstr "Automatiskt" + +#: backend/hp-option.c:3091 +#, no-c-format +msgid "NTSC RGB" +msgstr "NTSC-RGB" + +#: backend/hp-option.c:3092 +#, no-c-format +msgid "XPA RGB" +msgstr "XPA-RGB" + +#: backend/hp-option.c:3093 +#, no-c-format +msgid "Pass-through" +msgstr "Oförändrat" + +#: backend/hp-option.c:3094 +#, no-c-format +msgid "NTSC Gray" +msgstr "NTSC-grå" + +#: backend/hp-option.c:3095 +#, no-c-format +msgid "XPA Gray" +msgstr "XPA-grå" + +#: backend/hp-option.c:3147 +#, no-c-format +msgid "Slow" +msgstr "Långsam" + +#: backend/hp-option.c:3148 backend/hp-option.c:3255 +#: backend/kvs40xx_opt.c:230 backend/matsushita.c:244 backend/mustek.c:149 +#: backend/plustek.c:234 backend/plustek_pp.c:203 backend/u12.c:155 +#, no-c-format +msgid "Normal" +msgstr "Normal" + +#: backend/hp-option.c:3149 +#, no-c-format +msgid "Fast" +msgstr "Snabb" + +#: backend/hp-option.c:3150 +#, no-c-format +msgid "Extra Fast" +msgstr "Extra snabb" + +#: backend/hp-option.c:3163 +#, no-c-format +msgid "2-pixel" +msgstr "2 pixlar" + +#: backend/hp-option.c:3164 +#, no-c-format +msgid "4-pixel" +msgstr "4 pixlar" + +#: backend/hp-option.c:3165 +#, no-c-format +msgid "8-pixel" +msgstr "8 pixlar" + +#: backend/hp-option.c:3176 +#, no-c-format +msgid "Print" +msgstr "Fotografi" + +#: backend/hp-option.c:3177 backend/hp3900_sane.c:427 +#: backend/hp3900_sane.c:1019 +#, no-c-format +msgid "Slide" +msgstr "Diapositiv" + +#: backend/hp-option.c:3178 +#, no-c-format +msgid "Film-strip" +msgstr "Filmremsa" + +#: backend/hp-option.c:3256 backend/hp5590.c:93 +#, no-c-format +msgid "ADF" +msgstr "Automatisk dokumentmatare" + +#: backend/hp-option.c:3257 +#, no-c-format +msgid "XPA" +msgstr "XPA" + +#: backend/hp-option.c:3331 backend/hp-option.c:3344 +#, no-c-format +msgid "Conditional" +msgstr "Villkorlig" + +#: backend/hp-option.c:3417 +#, no-c-format +msgid "Experiment" +msgstr "Experiment" + +#: backend/hp-option.h:60 +#, no-c-format +msgid "Sharpening" +msgstr "Skärpa" + +#: backend/hp-option.h:61 +#, no-c-format +msgid "Set sharpening value." +msgstr "Ställer in skärpevärdet." + +#: backend/hp-option.h:66 +#, no-c-format +msgid "Auto Threshold" +msgstr "Automatiskt tröskelvärde" + +#: backend/hp-option.h:68 +#, no-c-format +msgid "Enable automatic determination of threshold for line-art scans." +msgstr "" +"Möjliggör automatisk bestämning av tröskelvärde för " +"streckteckningsinläsningar." + +#: backend/hp-option.h:74 +#, no-c-format +msgid "Select smoothing filter." +msgstr "Välj utjämningsfilter." + +#: backend/hp-option.h:79 +#, no-c-format +msgid "Unload media after scan" +msgstr "Mata ut media efter inläsning" + +#: backend/hp-option.h:80 +#, no-c-format +msgid "Unloads the media after a scan." +msgstr "Matar ut media efter en inläsning." + +#: backend/hp-option.h:85 +#, no-c-format +msgid "Change document" +msgstr "Byt dokument" + +#: backend/hp-option.h:86 +#, no-c-format +msgid "Change Document." +msgstr "Byt dokument." + +#: backend/hp-option.h:91 +#, no-c-format +msgid "Unload" +msgstr "Mata ut" + +#: backend/hp-option.h:92 +#, no-c-format +msgid "Unload Document." +msgstr "Mata ut dokument." + +#: backend/hp-option.h:98 +#, no-c-format +msgid "Start calibration process." +msgstr "Påbörja kalibreringsprocessen." + +#: backend/hp-option.h:103 +#, no-c-format +msgid "Media" +msgstr "Media" + +#: backend/hp-option.h:104 +#, no-c-format +msgid "Set type of media." +msgstr "Välj mediatyp." + +#: backend/hp-option.h:109 +#, no-c-format +msgid "Exposure time" +msgstr "Exponeringstid" + +#: backend/hp-option.h:111 +#, no-c-format +msgid "" +"A longer exposure time lets the scanner collect more light. Suggested " +"use is 175% for prints, 150% for normal slides and \"Negative\" for " +"negative film. For dark (underexposed) images you can increase this " +"value." +msgstr "" +"En längre exponeringstid låter bildläsaren samla in mer ljus. Föreslagen " +"användning är 175% för fotografier, 150% för diapositiv och \"Negativ\" " +"för negativ film. För mörka (underexponerade) bilder kan du öka detta " +"värde." + +#: backend/hp-option.h:119 backend/hp-option.h:126 +#, no-c-format +msgid "Color Matrix" +msgstr "Färgmatris" + +#: backend/hp-option.h:121 +#, fuzzy, no-c-format +msgid "Set the scanner's color matrix." +msgstr "Ställer in bildläsarens färgmatris." + +#: backend/hp-option.h:127 +#, no-c-format +msgid "Custom color matrix." +msgstr "Användardefinierad färgmatris." + +#: backend/hp-option.h:132 +#, no-c-format +msgid "Mono Color Matrix" +msgstr "Enfärgsmatris" + +#: backend/hp-option.h:133 +#, no-c-format +msgid "Custom color matrix for grayscale scans." +msgstr "Användardefinierad färgmatris för gråskaleinläsningar." + +#: backend/hp-option.h:138 +#, no-c-format +msgid "Mirror horizontal" +msgstr "Spegla vågrätt" + +#: backend/hp-option.h:139 +#, no-c-format +msgid "Mirror image horizontally." +msgstr "Spegla bilden vågrätt." + +#: backend/hp-option.h:144 +#, no-c-format +msgid "Mirror vertical" +msgstr "Spegla lodrätt" + +#: backend/hp-option.h:145 +#, no-c-format +msgid "Mirror image vertically." +msgstr "Spegla bilden lodrätt." + +#: backend/hp-option.h:150 +#, no-c-format +msgid "Update options" +msgstr "Uppdatera inställningsvärden" + +#: backend/hp-option.h:151 +#, no-c-format +msgid "Update options." +msgstr "Uppdatera inställningsvärden." + +#: backend/hp-option.h:156 +#, no-c-format +msgid "8 bit output" +msgstr "8 bitars utdata" + +#: backend/hp-option.h:158 +#, no-c-format +msgid "Use bit depth greater eight internally, but output only eight bits." +msgstr "" +"Använd ett bitdjup större än 8 internt, men ge endast 8 bitars utdata." + +#: backend/hp-option.h:164 +#, no-c-format +msgid "Front button wait" +msgstr "Invänta knapptryck" + +#: backend/hp-option.h:165 +#, no-c-format +msgid "Wait to scan for front-panel button push." +msgstr "" +"Vänta med inläsningen tills dess att knappen på frontpanelen trycks in." + +#: backend/hp-option.h:172 +#, no-c-format +msgid "Shut off lamp" +msgstr "Slå av lampan" + +#: backend/hp-option.h:173 +#, no-c-format +msgid "Shut off scanner lamp." +msgstr "Slå av bildläsarlampan." + #: backend/hp3500.c:1020 #, no-c-format msgid "Geometry Group" @@ -3322,12 +3647,6 @@ msgstr "Geometrigrupp" msgid "Scan Mode Group" msgstr "Bildläsarlägesgrupp" -#: backend/hp3900_sane.c:427 backend/hp3900_sane.c:1019 -#: backend/hp-option.c:3177 -#, no-c-format -msgid "Slide" -msgstr "Diapositiv" - #: backend/hp3900_sane.c:1405 #, no-c-format msgid "Scanner model" @@ -3529,11 +3848,6 @@ msgstr "Sätter på eller av lampan." msgid "Calibrates for black and white level." msgstr "Kalibrerar för svart- och vitnivå." -#: backend/hp5590.c:93 backend/hp-option.c:3256 -#, no-c-format -msgid "ADF" -msgstr "Automatisk dokumentmatare" - #: backend/hp5590.c:95 #, no-c-format msgid "TMA Slides" @@ -3644,301 +3958,6 @@ msgid "" "r*65536+256*g+b or gray value (default=violet or gray)" msgstr "" -#: backend/hp-option.c:2987 -#, no-c-format -msgid "Advanced Options" -msgstr "Avancerade inställningar" - -#: backend/hp-option.c:3044 -#, no-c-format -msgid "Coarse" -msgstr "Grovt" - -#: backend/hp-option.c:3045 -#, no-c-format -msgid "Fine" -msgstr "Fint" - -#: backend/hp-option.c:3046 -#, no-c-format -msgid "Bayer" -msgstr "Bayer" - -#: backend/hp-option.c:3049 backend/hp-option.c:3100 -#, no-c-format -msgid "Custom" -msgstr "Användardefinierat" - -#: backend/hp-option.c:3090 backend/hp-option.c:3146 -#: backend/hp-option.c:3161 -#, no-c-format -msgid "Auto" -msgstr "Automatiskt" - -#: backend/hp-option.c:3091 -#, no-c-format -msgid "NTSC RGB" -msgstr "NTSC-RGB" - -#: backend/hp-option.c:3092 -#, no-c-format -msgid "XPA RGB" -msgstr "XPA-RGB" - -#: backend/hp-option.c:3093 -#, no-c-format -msgid "Pass-through" -msgstr "Oförändrat" - -#: backend/hp-option.c:3094 -#, no-c-format -msgid "NTSC Gray" -msgstr "NTSC-grå" - -#: backend/hp-option.c:3095 -#, no-c-format -msgid "XPA Gray" -msgstr "XPA-grå" - -#: backend/hp-option.c:3147 -#, no-c-format -msgid "Slow" -msgstr "Långsam" - -#: backend/hp-option.c:3148 backend/hp-option.c:3255 -#: backend/kvs40xx_opt.c:230 backend/matsushita.c:244 backend/mustek.c:149 -#: backend/plustek.c:234 backend/plustek_pp.c:203 backend/u12.c:155 -#, no-c-format -msgid "Normal" -msgstr "Normal" - -#: backend/hp-option.c:3149 -#, no-c-format -msgid "Fast" -msgstr "Snabb" - -#: backend/hp-option.c:3150 -#, no-c-format -msgid "Extra Fast" -msgstr "Extra snabb" - -#: backend/hp-option.c:3163 -#, no-c-format -msgid "2-pixel" -msgstr "2 pixlar" - -#: backend/hp-option.c:3164 -#, no-c-format -msgid "4-pixel" -msgstr "4 pixlar" - -#: backend/hp-option.c:3165 -#, no-c-format -msgid "8-pixel" -msgstr "8 pixlar" - -#: backend/hp-option.c:3176 -#, no-c-format -msgid "Print" -msgstr "Fotografi" - -#: backend/hp-option.c:3178 -#, no-c-format -msgid "Film-strip" -msgstr "Filmremsa" - -#: backend/hp-option.c:3257 -#, no-c-format -msgid "XPA" -msgstr "XPA" - -#: backend/hp-option.c:3331 backend/hp-option.c:3344 -#, no-c-format -msgid "Conditional" -msgstr "Villkorlig" - -#: backend/hp-option.c:3417 -#, no-c-format -msgid "Experiment" -msgstr "Experiment" - -#: backend/hp-option.h:60 -#, no-c-format -msgid "Sharpening" -msgstr "Skärpa" - -#: backend/hp-option.h:61 -#, no-c-format -msgid "Set sharpening value." -msgstr "Ställer in skärpevärdet." - -#: backend/hp-option.h:66 -#, no-c-format -msgid "Auto Threshold" -msgstr "Automatiskt tröskelvärde" - -#: backend/hp-option.h:68 -#, no-c-format -msgid "Enable automatic determination of threshold for line-art scans." -msgstr "" -"Möjliggör automatisk bestämning av tröskelvärde för " -"streckteckningsinläsningar." - -#: backend/hp-option.h:74 -#, no-c-format -msgid "Select smoothing filter." -msgstr "Välj utjämningsfilter." - -#: backend/hp-option.h:79 -#, no-c-format -msgid "Unload media after scan" -msgstr "Mata ut media efter inläsning" - -#: backend/hp-option.h:80 -#, no-c-format -msgid "Unloads the media after a scan." -msgstr "Matar ut media efter en inläsning." - -#: backend/hp-option.h:85 -#, no-c-format -msgid "Change document" -msgstr "Byt dokument" - -#: backend/hp-option.h:86 -#, no-c-format -msgid "Change Document." -msgstr "Byt dokument." - -#: backend/hp-option.h:91 -#, no-c-format -msgid "Unload" -msgstr "Mata ut" - -#: backend/hp-option.h:92 -#, no-c-format -msgid "Unload Document." -msgstr "Mata ut dokument." - -#: backend/hp-option.h:98 -#, no-c-format -msgid "Start calibration process." -msgstr "Påbörja kalibreringsprocessen." - -#: backend/hp-option.h:103 -#, no-c-format -msgid "Media" -msgstr "Media" - -#: backend/hp-option.h:104 -#, no-c-format -msgid "Set type of media." -msgstr "Välj mediatyp." - -#: backend/hp-option.h:109 -#, no-c-format -msgid "Exposure time" -msgstr "Exponeringstid" - -#: backend/hp-option.h:111 -#, no-c-format -msgid "" -"A longer exposure time lets the scanner collect more light. Suggested " -"use is 175% for prints, 150% for normal slides and \"Negative\" for " -"negative film. For dark (underexposed) images you can increase this " -"value." -msgstr "" -"En längre exponeringstid låter bildläsaren samla in mer ljus. Föreslagen " -"användning är 175% för fotografier, 150% för diapositiv och \"Negativ\" " -"för negativ film. För mörka (underexponerade) bilder kan du öka detta " -"värde." - -#: backend/hp-option.h:119 backend/hp-option.h:126 -#, no-c-format -msgid "Color Matrix" -msgstr "Färgmatris" - -#: backend/hp-option.h:121 -#, fuzzy, no-c-format -msgid "Set the scanner's color matrix." -msgstr "Ställer in bildläsarens färgmatris." - -#: backend/hp-option.h:127 -#, no-c-format -msgid "Custom color matrix." -msgstr "Användardefinierad färgmatris." - -#: backend/hp-option.h:132 -#, no-c-format -msgid "Mono Color Matrix" -msgstr "Enfärgsmatris" - -#: backend/hp-option.h:133 -#, no-c-format -msgid "Custom color matrix for grayscale scans." -msgstr "Användardefinierad färgmatris för gråskaleinläsningar." - -#: backend/hp-option.h:138 -#, no-c-format -msgid "Mirror horizontal" -msgstr "Spegla vågrätt" - -#: backend/hp-option.h:139 -#, no-c-format -msgid "Mirror image horizontally." -msgstr "Spegla bilden vågrätt." - -#: backend/hp-option.h:144 -#, no-c-format -msgid "Mirror vertical" -msgstr "Spegla lodrätt" - -#: backend/hp-option.h:145 -#, no-c-format -msgid "Mirror image vertically." -msgstr "Spegla bilden lodrätt." - -#: backend/hp-option.h:150 -#, no-c-format -msgid "Update options" -msgstr "Uppdatera inställningsvärden" - -#: backend/hp-option.h:151 -#, no-c-format -msgid "Update options." -msgstr "Uppdatera inställningsvärden." - -#: backend/hp-option.h:156 -#, no-c-format -msgid "8 bit output" -msgstr "8 bitars utdata" - -#: backend/hp-option.h:158 -#, no-c-format -msgid "Use bit depth greater eight internally, but output only eight bits." -msgstr "" -"Använd ett bitdjup större än 8 internt, men ge endast 8 bitars utdata." - -#: backend/hp-option.h:164 -#, no-c-format -msgid "Front button wait" -msgstr "Invänta knapptryck" - -#: backend/hp-option.h:165 -#, no-c-format -msgid "Wait to scan for front-panel button push." -msgstr "" -"Vänta med inläsningen tills dess att knappen på frontpanelen trycks in." - -#: backend/hp-option.h:172 -#, no-c-format -msgid "Shut off lamp" -msgstr "Slå av lampan" - -#: backend/hp-option.h:173 -#, no-c-format -msgid "Shut off scanner lamp." -msgstr "Slå av bildläsarlampan." - #: backend/kvs1025.h:51 backend/kvs20xx_opt.c:295 backend/kvs40xx_opt.c:516 #: backend/matsushita.h:219 #, no-c-format @@ -4037,7 +4056,7 @@ msgid "single" msgstr "ensidigt" #: backend/kvs1025_opt.c:73 backend/kvs20xx.c:462 backend/kvs20xx_opt.c:56 -#: backend/kvs40xx.c:704 backend/kvs40xx.c:722 backend/kvs40xx_opt.c:102 +#: backend/kvs40xx.c:705 backend/kvs40xx.c:723 backend/kvs40xx_opt.c:102 #: backend/kvs40xx_opt.c:1087 #, no-c-format msgid "continuous" @@ -4336,7 +4355,7 @@ msgstr "Ställer in bildton" #: backend/kvs1025_opt.c:807 backend/kvs1025_opt.c:808 #: backend/matsushita.c:1300 backend/matsushita.c:1301 -#: backend/pixma_sane_options.c:112 +#: backend/pixma/pixma_sane_options.c:112 #, no-c-format msgid "Gamma" msgstr "Gamma" @@ -4634,52 +4653,52 @@ msgstr "8x8 Bayer" msgid "8x8 Vertical Line" msgstr "8x8 lodrät linje" -#: backend/lexmark.c:273 backend/umax_pp.c:711 +#: backend/lexmark.c:273 backend/umax_pp.c:705 #, no-c-format msgid "Gain" msgstr "Förstärking" -#: backend/lexmark.c:274 backend/umax_pp.c:712 +#: backend/lexmark.c:274 backend/umax_pp.c:706 #, no-c-format msgid "Color channels gain settings" msgstr "Inställningar för färgkanalernas förstärkning" -#: backend/lexmark.c:283 backend/umax_pp.c:719 +#: backend/lexmark.c:283 backend/umax_pp.c:713 #, no-c-format msgid "Gray gain" msgstr "Grå förstärkning" -#: backend/lexmark.c:284 backend/umax_pp.c:720 +#: backend/lexmark.c:284 backend/umax_pp.c:714 #, no-c-format msgid "Sets gray channel gain" msgstr "Ställer in den grå kanalens förstärkning" -#: backend/lexmark.c:297 backend/plustek.c:1001 backend/umax_pp.c:731 +#: backend/lexmark.c:297 backend/plustek.c:1001 backend/umax_pp.c:725 #, no-c-format msgid "Red gain" msgstr "Röd förstärkning" -#: backend/lexmark.c:298 backend/umax_pp.c:732 +#: backend/lexmark.c:298 backend/umax_pp.c:726 #, no-c-format msgid "Sets red channel gain" msgstr "Ställer in den röda kanalens förstärkning" -#: backend/lexmark.c:311 backend/plustek.c:1017 backend/umax_pp.c:743 +#: backend/lexmark.c:311 backend/plustek.c:1017 backend/umax_pp.c:737 #, no-c-format msgid "Green gain" msgstr "Grön förstärkning" -#: backend/lexmark.c:312 backend/umax_pp.c:744 +#: backend/lexmark.c:312 backend/umax_pp.c:738 #, no-c-format msgid "Sets green channel gain" msgstr "Ställer in den gröna kanalens förstärkning" -#: backend/lexmark.c:325 backend/plustek.c:1033 backend/umax_pp.c:755 +#: backend/lexmark.c:325 backend/plustek.c:1033 backend/umax_pp.c:749 #, no-c-format msgid "Blue gain" msgstr "Blå förstärkning" -#: backend/lexmark.c:326 backend/umax_pp.c:756 +#: backend/lexmark.c:326 backend/umax_pp.c:750 #, no-c-format msgid "Sets blue channel gain" msgstr "Ställer in den blå kanalens förstärkning" @@ -4765,7 +4784,7 @@ msgstr "En sida" msgid "All pages" msgstr "Alla sidor" -#: backend/matsushita.c:1034 backend/plustek.c:1333 +#: backend/matsushita.c:1034 backend/p5_device.c:8 backend/plustek.c:1333 #, no-c-format msgid "sheetfed scanner" msgstr "arkmatad bildläsare" @@ -5272,27 +5291,32 @@ msgstr "" "Värm upp tills lampans ljusstyrka är konstant i stället för att " "insistera på 40 sekunders uppvärmningstid." -#: backend/pixma.c:397 +#: backend/p5.c:1926 +#, fuzzy, no-c-format +msgid "Need calibration" +msgstr "Behöver kalibrering" + +#: backend/pixma/pixma.c:397 #, no-c-format msgid "Negative color" msgstr "Negativ färg" -#: backend/pixma.c:402 +#: backend/pixma/pixma.c:402 #, no-c-format msgid "Negative gray" msgstr "Negativ gråskala" -#: backend/pixma.c:415 +#: backend/pixma/pixma.c:415 #, no-c-format msgid "48 bits color" msgstr "48 bitars färg" -#: backend/pixma.c:420 +#: backend/pixma/pixma.c:420 #, no-c-format msgid "16 bits gray" msgstr "16 bitars gråskala" -#: backend/pixma_sane_options.c:84 +#: backend/pixma/pixma_sane_options.c:84 #, no-c-format msgid "" "Selects the scan source (such as a document-feeder). Set source before " @@ -5301,12 +5325,12 @@ msgstr "" "Väljer inläsningskälla (som t.ex. dokumentmatare). Välj källa före läge " "och upplösning. Återställer läge och upplösning till förvalsvärden." -#: backend/pixma_sane_options.c:98 +#: backend/pixma/pixma_sane_options.c:98 #, no-c-format msgid "Button-controlled scan" msgstr "Knappkontrollerad inläsning" -#: backend/pixma_sane_options.c:99 +#: backend/pixma/pixma_sane_options.c:99 #, no-c-format msgid "" "When enabled, scan process will not start immediately. To proceed, press " @@ -5317,37 +5341,37 @@ msgstr "" "omedelbart. För att forsätta, tryck SCAN-knappen (för MP150) eller COLOR-" "knappen (för andra modeller). För att avbryta, tryck GRAY-knappen." -#: backend/pixma_sane_options.c:232 +#: backend/pixma/pixma_sane_options.c:232 #, no-c-format msgid "Update button state" msgstr "Uppdatera knappläge" -#: backend/pixma_sane_options.c:244 +#: backend/pixma/pixma_sane_options.c:244 #, no-c-format msgid "Button 1" msgstr "Knapp 1" -#: backend/pixma_sane_options.c:258 +#: backend/pixma/pixma_sane_options.c:258 #, no-c-format msgid "Button 2" msgstr "Knapp 2" -#: backend/pixma_sane_options.c:272 +#: backend/pixma/pixma_sane_options.c:272 #, no-c-format msgid "Type of original to scan" msgstr "" -#: backend/pixma_sane_options.c:286 +#: backend/pixma/pixma_sane_options.c:286 #, no-c-format msgid "Target operation type" msgstr "" -#: backend/pixma_sane_options.c:348 +#: backend/pixma/pixma_sane_options.c:348 #, no-c-format msgid "ADF Waiting Time" msgstr "" -#: backend/pixma_sane_options.c:349 +#: backend/pixma/pixma_sane_options.c:349 #, no-c-format msgid "" "When set, the scanner waits upto the specified time in seconds for a new " @@ -5439,7 +5463,7 @@ msgstr "Analogt framplan" msgid "Red gain value of the AFE" msgstr "Det analoga framplanets rödförstärkningsvärde" -#: backend/plustek.c:1009 backend/umax_pp.c:788 +#: backend/plustek.c:1009 backend/umax_pp.c:782 #, no-c-format msgid "Red offset" msgstr "Röd offset" @@ -5715,7 +5739,7 @@ msgstr "" msgid "This option reflects the status of a scanner button." msgstr "Denna inställing avspeglar status på en av bildläsarens knappar." -#: backend/rts8891.c:2840 backend/umax.c:5795 backend/umax_pp.c:635 +#: backend/rts8891.c:2840 backend/umax.c:5795 backend/umax_pp.c:629 #, no-c-format msgid "Lamp on" msgstr "Lampa på" @@ -5725,12 +5749,12 @@ msgstr "Lampa på" msgid "Turn on scanner lamp" msgstr "Slå på bildläsarlampan" -#: backend/rts8891.c:2851 backend/umax1220u.c:248 backend/umax.c:5812 +#: backend/rts8891.c:2851 backend/umax.c:5812 backend/umax1220u.c:248 #, no-c-format msgid "Lamp off" msgstr "Lampa av" -#: backend/rts8891.c:2852 backend/umax1220u.c:249 backend/umax.c:5813 +#: backend/rts8891.c:2852 backend/umax.c:5813 backend/umax1220u.c:249 #, no-c-format msgid "Turn off scanner lamp" msgstr "Slå av bildläsarlampan" @@ -6522,56 +6546,67 @@ msgstr "Kalibreringsläge" msgid "Define calibration mode" msgstr "Definiera kalibreringsläge" -#: backend/umax_pp.c:636 +#: backend/umax_pp.c:630 #, no-c-format msgid "Sets lamp on/off" msgstr "Sätt på/av lampan" -#: backend/umax_pp.c:645 +#: backend/umax_pp.c:639 #, no-c-format msgid "UTA on" msgstr "UTA på" -#: backend/umax_pp.c:646 +#: backend/umax_pp.c:640 #, no-c-format msgid "Sets UTA on/off" msgstr "Sätter på/av UTA" -#: backend/umax_pp.c:767 +#: backend/umax_pp.c:761 #, no-c-format msgid "Offset" msgstr "Offset" -#: backend/umax_pp.c:769 +#: backend/umax_pp.c:763 #, no-c-format msgid "Color channels offset settings" msgstr "Inställningar för färgkanalernas offset" -#: backend/umax_pp.c:776 +#: backend/umax_pp.c:770 #, no-c-format msgid "Gray offset" msgstr "Grå offset" -#: backend/umax_pp.c:777 +#: backend/umax_pp.c:771 #, no-c-format msgid "Sets gray channel offset" msgstr "Ställer in den grå kanalens offset" -#: backend/umax_pp.c:789 +#: backend/umax_pp.c:783 #, no-c-format msgid "Sets red channel offset" msgstr "Ställer in den röda kanalens offset" -#: backend/umax_pp.c:801 +#: backend/umax_pp.c:795 #, no-c-format msgid "Sets green channel offset" msgstr "Ställer in den gröna kanalens offset" -#: backend/umax_pp.c:813 +#: backend/umax_pp.c:807 #, no-c-format msgid "Sets blue channel offset" msgstr "Ställer in den blå kanalens offset" +#~ msgid "Disable dynamic lineart" +#~ msgstr "Avaktivera dynamisk streckteckning" + +#~ msgid "" +#~ "Disable use of a software adaptive algorithm to generate lineart " +#~ "relying instead on hardware lineart." +#~ msgstr "" +#~ "Stäng av användandet av en adaptiv algoritm i mjukvaran för att " +#~ "generera streckteckningsinläsningar för att i stället använda " +#~ "hårdvarans streckteckningsinläsningsläge." + #~ msgid "linier" #~ msgstr "linjär" diff --git a/po/uk.po b/po/uk.po index e5bc91063..34ae972fc 100644 --- a/po/uk.po +++ b/po/uk.po @@ -1,13 +1,13 @@ # Copyright (C) 2009 # This file is distributed under the same license as the sane-backends package. # -# Yuri Chornoivan , 2009, 2010, 2011, 2012, 2013, 2015, 2017, 2018, 2019. +# Yuri Chornoivan , 2009, 2010, 2011, 2012, 2013, 2015, 2017, 2018, 2019, 2020. msgid "" msgstr "" -"Project-Id-Version: sane-backends\n" +"Project-Id-Version: sane-backends 1.0.29\n" "Report-Msgid-Bugs-To: sane-devel@alioth-lists.debian.net\n" -"POT-Creation-Date: 2019-12-02 16:35+0200\n" -"PO-Revision-Date: 2019-12-02 16:41+0200\n" +"POT-Creation-Date: 2020-01-12 07:09+0000\n" +"PO-Revision-Date: 2020-01-26 16:30+0900\n" "Last-Translator: Yuri Chornoivan \n" "Language-Team: Ukrainian \n" "Language: uk\n" @@ -15,8 +15,8 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 20.03.70\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" -"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 &&" +" n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" #: include/sane/saneopts.h:154 #, no-c-format @@ -29,23 +29,23 @@ msgid "Standard" msgstr "Типово" #: include/sane/saneopts.h:157 backend/artec_eplus48u.c:2884 -#: backend/epson.c:3298 backend/epson2.c:1290 -#: backend/genesys/genesys.cpp:3816 backend/gt68xx.c:696 -#: backend/hp3500.c:1019 backend/hp-option.c:3300 backend/kvs1025_opt.c:639 +#: backend/epson.c:3298 backend/epson2.c:1290 backend/epsonds.c:677 +#: backend/genesys/genesys.cpp:4034 backend/gt68xx.c:696 +#: backend/hp-option.c:3300 backend/hp3500.c:1019 backend/kvs1025_opt.c:639 #: backend/kvs20xx_opt.c:285 backend/kvs40xx_opt.c:506 backend/leo.c:823 #: backend/lexmark.c:199 backend/ma1509.c:551 backend/matsushita.c:1135 #: backend/microtek2.h:599 backend/mustek.c:4373 backend/mustek_usb.c:301 -#: backend/mustek_usb2.c:465 backend/pixma_sane_options.c:160 +#: backend/mustek_usb2.c:465 backend/pixma/pixma_sane_options.c:160 #: backend/plustek.c:808 backend/plustek_pp.c:747 backend/sceptre.c:702 #: backend/snapscan-options.c:550 backend/teco1.c:1095 backend/teco2.c:1910 #: backend/teco3.c:920 backend/test.c:647 backend/u12.c:546 -#: backend/umax.c:5176 backend/umax_pp.c:576 +#: backend/umax.c:5176 backend/umax_pp.c:570 #, no-c-format msgid "Geometry" msgstr "Позиція і розміри" #: include/sane/saneopts.h:158 backend/artec_eplus48u.c:2805 -#: backend/canon.c:1493 backend/genesys/genesys.cpp:3859 +#: backend/canon.c:1493 backend/genesys/genesys.cpp:4077 #: backend/gt68xx.c:665 backend/hp-option.c:2956 backend/kvs1025_opt.c:703 #: backend/leo.c:871 backend/ma1509.c:599 backend/matsushita.c:1189 #: backend/microtek2.h:600 backend/mustek.c:4421 backend/mustek_usb.c:349 @@ -53,7 +53,7 @@ msgstr "Позиція і розміри" #: backend/plustek_pp.c:793 backend/sceptre.c:750 #: backend/snapscan-options.c:617 backend/stv680.c:1067 #: backend/teco1.c:1143 backend/teco2.c:1958 backend/teco3.c:968 -#: backend/u12.c:592 backend/umax.c:5226 backend/umax_pp.c:625 +#: backend/u12.c:592 backend/umax.c:5226 backend/umax_pp.c:619 #, no-c-format msgid "Enhancement" msgstr "Покращення" @@ -87,7 +87,7 @@ msgid "Bit depth" msgstr "Кількість бітів на колір" #: include/sane/saneopts.h:165 backend/canon.c:1140 backend/leo.c:781 -#: backend/pixma_sane_options.c:47 +#: backend/pixma/pixma_sane_options.c:47 #, no-c-format msgid "Scan mode" msgstr "Режим сканування" @@ -128,7 +128,7 @@ msgid "Bottom-right y" msgstr "Нижня права координата за Y" #: include/sane/saneopts.h:173 backend/canon.c:1216 -#: backend/pixma_sane_options.c:300 +#: backend/pixma/pixma_sane_options.c:300 #, no-c-format msgid "Scan resolution" msgstr "Роздільна здатність сканування" @@ -293,10 +293,10 @@ msgstr "Шаблон напівтонів" msgid "Bind X and Y resolution" msgstr "Пов’язати роздільні здатності за X і Y" -#: include/sane/saneopts.h:206 backend/hp3900_sane.c:428 -#: backend/hp3900_sane.c:1021 backend/hp3900_sane.c:1421 -#: backend/hp-option.c:3238 backend/mustek_usb2.c:121 backend/plustek.c:236 -#: backend/plustek_pp.c:205 backend/u12.c:157 +#: include/sane/saneopts.h:206 backend/hp-option.c:3238 +#: backend/hp3900_sane.c:428 backend/hp3900_sane.c:1021 +#: backend/hp3900_sane.c:1421 backend/mustek_usb2.c:121 +#: backend/plustek.c:236 backend/plustek_pp.c:205 backend/u12.c:157 #, no-c-format msgid "Negative" msgstr "Негатив" @@ -422,8 +422,8 @@ msgid "" "Read-only option that specifies how many options a specific device " "supports." msgstr "" -"Параметр лише для читання, який визначає кількість параметрів, які підтримує" -" певний пристрій." +"Параметр лише для читання, який визначає кількість параметрів, які " +"підтримує певний пристрій." #: include/sane/saneopts.h:248 #, no-c-format @@ -526,12 +526,14 @@ msgstr "Визначає роздільну здатність сканован #: include/sane/saneopts.h:295 #, no-c-format msgid "Sets the horizontal resolution of the scanned image." -msgstr "Визначає горизонтальну роздільну здатність засканованого зображення." +msgstr "" +"Визначає горизонтальну роздільну здатність засканованого зображення." #: include/sane/saneopts.h:298 #, no-c-format msgid "Sets the vertical resolution of the scanned image." -msgstr "Визначає вертикальну роздільну здатність засканованого зображення." +msgstr "" +"Визначає вертикальну роздільну здатність засканованого зображення." #: include/sane/saneopts.h:301 #, no-c-format @@ -549,7 +551,8 @@ msgstr "Визначає висоту носія." #: include/sane/saneopts.h:308 #, no-c-format -msgid "Determines whether a builtin or a custom gamma-table should be used." +msgid "" +"Determines whether a builtin or a custom gamma-table should be used." msgstr "Визначає буде використано вбудовану чи нетипову таблицю гами." #: include/sane/saneopts.h:312 @@ -600,7 +603,8 @@ msgstr "" #: include/sane/saneopts.h:336 #, no-c-format msgid "Selects whether the acquired image should be halftoned (dithered)." -msgstr "Визначає, чи має бути отримане зображення напівтоновим (з дизерингом)." +msgstr "" +"Визначає, чи має бути отримане зображення напівтоновим (з дизерингом)." #: include/sane/saneopts.h:339 include/sane/saneopts.h:354 #, no-c-format @@ -650,14 +654,17 @@ msgstr "" #: include/sane/saneopts.h:367 #, no-c-format -msgid "Selects what green radiance level should be considered \"full green\"." +msgid "" +"Selects what green radiance level should be considered \"full green\"." msgstr "" "Визначає рівень світності зеленого, який слід вважати «цілком зеленим»." #: include/sane/saneopts.h:370 #, no-c-format -msgid "Selects what blue radiance level should be considered \"full blue\"." -msgstr "Визначає рівень світності синього, який слід вважати «цілком синім»." +msgid "" +"Selects what blue radiance level should be considered \"full blue\"." +msgstr "" +"Визначає рівень світності синього, який слід вважати «цілком синім»." #: include/sane/saneopts.h:374 #, no-c-format @@ -699,7 +706,8 @@ msgstr "" #: include/sane/saneopts.h:393 #, no-c-format msgid "Use same values for X and Y resolution" -msgstr "Використовувати однакові значення для роздільних здатностей за X та Y" +msgstr "" +"Використовувати однакові значення для роздільних здатностей за X та Y" #: include/sane/saneopts.h:395 #, no-c-format @@ -719,7 +727,8 @@ msgstr "Використовувати лінзу, яка подвоює опт #: include/sane/saneopts.h:401 include/sane/saneopts.h:413 #, no-c-format msgid "In RGB-mode use same values for each color" -msgstr "У режимі RGB використовувати однакові значення для кожного кольору" +msgstr "" +"У режимі RGB використовувати однакові значення для кожного кольору" #: include/sane/saneopts.h:403 #, no-c-format @@ -1025,83 +1034,44 @@ msgstr "Двобічне сканування" #: backend/avision.h:783 #, no-c-format -msgid "Duplex scan provides a scan of the front and back side of the document" +msgid "" +"Duplex scan provides a scan of the front and back side of the document" msgstr "" "За використання двобічного сканування ви отримаєте одразу зображення " "лицьового та зворотного боків документа" -#: backend/canon630u.c:159 +#: backend/canon-sane.c:674 backend/canon.c:171 #, no-c-format -msgid "Calibrate Scanner" -msgstr "Калібрувати сканер" +msgid "Correction according to transparency ratio" +msgstr "Виправлення відповідно до співвідношення прозорості" -#: backend/canon630u.c:160 +#: backend/canon-sane.c:680 backend/canon.c:170 #, no-c-format -msgid "Force scanner calibration before scan" -msgstr "Виконувати примусове калібрування перед скануванням" +msgid "Correction according to film type" +msgstr "Виправлення відповідно до типу плівки" -#: backend/canon630u.c:259 backend/umax1220u.c:208 -#, no-c-format -msgid "Grayscale scan" -msgstr "Сканувати у відтінках сірого" - -#: backend/canon630u.c:260 backend/umax1220u.c:209 -#, no-c-format -msgid "Do a grayscale rather than color scan" -msgstr "Виконувати чорно-біле сканування замість кольорового" - -#: backend/canon630u.c:306 -#, no-c-format -msgid "Analog Gain" -msgstr "Аналогове підсилення" - -#: backend/canon630u.c:307 -#, no-c-format -msgid "Increase or decrease the analog gain of the CCD array" -msgstr "Збільшити або зменшити аналогове підсилення матриці ПЗЗ" - -#: backend/canon630u.c:347 backend/epson.h:68 backend/epson2.h:67 -#, no-c-format -msgid "Gamma Correction" -msgstr "Виправлення гами" - -#: backend/canon630u.c:348 -#, no-c-format -msgid "Selects the gamma corrected transfer curve" -msgstr "Визначити криву виправлення гами" - -#: backend/canon.c:149 backend/canon-sane.c:1318 -#, no-c-format -msgid "Raw" -msgstr "Без обробки" - -#: backend/canon.c:157 backend/canon-sane.c:732 backend/canon-sane.c:940 +#: backend/canon-sane.c:732 backend/canon-sane.c:940 #: backend/canon-sane.c:1076 backend/canon-sane.c:1314 -#: backend/canon-sane.c:1494 backend/canon-sane.c:1643 +#: backend/canon-sane.c:1494 backend/canon-sane.c:1643 backend/canon.c:157 #, no-c-format msgid "Fine color" msgstr "Чистий колір" +#: backend/canon-sane.c:776 backend/canon.c:176 +#, no-c-format +msgid "Negatives" +msgstr "Негативи" + +#: backend/canon-sane.c:1318 backend/canon.c:149 +#, no-c-format +msgid "Raw" +msgstr "Без обробки" + #: backend/canon.c:169 #, no-c-format msgid "No transparency correction" msgstr "Без виправлення прозорості" -#: backend/canon.c:170 backend/canon-sane.c:680 -#, no-c-format -msgid "Correction according to film type" -msgstr "Виправлення відповідно до типу плівки" - -#: backend/canon.c:171 backend/canon-sane.c:674 -#, no-c-format -msgid "Correction according to transparency ratio" -msgstr "Виправлення відповідно до співвідношення прозорості" - -#: backend/canon.c:176 backend/canon-sane.c:776 -#, no-c-format -msgid "Negatives" -msgstr "Негативи" - #: backend/canon.c:176 #, no-c-format msgid "Slides" @@ -1267,7 +1237,8 @@ msgstr "Помилка парності SCSI" #: backend/canon.c:504 #, no-c-format msgid "initiator detected error message received" -msgstr "Отримано повідомлення про помилку виявлення інструменту ініціалізації" +msgstr "" +"Отримано повідомлення про помилку виявлення інструменту ініціалізації" #: backend/canon.c:509 #, no-c-format @@ -1443,7 +1414,8 @@ msgstr "Виштовхувати плівку після кожного скан #: backend/canon.c:1664 #, no-c-format msgid "Automatically eject the film from the device after each scan" -msgstr "Автоматично виштовхувати плівку з пристрою після кожного сканування" +msgstr "" +"Автоматично виштовхувати плівку з пристрою після кожного сканування" #: backend/canon.c:1675 #, no-c-format @@ -1452,7 +1424,8 @@ msgstr "Виштовхувати плівку перед завершенням #: backend/canon.c:1676 #, no-c-format -msgid "Automatically eject the film from the device before exiting the program" +msgid "" +"Automatically eject the film from the device before exiting the program" msgstr "" "Автоматично виштовхувати плівку з пристрою перед завершенням роботи " "програми" @@ -1480,7 +1453,8 @@ msgstr "Лише планшетний" #: backend/canon.c:1703 #, no-c-format msgid "Disable auto document feeder and use flatbed only" -msgstr "Вимкнути автоматичну подачу, використовувати лише планшетний механізм" +msgstr "" +"Вимкнути автоматичну подачу, використовувати лише планшетний механізм" #: backend/canon.c:1713 backend/canon.c:1723 #, no-c-format @@ -1527,13 +1501,56 @@ msgstr "Оберіть тип плівки" msgid "Select the film type" msgstr "Визначає тип плівки" +#: backend/canon630u.c:159 +#, no-c-format +msgid "Calibrate Scanner" +msgstr "Калібрувати сканер" + +#: backend/canon630u.c:160 +#, no-c-format +msgid "Force scanner calibration before scan" +msgstr "Виконувати примусове калібрування перед скануванням" + +#: backend/canon630u.c:259 backend/umax1220u.c:208 +#, no-c-format +msgid "Grayscale scan" +msgstr "Сканувати у відтінках сірого" + +#: backend/canon630u.c:260 backend/umax1220u.c:209 +#, no-c-format +msgid "Do a grayscale rather than color scan" +msgstr "Виконувати чорно-біле сканування замість кольорового" + +#: backend/canon630u.c:306 +#, no-c-format +msgid "Analog Gain" +msgstr "Аналогове підсилення" + +#: backend/canon630u.c:307 +#, no-c-format +msgid "Increase or decrease the analog gain of the CCD array" +msgstr "Збільшити або зменшити аналогове підсилення матриці ПЗЗ" + +#: backend/canon630u.c:347 backend/epson.h:68 backend/epson2.h:67 +#, no-c-format +msgid "Gamma Correction" +msgstr "Виправлення гами" + +#: backend/canon630u.c:348 +#, no-c-format +msgid "Selects the gamma corrected transfer curve" +msgstr "Визначити криву виправлення гами" + #: backend/canon_dr.c:413 backend/epjitsu.c:233 backend/epson.c:501 -#: backend/epson2.c:115 backend/fujitsu.c:677 backend/gt68xx.c:148 +#: backend/epson2-ops.c:101 backend/epson2.c:115 backend/epsonds-ops.c:32 +#: backend/epsonds.c:95 backend/epsonds.h:62 backend/fujitsu.c:677 +#: backend/genesys/genesys.h:78 backend/gt68xx.c:148 #: backend/hp3900_sane.c:418 backend/hp3900_sane.c:427 -#: backend/hp3900_sane.c:1017 backend/hp5590.c:92 backend/ma1509.c:108 -#: backend/magicolor.c:181 backend/mustek.c:156 backend/mustek.c:160 -#: backend/mustek.c:164 backend/pixma.c:920 backend/pixma_sane_options.c:92 -#: backend/snapscan-options.c:86 backend/test.c:192 backend/umax.c:181 +#: backend/hp3900_sane.c:1017 backend/hp5590.c:92 backend/kodakaio.c:617 +#: backend/ma1509.c:108 backend/magicolor.c:181 backend/mustek.c:156 +#: backend/mustek.c:160 backend/mustek.c:164 backend/pixma/pixma.c:920 +#: backend/pixma/pixma_sane_options.c:92 backend/snapscan-options.c:86 +#: backend/test.c:192 backend/umax.c:181 #, no-c-format msgid "Flatbed" msgstr "Планшет" @@ -1551,7 +1568,7 @@ msgid "ADF Back" msgstr "Зворот протяжного механізму" #: backend/canon_dr.c:416 backend/epjitsu.c:236 backend/fujitsu.c:680 -#: backend/hp5590.c:94 backend/kodak.c:142 backend/pixma.c:931 +#: backend/hp5590.c:94 backend/kodak.c:142 backend/pixma/pixma.c:931 #, no-c-format msgid "ADF Duplex" msgstr "Двобічна АПД" @@ -1573,7 +1590,7 @@ msgstr "Картка (обидва боки)" #: backend/canon_dr.c:426 backend/epson.c:599 backend/epson.c:3096 #: backend/epson2.c:201 backend/fujitsu.c:697 -#: backend/genesys/genesys.cpp:119 backend/genesys/genesys.cpp:126 +#: backend/genesys/genesys.cpp:120 backend/genesys/genesys.cpp:127 #: backend/gt68xx_low.h:136 backend/hp-option.c:3096 #, no-c-format msgid "Red" @@ -1581,7 +1598,7 @@ msgstr "Червоний" #: backend/canon_dr.c:427 backend/epson.c:600 backend/epson.c:3092 #: backend/epson2.c:202 backend/fujitsu.c:698 -#: backend/genesys/genesys.cpp:120 backend/genesys/genesys.cpp:127 +#: backend/genesys/genesys.cpp:121 backend/genesys/genesys.cpp:128 #: backend/gt68xx_low.h:137 backend/hp-option.c:3097 #, no-c-format msgid "Green" @@ -1589,7 +1606,7 @@ msgstr "Зелений" #: backend/canon_dr.c:428 backend/epson.c:601 backend/epson.c:3100 #: backend/epson2.c:203 backend/fujitsu.c:699 -#: backend/genesys/genesys.cpp:121 backend/genesys/genesys.cpp:128 +#: backend/genesys/genesys.cpp:122 backend/genesys/genesys.cpp:129 #: backend/gt68xx_low.h:138 backend/hp-option.c:3098 #, no-c-format msgid "Blue" @@ -1614,7 +1631,7 @@ msgstr "Покращити синій" #: backend/epson.c:576 backend/epson.c:598 backend/epson2.c:165 #: backend/epson2.c:173 backend/epson2.c:185 backend/epson2.c:200 #: backend/epson2.c:214 backend/fujitsu.c:703 -#: backend/genesys/genesys.cpp:129 backend/leo.c:109 +#: backend/genesys/genesys.cpp:130 backend/leo.c:109 #: backend/matsushita.c:138 backend/matsushita.c:159 #: backend/matsushita.c:191 backend/matsushita.c:213 #: backend/snapscan-options.c:91 @@ -1628,7 +1645,7 @@ msgid "JPEG" msgstr "JPEG" #: backend/canon_dr.c:2479 backend/fujitsu.c:4117 -#: backend/genesys/genesys.cpp:3950 backend/kvs1025_opt.c:910 +#: backend/genesys/genesys.cpp:4168 backend/kvs1025_opt.c:910 #, no-c-format msgid "Software blank skip percentage" msgstr "Порогове значення порожніх сторінок для програмного відкидання" @@ -1640,26 +1657,30 @@ msgstr "" "Вимагати від драйвера відкидання сторінок з надто низькою питомою " "кількістю темних пікселів" -#: backend/epson.c:491 backend/epson2.c:108 backend/magicolor.c:174 +#: backend/epson.c:491 backend/epson2.c:108 backend/epsonds.c:88 +#: backend/kodakaio.c:611 backend/magicolor.c:174 #, no-c-format msgid "Simplex" msgstr "Однобічна" -#: backend/epson.c:492 backend/epson2.c:109 backend/kvs1025.h:50 -#: backend/kvs20xx_opt.c:204 backend/kvs40xx_opt.c:353 -#: backend/magicolor.c:175 backend/matsushita.h:218 +#: backend/epson.c:492 backend/epson2.c:109 backend/epsonds.c:89 +#: backend/kodakaio.c:612 backend/kvs1025.h:50 backend/kvs20xx_opt.c:204 +#: backend/kvs40xx_opt.c:353 backend/magicolor.c:175 +#: backend/matsushita.h:218 #, no-c-format msgid "Duplex" msgstr "Двобічна" -#: backend/epson.c:502 backend/epson2.c:116 backend/pixma.c:937 +#: backend/epson.c:502 backend/epson2-ops.c:102 backend/epson2.c:116 +#: backend/epsonds-ops.c:33 backend/epsonds.h:63 backend/pixma/pixma.c:937 #, no-c-format msgid "Transparency Unit" msgstr "Модуль для слайдів" -#: backend/epson.c:503 backend/epson2.c:118 backend/magicolor.c:182 -#: backend/mustek.c:160 backend/pixma.c:925 backend/test.c:192 -#: backend/umax.c:183 +#: backend/epson.c:503 backend/epson2-ops.c:104 backend/epson2.c:118 +#: backend/epsonds-ops.c:34 backend/epsonds.c:96 backend/epsonds.h:64 +#: backend/kodakaio.c:618 backend/magicolor.c:182 backend/mustek.c:160 +#: backend/pixma/pixma.c:925 backend/test.c:192 backend/umax.c:183 #, no-c-format msgid "Automatic Document Feeder" msgstr "Автоматична подача документів" @@ -1835,8 +1856,8 @@ msgstr "A4" msgid "Max" msgstr "Макс" -#: backend/epson.c:2813 backend/epson2.c:976 -#: backend/genesys/genesys.cpp:3747 backend/gt68xx.c:451 +#: backend/epson.c:2813 backend/epson2.c:976 backend/epsonds.c:629 +#: backend/genesys/genesys.cpp:3965 backend/gt68xx.c:451 #: backend/hp-option.c:2917 backend/kvs1025_opt.c:521 #: backend/kvs20xx_opt.c:171 backend/kvs40xx_opt.c:320 backend/ma1509.c:501 #: backend/matsushita.c:1084 backend/microtek2.h:598 backend/mustek.c:4215 @@ -2011,17 +2032,17 @@ msgstr "Визначає масштаб, який буде використан msgid "Quick format" msgstr "Швидке форматування" -#: backend/epson.c:3360 backend/epson2.c:1340 +#: backend/epson.c:3360 backend/epson2.c:1340 backend/epsonds.c:726 #, no-c-format msgid "Optional equipment" msgstr "Додаткове устаткування" -#: backend/epson.c:3431 backend/epson2.c:1393 +#: backend/epson.c:3431 backend/epson2.c:1393 backend/epsonds.c:742 #, no-c-format msgid "Eject" msgstr "Виштовхнути" -#: backend/epson.c:3432 backend/epson2.c:1394 +#: backend/epson.c:3432 backend/epson2.c:1394 backend/epsonds.c:743 #, no-c-format msgid "Eject the sheet in the ADF" msgstr "Виштовхнути аркуш з протяжного пристрою" @@ -2036,12 +2057,14 @@ msgstr "Автовиштовхування" msgid "Eject document after scanning" msgstr "Виштовхнути документ після сканування" -#: backend/epson.c:3457 backend/epson2.c:1416 backend/magicolor.c:2420 +#: backend/epson.c:3457 backend/epson2.c:1416 backend/epsonds.c:758 +#: backend/kodakaio.c:2855 backend/magicolor.c:2420 #, no-c-format msgid "ADF Mode" msgstr "Режим протяжного пристрою" -#: backend/epson.c:3459 backend/epson2.c:1418 backend/magicolor.c:2422 +#: backend/epson.c:3459 backend/epson2.c:1418 backend/epsonds.c:760 +#: backend/kodakaio.c:2857 backend/magicolor.c:2422 #, no-c-format msgid "Selects the ADF mode (simplex/duplex)" msgstr "Визначає режим протяжного пристрою (однобічний/двобічний)" @@ -2073,7 +2096,8 @@ msgstr "Позиція фокусування" #: backend/epson.h:73 backend/epson2.h:72 #, no-c-format -msgid "Sets the focus position to either the glass or 2.5mm above the glass" +msgid "" +"Sets the focus position to either the glass or 2.5mm above the glass" msgstr "" "Визначає позицію фокусування на рівень від поверхні скла до висоти 2,5 " "мм над склом" @@ -2092,16 +2116,16 @@ msgstr "" "Після надсилання команди сканування не розпочинати сканування до " "натискання кнопки на сканері." -#: backend/epson2.c:102 backend/pixma.c:409 -#, no-c-format -msgid "Infrared" -msgstr "Інфрачервоне" - -#: backend/epson2.c:117 +#: backend/epson2-ops.c:103 backend/epson2.c:117 #, no-c-format msgid "TPU8x10" msgstr "TPU8x10" +#: backend/epson2.c:102 backend/pixma/pixma.c:409 +#, no-c-format +msgid "Infrared" +msgstr "Інфрачервоне" + #: backend/epson2.c:136 #, no-c-format msgid "Positive Slide" @@ -2122,6 +2146,26 @@ msgstr "Вбудований профіль CCT" msgid "User defined CCT profile" msgstr "Визначений користувачем профіль CCT" +#: backend/epsonds.c:750 +#, no-c-format +msgid "Load" +msgstr "Завантажити" + +#: backend/epsonds.c:751 +#, no-c-format +msgid "Load a sheet in the ADF" +msgstr "Завантажити аркуш до протяжного пристрою" + +#: backend/epsonds.c:771 +#, no-c-format +msgid "ADF Skew Correction" +msgstr "Виправлення нахилу у протяжному пристрої" + +#: backend/epsonds.c:773 +#, no-c-format +msgid "Enables ADF skew correction" +msgstr "Вмикає виправлення нахилу у протяжному пристрої" + #: backend/fujitsu.c:688 backend/hp-option.c:3330 backend/hp-option.c:3343 #, no-c-format msgid "On" @@ -2235,12 +2279,12 @@ msgstr "Перед" msgid "Back" msgstr "Зворот" -#: backend/fujitsu.c:3148 backend/pixma_sane_options.c:145 +#: backend/fujitsu.c:3148 backend/pixma/pixma_sane_options.c:145 #, no-c-format msgid "Gamma function exponent" msgstr "Показник функції гами" -#: backend/fujitsu.c:3149 backend/pixma_sane_options.c:146 +#: backend/fujitsu.c:3149 backend/pixma/pixma_sane_options.c:146 #, no-c-format msgid "Changes intensity of midtones" msgstr "Змінює інтенсивність напівтонів" @@ -2352,15 +2396,16 @@ msgid "Gamma curve, from light to dark, but upper two may not work" msgstr "" "Крива гами, від світлого до темного, але верхні дві можуть не працювати" -#: backend/fujitsu.c:3397 backend/genesys/genesys.cpp:4011 -#: backend/pixma_sane_options.c:335 +#: backend/fujitsu.c:3397 backend/genesys/genesys.cpp:4229 +#: backend/pixma/pixma_sane_options.c:335 #, no-c-format msgid "Threshold curve" msgstr "Порогова крива" #: backend/fujitsu.c:3398 #, no-c-format -msgid "Threshold curve, from light to dark, but upper two may not be linear" +msgid "" +"Threshold curve, from light to dark, but upper two may not be linear" msgstr "" "Порогова крива, від світлого до темного, але верхні дві не можуть бути " "лінійними" @@ -2486,7 +2531,8 @@ msgstr "Дія ПП" #: backend/fujitsu.c:3657 #, no-c-format msgid "Action following double feed error" -msgstr "Дія, яку буде виконано у відповідь на помилку подвійного подавання" +msgstr "" +"Дія, яку буде виконано у відповідь на помилку подвійного подавання" #: backend/fujitsu.c:3673 #, no-c-format @@ -2580,7 +2626,8 @@ msgstr "Колір тла" #: backend/fujitsu.c:3840 #, no-c-format -msgid "Set color of background for scans. May conflict with overscan option" +msgid "" +"Set color of background for scans. May conflict with overscan option" msgstr "" "Встановити колір для тла сканованих зображень. Може конфліктувати із " "параметром полів." @@ -2607,7 +2654,8 @@ msgstr "Режим буферизації" #: backend/fujitsu.c:3885 #, no-c-format -msgid "Request scanner to read pages quickly from ADF into internal memory" +msgid "" +"Request scanner to read pages quickly from ADF into internal memory" msgstr "" "Наказати сканеру швидко читати сторінки з протяжного пристрою до " "внутрішньої пам’яті" @@ -2620,7 +2668,8 @@ msgstr "Попереднє захоплення" #: backend/fujitsu.c:3905 #, no-c-format msgid "Request scanner to grab next page from ADF" -msgstr "Наказати сканеру захопити наступну сторінку із протяжного пристрою" +msgstr "" +"Наказати сканеру захопити наступну сторінку із протяжного пристрою" #: backend/fujitsu.c:3924 #, no-c-format @@ -2647,7 +2696,8 @@ msgstr "Таймер присипляння" #: backend/fujitsu.c:3944 #, no-c-format -msgid "Time in minutes until the internal power supply switches to sleep mode" +msgid "" +"Time in minutes until the internal power supply switches to sleep mode" msgstr "" "Час у хвилинах, по завершенню якого внутрішнє живлення буде переведено у " "режим сну" @@ -2677,7 +2727,7 @@ msgstr "Зміщення двобічного" msgid "Adjust front/back offset" msgstr "Коригування зміщення між переднім і зворотним боком" -#: backend/fujitsu.c:3999 backend/plustek.c:1025 backend/umax_pp.c:800 +#: backend/fujitsu.c:3999 backend/plustek.c:1025 backend/umax_pp.c:794 #, no-c-format msgid "Green offset" msgstr "Зміщення зеленого" @@ -2687,7 +2737,7 @@ msgstr "Зміщення зеленого" msgid "Adjust green/red offset" msgstr "Коригування зміщення між зеленим і червоним каналами" -#: backend/fujitsu.c:4017 backend/plustek.c:1041 backend/umax_pp.c:812 +#: backend/fujitsu.c:4017 backend/plustek.c:1041 backend/umax_pp.c:806 #, no-c-format msgid "Blue offset" msgstr "Зміщення синього" @@ -2764,7 +2814,7 @@ msgstr "" "Мінімальний діаметр окремих плям, які слід усунути зі сканованого " "зображення." -#: backend/fujitsu.c:4104 backend/genesys/genesys.cpp:3941 +#: backend/fujitsu.c:4104 backend/genesys/genesys.cpp:4159 #, no-c-format msgid "Software crop" msgstr "Програмне обрізання" @@ -2783,7 +2833,8 @@ msgstr "Перервати при скасуванні" #: backend/fujitsu.c:4135 #, no-c-format -msgid "Request driver to halt the paper feed instead of eject during a cancel." +msgid "" +"Request driver to halt the paper feed instead of eject during a cancel." msgstr "" "Наказати драйверу перервати подавання паперу, замість його " "виштовхування, якщо сканування скасовано." @@ -3051,50 +3102,50 @@ msgstr "Набирач щільності" msgid "Duplex switch" msgstr "Перемикач двобічного" -#: backend/genesys/genesys.cpp:3942 +#: backend/genesys/genesys.cpp:4160 #, no-c-format msgid "Request backend to remove border from pages digitally" msgstr "" "Вимагати від програмного модуля вилучення границі зі сторінок у " "автоматичному режимі" -#: backend/genesys/genesys.cpp:3951 backend/kvs1025_opt.c:912 +#: backend/genesys/genesys.cpp:4169 backend/kvs1025_opt.c:912 #, no-c-format msgid "Request driver to discard pages with low numbers of dark pixels" msgstr "" "Вимагати від драйвера відкидання сторінок з надто низькою кількістю " "темних пікселів" -#: backend/genesys/genesys.cpp:3961 backend/kvs1025_opt.c:892 +#: backend/genesys/genesys.cpp:4179 backend/kvs1025_opt.c:892 #, no-c-format msgid "Software derotate" msgstr "Програмне усування обертання" -#: backend/genesys/genesys.cpp:3962 backend/kvs1025_opt.c:894 +#: backend/genesys/genesys.cpp:4180 backend/kvs1025_opt.c:894 #, no-c-format msgid "Request driver to detect and correct 90 degree image rotation" msgstr "" "Вимагати від драйвера виявлення і виправлення обертання зображення на 90 " "градусів" -#: backend/genesys/genesys.cpp:3992 backend/pixma_sane_options.c:314 +#: backend/genesys/genesys.cpp:4210 backend/pixma/pixma_sane_options.c:314 #, no-c-format msgid "Extras" msgstr "Додаткові" -#: backend/genesys/genesys.cpp:4012 backend/pixma_sane_options.c:336 +#: backend/genesys/genesys.cpp:4230 backend/pixma/pixma_sane_options.c:336 #, no-c-format msgid "Dynamic threshold curve, from light to dark, normally 50-65" msgstr "" "Крива динамічного порогового значення, від світлого до темного, типово " "50-65" -#: backend/genesys/genesys.cpp:4022 +#: backend/genesys/genesys.cpp:4240 #, no-c-format msgid "Disable interpolation" msgstr "Вимкнути інтерполяцію" -#: backend/genesys/genesys.cpp:4025 +#: backend/genesys/genesys.cpp:4243 #, no-c-format msgid "" "When using high resolutions where the horizontal resolution is smaller " @@ -3104,34 +3155,34 @@ msgstr "" "роздільна здатність менша за вертикальну, вимикає горизонтальну " "інтерполяцію." -#: backend/genesys/genesys.cpp:4034 +#: backend/genesys/genesys.cpp:4252 #, no-c-format msgid "Color filter" msgstr "Фільтр кольору" -#: backend/genesys/genesys.cpp:4037 +#: backend/genesys/genesys.cpp:4255 #, no-c-format msgid "When using gray or lineart this option selects the used color." msgstr "" "За використання друку у півтонах або штрихового друку за допомогою цього " "пункту можна обрати колір друку." -#: backend/genesys/genesys.cpp:4061 +#: backend/genesys/genesys.cpp:4279 #, no-c-format msgid "Calibration file" msgstr "Файл калібрування" -#: backend/genesys/genesys.cpp:4062 +#: backend/genesys/genesys.cpp:4280 #, no-c-format msgid "Specify the calibration file to use" msgstr "Вкажіть файл даних калібрування, які буде використано" -#: backend/genesys/genesys.cpp:4079 +#: backend/genesys/genesys.cpp:4297 #, no-c-format msgid "Calibration cache expiration time" msgstr "Строк дії кешу калібрування" -#: backend/genesys/genesys.cpp:4080 +#: backend/genesys/genesys.cpp:4298 #, no-c-format msgid "" "Time (in minutes) before a cached calibration expires. A value of 0 " @@ -3142,12 +3193,12 @@ msgstr "" "Від’ємні значення означають, що обмежень на строк дії кешу не " "накладатиметься." -#: backend/genesys/genesys.cpp:4090 +#: backend/genesys/genesys.cpp:4308 #, no-c-format msgid "Lamp off time" msgstr "Час вимикання лампи" -#: backend/genesys/genesys.cpp:4093 +#: backend/genesys/genesys.cpp:4311 #, no-c-format msgid "" "The lamp will be turned off after the given time (in minutes). A value " @@ -3156,106 +3207,111 @@ msgstr "" "Лампу буде вимкнено, коли спливе вказаний час (у хвилинах). Значення " "рівне 0 означатиме, що лампа не вимикатиметься." -#: backend/genesys/genesys.cpp:4103 +#: backend/genesys/genesys.cpp:4321 #, no-c-format msgid "Lamp off during scan" msgstr "Вимикання лампи під час сканування" -#: backend/genesys/genesys.cpp:4104 +#: backend/genesys/genesys.cpp:4322 #, no-c-format msgid "The lamp will be turned off during scan. " msgstr "Лампу буде вимкнено під час сканування. " -#: backend/genesys/genesys.cpp:4131 backend/genesys/genesys.cpp:4132 +#: backend/genesys/genesys.cpp:4349 backend/genesys/genesys.cpp:4350 #, no-c-format msgid "File button" msgstr "Кнопка «File»" -#: backend/genesys/genesys.cpp:4176 backend/genesys/genesys.cpp:4177 +#: backend/genesys/genesys.cpp:4394 backend/genesys/genesys.cpp:4395 #, no-c-format msgid "OCR button" msgstr "Кнопка «OCR»" -#: backend/genesys/genesys.cpp:4188 backend/genesys/genesys.cpp:4189 +#: backend/genesys/genesys.cpp:4406 backend/genesys/genesys.cpp:4407 #, no-c-format msgid "Power button" msgstr "Кнопка «Power»" -#: backend/genesys/genesys.cpp:4200 backend/genesys/genesys.cpp:4201 +#: backend/genesys/genesys.cpp:4418 backend/genesys/genesys.cpp:4419 #, no-c-format msgid "Extra button" msgstr "Додаткова кнопка" -#: backend/genesys/genesys.cpp:4212 backend/gt68xx.c:755 +#: backend/genesys/genesys.cpp:4430 backend/gt68xx.c:755 #, no-c-format msgid "Needs calibration" msgstr "Потребує калібрування" -#: backend/genesys/genesys.cpp:4213 backend/gt68xx.c:756 +#: backend/genesys/genesys.cpp:4431 backend/gt68xx.c:756 backend/p5.c:1928 #, no-c-format msgid "The scanner needs calibration for the current settings" msgstr "Для застосування поточних параметрів потрібне калібрування" -#: backend/genesys/genesys.cpp:4224 backend/gt68xx.c:780 -#: backend/gt68xx.c:781 backend/pixma_sane_options.c:226 -#: backend/plustek.c:1080 +#: backend/genesys/genesys.cpp:4442 backend/gt68xx.c:780 +#: backend/gt68xx.c:781 backend/p5.c:1937 backend/p5.c:1938 +#: backend/pixma/pixma_sane_options.c:226 backend/plustek.c:1080 #, no-c-format msgid "Buttons" msgstr "Кнопки" -#: backend/genesys/genesys.cpp:4233 backend/gt68xx.c:787 -#: backend/hp5400_sane.c:392 backend/hp-option.h:97 backend/niash.c:726 -#: backend/plustek.c:941 +#: backend/genesys/genesys.cpp:4451 backend/gt68xx.c:787 +#: backend/hp-option.h:97 backend/hp5400_sane.c:392 backend/niash.c:726 +#: backend/p5.c:1945 backend/plustek.c:941 #, no-c-format msgid "Calibrate" msgstr "Відкалібрувати" -#: backend/genesys/genesys.cpp:4235 backend/gt68xx.c:789 +#: backend/genesys/genesys.cpp:4453 backend/gt68xx.c:789 backend/p5.c:1947 #, no-c-format msgid "Start calibration using special sheet" msgstr "Почати калібрування за допомогою спеціального аркуша" -#: backend/genesys/genesys.cpp:4247 backend/gt68xx.c:802 +#: backend/genesys/genesys.cpp:4465 backend/gt68xx.c:802 backend/p5.c:1958 #, no-c-format msgid "Clear calibration" msgstr "Спорожнити дані калібрування" -#: backend/genesys/genesys.cpp:4248 backend/gt68xx.c:803 +#: backend/genesys/genesys.cpp:4466 backend/gt68xx.c:803 backend/p5.c:1960 #, no-c-format msgid "Clear calibration cache" msgstr "Спорожнити кеш калібрування" -#: backend/genesys/genesys.cpp:4258 +#: backend/genesys/genesys.cpp:4476 #, no-c-format msgid "Force calibration" msgstr "Примусове калібрування" -#: backend/genesys/genesys.cpp:4259 +#: backend/genesys/genesys.cpp:4477 #, no-c-format msgid "Force calibration ignoring all and any calibration caches" msgstr "" "Примусове калібрування з ігноруванням усіх кешованих даних калібрування" -#: backend/genesys/genesys.cpp:4269 +#: backend/genesys/genesys.cpp:4487 #, no-c-format msgid "Ignore internal offsets" msgstr "Ігнорувати внутрішні відступи" -#: backend/genesys/genesys.cpp:4271 +#: backend/genesys/genesys.cpp:4489 #, no-c-format msgid "" "Acquires the image including the internal calibration areas of the " "scanner" msgstr "" -"Надсилає запит щодо сканування зображення включно із внутрішніми областями" -" калібрування сканера" +"Надсилає запит щодо сканування зображення включно із внутрішніми " +"областями калібрування сканера" -#: backend/gt68xx.c:149 backend/ma1509.c:108 backend/mustek.c:164 -#: backend/snapscan-options.c:87 backend/umax.c:182 +#: backend/genesys/genesys.h:79 backend/gt68xx.c:149 backend/ma1509.c:108 +#: backend/mustek.c:164 backend/snapscan-options.c:87 backend/umax.c:182 #, no-c-format msgid "Transparency Adapter" msgstr "Адаптер плівок" +#: backend/genesys/genesys.h:80 +#, no-c-format +msgid "Transparency Adapter Infrared" +msgstr "Адаптер плівок для інфрачервоного сканування" + #: backend/gt68xx.c:470 #, no-c-format msgid "Gray mode color" @@ -3364,6 +3420,314 @@ msgstr "Значення коефіцієнта контрастності" msgid "Sets the gamma value of all channels." msgstr "Визначає значення коефіцієнта контрастності для всіх каналів." +#: backend/hp-option.c:2987 +#, no-c-format +msgid "Advanced Options" +msgstr "Додаткові параметри" + +#: backend/hp-option.c:3044 +#, no-c-format +msgid "Coarse" +msgstr "Грубе" + +#: backend/hp-option.c:3045 +#, no-c-format +msgid "Fine" +msgstr "Високої якості" + +#: backend/hp-option.c:3046 +#, no-c-format +msgid "Bayer" +msgstr "Секція" + +#: backend/hp-option.c:3049 backend/hp-option.c:3100 +#, no-c-format +msgid "Custom" +msgstr "Нетипова" + +#: backend/hp-option.c:3090 backend/hp-option.c:3146 +#: backend/hp-option.c:3161 +#, no-c-format +msgid "Auto" +msgstr "Авто" + +#: backend/hp-option.c:3091 +#, no-c-format +msgid "NTSC RGB" +msgstr "NTSC RGB" + +#: backend/hp-option.c:3092 +#, no-c-format +msgid "XPA RGB" +msgstr "XPA RGB" + +#: backend/hp-option.c:3093 +#, no-c-format +msgid "Pass-through" +msgstr "Пропускати" + +#: backend/hp-option.c:3094 +#, no-c-format +msgid "NTSC Gray" +msgstr "Чорно-біле NTSC" + +#: backend/hp-option.c:3095 +#, no-c-format +msgid "XPA Gray" +msgstr "Чорно-біле XPA" + +#: backend/hp-option.c:3147 +#, no-c-format +msgid "Slow" +msgstr "Повільно" + +#: backend/hp-option.c:3148 backend/hp-option.c:3255 +#: backend/kvs40xx_opt.c:230 backend/matsushita.c:244 backend/mustek.c:149 +#: backend/plustek.c:234 backend/plustek_pp.c:203 backend/u12.c:155 +#, no-c-format +msgid "Normal" +msgstr "Звичайна" + +#: backend/hp-option.c:3149 +#, no-c-format +msgid "Fast" +msgstr "Швидко" + +#: backend/hp-option.c:3150 +#, no-c-format +msgid "Extra Fast" +msgstr "Дуже швидко" + +#: backend/hp-option.c:3163 +#, no-c-format +msgid "2-pixel" +msgstr "Двоточкове" + +#: backend/hp-option.c:3164 +#, no-c-format +msgid "4-pixel" +msgstr "Чотириточкове" + +#: backend/hp-option.c:3165 +#, no-c-format +msgid "8-pixel" +msgstr "Восьмиточкове" + +#: backend/hp-option.c:3176 +#, no-c-format +msgid "Print" +msgstr "Друк" + +#: backend/hp-option.c:3177 backend/hp3900_sane.c:427 +#: backend/hp3900_sane.c:1019 +#, no-c-format +msgid "Slide" +msgstr "Слайд" + +#: backend/hp-option.c:3178 +#, no-c-format +msgid "Film-strip" +msgstr "Плівка" + +#: backend/hp-option.c:3256 backend/hp5590.c:93 +#, no-c-format +msgid "ADF" +msgstr "АПД" + +#: backend/hp-option.c:3257 +#, no-c-format +msgid "XPA" +msgstr "XPA" + +#: backend/hp-option.c:3331 backend/hp-option.c:3344 +#, no-c-format +msgid "Conditional" +msgstr "Умовно" + +#: backend/hp-option.c:3417 +#, no-c-format +msgid "Experiment" +msgstr "Експеримент" + +#: backend/hp-option.h:60 +#, no-c-format +msgid "Sharpening" +msgstr "Збільшенні різкості" + +#: backend/hp-option.h:61 +#, no-c-format +msgid "Set sharpening value." +msgstr "Визначає величину збільшення різкості." + +#: backend/hp-option.h:66 +#, no-c-format +msgid "Auto Threshold" +msgstr "Автоматичне порогове значення" + +#: backend/hp-option.h:68 +#, no-c-format +msgid "Enable automatic determination of threshold for line-art scans." +msgstr "" +"Увімкнути автоматичне визначення порогового значення для сканування " +"штрихових зображень." + +#: backend/hp-option.h:74 +#, no-c-format +msgid "Select smoothing filter." +msgstr "Визначити фільтр згладжування." + +#: backend/hp-option.h:79 +#, no-c-format +msgid "Unload media after scan" +msgstr "Вивантажувати носій після сканування" + +#: backend/hp-option.h:80 +#, no-c-format +msgid "Unloads the media after a scan." +msgstr "Вивантажує носій після сканування." + +#: backend/hp-option.h:85 +#, no-c-format +msgid "Change document" +msgstr "Змінити документ" + +#: backend/hp-option.h:86 +#, no-c-format +msgid "Change Document." +msgstr "Змінити документ." + +#: backend/hp-option.h:91 +#, no-c-format +msgid "Unload" +msgstr "Вивантажити" + +#: backend/hp-option.h:92 +#, no-c-format +msgid "Unload Document." +msgstr "Вивантажити документ." + +#: backend/hp-option.h:98 +#, no-c-format +msgid "Start calibration process." +msgstr "Почати процедуру калібрування." + +#: backend/hp-option.h:103 +#, no-c-format +msgid "Media" +msgstr "Носій" + +#: backend/hp-option.h:104 +#, no-c-format +msgid "Set type of media." +msgstr "Визначити тип носія." + +#: backend/hp-option.h:109 +#, no-c-format +msgid "Exposure time" +msgstr "Час експозиції" + +#: backend/hp-option.h:111 +#, no-c-format +msgid "" +"A longer exposure time lets the scanner collect more light. Suggested " +"use is 175% for prints, 150% for normal slides and \"Negative\" for " +"negative film. For dark (underexposed) images you can increase this " +"value." +msgstr "" +"Триваліша витримка надасть змогу сканеру накопичити більше світла. " +"Рекомендуємо вам скористатися значенням 175% для друкованих документів, " +"150% для звичайних слайдів та «Негатив» для негативів. Для темних " +"(недоекспонованих) зображень ви можете збільшити це значення." + +#: backend/hp-option.h:119 backend/hp-option.h:126 +#, no-c-format +msgid "Color Matrix" +msgstr "Матриця кольорів" + +#: backend/hp-option.h:121 +#, no-c-format +msgid "Set the scanner's color matrix." +msgstr "Визначити матрицю кольорів сканера." + +#: backend/hp-option.h:127 +#, no-c-format +msgid "Custom color matrix." +msgstr "Нетипова матриця кольорів." + +#: backend/hp-option.h:132 +#, no-c-format +msgid "Mono Color Matrix" +msgstr "Чорно-біла матриця кольорів" + +#: backend/hp-option.h:133 +#, no-c-format +msgid "Custom color matrix for grayscale scans." +msgstr "Нетипова матриця кольорів для чорно-білих зображень." + +#: backend/hp-option.h:138 +#, no-c-format +msgid "Mirror horizontal" +msgstr "Віддзеркалити горизонтально" + +#: backend/hp-option.h:139 +#, no-c-format +msgid "Mirror image horizontally." +msgstr "Віддзеркалити зображення по горизонталі." + +#: backend/hp-option.h:144 +#, no-c-format +msgid "Mirror vertical" +msgstr "Віддзеркалити вертикально" + +#: backend/hp-option.h:145 +#, no-c-format +msgid "Mirror image vertically." +msgstr "Віддзеркалити зображення по вертикалі." + +#: backend/hp-option.h:150 +#, no-c-format +msgid "Update options" +msgstr "Оновити параметри" + +#: backend/hp-option.h:151 +#, no-c-format +msgid "Update options." +msgstr "Оновити параметри." + +#: backend/hp-option.h:156 +#, no-c-format +msgid "8 bit output" +msgstr "8-бітовий вивід" + +#: backend/hp-option.h:158 +#, no-c-format +msgid "" +"Use bit depth greater eight internally, but output only eight bits." +msgstr "" +"Для внутрішньої обробки використовувати глибини кольорів, більші за 8-" +"бітові, але виводити дані лише у 8-бітовому форматі." + +#: backend/hp-option.h:164 +#, no-c-format +msgid "Front button wait" +msgstr "Очікувати натискання кнопки у передній частині" + +#: backend/hp-option.h:165 +#, no-c-format +msgid "Wait to scan for front-panel button push." +msgstr "" +"Не починати сканування до натискання кнопки на передній панелі сканера." + +#: backend/hp-option.h:172 +#, no-c-format +msgid "Shut off lamp" +msgstr "Вимкнути лампу" + +#: backend/hp-option.h:173 +#, no-c-format +msgid "Shut off scanner lamp." +msgstr "Вимкнути лампу сканера." + #: backend/hp3500.c:1020 #, no-c-format msgid "Geometry Group" @@ -3374,12 +3738,6 @@ msgstr "Група розташування" msgid "Scan Mode Group" msgstr "Група режимів сканування" -#: backend/hp3900_sane.c:427 backend/hp3900_sane.c:1019 -#: backend/hp-option.c:3177 -#, no-c-format -msgid "Slide" -msgstr "Слайд" - #: backend/hp3900_sane.c:1405 #, no-c-format msgid "Scanner model" @@ -3584,11 +3942,6 @@ msgstr "Вмикає або вимикає лампу." msgid "Calibrates for black and white level." msgstr "Калібрує для визначення рівня чорного и білого." -#: backend/hp5590.c:93 backend/hp-option.c:3256 -#, no-c-format -msgid "ADF" -msgstr "АПД" - #: backend/hp5590.c:95 #, no-c-format msgid "TMA Slides" @@ -3662,7 +4015,8 @@ msgstr "Документ доступний у АПД" #: backend/hp5590.c:128 #, no-c-format msgid "Get state of document-available indicator in ADF (read only)" -msgstr "Отримати стан індикатора доступності документа у АПД (лише читання)" +msgstr "" +"Отримати стан індикатора доступності документа у АПД (лише читання)" #: backend/hp5590.c:130 #, no-c-format @@ -3671,7 +4025,8 @@ msgstr "Приховувати кінцевий піксель сторінки" #: backend/hp5590.c:131 #, no-c-format -msgid "Hide end-of-page indicator pixels and overwrite with neighbor pixels" +msgid "" +"Hide end-of-page indicator pixels and overwrite with neighbor pixels" msgstr "" "Приховувати пікселі-індикатори кінця сторінки і перезаписувати їх " "сусідніми пікселями" @@ -3694,7 +4049,8 @@ msgstr "" #: backend/hp5590.c:137 #, no-c-format msgid "RGB or gray color value for filling mode 'color'" -msgstr "Значення кольору у RGB або тонах сірого для режиму заповнення «color»" +msgstr "" +"Значення кольору у RGB або тонах сірого для режиму заповнення «color»" #: backend/hp5590.c:138 #, no-c-format @@ -3706,302 +4062,6 @@ msgstr "" "як значення у форматі r*65536+256*g+b або значення тону сірого (типове " "значення — фіолетовий або сірий)" -#: backend/hp-option.c:2987 -#, no-c-format -msgid "Advanced Options" -msgstr "Додаткові параметри" - -#: backend/hp-option.c:3044 -#, no-c-format -msgid "Coarse" -msgstr "Грубе" - -#: backend/hp-option.c:3045 -#, no-c-format -msgid "Fine" -msgstr "Високої якості" - -#: backend/hp-option.c:3046 -#, no-c-format -msgid "Bayer" -msgstr "Секція" - -#: backend/hp-option.c:3049 backend/hp-option.c:3100 -#, no-c-format -msgid "Custom" -msgstr "Нетипова" - -#: backend/hp-option.c:3090 backend/hp-option.c:3146 -#: backend/hp-option.c:3161 -#, no-c-format -msgid "Auto" -msgstr "Авто" - -#: backend/hp-option.c:3091 -#, no-c-format -msgid "NTSC RGB" -msgstr "NTSC RGB" - -#: backend/hp-option.c:3092 -#, no-c-format -msgid "XPA RGB" -msgstr "XPA RGB" - -#: backend/hp-option.c:3093 -#, no-c-format -msgid "Pass-through" -msgstr "Пропускати" - -#: backend/hp-option.c:3094 -#, no-c-format -msgid "NTSC Gray" -msgstr "Чорно-біле NTSC" - -#: backend/hp-option.c:3095 -#, no-c-format -msgid "XPA Gray" -msgstr "Чорно-біле XPA" - -#: backend/hp-option.c:3147 -#, no-c-format -msgid "Slow" -msgstr "Повільно" - -#: backend/hp-option.c:3148 backend/hp-option.c:3255 -#: backend/kvs40xx_opt.c:230 backend/matsushita.c:244 backend/mustek.c:149 -#: backend/plustek.c:234 backend/plustek_pp.c:203 backend/u12.c:155 -#, no-c-format -msgid "Normal" -msgstr "Звичайна" - -#: backend/hp-option.c:3149 -#, no-c-format -msgid "Fast" -msgstr "Швидко" - -#: backend/hp-option.c:3150 -#, no-c-format -msgid "Extra Fast" -msgstr "Дуже швидко" - -#: backend/hp-option.c:3163 -#, no-c-format -msgid "2-pixel" -msgstr "Двоточкове" - -#: backend/hp-option.c:3164 -#, no-c-format -msgid "4-pixel" -msgstr "Чотириточкове" - -#: backend/hp-option.c:3165 -#, no-c-format -msgid "8-pixel" -msgstr "Восьмиточкове" - -#: backend/hp-option.c:3176 -#, no-c-format -msgid "Print" -msgstr "Друк" - -#: backend/hp-option.c:3178 -#, no-c-format -msgid "Film-strip" -msgstr "Плівка" - -#: backend/hp-option.c:3257 -#, no-c-format -msgid "XPA" -msgstr "XPA" - -#: backend/hp-option.c:3331 backend/hp-option.c:3344 -#, no-c-format -msgid "Conditional" -msgstr "Умовно" - -#: backend/hp-option.c:3417 -#, no-c-format -msgid "Experiment" -msgstr "Експеримент" - -#: backend/hp-option.h:60 -#, no-c-format -msgid "Sharpening" -msgstr "Збільшенні різкості" - -#: backend/hp-option.h:61 -#, no-c-format -msgid "Set sharpening value." -msgstr "Визначає величину збільшення різкості." - -#: backend/hp-option.h:66 -#, no-c-format -msgid "Auto Threshold" -msgstr "Автоматичне порогове значення" - -#: backend/hp-option.h:68 -#, no-c-format -msgid "Enable automatic determination of threshold for line-art scans." -msgstr "" -"Увімкнути автоматичне визначення порогового значення для сканування " -"штрихових зображень." - -#: backend/hp-option.h:74 -#, no-c-format -msgid "Select smoothing filter." -msgstr "Визначити фільтр згладжування." - -#: backend/hp-option.h:79 -#, no-c-format -msgid "Unload media after scan" -msgstr "Вивантажувати носій після сканування" - -#: backend/hp-option.h:80 -#, no-c-format -msgid "Unloads the media after a scan." -msgstr "Вивантажує носій після сканування." - -#: backend/hp-option.h:85 -#, no-c-format -msgid "Change document" -msgstr "Змінити документ" - -#: backend/hp-option.h:86 -#, no-c-format -msgid "Change Document." -msgstr "Змінити документ." - -#: backend/hp-option.h:91 -#, no-c-format -msgid "Unload" -msgstr "Вивантажити" - -#: backend/hp-option.h:92 -#, no-c-format -msgid "Unload Document." -msgstr "Вивантажити документ." - -#: backend/hp-option.h:98 -#, no-c-format -msgid "Start calibration process." -msgstr "Почати процедуру калібрування." - -#: backend/hp-option.h:103 -#, no-c-format -msgid "Media" -msgstr "Носій" - -#: backend/hp-option.h:104 -#, no-c-format -msgid "Set type of media." -msgstr "Визначити тип носія." - -#: backend/hp-option.h:109 -#, no-c-format -msgid "Exposure time" -msgstr "Час експозиції" - -#: backend/hp-option.h:111 -#, no-c-format -msgid "" -"A longer exposure time lets the scanner collect more light. Suggested " -"use is 175% for prints, 150% for normal slides and \"Negative\" for " -"negative film. For dark (underexposed) images you can increase this " -"value." -msgstr "" -"Триваліша витримка надасть змогу сканеру накопичити більше світла. " -"Рекомендуємо вам скористатися значенням 175% для друкованих документів, " -"150% для звичайних слайдів та «Негатив» для негативів. Для темних " -"(недоекспонованих) зображень ви можете збільшити це значення." - -#: backend/hp-option.h:119 backend/hp-option.h:126 -#, no-c-format -msgid "Color Matrix" -msgstr "Матриця кольорів" - -#: backend/hp-option.h:121 -#, no-c-format -msgid "Set the scanner's color matrix." -msgstr "Визначити матрицю кольорів сканера." - -#: backend/hp-option.h:127 -#, no-c-format -msgid "Custom color matrix." -msgstr "Нетипова матриця кольорів." - -#: backend/hp-option.h:132 -#, no-c-format -msgid "Mono Color Matrix" -msgstr "Чорно-біла матриця кольорів" - -#: backend/hp-option.h:133 -#, no-c-format -msgid "Custom color matrix for grayscale scans." -msgstr "Нетипова матриця кольорів для чорно-білих зображень." - -#: backend/hp-option.h:138 -#, no-c-format -msgid "Mirror horizontal" -msgstr "Віддзеркалити горизонтально" - -#: backend/hp-option.h:139 -#, no-c-format -msgid "Mirror image horizontally." -msgstr "Віддзеркалити зображення по горизонталі." - -#: backend/hp-option.h:144 -#, no-c-format -msgid "Mirror vertical" -msgstr "Віддзеркалити вертикально" - -#: backend/hp-option.h:145 -#, no-c-format -msgid "Mirror image vertically." -msgstr "Віддзеркалити зображення по вертикалі." - -#: backend/hp-option.h:150 -#, no-c-format -msgid "Update options" -msgstr "Оновити параметри" - -#: backend/hp-option.h:151 -#, no-c-format -msgid "Update options." -msgstr "Оновити параметри." - -#: backend/hp-option.h:156 -#, no-c-format -msgid "8 bit output" -msgstr "8-бітовий вивід" - -#: backend/hp-option.h:158 -#, no-c-format -msgid "Use bit depth greater eight internally, but output only eight bits." -msgstr "" -"Для внутрішньої обробки використовувати глибини кольорів, більші за 8-" -"бітові, але виводити дані лише у 8-бітовому форматі." - -#: backend/hp-option.h:164 -#, no-c-format -msgid "Front button wait" -msgstr "Очікувати натискання кнопки у передній частині" - -#: backend/hp-option.h:165 -#, no-c-format -msgid "Wait to scan for front-panel button push." -msgstr "" -"Не починати сканування до натискання кнопки на передній панелі сканера." - -#: backend/hp-option.h:172 -#, no-c-format -msgid "Shut off lamp" -msgstr "Вимкнути лампу" - -#: backend/hp-option.h:173 -#, no-c-format -msgid "Shut off scanner lamp." -msgstr "Вимкнути лампу сканера." - #: backend/kvs1025.h:51 backend/kvs20xx_opt.c:295 backend/kvs40xx_opt.c:516 #: backend/matsushita.h:219 #, no-c-format @@ -4100,7 +4160,7 @@ msgid "single" msgstr "однобічний" #: backend/kvs1025_opt.c:73 backend/kvs20xx.c:462 backend/kvs20xx_opt.c:56 -#: backend/kvs40xx.c:704 backend/kvs40xx.c:722 backend/kvs40xx_opt.c:102 +#: backend/kvs40xx.c:705 backend/kvs40xx.c:723 backend/kvs40xx_opt.c:102 #: backend/kvs40xx_opt.c:1087 #, no-c-format msgid "continuous" @@ -4399,7 +4459,7 @@ msgstr "Визначає виразність зображення" #: backend/kvs1025_opt.c:807 backend/kvs1025_opt.c:808 #: backend/matsushita.c:1300 backend/matsushita.c:1301 -#: backend/pixma_sane_options.c:112 +#: backend/pixma/pixma_sane_options.c:112 #, no-c-format msgid "Gamma" msgstr "Гама" @@ -4444,7 +4504,8 @@ msgstr "Обернути зображення за год. стрілкою" #: backend/kvs1025_opt.c:861 #, no-c-format msgid "Request driver to rotate pages by a fixed amount" -msgstr "Вимагати від драйвера обертання сторінок на фіксований вказаний кут" +msgstr "" +"Вимагати від драйвера обертання сторінок на фіксований вказаний кут" #: backend/kvs1025_opt.c:873 #, no-c-format @@ -4609,7 +4670,8 @@ msgstr "Стискання JPEG" #: backend/kvs40xx_opt.c:718 #, no-c-format msgid "JPEG compression (your application must be able to uncompress)" -msgstr "Стискання JPEG (ваша програма повинна мати змогу розпакувати дані)" +msgstr "" +"Стискання JPEG (ваша програма повинна мати змогу розпакувати дані)" #: backend/kvs40xx_opt.c:737 backend/kvs40xx_opt.c:738 #, no-c-format @@ -4701,52 +4763,52 @@ msgstr "Секція 8x8" msgid "8x8 Vertical Line" msgstr "8x8 Вертикальна лінія" -#: backend/lexmark.c:273 backend/umax_pp.c:711 +#: backend/lexmark.c:273 backend/umax_pp.c:705 #, no-c-format msgid "Gain" msgstr "Підсилення" -#: backend/lexmark.c:274 backend/umax_pp.c:712 +#: backend/lexmark.c:274 backend/umax_pp.c:706 #, no-c-format msgid "Color channels gain settings" msgstr "Параметри підсилення каналів кольорів" -#: backend/lexmark.c:283 backend/umax_pp.c:719 +#: backend/lexmark.c:283 backend/umax_pp.c:713 #, no-c-format msgid "Gray gain" msgstr "Підсилення сірого" -#: backend/lexmark.c:284 backend/umax_pp.c:720 +#: backend/lexmark.c:284 backend/umax_pp.c:714 #, no-c-format msgid "Sets gray channel gain" msgstr "Визначає підсилення сірого каналу" -#: backend/lexmark.c:297 backend/plustek.c:1001 backend/umax_pp.c:731 +#: backend/lexmark.c:297 backend/plustek.c:1001 backend/umax_pp.c:725 #, no-c-format msgid "Red gain" msgstr "Підсилення червоного" -#: backend/lexmark.c:298 backend/umax_pp.c:732 +#: backend/lexmark.c:298 backend/umax_pp.c:726 #, no-c-format msgid "Sets red channel gain" msgstr "Визначає підсилення каналу червоного" -#: backend/lexmark.c:311 backend/plustek.c:1017 backend/umax_pp.c:743 +#: backend/lexmark.c:311 backend/plustek.c:1017 backend/umax_pp.c:737 #, no-c-format msgid "Green gain" msgstr "Підсилення зеленого" -#: backend/lexmark.c:312 backend/umax_pp.c:744 +#: backend/lexmark.c:312 backend/umax_pp.c:738 #, no-c-format msgid "Sets green channel gain" msgstr "Визначає підсилення каналу зеленого" -#: backend/lexmark.c:325 backend/plustek.c:1033 backend/umax_pp.c:755 +#: backend/lexmark.c:325 backend/plustek.c:1033 backend/umax_pp.c:749 #, no-c-format msgid "Blue gain" msgstr "Підсилення синього" -#: backend/lexmark.c:326 backend/umax_pp.c:756 +#: backend/lexmark.c:326 backend/umax_pp.c:750 #, no-c-format msgid "Sets blue channel gain" msgstr "Визначає підсилення каналу синього" @@ -4832,7 +4894,7 @@ msgstr "Одна сторінка" msgid "All pages" msgstr "Всі сторінки" -#: backend/matsushita.c:1034 backend/plustek.c:1333 +#: backend/matsushita.c:1034 backend/p5_device.c:8 backend/plustek.c:1333 #, no-c-format msgid "sheetfed scanner" msgstr "сканер з подачею аркушів" @@ -4889,7 +4951,8 @@ msgstr "Калібрування програмою обробки" #: backend/microtek2.h:617 #, no-c-format -msgid "If checked the color calibration before a scan is done by the backend" +msgid "" +"If checked the color calibration before a scan is done by the backend" msgstr "" "Якщо позначено цей пункт, калібрування кольорів перед скануванням " "виконується програмою обробки" @@ -4973,7 +5036,8 @@ msgstr "Скалярна гама червоного" #: backend/microtek2.h:655 #, no-c-format msgid "Selects a value for scalar gamma correction (red channel)" -msgstr "Визначає значення для скалярного виправлення гами (канал червоного)." +msgstr "" +"Визначає значення для скалярного виправлення гами (канал червоного)." #: backend/microtek2.h:659 #, no-c-format @@ -4983,7 +5047,8 @@ msgstr "Скалярна гама зеленого" #: backend/microtek2.h:660 #, no-c-format msgid "Selects a value for scalar gamma correction (green channel)" -msgstr "Визначає значення для скалярного виправлення гами (канал зеленого)." +msgstr "" +"Визначає значення для скалярного виправлення гами (канал зеленого)." #: backend/microtek2.h:664 #, no-c-format @@ -4993,7 +5058,8 @@ msgstr "Скалярна гама синього" #: backend/microtek2.h:665 #, no-c-format msgid "Selects a value for scalar gamma correction (blue channel)" -msgstr "Визначає значення для скалярного виправлення гами (канал синього)." +msgstr "" +"Визначає значення для скалярного виправлення гами (канал синього)." #: backend/microtek2.h:669 #, no-c-format @@ -5004,7 +5070,8 @@ msgstr "Канал" #, no-c-format msgid "" "Selects the colour band, \"Master\" means that all colours are affected." -msgstr "Визначає зв’язок кольорів. «Основний» визначає зв’язок всіх кольорів." +msgstr "" +"Визначає зв’язок кольорів. «Основний» визначає зв’язок всіх кольорів." #: backend/microtek2.h:674 #, no-c-format @@ -5259,7 +5326,8 @@ msgstr "Яскравість зеленого" #: backend/mustek.c:4457 #, no-c-format -msgid "Controls the brightness of the green channel of the acquired image." +msgid "" +"Controls the brightness of the green channel of the acquired image." msgstr "Керує яскравістю каналу зеленого у отриманому зображенні." #: backend/mustek.c:4469 @@ -5341,27 +5409,32 @@ msgstr "" "Розігрівати, до сталої яскравості лампи, не наполягати на 40-ти " "секундному розігріві." -#: backend/pixma.c:397 +#: backend/p5.c:1926 +#, no-c-format +msgid "Need calibration" +msgstr "Потребує калібрування" + +#: backend/pixma/pixma.c:397 #, no-c-format msgid "Negative color" msgstr "Кольоровий негатив" -#: backend/pixma.c:402 +#: backend/pixma/pixma.c:402 #, no-c-format msgid "Negative gray" msgstr "Чорно-білий негатив" -#: backend/pixma.c:415 +#: backend/pixma/pixma.c:415 #, no-c-format msgid "48 bits color" msgstr "48-бітовий колір" -#: backend/pixma.c:420 +#: backend/pixma/pixma.c:420 #, no-c-format msgid "16 bits gray" msgstr "16-бітовий сірий" -#: backend/pixma_sane_options.c:84 +#: backend/pixma/pixma_sane_options.c:84 #, no-c-format msgid "" "Selects the scan source (such as a document-feeder). Set source before " @@ -5371,12 +5444,12 @@ msgstr "" "Встановіть джерело перед режимом і роздільною здатністю. Відновлює " "автоматично визначені значення режиму та роздільної здатності." -#: backend/pixma_sane_options.c:98 +#: backend/pixma/pixma_sane_options.c:98 #, no-c-format msgid "Button-controlled scan" msgstr "Кероване кнопкою сканування" -#: backend/pixma_sane_options.c:99 +#: backend/pixma/pixma_sane_options.c:99 #, no-c-format msgid "" "When enabled, scan process will not start immediately. To proceed, press " @@ -5387,37 +5460,37 @@ msgstr "" "негайно. Для продовження, натисніть кнопку «SCAN» (MP150) або " "«COLOR» (для інших моделей). Для скасування натисніть кнопку «GRAY»." -#: backend/pixma_sane_options.c:232 +#: backend/pixma/pixma_sane_options.c:232 #, no-c-format msgid "Update button state" msgstr "Оновити стан кнопки" -#: backend/pixma_sane_options.c:244 +#: backend/pixma/pixma_sane_options.c:244 #, no-c-format msgid "Button 1" msgstr "Кнопка 1" -#: backend/pixma_sane_options.c:258 +#: backend/pixma/pixma_sane_options.c:258 #, no-c-format msgid "Button 2" msgstr "Кнопка 2" -#: backend/pixma_sane_options.c:272 +#: backend/pixma/pixma_sane_options.c:272 #, no-c-format msgid "Type of original to scan" msgstr "Тип оригіналу для сканування" -#: backend/pixma_sane_options.c:286 +#: backend/pixma/pixma_sane_options.c:286 #, no-c-format msgid "Target operation type" msgstr "Тип дії для отримання результату" -#: backend/pixma_sane_options.c:348 +#: backend/pixma/pixma_sane_options.c:348 #, no-c-format msgid "ADF Waiting Time" msgstr "Час очікування АПД" -#: backend/pixma_sane_options.c:349 +#: backend/pixma/pixma_sane_options.c:349 #, no-c-format msgid "" "When set, the scanner waits upto the specified time in seconds for a new " @@ -5511,7 +5584,7 @@ msgstr "Аналогова оболонка" msgid "Red gain value of the AFE" msgstr "Значення підсилення червоного AFE" -#: backend/plustek.c:1009 backend/umax_pp.c:788 +#: backend/plustek.c:1009 backend/umax_pp.c:782 #, no-c-format msgid "Red offset" msgstr "Зміщення червоного" @@ -5649,7 +5722,8 @@ msgstr "" #: backend/pnm.c:283 #, no-c-format -msgid "Set default values for enhancement controls (brightness & contrast)." +msgid "" +"Set default values for enhancement controls (brightness & contrast)." msgstr "" "Встановити типові значення керування покращенням (яскравістю і " "контрастністю)." @@ -5787,7 +5861,7 @@ msgstr "" msgid "This option reflects the status of a scanner button." msgstr "Цей пункт відповідає стану кнопки сканування." -#: backend/rts8891.c:2840 backend/umax.c:5795 backend/umax_pp.c:635 +#: backend/rts8891.c:2840 backend/umax.c:5795 backend/umax_pp.c:629 #, no-c-format msgid "Lamp on" msgstr "Увімкнути лампу" @@ -5797,12 +5871,12 @@ msgstr "Увімкнути лампу" msgid "Turn on scanner lamp" msgstr "Увімкнути лампу сканера" -#: backend/rts8891.c:2851 backend/umax1220u.c:248 backend/umax.c:5812 +#: backend/rts8891.c:2851 backend/umax.c:5812 backend/umax1220u.c:248 #, no-c-format msgid "Lamp off" msgstr "Вимкнути лампу" -#: backend/rts8891.c:2852 backend/umax1220u.c:249 backend/umax.c:5813 +#: backend/rts8891.c:2852 backend/umax.c:5813 backend/umax1220u.c:249 #, no-c-format msgid "Turn off scanner lamp" msgstr "Вимкнути лампу сканера" @@ -6012,7 +6086,8 @@ msgstr "Другий запис" msgid "" "This is the very long third entry. Maybe the frontend has an idea how to " "display it" -msgstr "Третій запис є затримується. Можливо, оболонка не може його показати." +msgstr "" +"Третій запис є затримується. Можливо, оболонка не може його показати." #: backend/test.c:348 #, no-c-format @@ -6117,7 +6192,8 @@ msgstr "Границя читання" #: backend/test.c:485 #, no-c-format -msgid "Limit the amount of data transferred with each call to sane_read()." +msgid "" +"Limit the amount of data transferred with each call to sane_read()." msgstr "" "Обмежити об’єм даних, що передаються під час кожного виклику sane_read()." @@ -6128,7 +6204,8 @@ msgstr "Розмір границі читання" #: backend/test.c:499 #, no-c-format -msgid "The (maximum) amount of data transferred with each call to sane_read()." +msgid "" +"The (maximum) amount of data transferred with each call to sane_read()." msgstr "" "Об’єм (максимальний) даних, які буде передано під час кожного з викликів " "sane_read()." @@ -6614,68 +6691,52 @@ msgstr "Режим калібрування" msgid "Define calibration mode" msgstr "Визначає режим калібрування" -#: backend/umax_pp.c:636 +#: backend/umax_pp.c:630 #, no-c-format msgid "Sets lamp on/off" msgstr "Визначає стан вмикання/вимикання лампи" -#: backend/umax_pp.c:645 +#: backend/umax_pp.c:639 #, no-c-format msgid "UTA on" msgstr "Увімкнути UTA" -#: backend/umax_pp.c:646 +#: backend/umax_pp.c:640 #, no-c-format msgid "Sets UTA on/off" msgstr "Увімкнути/Вимкнути UTA" -#: backend/umax_pp.c:767 +#: backend/umax_pp.c:761 #, no-c-format msgid "Offset" msgstr "Зсув" -#: backend/umax_pp.c:769 +#: backend/umax_pp.c:763 #, no-c-format msgid "Color channels offset settings" msgstr "Параметри зсуву каналів кольорів" -#: backend/umax_pp.c:776 +#: backend/umax_pp.c:770 #, no-c-format msgid "Gray offset" msgstr "Зсув сірого" -#: backend/umax_pp.c:777 +#: backend/umax_pp.c:771 #, no-c-format msgid "Sets gray channel offset" msgstr "Визначає зсув каналу сірого" -#: backend/umax_pp.c:789 +#: backend/umax_pp.c:783 #, no-c-format msgid "Sets red channel offset" msgstr "Визначає зсув каналу червоного" -#: backend/umax_pp.c:801 +#: backend/umax_pp.c:795 #, no-c-format msgid "Sets green channel offset" msgstr "Визначає зсув каналу зеленого" -#: backend/umax_pp.c:813 +#: backend/umax_pp.c:807 #, no-c-format msgid "Sets blue channel offset" msgstr "Визначає зсув каналу синього" - -#~ msgid "Disable dynamic lineart" -#~ msgstr "Вимкнути динамічне штрихування" - -#~ msgid "" -#~ "Disable use of a software adaptive algorithm to generate lineart " -#~ "relying instead on hardware lineart." -#~ msgstr "" -#~ "Вимкнути використання адаптивного програмного алгоритму для створення " -#~ "штрихування замість апаратного алгоритму штрихування." - -#~ msgid "linier" -#~ msgstr "лінійна" - -#~ msgid "It is right and left reversing" -#~ msgstr "Перевертання ліворуч і праворуч" diff --git a/testsuite/backend/genesys/minigtest.h b/testsuite/backend/genesys/minigtest.h index 3fb9eb38d..9a38e775f 100644 --- a/testsuite/backend/genesys/minigtest.h +++ b/testsuite/backend/genesys/minigtest.h @@ -96,11 +96,11 @@ inline void check_raises_raised_unexpected(const char* function, const char* pat #define ASSERT_FALSE(x) do { check_true(!bool(x), __func__, __FILE__, __LINE__); } \ while (false) -#define ASSERT_RAISES(x, e) \ +#define ASSERT_RAISES(x, T) \ do { try { \ x; \ check_raises_did_not_raise(__func__, __FILE__, __LINE__); \ - } catch (e) { \ + } catch (const T&) { \ check_raises_success(__func__, __FILE__, __LINE__); \ } catch (...) { \ check_raises_raised_unexpected(__func__, __FILE__, __LINE__); \ diff --git a/testsuite/backend/genesys/session_config_test.cpp b/testsuite/backend/genesys/session_config_test.cpp index 42c3066df..136c7afb8 100644 --- a/testsuite/backend/genesys/session_config_test.cpp +++ b/testsuite/backend/genesys/session_config_test.cpp @@ -30,7 +30,7 @@ #include "../../../backend/genesys/test_settings.h" #include "../../../backend/genesys/test_scanner_interface.h" #include "../../../backend/genesys/utilities.h" -#include "../../include/sane/saneopts.h" +#include "../../../include/sane/saneopts.h" #include "sys/stat.h" #include #include @@ -143,7 +143,7 @@ public: auto i = find_option(name, SANE_TYPE_FIXED); int value = 0; TIE(sane_control_option(handle_, i, SANE_ACTION_GET_VALUE, &value, nullptr)); - return static_cast(SANE_UNFIX(value)); + return genesys::fixed_to_float(value); } void set_value_float(const std::string& name, float value) @@ -389,12 +389,13 @@ TestResult perform_single_test(const TestConfig& config, const std::string& chec std::vector get_all_test_configs() { genesys::genesys_init_usb_device_tables(); + genesys::verify_usb_device_tables(); std::vector configs; std::unordered_set model_names; for (const auto& usb_dev : *genesys::s_usb_devices) { - if (usb_dev.model.flags & GENESYS_FLAG_UNTESTED) { + if (genesys::has_flag(usb_dev.model.flags, genesys::ModelFlag::UNTESTED)) { continue; } if (model_names.find(usb_dev.model.name) != model_names.end()) { diff --git a/testsuite/backend/genesys/tests_calibration.cpp b/testsuite/backend/genesys/tests_calibration.cpp index 559f8a894..b953c29a7 100644 --- a/testsuite/backend/genesys/tests_calibration.cpp +++ b/testsuite/backend/genesys/tests_calibration.cpp @@ -70,7 +70,6 @@ Genesys_Calibration_Cache create_fake_calibration_entry() sensor.black_pixels = 48; sensor.dummy_pixel = 64; sensor.ccd_start_xoffset = 0; - sensor.sensor_pixels = 10800; sensor.fau_gain_white_ref = 210; sensor.gain_white_ref = 230; sensor.exposure = { 0x0000, 0x0000, 0x0000 }; @@ -104,8 +103,6 @@ Genesys_Calibration_Cache create_fake_calibration_entry() sensor.gamma = {1.0, 1.0, 1.0}; calib.sensor = sensor; - calib.calib_pixels = 12345; - calib.calib_channels = 3; calib.average_size = 7; calib.white_average_data = { 8, 7, 6, 5, 4, 3, 2 }; calib.dark_average_data = { 6, 5, 4, 3, 2, 18, 12 }; diff --git a/testsuite/backend/genesys/tests_image_pipeline.cpp b/testsuite/backend/genesys/tests_image_pipeline.cpp index d4853d262..844a8496f 100644 --- a/testsuite/backend/genesys/tests_image_pipeline.cpp +++ b/testsuite/backend/genesys/tests_image_pipeline.cpp @@ -42,29 +42,17 @@ void test_image_buffer_genesys_usb() requests.push_back(x); }; - FakeBufferModel model; - model.push_step(453120, 1); - model.push_step(56640, 3540); - ImageBufferGenesysUsb buffer{1086780, model, on_read_usb}; + ImageBufferGenesysUsb buffer{1086780, 453120, on_read_usb}; std::vector dummy; dummy.resize(1086780); ASSERT_TRUE(buffer.get_data(453120, dummy.data())); - ASSERT_TRUE(buffer.get_data(56640, dummy.data())); - ASSERT_TRUE(buffer.get_data(56640, dummy.data())); - ASSERT_TRUE(buffer.get_data(56640, dummy.data())); - ASSERT_TRUE(buffer.get_data(56640, dummy.data())); - ASSERT_TRUE(buffer.get_data(56640, dummy.data())); - ASSERT_TRUE(buffer.get_data(56640, dummy.data())); - ASSERT_TRUE(buffer.get_data(56640, dummy.data())); - ASSERT_TRUE(buffer.get_data(56640, dummy.data())); - ASSERT_TRUE(buffer.get_data(56640, dummy.data())); - ASSERT_TRUE(buffer.get_data(56640, dummy.data())); - ASSERT_TRUE(buffer.get_data(56640, dummy.data())); + ASSERT_TRUE(buffer.get_data(453120, dummy.data())); + ASSERT_TRUE(buffer.get_data(180550, dummy.data())); std::vector expected = { - 453120, 56576, 56576, 56576, 56832, 56576, 56576, 56576, 56832, 56576, 56576, 56576, 11008 + 453120, 453120, 180736 }; ASSERT_EQ(requests, expected); } @@ -79,25 +67,19 @@ void test_image_buffer_genesys_usb_capped_remaining_bytes() requests.push_back(x); }; - FakeBufferModel model; - model.push_step(453120, 1); - model.push_step(56640, 3540); - ImageBufferGenesysUsb buffer{1086780, model, on_read_usb}; + ImageBufferGenesysUsb buffer{1086780, 453120, on_read_usb}; std::vector dummy; dummy.resize(1086780); ASSERT_TRUE(buffer.get_data(453120, dummy.data())); - ASSERT_TRUE(buffer.get_data(56640, dummy.data())); - ASSERT_TRUE(buffer.get_data(56640, dummy.data())); - ASSERT_TRUE(buffer.get_data(56640, dummy.data())); - ASSERT_TRUE(buffer.get_data(56640, dummy.data())); + ASSERT_TRUE(buffer.get_data(453120, dummy.data())); buffer.set_remaining_size(10000); ASSERT_FALSE(buffer.get_data(56640, dummy.data())); std::vector expected = { // note that the sizes are rounded-up to 256 bytes - 453120, 56576, 56576, 56576, 56832, 10240 + 453120, 453120, 10240 }; ASSERT_EQ(requests, expected); } @@ -445,7 +427,7 @@ void test_node_calibrate_8bit() ImagePipelineStack stack; stack.push_first_node(1, 1, PixelFormat::RGB888, std::move(in_data)); - stack.push_node(bottom, top); + stack.push_node(bottom, top, 0); ASSERT_EQ(stack.get_output_width(), 1u); ASSERT_EQ(stack.get_output_height(), 1u); @@ -481,7 +463,7 @@ void test_node_calibrate_16bit() ImagePipelineStack stack; stack.push_first_node(1, 1, PixelFormat::RGB161616, std::move(in_data)); - stack.push_node(bottom, top); + stack.push_node(bottom, top, 0); ASSERT_EQ(stack.get_output_width(), 1u); ASSERT_EQ(stack.get_output_height(), 1u); diff --git a/testsuite/backend/genesys/tests_motor.cpp b/testsuite/backend/genesys/tests_motor.cpp index 07ca693a9..30fb2d2a7 100644 --- a/testsuite/backend/genesys/tests_motor.cpp +++ b/testsuite/backend/genesys/tests_motor.cpp @@ -40,9 +40,10 @@ void test_create_slope_table3() motor.id = MotorId::CANON_LIDE_200; motor.base_ydpi = 1200; motor.optical_ydpi = 6400; - motor.slopes.push_back(MotorSlope::create_from_steps(10000, 1000, 20)); - motor.slopes.push_back(MotorSlope::create_from_steps(10000, 1000, 20)); - motor.slopes.push_back(MotorSlope::create_from_steps(10000, 1000, 16)); + motor.profiles.push_back({MotorSlope::create_from_steps(10000, 1000, 20), StepType::FULL, 0}); + motor.profiles.push_back({MotorSlope::create_from_steps(10000, 1000, 20), StepType::HALF, 0}); + motor.profiles.push_back({MotorSlope::create_from_steps(10000, 1000, 16), + StepType::QUARTER, 0}); auto table = sanei_genesys_create_slope_table3(asic_type, motor, StepType::FULL, 10000, motor.base_ydpi); diff --git a/testsuite/tools/Makefile.am b/testsuite/tools/Makefile.am index 532e90426..5fd97caad 100644 --- a/testsuite/tools/Makefile.am +++ b/testsuite/tools/Makefile.am @@ -28,19 +28,25 @@ check: check.local check.local: @echo "**** Testing $(SANEDESC) with $(TESTFILE)" - @for mode in ascii html-backends-split html-mfgs xml statistics usermap db udev udev+acl udev+hwdb hwdb plist hal hal-new; \ + @pass=true; \ + for mode in ascii html-backends-split html-mfgs xml statistics usermap db udev udev+acl udev+hwdb hwdb plist hal hal-new; \ do \ $(SANEDESC) -m $$mode -s $(srcdir)/data >$$mode.res ;\ - if diff -I "[ 012][0-9]:[0-5][0-9]:[0-6][0-9] 20[0-9][0-9]" \ - -I "sane-backends 1\.0\.[0-9]\+\([-0-9a-fgdirty]\+\)\?$$" \ + if diff -I "sane-backends 1\.0\.[0-9]\+\([-0-9a-fgdirty]\+\)\?$$" \ $(srcdir)/data/$$mode.ref $$mode.res ; \ then \ echo "PASS: sane-desc -m $$mode -s $(srcdir)/data"; \ else \ echo "FAIL: sane-desc -m $$mode -s $(srcdir)/data"; \ - exit 1 ;\ + pass=false ; \ fi; \ done ;\ - echo "================" ;\ - echo "All tests passed" ;\ - echo "================" + if `$$pass`; then \ + echo "================" ; \ + echo "All tests passed" ; \ + echo "================" ; \ + else \ + echo "========================" ; \ + echo "One or more tests failed" ; \ + echo "========================" ; \ + fi diff --git a/testsuite/tools/data/ascii.ref b/testsuite/tools/data/ascii.ref index 4d6673237..20c2bf289 100644 --- a/testsuite/tools/data/ascii.ref +++ b/testsuite/tools/data/ascii.ref @@ -5709,7 +5709,7 @@ backend `genesys' status basic url *none* comment `clone of the HP 2400C' - model `ScanJet 3670C' + model `ScanJet 3670' interface `USB' usb-vendor-id `0x03f0' usb-product-id `0x1405' @@ -5722,7 +5722,7 @@ backend `genesys' usb-product-id `0x1405' status complete url *none* - comment `1200x1200 dpi max, same as HP 3670C' + comment `1200x1200 dpi max, same as HP 3670' model `ScanJet 4850C' interface `USB' usb-vendor-id `0x03f0' diff --git a/testsuite/tools/data/db.ref b/testsuite/tools/data/db.ref index d51729acf..3df3e95da 100644 --- a/testsuite/tools/data/db.ref +++ b/testsuite/tools/data/db.ref @@ -1,5 +1,5 @@ -# This file was automatically created based on description files (*.desc) -# by sane-desc 3.5 from sane-backends 1.0.24git on Wed Jul 31 07:52:48 2013 +# This file was generated from description files (*.desc) +# by sane-desc 3.6 from sane-backends 1.0.29-241-g1f9590ab # # The entries below are used to detect a USB device when it's plugged in # and then run a script to change the ownership and @@ -66,7 +66,7 @@ 0x03f0 0x1205 root:scanner 0664 # Hewlett-Packard ScanJet 4570C | Hewlett-Packard ScanJet 5500C 0x03f0 0x1305 root:scanner 0664 -# Hewlett-Packard ScanJet 3670C | Hewlett-Packard ScanJet 3690C +# Hewlett-Packard ScanJet 3670 | Hewlett-Packard ScanJet 3690C 0x03f0 0x1405 root:scanner 0664 # Hewlett-Packard ScanJet 5590 0x03f0 0x1705 root:scanner 0664 diff --git a/testsuite/tools/data/hal-new.ref b/testsuite/tools/data/hal-new.ref index c9b7f8081..fc48a7151 100644 --- a/testsuite/tools/data/hal-new.ref +++ b/testsuite/tools/data/hal-new.ref @@ -175,7 +175,7 @@ scanner proprietary - + scanner proprietary diff --git a/testsuite/tools/data/hal.ref b/testsuite/tools/data/hal.ref index 18490f296..68ef92a99 100644 --- a/testsuite/tools/data/hal.ref +++ b/testsuite/tools/data/hal.ref @@ -175,7 +175,7 @@ scanner proprietary - + scanner proprietary diff --git a/testsuite/tools/data/html-backends-split.ref b/testsuite/tools/data/html-backends-split.ref index 3455e20cb..1b2e8dd4b 100644 --- a/testsuite/tools/data/html-backends-split.ref +++ b/testsuite/tools/data/html-backends-split.ref @@ -5991,7 +5991,7 @@ Kyocera clone of the HP 2400C -ScanJet 3670C +ScanJet 3670 USB 0x03f0/0x1405 Complete @@ -6002,7 +6002,7 @@ Kyocera USB 0x03f0/0x1405 Complete -1200x1200 dpi max, same as HP 3670C +1200x1200 dpi max, same as HP 3670 ScanJet 4850C @@ -16496,7 +16496,6 @@ Grandtek Scopecam >Contact -This page was last updated on Wed Jul 31 07:52:48 2013 - by sane-desc 3.5 from sane-backends 1.0.24git +This page was created by sane-desc 3.6 from sane-backends 1.0.29-241-g1f9590ab diff --git a/testsuite/tools/data/html-mfgs.ref b/testsuite/tools/data/html-mfgs.ref index f82b30c9a..3c7f2ae7e 100644 --- a/testsuite/tools/data/html-mfgs.ref +++ b/testsuite/tools/data/html-mfgs.ref @@ -12078,7 +12078,7 @@ hpljm1005
(0) sane-hp3500 -ScanJet 3670C +ScanJet 3670 USB 0x03f0/0x1405 Complete @@ -12093,7 +12093,7 @@ hpljm1005
(0) USB 0x03f0/0x1405 Complete -1200x1200 dpi max, same as HP 3670C +1200x1200 dpi max, same as HP 3670 genesys
(1.0-63) @@ -23910,7 +23910,6 @@ qcam
(unmaintained) >Contact -This page was last updated on Wed Jul 31 07:52:48 2013 - by sane-desc 3.5 from sane-backends 1.0.24git +This page was created by sane-desc 3.6 from sane-backends 1.0.29-241-g1f9590ab diff --git a/testsuite/tools/data/hwdb.ref b/testsuite/tools/data/hwdb.ref index 7d029e089..1dd6b2a7d 100644 --- a/testsuite/tools/data/hwdb.ref +++ b/testsuite/tools/data/hwdb.ref @@ -1,5 +1,5 @@ -# This file was automatically created based on description files (*.desc) -# by sane-desc 3.5 from sane-backends 1.0.25git on Tue Dec 3 15:24:46 2013 +# This file was generated from description files (*.desc) +# by sane-desc 3.6 from sane-backends 1.0.29-241-g1f9590ab # # hwdb file for supported USB devices # @@ -97,7 +97,7 @@ usb:v03F0p1205* usb:v03F0p1305* libsane_matched=yes -# Hewlett-Packard ScanJet 3670C | Hewlett-Packard ScanJet 3690C +# Hewlett-Packard ScanJet 3670 | Hewlett-Packard ScanJet 3690C usb:v03F0p1405* libsane_matched=yes diff --git a/testsuite/tools/data/testfile.desc b/testsuite/tools/data/testfile.desc index e59aed3db..bae40993e 100644 --- a/testsuite/tools/data/testfile.desc +++ b/testsuite/tools/data/testfile.desc @@ -4894,7 +4894,7 @@ :status :basic :comment "clone of the HP 2400C" -:model "ScanJet 3670C" +:model "ScanJet 3670" :interface "USB" :usbid "0x03f0" "0x1405" :status :complete @@ -4904,7 +4904,7 @@ :interface "USB" :usbid "0x03f0" "0x1405" :status :complete -:comment "1200x1200 dpi max, same as HP 3670C" +:comment "1200x1200 dpi max, same as HP 3670" :model "ScanJet 4850C" :interface "USB" diff --git a/testsuite/tools/data/udev+acl.ref b/testsuite/tools/data/udev+acl.ref index 47210343c..81a81d399 100644 --- a/testsuite/tools/data/udev+acl.ref +++ b/testsuite/tools/data/udev+acl.ref @@ -1,5 +1,5 @@ -# This file was automatically created based on description files (*.desc) -# by sane-desc 3.5 from sane-backends 1.0.24git on Wed Jul 31 07:52:49 2013 +# This file was generated from description files (*.desc) +# by sane-desc 3.6 from sane-backends 1.0.29-241-g1f9590ab # # udev rules file for supported USB and SCSI devices # @@ -81,7 +81,7 @@ ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="1105", ENV{libsane_matched}="yes" ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="1205", ENV{libsane_matched}="yes" # Hewlett-Packard ScanJet 4570C | Hewlett-Packard ScanJet 5500C ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="1305", ENV{libsane_matched}="yes" -# Hewlett-Packard ScanJet 3670C | Hewlett-Packard ScanJet 3690C +# Hewlett-Packard ScanJet 3670 | Hewlett-Packard ScanJet 3690C ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="1405", ENV{libsane_matched}="yes" # Hewlett-Packard ScanJet 5590 ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="1705", ENV{libsane_matched}="yes" diff --git a/testsuite/tools/data/udev+hwdb.ref b/testsuite/tools/data/udev+hwdb.ref index ead2939c4..2cb6ff780 100644 --- a/testsuite/tools/data/udev+hwdb.ref +++ b/testsuite/tools/data/udev+hwdb.ref @@ -1,5 +1,5 @@ -# This file was automatically created based on description files (*.desc) -# by sane-desc 3.5 from sane-backends 1.0.24git on Thu Aug 1 18:50:15 2013 +# This file was generated from description files (*.desc) +# by sane-desc 3.6 from sane-backends 1.0.29-241-g1f9590ab # # udev rules file for supported USB and SCSI devices # diff --git a/testsuite/tools/data/udev.ref b/testsuite/tools/data/udev.ref index 9a221fc2e..478e8d5f5 100644 --- a/testsuite/tools/data/udev.ref +++ b/testsuite/tools/data/udev.ref @@ -1,5 +1,5 @@ -# This file was automatically created based on description files (*.desc) -# by sane-desc 3.5 from sane-backends 1.0.24git on Wed Jul 31 07:52:48 2013 +# This file was generated from description files (*.desc) +# by sane-desc 3.6 from sane-backends 1.0.29-241-g1f9590ab # # udev rules file for supported USB and SCSI devices # @@ -81,7 +81,7 @@ ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="1105", MODE="0664", GROUP="scanner", ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="1205", MODE="0664", GROUP="scanner", ENV{libsane_matched}="yes" # Hewlett-Packard ScanJet 4570C | Hewlett-Packard ScanJet 5500C ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="1305", MODE="0664", GROUP="scanner", ENV{libsane_matched}="yes" -# Hewlett-Packard ScanJet 3670C | Hewlett-Packard ScanJet 3690C +# Hewlett-Packard ScanJet 3670 | Hewlett-Packard ScanJet 3690C ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="1405", MODE="0664", GROUP="scanner", ENV{libsane_matched}="yes" # Hewlett-Packard ScanJet 5590 ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="1705", MODE="0664", GROUP="scanner", ENV{libsane_matched}="yes" diff --git a/testsuite/tools/data/usermap.ref b/testsuite/tools/data/usermap.ref index e02d73a95..0b7281bab 100644 --- a/testsuite/tools/data/usermap.ref +++ b/testsuite/tools/data/usermap.ref @@ -1,5 +1,5 @@ -# This file was automatically created based on description files (*.desc) -# by sane-desc 3.5 from sane-backends 1.0.24git on Wed Jul 31 07:52:48 2013 +# This file was generated from description files (*.desc) +# by sane-desc 3.6 from sane-backends 1.0.29-241-g1f9590ab # # The entries below are used to detect a USB device and change owner # and permissions on the "device node" used by libusb. @@ -64,7 +64,7 @@ libusbscanner 0x0003 0x03f0 0x1105 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0 libusbscanner 0x0003 0x03f0 0x1205 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000 # Hewlett-Packard ScanJet 4570C | Hewlett-Packard ScanJet 5500C libusbscanner 0x0003 0x03f0 0x1305 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000 -# Hewlett-Packard ScanJet 3670C | Hewlett-Packard ScanJet 3690C +# Hewlett-Packard ScanJet 3670 | Hewlett-Packard ScanJet 3690C libusbscanner 0x0003 0x03f0 0x1405 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000 # Hewlett-Packard ScanJet 5590 libusbscanner 0x0003 0x03f0 0x1705 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000 diff --git a/testsuite/tools/data/xml.ref b/testsuite/tools/data/xml.ref index 061809392..3c5b861b4 100644 --- a/testsuite/tools/data/xml.ref +++ b/testsuite/tools/data/xml.ref @@ -6609,7 +6609,7 @@ *none* clone of the HP 2400C - + USB 0x03f0 0x1405 @@ -6623,7 +6623,7 @@ 0x1405 complete *none* - 1200x1200 dpi max, same as HP 3670C + 1200x1200 dpi max, same as HP 3670 USB diff --git a/tools/sane-desc.c b/tools/sane-desc.c index 890e754a7..191c6e5c3 100644 --- a/tools/sane-desc.c +++ b/tools/sane-desc.c @@ -45,7 +45,7 @@ #include "../include/sane/sanei.h" #include "../include/sane/sanei_config.h" -#define SANE_DESC_VERSION "3.5" +#define SANE_DESC_VERSION "3.6" #define MAN_PAGE_LINK "man/%s.5.html" #define COLOR_MINIMAL "\"#B00000\"" @@ -2808,16 +2808,14 @@ html_print_header (void) static void html_print_footer (void) { - time_t current_time = time (0); - printf ("
\n" "SANE homepage\n" "
\n" "Contact\n" "
\n" "\n"); - printf ("This page was last updated on %s by sane-desc %s from %s\n", - asctime (localtime (¤t_time)), SANE_DESC_VERSION, PACKAGE_STRING); + printf ("This page was created by sane-desc %s from %s\n", + SANE_DESC_VERSION, PACKAGE_STRING); printf ("\n"); printf (" \n"); } @@ -3318,21 +3316,22 @@ create_scsiids_table (void) return first_scsiid; } +static void +print_header_comment (void) +{ + printf ("# This file was generated from description files (*.desc)\n" + "# by sane-desc %s from %s\n", + SANE_DESC_VERSION, PACKAGE_STRING); +} + /* print USB usermap file to be used by the hotplug tools */ static void print_usermap_header (void) { - time_t current_time = time (0); - + print_header_comment (); printf - ("# This file was automatically created based on description files (*.desc)\n" - "# by sane-desc %s from %s on %s" - "#\n" - , - SANE_DESC_VERSION, PACKAGE_STRING, asctime (localtime (¤t_time))); - - printf - ("# The entries below are used to detect a USB device and change owner\n" + ("#\n" + "# The entries below are used to detect a USB device and change owner\n" "# and permissions on the \"device node\" used by libusb.\n" "#\n" "# The 0x0003 match flag means the device is matched by its vendor and\n" @@ -3396,10 +3395,7 @@ print_usermap (void) static void print_db_header (void) { - time_t current_time = time (0); - printf ("# This file was automatically created based on description files (*.desc)\n" - "# by sane-desc %s from %s on %s", - SANE_DESC_VERSION, PACKAGE_STRING, asctime (localtime (¤t_time))); + print_header_comment (); printf ("#\n" "# The entries below are used to detect a USB device when it's plugged in\n" @@ -3461,11 +3457,7 @@ print_db (void) static void print_udev_header (void) { - time_t current_time = time (0); - printf ("# This file was automatically created based on description files (*.desc)\n" - "# by sane-desc %s from %s on %s", - SANE_DESC_VERSION, PACKAGE_STRING, asctime (localtime (¤t_time))); - + print_header_comment (); printf ("#\n" "# udev rules file for supported USB and SCSI devices\n" @@ -3654,11 +3646,7 @@ print_udev (void) static void print_udevhwdb_header (void) { - time_t current_time = time (0); - printf ("# This file was automatically created based on description files (*.desc)\n" - "# by sane-desc %s from %s on %s", - SANE_DESC_VERSION, PACKAGE_STRING, asctime (localtime (¤t_time))); - + print_header_comment (); printf ("#\n" "# udev rules file for supported USB and SCSI devices\n" @@ -3764,11 +3752,7 @@ print_udevhwdb (void) static void print_hwdb_header (void) { - time_t current_time = time (0); - printf ("# This file was automatically created based on description files (*.desc)\n" - "# by sane-desc %s from %s on %s", - SANE_DESC_VERSION, PACKAGE_STRING, asctime (localtime (¤t_time))); - + print_header_comment (); printf ("#\n" "# hwdb file for supported USB devices\n"