Lines Matching defs:dev
196 usb_PrepareFineCal( Plustek_Device *dev, ScanParam *tmp_sp, u_short cal_dpi )
198 ScanParam *sp = &dev->scanning.sParam;
199 DCapsDef *scaps = &dev->usbDev.Caps;
203 if( dev->adj.cacheCalData ) {
208 tmp_sp->UserDpi.x = usb_SetAsicDpiX(dev, sp->UserDpi.x );
215 usb_SetAsicDpiX(dev, tmp_sp->UserDpi.x)/ 300UL;
231 if( usb_IsCISDevice(dev) && (tmp_sp->bDataType == SCANDATATYPE_Color)) {
240 static double usb_GetMCLK( Plustek_Device *dev, ScanParam *param )
245 HWDef *hw = &dev->usbDev.HwSetting;
278 static void usb_SetMCLK( Plustek_Device *dev, ScanParam *param )
280 HWDef *hw = &dev->usbDev.HwSetting;
282 dMCLK = usb_GetMCLK( dev, param );
292 static SANE_Bool usb_SetDarkShading( Plustek_Device *dev, u_char channel,
296 u_char *regs = dev->usbDev.a_bRegs;
305 if( usbio_WriteReg( dev->fd, 0x03, regs[0x03] )) {
311 res = sanei_lm983x_write( dev->fd, 0x04, ®s[0x04], 2, SANE_TRUE );
316 res = sanei_lm983x_write( dev->fd, 0x06,
330 static SANE_Bool usb_SetWhiteShading( Plustek_Device *dev, u_char channel,
334 u_char *regs = dev->usbDev.a_bRegs;
343 if( usbio_WriteReg( dev->fd, 0x03, regs[0x03] )) {
349 res = sanei_lm983x_write( dev->fd, 0x04, ®s[0x04], 2, SANE_TRUE );
353 res = sanei_lm983x_write(dev->fd, 0x06,
368 static void usb_GetSWOffsetGain4TPA( Plustek_Device *dev )
370 ScanParam *param = &dev->scanning.sParam;
371 DCapsDef *sCaps = &dev->usbDev.Caps;
387 static void usb_GetSWOffsetGain( Plustek_Device *dev )
389 ScanParam *param = &dev->scanning.sParam;
390 DCapsDef *sCaps = &dev->usbDev.Caps;
391 HWDef *hw = &dev->usbDev.HwSetting;
402 usb_GetSWOffsetGain4TPA( dev );
668 static u_char usb_GetNewGain( Plustek_Device *dev, u_short wMax, int channel )
677 dAmp = 0.93 + 0.067 * dev->usbDev.a_bRegs[0x3b+channel];
735 static SANE_Bool adjLampSetting( Plustek_Device *dev, int channel, u_long max,
753 if( dev->usbDev.a_bRegs[0x3b + channel] == 63 ) {
777 static SANE_Bool usb_AdjustGain( Plustek_Device *dev, int fNegative )
782 ScanDef *scanning = &dev->scanning;
783 DCapsDef *scaps = &dev->usbDev.Caps;
784 HWDef *hw = &dev->usbDev.HwSetting;
786 u_char *regs = dev->usbDev.a_bRegs;
797 if((dev->adj.rgain != -1) &&
798 (dev->adj.ggain != -1) && (dev->adj.bgain != -1)) {
799 setAdjGain( dev->adj.rgain, ®s[0x3b] );
800 setAdjGain( dev->adj.ggain, ®s[0x3c] );
801 setAdjGain( dev->adj.bgain, ®s[0x3d] );
806 min_mclk = usb_GetMCLK( dev, &scanning->sParam );
815 if( usb_IsCISDevice(dev) && m_ScanParam.bDataType == SCANDATATYPE_Color)
835 start = ((u_long)dev->usbDev.pSource->DataOrigin.x*scaps->OpticDpi.x/300UL);
836 len = ((u_long)dev->usbDev.pSource->Size.x * scaps->OpticDpi.x / 300UL);
852 if( !usb_SetScanParameters( dev, &m_ScanParam ))
855 if( !usb_ScanBegin( dev, SANE_FALSE) ||
856 !usb_ScanReadImage( dev, scanbuf, m_ScanParam.Size.dwPhyBytes ) ||
857 !usb_ScanEnd( dev )) {
917 regs[0x3b] = usb_GetNewGain(dev,Gain_Hilight.Red, 0 );
918 regs[0x3c] = usb_GetNewGain(dev,Gain_Hilight.Green, 1 );
919 regs[0x3d] = usb_GetNewGain(dev,Gain_Hilight.Blue, 2 );
943 regs[0x3c] = regs[0x3d] = usb_GetNewGain(dev,Gain_Hilight.Green,1);
963 if( usb_IsCISDevice(dev)) {
1003 if( usb_IsCISDevice(dev))
1013 regs[0x3b] = usb_GetNewGain( dev, tmp_rgb.Red, 0 );
1014 regs[0x3c] = usb_GetNewGain( dev, tmp_rgb.Green, 1 );
1015 regs[0x3d] = usb_GetNewGain( dev, tmp_rgb.Blue, 2 );
1022 if( usb_IsCISDevice(dev)) {
1026 if( adjLampSetting( dev, CHANNEL_red, tmp_rgb.Red, m_dwIdealGain,
1031 if( adjLampSetting( dev, CHANNEL_green, tmp_rgb.Green, m_dwIdealGain,
1036 if( adjLampSetting( dev, CHANNEL_blue, tmp_rgb.Blue, m_dwIdealGain,
1043 usb_AdjustLamps( dev, SANE_TRUE );
1120 if( usb_IsCISDevice(dev))
1125 regs[0x3d] = usb_GetNewGain(dev, w_tmp, 0);
1138 if( usb_IsCISDevice(dev)) {
1140 if( adjLampSetting( dev, CHANNEL_green, w_tmp, m_dwIdealGain,
1147 usb_AdjustLamps( dev, SANE_TRUE );
1202 static void usb_GetNewOffset( Plustek_Device *dev, u_long *pdwSum, u_long *pdwDiff,
1216 pIdeal[channel] = dev->usbDev.a_bRegs[0x38 + channel];
1227 pIdeal[channel] = dev->usbDev.a_bRegs[0x38 + channel];
1233 dev->usbDev.a_bRegs[0x38 + channel] = pcOffset[channel];
1235 dev->usbDev.a_bRegs[0x38 + channel] = (u_char)(32 - pcOffset[channel]);
1247 static SANE_Bool usb_AdjustOffset( Plustek_Device *dev )
1257 HWDef *hw = &dev->usbDev.HwSetting;
1258 u_char *regs = dev->usbDev.a_bRegs;
1259 u_long *scanbuf = dev->scanning.pScanBuffer;
1266 if((dev->adj.rofs != -1) &&
1267 (dev->adj.gofs != -1) && (dev->adj.bofs != -1)) {
1268 regs[0x38] = (dev->adj.rofs & 0x3f);
1269 regs[0x39] = (dev->adj.gofs & 0x3f);
1270 regs[0x3a] = (dev->adj.bofs & 0x3f);
1278 if( usb_IsCISDevice(dev))
1286 if( usb_IsCISDevice(dev) && m_ScanParam.bDataType == SCANDATATYPE_Color )
1290 dev->usbDev.Caps.OpticDpi.x);
1300 if( usb_IsCISDevice(dev)) {
1305 if( dev->usbDev.pSource->DarkShadOrgY >= 0 ) {
1307 usb_ModuleToHome( dev, SANE_TRUE );
1308 usb_ModuleMove ( dev, MOVE_Forward,
1309 (u_long)dev->usbDev.pSource->DarkShadOrgY );
1317 usb_switchLamp( dev, SANE_FALSE );
1326 if( !usb_SetScanParameters( dev, &m_ScanParam )) {
1343 if((!usb_ScanBegin(dev, SANE_FALSE)) ||
1344 (!usb_ScanReadImage(dev,scanbuf,m_ScanParam.Size.dwPhyBytes)) ||
1345 !usb_ScanEnd( dev )) {
1387 usb_GetNewOffset( dev, dwSum, dwDiff, cOffset, bExpect, 0, cAdjust );
1388 usb_GetNewOffset( dev, dwSum, dwDiff, cOffset, bExpect, 1, cAdjust );
1389 usb_GetNewOffset( dev, dwSum, dwDiff, cOffset, bExpect, 2, cAdjust );
1406 usb_GetNewOffset( dev, dwSum, dwDiff, cOffset, bExpect, 0, cAdjust );
1413 _UIO(sanei_lm983x_write(dev->fd, 0x38, ®s[0x38], 3, SANE_TRUE));
1432 if( usb_IsCISDevice(dev)) {
1434 if( dev->usbDev.pSource->DarkShadOrgY < 0 ) {
1436 usb_switchLamp( dev, SANE_TRUE );
1437 usbio_WriteReg( dev->fd, 0x29, regs[0x29]);
1449 static void usb_GetDarkShading( Plustek_Device *dev, u_short *pwDest,
1455 DCapsDef *scaps = &dev->usbDev.Caps;
1456 HWDef *hw = &dev->usbDev.HwSetting;
1458 if( dev->usbDev.pSource->DarkShadOrgY >= 0 ) {
1570 static SANE_Bool usb_AdjustDarkShading( Plustek_Device *dev )
1573 ScanDef *scanning = &dev->scanning;
1574 DCapsDef *scaps = &dev->usbDev.Caps;
1575 HWDef *hw = &dev->usbDev.HwSetting;
1577 u_char *regs = dev->usbDev.a_bRegs;
1590 usb_PrepareFineCal( dev, &m_ScanParam, 0 );
1597 m_ScanParam.UserDpi.x = usb_SetAsicDpiX( dev, m_ScanParam.UserDpi.x);
1611 if( usb_IsCISDevice(dev) && m_ScanParam.bDataType == SCANDATATYPE_Color )
1618 if( dev->usbDev.pSource->DarkShadOrgY >= 0 ) {
1620 usb_ModuleToHome( dev, SANE_TRUE );
1621 usb_ModuleMove ( dev, MOVE_Forward,
1622 (u_long)dev->usbDev.pSource->DarkShadOrgY );
1627 usb_switchLamp( dev, SANE_FALSE );
1630 usb_SetScanParameters( dev, &m_ScanParam );
1632 if((!usb_ScanBegin(dev, SANE_FALSE)) ||
1633 (!usb_ScanReadImage(dev,scanbuf, m_ScanParam.Size.dwPhyBytes)) ||
1634 (!usb_ScanEnd( dev ))) {
1638 usb_switchLamp( dev, SANE_TRUE );
1639 usbio_WriteReg( dev->fd, 0x29, regs[0x29] );
1648 usb_switchLamp( dev, SANE_TRUE );
1650 if( !usbio_WriteReg( dev->fd, 0x29, regs[0x29])) {
1669 if( usb_IsCISDevice(dev)) {
1671 usb_GetDarkShading( dev, a_wDarkShading, (HiLoDef*)scanbuf,
1675 usb_GetDarkShading( dev, a_wDarkShading + m_ScanParam.Size.dwPhyPixels,
1679 usb_GetDarkShading( dev, a_wDarkShading + m_ScanParam.Size.dwPhyPixels * 2,
1685 usb_GetDarkShading( dev, a_wDarkShading, (HiLoDef*)scanbuf,
1688 usb_GetDarkShading( dev, a_wDarkShading + m_ScanParam.Size.dwPhyPixels,
1691 usb_GetDarkShading( dev, a_wDarkShading + m_ScanParam.Size.dwPhyPixels * 2,
1697 usb_GetDarkShading( dev, a_wDarkShading, (HiLoDef*)scanbuf,
1715 * @param dev - the almighty device structure.
1721 static void usb_CalSortHighlight( Plustek_Device *dev, ScanParam *sp,
1724 ScanDef *scan = &dev->scanning;
1766 * @param dev - the almighty device structure.
1772 static void usb_CalSortShadow( Plustek_Device *dev, ScanParam *sp,
1775 ScanDef *scan = &dev->scanning;
1811 static void usb_procHighlightAndShadow( Plustek_Device *dev, ScanParam *sp,
1814 ScanDef *scan = &dev->scanning;
1826 usb_CalSortHighlight(dev, sp, hilight, shading_lines);
1829 usb_CalSortShadow(dev, sp, hilight, shadow, shading_lines);
1851 static SANE_Bool usb_AdjustWhiteShading( Plustek_Device *dev )
1854 ScanDef *scan = &dev->scanning;
1855 DCapsDef *scaps = &dev->usbDev.Caps;
1856 HWDef *hw = &dev->usbDev.HwSetting;
1878 usb_PrepareFineCal( dev, &m_ScanParam, 0 );
1894 m_ScanParam.UserDpi.x = usb_SetAsicDpiX( dev, m_ScanParam.UserDpi.x);
1902 if( usb_IsCISDevice(dev) && m_ScanParam.bDataType == SCANDATATYPE_Color )
1914 if( dev->usbDev.pSource->DarkShadOrgY >= 0 ) {
1916 usb_ModuleToHome( dev, SANE_TRUE );
1917 usb_ModuleMove ( dev, MOVE_Forward,
1918 (u_long)dev->usbDev.pSource->ShadingOriginY );
1931 if( usb_SetScanParameters( dev, &m_ScanParam ) &&
1932 usb_ScanBegin( dev, SANE_FALSE )) {
1940 if( usb_ScanReadImage( dev, (u_char*)pBuf + dwRead,
1954 if( usb_ScanEnd( dev )) {
1972 if( usb_IsCISDevice(dev)) {
2060 usb_procHighlightAndShadow(dev, &m_ScanParam, hilight, shadow, shading_lines);
2185 usb_SaveCalSetShading( dev, &m_ScanParam );
2230 usb_PrepareCalibration( Plustek_Device *dev )
2232 ScanDef *scan = &dev->scanning;
2233 DCapsDef *scaps = &dev->usbDev.Caps;
2234 u_char *regs = dev->usbDev.a_bRegs;
2236 usb_GetSWOffsetGain( dev );
2252 usb_SetMCLK( dev, &m_ScanParam );
2264 if( dev->adj.cacheCalData )
2265 if( usb_ReadAndSetCalData( dev ))
2271 if( usb_IsSheetFedDevice(dev)) {
2272 if( !scan->skipCoarseCalib && !usb_InCalibrationMode(dev)) {
2282 if((dev->adj.rofs != -1) &&
2283 (dev->adj.gofs != -1) && (dev->adj.bofs != -1)) {
2284 regs[0x38] = (dev->adj.rofs & 0x3f);
2285 regs[0x39] = (dev->adj.gofs & 0x3f);
2286 regs[0x3a] = (dev->adj.bofs & 0x3f);
2289 if((dev->adj.rgain != -1) &&
2290 (dev->adj.ggain != -1) && (dev->adj.bgain != -1)) {
2291 setAdjGain( dev->adj.rgain, ®s[0x3b] );
2292 setAdjGain( dev->adj.ggain, ®s[0x3c] );
2293 setAdjGain( dev->adj.bgain, ®s[0x3d] );
2302 usb_SpeedTest( Plustek_Device *dev )
2307 DCapsDef *scaps = &dev->usbDev.Caps;
2308 HWDef *hw = &dev->usbDev.HwSetting;
2309 u_char *regs = dev->usbDev.a_bRegs;
2310 u_long *scanbuf = dev->scanning.pScanBuffer;
2318 DBG( 1, "usb_SpeedTest(%d,%lu)\n", dev->initialized, dev->transferRate );
2319 if( dev->transferRate != DEFAULT_RATE ) {
2321 dev->transferRate );
2325 usb_PrepareCalibration( dev );
2342 if( usb_IsCISDevice(dev))
2348 dev->transferRate = 2000000;
2352 if( !usb_SetScanParameters( dev, &m_ScanParam ))
2355 if( !usb_ScanBegin( dev, SANE_FALSE )) {
2359 if (!usb_IsDataAvailableInDRAM( dev ))
2364 usb_ScanReadImage( dev, scanbuf, m_ScanParam.Size.dwPhyBytes );
2366 usb_ScanEnd( dev );
2377 dev->transferRate = (u_long)tr;
2379 _TLOOPS, r, tr, dev->transferRate );
2387 usb_AutoWarmup( Plustek_Device *dev )
2390 ScanDef *scanning = &dev->scanning;
2391 DCapsDef *scaps = &dev->usbDev.Caps;
2392 HWDef *hw = &dev->usbDev.HwSetting;
2394 u_char *regs = dev->usbDev.a_bRegs;
2409 if( usb_IsCISDevice(dev)) {
2414 if( dev->adj.warmup >= 0 ) {
2415 DBG( _DBG_INFO, "- using timed warmup: %ds\n", dev->adj.warmup );
2416 if( !usb_Wait4Warmup( dev )) {
2423 usb_PrepareCalibration( dev );
2439 if( usb_IsCISDevice(dev))
2466 if( !usb_SetScanParameters( dev, &m_ScanParam ))
2469 if( !usb_ScanBegin( dev, SANE_FALSE ) ||
2470 !usb_ScanReadImage( dev, scanbuf, m_ScanParam.Size.dwPhyBytes ) ||
2471 !usb_ScanEnd( dev )) {
2487 if( usb_IsCISDevice(dev)) {
2532 usb_DoIt( Plustek_Device *dev )
2535 ScanDef *scan = &dev->scanning;
2540 if( !usb_AdjustGain(dev, 0)) {
2545 if( !usb_AdjustOffset(dev)) {
2554 if( dev->adj.cacheCalData ) {
2555 skip_fine = usb_FineShadingFromFile(dev);
2560 if( !usb_AdjustDarkShading(dev)) {
2565 if( !usb_AdjustWhiteShading(dev)) {
2573 usb_GetPhyPixels( dev, &m_ScanParam );
2580 /* dev->usbDev.a_bRegs[0x45] &= ~0x10;*/
2588 usb_DoCalibration( Plustek_Device *dev )
2591 ScanDef *scanning = &dev->scanning;
2592 DCapsDef *scaps = &dev->usbDev.Caps;
2593 HWDef *hw = &dev->usbDev.HwSetting;
2594 u_char *regs = dev->usbDev.a_bRegs;
2614 dev->usbDev.pSource->DataOrigin.x, dev->usbDev.pSource->DataOrigin.y);
2615 if(!usb_ModuleMove( dev, MOVE_Forward,
2616 (dev->usbDev.pSource->DataOrigin.y +
2617 dev->usbDev.pSource->Size.y / 2))) {
2624 (u_long)dev->usbDev.pSource->ShadingOriginY );
2627 if (!usb_ModuleMove(dev, MOVE_ToShading,
2628 (u_long)dev->usbDev.pSource->ShadingOriginY)) {
2632 if( !usb_ModuleMove(dev, MOVE_Forward,
2633 (u_long)dev->usbDev.pSource->ShadingOriginY)) {
2641 usb_SpeedTest( dev );
2643 if( !usb_AutoWarmup( dev ))
2646 usb_PrepareCalibration( dev );
2652 !(SCANDEF_QualityScan & dev->scanning.dwFlag)) {
2661 setAdjGain( dev->adj.rgain, ®s[0x3b] );
2662 setAdjGain( dev->adj.ggain, ®s[0x3c] );
2663 setAdjGain( dev->adj.bgain, ®s[0x3d] );
2666 usb_SetMCLK( dev, &scanning->sParam );
2668 dumpregs( dev->fd, regs );
2682 usb_SetMCLK( dev, &scanning->sParam );
2685 if( dev->usbDev.Caps.OpticDpi.x == 600 )
2692 if( usb_AdjustGain( dev, 2)) {
2715 if( !usb_ModuleMove( dev, MOVE_Backward,
2716 dev->usbDev.pSource->DataOrigin.y +
2717 dev->usbDev.pSource->Size.y / 2 -
2718 dev->usbDev.pSource->ShadingOriginY)) {
2726 if(!usb_AdjustGain( dev, 1 ))
2732 if( !usb_AdjustOffset(dev) || !usb_AdjustDarkShading(dev) ||
2733 !usb_AdjustWhiteShading(dev)) {
2797 result = usb_DoIt( dev );
2809 usb_SetMCLK( dev, &scanning->sParam );
2812 if( dev->usbDev.Caps.OpticDpi.x == 600 ) {
2820 result = usb_DoIt( dev );
2829 usb_SetMCLK( dev, &scanning->sParam );
2831 } else if( dev->usbDev.Caps.OpticDpi.x == 600 ) {
2835 if( dev->usbDev.Caps.bCCD == kSONY548 ) {
2875 } else if( dev->usbDev.Caps.bPCB == 0x02 ) {
2884 } else if( dev->usbDev.Caps.bButtons ) { /* with lens Shading piece (with gobo) */
2888 if( dev->usbDev.HwSetting.motorModel == MODEL_KaoHsiung ) {
2889 if( dev->usbDev.Caps.bCCD == kNEC3799 ) {
2955 result = usb_DoIt( dev );
2965 usb_ModuleMove ( dev, MOVE_Forward, hw->wMotorDpi / 5 );
2966 usb_ModuleToHome( dev, SANE_TRUE );
2969 usb_ModuleMove( dev, MOVE_Forward, 10 );
2971 usb_ModuleToHome( dev, SANE_TRUE );
2977 usb_ModuleMove( dev, MOVE_Forward, 1000 );
2980 usb_ModuleMove( dev, MOVE_Forward, 3 * 300 + 38 );
2982 usb_MotorOn( dev, SANE_FALSE );
3005 get_ptrs(Plustek_Device *dev, u_short *buf, u_long offs,
3008 ScanDef *scan = &dev->scanning;
3009 DCapsDef *scaps = &dev->usbDev.Caps;
3046 usb_DownloadShadingData( Plustek_Device *dev, u_char what )
3050 DCapsDef *scaps = &dev->usbDev.Caps;
3051 ScanDef *scan = &dev->scanning;
3052 HWDef *hw = &dev->usbDev.HwSetting;
3053 ScanParam *param = &dev->scanning.sParam;
3054 u_char *regs = dev->usbDev.a_bRegs;
3059 if( usb_IsCISDevice(dev))
3067 usb_SetDarkShading( dev, CHANNEL_red, a_wDarkShading,
3069 usb_SetDarkShading( dev, CHANNEL_green, a_wDarkShading +
3072 usb_SetDarkShading( dev, CHANNEL_blue, a_wDarkShading +
3076 usb_SetDarkShading( dev, channel, a_wDarkShading +
3089 _UIO(sanei_lm983x_write( dev->fd, 0x40,
3097 !(SCANDEF_QualityScan & dev->scanning.dwFlag)) {
3111 if( !usbio_WriteReg( dev->fd, 0x03, regs[0x03]))
3114 _UIO(sanei_lm983x_write( dev->fd, 0x40,
3134 _UIO(sanei_lm983x_write( dev->fd, 0x40,
3137 if( !usbio_WriteReg( dev->fd, 0x42, regs[0x42]))
3147 get_ptrs(dev, a_wDarkShading, m_dwPixels, &r, &g, &b);
3149 usb_SetDarkShading( dev, CHANNEL_red, r,
3151 usb_SetDarkShading( dev, CHANNEL_green, g,
3153 usb_SetDarkShading( dev, CHANNEL_blue, b,
3156 usb_SetDarkShading( dev, channel,
3162 get_ptrs(dev, a_wWhiteShading,
3165 usb_SetWhiteShading( dev, CHANNEL_red, r,
3167 usb_SetWhiteShading( dev, CHANNEL_green, g,
3169 usb_SetWhiteShading( dev, CHANNEL_blue, b,
3172 usb_SetWhiteShading( dev, channel, a_wWhiteShading,
3188 if( !usbio_WriteReg( dev->fd, 0x42, regs[0x42]))
3206 _UIO(sanei_lm983x_write( dev->fd, 0x3e, ®s[0x3e],