kopia lustrzana https://gitlab.com/sane-project/backends
added DevFS support for kernel 2.6, removed floating point
operations (Thanx to Rafal Rzepecki), bumped up build number, cleanup work.merge-requests/1/head
rodzic
ff7b33f44f
commit
dfba0dd7a7
|
@ -1,8 +1,3 @@
|
|||
/*.............................................................................
|
||||
* Project : SANE library for Plustek flatbed scanners.
|
||||
*.............................................................................
|
||||
*/
|
||||
|
||||
/** @file plustek-pp.h
|
||||
* @brief Definitions for the backend.
|
||||
*
|
||||
|
@ -15,6 +10,8 @@
|
|||
*
|
||||
* History:
|
||||
* - 0.01 - initial version
|
||||
* - 0.43 - bumped up version to reflect the former module code version
|
||||
* - removed Version from ScannerCaps
|
||||
* .
|
||||
* <hr>
|
||||
* This file is part of the SANE package.
|
||||
|
@ -421,14 +418,13 @@ typedef struct {
|
|||
} RANGE, *PRANGE;
|
||||
|
||||
typedef struct {
|
||||
RANGE rDataType; /* available scan modes */
|
||||
unsigned long dwFlag; /* refer to SECTION (1.2) */
|
||||
unsigned short wIOBase; /* refer to SECTION (1.3) */
|
||||
unsigned short wMaxExtentX; /* scanarea width */
|
||||
unsigned short wMaxExtentY; /* scanarea height */
|
||||
unsigned short AsicID; /* copy of RegAsicID */
|
||||
unsigned short Model; /* model as best we can determine */
|
||||
unsigned short Version; /* drivers version */
|
||||
RANGE rDataType; /* available scan modes */
|
||||
unsigned long dwFlag; /* refer to SECTION (1.2) */
|
||||
unsigned short wIOBase; /* refer to SECTION (1.3) */
|
||||
unsigned short wMaxExtentX; /* scanarea width */
|
||||
unsigned short wMaxExtentY; /* scanarea height */
|
||||
unsigned short AsicID; /* copy of RegAsicID */
|
||||
unsigned short Model; /* model as best we can determine */
|
||||
} ScannerCaps, *pScannerCaps;
|
||||
|
||||
typedef struct {
|
||||
|
|
|
@ -1,9 +1,4 @@
|
|||
/*.............................................................................
|
||||
* Project : SANE library for Plustek parallelport flatbed scanners.
|
||||
*.............................................................................
|
||||
*/
|
||||
|
||||
/* @file plustek-pp_dac.c -
|
||||
/* @file plustek-pp_dac.c
|
||||
* @brief all the shading function formerly found in shading.c.
|
||||
* don't ask me why I called this file dac.c...
|
||||
*
|
||||
|
@ -30,6 +25,7 @@
|
|||
* - 0.40 - disabled the A3I stuff
|
||||
* - 0.41 - no changes
|
||||
* - 0.42 - changed include names
|
||||
* - 0.43 - no changes
|
||||
* .
|
||||
* <hr>
|
||||
* This file is part of the SANE package.
|
||||
|
|
|
@ -1,13 +1,8 @@
|
|||
/*.............................................................................
|
||||
* Project : linux driver for Plustek parallel-port scanners
|
||||
*.............................................................................
|
||||
* File: plustek-pp_dbg.h - definition of some debug macros
|
||||
*.............................................................................
|
||||
/** @file plustek-pp_dbg.c
|
||||
* @brief definition of some debug macros
|
||||
*
|
||||
* Copyright (C) 2000-2004 Gerhard Jaeger <gerhard@gjaeger.de>
|
||||
*
|
||||
*.............................................................................
|
||||
*
|
||||
* This file is part of the SANE package.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
|
@ -66,7 +61,7 @@
|
|||
#ifdef DEBUG
|
||||
# ifndef __KERNEL__
|
||||
# include <assert.h>
|
||||
# define _ASSERT(x) assert(x)
|
||||
# define _ASSERT(x) assert(x)
|
||||
# else
|
||||
# define _ASSERT(x)
|
||||
# endif
|
||||
|
|
|
@ -1,8 +1,3 @@
|
|||
/*.............................................................................
|
||||
* Project : SANE library for Plustek parallelport flatbed scanners.
|
||||
*.............................................................................
|
||||
*/
|
||||
|
||||
/* @file plustek-pp_detect.c
|
||||
* @brief automatic scanner detection
|
||||
*
|
||||
|
@ -28,6 +23,7 @@
|
|||
* - 0.40 - no changes
|
||||
* - 0.41 - no changes
|
||||
* - 0.42 - changed include names
|
||||
* - 0.43 - no changes
|
||||
* .
|
||||
* <hr>
|
||||
* This file is part of the SANE package.
|
||||
|
|
|
@ -1,8 +1,3 @@
|
|||
/*.............................................................................
|
||||
* Project : SANE library for Plustek parallelport flatbed scanners.
|
||||
*.............................................................................
|
||||
*/
|
||||
|
||||
/* @file plustek-pp_genericio.c
|
||||
* @brief all i/o functions
|
||||
*
|
||||
|
@ -35,6 +30,7 @@
|
|||
* - 0.40 - no changes
|
||||
* - 0.41 - no changes
|
||||
* - 0.42 - changed include names
|
||||
* - 0.43 - no changes
|
||||
* .
|
||||
* <hr>
|
||||
* This file is part of the SANE package.
|
||||
|
|
|
@ -1,15 +1,11 @@
|
|||
/*.............................................................................
|
||||
* Project : linux driver for Plustek parallel-port scanners
|
||||
*.............................................................................
|
||||
* File: plustek-pp_hwdefs.h - different definitions for describing the
|
||||
* scanner hardware
|
||||
*.............................................................................
|
||||
/* @file plustek-pp_hwdefs.h
|
||||
* @brief different definitions for describing the scanner hardware
|
||||
*
|
||||
* based on sources acquired from Plustek Inc.
|
||||
* Copyright (C) 1998 Plustek Inc.
|
||||
* Copyright (C) 2000-2004 Gerhard Jaeger <gerhard@gjaeger.de>
|
||||
* also based on the work done by Rick Bronson <rick@efn.org>
|
||||
*.............................................................................
|
||||
*
|
||||
* History:
|
||||
* 0.30 - initial version
|
||||
* 0.31 - corrected the values of _GAIN_P98_HIGH, _GAIN_P96_HIGH and _GAIN_LOW
|
||||
|
@ -31,6 +27,7 @@
|
|||
* 0.40 - no changes
|
||||
* 0.41 - added _OVR_PLUSTEK_4800P definition
|
||||
* 0.42 - added _OVR_PRIMAX_4800D30 definition
|
||||
* 0.43 - no changes
|
||||
* .
|
||||
* <hr>
|
||||
* This file is part of the SANE package.
|
||||
|
|
|
@ -1,8 +1,3 @@
|
|||
/*.............................................................................
|
||||
* Project : SANE library for Plustek parallelport flatbed scanners.
|
||||
*.............................................................................
|
||||
*/
|
||||
|
||||
/* @file plustek-pp_image.c
|
||||
* @brief functions to convert scanner data into image data
|
||||
*
|
||||
|
@ -37,6 +32,8 @@
|
|||
* - 0.41 - no changes
|
||||
* - 0.42 - fixed a problem for the 12bit modes fo ASIC9800x based devices
|
||||
* - changed include names
|
||||
* - 0.43 - removed floating point stuff
|
||||
* - cleanup
|
||||
* .
|
||||
* <hr>
|
||||
* This file is part of the SANE package.
|
||||
|
@ -106,8 +103,7 @@ static ThreshDef xferSpeed[4] = {
|
|||
|
||||
/*************************** local functions *********************************/
|
||||
|
||||
/*.............................................................................
|
||||
* return the correct DPI-value
|
||||
/** return the correct DPI-value
|
||||
* The ASIC 96001/3 models are limited to an optical resolution of 300 Dpi
|
||||
* so it´s necessary to scale in X and Y direction (see scale.c)!
|
||||
*/
|
||||
|
@ -281,9 +277,8 @@ static Bool fnReadOutScanner( pScanData ps )
|
|||
}
|
||||
}
|
||||
|
||||
/*.............................................................................
|
||||
* Interpolates the gray data by using averaged the continuous pixels
|
||||
*/
|
||||
/** Interpolates the gray data by using averaged the continuous pixels
|
||||
*/
|
||||
static void fnP96GrayDirect( pScanData ps, pVoid pBuf, pVoid pImg, ULong bl )
|
||||
{
|
||||
pUChar src, dest;
|
||||
|
@ -295,13 +290,12 @@ static void fnP96GrayDirect( pScanData ps, pVoid pBuf, pVoid pImg, ULong bl )
|
|||
*dest = ps->pbMapRed [*src];
|
||||
}
|
||||
|
||||
/*.............................................................................
|
||||
* This routine used in the condition:
|
||||
* 1) The data type is B/W or GrayScale.
|
||||
* 2) The required horizontal resolution doesn't exceed the optic spec.
|
||||
* 3) The required vertical resolution exceeds the optic spec.
|
||||
* So, the vertcal lines have to average with previous line to smooth the
|
||||
* image.
|
||||
/** This routine used in the condition:
|
||||
* 1) The data type is B/W or GrayScale.
|
||||
* 2) The required horizontal resolution doesn't exceed the optic spec.
|
||||
* 3) The required vertical resolution exceeds the optic spec.
|
||||
* So, the vertcal lines have to average with previous line to smooth the
|
||||
* image.
|
||||
*/
|
||||
static void fnDataDirect( pScanData ps, pVoid pBuf, pVoid pImg, ULong bl )
|
||||
{
|
||||
|
@ -309,8 +303,7 @@ static void fnDataDirect( pScanData ps, pVoid pBuf, pVoid pImg, ULong bl )
|
|||
memcpy( pBuf, pImg, bl );
|
||||
}
|
||||
|
||||
/*.............................................................................
|
||||
* According to dither matrix to convert the input gray scale data into
|
||||
/** According to dither matrix to convert the input gray scale data into
|
||||
* one-bit data.
|
||||
*/
|
||||
static void fnHalftoneDirect0( pScanData ps, pVoid pb, pVoid pImg, ULong bL )
|
||||
|
@ -337,8 +330,7 @@ static void fnHalftoneDirect0( pScanData ps, pVoid pb, pVoid pImg, ULong bL )
|
|||
ps->dwDitherIndex = (ps->dwDitherIndex + 8) & 0x3f;
|
||||
}
|
||||
|
||||
/*.............................................................................
|
||||
* use random generator to make halftoning
|
||||
/** use random generator to make halftoning
|
||||
*/
|
||||
static void fnHalftoneDirect1( pScanData ps, pVoid pb, pVoid pImg, ULong bL )
|
||||
{
|
||||
|
@ -365,8 +357,7 @@ static void fnHalftoneDirect1( pScanData ps, pVoid pb, pVoid pImg, ULong bL )
|
|||
}
|
||||
}
|
||||
|
||||
/*.............................................................................
|
||||
* Merges the color planes to pixels style without enlarge operation.
|
||||
/** Merges the color planes to pixels style without enlarge operation.
|
||||
*/
|
||||
static void fnP98ColorDirect( pScanData ps, pVoid pb, pVoid pImg, ULong bL )
|
||||
{
|
||||
|
@ -400,8 +391,7 @@ static void fnP96ColorDirect( pScanData ps, pVoid pb, pVoid pImg, ULong bL )
|
|||
}
|
||||
}
|
||||
|
||||
/*.............................................................................
|
||||
* Merges the color planes to pixels style without enlarge operation.
|
||||
/** Merges the color planes to pixels style without enlarge operation.
|
||||
* The scanner returns the pixel data in Motorola-Format, so we have to swap
|
||||
*/
|
||||
static void fnP98Color48( pScanData ps, pVoid pb, pVoid pImg, ULong bL )
|
||||
|
@ -423,8 +413,7 @@ static void fnP98Color48( pScanData ps, pVoid pb, pVoid pImg, ULong bL )
|
|||
}
|
||||
}
|
||||
|
||||
/*.............................................................................
|
||||
* prepare for scanning
|
||||
/** prepare for scanning
|
||||
*/
|
||||
static int imageP98SetupScanSettings( pScanData ps, pScanInfo pInf )
|
||||
{
|
||||
|
@ -527,8 +516,7 @@ static int imageP98SetupScanSettings( pScanData ps, pScanInfo pInf )
|
|||
return _OK;
|
||||
}
|
||||
|
||||
/*.............................................................................
|
||||
*
|
||||
/**
|
||||
*/
|
||||
static void imageP98DoCopyBuffer( pScanData ps, pUChar pImage )
|
||||
{
|
||||
|
@ -539,8 +527,7 @@ static void imageP98DoCopyBuffer( pScanData ps, pUChar pImage )
|
|||
ps->pFilterBuf = ps->pProcessingBuf;
|
||||
}
|
||||
|
||||
/*.............................................................................
|
||||
*
|
||||
/**
|
||||
*/
|
||||
static Bool imageP98CopyToFilterBuffer( pScanData ps, pUChar pImage )
|
||||
{
|
||||
|
@ -562,11 +549,10 @@ static Bool imageP98CopyToFilterBuffer( pScanData ps, pUChar pImage )
|
|||
return _TRUE;
|
||||
}
|
||||
|
||||
/*.............................................................................
|
||||
*
|
||||
/**
|
||||
*/
|
||||
static void imageP98UnSharpCompare( pScanData ps, Byte Center,
|
||||
Byte Neighbour, pLong pdwNewValue )
|
||||
Byte Neighbour, pLong pdwNewValue )
|
||||
{
|
||||
Byte b;
|
||||
|
||||
|
@ -579,8 +565,7 @@ static void imageP98UnSharpCompare( pScanData ps, Byte Center,
|
|||
}
|
||||
}
|
||||
|
||||
/*.............................................................................
|
||||
*
|
||||
/**
|
||||
*/
|
||||
static void imageP98DoFilter( pScanData ps, pUChar pPut )
|
||||
{
|
||||
|
@ -621,8 +606,7 @@ static void imageP98DoFilter( pScanData ps, pUChar pPut )
|
|||
}
|
||||
}
|
||||
|
||||
/*.............................................................................
|
||||
*
|
||||
/**
|
||||
*/
|
||||
static Bool imageP98DataIsReady( pScanData ps )
|
||||
{
|
||||
|
@ -632,7 +616,7 @@ static Bool imageP98DataIsReady( pScanData ps )
|
|||
ps->bMoveDataOutFlag = _DataAfterRefreshState;
|
||||
|
||||
b = (ps->DataInf.wPhyDataType >= COLOR_TRUE24) ?
|
||||
_BLUE_DATA_READY : _GREEN_DATA_READY;
|
||||
_BLUE_DATA_READY : _GREEN_DATA_READY;
|
||||
while( _TRUE ) {
|
||||
|
||||
ps->dwColorRunIndex ++;
|
||||
|
@ -687,8 +671,7 @@ static Bool imageP98DataIsReady( pScanData ps )
|
|||
return _TRUE;
|
||||
}
|
||||
|
||||
/*.............................................................................
|
||||
* here we wait for one data-line
|
||||
/** here we wait for one data-line
|
||||
*/
|
||||
static Bool imageP98001ReadOneImageLine( pScanData ps )
|
||||
{
|
||||
|
@ -732,8 +715,7 @@ static Bool imageP98001ReadOneImageLine( pScanData ps )
|
|||
return _FALSE;
|
||||
}
|
||||
|
||||
/*.............................................................................
|
||||
* calculate the image properties according to the scanmode
|
||||
/** calculate the image properties according to the scanmode
|
||||
*/
|
||||
static void imageP98GetInfo( pScanData ps, pImgDef pImgInf )
|
||||
{
|
||||
|
@ -751,8 +733,9 @@ static void imageP98GetInfo( pScanData ps, pImgDef pImgInf )
|
|||
DBG( DBG_LOW, "crArea.cx = %u, crArea.cy = %u\n",
|
||||
pImgInf->crArea.cx, pImgInf->crArea.cy );
|
||||
|
||||
ps->DataInf.XYRatio = (double)ps->DataInf.xyPhyDpi.y/
|
||||
(double)ps->DataInf.xyPhyDpi.x;
|
||||
ps->DataInf.XYRatio = 1000 * ps->DataInf.xyPhyDpi.y/ps->DataInf.xyPhyDpi.x;
|
||||
DBG( DBG_LOW, "xyDpi.x = %u, xyDpi.y = %u, XYRatio = %lu\n",
|
||||
pImgInf->xyDpi.x, pImgInf->xyDpi.y, ps->DataInf.XYRatio );
|
||||
|
||||
ps->DataInf.dwAppLinesPerArea = (ULong)pImgInf->crArea.cy *
|
||||
pImgInf->xyDpi.y / _MEASURE_BASE;
|
||||
|
@ -850,8 +833,7 @@ static void imageP98GetInfo( pScanData ps, pImgDef pImgInf )
|
|||
DBG( DBG_LOW, "Physical Bytes = %lu\n", ps->DataInf.dwPhysBytesPerLine );
|
||||
}
|
||||
|
||||
/*.............................................................................
|
||||
*
|
||||
/**
|
||||
*/
|
||||
static void imageP96GetInfo( pScanData ps, pImgDef pImgInf )
|
||||
{
|
||||
|
@ -869,11 +851,9 @@ static void imageP96GetInfo( pScanData ps, pImgDef pImgInf )
|
|||
DBG( DBG_LOW, "crArea.cx = %u, crArea.cy = %u\n",
|
||||
pImgInf->crArea.cx, pImgInf->crArea.cy );
|
||||
|
||||
ps->DataInf.XYRatio = (double)ps->DataInf.xyPhyDpi.y/
|
||||
(double)ps->DataInf.xyPhyDpi.x;
|
||||
|
||||
DBG( DBG_LOW, "xyDpi.x = %u, xyDpi.y = %u\n",
|
||||
pImgInf->xyDpi.x, pImgInf->xyDpi.y );
|
||||
ps->DataInf.XYRatio = 1000 * ps->DataInf.xyPhyDpi.y/ps->DataInf.xyPhyDpi.x;
|
||||
DBG( DBG_LOW, "xyDpi.x = %u, xyDpi.y = %u, XYRatio = %lu\n",
|
||||
pImgInf->xyDpi.x, pImgInf->xyDpi.y, ps->DataInf.XYRatio );
|
||||
|
||||
ps->DataInf.dwAppLinesPerArea = (ULong)pImgInf->crArea.cy *
|
||||
pImgInf->xyDpi.y / _MEASURE_BASE;
|
||||
|
@ -955,8 +935,7 @@ static void imageP96GetInfo( pScanData ps, pImgDef pImgInf )
|
|||
DBG( DBG_LOW, "Physical Bytes = %lu\n", ps->DataInf.dwPhysBytesPerLine );
|
||||
}
|
||||
|
||||
/*.............................................................................
|
||||
* here we wait for one data-line
|
||||
/** here we wait for one data-line
|
||||
*/
|
||||
static Bool imageP96ReadOneImageLine( pScanData ps )
|
||||
{
|
||||
|
@ -1137,8 +1116,7 @@ static Bool imageP96ReadOneImageLine( pScanData ps )
|
|||
return _FALSE;
|
||||
}
|
||||
|
||||
/*.............................................................................
|
||||
* prepare for scanning
|
||||
/** prepare for scanning
|
||||
*/
|
||||
static int imageP96SetupScanSettings( pScanData ps, pScanInfo pInf )
|
||||
{
|
||||
|
@ -1195,8 +1173,7 @@ static int imageP96SetupScanSettings( pScanData ps, pScanInfo pInf )
|
|||
return _OK;
|
||||
}
|
||||
|
||||
/*.............................................................................
|
||||
*
|
||||
/**
|
||||
*/
|
||||
static Bool imageP98003DataIsReady( pScanData ps )
|
||||
{
|
||||
|
@ -1251,8 +1228,7 @@ static Bool imageP98003DataIsReady( pScanData ps )
|
|||
return _FALSE;
|
||||
}
|
||||
|
||||
/*.............................................................................
|
||||
*
|
||||
/**
|
||||
*/
|
||||
static Bool imageP98003ReadOneImageLine( pScanData ps )
|
||||
{
|
||||
|
@ -1327,8 +1303,7 @@ static Bool imageP98003ReadOneImageLine( pScanData ps )
|
|||
return _FALSE;
|
||||
}
|
||||
|
||||
/*.............................................................................
|
||||
*
|
||||
/**
|
||||
*/
|
||||
static void imageP98003SetupScanStateVariables( pScanData ps, ULong index )
|
||||
{
|
||||
|
@ -1418,8 +1393,7 @@ static void imageP98003SetupScanStateVariables( pScanData ps, ULong index )
|
|||
}
|
||||
}
|
||||
|
||||
/*.............................................................................
|
||||
* PrepareScanningVariables() !!!
|
||||
/** PrepareScanningVariables() !!!
|
||||
*/
|
||||
static int imageP98003SetupScanSettings( pScanData ps, pScanInfo pInf )
|
||||
{
|
||||
|
|
|
@ -1,8 +1,3 @@
|
|||
/*.............................................................................
|
||||
* Project : SANE library for Plustek parallelport flatbed scanners.
|
||||
*.............................................................................
|
||||
*/
|
||||
|
||||
/* @file plustekpp-io.c
|
||||
* @brief as the name says, here we have all the I/O
|
||||
* functions according to the parallel port hardware
|
||||
|
@ -24,6 +19,7 @@
|
|||
* - 0.40 - no changes
|
||||
* - 0.41 - no changes
|
||||
* - 0.42 - changed include names
|
||||
* - 0.43 - no changes
|
||||
* .
|
||||
* <hr>
|
||||
* This file is part of the SANE package.
|
||||
|
|
|
@ -1,8 +1,3 @@
|
|||
/*.............................................................................
|
||||
* Project : SANE library for Plustek parallelport flatbed scanners.
|
||||
*.............................................................................
|
||||
*/
|
||||
|
||||
/* @file plustek-pp_map.c
|
||||
* @brief functions to create and manipulate lookup tables.
|
||||
*
|
||||
|
@ -30,6 +25,7 @@
|
|||
* - 0.41 - no changes
|
||||
* - 0.42 - made MapAdjust global
|
||||
* - changed include names
|
||||
* - 0.43 - cleanup, removed floating point stuff
|
||||
* .
|
||||
* <hr>
|
||||
* This file is part of the SANE package.
|
||||
|
@ -122,7 +118,7 @@ static void mapSetDitherMap( pScanData ps )
|
|||
|
||||
for( i = 0; i < _DITHERSIZE; i++ ) {
|
||||
pDither[i] = pDitherSource[i];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/** nothing more to say
|
||||
|
@ -149,7 +145,7 @@ static void mapInvertMap( pScanData ps )
|
|||
*/
|
||||
static void mapInvertDitherMap( pScanData ps )
|
||||
{
|
||||
if( ps->DataInf.dwScanFlag & SCANDEF_Inverse ) {
|
||||
if( ps->DataInf.dwScanFlag & SCANDEF_Inverse ) {
|
||||
|
||||
ULong dw;
|
||||
pULong pDither = (pULong)ps->a_bDitherPattern;
|
||||
|
@ -208,7 +204,7 @@ _LOC void MapSetupDither( pScanData ps )
|
|||
{
|
||||
DBG( DBG_LOW, "MapSetupDither() - %u\n", ps->DataInf.wAppDataType );
|
||||
|
||||
if( COLOR_HALFTONE == ps->DataInf.wAppDataType ) {
|
||||
if( COLOR_HALFTONE == ps->DataInf.wAppDataType ) {
|
||||
|
||||
mapSetDitherMap( ps );
|
||||
if (ps->DataInf.dwScanFlag & SCANDEF_Inverse)
|
||||
|
@ -220,9 +216,9 @@ _LOC void MapSetupDither( pScanData ps )
|
|||
*/
|
||||
_LOC void MapAdjust( pScanData ps, int which )
|
||||
{
|
||||
ULong i, tabLen;
|
||||
pULong pdw;
|
||||
double b, c, dw, tmp;
|
||||
ULong i, tabLen, dw;
|
||||
ULong *pdw;
|
||||
long b, c, tmp;
|
||||
|
||||
DBG( DBG_LOW, "MapAdjust(%u)\n", which );
|
||||
|
||||
|
@ -232,45 +228,42 @@ _LOC void MapAdjust( pScanData ps, int which )
|
|||
tabLen = 256;
|
||||
}
|
||||
|
||||
/*
|
||||
* adjust brightness (b) and contrast (c) using the function:
|
||||
*
|
||||
* s´(x,y) = (s(x,y) + b) * c
|
||||
/* adjust brightness (b) and contrast (c) using the function:
|
||||
* s'(x,y) = (s(x,y) + b) * c
|
||||
* b = [-127, 127]
|
||||
* c = [0,2]
|
||||
*/
|
||||
|
||||
/*
|
||||
* scale brightness and contrast...
|
||||
/* scale brightness and contrast...
|
||||
*/
|
||||
b = ((double)ps->wBrightness * 192.0)/100.0;
|
||||
c = ((double)ps->wContrast + 100.0)/100.0;
|
||||
b = ps->wBrightness * 192;
|
||||
c = ps->wContrast + 100;
|
||||
|
||||
DBG( DBG_LOW, "brightness = %i -> %i\n", ps->wBrightness, (UChar)b);
|
||||
DBG( DBG_LOW, "contrast*100 = %i -> %i\n", ps->wContrast, (int)(c*100));
|
||||
DBG( DBG_LOW, "brightness = %i -> %i\n", ps->wBrightness, (UChar)(b/100));
|
||||
DBG( DBG_LOW, "contrast*100 = %i -> %i\n", ps->wContrast, (int)(c));
|
||||
|
||||
for( i = 0; i < tabLen; i++ ) {
|
||||
|
||||
if((_MAP_MASTER == which) || (_MAP_RED == which)) {
|
||||
tmp = ((double)(ps->a_bMapTable[i] + b)) * c;
|
||||
tmp = ((((long)ps->a_bMapTable[i] * 100) + b) *c ) / 10000;
|
||||
if( tmp < 0 ) tmp = 0;
|
||||
if( tmp > 255 ) tmp = 255;
|
||||
ps->a_bMapTable[i] = (UChar)tmp;
|
||||
}
|
||||
ps->a_bMapTable[i] = (UChar)tmp;
|
||||
}
|
||||
|
||||
if((_MAP_MASTER == which) || (_MAP_GREEN == which)) {
|
||||
tmp = ((double)(ps->a_bMapTable[tabLen+i] + b)) * c;
|
||||
tmp = ((((long)ps->a_bMapTable[tabLen+i] * 100) + b) * c) / 10000;
|
||||
if( tmp < 0 ) tmp = 0;
|
||||
if( tmp > 255 ) tmp = 255;
|
||||
ps->a_bMapTable[tabLen+i] = (UChar)tmp;
|
||||
}
|
||||
|
||||
if((_MAP_MASTER == which) || (_MAP_BLUE == which)) {
|
||||
tmp = ((double)(ps->a_bMapTable[tabLen*2+i] + b)) * c;
|
||||
tmp = ((((long)ps->a_bMapTable[tabLen*2+i] * 100) + b) * c) / 10000;
|
||||
if( tmp < 0 ) tmp = 0;
|
||||
if( tmp > 255 ) tmp = 255;
|
||||
ps->a_bMapTable[tabLen*2+i] = (UChar)tmp;
|
||||
}
|
||||
ps->a_bMapTable[tabLen*2+i] = (UChar)tmp;
|
||||
}
|
||||
}
|
||||
|
||||
if( ps->DataInf.dwScanFlag & SCANDEF_Negative ) {
|
||||
|
|
|
@ -1,8 +1,3 @@
|
|||
/*.............................................................................
|
||||
* Project : SANE library for Plustek parallelport flatbed scanners.
|
||||
*.............................................................................
|
||||
*/
|
||||
|
||||
/* @file plustek-pp_misc.c
|
||||
* @brief here we have some helpful functions
|
||||
*
|
||||
|
@ -36,6 +31,7 @@
|
|||
* - changed include names
|
||||
* - 0.43 - added LINUX_26 stuff
|
||||
* - minor fixes
|
||||
* - removed floating point stuff
|
||||
* .
|
||||
* <hr>
|
||||
* This file is part of the SANE package.
|
||||
|
@ -471,12 +467,9 @@ _LOC int MiscReinitStruct( pScanData ps )
|
|||
return _E_NULLPTR;
|
||||
|
||||
memset( ps, 0, sizeof(ScanData));
|
||||
|
||||
/*
|
||||
* first init all constant stuff in ScanData
|
||||
*/
|
||||
ps->sCaps.Version = ((_PTDRV_V1 << 8) | _PTDRV_V0);
|
||||
|
||||
/* first init all constant stuff in ScanData
|
||||
*/
|
||||
ps->bCurrentSpeed = 1;
|
||||
ps->pbMapRed = ps->a_bMapTable;
|
||||
ps->pbMapGreen = &ps->a_bMapTable[256];
|
||||
|
@ -618,7 +611,7 @@ _LOC _INL void MiscStartTimer( pTimerDef timer , unsigned long us)
|
|||
gettimeofday(&start_time, NULL);
|
||||
#endif
|
||||
|
||||
*timer = start_time.tv_sec * 1e6 + start_time.tv_usec + us;
|
||||
*timer = start_time.tv_sec * 1000000 + start_time.tv_usec + us;
|
||||
}
|
||||
|
||||
/** Checks if a timer has been expired or not. In Kernel-mode, the scheduler
|
||||
|
@ -637,7 +630,7 @@ _LOC _INL int MiscCheckTimer( pTimerDef timer )
|
|||
gettimeofday(¤t_time, NULL);
|
||||
#endif
|
||||
|
||||
if (current_time.tv_sec * 1e6 + current_time.tv_usec > *timer) {
|
||||
if (current_time.tv_sec * 1000000 + current_time.tv_usec > *timer) {
|
||||
return _E_TIMEOUT;
|
||||
} else {
|
||||
#ifdef __KERNEL__
|
||||
|
|
|
@ -1,8 +1,3 @@
|
|||
/*.............................................................................
|
||||
* Project : SANE library for Plustek parallelport flatbed scanners.
|
||||
*.............................................................................
|
||||
*/
|
||||
|
||||
/* @file plustek-pp_models.c
|
||||
* @brief model specific stuff
|
||||
*
|
||||
|
@ -38,6 +33,7 @@
|
|||
* - 0.42 - added SFLAG_CUSTOM_GAMMA to capabilities
|
||||
* - added _OVR_PRIMAX_4800D30 switch
|
||||
* - changed include names
|
||||
* - 0.43 - no changes
|
||||
* .
|
||||
* <hr>
|
||||
* This file is part of the SANE package.
|
||||
|
|
|
@ -1,8 +1,3 @@
|
|||
/*.............................................................................
|
||||
* Project : SANE library for Plustek parallelport flatbed scanners.
|
||||
*.............................................................................
|
||||
*/
|
||||
|
||||
/* @file plustek-pp_motor.c
|
||||
* @brief all functions for motor control
|
||||
*
|
||||
|
@ -40,6 +35,7 @@
|
|||
* - 0.40 - changed back to build 0.39-3 (disabled A3I stuff)
|
||||
* - 0.41 - no changes
|
||||
* - 0.42 - changed include names
|
||||
* - 0.43 - no changes
|
||||
* .
|
||||
* <hr>
|
||||
* This file is part of the SANE package.
|
||||
|
|
|
@ -1,8 +1,3 @@
|
|||
/*.............................................................................
|
||||
* Project : SANE library for Plustek parallelport flatbed scanners.
|
||||
*.............................................................................
|
||||
*/
|
||||
|
||||
/* @file plustek-pp_p12.c
|
||||
* @brief p12 and pt12 specific stuff
|
||||
*
|
||||
|
@ -16,6 +11,7 @@
|
|||
* - 0.40 - no changes
|
||||
* - 0.41 - no changes
|
||||
* - 0.42 - removed setting of ps->sCaps.dwFlag in p12InitiateComponentModel()
|
||||
* - 0.43 - no changes
|
||||
* .
|
||||
* <hr>
|
||||
* This file is part of the SANE package.
|
||||
|
|
|
@ -1,8 +1,3 @@
|
|||
/*.............................................................................
|
||||
* Project : SANE library for Plustek parallelport flatbed scanners.
|
||||
*.............................................................................
|
||||
*/
|
||||
|
||||
/* @file plustek-pp_p12ccd.c
|
||||
* @brief here we have the whole code to intialize the CCD and DAC stuff
|
||||
*
|
||||
|
@ -18,6 +13,7 @@
|
|||
* - 0.40 - no changes
|
||||
* - 0.41 - no changes
|
||||
* - 0.42 - changed include names
|
||||
* - 0.43 - no changes
|
||||
* .
|
||||
* <hr>
|
||||
* This file is part of the SANE package.
|
||||
|
|
|
@ -1,18 +1,12 @@
|
|||
/*.............................................................................
|
||||
* Project : SANE library for Plustek parallelport flatbed scanners.
|
||||
*.............................................................................
|
||||
*/
|
||||
|
||||
/* @file plustek-pp_p48xx.c
|
||||
* @brief here we have all functionality according to the ASIC96001/3 based
|
||||
* models.
|
||||
*.............................................................................
|
||||
*
|
||||
* based on sources acquired from Plustek Inc.
|
||||
* Copyright (C) 1998 Plustek Inc.
|
||||
* Copyright (C) 2000-2004 Gerhard Jaeger <gerhard@gjaeger.de>
|
||||
* also based on the work done by Rick Bronson
|
||||
*.............................................................................
|
||||
*
|
||||
* History:
|
||||
* - 0.30 - initial version
|
||||
* - 0.31 - fixed a bug for the return value in p48xxDoTest
|
||||
|
@ -40,6 +34,7 @@
|
|||
* - 0.40 - disabled A3I stuff
|
||||
* - 0.41 - no changes
|
||||
* - 0.42 - changed include names
|
||||
* - 0.43 - no changes
|
||||
* .
|
||||
* <hr>
|
||||
* This file is part of the SANE package.
|
||||
|
|
|
@ -1,8 +1,3 @@
|
|||
/*.............................................................................
|
||||
* Project : SANE library for Plustek parallelport flatbed scanners.
|
||||
*.............................................................................
|
||||
*/
|
||||
|
||||
/* @file plustek-pp_p9636.c
|
||||
* @brief here we have all functionality according to the p9636t
|
||||
*
|
||||
|
@ -36,6 +31,7 @@
|
|||
* - 0.40 - no changes
|
||||
* - 0.41 - no changes
|
||||
* - 0.42 - changed include names
|
||||
* - 0.43 - no changes
|
||||
* .
|
||||
* <hr>
|
||||
* This file is part of the SANE package.
|
||||
|
|
|
@ -1,8 +1,3 @@
|
|||
/*.............................................................................
|
||||
* Project : SANE library for Plustek parallelport flatbed scanners.
|
||||
*.............................................................................
|
||||
*/
|
||||
|
||||
/* @file plustek-pp_procfs.c
|
||||
* @brief this is the interface to the proc filesystem
|
||||
*
|
||||
|
@ -15,6 +10,8 @@
|
|||
* - 0.40 - no changes
|
||||
* - 0.41 - no changes
|
||||
* - 0.42 - changed include names
|
||||
* - 0.43 - replace _PTDRV_VERx by _PTDRV_VERSTR
|
||||
* - cleanup
|
||||
* .
|
||||
* <hr>
|
||||
* This file is part of the SANE package.
|
||||
|
@ -66,15 +63,14 @@
|
|||
|
||||
/****************************** static vars **********************************/
|
||||
|
||||
/*
|
||||
* for the proc filesystem
|
||||
/** for the proc filesystem
|
||||
*/
|
||||
extern struct proc_dir_entry proc_root;
|
||||
static struct proc_dir_entry *base = NULL;
|
||||
static struct proc_dir_entry *binfo = NULL;
|
||||
static ULong devcount;
|
||||
|
||||
/* parallel port modes... */
|
||||
/** parallel port modes... */
|
||||
static char *procfsPortModes[] = {
|
||||
"EPP",
|
||||
"SPP",
|
||||
|
@ -84,7 +80,7 @@ static char *procfsPortModes[] = {
|
|||
NULL
|
||||
};
|
||||
|
||||
/* CCD-Types (as for ASIC 98001 based series) */
|
||||
/** CCD-Types (as for ASIC 98001 based series) */
|
||||
static TabDef procfsCCDTypes98001[] = {
|
||||
|
||||
{ _CCD_3797, "3797" },
|
||||
|
@ -96,7 +92,7 @@ static TabDef procfsCCDTypes98001[] = {
|
|||
{ -1 , "unknown" }
|
||||
};
|
||||
|
||||
/* CCD-Types (as for ASIC 98003 based series) */
|
||||
/** CCD-Types (as for ASIC 98003 based series) */
|
||||
static TabDef procfsCCDTypes98003[] = {
|
||||
|
||||
{ _CCD_3797, "3797" },
|
||||
|
@ -110,12 +106,10 @@ static TabDef procfsCCDTypes98003[] = {
|
|||
{ -1 , "unknown" }
|
||||
};
|
||||
|
||||
|
||||
/****************************** local functions ******************************/
|
||||
|
||||
#ifndef LINUX_24
|
||||
/*.............................................................................
|
||||
* This is called as the fill_inode function when an inode
|
||||
/** This is called as the fill_inode function when an inode
|
||||
* is going into (fill = 1) or out of service (fill = 0).
|
||||
*
|
||||
* Note: only the top-level directory needs to do this; if
|
||||
|
@ -128,8 +122,7 @@ static void procfsFillFunc( struct inode *inode, int fill )
|
|||
}
|
||||
#endif
|
||||
|
||||
/*.............................................................................
|
||||
* returns a pointer to the port-mode string
|
||||
/** returns a pointer to the port-mode string
|
||||
*/
|
||||
static const char* procfsGetMode( int mode )
|
||||
{
|
||||
|
@ -139,14 +132,13 @@ static const char* procfsGetMode( int mode )
|
|||
return procfsPortModes[mode];
|
||||
}
|
||||
|
||||
/*.............................................................................
|
||||
* determines CCD-Type string
|
||||
/** determines CCD-Type string
|
||||
*/
|
||||
static const char* procfsGetCCDType( pScanData ps )
|
||||
{
|
||||
int i;
|
||||
int ccd_id = ps->Device.bCCDID;
|
||||
pTabDef tab = procfsCCDTypes98001;
|
||||
int i;
|
||||
int ccd_id = ps->Device.bCCDID;
|
||||
pTabDef tab = procfsCCDTypes98001;
|
||||
|
||||
if( _IS_ASIC98(ps->sCaps.AsicID)) {
|
||||
|
||||
|
@ -168,33 +160,30 @@ static const char* procfsGetCCDType( pScanData ps )
|
|||
return "NEC/TOSHIBA Type";
|
||||
}
|
||||
|
||||
/* return the last entry if nothing applies! */
|
||||
return tab[(sizeof(procfsCCDTypes98001)/sizeof(TabDef)-1)].desc;
|
||||
/* return the last entry if nothing applies! */
|
||||
return tab[(sizeof(procfsCCDTypes98001)/sizeof(TabDef)-1)].desc;
|
||||
}
|
||||
|
||||
/*.............................................................................
|
||||
* will be called when reading the proc filesystem:
|
||||
/** will be called when reading the proc filesystem:
|
||||
* cat /proc/pt_drv/info
|
||||
*/
|
||||
static int procfsBInfoReadProc( char *buf, char **start, off_t offset,
|
||||
int count, int *eof, void *data )
|
||||
int count, int *eof, void *data )
|
||||
{
|
||||
int len = 0;
|
||||
|
||||
len += sprintf( buf, "Plustek Flatbed Scanner Driver version %d.%d-%d\n",
|
||||
_PTDRV_V1, _PTDRV_V0, _PTDRV_BUILD );
|
||||
len += sprintf( buf, "Plustek Flatbed Scanner Driver version "_PTDRV_VERSTR"\n" );
|
||||
|
||||
len += sprintf( buf + len, "Devices : %lu\n", *((pULong)data) );
|
||||
len += sprintf( buf + len, "IOCTL-Version: 0x%08x\n", _PTDRV_IOCTL_VERSION );
|
||||
len += sprintf( buf + len, "IOCTL-Version: 0x%08x\n",_PTDRV_IOCTL_VERSION);
|
||||
return len;
|
||||
}
|
||||
|
||||
/*.............................................................................
|
||||
* will be called when reading the proc filesystem:
|
||||
/** will be called when reading the proc filesystem:
|
||||
* cat /proc/pt_drv/deviceX/info
|
||||
*/
|
||||
static int procfsInfoReadProc( char *buf, char **start, off_t offset,
|
||||
int count, int *eof, void *data )
|
||||
int count, int *eof, void *data )
|
||||
{
|
||||
int len = 0;
|
||||
pScanData ps = (pScanData)data;
|
||||
|
@ -221,12 +210,11 @@ static int procfsInfoReadProc( char *buf, char **start, off_t offset,
|
|||
return len;
|
||||
}
|
||||
|
||||
/*.............................................................................
|
||||
* will be called when reading the proc filesystem:
|
||||
/** will be called when reading the proc filesystem:
|
||||
* cat /proc/pt_drv/devicex/buttony
|
||||
*/
|
||||
static int procfsButtonsReadProc( char *buf, char **start, off_t offset,
|
||||
int count, int *eof, void *data )
|
||||
int count, int *eof, void *data )
|
||||
{
|
||||
Byte b;
|
||||
int bc = 0;
|
||||
|
@ -236,7 +224,7 @@ static int procfsButtonsReadProc( char *buf, char **start, off_t offset,
|
|||
if( NULL != ps ) {
|
||||
bc = ps->Device.buttons;
|
||||
}
|
||||
|
||||
|
||||
/* Check the buttons... */
|
||||
if( 0 != bc ) {
|
||||
|
||||
|
@ -259,11 +247,10 @@ static int procfsButtonsReadProc( char *buf, char **start, off_t offset,
|
|||
return len;
|
||||
}
|
||||
|
||||
/*.............................................................................
|
||||
* create a procfs entry
|
||||
/** create a procfs entry
|
||||
*/
|
||||
static struct proc_dir_entry *new_entry( const char *name, mode_t mode,
|
||||
struct proc_dir_entry *parent )
|
||||
struct proc_dir_entry *parent )
|
||||
{
|
||||
#ifndef LINUX_24
|
||||
int len;
|
||||
|
@ -310,11 +297,10 @@ static struct proc_dir_entry *new_entry( const char *name, mode_t mode,
|
|||
return ent;
|
||||
}
|
||||
|
||||
/*.............................................................................
|
||||
* shutdown one proc fs entry
|
||||
/** shutdown one proc fs entry
|
||||
*/
|
||||
static inline void destroy_proc_entry( struct proc_dir_entry *root,
|
||||
struct proc_dir_entry **d )
|
||||
struct proc_dir_entry **d )
|
||||
{
|
||||
#ifndef LINUX_24
|
||||
proc_unregister( root, (*d)->low_ino );
|
||||
|
@ -328,8 +314,7 @@ static inline void destroy_proc_entry( struct proc_dir_entry *root,
|
|||
*d = NULL;
|
||||
}
|
||||
|
||||
/*.............................................................................
|
||||
* shutdown the proc-tree for one device
|
||||
/** shutdown the proc-tree for one device
|
||||
*/
|
||||
static void destroy_proc_tree( pScanData ps )
|
||||
{
|
||||
|
@ -357,8 +342,7 @@ static void destroy_proc_tree( pScanData ps )
|
|||
|
||||
/*************************** exported functions ******************************/
|
||||
|
||||
/*.............................................................................
|
||||
* initialize our proc-fs stuff
|
||||
/** initialize our proc-fs stuff
|
||||
*/
|
||||
int ProcFsInitialize( void )
|
||||
{
|
||||
|
@ -380,8 +364,7 @@ int ProcFsInitialize( void )
|
|||
return _OK;
|
||||
}
|
||||
|
||||
/*.............................................................................
|
||||
* cleanup the base entry
|
||||
/** cleanup the base entry
|
||||
*/
|
||||
void ProcFsShutdown( void )
|
||||
{
|
||||
|
@ -398,8 +381,7 @@ void ProcFsShutdown( void )
|
|||
devcount = 0;
|
||||
}
|
||||
|
||||
/*.............................................................................
|
||||
* will be called for each device, that has been found
|
||||
/** will be called for each device, that has been found
|
||||
*/
|
||||
void ProcFsRegisterDevice( pScanData ps )
|
||||
{
|
||||
|
@ -448,8 +430,7 @@ error_exit:
|
|||
destroy_proc_tree( ps );
|
||||
}
|
||||
|
||||
/*.............................................................................
|
||||
* cleanup the proc-fs for a certain device
|
||||
/** cleanup the proc-fs for a certain device
|
||||
*/
|
||||
void ProcFsUnregisterDevice( pScanData ps )
|
||||
{
|
||||
|
@ -477,6 +458,6 @@ void ProcFsUnregisterDevice( pScanData ps )
|
|||
|
||||
#endif
|
||||
|
||||
#endif /* guard __KERNEL__ */
|
||||
#endif /* guard __KERNEL__ */
|
||||
|
||||
/* END PLUSTEK-PP_PROCFS.C ..................................................*/
|
||||
|
|
|
@ -1,15 +1,11 @@
|
|||
/*.............................................................................
|
||||
* Project : linux driver for Plustek parallel-port scanners
|
||||
*.............................................................................
|
||||
* File: plustek-pp_procs.h
|
||||
* here are the prototypes of all exported functions
|
||||
*.............................................................................
|
||||
/** @file plustek-pp_procs.h
|
||||
* @brief here are the prototypes of all exported functions
|
||||
*
|
||||
* based on sources acquired from Plustek Inc.
|
||||
* Copyright (C) 1998 Plustek Inc.
|
||||
* Copyright (C) 2000-2004 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
|
||||
|
@ -32,6 +28,7 @@
|
|||
* 0.40 - no changes
|
||||
* 0.41 - no changes
|
||||
* 0.42 - added MapAdjust
|
||||
* 0.43 - no changes
|
||||
* .
|
||||
* <hr>
|
||||
* This file is part of the SANE package.
|
||||
|
@ -249,8 +246,8 @@ _LOC void ScaleX( pScanData ps, pUChar inBuf, pUChar outBuf );
|
|||
* implementation in plustek-pp_procfs.c (Kernel-mode only)
|
||||
*/
|
||||
#ifdef __KERNEL__
|
||||
int ProcFsInitialize ( void );
|
||||
void ProcFsShutdown ( void );
|
||||
int ProcFsInitialize ( void );
|
||||
void ProcFsShutdown ( void );
|
||||
void ProcFsRegisterDevice ( pScanData ps );
|
||||
void ProcFsUnregisterDevice( pScanData ps );
|
||||
#endif
|
||||
|
|
|
@ -1,8 +1,3 @@
|
|||
/*.............................................................................
|
||||
* Project : SANE library for Plustek parallelport flatbed scanners.
|
||||
*.............................................................................
|
||||
*/
|
||||
|
||||
/* @file plustek-pp_ptdrv.c
|
||||
* @brief this is the driver interface
|
||||
*
|
||||
|
@ -54,8 +49,9 @@
|
|||
* - changed ioctl call to PutImage
|
||||
* - 0.42 - added _PTDRV_SETMAP functionality
|
||||
* - improved the cancel functionality
|
||||
* - added LINUX_26 stuff
|
||||
* - 0.43 - added LINUX_26 stuff
|
||||
* - changed include names
|
||||
* - changed version string stuff
|
||||
* .
|
||||
* <hr>
|
||||
* This file is part of the SANE package.
|
||||
|
@ -99,12 +95,13 @@
|
|||
*/
|
||||
#ifdef __KERNEL__
|
||||
# include <linux/module.h>
|
||||
# include <linux/version.h>
|
||||
|
||||
# ifdef CONFIG_DEVFS_FS
|
||||
# ifdef LINUX_26
|
||||
# error "DEVFS not supported for this kernel-version"
|
||||
# endif
|
||||
# include <linux/devfs_fs_kernel.h>
|
||||
# if (LINUX_VERSION_CODE > KERNEL_VERSION(2,5,69))
|
||||
# define DEVFS_26_STYLE
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
|
||||
|
@ -151,8 +148,8 @@ static UShort forceMode[_MAX_PTDEVS] = { 0, 0, 0, 0 };
|
|||
|
||||
#endif
|
||||
|
||||
/* timers for warmup checks */
|
||||
static TimerDef toTimer[_MAX_PTDEVS];
|
||||
/* timers for warmup checks */
|
||||
static TimerDef toTimer[_MAX_PTDEVS];
|
||||
|
||||
#ifndef __KERNEL__
|
||||
static Bool PtDrvInitialized = _FALSE;
|
||||
|
@ -167,8 +164,7 @@ static struct timer_list tl[_MAX_PTDEVS];
|
|||
/* for calculation of the timer expiration */
|
||||
extern volatile ULong jiffies;
|
||||
|
||||
/*
|
||||
* the parameter interface
|
||||
/* the parameter interface
|
||||
*/
|
||||
#if ((LINUX_VERSION_CODE > 0x020111) && defined(MODULE))
|
||||
MODULE_AUTHOR("Gerhard Jaeger <gerhard@gjaeger.de>");
|
||||
|
@ -202,7 +198,7 @@ MODULE_PARM_DESC(forceMode, "0 = use auto detection, "
|
|||
"1 = use SPP mode, 2 = use EPP mode");
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_DEVFS_FS
|
||||
#if (defined(CONFIG_DEVFS_FS) && !defined(DEVFS_26_STYLE))
|
||||
static devfs_handle_t devfs_handle = NULL;
|
||||
#endif
|
||||
|
||||
|
@ -1328,7 +1324,7 @@ static int ptdrvRead( pScanData ps, pUChar buffer, int count )
|
|||
}
|
||||
|
||||
/* if we have to do some scaling, we need another buffer... */
|
||||
if( ps->DataInf.XYRatio > 1.0 ) {
|
||||
if( ps->DataInf.XYRatio > 1000 ) {
|
||||
|
||||
scaleBuf = _KALLOC( ps->DataInf.dwAppPhyBytesPerLine, GFP_KERNEL);
|
||||
if ( NULL == scaleBuf ) {
|
||||
|
@ -1559,14 +1555,14 @@ int init_module( void )
|
|||
UInt i;
|
||||
int retval = _OK;
|
||||
int result = _OK;
|
||||
#ifdef CONFIG_DEVFS_FS
|
||||
#if (defined(CONFIG_DEVFS_FS) && !defined(DEVFS_26_STYLE))
|
||||
char controlname[24];
|
||||
#endif
|
||||
|
||||
DBG( DBG_HIGH, "*********************************************\n" );
|
||||
DBG( DBG_HIGH, "pt_drv: init_module()\n" );
|
||||
|
||||
#ifdef CONFIG_DEVFS_FS
|
||||
#if (defined(CONFIG_DEVFS_FS) && !defined(DEVFS_26_STYLE))
|
||||
devfs_handle = devfs_mk_dir(NULL, "scanner", NULL);
|
||||
if( devfs_register_chrdev(_PTDRV_MAJOR, _DRV_NAME, &pt_drv_fops)) {
|
||||
#else
|
||||
|
@ -1577,15 +1573,12 @@ int init_module( void )
|
|||
_PTDRV_MAJOR);
|
||||
return -EIO;
|
||||
}
|
||||
printk( KERN_INFO "pt_drv : driver version "_PTDRV_VERSTR"\n" );
|
||||
|
||||
printk( KERN_INFO "pt_drv : driver version %d.%d-%d\n",
|
||||
_PTDRV_V1, _PTDRV_V0, _PTDRV_BUILD );
|
||||
|
||||
/* register for proc_fs */
|
||||
/* register the proc_fs */
|
||||
ProcFsInitialize();
|
||||
|
||||
/*
|
||||
* go through the list of defined ports and try to find a device
|
||||
/* go through the list of defined ports and try to find a device
|
||||
*/
|
||||
devCount = 0;
|
||||
for( i = 0; i < _MAX_PTDEVS; i++ ) {
|
||||
|
@ -1597,11 +1590,17 @@ int init_module( void )
|
|||
PtDrvDevices[i]->flags |= _PTDRV_INITALIZED;
|
||||
|
||||
#ifdef CONFIG_DEVFS_FS
|
||||
# ifndef DEVFS_26_STYLE
|
||||
sprintf( controlname, "scanner/pt_drv%d", devCount );
|
||||
devfs_register( NULL, controlname,
|
||||
DEVFS_FL_DEFAULT, _PTDRV_MAJOR, 0,
|
||||
(S_IFCHR | S_IRUGO | S_IWUGO | S_IFCHR),
|
||||
&pt_drv_fops, NULL );
|
||||
# else /* DEVFS_26_STYLE */
|
||||
devfs_mk_cdev(MKDEV(_PTDRV_MAJOR, devCount),
|
||||
(S_IFCHR | S_IRUGO | S_IWUGO | S_IFCHR),
|
||||
"scanner/pt_drv%d", devCount);
|
||||
# endif
|
||||
#endif
|
||||
|
||||
ProcFsRegisterDevice( PtDrvDevices[i] );
|
||||
|
@ -1619,7 +1618,7 @@ int init_module( void )
|
|||
*/
|
||||
if( devCount == 0 ) {
|
||||
|
||||
#ifdef CONFIG_DEVFS_FS
|
||||
#if (defined(CONFIG_DEVFS_FS) && !defined(DEVFS_26_STYLE))
|
||||
devfs_unregister_chrdev( _PTDRV_MAJOR, _DRV_NAME );
|
||||
#else
|
||||
unregister_chrdev( _PTDRV_MAJOR, _DRV_NAME );
|
||||
|
@ -1652,7 +1651,7 @@ void cleanup_module( void )
|
|||
{
|
||||
UInt i;
|
||||
pScanData ps;
|
||||
#ifdef CONFIG_DEVFS_FS
|
||||
#if (defined(CONFIG_DEVFS_FS) && !defined(DEVFS_26_STYLE))
|
||||
char controlname[24];
|
||||
devfs_handle_t master;
|
||||
#endif
|
||||
|
@ -1666,17 +1665,21 @@ void cleanup_module( void )
|
|||
|
||||
if ( NULL != ps ) {
|
||||
#ifdef CONFIG_DEVFS_FS
|
||||
# ifndef DEVFS_26_STYLE
|
||||
sprintf( controlname, "scanner/pt_drv%d", i );
|
||||
master = devfs_find_handle( NULL,controlname, 0, 0,
|
||||
DEVFS_SPECIAL_CHR, 0 );
|
||||
devfs_unregister( master );
|
||||
# else
|
||||
devfs_remove("scanner/pt_drv%d", i);
|
||||
# endif
|
||||
#endif
|
||||
ptdrvShutdown( ps );
|
||||
ProcFsUnregisterDevice( ps );
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef CONFIG_DEVFS_FS
|
||||
#if (defined(CONFIG_DEVFS_FS) && !defined(DEVFS_26_STYLE))
|
||||
devfs_unregister_chrdev( _PTDRV_MAJOR, _DRV_NAME );
|
||||
#else
|
||||
unregister_chrdev( _PTDRV_MAJOR, _DRV_NAME );
|
||||
|
|
|
@ -1,8 +1,3 @@
|
|||
/*.............................................................................
|
||||
* Project : SANE library for Plustek parallelport flatbed scanners.
|
||||
*.............................................................................
|
||||
*/
|
||||
|
||||
/* @file plustek-pp_scale.c
|
||||
* @brief Scaling functionality
|
||||
*
|
||||
|
@ -20,6 +15,7 @@
|
|||
* - 0.40 - no changes
|
||||
* - 0.41 - no changes
|
||||
* - 0.42 - changed include names
|
||||
* - 0.43 - cleanup, removed floating point stuff
|
||||
* .
|
||||
* <hr>
|
||||
* This file is part of the SANE package.
|
||||
|
@ -81,35 +77,33 @@ _LOC void ScaleX( pScanData ps, pUChar inBuf, pUChar outBuf )
|
|||
#endif
|
||||
|
||||
/* scale... */
|
||||
izoom = (int)(1.0/ps->DataInf.XYRatio * 1000);
|
||||
izoom = (int)(1000000/ps->DataInf.XYRatio);
|
||||
|
||||
switch( ps->DataInf.wAppDataType ) {
|
||||
|
||||
case COLOR_BW : step = 0; break;
|
||||
case COLOR_HALFTONE: step = 0; break;
|
||||
case COLOR_256GRAY : step = 1; break;
|
||||
case COLOR_TRUE24 : step = 3; break; /*NOTE: COLOR_TRUE32 is the same !*/
|
||||
case COLOR_TRUE24 : step = 3; break; /*NOTE: COLOR_TRUE32 is the same !*/
|
||||
case COLOR_TRUE48 : step = 6; break;
|
||||
default : step = 99; break;
|
||||
default : step = 99; break;
|
||||
}
|
||||
|
||||
/*
|
||||
* when not supported, only copy the data
|
||||
/* when not supported, only copy the data
|
||||
*/
|
||||
if( 99 == step ) {
|
||||
memcpy( outBuf, inBuf, ps->DataInf.dwAppBytesPerLine );
|
||||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
* now scale...
|
||||
/* now scale...
|
||||
*/
|
||||
ddax = 0;
|
||||
x = 0;
|
||||
if( 0 == step ) {
|
||||
/*
|
||||
* binary scaling
|
||||
|
||||
/* binary scaling
|
||||
*/
|
||||
ddax = 0;
|
||||
x = 0;
|
||||
memset( outBuf, 0, ps->DataInf.dwAppBytesPerLine );
|
||||
|
||||
for( i = 0; i < ps->DataInf.dwPhysBytesPerLine*8; i++ ) {
|
||||
|
@ -131,11 +125,8 @@ _LOC void ScaleX( pScanData ps, pUChar inBuf, pUChar outBuf )
|
|||
|
||||
} else {
|
||||
|
||||
/*
|
||||
* color and gray scaling
|
||||
/* color and gray scaling
|
||||
*/
|
||||
ddax = 0;
|
||||
x = 0;
|
||||
for( i = 0; i < ps->DataInf.dwPhysBytesPerLine*step; i+=step ) {
|
||||
|
||||
ddax -= 1000;
|
||||
|
|
|
@ -1,11 +1,8 @@
|
|||
/*.............................................................................
|
||||
* Project : linux driver for Plustek parallel-port scanners
|
||||
*.............................................................................
|
||||
* File: plustek-pp_scan.h - the global header for the plustek driver
|
||||
*.............................................................................
|
||||
/* @file plustek-pp_scan.h
|
||||
* @brief the global header for the plustek driver
|
||||
*
|
||||
* Copyright (C) 2000-2004 Gerhard Jaeger <gerhard@gjaeger.de>
|
||||
*.............................................................................
|
||||
*
|
||||
* History:
|
||||
* 0.30 - initial version
|
||||
* 0.31 - no changes
|
||||
|
@ -22,6 +19,7 @@
|
|||
* 0.40 - no changes
|
||||
* 0.41 - no changes
|
||||
* 0.42 - changed include names
|
||||
* 0.43 - no changes
|
||||
* .
|
||||
* <hr>
|
||||
* This file is part of the SANE package.
|
||||
|
|
|
@ -1,9 +1,6 @@
|
|||
/*.............................................................................
|
||||
* 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
|
||||
*.............................................................................
|
||||
/* @file plustek-pp_scandata.h
|
||||
* @brief here we define the ScanData structure...
|
||||
* and a lot of register settings
|
||||
*
|
||||
* based on sources acquired from Plustek Inc.
|
||||
* Copyright (C) 1998 Plustek Inc.
|
||||
|
@ -14,39 +11,41 @@
|
|||
* 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
|
||||
* - removed function FillDataToColorTable from struct ScanData
|
||||
* - removed dwLampDelay from struct ScanData
|
||||
* 0.33 - cosmetic changes
|
||||
* - removed PositionLamp from structure
|
||||
* - added dwLastPortMode to struct ScanData
|
||||
* - removed PositionLamp from structure
|
||||
* - added dwLastPortMode to struct ScanData
|
||||
* 0.34 - removed WaitBack() function from pScanData structure
|
||||
* removed wStayMaxStep from pScanData structure
|
||||
* - removed wStayMaxStep from pScanData structure
|
||||
* 0.35 - removed SetInitialGainRAM from pScanData structure
|
||||
* changed ModelStr list
|
||||
* - 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
|
||||
* - 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
|
||||
* - 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
|
||||
* - 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
|
||||
* - 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
|
||||
* - added f97003, b97003DarkR, b97003DarkB, b97003DarkG to struct
|
||||
* 0.40 - no changes
|
||||
* 0.41 - no changes
|
||||
* 0.42 - no changes
|
||||
* 0.43 - changed type of XYRatio from double to long
|
||||
* - cleanup
|
||||
* .
|
||||
* <hr>
|
||||
* This file is part of the SANE package.
|
||||
|
@ -127,10 +126,9 @@ typedef struct {
|
|||
|
||||
short siBrightness;
|
||||
|
||||
/*
|
||||
* CHANGE added these vars for scaling
|
||||
/* CHANGE added these vars for scaling
|
||||
*/
|
||||
double XYRatio;
|
||||
long XYRatio;
|
||||
ULong dwPhysBytesPerLine;
|
||||
|
||||
/*
|
||||
|
|
|
@ -1,13 +1,9 @@
|
|||
/*.............................................................................
|
||||
* Project : linux driver for Plustek parallel-port scanners
|
||||
*.............................................................................
|
||||
* File: plustek-pp_sysdep.h
|
||||
* a trial to centralize changes between the different
|
||||
* kernel-versions some stuff is maybe not relevant, but anyway...
|
||||
*.............................................................................
|
||||
/* @file plustek-pp_sysdep.h
|
||||
* @brief a trial to centralize changes between the different
|
||||
* kernel-versions some stuff is maybe not relevant, but anyway...
|
||||
*
|
||||
* Copyright (C) 2000-2004 Gerhard Jaeger <gerhard@gjaeger.de>
|
||||
*.............................................................................
|
||||
*
|
||||
* History:
|
||||
* 0.30 - initial version
|
||||
* 0.38 - added this header
|
||||
|
@ -17,6 +13,7 @@
|
|||
* 0.42 - added _GET_TIME
|
||||
* - added LINUX_26 for new kernel
|
||||
* - added _MINOR
|
||||
* 0.43 - no changes
|
||||
* .
|
||||
* <hr>
|
||||
* This file is part of the SANE package.
|
||||
|
|
|
@ -1,8 +1,3 @@
|
|||
/*.............................................................................
|
||||
* Project : SANE library for Plustek parallelport flatbed scanners.
|
||||
*.............................................................................
|
||||
*/
|
||||
|
||||
/* @file plustek-pp_tpa.c
|
||||
* @brief Here we find some adjustments according to the scan source.
|
||||
* This file is ASIC P9800x specific
|
||||
|
@ -27,6 +22,7 @@
|
|||
* - 0.40 - no changes
|
||||
* - 0.41 - no changes
|
||||
* - 0.42 - changed include names
|
||||
* - 0.43 - no changes
|
||||
* .
|
||||
* <hr>
|
||||
* This file is part of the SANE package.
|
||||
|
|
|
@ -1,11 +1,8 @@
|
|||
/*.............................................................................
|
||||
* Project : linux driver for Plustek parallel-port scanners
|
||||
*.............................................................................
|
||||
* File: plustek-pp_types.h - some typedefs and error codes
|
||||
*.............................................................................
|
||||
/* @file plustek-pp_types.h
|
||||
* @brief some typedefs and error codes
|
||||
*
|
||||
* Copyright (C) 2000-2004 Gerhard Jaeger <gerhard@gjaeger.de>
|
||||
*.............................................................................
|
||||
*
|
||||
* History:
|
||||
* 0.30 - initial version
|
||||
* 0.31 - no changes
|
||||
|
@ -26,6 +23,7 @@
|
|||
* 0.40 - moved _VAR_NOT_USED and TabDef to plustek-share.h
|
||||
* 0.41 - no changes
|
||||
* 0.42 - moved errorcodes to plustek-share.h
|
||||
* 0.43 - no changes
|
||||
* .
|
||||
* <hr>
|
||||
* This file is part of the SANE package.
|
||||
|
|
|
@ -1,8 +1,3 @@
|
|||
/*.............................................................................
|
||||
* Project : SANE library for Plustek flatbed scanners.
|
||||
*.............................................................................
|
||||
*/
|
||||
|
||||
/** @file plustek-pp_wrapper.c
|
||||
* @brief The interface to the parport driver-code and the kernel module.
|
||||
*
|
||||
|
@ -14,10 +9,8 @@
|
|||
* - 0.41 - added _PTDRV_ADJUST call
|
||||
* - 0.42 - added setmap function
|
||||
* - fixed the stopscan problem, that causes a crash in the kernel module
|
||||
* - 0.43 - no changes
|
||||
* - 0.44 - added initialized setting
|
||||
* - 0.45 - no changes
|
||||
* - 0.46 - cleanup
|
||||
* - 0.43 - added initialized setting
|
||||
* - cleanup
|
||||
* .
|
||||
* <hr>
|
||||
* This file is part of the SANE package.
|
||||
|
@ -314,7 +307,7 @@ static int ppDev_setMap( Plustek_Device *dev, SANE_Word *map,
|
|||
|
||||
if( map[i] > 0xFF )
|
||||
buf[i] = 0xFF;
|
||||
}
|
||||
}
|
||||
|
||||
m.map = buf;
|
||||
|
||||
|
@ -349,7 +342,7 @@ static int ppDev_stopScan( Plustek_Device *dev, int *mode )
|
|||
else
|
||||
ioctl( dev->fd, _PTDRV_CLOSE_DEVICE, 0);
|
||||
}else
|
||||
sleep( 1 );
|
||||
sleep( 1 );
|
||||
|
||||
return retval;
|
||||
}
|
||||
|
|
|
@ -1,8 +1,3 @@
|
|||
/*.............................................................................
|
||||
* Project : SANE library for Plustek parallelport flatbed scanners.
|
||||
*.............................................................................
|
||||
*/
|
||||
|
||||
/** @file plustek_pp.c
|
||||
* @brief SANE backend for Plustek parallelport scanner
|
||||
*
|
||||
|
@ -15,6 +10,7 @@
|
|||
*
|
||||
* History:
|
||||
* - 0.01 - initial version, imported from the kernel-module 0.42-11
|
||||
* - 0.43 - bumped up version to reflect the former module code version
|
||||
*.
|
||||
* <hr>
|
||||
* This file is part of the SANE package.
|
||||
|
@ -62,7 +58,7 @@
|
|||
*/
|
||||
|
||||
#ifdef _AIX
|
||||
# include "../include/lalloca.h" /* MUST come first for AIX! */
|
||||
# include "../include/lalloca.h" /* MUST come first for AIX! */
|
||||
#endif
|
||||
|
||||
#include "../include/sane/config.h"
|
||||
|
@ -87,7 +83,7 @@
|
|||
#include "../include/sane/sanei.h"
|
||||
#include "../include/sane/saneopts.h"
|
||||
|
||||
#define BACKEND_VERSION "0.01-9"
|
||||
#define BACKEND_VERSION "0.43-4"
|
||||
#define BACKEND_NAME plustek_pp
|
||||
#include "../include/sane/sanei_backend.h"
|
||||
#include "../include/sane/sanei_config.h"
|
||||
|
@ -123,10 +119,6 @@ MODELSTR;
|
|||
# define DEBUG
|
||||
#endif
|
||||
|
||||
/* needed to statisfy the module code ... */
|
||||
#define _PTDRV_V0 0
|
||||
#define _PTDRV_V1 44
|
||||
|
||||
/* I know this is in general no good idea, but it works */
|
||||
# include "plustek-pp_io.c"
|
||||
# include "plustek-pp_dac.c"
|
||||
|
@ -628,14 +620,14 @@ static SANE_Status initGammaSettings( Plustek_Scanner *s )
|
|||
static void checkGammaSettings( Plustek_Scanner *s )
|
||||
{
|
||||
int i, j;
|
||||
|
||||
for( i = 0; i < 4 ; i++ ) {
|
||||
|
||||
for( i = 0; i < 4 ; i++ ) {
|
||||
for( j = 0; j < s->gamma_length; j++ ) {
|
||||
if( s->gamma_table[i][j] > s->gamma_range.max ) {
|
||||
s->gamma_table[i][j] = s->gamma_range.max;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/** initialize the options for the backend according to the device we have
|
||||
|
@ -649,7 +641,7 @@ static SANE_Status init_options( Plustek_Scanner *s )
|
|||
for( i = 0; i < NUM_OPTIONS; ++i ) {
|
||||
s->opt[i].size = sizeof (SANE_Word);
|
||||
s->opt[i].cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT;
|
||||
}
|
||||
}
|
||||
|
||||
s->opt[OPT_NUM_OPTS].name = SANE_NAME_NUM_OPTIONS;
|
||||
s->opt[OPT_NUM_OPTS].title = SANE_TITLE_NUM_OPTIONS;
|
||||
|
@ -676,12 +668,12 @@ static SANE_Status init_options( Plustek_Scanner *s )
|
|||
s->opt[OPT_MODE].constraint_type = SANE_CONSTRAINT_STRING_LIST;
|
||||
|
||||
if((_ASIC_IS_98001 == s->hw->caps.AsicID) ||
|
||||
(_ASIC_IS_98003 == s->hw->caps.AsicID)) {
|
||||
(_ASIC_IS_98003 == s->hw->caps.AsicID)) {
|
||||
s->opt[OPT_MODE].constraint.string_list = mode_9800x_list;
|
||||
} else {
|
||||
s->opt[OPT_MODE].constraint.string_list = mode_list;
|
||||
}
|
||||
s->val[OPT_MODE].w = 3; /* Color */
|
||||
s->val[OPT_MODE].w = 3; /* Color */
|
||||
|
||||
/* scan source */
|
||||
s->opt[OPT_EXT_MODE].name = SANE_NAME_SCAN_SOURCE;
|
||||
|
@ -1066,23 +1058,20 @@ static SANE_Status attach( const char *dev_name, pCnfDef cnf,
|
|||
DBG( _DBG_ERROR, "failed to find Plustek scanner\n" );
|
||||
dev->close(dev);
|
||||
return SANE_STATUS_INVAL;
|
||||
}
|
||||
}
|
||||
|
||||
/* save the info we got from the driver */
|
||||
DBG( _DBG_INFO, "Scanner information:\n" );
|
||||
if( dev->caps.Model < MODEL_UNKNOWN ) {
|
||||
|
||||
dev->sane.model = ModelStr[dev->caps.Model];
|
||||
} else {
|
||||
|
||||
dev->sane.model = ModelStr[0];
|
||||
}
|
||||
|
||||
DBG( _DBG_INFO, "Vendor : %s\n", dev->sane.vendor );
|
||||
DBG( _DBG_INFO, "Model : %s\n", dev->sane.model );
|
||||
dev->sane.model = ModelStr[dev->caps.Model];
|
||||
} else {
|
||||
dev->sane.model = ModelStr[0];
|
||||
}
|
||||
|
||||
DBG( _DBG_INFO, "Vendor : %s\n", dev->sane.vendor );
|
||||
DBG( _DBG_INFO, "Model : %s\n", dev->sane.model );
|
||||
DBG( _DBG_INFO, "Asic : 0x%02x\n", dev->caps.AsicID );
|
||||
DBG( _DBG_INFO, "Flags : 0x%08lx\n", dev->caps.dwFlag );
|
||||
DBG( _DBG_INFO, "Version: 0x%08x\n", dev->caps.Version );
|
||||
|
||||
dev->max_x = dev->caps.wMaxExtentX*MM_PER_INCH/_MEASURE_BASE;
|
||||
dev->max_y = dev->caps.wMaxExtentY*MM_PER_INCH/_MEASURE_BASE;
|
||||
|
@ -1096,7 +1085,7 @@ static SANE_Status attach( const char *dev_name, pCnfDef cnf,
|
|||
return SANE_STATUS_INVAL;
|
||||
}
|
||||
|
||||
/* build up the resolution table */
|
||||
/* build up the resolution table */
|
||||
dev->res_list_size = 0;
|
||||
for( cntr = _DEF_DPI; cntr <= lens.rDpiX.wMax; cntr += 25 ) {
|
||||
dev->res_list_size++;
|
||||
|
@ -1115,7 +1104,7 @@ static SANE_Status attach( const char *dev_name, pCnfDef cnf,
|
|||
first_dev = dev;
|
||||
|
||||
if (devp)
|
||||
*devp = dev;
|
||||
*devp = dev;
|
||||
|
||||
return SANE_STATUS_GOOD;
|
||||
}
|
||||
|
|
Ładowanie…
Reference in New Issue