Lines Matching defs:dev
94 static SANE_Status u12_initDev( U12_Device *dev, int handle, int vendor )
106 dev->sane.vendor = u12Vendors[i].desc;
107 DBG( _DBG_INFO, "Vendor adjusted to: >%s<\n", dev->sane.vendor );
111 dev->fd = handle;
113 dev->adj.upNormal = 0;
114 dev->adj.upNegative = 20;
115 dev->adj.upPositive = -30;
116 dev->adj.leftNormal = 51;
119 if( !(u12io_DataFromRegister( dev, REG_STATUS ) & _FLAG_PAPER)) {
121 u12motor_PositionModuleToHome( dev );
125 if( u12io_DataFromRegister( dev, REG_STATUS ) & _FLAG_PAPER) {
131 res = u12hw_InitAsic( dev, SANE_FALSE );
135 u12hw_PutToIdleMode( dev );
141 static void u12if_shutdown( U12_Device *dev )
146 DBG( _DBG_INFO, "Shutdown called (dev->fd=%d, %s)\n",
147 dev->fd, dev->sane.name );
148 if( SANE_STATUS_GOOD == sanei_usb_open( dev->sane.name, &handle )) {
150 dev->fd = handle;
151 u12io_OpenScanPath( dev );
153 u12hw_PutToIdleMode( dev );
155 if( !(u12io_DataFromRegister( dev, REG_STATUS ) & _FLAG_PAPER)) {
157 u12motor_PositionModuleToHome( dev );
161 if( u12io_DataFromRegister( dev, REG_STATUS ) & _FLAG_PAPER) {
168 if( 0 != dev->adj.lampOffOnEnd ) {
171 dev->regs.RD_ScanControl &= ~_SCAN_LAMPS_ON;
172 u12io_DataToRegister(dev,REG_SCANCONTROL, dev->regs.RD_ScanControl );
175 u12io_CloseScanPath( dev );
176 dev->fd = -1;
181 usb_StopLampTimer( dev );
193 static SANE_Bool u12if_IsDeviceSupported( U12_Device *dev )
199 if( !strcmp( dev->usbId, u12Devices[i].vp )) {
200 dev->sane.model = u12Devices[i].name;
261 static int u12if_open( U12_Device *dev )
269 DBG( _DBG_INFO, "u12if_open(%s,%s)\n", dev->name, dev->usbId );
274 dev->name = strdup( "auto" );
275 dev->sane.name = dev->name;
280 if( !strcmp( dev->name, "auto" )) {
282 if( dev->usbId[0] == '\0' ) {
291 vendor = strtol( &dev->usbId[0], 0, 0 );
292 product = strtol( &dev->usbId[7], 0, 0 );
309 free( dev->name );
310 dev->name = strdup( USB_devname );
311 dev->sane.name = dev->name;
315 if( SANE_STATUS_GOOD != sanei_usb_open( dev->name, &handle ))
329 if( dev->usbId[0] != '\0' ) {
331 if( 0 != strcmp( dev->usbId, devStr )) {
339 sprintf( dev->usbId, "0x%04X-0x%04X", vendor, product );
350 if( dev->usbId[0] == '\0' ) {
357 vendor = strtol( &dev->usbId[0], 0, 0 );
358 product = strtol( &dev->usbId[7], 0, 0 );
365 if( !u12if_IsDeviceSupported( dev )) {
366 DBG( _DBG_ERROR, "Device >%s<, is not supported!\n", dev->usbId );
371 dev->mode = _PP_MODE_SPP;
372 dev->fd = handle;
375 if( SANE_STATUS_GOOD != u12hw_CheckDevice( dev )) {
376 dev->fd = -1;
385 dev->usbId[0] = '\0';
388 if( SANE_STATUS_GOOD != u12_initDev( dev, handle, vendor )) {
389 dev->fd = -1;
395 if( dev->Tpa )
396 dev->sane.model = "UT12";
399 dev->initialized = SANE_TRUE;
405 static int u12if_close( U12_Device *dev )
408 u12io_CloseScanPath( dev );
409 sanei_usb_close( dev->fd );
410 dev->fd = -1;
416 static SANE_Status u12if_getCaps( U12_Device *dev )
419 int res_x = 600 ; /*dev->caps.OpticDpi.x */
423 dev->dpi_max_x = 600;
424 dev->dpi_max_y = 1200;
427 dev->max_x = 8.5 * (double)_MM_PER_INCH;
428 dev->max_y = 11.6934 * (double)_MM_PER_INCH;
431 dev->dpi_range.min = _DEF_DPI;
432 dev->dpi_range.max = dev->dpi_max_y;
433 dev->dpi_range.quant = 0;
434 dev->x_range.min = 0;
435 dev->x_range.max = SANE_FIX(dev->max_x);
436 dev->x_range.quant = 0;
437 dev->y_range.min = 0;
438 dev->y_range.max = SANE_FIX(dev->max_y);
439 dev->y_range.quant = 0;
444 dev->res_list = (SANE_Int *)
448 if (NULL == dev->res_list) {
450 u12if_close(dev);
455 dev->res_list_size = 0;
457 dev->res_list_size++;
458 dev->res_list[dev->res_list_size - 1] = (SANE_Int)cntr;
466 static SANE_Status u12if_startScan( U12_Device *dev )
469 u12hw_StopLampTimer( dev );
470 u12hw_SetGeneralRegister( dev );
471 u12hw_ControlLampOnOff( dev );
477 static SANE_Status u12if_stopScan( U12_Device *dev )
482 u12motor_ToHomePosition( dev, SANE_FALSE );
485 u12motor_ToHomePosition( dev, SANE_TRUE );
486 u12io_SoftwareReset( dev );
488 u12hw_CancelSequence( dev );
490 u12hw_StartLampTimer( dev );
491 dev->DataInf.dwAppLinesPerArea = 0;
492 dev->DataInf.dwScanFlag &= ~_SCANDEF_SCANNING;
498 static SANE_Status u12if_prepare( U12_Device *dev )
504 u12motor_ToHomePosition( dev, SANE_TRUE );
506 res = u12hw_WarmupLamp( dev );
510 res = u12shading_DoCalibration( dev );
514 u12image_PrepareScaling( dev );
516 u12motor_ForceToLeaveHomePos( dev );
517 if( dev->DataInf.dwScanFlag & _SCANDEF_PREVIEW )
518 u12hw_SetupPreviewCondition( dev );
520 u12hw_SetupScanningCondition( dev );
522 res = u12motor_WaitForPositionY( dev );
526 u12io_GetFifoLength(dev);
528 dev->scan.bModuleState = _MotorAdvancing;
529 dev->scan.oldScanState = u12io_GetScanState( dev );
530 dev->scan.oldScanState &= _SCANSTATE_MASK;
531 dev->DataInf.dwScanFlag |= _SCANDEF_SCANNING;
532 DBG( _DBG_INFO, "* oldScanState = %u\n", dev->scan.oldScanState );
539 static SANE_Status u12if_readLine( U12_Device *dev, SANE_Byte *line_buffer )
550 if( dev->scaleBuf != NULL ) {
551 res = u12image_ReadOneImageLine( dev, dev->scaleBuf );
555 u12image_ScaleX( dev, dev->scaleBuf, line_buffer );
558 res = u12image_ReadOneImageLine( dev, line_buffer );
567 static SANE_Status u12if_SetupBuffer( U12_Device *dev )
576 dev->shade.pHilight = NULL;
577 dev->bufs.b1.pReadBuf = buffer;
578 dev->bufs.b2.pSumBuf = dev->bufs.b1.pReadBuf + _SIZE_DATA_BUF;
579 dev->bufs.TpaBuf.pb = &((SANE_Byte*)dev->bufs.b2.pSumBuf)[_SIZE_SHADING_SUM_BUF];
582 dev->shade.skipHilight = _DEF_BRIGHTEST_SKIP;
583 dev->shade.skipShadow = _DEF_DARKEST_SKIP;
585 if( dev->shade.skipHilight && dev->shade.skipShadow ) {
589 skipSize = (u_long)((dev->shade.skipHilight + dev->shade.skipShadow)
591 dev->shade.pHilight = (RGBUShortDef*)malloc( skipSize );
592 if( NULL != dev->shade.pHilight ) {
593 dev->shade.dwDiv = (u_long)(32UL - dev->shade.skipHilight -
594 dev->shade.skipShadow);