kopia lustrzana https://gitlab.com/sane-project/backends
Fixed OS/2 compilation problems, minor fixes, fixes interfernce with other
USB devices, added CANON N650U stuffDEVEL_2_0_BRANCH-1
rodzic
15b038411b
commit
eb6ae1fb78
|
|
@ -19,6 +19,7 @@
|
|||
* added UMAX 3400 entries
|
||||
* added HP2100 settings according to Craig Smoothey
|
||||
* added LM9832 based U24
|
||||
* added CANON650 entry
|
||||
*.............................................................................
|
||||
*
|
||||
* This file is part of the SANE package.
|
||||
|
|
@ -617,6 +618,24 @@ static DCapsDef Cap0x1606_0x0060_0 =
|
|||
_WAF_MISC_IO3_LAMP /* use miscio 3 for lamp switching */
|
||||
};
|
||||
|
||||
/* Canon N650U/N656U
|
||||
*/
|
||||
static DCapsDef Cap0x04A9_0x2206_0 =
|
||||
{
|
||||
{{ 0, 165}, 0, {2550, 3510 - 165}, {100, 100}, COLOR_BW },
|
||||
{{ 0, 0}, 0, {0, 0}, { 0, 0 }, 0 },
|
||||
{{ 0, 0}, 0, {0, 0}, { 0, 0 }, 0 },
|
||||
{{ 0, 0}, 0, {0, 0}, { 0, 0 }, 0 },
|
||||
{600, 600},
|
||||
0,
|
||||
SENSORORDER_bgr,
|
||||
8, /* sensor distance */
|
||||
4, /* number of buttons */
|
||||
kNEC8861, /* use default settings during calibration */
|
||||
0, /* not used here... */
|
||||
_WAF_NONE
|
||||
};
|
||||
|
||||
/******************* additional Hardware descriptions ************************/
|
||||
|
||||
static HWDef Hw0x07B3_0x0017_0 =
|
||||
|
|
@ -628,8 +647,8 @@ static HWDef Hw0x07B3_0x0017_0 =
|
|||
300, /* wMotorDpi (Full step DPI) */
|
||||
/* 100, // wStartY (The top scanning origin in Full Steps) */
|
||||
512, /* wRAMSize (KB) */
|
||||
4, /* wMinIntegrationTimeLowres (ms) */
|
||||
5, /* wMinIntegrationTimeHighres (ms) */
|
||||
4, /* dMinIntegrationTimeLowres (ms) */
|
||||
5, /* dMinIntegrationTimeHighres (ms) */
|
||||
3000, /* wGreenPWMDutyCycleLow */
|
||||
4095, /* wGreenPWMDutyCycleHigh */
|
||||
0x02, /* bSensorConfiguration (0x0b) */
|
||||
|
|
@ -643,7 +662,9 @@ static HWDef Hw0x07B3_0x0017_0 =
|
|||
|
||||
_GREEN_CH, /* bReg_0x26 color mode - bits 4 and 5 */
|
||||
0, /* bReg 0x27 color mode */
|
||||
|
||||
|
||||
1, /* bReg 0x29 illumination mode */
|
||||
|
||||
1, /* StepperPhaseCorrection (0x1a & 0x1b) */
|
||||
14, /* 15, bOpticBlackStart (0x1c) */
|
||||
62, /* 60, bOpticBlackEnd (0x1d) */
|
||||
|
|
@ -689,6 +710,7 @@ static HWDef Hw0x07B3_0x0007_0 =
|
|||
{5, 23, 1, 3, 0, 0, 0, 6, 10, 22},
|
||||
_GREEN_CH,
|
||||
0,
|
||||
1,
|
||||
1,
|
||||
14,
|
||||
62,
|
||||
|
|
@ -727,6 +749,7 @@ static HWDef Hw0x07B3_0x0007_2 =
|
|||
_GREEN_CH,
|
||||
0,
|
||||
1,
|
||||
1,
|
||||
16,
|
||||
64,
|
||||
152,
|
||||
|
|
@ -764,6 +787,7 @@ static HWDef Hw0x07B3_0x0007_4 =
|
|||
_GREEN_CH,
|
||||
0,
|
||||
1,
|
||||
1,
|
||||
13,
|
||||
62,
|
||||
304,
|
||||
|
|
@ -801,6 +825,7 @@ static HWDef Hw0x07B3_0x000F_0 =
|
|||
_GREEN_CH,
|
||||
0,
|
||||
1,
|
||||
1,
|
||||
14,
|
||||
62,
|
||||
110,
|
||||
|
|
@ -838,6 +863,7 @@ static HWDef Hw0x07B3_0x0013_0 =
|
|||
_GREEN_CH,
|
||||
0,
|
||||
1,
|
||||
1,
|
||||
14,
|
||||
62,
|
||||
110,
|
||||
|
|
@ -875,6 +901,7 @@ static HWDef Hw0x07B3_0x0013_4 =
|
|||
_GREEN_CH,
|
||||
0,
|
||||
1,
|
||||
1,
|
||||
13,
|
||||
62,
|
||||
320,
|
||||
|
|
@ -912,6 +939,7 @@ static HWDef Hw0x07B3_0x000F_4 =
|
|||
_GREEN_CH,
|
||||
0,
|
||||
1,
|
||||
1,
|
||||
13,
|
||||
62,
|
||||
304,
|
||||
|
|
@ -949,6 +977,7 @@ static HWDef Hw0x07B3_0x0016_4 =
|
|||
_GREEN_CH,
|
||||
0,
|
||||
1,
|
||||
1,
|
||||
13,
|
||||
62,
|
||||
320,
|
||||
|
|
@ -989,6 +1018,7 @@ static HWDef Hw0x07B3_0x0017_4 =
|
|||
_GREEN_CH,
|
||||
0,
|
||||
1,
|
||||
1,
|
||||
13,
|
||||
62,
|
||||
320,
|
||||
|
|
@ -1026,6 +1056,7 @@ static HWDef Hw0x07B3_0x0017_1 =
|
|||
_GREEN_CH,
|
||||
0,
|
||||
1,
|
||||
1,
|
||||
15,
|
||||
60,
|
||||
110,
|
||||
|
|
@ -1063,6 +1094,7 @@ static HWDef Hw0x07B3_0x0012_0 =
|
|||
_GREEN_CH,
|
||||
0,
|
||||
1,
|
||||
1,
|
||||
14,
|
||||
62,
|
||||
110,
|
||||
|
|
@ -1100,6 +1132,7 @@ static HWDef Hw0x07B3_0x0017_2 =
|
|||
_GREEN_CH,
|
||||
0,
|
||||
1,
|
||||
1,
|
||||
16,
|
||||
64,
|
||||
110,
|
||||
|
|
@ -1137,6 +1170,7 @@ static HWDef Hw0x07B3_0x0017_3 =
|
|||
_GREEN_CH,
|
||||
0,
|
||||
1,
|
||||
1,
|
||||
14,
|
||||
62,
|
||||
110,
|
||||
|
|
@ -1169,8 +1203,8 @@ static HWDef Hw0x03F0_0x0505 =
|
|||
9, /* wIntegrationTimeHighLamp */
|
||||
600, /* ok wMotorDpi (Full step DPI) */
|
||||
512, /* wRAMSize (KB) */
|
||||
4, /* wMinIntegrationTimeLowres (ms) */
|
||||
5, /* wMinIntegrationTimeHighres (ms) */
|
||||
4, /* dMinIntegrationTimeLowres (ms) */
|
||||
5, /* dMinIntegrationTimeHighres (ms) */
|
||||
3000, /* wGreenPWMDutyCycleLow */
|
||||
4095, /* wGreenPWMDutyCycleHigh */
|
||||
0x02, /* bSensorConfiguration (0x0b) */
|
||||
|
|
@ -1184,6 +1218,7 @@ static HWDef Hw0x03F0_0x0505 =
|
|||
|
||||
_GREEN_CH, /* bReg_0x26 color mode - bits 4 and 5 */
|
||||
0, /* bReg 0x27 color mode */
|
||||
1, /* bReg 0x29 illumination mode */
|
||||
|
||||
1, /* StepperPhaseCorrection (0x1a & 0x1b) */
|
||||
14, /* 15,= bOpticBlackStart (0x1c) */
|
||||
|
|
@ -1226,8 +1261,8 @@ static HWDef Hw0x03F0_0x0605 =
|
|||
12, /* wIntegrationTimeHighLamp */
|
||||
600, /* ok wMotorDpi (Full step DPI) */
|
||||
512, /* wRAMSize (KB) */
|
||||
9, /* wMinIntegrationTimeLowres (ms) */
|
||||
9, /* wMinIntegrationTimeHighres (ms) */
|
||||
9, /* dMinIntegrationTimeLowres (ms) */
|
||||
9, /* dMinIntegrationTimeHighres (ms) */
|
||||
0, /* wGreenPWMDutyCycleLow */
|
||||
0, /* wGreenPWMDutyCycleHigh */
|
||||
0x02, /* bSensorConfiguration (0x0b) */
|
||||
|
|
@ -1241,6 +1276,8 @@ static HWDef Hw0x03F0_0x0605 =
|
|||
|
||||
_GREEN_CH, /* bReg_0x26 color mode - bits 4 and 5 */
|
||||
0, /* bReg 0x27 color mode */
|
||||
|
||||
1, /* bReg 0x29 illumination mode */
|
||||
|
||||
1, /* StepperPhaseCorrection (0x1a & 0x1b) */
|
||||
14, /* 15,= bOpticBlackStart (0x1c) */
|
||||
|
|
@ -1283,8 +1320,8 @@ static HWDef Hw0x0400_0x1000_0 =
|
|||
12, /* ok wIntegrationTimeHighLamp */
|
||||
600, /* ok wMotorDpi (Full step DPI) */
|
||||
512, /* ok wRAMSize (KB) */
|
||||
9, /* ok wMinIntegrationTimeLowres (ms) */
|
||||
9, /* ok wMinIntegrationTimeHighres (ms) */
|
||||
9, /* ok dMinIntegrationTimeLowres (ms) */
|
||||
9, /* ok dMinIntegrationTimeHighres (ms) */
|
||||
1169, /* ok wGreenPWMDutyCycleLow (reg 0x2a + 0x2b) */
|
||||
1169, /* ok wGreenPWMDutyCycleHigh (reg 0x2a + 0x2b) */
|
||||
0x02, /* ok bSensorConfiguration (0x0b) */
|
||||
|
|
@ -1297,6 +1334,7 @@ static HWDef Hw0x0400_0x1000_0 =
|
|||
/* ok color (reg 0x0f to 0x18) */
|
||||
_GREEN_CH, /* bReg_0x26 color mode - bits 4 and 5 */
|
||||
0, /* bReg 0x27 color mode */
|
||||
1, /* bReg 0x29 illumination mode */
|
||||
257, /* ok StepperPhaseCorrection (reg 0x1a + 0x1b) */
|
||||
0x0e, /* ok bOpticBlackStart (reg 0x1c) */
|
||||
0x1d, /* ok bOpticBlackEnd (reg 0x1d) */
|
||||
|
|
@ -1341,6 +1379,7 @@ static HWDef Hw0x0400_0x1001_0 =
|
|||
_GREEN_CH,
|
||||
0,
|
||||
1,
|
||||
1,
|
||||
16,
|
||||
64,
|
||||
152,
|
||||
|
|
@ -1373,8 +1412,8 @@ static HWDef Hw0x04B8_0x010F_0 =
|
|||
12, /* wIntegrationTimeHighLamp */
|
||||
600, /* wMotorDpi (Full step DPI) */
|
||||
512, /* wRAMSize (KB) */
|
||||
4, /* wMinIntegrationTimeLowres (ms) */
|
||||
5, /* wMinIntegrationTimeHighres (ms) */
|
||||
4, /* dMinIntegrationTimeLowres (ms) */
|
||||
5, /* dMinIntegrationTimeHighres (ms) */
|
||||
3000, /* ok wGreenPWMDutyCycleLow (reg 0x2a + 0x2b) */
|
||||
4095, /* ok wGreenPWMDutyCycleHigh (reg 0x2a + 0x2b) */
|
||||
|
||||
|
|
@ -1390,6 +1429,7 @@ static HWDef Hw0x04B8_0x010F_0 =
|
|||
/* ok color (reg 0x0f to 0x18) */
|
||||
_GREEN_CH, /* ok bReg_0x26 color mode - bits 4 and 5 */
|
||||
0x40, /* ok bReg 0x27 color mode */
|
||||
3, /* bReg 0x29 illumination mode */
|
||||
|
||||
1, /* ok StepperPhaseCorrection (reg 0x1a + 0x1b) */
|
||||
0x00, /* ok bOpticBlackStart (reg 0x1c) */
|
||||
|
|
@ -1433,8 +1473,8 @@ static HWDef Hw0x1606_0x0060_0 =
|
|||
9, /* wIntegrationTimeHighLamp */
|
||||
600, /* wMotorDpi (Full step DPI) */
|
||||
512, /* wRAMSize (KB) */
|
||||
8, /* wMinIntegrationTimeLowres (ms) */
|
||||
8, /* wMinIntegrationTimeHighres (ms) */
|
||||
8, /* dMinIntegrationTimeLowres (ms) */
|
||||
8, /* dMinIntegrationTimeHighres (ms) */
|
||||
4095, /* wGreenPWMDutyCycleLow (reg 0x2a + 0x2b) */
|
||||
4095, /* wGreenPWMDutyCycleHigh (reg 0x2a + 0x2b) */
|
||||
|
||||
|
|
@ -1450,6 +1490,7 @@ static HWDef Hw0x1606_0x0060_0 =
|
|||
/* color (reg 0x0f to 0x18) */
|
||||
_GREEN_CH, /* bReg_0x26 color mode - bits 4 and 5 */
|
||||
0x40, /* bReg 0x27 color mode */
|
||||
1, /* bReg 0x29 illumination mode */
|
||||
|
||||
1, /* StepperPhaseCorrection (reg 0x1a + 0x1b) */
|
||||
0x2f, /* bOpticBlackStart (reg 0x1c) */
|
||||
|
|
@ -1484,6 +1525,69 @@ static HWDef Hw0x1606_0x0060_0 =
|
|||
MODEL_NOPLUSTEK
|
||||
};
|
||||
|
||||
/* Canon 650 */
|
||||
static HWDef Hw0x04A9_0x2206_0 =
|
||||
{
|
||||
0.7, /* dMaxMotorSpeed (Max_Speed) */
|
||||
0.7, /* dMaxMoveSpeed (Max_Speed) */
|
||||
100, /* wIntegrationTimeLowLamp */
|
||||
100, /* wIntegrationTimeHighLamp */
|
||||
600, /* wMotorDpi (Full step DPI) */
|
||||
512, /* wRAMSize (KB) */
|
||||
3.75, /* dMinIntegrationTimeLowres (ms) */
|
||||
5.75, /* dMinIntegrationTimeHighres (ms) */
|
||||
4095, /* wGreenPWMDutyCycleLow (reg 0x2a + 0x2b) */
|
||||
4095, /* wGreenPWMDutyCycleHigh (reg 0x2a + 0x2b) */
|
||||
|
||||
0x15, /* bSensorConfiguration (0x0b) */
|
||||
0x4c, /* sensor control settings (reg 0x0c) */
|
||||
0x2f, /* sensor control settings (reg 0x0d) */
|
||||
0x00, /* sensor control settings (reg 0x0e) */
|
||||
|
||||
{0x00, 0x03, 0x04, 0x05, 0x00, 0x00, 0x00, 0x00, 0x07, 0x03},
|
||||
/* mono (reg 0x0f to 0x18) */
|
||||
|
||||
{0x00, 0x00, 0x04, 0x05, 0x06, 0x07, 0x00, 0x00, 0x00, 0x05},
|
||||
/* color (reg 0x0f to 0x18) */
|
||||
|
||||
(_BLUE_CH | 0x05), /* bReg_0x26 color mode */
|
||||
|
||||
0x00, /* bReg 0x27 color mode */
|
||||
2, /* bReg 0x29 illumination mode */
|
||||
|
||||
5, /* StepperPhaseCorrection (reg 0x1a + 0x1b) */
|
||||
1, /* bOpticBlackStart (reg 0x1c) */
|
||||
52, /* bOpticBlackEnd (reg 0x1d) */
|
||||
110, /* ? wActivePixelsStart (reg 0x1e + 0x1f) */
|
||||
5469, /* wLineEnd (reg 0x20 + 0x21) */
|
||||
|
||||
100, /* red lamp on (reg 0x2c + 0x2d) */
|
||||
5100, /* red lamp off (reg 0x2e + 0x2f) */
|
||||
100, /* green lamp on (reg 0x30 + 0x31) */
|
||||
3100, /* green lamp off (reg 0x32 + 0x33) */
|
||||
100, /* blue lamp on (reg 0x34 + 0x35) */
|
||||
2100, /* blue lamp off (reg 0x36 + 0x37) */
|
||||
|
||||
3, /* stepper motor control (reg 0x45) */
|
||||
0, /* wStepsAfterPaperSensor2 (reg 0x4c + 0x4d) */
|
||||
0xfc, /* acceleration profile (reg 0x51) */
|
||||
0, /* lines to process (reg 0x54) */
|
||||
0x17, /* kickstart (reg 0x55) */
|
||||
0x08, /* pwm freq (reg 0x56) */
|
||||
0x1f, /* pwm duty cycle (reg 0x57) */
|
||||
|
||||
0x05, /* Paper sense (reg 0x58) */
|
||||
|
||||
0x24, /* misc io12 (reg 0x59) */
|
||||
0x12, /* misc io34 (reg 0x5a) */
|
||||
0x11, /* misc io56 (reg 0x5b) */
|
||||
0, /* test mode ADC Output CODE MSB (reg 0x5c) */
|
||||
0, /* test mode ADC Output CODE LSB (reg 0x5d) */
|
||||
0, /* test mode (reg 0x5e) */
|
||||
_LM9832,
|
||||
MODEL_NOPLUSTEK
|
||||
};
|
||||
|
||||
/******************** all available combinations *****************************/
|
||||
|
||||
/*
|
||||
|
|
@ -1539,6 +1643,7 @@ static SetDef Settings[] =
|
|||
{"0x1606-0x0060", &Cap0x1606_0x0060_0, &Hw0x1606_0x0060_0, "UMAX 3400" },
|
||||
|
||||
/* CANON... */
|
||||
{"0x04A9-0x2206", &Cap0x04A9_0x2206_0, &Hw0x04A9_0x2206_0, "N650U/N656U" },
|
||||
/* {"0x04A9-0x220D", ,, "N670U" }, */
|
||||
|
||||
/* Please add other devices here...
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@
|
|||
* added adjustment stuff
|
||||
* 0.42 - added FLAG_CUSTOM_GAMMA and _MAP_ definitions
|
||||
* changed IOCTL interface to allow downloadable MAPS
|
||||
* added error codes
|
||||
*
|
||||
*.............................................................................
|
||||
*
|
||||
|
|
@ -494,6 +495,40 @@ typedef struct {
|
|||
#define _MAP_BLUE 2
|
||||
#define _MAP_MASTER 3
|
||||
|
||||
/*
|
||||
* generic error codes...
|
||||
*/
|
||||
#define _OK 0
|
||||
|
||||
#define _FIRST_ERR -9000
|
||||
|
||||
#define _E_INIT (_FIRST_ERR-1) /* already initialized */
|
||||
#define _E_NOT_INIT (_FIRST_ERR-2) /* not initialized */
|
||||
#define _E_NULLPTR (_FIRST_ERR-3) /* internal NULL-PTR detected */
|
||||
#define _E_ALLOC (_FIRST_ERR-4) /* error allocating memory */
|
||||
#define _E_TIMEOUT (_FIRST_ERR-5) /* signals a timeout condition */
|
||||
#define _E_INVALID (_FIRST_ERR-6) /* invalid parameter detected */
|
||||
#define _E_INTERNAL (_FIRST_ERR-7) /* internal error */
|
||||
#define _E_BUSY (_FIRST_ERR-8) /* device is already in use */
|
||||
#define _E_ABORT (_FIRST_ERR-9) /* operation aborted */
|
||||
#define _E_LOCK (_FIRST_ERR-10) /* can´t lock resource */
|
||||
#define _E_NOSUPP (_FIRST_ERR-11) /* feature or device not supported */
|
||||
#define _E_NORESOURCE (_FIRST_ERR-12) /* out of memo, resource busy... */
|
||||
#define _E_VERSION (_FIRST_ERR-19) /* version conflict */
|
||||
#define _E_NO_DEV (_FIRST_ERR-20) /* device does not exist */
|
||||
#define _E_NO_CONN (_FIRST_ERR-21) /* nothing connected */
|
||||
#define _E_PORTSEARCH (_FIRST_ERR-22) /* parport_enumerate failed */
|
||||
#define _E_NO_PORT (_FIRST_ERR-23) /* requested port does not exist */
|
||||
#define _E_REGISTER (_FIRST_ERR-24) /* cannot register this device */
|
||||
#define _E_SEQUENCE (_FIRST_ERR-30) /* caller sequence does not match */
|
||||
#define _E_NO_ASIC (_FIRST_ERR-31) /* can´t detect ASIC */
|
||||
|
||||
#define _E_LAMP_NOT_IN_POS (_FIRST_ERR-40)
|
||||
#define _E_LAMP_NOT_STABLE (_FIRST_ERR-41)
|
||||
#define _E_NODATA (_FIRST_ERR-42)
|
||||
#define _E_BUFFER_TOO_SMALL (_FIRST_ERR-43)
|
||||
#define _E_DATAREAD (_FIRST_ERR-44)
|
||||
|
||||
/*
|
||||
* stuff needed for user space stuff
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -13,6 +13,8 @@
|
|||
* added Canon to the manufacturer list
|
||||
* 0.42 - added warmup stuff
|
||||
* added setmap function
|
||||
* changed detection stuff, so we first check whether
|
||||
* the vendor and product Ids match with the ones in our list
|
||||
*
|
||||
*.............................................................................
|
||||
*
|
||||
|
|
@ -264,6 +266,27 @@ static void usbDev_shutdown( Plustek_Device *dev )
|
|||
usb_StopLampTimer( dev );
|
||||
}
|
||||
|
||||
/**
|
||||
* This function checks wether a device, described by a given
|
||||
* string(vendor and product ID), is support by this backend or not
|
||||
*
|
||||
* @param usbIdStr - sting consisting out of product and vendor ID
|
||||
* format: "0xVVVVx0xPPPP" VVVV = Vendor ID, PPP = Product ID
|
||||
* @returns; SANE_TRUE if supported, SANE_FALSE if not
|
||||
*/
|
||||
static SANE_Bool usb_IsDeviceInList( char *usbIdStr )
|
||||
{
|
||||
int i;
|
||||
|
||||
for( i = 0; NULL != Settings[i].pIDString; i++ ) {
|
||||
|
||||
if( 0 == strncmp( Settings[i].pIDString, usbIdStr, 13 ))
|
||||
return SANE_TRUE;
|
||||
}
|
||||
|
||||
return SANE_FALSE;
|
||||
}
|
||||
|
||||
/*.............................................................................
|
||||
*
|
||||
*/
|
||||
|
|
@ -329,6 +352,16 @@ static int usbDev_open( const char *dev_name, void *misc )
|
|||
DBG( _DBG_INFO, "... using the specified: 0x%04x\n", vendor );
|
||||
}
|
||||
|
||||
/*
|
||||
* before accessing the scanner, check if supported!
|
||||
*/
|
||||
if( !usb_IsDeviceInList( dev->usbId )) {
|
||||
DBG( _DBG_ERROR, "Device >%s<, is not supported!\n", dev->usbId );
|
||||
sanei_usb_close( handle );
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
if( SANE_STATUS_GOOD != usbio_DetectLM983x( handle, &version )) {
|
||||
sanei_usb_close( handle );
|
||||
return -1;
|
||||
|
|
|
|||
|
|
@ -34,8 +34,6 @@
|
|||
#ifndef __PLUSTEK_USB_H__
|
||||
#define __PLUSTEK_USB_H__
|
||||
|
||||
typedef int Bool;
|
||||
|
||||
/* CCD ID (PCB ID): total 3 bits */
|
||||
#define kNEC3799 0
|
||||
#define kSONY518 1
|
||||
|
|
@ -290,6 +288,9 @@ typedef struct HWDefault
|
|||
u_char bReg_0x26;
|
||||
u_char bReg_0x27;
|
||||
|
||||
/* illumination mode reg 0x29 */
|
||||
u_char bReg_0x29;
|
||||
|
||||
/* 0x1a & 0x1b, remember the u_char order is not Intel
|
||||
* format, you have to pay your attention when you
|
||||
* write this value to register.
|
||||
|
|
@ -441,7 +442,7 @@ typedef struct ScanDef
|
|||
/*
|
||||
* from calibration...
|
||||
*/
|
||||
Bool fCalibrated;
|
||||
SANE_Bool fCalibrated;
|
||||
|
||||
/*
|
||||
* the other stuff...
|
||||
|
|
@ -489,17 +490,6 @@ typedef struct ScanDef
|
|||
|
||||
} ScanDef, *pScanDef;
|
||||
|
||||
|
||||
/*** some error codes... ****/
|
||||
|
||||
#define _E_LAMP_NOT_IN_POS -9600
|
||||
#define _E_LAMP_NOT_STABLE -9601
|
||||
#define _E_INTERNAL -9610
|
||||
#define _E_ALLOC -9611
|
||||
#define _E_NODATA -9620
|
||||
#define _E_BUFFER_TOO_SMALL -9621
|
||||
#define _E_DATAREAD -9630
|
||||
|
||||
#endif /* guard __PLUSTEK_USB_H__ */
|
||||
|
||||
/* END PLUSTEK-USB.H ........................................................*/
|
||||
|
|
|
|||
|
|
@ -67,14 +67,14 @@
|
|||
|
||||
static u_long dwCrystalFrequency = 48000000UL;
|
||||
|
||||
static Bool fModuleFirstHome; /* HEINER: this has to be initialized */
|
||||
static Bool fLastScanIsAdf;
|
||||
static u_char a_bRegs[0x80];
|
||||
static SANE_Bool fModuleFirstHome; /* HEINER: this has to be initialized */
|
||||
static SANE_Bool fLastScanIsAdf;
|
||||
static u_char a_bRegs[0x80];
|
||||
|
||||
/*.............................................................................
|
||||
*
|
||||
*/
|
||||
static Bool usb_MotorOn( int handle, Bool fOn )
|
||||
static SANE_Bool usb_MotorOn( int handle, SANE_Bool fOn )
|
||||
{
|
||||
if( fOn )
|
||||
a_bRegs[0x45] |= 0x10;
|
||||
|
|
@ -89,7 +89,7 @@ static Bool usb_MotorOn( int handle, Bool fOn )
|
|||
/*.............................................................................
|
||||
*
|
||||
*/
|
||||
static Bool usb_IsScannerReady( pPlustek_Device dev )
|
||||
static SANE_Bool usb_IsScannerReady( pPlustek_Device dev )
|
||||
{
|
||||
u_char value;
|
||||
double len;
|
||||
|
|
@ -137,7 +137,7 @@ static Bool usb_IsScannerReady( pPlustek_Device dev )
|
|||
/*.............................................................................
|
||||
*
|
||||
*/
|
||||
static Bool usb_SensorAdf( int handle )
|
||||
static SANE_Bool usb_SensorAdf( int handle )
|
||||
{
|
||||
u_char value;
|
||||
|
||||
|
|
@ -149,7 +149,7 @@ static Bool usb_SensorAdf( int handle )
|
|||
/*.............................................................................
|
||||
*
|
||||
*/
|
||||
static Bool usb_SensorPaper( int handle )
|
||||
static SANE_Bool usb_SensorPaper( int handle )
|
||||
{
|
||||
u_char value;
|
||||
|
||||
|
|
@ -165,7 +165,8 @@ static Bool usb_SensorPaper( int handle )
|
|||
* to repeatly move the module around the scanner and
|
||||
* 0 means forever.
|
||||
*/
|
||||
static Bool usb_ModuleMove(pPlustek_Device dev, u_char bAction, u_long dwStep)
|
||||
static SANE_Bool usb_ModuleMove( pPlustek_Device dev,
|
||||
u_char bAction, u_long dwStep )
|
||||
{
|
||||
SANE_Status res;
|
||||
u_char bReg2, reg7;
|
||||
|
|
@ -358,7 +359,7 @@ static Bool usb_ModuleMove(pPlustek_Device dev, u_char bAction, u_long dwStep)
|
|||
/*.............................................................................
|
||||
*
|
||||
*/
|
||||
static Bool usb_ModuleToHome( pPlustek_Device dev, Bool fWait )
|
||||
static SANE_Bool usb_ModuleToHome( pPlustek_Device dev, SANE_Bool fWait )
|
||||
{
|
||||
u_char value;
|
||||
pDCapsDef scaps = &dev->usbDev.Caps;
|
||||
|
|
@ -531,7 +532,7 @@ static Bool usb_ModuleToHome( pPlustek_Device dev, Bool fWait )
|
|||
/*.............................................................................
|
||||
*
|
||||
*/
|
||||
static Bool usb_MotorSelect( pPlustek_Device dev, Bool fADF )
|
||||
static SANE_Bool usb_MotorSelect( pPlustek_Device dev, SANE_Bool fADF )
|
||||
{
|
||||
pDCapsDef sCaps = &dev->usbDev.Caps;
|
||||
pHWDef hw = &dev->usbDev.HwSetting;
|
||||
|
|
@ -617,7 +618,7 @@ static int usb_GetLampStatus( pPlustek_Device dev )
|
|||
/*.............................................................................
|
||||
*
|
||||
*/
|
||||
static void usb_LedOn( pPlustek_Device dev, Bool fOn )
|
||||
static void usb_LedOn( pPlustek_Device dev, SANE_Bool fOn )
|
||||
{
|
||||
u_char value;
|
||||
|
||||
|
|
@ -641,7 +642,8 @@ static void usb_LedOn( pPlustek_Device dev, Bool fOn )
|
|||
/*.............................................................................
|
||||
*
|
||||
*/
|
||||
static Bool usb_LampOn( pPlustek_Device dev, Bool fOn, Bool fResetTimer )
|
||||
static SANE_Bool usb_LampOn( pPlustek_Device dev,
|
||||
SANE_Bool fOn, SANE_Bool fResetTimer )
|
||||
{
|
||||
pScanDef scanning = &dev->scanning;
|
||||
pDCapsDef sc = &dev->usbDev.Caps;
|
||||
|
|
@ -679,23 +681,21 @@ static Bool usb_LampOn( pPlustek_Device dev, Bool fOn, Bool fResetTimer )
|
|||
/*
|
||||
* EPSON specific stuff
|
||||
*/
|
||||
a_bRegs[0x29] = hw->bReg_0x29;
|
||||
|
||||
if(_WAF_MISC_IO6_LAMP==(_WAF_MISC_IO6_LAMP & sc->workaroundFlag)) {
|
||||
|
||||
a_bRegs[0x29] = 3; /* mode 3 */
|
||||
a_bRegs[0x5b] = 0x94;
|
||||
usbio_WriteReg( dev->fd, 0x5b, a_bRegs[0x5b] );
|
||||
|
||||
} else if(_WAF_MISC_IO3_LAMP ==
|
||||
(_WAF_MISC_IO3_LAMP & sc->workaroundFlag)) {
|
||||
|
||||
a_bRegs[0x29] = 1; /* mode 1 */
|
||||
a_bRegs[0x5a] |= 0x08;
|
||||
usbio_WriteReg( dev->fd, 0x5a, a_bRegs[0x5a] );
|
||||
|
||||
} else {
|
||||
|
||||
a_bRegs[0x29] = 1; /* mode 1 */
|
||||
|
||||
if( lampId == DEV_LampReflection ) {
|
||||
a_bRegs[0x2e] = 16383 / 256;
|
||||
a_bRegs[0x2f] = 16383 % 256;
|
||||
|
|
@ -751,26 +751,24 @@ static Bool usb_LampOn( pPlustek_Device dev, Bool fOn, Bool fResetTimer )
|
|||
|
||||
memset( &a_bRegs[0x29], 0, 0x37-0x29+1 );
|
||||
|
||||
a_bRegs[0x29] = hw->bReg_0x29;
|
||||
|
||||
/*
|
||||
* EPSON specific stuff
|
||||
*/
|
||||
if(_WAF_MISC_IO6_LAMP==(_WAF_MISC_IO6_LAMP & sc->workaroundFlag)) {
|
||||
|
||||
a_bRegs[0x29] = 3; /* mode 3 */
|
||||
a_bRegs[0x5b] = 0x14;
|
||||
usbio_WriteReg( dev->fd, 0x5b, a_bRegs[0x5b] );
|
||||
|
||||
} else if( _WAF_MISC_IO3_LAMP ==
|
||||
(_WAF_MISC_IO3_LAMP & sc->workaroundFlag)) {
|
||||
|
||||
a_bRegs[0x29] = 1; /* mode 1 */
|
||||
a_bRegs[0x5a] &= ~0x08;
|
||||
usbio_WriteReg( dev->fd, 0x5a, a_bRegs[0x5a] );
|
||||
|
||||
} else {
|
||||
|
||||
a_bRegs[0x29] = 1; /* mode 1 */
|
||||
|
||||
if( iStatusChange & DEV_LampReflection ) {
|
||||
a_bRegs[0x2e] = 16383 / 256;
|
||||
a_bRegs[0x2f] = 16383 % 256;
|
||||
|
|
|
|||
|
|
@ -78,7 +78,8 @@
|
|||
* @param value -
|
||||
* @return
|
||||
*/
|
||||
static Bool usbio_WriteReg( SANE_Int handle, SANE_Byte reg, SANE_Byte value )
|
||||
static SANE_Bool usbio_WriteReg( SANE_Int handle,
|
||||
SANE_Byte reg, SANE_Byte value )
|
||||
{
|
||||
int i;
|
||||
SANE_Byte data;
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@
|
|||
* History:
|
||||
* 0.40 - starting version of the USB support
|
||||
* 0.41 - minor fixes
|
||||
* 0.42 - no changes
|
||||
* 0.42 - added some stuff for CIS devices
|
||||
*
|
||||
*.............................................................................
|
||||
*
|
||||
|
|
@ -55,13 +55,10 @@
|
|||
|
||||
/** @file plustek-usbscan.c
|
||||
*/
|
||||
|
||||
#include <math.h>
|
||||
|
||||
static u_char bMaxITA;
|
||||
|
||||
static Bool m_fAutoPark;
|
||||
static Bool m_fFirst;
|
||||
static SANE_Bool m_fAutoPark;
|
||||
static SANE_Bool m_fFirst;
|
||||
static double m_dHDPIDivider;
|
||||
static double m_dMCLKDivider;
|
||||
static pScanParam m_pParam;
|
||||
|
|
@ -74,12 +71,16 @@ static u_short m_wLineLength;
|
|||
static u_short m_wStepSize;
|
||||
static u_long m_dwPauseLimit;
|
||||
|
||||
static Bool m_fStart = SANE_FALSE;
|
||||
|
||||
|
||||
static Bool usb_DownloadShadingData( pPlustek_Device, u_char );
|
||||
static SANE_Bool m_fStart = SANE_FALSE;
|
||||
|
||||
/* Prototype... */
|
||||
static SANE_Bool usb_DownloadShadingData( pPlustek_Device, u_char );
|
||||
|
||||
/**
|
||||
* @param val1 -
|
||||
* @param val2 -
|
||||
* @return
|
||||
*/
|
||||
static u_long usb_min( u_long val1, u_long val2 )
|
||||
{
|
||||
if( val1 > val2 )
|
||||
|
|
@ -88,6 +89,11 @@ static u_long usb_min( u_long val1, u_long val2 )
|
|||
return val1;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param val1 -
|
||||
* @param val2 -
|
||||
* @return
|
||||
*/
|
||||
static u_long usb_max( u_long val1, u_long val2 )
|
||||
{
|
||||
if( val1 > val2 )
|
||||
|
|
@ -870,39 +876,45 @@ static void usb_GetLineLength( pPlustek_Device dev )
|
|||
tp++;
|
||||
}
|
||||
|
||||
/* We are CCD scanner, ctmode should be 0 */
|
||||
b = (ntr + 1) * ((2*gbnd) + dur + 1);
|
||||
b += (1 - ntr) * en_tradj;
|
||||
b = 1;
|
||||
if( ctmode == 0 ) { /* CCD mode scanner*/
|
||||
|
||||
b = (ntr + 1) * ((2 * gbnd) + dur + 1);
|
||||
b += (1 - ntr) * en_tradj;
|
||||
}
|
||||
if( ctmode == 2 ) /* CIS mode scanner */
|
||||
b = 3;
|
||||
|
||||
|
||||
tr = m_bLineRateColor * (hw->wLineEnd + tp * (b + 3 - ntr));
|
||||
|
||||
if (tradj == 0)
|
||||
{
|
||||
if (ctmode == 0)
|
||||
if( tradj == 0 ) {
|
||||
if( ctmode == 0 )
|
||||
tr += m_bLineRateColor;
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
|
||||
int le_phi, num_byteclk, num_mclkf, tr_fast_pix, extra_pix;
|
||||
|
||||
|
||||
/* Line color or gray mode */
|
||||
if (afeop != 0)
|
||||
{
|
||||
le_phi = (tradj + 1) / 2 + 1 + 6;
|
||||
num_byteclk = ((le_phi + 8 * hw->wLineEnd + 8 * b + 4) / (8 * tradj)) + 1;
|
||||
num_mclkf = 8 * tradj * num_byteclk;
|
||||
if( afeop != 0 ) {
|
||||
|
||||
le_phi = (tradj + 1) / 2 + 1 + 6;
|
||||
num_byteclk = ((le_phi + 8 * hw->wLineEnd + 8 * b + 4) /
|
||||
(8 * tradj)) + 1;
|
||||
num_mclkf = 8 * tradj * num_byteclk;
|
||||
tr_fast_pix = num_byteclk;
|
||||
extra_pix = (num_mclkf - le_phi) % 8;
|
||||
extra_pix = (num_mclkf - le_phi) % 8;
|
||||
}
|
||||
else /* 3 channel pixel rate color */
|
||||
{
|
||||
le_phi = (tradj + 1) / 2 + 1 + 10 + 12;
|
||||
le_phi = (tradj + 1) / 2 + 1 + 10 + 12;
|
||||
num_byteclk = ((le_phi + 3 * 8 * hw->wLineEnd + 3 * 8 * b + 3 * 4) /
|
||||
(3 * 8 * tradj)) + 1;
|
||||
num_mclkf = 3 * 8 * tradj * num_byteclk;
|
||||
num_mclkf = 3 * 8 * tradj * num_byteclk;
|
||||
tr_fast_pix = num_byteclk;
|
||||
extra_pix = (num_mclkf - le_phi) % (3 * 8);
|
||||
extra_pix = (num_mclkf - le_phi) % (3 * 8);
|
||||
}
|
||||
|
||||
tr = b + hw->wLineEnd + 4 + tr_fast_pix;
|
||||
if (extra_pix == 0)
|
||||
tr++;
|
||||
|
|
@ -1105,7 +1117,7 @@ static void usb_GetScanLinesAndSize( pPlustek_Device dev, pScanParam pParam )
|
|||
/*.............................................................................
|
||||
*
|
||||
*/
|
||||
static Bool usb_SetScanParameters( pPlustek_Device dev, pScanParam pParam )
|
||||
static SANE_Bool usb_SetScanParameters( pPlustek_Device dev, pScanParam pParam )
|
||||
{
|
||||
static u_char reg8, reg38[6], reg48[2];
|
||||
|
||||
|
|
@ -1254,7 +1266,7 @@ static Bool usb_SetScanParameters( pPlustek_Device dev, pScanParam pParam )
|
|||
/*.............................................................................
|
||||
*
|
||||
*/
|
||||
static Bool usb_ScanBegin( pPlustek_Device dev, Bool fAutoPark )
|
||||
static SANE_Bool usb_ScanBegin( pPlustek_Device dev, SANE_Bool fAutoPark )
|
||||
{
|
||||
u_char value;
|
||||
|
||||
|
|
@ -1327,7 +1339,7 @@ static Bool usb_ScanBegin( pPlustek_Device dev, Bool fAutoPark )
|
|||
/*.............................................................................
|
||||
*
|
||||
*/
|
||||
static Bool usb_ScanEnd( pPlustek_Device dev )
|
||||
static SANE_Bool usb_ScanEnd( pPlustek_Device dev )
|
||||
{
|
||||
u_char value;
|
||||
|
||||
|
|
@ -1357,7 +1369,7 @@ static Bool usb_ScanEnd( pPlustek_Device dev )
|
|||
/*.............................................................................
|
||||
*
|
||||
*/
|
||||
static Bool usb_IsDataAvailableInDRAM( pPlustek_Device dev )
|
||||
static SANE_Bool usb_IsDataAvailableInDRAM( pPlustek_Device dev )
|
||||
{
|
||||
/* Compute polling timeout
|
||||
* Height (Inches) / MaxScanSpeed (Inches/Second) = Seconds to move the
|
||||
|
|
@ -1410,7 +1422,8 @@ static Bool usb_IsDataAvailableInDRAM( pPlustek_Device dev )
|
|||
/*.............................................................................
|
||||
*
|
||||
*/
|
||||
static Bool usb_ScanReadImage( pPlustek_Device dev, void *pBuf, u_long dwSize )
|
||||
static SANE_Bool usb_ScanReadImage( pPlustek_Device dev,
|
||||
void *pBuf, u_long dwSize )
|
||||
{
|
||||
static u_long dwBytes = 0;
|
||||
SANE_Status res;
|
||||
|
|
|
|||
|
|
@ -88,8 +88,8 @@ static u_short m_wShadow = 0; /* check the windows registry... */
|
|||
/*.............................................................................
|
||||
*
|
||||
*/
|
||||
static Bool usb_SetDarkShading( int fd, u_char channel,
|
||||
void *lpCoeff, u_short wCount )
|
||||
static SANE_Bool usb_SetDarkShading( int fd, u_char channel,
|
||||
void *lpCoeff, u_short wCount )
|
||||
{
|
||||
int res;
|
||||
|
||||
|
|
@ -125,8 +125,8 @@ static Bool usb_SetDarkShading( int fd, u_char channel,
|
|||
/*.............................................................................
|
||||
*
|
||||
*/
|
||||
static Bool usb_SetWhiteShading( int fd, u_char channel,
|
||||
void *lpData, u_short wCount )
|
||||
static SANE_Bool usb_SetWhiteShading( int fd, u_char channel,
|
||||
void *lpData, u_short wCount )
|
||||
{
|
||||
int res;
|
||||
|
||||
|
|
@ -408,13 +408,13 @@ static u_char usb_GetNewGain( u_short wMax )
|
|||
/*.............................................................................
|
||||
*
|
||||
*/
|
||||
static Bool usb_AdjustGain( pPlustek_Device dev, int fNegative )
|
||||
static SANE_Bool usb_AdjustGain( pPlustek_Device dev, int fNegative )
|
||||
{
|
||||
pScanDef scanning = &dev->scanning;
|
||||
pDCapsDef scaps = &dev->usbDev.Caps;
|
||||
pHWDef hw = &dev->usbDev.HwSetting;
|
||||
u_long dw;
|
||||
Bool fRepeatITA = SANE_TRUE;
|
||||
SANE_Bool fRepeatITA = SANE_TRUE;
|
||||
|
||||
if( usb_IsEscPressed())
|
||||
return SANE_FALSE;
|
||||
|
|
@ -626,7 +626,7 @@ static void usb_GetNewOffset( u_long *pdwSum, u_long *pdwDiff, char *pcOffset,
|
|||
/*.............................................................................
|
||||
*
|
||||
*/
|
||||
static Bool usb_AdjustOffset( pPlustek_Device dev )
|
||||
static SANE_Bool usb_AdjustOffset( pPlustek_Device dev )
|
||||
{
|
||||
char cAdjust = 16;
|
||||
char cOffset[3];
|
||||
|
|
@ -793,7 +793,7 @@ static void usb_GetDarkShading( pPlustek_Device dev, u_short *pwDest,
|
|||
/*.............................................................................
|
||||
*
|
||||
*/
|
||||
static Bool usb_AdjustDarkShading( pPlustek_Device dev )
|
||||
static SANE_Bool usb_AdjustDarkShading( pPlustek_Device dev )
|
||||
{
|
||||
pScanDef scanning = &dev->scanning;
|
||||
pDCapsDef scaps = &dev->usbDev.Caps;
|
||||
|
|
@ -837,19 +837,17 @@ static Bool usb_AdjustDarkShading( pPlustek_Device dev )
|
|||
(!usb_ScanReadImage(dev,pScanBuffer,m_ScanParam.Size.dwPhyBytes)) ||
|
||||
(!usb_ScanEnd( dev ))) {
|
||||
|
||||
a_bRegs[0x29] = hw->bReg_0x29;
|
||||
|
||||
if(_WAF_MISC_IO6_LAMP==(_WAF_MISC_IO6_LAMP & scaps->workaroundFlag)) {
|
||||
a_bRegs[0x29] = 3;
|
||||
a_bRegs[0x5b] = 0x94;
|
||||
usbio_WriteReg( dev->fd, 0x5b, a_bRegs[0x5b] );
|
||||
|
||||
} else if( _WAF_MISC_IO3_LAMP ==
|
||||
(_WAF_MISC_IO3_LAMP & scaps->workaroundFlag)) {
|
||||
a_bRegs[0x29] = 3;
|
||||
a_bRegs[0x5a] |= 0x08;
|
||||
usbio_WriteReg( dev->fd, 0x5a, a_bRegs[0x5a] );
|
||||
|
||||
} else {
|
||||
a_bRegs[0x29] = 1;
|
||||
}
|
||||
usbio_WriteReg( dev->fd, 0x29, a_bRegs[0x29] );
|
||||
|
||||
|
|
@ -860,20 +858,17 @@ static Bool usb_AdjustDarkShading( pPlustek_Device dev )
|
|||
/*
|
||||
* set illumination mode to 1 or 3 on EPSON
|
||||
*/
|
||||
a_bRegs[0x29] = hw->bReg_0x29;
|
||||
|
||||
if( _WAF_MISC_IO6_LAMP == (_WAF_MISC_IO6_LAMP & scaps->workaroundFlag)) {
|
||||
|
||||
a_bRegs[0x29] = 3;
|
||||
a_bRegs[0x5b] = 0x94;
|
||||
usbio_WriteReg( dev->fd, 0x5b, a_bRegs[0x5b] );
|
||||
|
||||
} else if( _WAF_MISC_IO3_LAMP ==
|
||||
(_WAF_MISC_IO3_LAMP & scaps->workaroundFlag)) {
|
||||
a_bRegs[0x29] = 3;
|
||||
a_bRegs[0x5a] |= 0x08;
|
||||
usbio_WriteReg( dev->fd, 0x5a, a_bRegs[0x5a] );
|
||||
|
||||
} else {
|
||||
a_bRegs[0x29] = 1;
|
||||
}
|
||||
|
||||
if( !usbio_WriteReg( dev->fd, 0x29, a_bRegs[0x29])) {
|
||||
|
|
@ -915,7 +910,7 @@ static Bool usb_AdjustDarkShading( pPlustek_Device dev )
|
|||
/*.............................................................................
|
||||
*
|
||||
*/
|
||||
static Bool usb_AdjustWhiteShading( pPlustek_Device dev )
|
||||
static SANE_Bool usb_AdjustWhiteShading( pPlustek_Device dev )
|
||||
{
|
||||
pScanDef scanning = &dev->scanning;
|
||||
pDCapsDef scaps = &dev->usbDev.Caps;
|
||||
|
|
@ -1632,7 +1627,7 @@ static int usb_DoCalibration( pPlustek_Device dev )
|
|||
/*.............................................................................
|
||||
*
|
||||
*/
|
||||
static Bool usb_DownloadShadingData( pPlustek_Device dev, u_char bJobID )
|
||||
static SANE_Bool usb_DownloadShadingData( pPlustek_Device dev, u_char bJobID )
|
||||
{
|
||||
pHWDef hw = &dev->usbDev.HwSetting;
|
||||
|
||||
|
|
|
|||
|
|
@ -48,6 +48,7 @@
|
|||
* fixed a problem with the "size-sliders"
|
||||
* fixed a bug that causes segfault when using the autodetection for USB
|
||||
* devices
|
||||
* added OS/2 switch to disable the USB stuff for OS/2
|
||||
*
|
||||
*.............................................................................
|
||||
*
|
||||
|
|
@ -105,6 +106,7 @@
|
|||
#include <ctype.h>
|
||||
#include <unistd.h>
|
||||
#include <time.h>
|
||||
#include <math.h>
|
||||
|
||||
#include <sys/time.h>
|
||||
#include <sys/wait.h>
|
||||
|
|
@ -119,8 +121,10 @@
|
|||
#include "sane/sanei_backend.h"
|
||||
#include "sane/sanei_config.h"
|
||||
|
||||
/* might be used to disable all USB stuff */
|
||||
#define _PLUSTEK_USB
|
||||
/* might be used to disable all USB stuff - esp. for OS/2 */
|
||||
#ifndef HAVE_OS2_H
|
||||
# define _PLUSTEK_USB
|
||||
#endif
|
||||
|
||||
#include "plustek-share.h"
|
||||
#ifdef _PLUSTEK_USB
|
||||
|
|
|
|||
|
|
@ -168,7 +168,6 @@ typedef struct Plustek_Device
|
|||
SANE_Int res_list_size; /* resolution values */
|
||||
ScannerCaps caps; /* caps reported by the driver */
|
||||
AdjDef adj; /* for driver adjustment */
|
||||
struct itimerval saveSettings; /* for lamp timer */
|
||||
|
||||
/**************************** USB-stuff **********************************/
|
||||
char usbId[_MAX_ID_LEN];/* to keep Vendor and product */
|
||||
|
|
@ -177,6 +176,7 @@ typedef struct Plustek_Device
|
|||
ScanDef scanning; /* here we hold all stuff for */
|
||||
/* the USB-scanner */
|
||||
DeviceDef usbDev;
|
||||
struct itimerval saveSettings; /* for lamp timer */
|
||||
#endif
|
||||
|
||||
/*
|
||||
|
|
|
|||
Ładowanie…
Reference in New Issue