Added support for Epson 3490/3590 (thanks to Matt Judge)

merge-requests/1/head
Oliver Schwartz 2005-08-15 18:06:38 +00:00
rodzic a4a88fccbf
commit 59fc80c118
7 zmienionych plików z 67 dodań i 6 usunięć

Wyświetl plik

@ -1,3 +1,10 @@
2005-08-15 Oliver Schwartz <Oliver.Schwartz@gmx.de>
* backend/snapscan.c backend/snapscan-options.c backend/snapscan-scsi.c
backend/snapscan.h doc/descriptions/snapscan.desc
backend/snapscan.conf: Added support for Epson Perfection 3490/3590
(thanks to Matt Judge).
2005-08-15 Gerhard Jaeger <gerhard@gjaeger.de>
* doc/plustek/Plustek-USB.changes: Update.

Wyświetl plik

@ -164,6 +164,16 @@ static const SANE_Range y_range_tpo_2480 =
SANE_FIX (0.0), SANE_FIX (80.0), 0
}; /* mm */
/* TPO range for the Epson 3490 */
static const SANE_Range x_range_tpo_3490 =
{
SANE_FIX (0.0), SANE_FIX (33.0), 0
}; /* mm */
static const SANE_Range y_range_tpo_3490 =
{
SANE_FIX (0.0), SANE_FIX (162.0), 0
}; /* mm */
static SANE_Range x_range_tpo;
static SANE_Range y_range_tpo;
static const SANE_Range gamma_range =
@ -221,6 +231,9 @@ static void init_options (SnapScan_Scanner * ps)
{10, 50, 75, 100, 150, 200, 300, 400, 600, 800, 1600};
static SANE_Word resolutions_2400[] =
{10, 50, 75, 100, 150, 200, 300, 400, 600, 1200, 2400};
static SANE_Word resolutions_3200[] =
{13, 200, 240, 266, 300, 350, 360, 400, 600, 720, 800, 1200, 2400, 3200};
//{17, 50, 72, 96, 150, 200, 240, 266, 300, 350, 360, 400, 600, 720, 800, 1200, 2400, 3200};
static SANE_String_Const names_all[] =
{md_colour, md_bilevelcolour, md_greyscale, md_lineart, NULL};
static SANE_String_Const names_basic[] =
@ -253,6 +266,10 @@ static void init_options (SnapScan_Scanner * ps)
x_range_tpo = x_range_tpo_2480;
y_range_tpo = y_range_tpo_2480;
break;
case PERFECTION3490:
x_range_tpo = x_range_tpo_3490;
y_range_tpo = y_range_tpo_3490;
break;
default:
x_range_tpo = x_range_tpo_default;
y_range_tpo = y_range_tpo_default;
@ -309,6 +326,9 @@ static void init_options (SnapScan_Scanner * ps)
case PERFECTION2480:
po[OPT_SCANRES].constraint.word_list = resolutions_2400;
break;
case PERFECTION3490:
po[OPT_SCANRES].constraint.word_list = resolutions_3200;
break;
default:
po[OPT_SCANRES].constraint.word_list = resolutions_600;
break;
@ -532,6 +552,7 @@ static void init_options (SnapScan_Scanner * ps)
if ((!(ps->hconfig & HCFG_CAL_ALLOWED))
|| (ps->pdev->model == SNAPSCANE52)
|| (ps->pdev->model == PERFECTION1670)
|| (ps->pdev->model == PERFECTION3490)
|| (ps->pdev->model == PRISA5300)) {
po[OPT_QUALITY_CAL].cap |= SANE_CAP_INACTIVE;
ps->val[OPT_QUALITY_CAL].b = SANE_FALSE;
@ -1514,6 +1535,9 @@ SANE_Status sane_control_option (SANE_Handle h,
/*
* $Log$
* Revision 1.22 2005/08/15 18:06:37 oliver-guest
* Added support for Epson 3490/3590 (thanks to Matt Judge)
*
* Revision 1.21 2005/07/20 21:37:29 oliver-guest
* Changed TPO scanning area for 2480/2580, reenabled 2400 DPI for 2480/2580
*

Wyświetl plik

@ -499,15 +499,16 @@ static SANE_Status inquiry (SnapScan_Scanner *pss)
pss->read_bytes = 0;
pss->hwst = pss->buf[INQUIRY_HWST];
pss->hconfig = pss->buf[INQUIRY_HCFG];
pss->bpp = 8;
switch (pss->pdev->model)
{
case PERFECTION1270:
case PERFECTION1670:
case PERFECTION2480:
case PERFECTION3490:
pss->bpp = 14;
break;
default:
pss->bpp = 8;
if (pss->hconfig & HCFG_ADC)
pss->bpp = 10;
break;
@ -774,6 +775,9 @@ static SANE_Status set_window (SnapScan_Scanner *pss)
case PERFECTION2480:
pos_factor = (pss->res > 1200) ? 2400 : 1200;
break;
case PERFECTION3490:
pos_factor = (pss->res > 1600) ? 3200 : 1600;
break;
default:
pos_factor = pss->actual_res;
break;
@ -1331,6 +1335,7 @@ static SANE_Status download_firmware(SnapScan_Scanner * pss)
case PERFECTION1270:
case PERFECTION1670:
case PERFECTION2480:
case PERFECTION3490:
/* Epson firmware files contain an info block which
specifies the length of the firmware data. The
length information is stored at offset 0x64 from
@ -1384,6 +1389,9 @@ static SANE_Status download_firmware(SnapScan_Scanner * pss)
/*
* $Log$
* Revision 1.33 2005/08/15 18:06:37 oliver-guest
* Added support for Epson 3490/3590 (thanks to Matt Judge)
*
* Revision 1.32 2005/07/18 17:37:37 oliver-guest
* ZETA changes for SnapScan backend
*

Wyświetl plik

@ -178,9 +178,8 @@ static inline int calibration_line_length(SnapScan_Scanner *pss)
break;
case PERFECTION1270:
case PERFECTION1670:
pos_factor = 800;
break;
case PERFECTION2480:
case PERFECTION3490:
pos_factor = 800;
break;
default:
@ -1289,6 +1288,7 @@ static SANE_Status send_gamma_table (SnapScan_Scanner *pss, u_char dtc, u_char d
case PERFECTION1270:
case PERFECTION1670:
case PERFECTION2480:
case PERFECTION3490:
/* Some epson scanners need the gamma table twice */
status = send (pss, dtc, dtcq);
CHECK_STATUS (status, me, "2nd send");
@ -1871,6 +1871,9 @@ SANE_Status sane_get_select_fd (SANE_Handle h, SANE_Int * fd)
/*
* $Log$
* Revision 1.50 2005/08/15 18:06:37 oliver-guest
* Added support for Epson 3490/3590 (thanks to Matt Judge)
*
* Revision 1.49 2005/08/07 12:37:29 oliver-guest
* Use first known device if no device is specified
*

Wyświetl plik

@ -107,3 +107,6 @@ usb 0x04b8 0x011f
# Epson Perfection 2480
usb 0x04b8 0x0121
# Epson Perfection 3490
usb 0x04b8 0x0122

Wyświetl plik

@ -102,7 +102,8 @@ typedef enum
PERFECTION660, /* Epson Perfection 660 - 1200 DPI */
PERFECTION1270, /* Epson Perfection 1270 - 1600 DPI */
PERFECTION1670, /* Epson Perfection 1670 - 1600 DPI */
PERFECTION2480,
PERFECTION2480, /* Epson Perfection 2480 - 2400 DPI */
PERFECTION3490, /* Epson Perfection 3490 - 3200 DPI */
ARCUS1200 /* Agfa Arcus 1200 - 1200 DPI (rebadged Acer?) */
} SnapScan_Model;
@ -138,7 +139,8 @@ static struct SnapScan_Driver_desc drivers[] =
{PERFECTION660, "Perfection 660"},
{PERFECTION1270, "Perfection 1270"},
{PERFECTION1670, "Perfection 1670"},
{PERFECTION2480, "Perfection 2480"}
{PERFECTION2480, "Perfection 2480"},
{PERFECTION3490, "Perfection 3490"}
};
#define known_drivers ((int) (sizeof(drivers)/sizeof(drivers[0])))
@ -190,6 +192,7 @@ static struct SnapScan_Model_desc scanners[] =
{"Perfection 660", PERFECTION660},
{"EPSON Scanner", PERFECTION1670}, /* dummy entry to detect scanner */
{"EPSON Scanner1", PERFECTION2480}, /* dummy entry to detect scanner */
{"EPSON Scanner2", PERFECTION3490}, /* dummy entry to detect scanner */
{"ARCUS 1200", ARCUS1200}
};
@ -221,6 +224,7 @@ static char *vendors[] =
#define USB_PRODUCT_PERFECTION1270 0x0120
#define USB_PRODUCT_PERFECTION1670 0x011f
#define USB_PRODUCT_PERFECTION2480 0x0121
#define USB_PRODUCT_PERFECTION3490 0x0122
static SANE_Word usb_vendor_ids[] =
{
@ -245,7 +249,8 @@ static struct SnapScan_USB_Model_desc usb_scanners[] =
{USB_VENDOR_EPSON, USB_PRODUCT_PERFECTION660, PERFECTION660}, /* Epson Perfection 660 */
{USB_VENDOR_EPSON, USB_PRODUCT_PERFECTION1270, PERFECTION1270}, /* Epson Perfection 1270 */
{USB_VENDOR_EPSON, USB_PRODUCT_PERFECTION1670, PERFECTION1670}, /* Epson Perfection 1670 */
{USB_VENDOR_EPSON, USB_PRODUCT_PERFECTION2480, PERFECTION2480} /* Epson Perfection 2480 */
{USB_VENDOR_EPSON, USB_PRODUCT_PERFECTION2480, PERFECTION2480}, /* Epson Perfection 2480 */
{USB_VENDOR_EPSON, USB_PRODUCT_PERFECTION3490, PERFECTION3490} /* Epson Perfection 3490 */
};
#define known_usb_scanners ((int) (sizeof(usb_scanners)/sizeof(usb_scanners[0])))
@ -406,6 +411,9 @@ struct snapscan_scanner
/*
* $Log$
* Revision 1.34 2005/08/15 18:06:37 oliver-guest
* Added support for Epson 3490/3590 (thanks to Matt Judge)
*
* Revision 1.33 2005/02/08 22:17:53 oliver-guest
* Added IDs for Benq 5250C and 5000S
*

Wyświetl plik

@ -251,5 +251,13 @@
:status :basic
:comment "Problems with preview scans reported, unplugging transparency unit seems to help"
:model "Perfection 3490"
:interface "USB"
:status :basic
:model "Perfection 3590"
:interface "USB"
:status :untested
; :comment and :url specifiers are optional after :mfg, :model, :desc,
; and at the top-level.