diff options
Diffstat (limited to 'backend/epson2-ops.c')
| -rw-r--r-- | backend/epson2-ops.c | 46 | 
1 files changed, 10 insertions, 36 deletions
| diff --git a/backend/epson2-ops.c b/backend/epson2-ops.c index ba0d9cb..83a0169 100644 --- a/backend/epson2-ops.c +++ b/backend/epson2-ops.c @@ -302,6 +302,9 @@ e2_dev_post_init(struct Epson_Device *dev)  		dev->need_reset_on_source_change = SANE_TRUE;  	} +	if (e2_dev_model(dev, "DS-G20000")) +		dev->cmd->bright_range.min = -3; +  	return SANE_STATUS_GOOD;  } @@ -822,24 +825,15 @@ e2_discover_capabilities(Epson_Scanner *s)  	if (esci_request_focus_position(s, &s->currentFocusPosition) ==  	    SANE_STATUS_GOOD) { -		DBG(1, "setting focus is supported\n"); +		DBG(1, "setting focus is supported, current focus: %u\n", s->currentFocusPosition);  		dev->focusSupport = SANE_TRUE; -		s->opt[OPT_FOCUS].cap &= ~SANE_CAP_INACTIVE; - -		/* reflect the current focus position in the GUI */ -		if (s->currentFocusPosition < 0x4C) { -			/* focus on glass */ -			s->val[OPT_FOCUS].w = 0; -		} else { -			/* focus 2.5mm above glass */ -			s->val[OPT_FOCUS].w = 1; -		} - +		s->opt[OPT_FOCUS_POS].cap &= ~SANE_CAP_INACTIVE; +		s->val[OPT_FOCUS_POS].w = s->currentFocusPosition;  	} else {  		DBG(1, "setting focus is not supported\n");  		dev->focusSupport = SANE_FALSE; -		s->opt[OPT_FOCUS].cap |= SANE_CAP_INACTIVE; -		s->val[OPT_FOCUS].w = 0;	/* on glass - just in case */ +		s->opt[OPT_FOCUS_POS].cap |= SANE_CAP_INACTIVE; +		s->val[OPT_FOCUS_POS].w = FOCUS_ON_GLASS;	/* just in case */  	}  	/* Set defaults for no extension. */ @@ -948,8 +942,6 @@ e2_set_extended_scanning_parameters(Epson_Scanner * s)  		/* ESC e */  		buf[26] = extensionCtrl; - -		/* XXX focus */  	}  	/* ESC g, scanning mode (normal or high speed) */ @@ -1063,24 +1055,6 @@ e2_set_scanning_parameters(Epson_Scanner * s)  		 * buffer to set the scan area for  		 * ES-9000H and GT-30000  		 */ - -		/* -		 * set the focus position according to the extension used: -		 * if the TPU is selected, then focus 2.5mm above the glass, -		 * otherwise focus on the glass. Scanners that don't support -		 * this feature, will just ignore these calls. -		 */ - -		if (s->hw->focusSupport == SANE_TRUE) { -			if (s->val[OPT_FOCUS].w == 0) { -				DBG(1, "setting focus to glass surface\n"); -				esci_set_focus_position(s, 0x40); -			} else { -				DBG(1, -				    "setting focus to 2.5mm above glass\n"); -				esci_set_focus_position(s, 0x59); -			} -		}  	}  	/* ESC C, Set color */ @@ -1496,7 +1470,7 @@ e2_wait_button(Epson_Scanner * s)  			else  				sleep(1);  		} else { -			/* we run into an error condition, just continue */ +			/* we ran into an error condition, just continue */  			s->hw->wait_for_button = SANE_FALSE;  		}  	} @@ -1997,7 +1971,7 @@ color_shuffle(SANE_Handle handle, int *new_length)  				 * We just finished the line in line_buffer[0] - write it to the  				 * output buffer and continue.  				 * -				 * The ouput buffer ist still "buf", but because we are +				 * The output buffer is still "buf", but because we are  				 * only overwriting from the beginning of the memory area  				 * we are not interfering with the "still to shuffle" data  				 * in the same area. | 
