kopia lustrzana https://gitlab.com/sane-project/backends
Endianess fixes.
rodzic
91df2ac6d2
commit
9cc1ecc307
|
@ -78,23 +78,6 @@
|
||||||
/** 0 for not ready, 1 pos white lamp on, 2 lamp off */
|
/** 0 for not ready, 1 pos white lamp on, 2 lamp off */
|
||||||
static int strip_state=0;
|
static int strip_state=0;
|
||||||
|
|
||||||
/** the NatSemi 983x is a big endian chip, and the line protocol data all
|
|
||||||
* arrives big-endian. This determines if we need to swap to host-order
|
|
||||||
*/
|
|
||||||
static SANE_Bool cano_HostSwap_p( void )
|
|
||||||
{
|
|
||||||
u_short pattern = 0xfeed; /* deadbeef */
|
|
||||||
unsigned char *bytewise = (unsigned char *)&pattern;
|
|
||||||
|
|
||||||
if ( bytewise[0] == 0xfe ) {
|
|
||||||
DBG( _DBG_READ, "We're big-endian! No need to swap!\n" );
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
DBG( _DBG_READ, "We're little-endian! NatSemi LM9833 is big!"
|
|
||||||
"Must swap calibration data!\n" );
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
/** depending on the strip state, the sensor is moved to the shading position
|
/** depending on the strip state, the sensor is moved to the shading position
|
||||||
* and the lamp ist switched on
|
* and the lamp ist switched on
|
||||||
*/
|
*/
|
||||||
|
@ -299,7 +282,7 @@ static int cano_AdjustLightsource( pPlustek_Device dev)
|
||||||
dumpPicInit( &m_ScanParam, tmp );
|
dumpPicInit( &m_ScanParam, tmp );
|
||||||
dumpPic( tmp, pScanBuffer, m_ScanParam.Size.dwPhyBytes );
|
dumpPic( tmp, pScanBuffer, m_ScanParam.Size.dwPhyBytes );
|
||||||
|
|
||||||
if(cano_HostSwap_p())
|
if(usb_HostSwap())
|
||||||
usb_Swap((u_short *)pScanBuffer, m_ScanParam.Size.dwPhyBytes );
|
usb_Swap((u_short *)pScanBuffer, m_ScanParam.Size.dwPhyBytes );
|
||||||
|
|
||||||
sprintf( tmp, "coarse-lamp-swap%u.raw", i );
|
sprintf( tmp, "coarse-lamp-swap%u.raw", i );
|
||||||
|
@ -525,7 +508,7 @@ static SANE_Bool cano_AdjustGain( pPlustek_Device dev )
|
||||||
dumpPicInit( &m_ScanParam, tmp );
|
dumpPicInit( &m_ScanParam, tmp );
|
||||||
dumpPic( tmp, pScanBuffer, m_ScanParam.Size.dwPhyBytes );
|
dumpPic( tmp, pScanBuffer, m_ScanParam.Size.dwPhyBytes );
|
||||||
|
|
||||||
if(cano_HostSwap_p())
|
if(usb_HostSwap())
|
||||||
usb_Swap((u_short *)pScanBuffer, m_ScanParam.Size.dwPhyBytes );
|
usb_Swap((u_short *)pScanBuffer, m_ScanParam.Size.dwPhyBytes );
|
||||||
|
|
||||||
if( m_ScanParam.bDataType == SCANDATATYPE_Color ) {
|
if( m_ScanParam.bDataType == SCANDATATYPE_Color ) {
|
||||||
|
@ -707,7 +690,7 @@ static int cano_AdjustOffset( pPlustek_Device dev )
|
||||||
dumpPicInit( &m_ScanParam, tmp );
|
dumpPicInit( &m_ScanParam, tmp );
|
||||||
dumpPic( tmp, pScanBuffer, m_ScanParam.Size.dwPhyBytes );
|
dumpPic( tmp, pScanBuffer, m_ScanParam.Size.dwPhyBytes );
|
||||||
|
|
||||||
if(cano_HostSwap_p())
|
if(usb_HostSwap())
|
||||||
usb_Swap((u_short *)pScanBuffer, m_ScanParam.Size.dwPhyBytes );
|
usb_Swap((u_short *)pScanBuffer, m_ScanParam.Size.dwPhyBytes );
|
||||||
|
|
||||||
if( m_ScanParam.bDataType == SCANDATATYPE_Color ) {
|
if( m_ScanParam.bDataType == SCANDATATYPE_Color ) {
|
||||||
|
@ -842,7 +825,7 @@ static SANE_Bool cano_AdjustDarkShading( pPlustek_Device dev )
|
||||||
|
|
||||||
dumpPic( tmp, pScanBuffer, m_ScanParam.Size.dwTotalBytes );
|
dumpPic( tmp, pScanBuffer, m_ScanParam.Size.dwTotalBytes );
|
||||||
|
|
||||||
if(cano_HostSwap_p())
|
if(usb_HostSwap())
|
||||||
usb_Swap((u_short *)pScanBuffer, m_ScanParam.Size.dwTotalBytes);
|
usb_Swap((u_short *)pScanBuffer, m_ScanParam.Size.dwTotalBytes);
|
||||||
}
|
}
|
||||||
if (!usb_ScanEnd( dev )){
|
if (!usb_ScanEnd( dev )){
|
||||||
|
@ -884,7 +867,7 @@ static SANE_Bool cano_AdjustDarkShading( pPlustek_Device dev )
|
||||||
a_wDarkShading[i+stepW*2] = blue/j + pParam->swOffset[2];
|
a_wDarkShading[i+stepW*2] = blue/j + pParam->swOffset[2];
|
||||||
}
|
}
|
||||||
|
|
||||||
if(cano_HostSwap_p())
|
if(usb_HostSwap())
|
||||||
usb_Swap(a_wDarkShading, m_ScanParam.Size.dwPhyPixels * 2 * 3 );
|
usb_Swap(a_wDarkShading, m_ScanParam.Size.dwPhyPixels * 2 * 3 );
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
@ -900,7 +883,7 @@ static SANE_Bool cano_AdjustDarkShading( pPlustek_Device dev )
|
||||||
}
|
}
|
||||||
a_wDarkShading[i]= gray/j + pParam->swOffset[0];
|
a_wDarkShading[i]= gray/j + pParam->swOffset[0];
|
||||||
}
|
}
|
||||||
if(cano_HostSwap_p())
|
if(usb_HostSwap())
|
||||||
usb_Swap(a_wDarkShading, m_ScanParam.Size.dwPhyPixels * 2 );
|
usb_Swap(a_wDarkShading, m_ScanParam.Size.dwPhyPixels * 2 );
|
||||||
|
|
||||||
memcpy( a_wDarkShading+ m_ScanParam.Size.dwPhyPixels * 2,
|
memcpy( a_wDarkShading+ m_ScanParam.Size.dwPhyPixels * 2,
|
||||||
|
@ -962,7 +945,7 @@ static SANE_Bool cano_AdjustWhiteShading( pPlustek_Device dev )
|
||||||
|
|
||||||
dumpPic( tmp, pScanBuffer, m_ScanParam.Size.dwTotalBytes );
|
dumpPic( tmp, pScanBuffer, m_ScanParam.Size.dwTotalBytes );
|
||||||
|
|
||||||
if(cano_HostSwap_p())
|
if(usb_HostSwap())
|
||||||
usb_Swap((u_short *)pScanBuffer, m_ScanParam.Size.dwTotalBytes);
|
usb_Swap((u_short *)pScanBuffer, m_ScanParam.Size.dwTotalBytes);
|
||||||
|
|
||||||
if (!usb_ScanEnd( dev )){
|
if (!usb_ScanEnd( dev )){
|
||||||
|
@ -1013,7 +996,7 @@ static SANE_Bool cano_AdjustWhiteShading( pPlustek_Device dev )
|
||||||
a_wWhiteShading[i+stepW*2] = (blue > 65535? 65535:blue );
|
a_wWhiteShading[i+stepW*2] = (blue > 65535? 65535:blue );
|
||||||
}
|
}
|
||||||
|
|
||||||
if(cano_HostSwap_p())
|
if(usb_HostSwap())
|
||||||
usb_Swap(a_wWhiteShading, m_ScanParam.Size.dwPhyPixels * 2 * 3 );
|
usb_Swap(a_wWhiteShading, m_ScanParam.Size.dwPhyPixels * 2 * 3 );
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
|
@ -1030,7 +1013,7 @@ static SANE_Bool cano_AdjustWhiteShading( pPlustek_Device dev )
|
||||||
|
|
||||||
a_wWhiteShading[i]= (gray > 65535? 65535:gray);
|
a_wWhiteShading[i]= (gray > 65535? 65535:gray);
|
||||||
}
|
}
|
||||||
if(cano_HostSwap_p())
|
if(usb_HostSwap())
|
||||||
usb_Swap(a_wWhiteShading, m_ScanParam.Size.dwPhyPixels * 2 );
|
usb_Swap(a_wWhiteShading, m_ScanParam.Size.dwPhyPixels * 2 );
|
||||||
|
|
||||||
memcpy(a_wWhiteShading+ m_ScanParam.Size.dwPhyPixels * 2,
|
memcpy(a_wWhiteShading+ m_ScanParam.Size.dwPhyPixels * 2,
|
||||||
|
|
|
@ -31,6 +31,7 @@
|
||||||
* - 0.46 - fixed problem in usb_GetLampStatus for CIS devices, as we
|
* - 0.46 - fixed problem in usb_GetLampStatus for CIS devices, as we
|
||||||
* read back reg[0x29] to wrong position
|
* read back reg[0x29] to wrong position
|
||||||
* made it compile without itimer definitions
|
* made it compile without itimer definitions
|
||||||
|
* moved usb_HostSwap() to this file.
|
||||||
* .
|
* .
|
||||||
* <hr>
|
* <hr>
|
||||||
* This file is part of the SANE package.
|
* This file is part of the SANE package.
|
||||||
|
@ -91,6 +92,24 @@ static SANE_Bool fLastScanIsAdf;
|
||||||
static u_char a_bRegs[0x80]; /**< our global register file */
|
static u_char a_bRegs[0x80]; /**< our global register file */
|
||||||
|
|
||||||
|
|
||||||
|
/** the NatSemi 983x is a big endian chip, and the line protocol data all
|
||||||
|
* arrives big-endian. This determines if we need to swap to host-order
|
||||||
|
*/
|
||||||
|
static SANE_Bool usb_HostSwap( void )
|
||||||
|
{
|
||||||
|
u_short pattern = 0xfeed; /* deadbeef */
|
||||||
|
unsigned char *bytewise = (unsigned char *)&pattern;
|
||||||
|
|
||||||
|
if ( bytewise[0] == 0xfe ) {
|
||||||
|
DBG( _DBG_READ, "We're big-endian! No need to swap!\n" );
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
DBG( _DBG_READ, "We're little-endian! NatSemi LM983x is big!"
|
||||||
|
"Must swap calibration data!\n" );
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/** usb_GetMotorSet
|
/** usb_GetMotorSet
|
||||||
* according to the model, the function returns the address of
|
* according to the model, the function returns the address of
|
||||||
* the corresponding entry of the Motor table
|
* the corresponding entry of the Motor table
|
||||||
|
|
|
@ -72,8 +72,8 @@
|
||||||
#define _MAX_SHAD 0x4000
|
#define _MAX_SHAD 0x4000
|
||||||
#define _SHADING_BUF (_MAX_SHAD*3) /**< max size of the shading buffer */
|
#define _SHADING_BUF (_MAX_SHAD*3) /**< max size of the shading buffer */
|
||||||
|
|
||||||
#define _CIS_GAIN 0
|
/*#define SWAP_COARSE*/
|
||||||
#define _CIS_OFFS 6
|
/*#define SWAP_FINE*/
|
||||||
|
|
||||||
static u_short a_wWhiteShading[_SHADING_BUF] = {0};
|
static u_short a_wWhiteShading[_SHADING_BUF] = {0};
|
||||||
static u_short a_wDarkShading[_SHADING_BUF] = {0};
|
static u_short a_wDarkShading[_SHADING_BUF] = {0};
|
||||||
|
@ -747,7 +747,10 @@ TOGAIN:
|
||||||
dumpPicInit( &m_ScanParam, tmp );
|
dumpPicInit( &m_ScanParam, tmp );
|
||||||
dumpPic( tmp, pScanBuffer, m_ScanParam.Size.dwPhyBytes );
|
dumpPic( tmp, pScanBuffer, m_ScanParam.Size.dwPhyBytes );
|
||||||
|
|
||||||
usb_Swap((u_short *)pScanBuffer, m_ScanParam.Size.dwPhyBytes );
|
#ifdef SWAP_COARSE
|
||||||
|
if(usb_HostSwap())
|
||||||
|
#endif
|
||||||
|
usb_Swap((u_short *)pScanBuffer, m_ScanParam.Size.dwPhyBytes );
|
||||||
|
|
||||||
if( fNegative ) {
|
if( fNegative ) {
|
||||||
|
|
||||||
|
@ -1233,6 +1236,10 @@ static SANE_Bool usb_AdjustOffset( pPlustek_Device dev )
|
||||||
|
|
||||||
sprintf( tmp, "coarse-off-%u.raw", i++ );
|
sprintf( tmp, "coarse-off-%u.raw", i++ );
|
||||||
|
|
||||||
|
#ifdef SWAP_COARSE
|
||||||
|
if(usb_HostSwap())
|
||||||
|
usb_Swap((u_short *)pScanBuffer, m_ScanParam.Size.dwPhyBytes );
|
||||||
|
#endif
|
||||||
dumpPicInit( &m_ScanParam, tmp );
|
dumpPicInit( &m_ScanParam, tmp );
|
||||||
dumpPic( tmp, pScanBuffer, m_ScanParam.Size.dwPhyBytes );
|
dumpPic( tmp, pScanBuffer, m_ScanParam.Size.dwPhyBytes );
|
||||||
|
|
||||||
|
@ -1241,10 +1248,15 @@ static SANE_Bool usb_AdjustOffset( pPlustek_Device dev )
|
||||||
dwSum[0] = dwSum[1] = dwSum[2] = 0;
|
dwSum[0] = dwSum[1] = dwSum[2] = 0;
|
||||||
|
|
||||||
for (dw = 0; dw < dwPixels; dw++) {
|
for (dw = 0; dw < dwPixels; dw++) {
|
||||||
|
#ifndef SWAP_COARSE
|
||||||
dwSum[0] += (u_long)_HILO2WORD(((pColorWordDef)pScanBuffer)[dw].HiLo[0]);
|
dwSum[0] += (u_long)_HILO2WORD(((pColorWordDef)pScanBuffer)[dw].HiLo[0]);
|
||||||
dwSum[1] += (u_long)_HILO2WORD(((pColorWordDef)pScanBuffer)[dw].HiLo[1]);
|
dwSum[1] += (u_long)_HILO2WORD(((pColorWordDef)pScanBuffer)[dw].HiLo[1]);
|
||||||
dwSum[2] += (u_long)_HILO2WORD(((pColorWordDef)pScanBuffer)[dw].HiLo[2]);
|
dwSum[2] += (u_long)_HILO2WORD(((pColorWordDef)pScanBuffer)[dw].HiLo[2]);
|
||||||
|
#else
|
||||||
|
dwSum[0] += ((pRGBUShortDef)pScanBuffer)[dw].Red;
|
||||||
|
dwSum[1] += ((pRGBUShortDef)pScanBuffer)[dw].Green;
|
||||||
|
dwSum[2] += ((pRGBUShortDef)pScanBuffer)[dw].Blue;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
DBG( _DBG_INFO2, "RedSum = %lu, ave = %lu\n",
|
DBG( _DBG_INFO2, "RedSum = %lu, ave = %lu\n",
|
||||||
|
@ -1270,8 +1282,13 @@ static SANE_Bool usb_AdjustOffset( pPlustek_Device dev )
|
||||||
} else {
|
} else {
|
||||||
dwSum[0] = 0;
|
dwSum[0] = 0;
|
||||||
|
|
||||||
for( dw = 0; dw < dwPixels; dw++ )
|
for( dw = 0; dw < dwPixels; dw++ ) {
|
||||||
|
#ifndef SWAP_COARSE
|
||||||
dwSum[0] += (u_long)_HILO2WORD(((pHiLoDef)pScanBuffer)[dw]);
|
dwSum[0] += (u_long)_HILO2WORD(((pHiLoDef)pScanBuffer)[dw]);
|
||||||
|
#else
|
||||||
|
dwSum[0] += ((u_short*)pScanBuffer)[dw];
|
||||||
|
#endif
|
||||||
|
}
|
||||||
dwSum [0] /= dwPixels;
|
dwSum [0] /= dwPixels;
|
||||||
usb_GetNewOffset( dwSum, dwDiff, cOffset, bExpect, 0, cAdjust );
|
usb_GetNewOffset( dwSum, dwDiff, cOffset, bExpect, 0, cAdjust );
|
||||||
a_bRegs[0x3a] = a_bRegs[0x39] = a_bRegs[0x38];
|
a_bRegs[0x3a] = a_bRegs[0x39] = a_bRegs[0x38];
|
||||||
|
@ -1336,7 +1353,11 @@ static void usb_GetDarkShading( pPlustek_Device dev, u_short *pwDest,
|
||||||
/* here we use the source buffer + a static offset */
|
/* here we use the source buffer + a static offset */
|
||||||
for (dw = 0; dw < dwPixels; dw++, pSrce += dwAdd)
|
for (dw = 0; dw < dwPixels; dw++, pSrce += dwAdd)
|
||||||
{
|
{
|
||||||
|
#ifndef SWAP_FINE
|
||||||
wtmp = ((int)_PHILO2WORD(pSrce) + iOffset);
|
wtmp = ((int)_PHILO2WORD(pSrce) + iOffset);
|
||||||
|
#else
|
||||||
|
wtmp = (*(int*)pSrce + iOffset);
|
||||||
|
#endif
|
||||||
if( wtmp < 0 )
|
if( wtmp < 0 )
|
||||||
wtmp = 0;
|
wtmp = 0;
|
||||||
|
|
||||||
|
@ -1345,19 +1366,28 @@ static void usb_GetDarkShading( pPlustek_Device dev, u_short *pwDest,
|
||||||
|
|
||||||
w = (u_short)wtmp;
|
w = (u_short)wtmp;
|
||||||
|
|
||||||
|
#ifndef SWAP_FINE
|
||||||
pwDest[dw] = _LOBYTE(w) * 256 + _HIBYTE(w);
|
pwDest[dw] = _LOBYTE(w) * 256 + _HIBYTE(w);
|
||||||
|
#else
|
||||||
|
pwDest[dw] = w;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
dwSum [0] = dwSum [1] = 0;
|
dwSum[0] = dwSum[1] = 0;
|
||||||
if( hw->bSensorConfiguration & 0x04 ) {
|
if( hw->bSensorConfiguration & 0x04 ) {
|
||||||
|
|
||||||
/* Even/Odd CCD */
|
/* Even/Odd CCD */
|
||||||
for( dw = 0; dw < dwPixels; dw++, pSrce += dwAdd )
|
for( dw = 0; dw < dwPixels; dw++, pSrce += dwAdd ) {
|
||||||
dwSum [dw & 1] += (u_long)_PHILO2WORD(pSrce);
|
#ifndef SWAP_FINE
|
||||||
dwSum [0] /= ((dwPixels + 1UL) >> 1);
|
dwSum[dw & 1] += (u_long)_PHILO2WORD(pSrce);
|
||||||
dwSum [1] /= (dwPixels >> 1);
|
#else
|
||||||
|
dwSum[dw & 1] += *(u_long*)pSrce;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
dwSum[0] /= ((dwPixels + 1UL) >> 1);
|
||||||
|
dwSum[1] /= (dwPixels >> 1);
|
||||||
|
|
||||||
if( /*Registry.GetEvenOdd() == 1 ||*/ scaps->bPCB == 2)
|
if( /*Registry.GetEvenOdd() == 1 ||*/ scaps->bPCB == 2)
|
||||||
{
|
{
|
||||||
|
@ -1372,14 +1402,18 @@ static void usb_GetDarkShading( pPlustek_Device dev, u_short *pwDest,
|
||||||
|
|
||||||
if((int)dwSum[1] < 0)
|
if((int)dwSum[1] < 0)
|
||||||
dwSum[1] = 0;
|
dwSum[1] = 0;
|
||||||
|
#ifndef SWAP_FINE
|
||||||
dwSum[0] = (u_long)_LOBYTE(_LOWORD(dwSum[0])) * 256UL +
|
dwSum[0] = (u_long)_LOBYTE(_LOWORD(dwSum[0])) * 256UL +
|
||||||
_HIBYTE(_LOWORD(dwSum[0]));
|
_HIBYTE(_LOWORD(dwSum[0]));
|
||||||
dwSum[1] = (u_long)_LOBYTE(_LOWORD (dwSum[1])) * 256UL +
|
dwSum[1] = (u_long)_LOBYTE(_LOWORD(dwSum[1])) * 256UL +
|
||||||
_HIBYTE(_LOWORD(dwSum[1]));
|
_HIBYTE(_LOWORD(dwSum[1]));
|
||||||
|
#else
|
||||||
|
dwSum[0] = (u_long)_LOWORD(dwSum[0]);
|
||||||
|
dwSum[1] = (u_long)_LOWORD(dwSum[1]);
|
||||||
|
#endif
|
||||||
|
|
||||||
for( dw = 0; dw < dwPixels; dw++ )
|
for( dw = 0; dw < dwPixels; dw++ )
|
||||||
pwDest [dw] = (u_short)dwSum[dw & 1];
|
pwDest[dw] = (u_short)dwSum[dw & 1];
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
u_long dwEnd = 0;
|
u_long dwEnd = 0;
|
||||||
|
@ -1387,8 +1421,13 @@ static void usb_GetDarkShading( pPlustek_Device dev, u_short *pwDest,
|
||||||
/* Standard CCD */
|
/* Standard CCD */
|
||||||
|
|
||||||
/* do some averaging on the line */
|
/* do some averaging on the line */
|
||||||
for( dw = dwEnd; dw < dwPixels; dw++, pSrce += dwAdd )
|
for( dw = dwEnd; dw < dwPixels; dw++, pSrce += dwAdd ) {
|
||||||
|
#ifndef SWAP_FINE
|
||||||
dwSum[0] += (u_long)_PHILO2WORD(pSrce);
|
dwSum[0] += (u_long)_PHILO2WORD(pSrce);
|
||||||
|
#else
|
||||||
|
dwSum[0] += *(u_long*)pSrce;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
dwSum[0] /= (dwPixels - dwEnd);
|
dwSum[0] /= (dwPixels - dwEnd);
|
||||||
|
|
||||||
|
@ -1396,15 +1435,22 @@ static void usb_GetDarkShading( pPlustek_Device dev, u_short *pwDest,
|
||||||
dwSum[0] = (int)dwSum[0] + iOffset;
|
dwSum[0] = (int)dwSum[0] + iOffset;
|
||||||
if((int)dwSum[0] < 0)
|
if((int)dwSum[0] < 0)
|
||||||
dwSum [0] = 0;
|
dwSum [0] = 0;
|
||||||
|
#ifndef SWAP_FINE
|
||||||
dwSum[0] = (u_long)_LOBYTE(_LOWORD(dwSum[0])) * 256UL +
|
dwSum[0] = (u_long)_LOBYTE(_LOWORD(dwSum[0])) * 256UL +
|
||||||
_HIBYTE(_LOWORD(dwSum[0]));
|
_HIBYTE(_LOWORD(dwSum[0]));
|
||||||
|
#else
|
||||||
|
dwSum[0] = (u_long)_LOWORD(dwSum[0]);
|
||||||
|
#endif
|
||||||
|
|
||||||
/* fill the shading data */
|
/* fill the shading data */
|
||||||
for( dw = dwEnd; dw < dwPixels; dw++ )
|
for( dw = dwEnd; dw < dwPixels; dw++ )
|
||||||
pwDest[dw] = (u_short)dwSum[0];
|
pwDest[dw] = (u_short)dwSum[0];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#ifdef SWAP_FINE
|
||||||
|
if(usb_HostSwap())
|
||||||
|
usb_Swap( pwDest, dwPixels );
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
/** usb_AdjustDarkShading
|
/** usb_AdjustDarkShading
|
||||||
|
@ -1506,6 +1552,11 @@ static SANE_Bool usb_AdjustDarkShading( pPlustek_Device dev )
|
||||||
return SANE_FALSE;
|
return SANE_FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef SWAP_FINE
|
||||||
|
if(usb_HostSwap())
|
||||||
|
usb_Swap((u_short *)pScanBuffer, m_ScanParam.Size.dwPhyBytes );
|
||||||
|
#endif
|
||||||
|
|
||||||
sprintf( tmp, "fine-black.raw" );
|
sprintf( tmp, "fine-black.raw" );
|
||||||
|
|
||||||
dumpPicInit( &m_ScanParam, tmp );
|
dumpPicInit( &m_ScanParam, tmp );
|
||||||
|
|
|
@ -139,7 +139,7 @@
|
||||||
#include "../include/sane/sanei.h"
|
#include "../include/sane/sanei.h"
|
||||||
#include "../include/sane/saneopts.h"
|
#include "../include/sane/saneopts.h"
|
||||||
|
|
||||||
#define BACKEND_VERSION "0.46-8"
|
#define BACKEND_VERSION "0.46-9"
|
||||||
#define BACKEND_NAME plustek
|
#define BACKEND_NAME plustek
|
||||||
#include "../include/sane/sanei_backend.h"
|
#include "../include/sane/sanei_backend.h"
|
||||||
#include "../include/sane/sanei_config.h"
|
#include "../include/sane/sanei_config.h"
|
||||||
|
|
Ładowanie…
Reference in New Issue