summaryrefslogtreecommitdiff
path: root/backend/plustek.c
diff options
context:
space:
mode:
Diffstat (limited to 'backend/plustek.c')
-rw-r--r--backend/plustek.c89
1 files changed, 45 insertions, 44 deletions
diff --git a/backend/plustek.c b/backend/plustek.c
index 062df37..eaddbd3 100644
--- a/backend/plustek.c
+++ b/backend/plustek.c
@@ -129,9 +129,9 @@
/** @mainpage
* @verbinclude Plustek-USB.txt
*/
-
+
#ifdef _AIX
-# include "../include/lalloca.h"
+# include "../include/lalloca.h"
#endif
#include "../include/sane/config.h"
@@ -239,9 +239,9 @@ static const SANE_String_Const source_list[] =
static const SANE_Range percentage_range =
{
- -100 << SANE_FIXED_SCALE_SHIFT, /* minimum */
- 100 << SANE_FIXED_SCALE_SHIFT, /* maximum */
- 1 << SANE_FIXED_SCALE_SHIFT /* quantization */
+ SANE_FIX(-100), /* minimum */
+ SANE_FIX( 100), /* maximum */
+ SANE_FIX( 1) /* quantization */
};
static const SANE_Range warmup_range = { -1, 999, 1 };
@@ -339,7 +339,7 @@ getScanMode( Plustek_Scanner *scanner )
{
int mode;
int scanmode;
-
+
/* are we in TPA-mode? */
mode = scanner->val[OPT_MODE].w;
if( scanner->val[OPT_EXT_MODE].w != 0 )
@@ -384,7 +384,7 @@ max_string_size (const SANE_String_Const strings[])
/** shutdown open pipes
*/
-static SANE_Status
+static SANE_Status
close_pipe( Plustek_Scanner *scanner )
{
if( scanner->r_pipe >= 0 ) {
@@ -550,7 +550,7 @@ reader_process( void *args )
(int)status, lerrn );
if( _E_ABORT == (int)status )
return SANE_STATUS_CANCELLED;
-
+
if( lerrn == EBUSY )
return SANE_STATUS_DEVICE_BUSY;
@@ -574,7 +574,7 @@ do_cancel( Plustek_Scanner *scanner, SANE_Bool closepipe )
if( sanei_thread_is_valid (scanner->reader_pid) ) {
- DBG( _DBG_PROC, ">>>>>>>> killing reader_process <<<<<<<<\n" );
+ DBG( _DBG_PROC, "---- killing reader_process ----\n" );
cancelRead = SANE_TRUE;
scanner->calibrating = SANE_FALSE;
@@ -604,7 +604,7 @@ do_cancel( Plustek_Scanner *scanner, SANE_Bool closepipe )
#endif
}
- scanner->reader_pid = -1;
+ sanei_thread_invalidate( scanner->reader_pid );
DBG( _DBG_PROC,"reader_process killed\n");
#ifndef HAVE_SETITIMER
usb_StartLampTimer( scanner->hw );
@@ -746,7 +746,7 @@ init_options( Plustek_Scanner *s )
else
s->opt[OPT_BIT_DEPTH].constraint.word_list = bpp_lm9832_list;
s->val[OPT_BIT_DEPTH].w = 8;
-
+
if (caps->workaroundFlag & _WAF_ONLY_8BIT)
_DISABLE(OPT_BIT_DEPTH);
@@ -851,7 +851,7 @@ init_options( Plustek_Scanner *s )
s->val[OPT_BR_Y].w = SANE_FIX(_DEFAULT_BRY);
/* "Enhancement" group: */
- s->opt[OPT_ENHANCEMENT_GROUP].title = SANE_I18N("Enhancement");
+ s->opt[OPT_ENHANCEMENT_GROUP].title = SANE_I18N("Enhancement");
s->opt[OPT_ENHANCEMENT_GROUP].desc = "";
s->opt[OPT_ENHANCEMENT_GROUP].type = SANE_TYPE_GROUP;
s->opt[OPT_ENHANCEMENT_GROUP].cap = 0;
@@ -899,7 +899,7 @@ init_options( Plustek_Scanner *s )
s->opt[OPT_GAMMA_VECTOR_B].constraint.range = &(s->gamma_range);
s->opt[OPT_GAMMA_VECTOR_B].size = s->gamma_length * sizeof(SANE_Word);
- /* GAMMA stuff is disabled per default */
+ /* GAMMA stuff is disabled per default */
_DISABLE(OPT_GAMMA_VECTOR);
_DISABLE(OPT_GAMMA_VECTOR_R);
_DISABLE(OPT_GAMMA_VECTOR_G);
@@ -996,7 +996,7 @@ init_options( Plustek_Scanner *s )
s->opt[OPT_AFE_GROUP].desc = "";
s->opt[OPT_AFE_GROUP].type = SANE_TYPE_GROUP;
s->opt[OPT_AFE_GROUP].cap = SANE_CAP_ADVANCED;
-
+
s->opt[OPT_OVR_REDGAIN].name = "red-gain";
s->opt[OPT_OVR_REDGAIN].title = SANE_I18N("Red gain");
s->opt[OPT_OVR_REDGAIN].desc = SANE_I18N("Red gain value of the AFE");
@@ -1085,14 +1085,14 @@ init_options( Plustek_Scanner *s )
/* scanner buttons */
for( i = OPT_BUTTON_0; i <= OPT_BUTTON_LAST; i++ ) {
- char name [12];
- char title [128];
+ char buf [128];
- sprintf (name, "button %d", i - OPT_BUTTON_0);
- sprintf (title, "Scanner button %d", i - OPT_BUTTON_0);
+ snprintf (buf, sizeof(buf), "button %d", i - OPT_BUTTON_0);
+ s->opt[i].name = strdup(buf);
+
+ snprintf (buf, sizeof(buf), "Scanner button %d", i - OPT_BUTTON_0);
+ s->opt[i].title = strdup(buf);
- s->opt[i].name = strdup(name);
- s->opt[i].title = strdup(title);
s->opt[i].desc = SANE_I18N("This option reflects the status "
"of the scanner buttons.");
s->opt[i].type = SANE_TYPE_BOOL;
@@ -1118,8 +1118,8 @@ init_options( Plustek_Scanner *s )
*/
static void
decodeUsbIDs( char *src, char **dest )
-{
- const char *name;
+{
+ const char *name;
char *tmp = *dest;
int len = strlen(_SECTION);
@@ -1134,11 +1134,11 @@ decodeUsbIDs( char *src, char **dest )
if( '\0' == name[0] ) {
DBG( _DBG_SANE_INIT, "next device uses autodetection\n" );
} else {
-
+
u_short pi = 0, vi = 0;
if( *name ) {
-
+
name = sanei_config_get_string( name, &tmp );
if( tmp ) {
vi = strtol( tmp, 0, 0 );
@@ -1208,7 +1208,7 @@ decodeVal( char *src, char *opt, int what, void *result, void *def )
free( tmp2 );
}
}
- free( tmp );
+ free( tmp );
return SANE_TRUE;
} else if( _FLOAT == what ) {
@@ -1226,7 +1226,7 @@ decodeVal( char *src, char *opt, int what, void *result, void *def )
free( tmp2 );
}
}
- free( tmp );
+ free( tmp );
return SANE_TRUE;
}
}
@@ -1245,7 +1245,7 @@ decodeVal( char *src, char *opt, int what, void *result, void *def )
static SANE_Bool
decodeDevName( char *src, char *dest )
{
- char *tmp;
+ char *tmp;
const char *name;
if( 0 == strncmp( "device", src, 6 )) {
@@ -1360,7 +1360,7 @@ attach( const char *dev_name, CnfDef *cnf, Plustek_Device **devp )
*/
dev->res_list = (SANE_Int *)
calloc((((dev->usbDev.Caps.OpticDpi.x*16)-_DEF_DPI)/25+1),
- sizeof (SANE_Int));
+ sizeof (SANE_Int));
if (NULL == dev->res_list) {
DBG( _DBG_ERROR, "calloc failed: %s\n", strerror(errno));
@@ -1565,10 +1565,10 @@ sane_init( SANE_Int *version_code, SANE_Auth_Callback authorize )
/* re-initialize the configuration structure */
init_config_struct( &config );
-
+
tmp = config.usbId;
decodeUsbIDs( str, &tmp );
-
+
DBG( _DBG_SANE_INIT, "... next device\n" );
continue;
@@ -1613,7 +1613,7 @@ sane_exit( void )
if( dev->calFile )
free( dev->calFile );
-
+
if( dev->res_list )
free( dev->res_list );
free( dev );
@@ -1807,7 +1807,7 @@ do_calibration( void *args )
continue;
}
}
-
+
dev->scanning.dwFlag |= SCANFLAG_Calibration;
if (SANE_STATUS_GOOD == local_sane_start(s, modes[scanmode])) {
@@ -1916,6 +1916,7 @@ sane_control_option( SANE_Handle handle, SANE_Int option,
case OPT_BUTTON_0:
if(!s->calibrating)
usb_UpdateButtonStatus(s);
+ // fall through
case OPT_BUTTON_1:
case OPT_BUTTON_2:
case OPT_BUTTON_3:
@@ -1937,7 +1938,7 @@ sane_control_option( SANE_Handle handle, SANE_Int option,
strcpy ((char *) value,
s->opt[option].constraint.string_list[s->val[option].w]);
break;
-
+
/* word array options: */
case OPT_GAMMA_VECTOR:
DBG( _DBG_INFO, "Reading MASTER gamma.\n" );
@@ -2000,7 +2001,7 @@ sane_control_option( SANE_Handle handle, SANE_Int option,
*(SANE_Word *)value = best;
if( NULL != info ) {
- if( v != best )
+ if( v != best )
*info |= SANE_INFO_INEXACT;
*info |= SANE_INFO_RELOAD_PARAMS;
}
@@ -2165,10 +2166,10 @@ sane_control_option( SANE_Handle handle, SANE_Int option,
((*(SANE_Word *)value) >> SANE_FIXED_SCALE_SHIFT);
break;
- case OPT_MODE:
+ case OPT_MODE:
s->val[option].w = optval - s->opt[option].constraint.string_list;
scanmode = getScanMode( s );
-
+
_ENABLE(OPT_CONTRAST);
_ENABLE(OPT_BIT_DEPTH);
_ENABLE(OPT_CUSTOM_GAMMA);
@@ -2447,9 +2448,9 @@ local_sane_start(Plustek_Scanner *s, int scanmode )
}
/* position and extent are always relative to 300 dpi */
- dpi_x = (double)dev->usbDev.Caps.OpticDpi.x;
+ dpi_x = (double)dev->usbDev.Caps.OpticDpi.x;
dpi_y = (double)dev->usbDev.Caps.OpticDpi.x * 2;
-
+
left = (int)(SANE_UNFIX (s->val[OPT_TL_X].w)*dpi_x/
(MM_PER_INCH*(dpi_x/300.0)));
top = (int)(SANE_UNFIX (s->val[OPT_TL_Y].w)*dpi_y/
@@ -2504,7 +2505,7 @@ local_sane_start(Plustek_Scanner *s, int scanmode )
sinfo.siContrast = s->val[OPT_CONTRAST].w;
memcpy( &sinfo.ImgDef, &crop.ImgDef, sizeof(ImgDef));
-
+
DBG( _DBG_SANE_INIT, "brightness %i, contrast %i\n",
sinfo.siBrightness, sinfo.siContrast );
@@ -2628,7 +2629,7 @@ sane_start( SANE_Handle handle )
s->reader_pid = sanei_thread_begin( reader_process, s );
cancelRead = SANE_FALSE;
-
+
if( !sanei_thread_is_valid (s->reader_pid) ) {
DBG( _DBG_ERROR, "ERROR: could not start reader task\n" );
s->scanning = SANE_FALSE;
@@ -2687,7 +2688,7 @@ sane_read( SANE_Handle handle, SANE_Byte *data,
}
}
s->hw->transferRate = ipc.transferRate;
- DBG( _DBG_INFO, "IPC: Transferrate = %lu Bytes/s\n",
+ DBG( _DBG_INFO, "IPC: Transferrate = %lu Bytes/s\n",
ipc.transferRate );
}
#endif
@@ -2706,7 +2707,7 @@ sane_read( SANE_Handle handle, SANE_Byte *data,
if( s->bytes_read ==
(unsigned long)(s->params.lines * s->params.bytes_per_line)) {
sanei_thread_waitpid( s->reader_pid, 0 );
- s->reader_pid = -1;
+ sanei_thread_invalidate( s->reader_pid );
s->scanning = SANE_FALSE;
drvclose( s->hw );
return close_pipe(s);
@@ -2735,7 +2736,7 @@ sane_read( SANE_Handle handle, SANE_Byte *data,
close_pipe(s);
return s->exit_code;
}
- s->reader_pid = -1;
+ sanei_thread_invalidate( s->reader_pid );
s->scanning = SANE_FALSE;
return close_pipe(s);
}
@@ -2773,7 +2774,7 @@ sane_set_io_mode( SANE_Handle handle, SANE_Bool non_blocking )
DBG( _DBG_ERROR, "ERROR: not supported !\n" );
return SANE_STATUS_UNSUPPORTED;
}
-
+
if( fcntl (s->r_pipe, F_SETFL, non_blocking ? O_NONBLOCK : 0) < 0) {
DBG( _DBG_ERROR, "ERROR: could not set to non-blocking mode !\n" );
return SANE_STATUS_IO_ERROR;