kopia lustrzana https://gitlab.com/sane-project/backends
Fixed calibration cache issues (coarse calibration for all modes,
correct fine calibration for sheetfed devices).merge-requests/1/head
rodzic
15a6e464e2
commit
08ecce430c
24
ChangeLog
24
ChangeLog
|
@ -1,3 +1,11 @@
|
|||
2006-06-08 Gerhard Jaeger <gerhard@gjaeger.de>
|
||||
|
||||
* doc/plustek/Pluste-USB.changes: Update
|
||||
* backend/plustek.c backend/plustek-usbcal.c
|
||||
backend/plustek-usbcalfile.c backend/plustek-usbhw.c:
|
||||
Fixed calibration cache issues (coarse calibration for all modes,
|
||||
correct fine calibration for sheetfed devices).
|
||||
|
||||
2006-06-08 Mattias Ellert <mattias.ellert@tsl.uu.se>
|
||||
|
||||
* po/sane-backends.*.po: updated with new translation keys from
|
||||
|
@ -182,7 +190,7 @@
|
|||
do_cmd() - simplify timeout handling
|
||||
* backend/fujitsu-scsi.h: increase default timeoutes
|
||||
|
||||
2006-05-15 St<EFBFBD>hane Voltz <stefdev@modulonet.fr>
|
||||
2006-05-15 Stephane Voltz <stefdev@modulonet.fr>
|
||||
|
||||
* backend/genesys_devices.c backend/genesys_gl646.c: tuned HP 2300
|
||||
geometry description and added a safeguard against failed origin
|
||||
|
@ -226,7 +234,7 @@
|
|||
* backend/genesys_devices.c: Increase length of acceleration
|
||||
slopes for Canon LiDE 35/40/50/60
|
||||
|
||||
2006-04-21 St<EFBFBD>hane Voltz <stefdev@modulonet.fr>
|
||||
2006-04-21 Stephane Voltz <stefdev@modulonet.fr>
|
||||
|
||||
* backend/genesys.c: add workraound with issue related
|
||||
to asic reset and data scan amount
|
||||
|
@ -362,7 +370,7 @@
|
|||
* doc/descriptions/unsupported.desc: Added Microtek ScanMaker 4850
|
||||
II and Plustek OpticPro ST 64+.
|
||||
|
||||
2006-03-12 St<EFBFBD>hane Voltz <stefdev@modulonet.fr>
|
||||
2006-03-12 Stephane Voltz <stefdev@modulonet.fr>
|
||||
|
||||
* backend/genesys_gl646.c: removed now unneeded #ifdef in
|
||||
gl646_send_gamma_table.
|
||||
|
@ -372,7 +380,7 @@
|
|||
* backend/genesys_gl646.c: fixed silly thinko in
|
||||
gl646_send_gamma_table.
|
||||
|
||||
2006-03-12 St<EFBFBD>hane Voltz <stefdev@modulonet.fr>
|
||||
2006-03-12 Stephane Voltz <stefdev@modulonet.fr>
|
||||
|
||||
* backend/genesys_gl646.c: fixed gl646_send_gamma_table after
|
||||
endianess changes. Put again a little fix for power saving
|
||||
|
@ -395,7 +403,7 @@
|
|||
data
|
||||
* backend/genesys_gl646.c: Convert gamma tables to little endian
|
||||
|
||||
2006-03-06 St<EFBFBD>hane Voltz <stefdev@modulonet.fr>
|
||||
2006-03-06 Stephane Voltz <stefdev@modulonet.fr>
|
||||
|
||||
* backend/genesys_gl646.c: power saving fixes
|
||||
|
||||
|
@ -421,7 +429,7 @@
|
|||
* backend/u12-hw.c: SoftwareReset is now disabled in
|
||||
cancelSequence when the device is a Genius scanner.
|
||||
|
||||
2006-02-13 St<EFBFBD>hane Voltz <stefdev@modulonet.fr>
|
||||
2006-02-13 Stephane Voltz <stefdev@modulonet.fr>
|
||||
|
||||
* backend/genesys_gl646.c: disabled power saving for gl646.
|
||||
|
||||
|
@ -489,7 +497,7 @@
|
|||
|
||||
* backend/canon-sane.c: Fixed variable redeclaration.
|
||||
|
||||
2006-01-05 St<EFBFBD>hane Voltz <stefdev@modulonet.fr>
|
||||
2006-01-05 Stephane Voltz <stefdev@modulonet.fr>
|
||||
|
||||
* tools/hotplug/libsane.usermap: Added Dell A920 (rebranded X1100)
|
||||
|
||||
|
@ -630,7 +638,7 @@
|
|||
* backend/snapscan-scsi.c backend/snapscan-options.c backend/snapscan.c:
|
||||
Some fixes for the Epson Stylus CX1500
|
||||
|
||||
2006-01-05 St<EFBFBD>hane Voltz <stefdev@modulonet.fr>
|
||||
2006-01-05 Stephane Voltz <stefdev@modulonet.fr>
|
||||
|
||||
* backend/umax_pp_low.c: removed unused local variable
|
||||
|
||||
|
|
|
@ -1137,7 +1137,7 @@ cano_DoCalibration( Plustek_Device *dev )
|
|||
scaps->workaroundFlag &= ~_WAF_SKIP_FINE;
|
||||
scaps->workaroundFlag &= ~_WAF_BYPASS_CALIBRATION;
|
||||
|
||||
if( !dev->adj.cacheCalData )
|
||||
if( !dev->adj.cacheCalData && !usb_IsSheetFedDevice(dev))
|
||||
usb_SpeedTest( dev );
|
||||
|
||||
/* here we handle that warmup stuff for CCD devices */
|
||||
|
@ -1198,6 +1198,12 @@ cano_DoCalibration( Plustek_Device *dev )
|
|||
skip_fine = SANE_FALSE;
|
||||
idx_end = DIVIDER+1;
|
||||
|
||||
/* did I say any case? */
|
||||
if (scan->sParam.bBitDepth != 8) {
|
||||
skip_fine = SANE_TRUE;
|
||||
DBG( _DBG_INFO2, "No fine calibration for non-8bit modes!\n" );
|
||||
}
|
||||
|
||||
} else if( usb_IsSheetFedDevice(dev)) {
|
||||
|
||||
/* we only to the calibration upon request !*/
|
||||
|
|
|
@ -433,7 +433,13 @@ usb_ReadAndSetCalData( Plustek_Device *dev )
|
|||
if( 13 == res ) {
|
||||
usb_RestoreCalData( dev, &cal );
|
||||
ret = SANE_TRUE;
|
||||
} else {
|
||||
DBG( _DBG_ERROR, "Error reading coarse-calibration data, only "
|
||||
"%d elements available!\n", res );
|
||||
}
|
||||
} else {
|
||||
DBG( _DBG_ERROR, "Error reading coarse-calibration data for "
|
||||
"PFX: >%s<!\n", pfx );
|
||||
}
|
||||
|
||||
fclose( fp );
|
||||
|
|
|
@ -48,6 +48,8 @@
|
|||
* - added special misc I/O setup for CIS devices (usb_ResetRegisters)
|
||||
* - 0.51 - change usb_AdjustLamps() and use it now in usb_switchLamp()
|
||||
* - added usb_Wait4ScanSample() and usb_InCalibrationMode()
|
||||
* - tweaked EjectPaper to work correctly with the supported sheetfed
|
||||
* devices
|
||||
* .
|
||||
* <hr>
|
||||
* This file is part of the SANE package.
|
||||
|
@ -438,7 +440,7 @@ usb_WaitPos( Plustek_Device *dev, u_long to, SANE_Bool stay )
|
|||
static SANE_Bool
|
||||
usb_ModuleMove( Plustek_Device *dev, u_char action, u_long dwStep )
|
||||
{
|
||||
SANE_Bool retval;
|
||||
SANE_Bool retval, ejected;
|
||||
u_char bReg2, reg7, mclk_div;
|
||||
u_short wFastFeedStepSize;
|
||||
double dMaxMoveSpeed;
|
||||
|
@ -467,12 +469,15 @@ usb_ModuleMove( Plustek_Device *dev, u_char action, u_long dwStep )
|
|||
|
||||
DBG( _DBG_INFO2, "Ejecting paper...\n" );
|
||||
retval = SANE_TRUE;
|
||||
ejected = SANE_FALSE;
|
||||
do {
|
||||
if( usb_SensorPaper(dev) &&
|
||||
!usb_ModuleMove(dev,MOVE_SkipPaperSensor, 0 )) {
|
||||
if( usb_SensorPaper(dev)) {
|
||||
if (!usb_ModuleMove(dev,MOVE_SkipPaperSensor, 0 )) {
|
||||
hw->dMaxMoveSpeed = d;
|
||||
return SANE_FALSE;
|
||||
}
|
||||
ejected = SANE_TRUE;
|
||||
}
|
||||
|
||||
if( usb_SensorAdf(dev->fd) &&
|
||||
!usb_ModuleMove(dev,MOVE_ToPaperSensor, 0 )) {
|
||||
|
@ -490,7 +495,7 @@ usb_ModuleMove( Plustek_Device *dev, u_char action, u_long dwStep )
|
|||
* to make sure, that the scanned sheet is out of the scanner
|
||||
* BUT: not at startup
|
||||
*/
|
||||
if (dev->initialized >= 0) {
|
||||
if (dev->initialized >= 0 || ejected) {
|
||||
if(!usb_ModuleMove( dev, MOVE_Forward, 300 /* *3 */)) {
|
||||
hw->dMaxMoveSpeed = d;
|
||||
return SANE_FALSE;
|
||||
|
|
|
@ -157,7 +157,7 @@
|
|||
#include "../include/sane/sanei.h"
|
||||
#include "../include/sane/saneopts.h"
|
||||
|
||||
#define BACKEND_VERSION "0.51-10"
|
||||
#define BACKEND_VERSION "0.51-11"
|
||||
|
||||
#define BACKEND_NAME plustek
|
||||
#include "../include/sane/sanei_access.h"
|
||||
|
@ -216,8 +216,8 @@ static const SANE_Device **devlist = 0;
|
|||
static unsigned long tsecs = 0;
|
||||
static Plustek_Scanner *sc = NULL;
|
||||
|
||||
static const SANE_Int bpp_lm9832_list [] = { 2, 8, 14 };
|
||||
static const SANE_Int bpp_lm9833_list [] = { 2, 8, 16 };
|
||||
static const SANE_Int bpp_lm9832_list [] = { 1, 8, 14 };
|
||||
static const SANE_Int bpp_lm9833_list [] = { 1, 8, 16 };
|
||||
|
||||
static const SANE_String_Const mode_list[] =
|
||||
{
|
||||
|
@ -1760,27 +1760,28 @@ do_calibration( void *args )
|
|||
Plustek_Device *dev = s->hw;
|
||||
DCapsDef *caps = &dev->usbDev.Caps;
|
||||
int scanmode, rc;
|
||||
int modes[] = { COLOR_BW, COLOR_256GRAY, COLOR_GRAY16,
|
||||
COLOR_TRUE24, COLOR_TRUE48 };
|
||||
|
||||
thread_entry();
|
||||
|
||||
/* if the device does only supports color scanning, there's no need
|
||||
* to calibrate the gray mode
|
||||
/* if the device does only support color scanning, there's no need
|
||||
* to calibrate the gray modes
|
||||
*/
|
||||
if (caps->workaroundFlag & _WAF_GRAY_FROM_COLOR)
|
||||
scanmode = 2;
|
||||
scanmode = 3;
|
||||
else
|
||||
scanmode = 1;
|
||||
scanmode = 0;
|
||||
|
||||
for ( ; scanmode < 3; scanmode++ ) {
|
||||
for ( ; scanmode < 5; scanmode++ ) {
|
||||
|
||||
dev->scanning.dwFlag |= SCANFLAG_Calibration;
|
||||
|
||||
if (SANE_STATUS_GOOD == local_sane_start(s, scanmode)) {
|
||||
|
||||
if (SANE_STATUS_GOOD == local_sane_start(s, modes[scanmode])) {
|
||||
|
||||
/* prepare for scanning: speed-test, warmup, calibration */
|
||||
rc = usbDev_Prepare( dev, s->buf );
|
||||
if( rc != 0 || scanmode == 2) {
|
||||
if( rc != 0 || scanmode == 4) {
|
||||
if (rc != 0 )
|
||||
DBG(_DBG_INFO,"Calibration canceled!\n");
|
||||
m_fStart = SANE_TRUE;
|
||||
|
@ -1827,7 +1828,15 @@ sane_control_option( SANE_Handle handle, SANE_Int option,
|
|||
do_cancel(s, SANE_TRUE);
|
||||
return SANE_STATUS_GOOD;
|
||||
}
|
||||
return SANE_STATUS_DEVICE_BUSY;
|
||||
|
||||
/* okay, we need some exceptions */
|
||||
switch (option) {
|
||||
case OPT_TL_X:
|
||||
case OPT_TL_Y:
|
||||
case OPT_BR_X:
|
||||
case OPT_BR_Y: break;
|
||||
default: return SANE_STATUS_DEVICE_BUSY;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,8 +1,18 @@
|
|||
Plustek.changes - Gerhard Jäger <gerhard@gjaeger.de>
|
||||
Plustek.changes - Gerhard Jäger <gerhard@gjaeger.de>
|
||||
====================================================
|
||||
|
||||
Note: All other not mentioned builds have never been released.
|
||||
|
||||
V 0.51-11 (2006-06-08)
|
||||
----------------------
|
||||
Fixed calibration: All modes will be coarse calibrated now, fine calibration
|
||||
will be done only for 8 bit modes.
|
||||
Fixed paper eject during startup.
|
||||
|
||||
V 0.51-10 (2006-05-28)
|
||||
---------------------
|
||||
Released
|
||||
|
||||
V 0.51-8 (2006-04-09)
|
||||
---------------------
|
||||
Added cache for fine calibration (CIS devices only)
|
||||
|
|
Ładowanie…
Reference in New Issue