kopia lustrzana https://gitlab.com/sane-project/backends
670 wiersze
19 KiB
C
670 wiersze
19 KiB
C
/*.............................................................................
|
|
* Project : linux driver for Plustek parallel-port scanners
|
|
*.............................................................................
|
|
* File: plustek-pp_scandata.h - here we define the ScanData structure...
|
|
* and a lot of register settings
|
|
*.............................................................................
|
|
*
|
|
* based on sources acquired from Plustek Inc.
|
|
* Copyright (C) 1998 Plustek Inc.
|
|
* Copyright (C) 2000-2003 Gerhard Jaeger <gerhard@gjaeger.de>
|
|
* also based on the work done by Rick Bronson <rick@efn.org>
|
|
*.............................................................................
|
|
* History:
|
|
* 0.30 - initial version
|
|
* 0.31 - no changes
|
|
* 0.32 - added fWarmupNeeded to struct ScanData
|
|
* - removed function FillDataToColorTable from struct ScanData
|
|
* - removed dwLampDelay from struct ScanData
|
|
* 0.33 - cosmetic changes
|
|
* - removed PositionLamp from structure
|
|
* - added dwLastPortMode to struct ScanData
|
|
* 0.34 - removed WaitBack() function from pScanData structure
|
|
* removed wStayMaxStep from pScanData structure
|
|
* 0.35 - removed SetInitialGainRAM from pScanData structure
|
|
* changed ModelStr list
|
|
* 0.36 - added some defines for the ASIC 96001 (model 4800)
|
|
* added wDither to DataInfo structure
|
|
* removed dwPreferSize from struct ScannerCaps
|
|
* cleanup
|
|
* moved all stuff that is used by the backend and the driver
|
|
* to plustek-share.h which is in the backend directory
|
|
* added ModelOverride parameter to struct
|
|
* added strcut pardevice to struct
|
|
* 0.37 - added bIODelay for SPP/BIDI port operations
|
|
* added ReadData to struct
|
|
* added ProcDirDef
|
|
* added ButtonCount
|
|
* removed RegisterToScanner from struct
|
|
* removed MaxDpiByInterpolation from struct
|
|
* 0.38 - added function PutToIdleMode() to struct
|
|
* added function Calibration() to struct
|
|
* changed interface of the ReInitAsic() function
|
|
* major changes: moved a lot of stuff to hwdefs.h
|
|
* added IO, Device, Shade, Scan and Bufs to struct
|
|
* 0.39 - added forceMode to struct
|
|
* added f97003, b97003DarkR, b97003DarkB, b97003DarkG to struct
|
|
* 0.40 - no changes
|
|
* 0.41 - no changes
|
|
* 0.42 - no changes
|
|
* .
|
|
* <hr>
|
|
* 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.
|
|
* <hr>
|
|
*/
|
|
#ifndef __SCANDATA_H__
|
|
#define __SCANDATA_H__
|
|
|
|
/*
|
|
*Directory information for the /proc interface
|
|
*/
|
|
typedef struct {
|
|
struct proc_dir_entry *entry; /* Directory /proc/pt_drv/X */
|
|
struct proc_dir_entry *info; /* .../info */
|
|
struct proc_dir_entry *buttons[_MAX_BTNS]; /* .../buttons */
|
|
} ProcDirDef, *pProcDirDef;
|
|
|
|
/*
|
|
* here we have some structs internally used
|
|
*/
|
|
/* CHECK: replace current stuff by this - looks much better !!! */
|
|
#if 0
|
|
|
|
typedef struct _IMAGESIZE
|
|
{
|
|
DWORD dwPixels;
|
|
DWORD dwBytes;
|
|
DWORD dwLines;
|
|
DWORD dwBytesCh;
|
|
} IMAGESIZE, *PIMAGESIZE;
|
|
|
|
|
|
typedef struct _IMAGEDEF
|
|
{
|
|
IMAGESIZE Image;
|
|
DWORD dwVxDFlag;
|
|
DWORD dwScanFlag;
|
|
CROPRECT Area;
|
|
XY Dpi;
|
|
WORD wDataType;
|
|
WORD wBrightness;
|
|
WORD wPhyDpiY;
|
|
WORD wResult;
|
|
WORD Reserved;
|
|
} IMAGEDEF, *PIMAGEDEF;
|
|
#endif
|
|
|
|
|
|
typedef struct {
|
|
ULong dwVxdFlag;
|
|
ULong dwScanFlag;
|
|
|
|
/*
|
|
* CHECK: why there are dups ?
|
|
*/
|
|
ULong dwAppLinesPerArea;
|
|
ULong dwAppPixelsPerLine;
|
|
ULong dwAppPhyBytesPerLine;
|
|
ULong dwAppBytesPerLine;
|
|
ULong dwAsicPixelsPerPlane;
|
|
ULong dwAsicBytesPerPlane;
|
|
ULong dwAsicBytesPerLine;
|
|
CropRect crImage;
|
|
XY xyAppDpi;
|
|
XY xyPhyDpi;
|
|
pUChar pCurrentBuffer;
|
|
UShort wPhyDataType;
|
|
UShort wAppDataType;
|
|
UShort wYSum;
|
|
|
|
short siBrightness;
|
|
|
|
/*
|
|
* CHANGE added these vars for scaling
|
|
*/
|
|
double XYRatio;
|
|
ULong dwPhysBytesPerLine;
|
|
|
|
/*
|
|
* CHANGE added this for selecting dither method
|
|
*/
|
|
UShort wDither;
|
|
|
|
} DataInfo, *pDataInfo;
|
|
|
|
|
|
/*
|
|
* here it is, the great structure
|
|
*/
|
|
typedef struct scandata
|
|
{
|
|
#ifdef __KERNEL__
|
|
UInt flags; /* as follows: */
|
|
#define _PTDRV_INITALIZED 0x00000001
|
|
#define _PTDRV_OPEN 0x00000002
|
|
|
|
struct pardevice *pardev; /* for accessing parport... */
|
|
struct parport *pp;
|
|
ProcDirDef procDir;
|
|
#endif
|
|
|
|
/*
|
|
* device control
|
|
*/
|
|
ULong devno;
|
|
int lampoff;
|
|
int warmup;
|
|
int lOffonEnd;
|
|
|
|
/*
|
|
* CHECK for controlling the ECP-mode (not used now)
|
|
*/
|
|
#if 0
|
|
Byte bOldECR;
|
|
Bool fECPReadWriteTest;
|
|
Bool fSkipEcpFlag;
|
|
Bool fECPFlag;
|
|
Bool fECPtoEPP;
|
|
Bool fECRFIFO;
|
|
#endif
|
|
|
|
/*
|
|
* the following stuff gets changed on a per model basis
|
|
*/
|
|
UShort ModelOverride; /* for non-auto detection stuff */
|
|
|
|
UShort Offset70; /* CHECK: --> to Device */
|
|
UShort BufferSizeBase; /* --> to Device */
|
|
UShort BufferSizePerModel; /* --> to Device */
|
|
UShort TimePerLine; /* --> to Device */
|
|
|
|
/*
|
|
* scanner properties
|
|
*/
|
|
RegData AsicReg; /* here we have the 98001/3 register set */
|
|
Reg96 Asic96Reg; /* here we hold the 96001/3 specific regs */
|
|
|
|
LensInfo LensInf;
|
|
ScannerCaps sCaps;
|
|
ULong dwScannerSize;
|
|
Byte bCurrentSpeed;
|
|
pUChar pbMapRed;
|
|
pUChar pbMapGreen;
|
|
pUChar pbMapBlue;
|
|
|
|
ULong TotalBufferRequire;
|
|
ULong BufferForColorRunTable;
|
|
UShort PhysicalDpi;
|
|
UShort RdPix; /* for ASIC 96003 devices */
|
|
|
|
Byte a_bMapTable[4096 * 3]; /* pre 98001 was 256 * 3 */
|
|
Byte a_nbNewAdrPointer[_SCANSTATE_BYTES];
|
|
|
|
/*
|
|
* for P9600x ASIC based scanners
|
|
*/
|
|
Bool fColorMoreRedFlag;
|
|
Bool fColorMoreBlueFlag;
|
|
Bool fSonyCCD;
|
|
Bool f97003;
|
|
Byte AsicRedColor;
|
|
Byte AsicGreenColor;
|
|
Byte RedDataReady;
|
|
Byte GreenDataReady;
|
|
Byte b1stColorByte;
|
|
Byte b1stColor;
|
|
Byte b1stMask;
|
|
Byte b2ndColorByte;
|
|
Byte b2ndColor;
|
|
Byte b2ndMask;
|
|
Byte b3rdColorByte;
|
|
Byte b3rdColor;
|
|
Byte b3rdMask;
|
|
Byte b1stLinesOffset;
|
|
Byte b2ndLinesOffset;
|
|
Byte bLampOn;
|
|
Byte bExtraAdd;
|
|
Byte bFifoCount;
|
|
Byte bMinReadFifo;
|
|
Byte FullStep;
|
|
Byte StepMask;
|
|
Byte MotorOn;
|
|
Byte MotorFreeRun;
|
|
Byte IgnorePF;
|
|
Byte bMotorStepTableNo;
|
|
|
|
/* for ASIC 97003... */
|
|
Byte b97003DarkR;
|
|
Byte b97003DarkG;
|
|
Byte b97003DarkB;
|
|
|
|
/* CHECK: to Scan!!!! */
|
|
pUChar pGetBufR; /* NOTE: these aren't actually Red/Green buffer */
|
|
pUChar pGetBufG; /* pointers but instead are used */
|
|
pUChar pPutBufR; /* generically to point to the first 2 */
|
|
pUChar pPutBufG; /* color buffers as temp storage */
|
|
|
|
pUChar pCurrentColorRunTable;
|
|
UShort a_wGrayInitTime[3];
|
|
UShort a_wColorInitTime[3];
|
|
UShort BackwardSteps;
|
|
UShort wLinesPer64kTime;
|
|
UShort ShadingBufferSize;
|
|
UShort ShadingBankSize;
|
|
UShort ShadingBankRed;
|
|
UShort ShadingBankGreen;
|
|
UShort ShadingBankBlue;
|
|
UShort ShadingScanLineBlks;
|
|
UShort ShadingScanLineLen;
|
|
UShort wOverBlue;
|
|
UShort FBKScanLineBlks;
|
|
UShort FBKScanLineLenBase;
|
|
UShort FBKScanLineLen;
|
|
UShort OneScanLineLen;
|
|
|
|
/*
|
|
* the DAC part - to Shade !!!
|
|
*/
|
|
UShort wsDACCompareHighRed, wsDACCompareLowRed;
|
|
UShort wsDACCompareHighGreen, wsDACCompareLowGreen;
|
|
UShort wsDACCompareHighBlue, wsDACCompareLowBlue;
|
|
UShort wsDACOffsetRed, wsDACOffsetGreen, wsDACOffsetBlue;
|
|
Byte bsPreRedDAC, bsPreGreenDAC, bsPreBlueDAC;
|
|
Byte bRedDAC, bGreenDAC, bBlueDAC;
|
|
Byte bRedGainIndex, bGreenGainIndex, bBlueGainIndex;
|
|
|
|
/*
|
|
* for image description
|
|
*/
|
|
DataInfo DataInf;
|
|
Bool fReshaded;
|
|
ULong dwDitherIndex;
|
|
Bool fDoFilter, fFilterFirstLine;
|
|
ULong dwDivFilter;
|
|
ULong dwMul;
|
|
Byte bOffsetFilter;
|
|
ULong dwLinesFilter;
|
|
pUChar pFilterBuf, pEndBuf;
|
|
pUChar pGet1, pGet2, pGet3;
|
|
|
|
Byte bSetScanModeFlag; /* see Section 5 - Scanmodes --> ps->Shade.bIntermediate*/
|
|
|
|
/*
|
|
* some admin vals (they used to be global vars in the original driver)
|
|
*/
|
|
Bool fScanningStatus;
|
|
Byte bLastLampStatus;
|
|
Bool fWarmupNeeded;
|
|
ULong dwOffset70;
|
|
ULong dwMaxReadFifoData;
|
|
|
|
/*
|
|
*
|
|
*/
|
|
pUChar pColorRunTable;
|
|
pUChar pPrescan16;
|
|
pUChar pPrescan8;
|
|
UShort BufferForDataRead1;
|
|
ULong BufferFor1stColor;
|
|
ULong BufferFor2ndColor;
|
|
pUChar driverbuf;
|
|
pUChar pEndBufR;
|
|
pUChar pEndBufG;
|
|
pUChar pProcessingBuf;
|
|
|
|
/*
|
|
* formerly used as global vars in ioproc.c, now in genericio.c
|
|
*/
|
|
pUChar pScanBuffer1;
|
|
pUChar pScanBuffer2;
|
|
|
|
pModeTypeVar lpEppColorHomePos;
|
|
pModeTypeVar lpEppColorExposure;
|
|
pModeTypeVar lpBppColorHomePos;
|
|
pModeTypeVar lpSppColorHomePos;
|
|
UShort wMinCmpDpi;
|
|
pModeTypeVar a_ColorSettings;
|
|
pDiffModeVar a_tabDiffParam;
|
|
|
|
Byte bSpeed48;
|
|
Byte bSpeed32;
|
|
Byte bSpeed24;
|
|
Byte bSpeed16;
|
|
Byte bSpeed12;
|
|
Byte bSpeed8;
|
|
Byte bSpeed6;
|
|
Byte bSpeed4;
|
|
Byte bSpeed3;
|
|
Byte bSpeed2;
|
|
Byte bSpeed1;
|
|
|
|
Byte bHpMotor;
|
|
Byte bStepSpeed;
|
|
ULong dwFullStateSpeed;
|
|
|
|
/*
|
|
* reference to globals from motor.c
|
|
*/
|
|
Bool fHalfStepTableFlag;
|
|
Bool fFullLength;
|
|
Byte bMoveDataOutFlag;
|
|
Byte bExtraMotorCtrl;
|
|
Byte bFastMoveFlag;
|
|
Byte bOldStateCount;
|
|
Byte bMotorSpeedData;
|
|
Byte bCurrentLineCount;
|
|
Byte bNewGap;
|
|
Byte bNewCurrentLineCountGap;
|
|
UShort wMaxMoveStep;
|
|
ULong dwScanStateCount;
|
|
ULong dwColorRunIndex;
|
|
pByte a_bColorByteTable;
|
|
pUChar pScanState;
|
|
pUShort a_wMoveStepTable;
|
|
|
|
/*
|
|
* for shading - dac.c
|
|
* CHECK: move to ps->Shade
|
|
*/
|
|
Byte bShadingTimeFlag;
|
|
ULong dwShadow, dwShadowCh;
|
|
ULong dwHilight, dwHilightCh;
|
|
ULong dwShadingLen, dwShadingPixels;
|
|
pUShort pwShadow;
|
|
|
|
/*
|
|
* from transform.c
|
|
*/
|
|
Byte bRedHigh, bGreenHigh, bBlueHigh;
|
|
UShort wPosAdjustX;
|
|
UShort wNegAdjustX;
|
|
UShort wReduceRedFactor;
|
|
UShort wReduceGreenFactor;
|
|
UShort wReduceBlueFactor;
|
|
ULong dwOffsetNegative;
|
|
|
|
/*
|
|
* reference to globals from map.c
|
|
*/
|
|
#define _DITHERSIZE 64
|
|
Byte a_bDitherPattern[_DITHERSIZE];
|
|
Short wBrightness;
|
|
Short wContrast;
|
|
UShort wInitialStep;
|
|
ULong dwSizeMustProcess;
|
|
|
|
/*
|
|
* here we have pointers to the functions to call
|
|
*/
|
|
Bool (*OpenScanPath) (pScanData);
|
|
void (*CloseScanPath) (pScanData);
|
|
int (*ReadWriteTest) (pScanData);
|
|
void (*PutToIdleMode) (pScanData);
|
|
int (*Calibration) (pScanData);
|
|
void (*SetupScannerVariables) (pScanData);
|
|
int (*SetupScanSettings) (pScanData, pScanInfo pInf );
|
|
void (*GetImageInfo) (pScanData, pImgDef pInf );
|
|
Bool (*WaitForShading) (pScanData);
|
|
void (*WaitForPositionY) (pScanData);
|
|
void (*InitialSetCurrentSpeed) (pScanData);
|
|
Bool (*GotoShadingPosition) (pScanData);
|
|
void (*SetupScanningCondition) (pScanData);
|
|
void (*SetMotorSpeed) (pScanData,Byte bSpeed,Bool fSetRunState);
|
|
void (*FillRunNewAdrPointer) (pScanData);
|
|
void (*SetupMotorRunTable) (pScanData);
|
|
void (*PauseColorMotorRunStates) (pScanData);
|
|
void (*UpdateDataCurrentReadLine)(pScanData);
|
|
Bool (*ReadOneImageLine) (pScanData);
|
|
|
|
/* used only by ASIC9800x Part of the driver ! */
|
|
void (*ReInitAsic) (pScanData, Bool shading);
|
|
|
|
/* value used to read nibble's */
|
|
Byte CtrlReadHighNibble;
|
|
Byte CtrlReadLowNibble;
|
|
|
|
/*
|
|
* asic register offset values
|
|
*/
|
|
Byte RegSwitchBus;
|
|
Byte RegEPPEnable;
|
|
Byte RegECPEnable;
|
|
Byte RegReadDataMode;
|
|
Byte RegWriteDataMode;
|
|
Byte RegInitDataFifo;
|
|
Byte RegForceStep;
|
|
Byte RegInitScanState;
|
|
Byte RegRefreshScanState;
|
|
Byte RegThresholdGapControl;
|
|
Byte RegADCAddress;
|
|
Byte RegADCData;
|
|
Byte RegADCPixelOffset;
|
|
Byte RegADCSerialOutStr;
|
|
Byte RegResetConfig;
|
|
Byte RegLensPosition;
|
|
Byte RegStatus;
|
|
Byte RegWaitStateInsert;
|
|
Byte RegFifoOffset;
|
|
Byte RegRFifoOffset;
|
|
Byte RegGFifoOffset;
|
|
Byte RegBFifoOffset;
|
|
Byte RegBitDepth;
|
|
Byte RegStepControl;
|
|
Byte RegMotor0Control;
|
|
Byte RegXStepTime;
|
|
Byte RegGetScanState;
|
|
Byte RegAsicID;
|
|
Byte RegReadIOBufBus;
|
|
Byte RegMemoryLow;
|
|
Byte RegMemoryHigh;
|
|
Byte RegModeControl;
|
|
Byte RegLineControl;
|
|
Byte RegScanControl;
|
|
Byte RegMotorControl;
|
|
#define _MotorDirForward 0x01 /* go forward */
|
|
#define _MotorOn 0x02 /* turn on motor */
|
|
#define _MotorIgnorePF 0x04 /* motor rolling don't care */
|
|
/* paper define flag */
|
|
#define _MotorFreeRun 0x80 /*ScanState count don't stop */
|
|
/* Following bits (bit 3 & 4 are depended on StatusPort */
|
|
/* bit-7:MotorType when it is 1: */
|
|
#define _Motor1FullStep 0x08 /* bit 4 is ignored */
|
|
/* When it is 0: */
|
|
#define _Motor0FullStepWeak 0 /* Full step (driving weak) */
|
|
#define _Motor0HalfStep 0x10 /* 1/2 step */
|
|
#define _Motor0QuarterStep 0x08 /* 1/4 step */
|
|
#define _Motor0FullStepStrong 0x18 /* Full step (driving strong)*/
|
|
#define _MotorStepMask 0xe7
|
|
/* for 96001 */
|
|
#define _MotorFullStep96001 0x02
|
|
#define _MotorOn96001 0x04
|
|
#define _MotorIgnorePF96001 0x08
|
|
|
|
Byte RegConfiguration;
|
|
Byte RegModelControl;
|
|
Byte RegModel1Control;
|
|
Byte RegMemAccessControl;
|
|
#define _MemBanks 64 /* the number of banks, 5 ls bits */
|
|
#define _MemBankMask (_MemBanks - 1)
|
|
#define _MemBankSize1k 0
|
|
#define _MemBankSize2k 0x40
|
|
#define _MemBankSize4k 0x80
|
|
#define _MemBankSize8k 0xc0
|
|
/* 96001 specific */
|
|
#define _MemBankSize2k96001 0x00
|
|
#define _MemBankSize4k96001 0x40
|
|
#define _MemBankSize8k96001 0x80
|
|
|
|
Byte RegDpiLow;
|
|
Byte RegDpiHigh;
|
|
Byte RegScanPosLow;
|
|
Byte RegScanPosHigh;
|
|
Byte RegWidthPixelsLow;
|
|
Byte RegWidthPixelsHigh;
|
|
Byte RegThresholdLow;
|
|
Byte RegThresholdHigh;
|
|
Byte RegThresholdControl;
|
|
Byte RegWatchDogControl;
|
|
#define _WDOnIntervalMask 0x0f /* WD * 8192 scan lines to turn
|
|
off Lamp */
|
|
#define _WDMotorLongInterval 0x40 /* short = 8192 lines time
|
|
long = 32768 lines time */
|
|
#define _WDEnable 0x80
|
|
Byte RegModelControl2;
|
|
#define _Model2ChannelSlct 0
|
|
#define _Model2ChannelMult 0x01 /* bit on/off accords to JONES */
|
|
#define _Model2CCSInvert 0x02
|
|
#define _Model2DirectOutPort 0x04
|
|
#define _Model2PipeLineDelayN 0x08
|
|
#define _Model2ShiftGapTiming10 0x10
|
|
#define _Model2BtnKeyPassThrough 0x20
|
|
Byte RegRedDCAdjust;
|
|
Byte RegGreenDCAdjust;
|
|
Byte RegBlueDCAdjust;
|
|
Byte RegRedChShadingOffset;
|
|
Byte RegGreenChShadingOffset;
|
|
Byte RegBlueChShadingOffset;
|
|
Byte RegRedChDarkOffset;
|
|
Byte RegGreenChDarkOffset;
|
|
Byte RegBlueChDarkOffset;
|
|
Byte RegWriteIOBusDecode1;
|
|
Byte RegWriteIOBusDecode2;
|
|
Byte RegScanStateControl;
|
|
#define _ScanStateEvenMask 0x0f
|
|
#define _ScanStateOddMask 0xf0
|
|
Byte RegRedChEvenOffset;
|
|
Byte RegGreenChEvenOffset;
|
|
Byte RegBlueChEvenOffset;
|
|
Byte RegRedChOddOffset;
|
|
Byte RegGreenChOddOffset;
|
|
Byte RegBlueChOddOffset;
|
|
Byte RegRedGainOutDirect;
|
|
Byte RegGreenGainOutDirect;
|
|
Byte RegBlueGainOutDirect;
|
|
Byte RegLedControl;
|
|
#define _LedCmdActEnable 0x04
|
|
#define _LedMotorActEnable 0x08
|
|
#define _LedClrChActEnable 0x10 /* Color Channel Action */
|
|
#define _LedLightOnActEnable 0x20
|
|
#define _LedHostTurnOnEnable 0x40
|
|
#define _LedActControl 0x80
|
|
Byte RegShadingCorrectCtrl;
|
|
#define _ShadingRCorrectX1 0
|
|
#define _ShadingRCorrectX2 0x01
|
|
#define _ShadingRCorrectX3 0x02
|
|
#define _ShadingRCorrectX4 0x03
|
|
#define _ShadingGCorrectX1 0
|
|
#define _ShadingGCorrectX2 0x04
|
|
#define _ShadingGCorrectX3 0x08
|
|
#define _ShadingGCorrectX4 0x0c
|
|
#define _ShadingBCorrectX1 0
|
|
#define _ShadingBCorrectX2 0x10
|
|
#define _ShadingBCorrectX3 0x20
|
|
#define _ShadingBCorrectX4 0x30
|
|
Byte RegScanStateBegin;
|
|
Byte RegRedChDarkOffsetLow;
|
|
Byte RegRedChDarkOffsetHigh;
|
|
Byte RegGreenChDarkOffsetLow;
|
|
Byte RegGreenChDarkOffsetHigh;
|
|
Byte RegBlueChDarkOffsetLow;
|
|
Byte RegBlueChDarkOffsetHigh;
|
|
Byte RegResetPulse0;
|
|
Byte RegResetPulse1;
|
|
Byte RegCCDClampTiming0;
|
|
Byte RegCCDClampTiming1;
|
|
Byte RegVSMPTiming0;
|
|
Byte RegVSMPTiming1;
|
|
Byte RegCCDQ1Timing0;
|
|
Byte RegCCDQ1Timing1;
|
|
Byte RegCCDQ1Timing2;
|
|
Byte RegCCDQ1Timing3;
|
|
Byte RegCCDQ2Timing0;
|
|
Byte RegCCDQ2Timing1;
|
|
Byte RegCCDQ2Timing2;
|
|
Byte RegCCDQ2Timing3;
|
|
Byte RegADCclockTiming0;
|
|
Byte RegADCclockTiming1;
|
|
Byte RegADCclockTiming2;
|
|
Byte RegADCclockTiming3;
|
|
Byte RegADCDVTiming0;
|
|
Byte RegADCDVTiming1;
|
|
Byte RegADCDVTiming2;
|
|
Byte RegADCDVTiming3;
|
|
Byte RegScanStateEnd;
|
|
|
|
/* ASIC 98003 specific*/
|
|
Byte RegFifoFullLength0;
|
|
Byte RegFifoFullLength1;
|
|
Byte RegFifoFullLength2;
|
|
|
|
Byte RegMotorTotalStep0;
|
|
Byte RegMotorTotalStep1;
|
|
Byte RegMotorFreeRunCount0;
|
|
Byte RegMotorFreeRunCount1;
|
|
Byte RegScanControl1;
|
|
Byte RegMotorFreeRunTrigger;
|
|
|
|
Byte RegResetMTSC;
|
|
|
|
Byte RegMotor1Control;
|
|
Byte RegMotor2Control;
|
|
Byte RegMotorDriverType;
|
|
Byte RegStatus2;
|
|
Byte RegExtendedLineControl;
|
|
Byte RegExtendedXStep;
|
|
|
|
Byte RegPllPredivider;
|
|
Byte RegPllMaindivider;
|
|
Byte RegPllPostdivider;
|
|
Byte RegClockSelector;
|
|
Byte RegTestMode;
|
|
|
|
/* CHECK: subject to change */
|
|
IODef IO;
|
|
DeviceDef Device;
|
|
ShadingDef Shade;
|
|
ScanDef Scan;
|
|
BufferDef Bufs;
|
|
|
|
} ScanData;
|
|
|
|
#endif /* guard __SCANDATA_H__ */
|
|
|
|
/* END PLUTSEK-PP_SCANDATA.H ................................................*/
|