diff --git a/ChangeLog b/ChangeLog index d6ab0fb9e..c6d67d4ea 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2007-03-05 Gerhard Jaeger + + * doc/plustek/Plustek-USB.changes: Update. + * backend/plustek.c: Bumped build number. + * backend/plustek-usb.c: Fixed typo. + * backend/plustek-usbdevs.c: Added CanoScan to all Canon + device strings, identified one more Plustek device as U24. + * backend/plustek-usbhw.c: Fixed button handling for Plustek/ + KYE devices and added some more debug messages. + 2007-02-24 Giuseppe Sacco * Italian translation update diff --git a/backend/plustek-usb.c b/backend/plustek-usb.c index f0e3a6003..138dd636b 100644 --- a/backend/plustek-usb.c +++ b/backend/plustek-usb.c @@ -495,7 +495,7 @@ usbGetList( DevList **devs ) p = strtol( &(Settings[i].pIDString)[7], 0, 0 ); /* check if this vendor- and product-ID has already been added, needed - * for Plustek devices - here on product-ID is used for more than one + * for Plustek devices - here one product-ID is used for more than one * device type... */ il = SANE_FALSE; diff --git a/backend/plustek-usbdevs.c b/backend/plustek-usbdevs.c index 1d11ddece..d4f2e1df7 100644 --- a/backend/plustek-usbdevs.c +++ b/backend/plustek-usbdevs.c @@ -406,8 +406,8 @@ static DCapsDef Cap0x07B3_0x0017_4 = 12, 4, kNEC3778, 0x07, _WAF_NONE, _NO_MIO }; -/* Plustek Model: ??? - * KH: NS9831 + Button + NEC3778 +/* Plustek Model: U24 + * KH: NS9832 + Button + NEC3778 */ static DCapsDef Cap0x07B3_0x0015_4 = { @@ -422,7 +422,7 @@ static DCapsDef Cap0x07B3_0x0015_4 = }; /* Plustek Model: ??? - * KH: NS9831 + TPA + Button + NEC3778 + * KH: NS9832 + TPA + Button + NEC3778 */ static DCapsDef Cap0x07B3_0x0014_4 = { @@ -2486,6 +2486,7 @@ static SetDef Settings[] = /* LM9832 based */ {"0x07B3-0x0017-0", &Cap0x07B3_0x0017_0, &Hw0x07B3_0x0017_0, "OpticPro UT12/UT16" }, {"0x07B3-0x0015-0", &Cap0x07B3_0x0015_0, &Hw0x07B3_0x0017_0, "OpticPro U24" }, + {"0x07B3-0x0015-4", &Cap0x07B3_0x0015_4, &Hw0x07B3_0x0017_4, "OpticPro U24" }, {"0x07B3-0x0017-4", &Cap0x07B3_0x0017_4, &Hw0x07B3_0x0017_4, "OpticPro UT24" }, /* never seen yet */ @@ -2494,7 +2495,6 @@ static SetDef Settings[] = {"0x07B3-0x0011-4", &Cap0x07B3_0x0011_4, &Hw0x07B3_0x0013_4, "Unknown device" }, {"0x07B3-0x0010-4", &Cap0x07B3_0x0010_4, &Hw0x07B3_0x0013_4, "Unknown device" }, {"0x07B3-0x0014-0", &Cap0x07B3_0x0014_0, &Hw0x07B3_0x0017_0, "Unknown device" }, - {"0x07B3-0x0015-4", &Cap0x07B3_0x0015_4, &Hw0x07B3_0x0017_4, "Unknown device" }, {"0x07B3-0x0014-4", &Cap0x07B3_0x0014_4, &Hw0x07B3_0x0017_4, "Unknown device" }, {"0x07B3-0x0016-4", &Cap0x07B3_0x0016_4, &Hw0x07B3_0x0016_4, "Unknown device" }, {"0x07B3-0x0017-2", &Cap0x07B3_0x0017_2, &Hw0x07B3_0x0017_2, "Unknown device" }, @@ -2536,12 +2536,12 @@ static SetDef Settings[] = {"0x049F-0x001A", &Cap0x1606_0x0060, &Hw0x1606_0x0060, "S4-100" }, /* CANON... */ - {"0x04A9-0x2206", &Cap0x04A9_0x2206, &Hw0x04A9_0x2206, "N650U/N656U" }, - {"0x04A9-0x2207", &Cap0x04A9_0x2207, &Hw0x04A9_0x2207, "N1220U" }, - {"0x04A9-0x2208", &Cap0x04A9_0x2208, &Hw0x04A9_0x2208, "D660U" }, - {"0x04A9-0x220D", &Cap0x04A9_0x220D, &Hw0x04A9_0x220D, "N670U/N676U/LiDE20" }, - {"0x04A9-0x220E", &Cap0x04A9_0x220E, &Hw0x04A9_0x220E, "N1240U/LiDE30" }, - {"0x04A9-0x2220", &Cap0x04A9_0x2220, &Hw0x04A9_0x2220, "LiDE25" }, + {"0x04A9-0x2206", &Cap0x04A9_0x2206, &Hw0x04A9_0x2206, "CanoScan N650U/N656U" }, + {"0x04A9-0x2207", &Cap0x04A9_0x2207, &Hw0x04A9_0x2207, "CanoScan N1220U" }, + {"0x04A9-0x2208", &Cap0x04A9_0x2208, &Hw0x04A9_0x2208, "CanoScan D660U" }, + {"0x04A9-0x220D", &Cap0x04A9_0x220D, &Hw0x04A9_0x220D, "CanoScan N670U/N676U/LiDE20" }, + {"0x04A9-0x220E", &Cap0x04A9_0x220E, &Hw0x04A9_0x220E, "CanoScan N1240U/LiDE30" }, + {"0x04A9-0x2220", &Cap0x04A9_0x2220, &Hw0x04A9_0x2220, "CanoScan LiDE25" }, /* SYSCAN... */ {"0x0A82-0x6620", &Cap0x0A82_0x6620, &Hw0x0A82_0x6620, "TravelScan 662" }, diff --git a/backend/plustek-usbhw.c b/backend/plustek-usbhw.c index 41aeace21..d76d2a57f 100644 --- a/backend/plustek-usbhw.c +++ b/backend/plustek-usbhw.c @@ -50,6 +50,8 @@ * - added usb_Wait4ScanSample() and usb_InCalibrationMode() * - tweaked EjectPaper to work correctly with the supported sheetfed * devices + * - fixed button handling for Plustek/Genius devices and added + * some more debug output to that code path * . *
* This file is part of the SANE package. @@ -1358,7 +1360,8 @@ usb_ResetRegisters( Plustek_Device *dev ) HWDef *hw = &dev->usbDev.HwSetting; u_char *regs = dev->usbDev.a_bRegs; - DBG( _DBG_INFO, "RESETTING REGISTERS(%i) - 0x%02x\n", dev->initialized,sizeof(dev->usbDev.a_bRegs)); + DBG( _DBG_INFO, "RESETTING REGISTERS(%i) - 0x%02x\n", + dev->initialized,sizeof(dev->usbDev.a_bRegs)); memset( regs, 0, sizeof(dev->usbDev.a_bRegs)); memcpy( regs+0x0b, &hw->bSensorConfiguration, 4 ); @@ -1730,12 +1733,16 @@ usb_UpdateButtonStatus( Plustek_Scanner *s ) /* Plustek and KYE/Genius use altnernative button handling */ if((dev->usbDev.vendor == 0x07B3) || (dev->usbDev.vendor == 0x0458)) { + DBG( _DBG_INFO2, "Button Value=0x%02x\n", val ); + /* no button pressed so far */ for( i = 0; i < caps->bButtons; i++ ) s->val[OPT_BUTTON_0 + i].w = 0; if (caps->bButtons == 2 || caps->bButtons == 5) { val >>= 2; + val &= 0x07; + DBG( _DBG_INFO2, "Button Value=0x%02x (2/5)\n", val ); switch( val ) { case 1: s->val[OPT_BUTTON_1].w = 1; break; @@ -1746,12 +1753,17 @@ usb_UpdateButtonStatus( Plustek_Scanner *s ) } } else if (caps->bButtons == 4 ) { val >>= 5; + val &= 0x07; + DBG( _DBG_INFO2, "Button Value=0x%02x (4)\n", val ); + switch( val ) { case 1: s->val[OPT_BUTTON_0].w = 1; break; case 2: s->val[OPT_BUTTON_1].w = 1; break; case 4: s->val[OPT_BUTTON_2].w = 1; break; case 6: s->val[OPT_BUTTON_3].w = 1; break; } + } else { + DBG( _DBG_INFO2, "Hmm, could not handle this!\n" ); } } else { diff --git a/backend/plustek.c b/backend/plustek.c index 15b9036ac..b6a26e189 100644 --- a/backend/plustek.c +++ b/backend/plustek.c @@ -157,7 +157,7 @@ #include "../include/sane/sanei.h" #include "../include/sane/saneopts.h" -#define BACKEND_VERSION "0.51-15" +#define BACKEND_VERSION "0.51-16" #define BACKEND_NAME plustek #include "../include/sane/sanei_access.h" @@ -2494,7 +2494,7 @@ local_sane_start(Plustek_Scanner *s, int scanmode ) return SANE_STATUS_IO_ERROR; } - DBG( _DBG_SANE_INIT, "dwflag = 0x%lx dwBytesLine = %ld \n", + DBG( _DBG_SANE_INIT, "dwflag = 0x%lx dwBytesLine = %ld\n", dev->scanning.dwFlag, dev->scanning.dwBytesLine ); DBG( _DBG_SANE_INIT, "Lines = %d\n", s->params.lines); DBG( _DBG_SANE_INIT, "Bytes per Line = %d\n", s->params.bytes_per_line );