epjitsu: introduce object_position()

Rename ingest() to object_position()
now it can do both ingest and eject.
This is required by S1100 support.

chunk come from
http://ubuntuforums.org/showthread.php?t=1678335
merge-requests/1/head
Hiroshi Miura 2012-07-07 22:29:53 +09:00 zatwierdzone przez m. allan noah
rodzic 2f7c6382f4
commit e6abe74b5c
2 zmienionych plików z 18 dodań i 15 usunięć

Wyświetl plik

@ -2176,7 +2176,7 @@ sane_start (SANE_Handle handle)
/* ingest paper with adf */
if( s->source == SOURCE_ADF_BACK || s->source == SOURCE_ADF_FRONT
|| (s->source == SOURCE_ADF_DUPLEX && s->side == SIDE_FRONT) ){
ret = ingest(s);
ret = object_position(s,EPJITSU_PAPER_INGEST);
if (ret != SANE_STATUS_GOOD) {
DBG (5, "sane_start: ERROR: failed to ingest\n");
sane_cancel((SANE_Handle)s);
@ -3442,11 +3442,10 @@ get_hardware_status (struct scanner *s)
}
static SANE_Status
ingest(struct scanner *s)
object_position(struct scanner *s, int ingest)
{
SANE_Status ret = SANE_STATUS_GOOD;
int i;
unsigned char cmd[2];
size_t cmdLen = sizeof(cmd);
unsigned char stat[1];
@ -3454,10 +3453,11 @@ ingest(struct scanner *s)
unsigned char pay[2];
size_t payLen = sizeof(pay);
DBG (10, "ingest: start\n");
DBG (10, "object_position: start\n");
for(i=0;i<5;i++){
i = (ingest)?5:1;
while(i--){
/*send paper load cmd*/
cmd[0] = 0x1b;
cmd[1] = 0xd4;
@ -3470,18 +3470,18 @@ ingest(struct scanner *s)
stat, &statLen
);
if(ret){
DBG (5, "ingest: error sending cmd\n");
DBG (5, "object_position: error sending cmd\n");
return ret;
}
if(stat[0] != 6){
DBG (5, "ingest: cmd bad status? %d\n",stat[0]);
DBG (5, "object_position: cmd bad status? %d\n",stat[0]);
continue;
}
/*send payload*/
statLen = 1;
payLen = 1;
pay[0] = 1;
pay[0] = ingest;
ret = do_cmd(
s, 0,
@ -3490,25 +3490,25 @@ ingest(struct scanner *s)
stat, &statLen
);
if(ret){
DBG (5, "ingest: error sending payload\n");
DBG (5, "object_position: error sending payload\n");
return ret;
}
if(stat[0] == 6){
DBG (5, "ingest: found paper?\n");
DBG (5, "object_position: found paper?\n");
break;
}
else if(stat[0] == 0x15 || stat[0] == 0){
DBG (5, "ingest: no paper?\n");
DBG (5, "object_position: no paper?\n");
ret=SANE_STATUS_NO_DOCS;
continue;
}
else{
DBG (5, "ingest: payload bad status?\n");
DBG (5, "object_position: payload bad status?\n");
return SANE_STATUS_IO_ERROR;
}
}
DBG (10, "ingest: finish\n");
DBG (10, "object_position: finish\n");
return ret;
}

Wyświetl plik

@ -280,6 +280,9 @@ struct scanner
#define WINDOW_SENDCAL 2
#define WINDOW_SCAN 3
#define EPJITSU_PAPER_INGEST 1
#define EPJITSU_PAPER_EJECT 0
/* ------------------------------------------------------------------------- */
#define MM_PER_UNIT_UNFIX SANE_UNFIX(SANE_FIX(MM_PER_INCH / 1200.0))
@ -359,7 +362,7 @@ static SANE_Status destroy(struct scanner *s);
static SANE_Status teardown_buffers(struct scanner *s);
static SANE_Status setup_buffers(struct scanner *s);
static SANE_Status ingest(struct scanner *s);
static SANE_Status object_position(struct scanner *s, int ingest);
static SANE_Status coarsecal(struct scanner *s);
static SANE_Status finecal(struct scanner *s);
static SANE_Status send_lut(struct scanner *s);