- removed redundant entry in umax_pp.de.po

- fixed comment typo in umax_pp.conf
	- allow for 4 digits port adress
	- added ppdev ioctl return code check
DEVEL_2_0_BRANCH-1
Stéphane Voltz 2002-10-02 06:17:29 +00:00
rodzic e1c7205510
commit 95ab2b5dda
5 zmienionych plików z 226 dodań i 53 usunięć

Wyświetl plik

@ -466,7 +466,7 @@ init_options (Umax_PP_Device * dev)
dev->opt[OPT_CUSTOM_GAMMA].title = SANE_TITLE_CUSTOM_GAMMA; dev->opt[OPT_CUSTOM_GAMMA].title = SANE_TITLE_CUSTOM_GAMMA;
dev->opt[OPT_CUSTOM_GAMMA].desc = SANE_DESC_CUSTOM_GAMMA; dev->opt[OPT_CUSTOM_GAMMA].desc = SANE_DESC_CUSTOM_GAMMA;
dev->opt[OPT_CUSTOM_GAMMA].type = SANE_TYPE_BOOL; dev->opt[OPT_CUSTOM_GAMMA].type = SANE_TYPE_BOOL;
dev->opt[OPT_CUSTOM_GAMMA].cap |= SANE_CAP_ADVANCED; dev->opt[OPT_CUSTOM_GAMMA].cap |= SANE_CAP_ADVANCED | SANE_CAP_INACTIVE;
dev->val[OPT_CUSTOM_GAMMA].w = SANE_FALSE; dev->val[OPT_CUSTOM_GAMMA].w = SANE_FALSE;
/* grayscale gamma vector */ /* grayscale gamma vector */
@ -1177,7 +1177,6 @@ sane_open (SANE_String_Const devicename, SANE_Handle * handle)
dev->next = first_dev; dev->next = first_dev;
first_dev = dev; first_dev = dev;
*handle = dev; *handle = dev;
DBG (3, "open: success\n"); DBG (3, "open: success\n");
@ -1300,6 +1299,7 @@ sane_control_option (SANE_Handle handle, SANE_Int option,
return SANE_STATUS_INVAL; return SANE_STATUS_INVAL;
} }
cap = dev->opt[option].cap; cap = dev->opt[option].cap;
if (!SANE_OPTION_IS_ACTIVE (cap)) if (!SANE_OPTION_IS_ACTIVE (cap))

Wyświetl plik

@ -20,11 +20,11 @@ port 0x378
# must be between 0 and 15 # must be between 0 and 15
#option red-gain 8 #option red-gain 8
# gain for red channel, if not given, will be automatically computed # gain for green channel, if not given, will be automatically computed
# must be between 0 and 15 # must be between 0 and 15
#option green-gain 4 #option green-gain 4
# gain for red channel, if not given, will be automatically computed # gain for blue channel, if not given, will be automatically computed
# must be between 0 and 15 # must be between 0 and 15
#option blue-gain 8 #option blue-gain 8
@ -32,11 +32,11 @@ port 0x378
# must be between 0 and 15 # must be between 0 and 15
#option red-highlight 2 #option red-highlight 2
# highlight for red channel, if not given, will default to 0 # highlight for green channel, if not given, will default to 0
# must be between 0 and 15 # must be between 0 and 15
#option green-highlight 1 #option green-highlight 1
# highlight for red channel, if not given, will default to 0 # highlight for blue channel, if not given, will default to 0
# must be between 0 and 15 # must be between 0 and 15
#option blue-highlight 1 #option blue-highlight 1

Wyświetl plik

@ -414,6 +414,9 @@ sanei_umax_pp_InitPort (int port, char *name)
/* any other, we put debug init here */ /* any other, we put debug init here */
DBG_INIT (); DBG_INIT ();
DBG (1, "sanei_umax_pp_InitPort(0x%X,%s)\n", port, name);
/* init global var holding port value */ /* init global var holding port value */
gPort = port; gPort = port;
@ -604,11 +607,14 @@ sanei_umax_pp_InitPort (int port, char *name)
return (1); return (1);
#ifdef HAVE_IOPERM #ifdef HAVE_IOPERM
if (port < 0x400)
{
if (ioperm (port, 8, 1) != 0) if (ioperm (port, 8, 1) != 0)
{ {
DBG (1, "ioperm could not gain access to 0x%X\n", port); DBG (1, "ioperm could not gain access to 0x%X\n", port);
return (0); return (0);
} }
}
/* ECP i/o range */ /* ECP i/o range */
if (iopl (3) != 0) if (iopl (3) != 0)
{ {
@ -662,12 +668,25 @@ Outb (int port, int value)
{ {
case 0: case 0:
rc = ioctl (fd, PPWDATA, &val); rc = ioctl (fd, PPWDATA, &val);
if (rc)
DBG (0, "ppdev ioctl returned <%s> (%s:%d)\n", strerror (errno),
__FILE__, __LINE__);
return; return;
case 2: case 2:
if (val & 0x20) if (val & 0x20)
{
rc = ioctl (fd, PPDATADIR, &val); rc = ioctl (fd, PPDATADIR, &val);
if (rc)
DBG (0, "ppdev ioctl returned <%s> (%s:%d)\n",
strerror (errno), __FILE__, __LINE__);
}
else else
{
rc = ioctl (fd, PPWCONTROL, &val); rc = ioctl (fd, PPWCONTROL, &val);
if (rc)
DBG (0, "ppdev ioctl returned <%s> (%s:%d)\n",
strerror (errno), __FILE__, __LINE__);
}
return; return;
case 0x402: case 0x402:
break; break;
@ -712,16 +731,25 @@ Inb (int port)
{ {
case 0: case 0:
rc = ioctl (fd, PPRDATA, &val); rc = ioctl (fd, PPRDATA, &val);
if (rc)
DBG (0, "ppdev ioctl returned <%s> (%s:%d)\n", strerror (errno),
__FILE__, __LINE__);
res = val; res = val;
return res; return res;
case 1: case 1:
rc = ioctl (fd, PPRSTATUS, &val); rc = ioctl (fd, PPRSTATUS, &val);
if (rc)
DBG (0, "ppdev ioctl returned <%s> (%s:%d)\n", strerror (errno),
__FILE__, __LINE__);
res = val; res = val;
return res; return res;
case 2: case 2:
rc = ioctl (fd, PPRCONTROL, &val); rc = ioctl (fd, PPRCONTROL, &val);
if (rc)
DBG (0, "ppdev ioctl returned <%s> (%s:%d)\n", strerror (errno),
__FILE__, __LINE__);
res = val; res = val;
return res; return res;
@ -1612,6 +1640,9 @@ EPPRegisterRead (int reg)
breg = (unsigned char) (reg); breg = (unsigned char) (reg);
mode = IEEE1284_MODE_EPP | IEEE1284_ADDR; mode = IEEE1284_MODE_EPP | IEEE1284_ADDR;
rc = ioctl (fd, PPSETMODE, &mode); rc = ioctl (fd, PPSETMODE, &mode);
if (rc)
DBG (0, "ppdev ioctl returned <%s> (%s:%d)\n", strerror (errno),
__FILE__, __LINE__);
rc = write (fd, &breg, 1); rc = write (fd, &breg, 1);
mode = 1; /* data_reverse */ mode = 1; /* data_reverse */
@ -1619,11 +1650,17 @@ EPPRegisterRead (int reg)
mode = IEEE1284_MODE_EPP | IEEE1284_DATA; mode = IEEE1284_MODE_EPP | IEEE1284_DATA;
rc = ioctl (fd, PPSETMODE, &mode); rc = ioctl (fd, PPSETMODE, &mode);
if (rc)
DBG (0, "ppdev ioctl returned <%s> (%s:%d)\n", strerror (errno),
__FILE__, __LINE__);
rc = read (fd, &bval, 1); rc = read (fd, &bval, 1);
value = bval; value = bval;
mode = 0; /* forward */ mode = 0; /* forward */
rc = ioctl (fd, PPDATADIR, &mode); rc = ioctl (fd, PPDATADIR, &mode);
if (rc)
DBG (0, "ppdev ioctl returned <%s> (%s:%d)\n", strerror (errno),
__FILE__, __LINE__);
return value; return value;
} }
@ -1660,11 +1697,17 @@ EPPRegisterWrite (int reg, int value)
breg = (unsigned char) (reg); breg = (unsigned char) (reg);
mode = IEEE1284_MODE_EPP | IEEE1284_ADDR; mode = IEEE1284_MODE_EPP | IEEE1284_ADDR;
rc = ioctl (fd, PPSETMODE, &mode); rc = ioctl (fd, PPSETMODE, &mode);
if (rc)
DBG (0, "ppdev ioctl returned <%s> (%s:%d)\n", strerror (errno),
__FILE__, __LINE__);
rc = write (fd, &breg, 1); rc = write (fd, &breg, 1);
bval = (unsigned char) (value); bval = (unsigned char) (value);
mode = IEEE1284_MODE_EPP | IEEE1284_DATA; mode = IEEE1284_MODE_EPP | IEEE1284_DATA;
rc = ioctl (fd, PPSETMODE, &mode); rc = ioctl (fd, PPSETMODE, &mode);
if (rc)
DBG (0, "ppdev ioctl returned <%s> (%s:%d)\n", strerror (errno),
__FILE__, __LINE__);
rc = write (fd, &bval, 1); rc = write (fd, &bval, 1);
return; return;
@ -1689,6 +1732,9 @@ EPPBlockMode (int flag)
bval = (unsigned char) (flag); bval = (unsigned char) (flag);
mode = IEEE1284_MODE_EPP | IEEE1284_ADDR; mode = IEEE1284_MODE_EPP | IEEE1284_ADDR;
rc = ioctl (fd, PPSETMODE, &mode); rc = ioctl (fd, PPSETMODE, &mode);
if (rc)
DBG (0, "ppdev ioctl returned <%s> (%s:%d)\n", strerror (errno),
__FILE__, __LINE__);
rc = write (fd, &bval, 1); rc = write (fd, &bval, 1);
return; return;
} }
@ -1714,16 +1760,28 @@ EPPReadBuffer (int size, unsigned char *dest)
bval = 0x80; bval = 0x80;
mode = IEEE1284_MODE_EPP | IEEE1284_ADDR; mode = IEEE1284_MODE_EPP | IEEE1284_ADDR;
rc = ioctl (fd, PPSETMODE, &mode); rc = ioctl (fd, PPSETMODE, &mode);
if (rc)
DBG (0, "ppdev ioctl returned <%s> (%s:%d)\n", strerror (errno),
__FILE__, __LINE__);
rc = write (fd, &bval, 1); rc = write (fd, &bval, 1);
mode = 1; /* data_reverse */ mode = 1; /* data_reverse */
rc = ioctl (fd, PPDATADIR, &mode); rc = ioctl (fd, PPDATADIR, &mode);
if (rc)
DBG (0, "ppdev ioctl returned <%s> (%s:%d)\n", strerror (errno),
__FILE__, __LINE__);
#ifdef PPSETFLAGS #ifdef PPSETFLAGS
mode = PP_FASTREAD; mode = PP_FASTREAD;
rc = ioctl (fd, PPSETFLAGS, &mode); rc = ioctl (fd, PPSETFLAGS, &mode);
if (rc)
DBG (0, "ppdev ioctl returned <%s> (%s:%d)\n", strerror (errno),
__FILE__, __LINE__);
#endif #endif
mode = IEEE1284_MODE_EPP | IEEE1284_DATA; mode = IEEE1284_MODE_EPP | IEEE1284_DATA;
rc = ioctl (fd, PPSETMODE, &mode); rc = ioctl (fd, PPSETMODE, &mode);
if (rc)
DBG (0, "ppdev ioctl returned <%s> (%s:%d)\n", strerror (errno),
__FILE__, __LINE__);
nb = 0; nb = 0;
while (nb < size - 1) while (nb < size - 1)
{ {
@ -1733,19 +1791,34 @@ EPPReadBuffer (int size, unsigned char *dest)
mode = 0; /* forward */ mode = 0; /* forward */
rc = ioctl (fd, PPDATADIR, &mode); rc = ioctl (fd, PPDATADIR, &mode);
if (rc)
DBG (0, "ppdev ioctl returned <%s> (%s:%d)\n", strerror (errno),
__FILE__, __LINE__);
bval = 0xA0; bval = 0xA0;
mode = IEEE1284_MODE_EPP | IEEE1284_ADDR; mode = IEEE1284_MODE_EPP | IEEE1284_ADDR;
rc = ioctl (fd, PPSETMODE, &mode); rc = ioctl (fd, PPSETMODE, &mode);
if (rc)
DBG (0, "ppdev ioctl returned <%s> (%s:%d)\n", strerror (errno),
__FILE__, __LINE__);
rc = write (fd, &bval, 1); rc = write (fd, &bval, 1);
mode = 1; /* data_reverse */ mode = 1; /* data_reverse */
rc = ioctl (fd, PPDATADIR, &mode); rc = ioctl (fd, PPDATADIR, &mode);
if (rc)
DBG (0, "ppdev ioctl returned <%s> (%s:%d)\n", strerror (errno),
__FILE__, __LINE__);
mode = IEEE1284_MODE_EPP | IEEE1284_DATA; mode = IEEE1284_MODE_EPP | IEEE1284_DATA;
rc = ioctl (fd, PPSETMODE, &mode); rc = ioctl (fd, PPSETMODE, &mode);
if (rc)
DBG (0, "ppdev ioctl returned <%s> (%s:%d)\n", strerror (errno),
__FILE__, __LINE__);
rc = read (fd, dest + size - 1, 1); rc = read (fd, dest + size - 1, 1);
mode = 0; /* forward */ mode = 0; /* forward */
rc = ioctl (fd, PPDATADIR, &mode); rc = ioctl (fd, PPDATADIR, &mode);
if (rc)
DBG (0, "ppdev ioctl returned <%s> (%s:%d)\n", strerror (errno),
__FILE__, __LINE__);
return; return;
} }
@ -1787,10 +1860,16 @@ EPPWriteBuffer (int size, unsigned char *source)
bval = 0xC0; bval = 0xC0;
mode = IEEE1284_MODE_EPP | IEEE1284_ADDR; mode = IEEE1284_MODE_EPP | IEEE1284_ADDR;
rc = ioctl (fd, PPSETMODE, &mode); rc = ioctl (fd, PPSETMODE, &mode);
if (rc)
DBG (0, "ppdev ioctl returned <%s> (%s:%d)\n", strerror (errno),
__FILE__, __LINE__);
rc = write (fd, &bval, 1); rc = write (fd, &bval, 1);
mode = IEEE1284_MODE_EPP | IEEE1284_DATA; mode = IEEE1284_MODE_EPP | IEEE1284_DATA;
rc = ioctl (fd, PPSETMODE, &mode); rc = ioctl (fd, PPSETMODE, &mode);
if (rc)
DBG (0, "ppdev ioctl returned <%s> (%s:%d)\n", strerror (errno),
__FILE__, __LINE__);
rc = write (fd, source, size); rc = write (fd, source, size);
return; return;
} }
@ -1894,7 +1973,7 @@ static void
EPPRead32Buffer (int size, unsigned char *dest) EPPRead32Buffer (int size, unsigned char *dest)
{ {
#ifdef HAVE_LINUX_PPDEV_H #ifdef HAVE_LINUX_PPDEV_H
int fd, mode, rc,nb; int fd, mode, rc, nb;
unsigned char bval; unsigned char bval;
#endif #endif
int control; int control;
@ -1914,40 +1993,67 @@ EPPRead32Buffer (int size, unsigned char *dest)
bval = 0x80; bval = 0x80;
mode = IEEE1284_MODE_EPP | IEEE1284_ADDR; mode = IEEE1284_MODE_EPP | IEEE1284_ADDR;
rc = ioctl (fd, PPSETMODE, &mode); rc = ioctl (fd, PPSETMODE, &mode);
if (rc)
DBG (0, "ppdev ioctl returned <%s> (%s:%d)\n", strerror (errno),
__FILE__, __LINE__);
rc = write (fd, &bval, 1); rc = write (fd, &bval, 1);
mode = 1; /* data_reverse */ mode = 1; /* data_reverse */
rc = ioctl (fd, PPDATADIR, &mode); rc = ioctl (fd, PPDATADIR, &mode);
if (rc)
DBG (0, "ppdev ioctl returned <%s> (%s:%d)\n", strerror (errno),
__FILE__, __LINE__);
#ifdef PPSETFLAGS #ifdef PPSETFLAGS
mode = PP_FASTREAD; mode = PP_FASTREAD;
rc = ioctl (fd, PPSETFLAGS, &mode); rc = ioctl (fd, PPSETFLAGS, &mode);
if (rc)
DBG (0, "ppdev ioctl returned <%s> (%s:%d)\n", strerror (errno),
__FILE__, __LINE__);
#endif #endif
mode = IEEE1284_MODE_EPP | IEEE1284_DATA; mode = IEEE1284_MODE_EPP | IEEE1284_DATA;
rc = ioctl (fd, PPSETMODE, &mode); rc = ioctl (fd, PPSETMODE, &mode);
nb=0; if (rc)
while(nb<size-4) DBG (0, "ppdev ioctl returned <%s> (%s:%d)\n", strerror (errno),
{ __FILE__, __LINE__);
rc = read (fd, dest+nb, size - 4-nb); nb = 0;
nb+=rc; while (nb < size - 4)
} {
rc = read (fd, dest + nb, size - 4 - nb);
nb += rc;
}
rc = read (fd, dest + size - 4, 3); rc = read (fd, dest + size - 4, 3);
mode = 0; /* forward */ mode = 0; /* forward */
rc = ioctl (fd, PPDATADIR, &mode); rc = ioctl (fd, PPDATADIR, &mode);
if (rc)
DBG (0, "ppdev ioctl returned <%s> (%s:%d)\n", strerror (errno),
__FILE__, __LINE__);
bval = 0xA0; bval = 0xA0;
mode = IEEE1284_MODE_EPP | IEEE1284_ADDR; mode = IEEE1284_MODE_EPP | IEEE1284_ADDR;
rc = ioctl (fd, PPSETMODE, &mode); rc = ioctl (fd, PPSETMODE, &mode);
if (rc)
DBG (0, "ppdev ioctl returned <%s> (%s:%d)\n", strerror (errno),
__FILE__, __LINE__);
rc = write (fd, &bval, 1); rc = write (fd, &bval, 1);
mode = 1; /* data_reverse */ mode = 1; /* data_reverse */
rc = ioctl (fd, PPDATADIR, &mode); rc = ioctl (fd, PPDATADIR, &mode);
if (rc)
DBG (0, "ppdev ioctl returned <%s> (%s:%d)\n", strerror (errno),
__FILE__, __LINE__);
mode = IEEE1284_MODE_EPP | IEEE1284_DATA; mode = IEEE1284_MODE_EPP | IEEE1284_DATA;
rc = ioctl (fd, PPSETMODE, &mode); rc = ioctl (fd, PPSETMODE, &mode);
if (rc)
DBG (0, "ppdev ioctl returned <%s> (%s:%d)\n", strerror (errno),
__FILE__, __LINE__);
rc = read (fd, dest + size - 1, 1); rc = read (fd, dest + size - 1, 1);
mode = 0; /* forward */ mode = 0; /* forward */
rc = ioctl (fd, PPDATADIR, &mode); rc = ioctl (fd, PPDATADIR, &mode);
if (rc)
DBG (0, "ppdev ioctl returned <%s> (%s:%d)\n", strerror (errno),
__FILE__, __LINE__);
return; return;
} }
@ -2001,14 +2107,23 @@ EPPWrite32Buffer (int size, unsigned char *source)
bval = 0xC0; bval = 0xC0;
mode = IEEE1284_MODE_EPP | IEEE1284_ADDR; mode = IEEE1284_MODE_EPP | IEEE1284_ADDR;
rc = ioctl (fd, PPSETMODE, &mode); rc = ioctl (fd, PPSETMODE, &mode);
if (rc)
DBG (0, "ppdev ioctl returned <%s> (%s:%d)\n", strerror (errno),
__FILE__, __LINE__);
rc = write (fd, &bval, 1); rc = write (fd, &bval, 1);
#ifdef PPSETFLAGS #ifdef PPSETFLAGS
mode = PP_FASTWRITE; mode = PP_FASTWRITE;
rc = ioctl (fd, PPSETFLAGS, &mode); rc = ioctl (fd, PPSETFLAGS, &mode);
if (rc)
DBG (0, "ppdev ioctl returned <%s> (%s:%d)\n", strerror (errno),
__FILE__, __LINE__);
#endif #endif
mode = IEEE1284_MODE_EPP | IEEE1284_DATA; mode = IEEE1284_MODE_EPP | IEEE1284_DATA;
rc = ioctl (fd, PPSETMODE, &mode); rc = ioctl (fd, PPSETMODE, &mode);
if (rc)
DBG (0, "ppdev ioctl returned <%s> (%s:%d)\n", strerror (errno),
__FILE__, __LINE__);
rc = write (fd, source, size); rc = write (fd, source, size);
return; return;
@ -2077,12 +2192,21 @@ ParportPausedReadBuffer (int size, unsigned char *dest)
mode = 1; /* data_reverse */ mode = 1; /* data_reverse */
rc = ioctl (fd, PPDATADIR, &mode); rc = ioctl (fd, PPDATADIR, &mode);
if (rc)
DBG (0, "ppdev ioctl returned <%s> (%s:%d)\n", strerror (errno),
__FILE__, __LINE__);
#ifdef PPSETFLAGS #ifdef PPSETFLAGS
mode = PP_FASTREAD; mode = PP_FASTREAD;
rc = ioctl (fd, PPSETFLAGS, &mode); rc = ioctl (fd, PPSETFLAGS, &mode);
if (rc)
DBG (0, "ppdev ioctl returned <%s> (%s:%d)\n", strerror (errno),
__FILE__, __LINE__);
#endif #endif
mode = IEEE1284_MODE_EPP | IEEE1284_DATA; mode = IEEE1284_MODE_EPP | IEEE1284_DATA;
rc = ioctl (fd, PPSETMODE, &mode); rc = ioctl (fd, PPSETMODE, &mode);
if (rc)
DBG (0, "ppdev ioctl returned <%s> (%s:%d)\n", strerror (errno),
__FILE__, __LINE__);
if ((size & 0x03) != 0) if ((size & 0x03) != 0)
{ {
@ -2093,6 +2217,9 @@ ParportPausedReadBuffer (int size, unsigned char *dest)
dest++; dest++;
bread++; bread++;
rc = ioctl (fd, PPRSTATUS, &status); rc = ioctl (fd, PPRSTATUS, &status);
if (rc)
DBG (0, "ppdev ioctl returned <%s> (%s:%d)\n", strerror (errno),
__FILE__, __LINE__);
error = status & 0x08; error = status & 0x08;
} }
if (error) if (error)
@ -2127,6 +2254,9 @@ ParportPausedReadBuffer (int size, unsigned char *dest)
if (size > 0) if (size > 0)
{ {
rc = ioctl (fd, PPRSTATUS, &status); rc = ioctl (fd, PPRSTATUS, &status);
if (rc)
DBG (0, "ppdev ioctl returned <%s> (%s:%d)\n",
strerror (errno), __FILE__, __LINE__);
word = status & 0x10; word = status & 0x10;
error = status & 0x08; error = status & 0x08;
} }
@ -2148,6 +2278,9 @@ ParportPausedReadBuffer (int size, unsigned char *dest)
{ {
c = 0; c = 0;
rc = ioctl (fd, PPRSTATUS, &status); rc = ioctl (fd, PPRSTATUS, &status);
if (rc)
DBG (0, "ppdev ioctl returned <%s> (%s:%d)\n", strerror (errno),
__FILE__, __LINE__);
error = status & 0x08; error = status & 0x08;
if (error) if (error)
c = WaitOnError (); c = WaitOnError ();
@ -2176,10 +2309,16 @@ ParportPausedReadBuffer (int size, unsigned char *dest)
if (size) if (size)
{ {
rc = ioctl (fd, PPRSTATUS, &status); rc = ioctl (fd, PPRSTATUS, &status);
if (rc)
DBG (0, "ppdev ioctl returned <%s> (%s:%d)\n",
strerror (errno), __FILE__, __LINE__);
error = status & 0x08; error = status & 0x08;
if (!error) if (!error)
{ {
rc = ioctl (fd, PPRSTATUS, &status); rc = ioctl (fd, PPRSTATUS, &status);
if (rc)
DBG (0, "ppdev ioctl returned <%s> (%s:%d)\n",
strerror (errno), __FILE__, __LINE__);
error = status & 0x08; error = status & 0x08;
} }
} }
@ -2195,20 +2334,35 @@ ParportPausedReadBuffer (int size, unsigned char *dest)
/* end reading */ /* end reading */
mode = 0; /* forward */ mode = 0; /* forward */
rc = ioctl (fd, PPDATADIR, &mode); rc = ioctl (fd, PPDATADIR, &mode);
if (rc)
DBG (0, "ppdev ioctl returned <%s> (%s:%d)\n", strerror (errno),
__FILE__, __LINE__);
bval = 0xA0; bval = 0xA0;
mode = IEEE1284_MODE_EPP | IEEE1284_ADDR; mode = IEEE1284_MODE_EPP | IEEE1284_ADDR;
rc = ioctl (fd, PPSETMODE, &mode); rc = ioctl (fd, PPSETMODE, &mode);
if (rc)
DBG (0, "ppdev ioctl returned <%s> (%s:%d)\n", strerror (errno),
__FILE__, __LINE__);
rc = write (fd, &bval, 1); rc = write (fd, &bval, 1);
mode = 1; /* data_reverse */ mode = 1; /* data_reverse */
rc = ioctl (fd, PPDATADIR, &mode); rc = ioctl (fd, PPDATADIR, &mode);
if (rc)
DBG (0, "ppdev ioctl returned <%s> (%s:%d)\n", strerror (errno),
__FILE__, __LINE__);
mode = IEEE1284_MODE_EPP | IEEE1284_DATA; mode = IEEE1284_MODE_EPP | IEEE1284_DATA;
rc = ioctl (fd, PPSETMODE, &mode); rc = ioctl (fd, PPSETMODE, &mode);
if (rc)
DBG (0, "ppdev ioctl returned <%s> (%s:%d)\n", strerror (errno),
__FILE__, __LINE__);
rc = read (fd, dest, 1); rc = read (fd, dest, 1);
bread++; bread++;
mode = 0; /* forward */ mode = 0; /* forward */
rc = ioctl (fd, PPDATADIR, &mode); rc = ioctl (fd, PPDATADIR, &mode);
if (rc)
DBG (0, "ppdev ioctl returned <%s> (%s:%d)\n", strerror (errno),
__FILE__, __LINE__);
return (bread); return (bread);
} }
#endif #endif
@ -2442,7 +2596,9 @@ retry:
reg = EPPRegisterRead (0x1C); reg = EPPRegisterRead (0x1C);
DBG (16, "SendWord, reg1C=0x%02X (%s:%d)\n", reg, __FILE__, __LINE__); DBG (16, "SendWord, reg1C=0x%02X (%s:%d)\n", reg, __FILE__, __LINE__);
/* model 0x07 has always the last bit set to 1, and even bit 1 */ /* model 0x07 has always the last bit set to 1, and even bit 1 */
/* when UTA is present, we get 0x6B there */
scannerStatus = reg & 0xFC; scannerStatus = reg & 0xFC;
reg = reg & 0x10; reg = reg & 0x10;
if (reg != 0x10) if (reg != 0x10)
{ {
@ -7635,6 +7791,7 @@ sanei_umax_pp_StartScan (int x, int y, int width, int height, int dpi,
0x41, 0xA0, 0x0A, 0x8B, 0x49, 0x2A, 0xE9, 0x68, 0xDF, 0x33, 0x1A, 0x00, 0x41, 0xA0, 0x0A, 0x8B, 0x49, 0x2A, 0xE9, 0x68, 0xDF, 0x33, 0x1A, 0x00,
-1 -1
}; };
#define UMAX_PP_DANGEROUS_EXPERIMENT 666
#ifdef UMAX_PP_DANGEROUS_EXPERIMENT #ifdef UMAX_PP_DANGEROUS_EXPERIMENT
FILE *f = NULL; FILE *f = NULL;
char line[1024], *ptr; char line[1024], *ptr;
@ -8009,12 +8166,12 @@ sanei_umax_pp_StartScan (int x, int y, int width, int height, int dpi,
/*opsc53[13] = 0x10; blue bit */ /*opsc53[13] = 0x10; blue bit */
/* with cmd 01, may be use to do 3 pass scanning ? */ /* with cmd 01, may be use to do 3 pass scanning ? */
/* bits 0 to 3 seem related to sharpness */ /* bits 0 to 3 seem related to sharpness */
f = fopen ("dangerous.params", "rb"); f = fopen ("/tmp/dangerous.params", "rb");
if (f != NULL) if (f != NULL)
{ {
fgets (line, 1024, f);
while (!feof (f)) while (!feof (f))
{ {
fgets (line, 1024, f);
channel = 0; channel = 0;
if (sscanf (line, "CMD%1d", &channel) != 1) if (sscanf (line, "CMD%1d", &channel) != 1)
channel = 0; channel = 0;
@ -8037,19 +8194,27 @@ sanei_umax_pp_StartScan (int x, int y, int width, int height, int dpi,
default: default:
channel = 0; channel = 0;
} }
printf ("CMD%d BEFORE: ", channel);
for (i = 0; i < max; i++)
printf ("%02x ", base[i]);
printf ("\n");
if (channel > 0) if (channel > 0)
{ {
ptr = line + 6; ptr = line + 6;
for (i = 0; (i < max) && ((ptr - line) < strlen (line)); i++) for (i = 0; (i < max) && ((ptr - line) < strlen (line)); i++)
{ {
if (ptr[0] != '-') if (ptr[0] != '-')
{ {
sscanf (ptr, "%02X", base + i); sscanf (ptr, "%X", base + i);
} }
else ptr += 3;
ptr += 3;
} }
} }
printf ("CMD%d AFTER : ", channel);
for (i = 0; i < max; i++)
printf ("%02X ", base[i]);
printf ("\n");
fgets (line, 1024, f);
} }
fclose (f); fclose (f);
} }

Wyświetl plik

@ -5,7 +5,7 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: sane-backends 1.0.8\n" "Project-Id-Version: sane-backends 1.0.8\n"
"POT-Creation-Date: 2002-06-04 19:13+0200\n" "POT-Creation-Date: 2002-08-17 16:38+0200\n"
"PO-Revision-Date: 2002-06-04 19:30GMT\n" "PO-Revision-Date: 2002-06-04 19:30GMT\n"
"Last-Translator: Heiko Schaefer <heiko@burmagroup.de>\n" "Last-Translator: Heiko Schaefer <heiko@burmagroup.de>\n"
"Language-Team: <de@li.org>\n" "Language-Team: <de@li.org>\n"
@ -30,104 +30,112 @@ msgstr "Farbe"
msgid "Scan Mode" msgid "Scan Mode"
msgstr "Scanmodus" msgstr "Scanmodus"
#: .tmp/umax_pp.c:396 #: .tmp/umax_pp.c:397
msgid "Geometry" msgid "Geometry"
msgstr "Geometrie" msgstr "Geometrie"
#: .tmp/umax_pp.c:444 #: .tmp/umax_pp.c:446
msgid "Enhancement" msgid "Enhancement"
msgstr "Verbesserung" msgstr "Verbesserung"
#: .tmp/umax_pp.c:452 #: .tmp/umax_pp.c:455
msgid "lamp-control" msgid "lamp-control"
msgstr "Lampenkontrolle" msgstr "Lampenkontrolle"
#: .tmp/umax_pp.c:453 #: .tmp/umax_pp.c:456
msgid "Lamp on" msgid "Lamp on"
msgstr "Lampe an" msgstr "Lampe an"
#: .tmp/umax_pp.c:454 #: .tmp/umax_pp.c:457
msgid "Sets lamp on/off" msgid "Sets lamp on/off"
msgstr "Schaltet die Lampe an/aus" msgstr "Schaltet die Lampe an/aus"
#: .tmp/umax_pp.c:519 #: .tmp/umax_pp.c:465
#, fuzzy
msgid "UTA-control"
msgstr "Lampenkontrolle"
#: .tmp/umax_pp.c:466
msgid "UTA on"
msgstr ""
#: .tmp/umax_pp.c:467
#, fuzzy
msgid "Sets UTA on/off"
msgstr "Schaltet die Lampe an/aus"
#: .tmp/umax_pp.c:532
msgid "Gain" msgid "Gain"
msgstr "Gewinne" msgstr "Gewinne"
#: .tmp/umax_pp.c:520 #: .tmp/umax_pp.c:533
msgid "Color channels gain settings" msgid "Color channels gain settings"
msgstr "Farbkanalgewinneinstellungen" msgstr "Farbkanalgewinneinstellungen"
#: .tmp/umax_pp.c:527 #: .tmp/umax_pp.c:540
msgid "Gray gain" msgid "Gray gain"
msgstr "Graugewinn" msgstr "Graugewinn"
#: .tmp/umax_pp.c:528 #: .tmp/umax_pp.c:541
msgid "Sets gray channel gain" msgid "Sets gray channel gain"
msgstr "Setzt Graukanalgewinn" msgstr "Setzt Graukanalgewinn"
#: .tmp/umax_pp.c:539 #: .tmp/umax_pp.c:552
msgid "Red gain" msgid "Red gain"
msgstr "Rotgewinn" msgstr "Rotgewinn"
#: .tmp/umax_pp.c:540 #: .tmp/umax_pp.c:553
msgid "Sets red channel gain" msgid "Sets red channel gain"
msgstr "Setzt den Rotkanalgewinn" msgstr "Setzt den Rotkanalgewinn"
#: .tmp/umax_pp.c:551 #: .tmp/umax_pp.c:564
msgid "Green gain" msgid "Green gain"
msgstr "Grüngewinn" msgstr "Grüngewinn"
#: .tmp/umax_pp.c:552 #: .tmp/umax_pp.c:565
msgid "Sets green channel gain" msgid "Sets green channel gain"
msgstr "Setzt den Grünkanalgewinn" msgstr "Setzt den Grünkanalgewinn"
#: .tmp/umax_pp.c:563 #: .tmp/umax_pp.c:576
msgid "Blue gain" msgid "Blue gain"
msgstr "Blaugewinn" msgstr "Blaugewinn"
#: .tmp/umax_pp.c:564 #: .tmp/umax_pp.c:577
msgid "Sets blue channel gain" msgid "Sets blue channel gain"
msgstr "Setzt den Blaukanalgewinn" msgstr "Setzt den Blaukanalgewinn"
#: .tmp/umax_pp.c:575 #: .tmp/umax_pp.c:590
#, fuzzy
msgid "Highlight"
msgstr "Belichtung"
#: .tmp/umax_pp.c:577
msgid "Color channels highlight settings" msgid "Color channels highlight settings"
msgstr "Farbkanalbelichtungseinstellungen" msgstr "Farbkanalbelichtungseinstellungen"
#: .tmp/umax_pp.c:584 #: .tmp/umax_pp.c:597
msgid "Gray highlight" msgid "Gray highlight"
msgstr "Graubelichtung" msgstr "Graubelichtung"
#: .tmp/umax_pp.c:586 #: .tmp/umax_pp.c:599
msgid "Sets gray channel highlight" msgid "Sets gray channel highlight"
msgstr "Setzt die Graukanalbelichtung" msgstr "Setzt die Graukanalbelichtung"
#: .tmp/umax_pp.c:597 #: .tmp/umax_pp.c:610
msgid "Red highlight" msgid "Red highlight"
msgstr "Rotbelichtung" msgstr "Rotbelichtung"
#: .tmp/umax_pp.c:598 #: .tmp/umax_pp.c:611
msgid "Sets red channel highlight" msgid "Sets red channel highlight"
msgstr "Setzt die Rotkanalbelichtung" msgstr "Setzt die Rotkanalbelichtung"
#: .tmp/umax_pp.c:609 #: .tmp/umax_pp.c:622
msgid "Green highlight" msgid "Green highlight"
msgstr "Grünbelichtung" msgstr "Grünbelichtung"
#: .tmp/umax_pp.c:611 #: .tmp/umax_pp.c:624
msgid "Sets green channel highlight" msgid "Sets green channel highlight"
msgstr "Setzt die Grünkanalbelichtung" msgstr "Setzt die Grünkanalbelichtung"
#: .tmp/umax_pp.c:622 #: .tmp/umax_pp.c:635
msgid "Blue highlight" msgid "Blue highlight"
msgstr "Blaubelichtung" msgstr "Blaubelichtung"
#: .tmp/umax_pp.c:624 #: .tmp/umax_pp.c:637
msgid "Sets blue channel highlight" msgid "Sets blue channel highlight"
msgstr "Setzt die Blaukanalbelichtung" msgstr "Setzt die Blaukanalbelichtung"

Wyświetl plik

@ -312,7 +312,7 @@ main (int argc, char **argv)
} }
i++; i++;
found = 1; found = 1;
if (strlen (argv[i]) != 3) if ((strlen (argv[i]) < 3)||(strlen (argv[i]) > 4))
{ {
Usage (argv[0]); Usage (argv[0]);
fprintf (stderr, "expected hex io port value ( ex: 378 )\n"); fprintf (stderr, "expected hex io port value ( ex: 378 )\n");
@ -367,7 +367,7 @@ main (int argc, char **argv)
} }
if (trace) if (trace)
{ {
printf ("UMAX 1220P scanning program version 2.15 starting ...\n"); printf ("UMAX 1220P scanning program version 2.16 starting ...\n");
#ifdef HAVE_LINUX_PPDEV_H #ifdef HAVE_LINUX_PPDEV_H
printf ("ppdev character device built-in.\n"); printf ("ppdev character device built-in.\n");
#endif #endif