From 710e8d44233675d5ee3c97f4380dd040b19e3962 Mon Sep 17 00:00:00 2001 From: Oliver Schwartz Date: Mon, 31 Oct 2005 21:08:47 +0000 Subject: [PATCH] Distinguish between Benq 5000/5000E/5000U --- ChangeLog | 9 +++++++++ backend/snapscan-options.c | 10 +++++++++- backend/snapscan-scsi.c | 5 +++++ backend/snapscan-sources.c | 15 +++++++++------ backend/snapscan.c | 4 ++++ backend/snapscan.conf | 2 +- backend/snapscan.h | 13 +++++++++---- doc/descriptions/snapscan.desc | 16 +++++++++++++--- 8 files changed, 59 insertions(+), 15 deletions(-) diff --git a/ChangeLog b/ChangeLog index 05e2d9d80..c45af28ee 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2005-10-24 Oliver Schwartz + + * backend/snapscan.c backend/snapscan-scsi.c backend/snapscan.h + backend/snapscan-options.c doc/descriptions/snapscan.desc: + Distinguish between 5000/5000E/5000U + * backend/snapscan-sources.c: Enable deinterlacer for 5000E/5000U + for 1200 DPI + * backend/snapscan.conf: Fix names for 5000/5000E/5000U + 2005-10-30 Giuseppe Sacco * po/*it.po: Updated italian translation diff --git a/backend/snapscan-options.c b/backend/snapscan-options.c index 968fe3c99..90bc3a610 100644 --- a/backend/snapscan-options.c +++ b/backend/snapscan-options.c @@ -237,6 +237,8 @@ static void init_options (SnapScan_Scanner * ps) {8, 50, 75, 100, 150, 200, 300, 450, 600}; static SANE_Word resolutions_1200[] = {10, 50, 75, 100, 150, 200, 300, 450, 600, 900, 1200}; + static SANE_Word resolutions_1200_5000e[] = + {9, 50, 75, 100, 150, 200, 300, 450, 600, 1200}; static SANE_Word resolutions_1600[] = {10, 50, 75, 100, 150, 200, 300, 400, 600, 800, 1600}; static SANE_Word resolutions_2400[] = @@ -335,10 +337,13 @@ static void init_options (SnapScan_Scanner * ps) case SNAPSCANE52: case PRISA5300: case PRISA1240: - case PRISA5000: case ARCUS1200: po[OPT_SCANRES].constraint.word_list = resolutions_1200; break; + case PRISA5000E: + case PRISA5000: + po[OPT_SCANRES].constraint.word_list = resolutions_1200_5000e; + break; case PERFECTION1670: po[OPT_SCANRES].constraint.word_list = resolutions_1600; break; @@ -1602,6 +1607,9 @@ SANE_Status sane_control_option (SANE_Handle h, /* * $Log$ + * Revision 1.29 2005/10/31 21:08:47 oliver-guest + * Distinguish between Benq 5000/5000E/5000U + * * Revision 1.28 2005/10/24 19:46:40 oliver-guest * Preview and range fix for Epson 2480/2580 * diff --git a/backend/snapscan-scsi.c b/backend/snapscan-scsi.c index b14a2d16e..58fdcb89f 100644 --- a/backend/snapscan-scsi.c +++ b/backend/snapscan-scsi.c @@ -817,6 +817,7 @@ static SANE_Status set_window (SnapScan_Scanner *pss) switch (pss->pdev->model) { case PRISA5000: + case PRISA5000E: pos_factor = (pss->res > 600) ? 1200 : 600; break; case PERFECTION1270: @@ -1412,6 +1413,7 @@ static SANE_Status download_firmware(SnapScan_Scanner * pss) case PRISA4300: case PRISA4300_2: case PRISA5000: + case PRISA5000E: case PRISA5300: /* ACER firmware files do not contain an info block */ fseek(fd, 0, SEEK_END); @@ -1476,6 +1478,9 @@ static SANE_Status download_firmware(SnapScan_Scanner * pss) /* * $Log$ + * Revision 1.46 2005/10/31 21:08:47 oliver-guest + * Distinguish between Benq 5000/5000E/5000U + * * Revision 1.45 2005/10/24 19:46:40 oliver-guest * Preview and range fix for Epson 2480/2580 * diff --git a/backend/snapscan-sources.c b/backend/snapscan-sources.c index 566532dbd..692c19dbc 100644 --- a/backend/snapscan-sources.c +++ b/backend/snapscan-sources.c @@ -1140,8 +1140,8 @@ static SANE_Status create_source_chain (SnapScan_Scanner *pss, some scanners like the Epson Perfection 2480/2580 at 2400 dpi. */ if (status == SANE_STATUS_GOOD && - pss->pdev->model == PERFECTION2480 && - pss->res == 2400) + ((pss->pdev->model == PERFECTION2480 && pss->res == 2400) || + (pss->pdev->model == PRISA5000E && pss->res == 1200))) status = create_Deinterlacer (pss, *pps, pps); break; case MD_BILEVELCOLOUR: @@ -1149,13 +1149,13 @@ static SANE_Status create_source_chain (SnapScan_Scanner *pss, if (status == SANE_STATUS_GOOD) status = create_RGBRouter (pss, *pps, pps); if (status == SANE_STATUS_GOOD && - pss->pdev->model == PERFECTION2480 && - pss->res == 2400) + ((pss->pdev->model == PERFECTION2480 && pss->res == 2400) || + (pss->pdev->model == PRISA5000E && pss->res == 1200))) status = create_Deinterlacer (pss, *pps, pps); break; case MD_GREYSCALE: - if (pss->pdev->model == PERFECTION2480 && - pss->res == 2400) + if ((pss->pdev->model == PERFECTION2480 && pss->res == 2400) || + (pss->pdev->model == PRISA5000E && pss->res == 1200)) status = create_Deinterlacer (pss, *pps, pps); break; case MD_LINEART: @@ -1177,6 +1177,9 @@ static SANE_Status create_source_chain (SnapScan_Scanner *pss, /* * $Log$ + * Revision 1.15 2005/10/31 21:08:47 oliver-guest + * Distinguish between Benq 5000/5000E/5000U + * * Revision 1.14 2005/10/13 22:43:30 oliver-guest * Fixes for 16 bit scan mode from Simon Munton * diff --git a/backend/snapscan.c b/backend/snapscan.c index 775530717..a04740b04 100644 --- a/backend/snapscan.c +++ b/backend/snapscan.c @@ -174,6 +174,7 @@ static inline int calibration_line_length(SnapScan_Scanner *pss) switch (pss->pdev->model) { + case PRISA5000E: case PRISA5000: pos_factor = 600; break; @@ -1914,6 +1915,9 @@ SANE_Status sane_get_select_fd (SANE_Handle h, SANE_Int * fd) /* * $Log$ + * Revision 1.57 2005/10/31 21:08:47 oliver-guest + * Distinguish between Benq 5000/5000E/5000U + * * Revision 1.56 2005/10/24 19:46:40 oliver-guest * Preview and range fix for Epson 2480/2580 * diff --git a/backend/snapscan.conf b/backend/snapscan.conf index f05df4af1..63cbfae5f 100644 --- a/backend/snapscan.conf +++ b/backend/snapscan.conf @@ -56,7 +56,7 @@ usb 0x04a5 0x20b0 # Benq/Acer/Vuego 4300 usb 0x04a5 0x20de -# Benq 5000S +# Benq 5000E / 5000U usb 0x04a5 0x20f8 # Benq 5000 diff --git a/backend/snapscan.h b/backend/snapscan.h index 220d291bf..9be2499fc 100644 --- a/backend/snapscan.h +++ b/backend/snapscan.h @@ -98,6 +98,7 @@ typedef enum PRISA4300, /* Acer ScanPrisa 3300/4300 - 600 DPI */ PRISA4300_2, /* Acer ScanPrisa 3300/4300 - 600 DPI, 42 bit*/ PRISA5000, /* Acer ScanPrisa 5000 - 1200 DPI */ + PRISA5000E, /* Acer ScanPrisa 5000E/5000U - 1200 DPI */ PRISA5300, /* Acer ScanPrisa 5300 - 1200 DPI */ PERFECTION660, /* Epson Perfection 660 - 1200 DPI */ PERFECTION1270, /* Epson Perfection 1270 - 1600 DPI */ @@ -133,8 +134,9 @@ static struct SnapScan_Driver_desc drivers[] = {PRISA4300, "Acer4300"}, {PRISA4300_2, "Acer4300 (42 bit)"}, {PRISA1240, "Acer1240"}, - {PRISA5000, "Acer5000"}, - {PRISA5300, "Acer5300"}, + {PRISA5000E, "Benq 5000E/5000U"}, + {PRISA5000, "Benq 5000"}, + {PRISA5300, "Benq 5300"}, {ARCUS1200, "Arcus1200"}, {PERFECTION660, "Perfection 660"}, {PERFECTION1270, "Perfection 1270"}, @@ -169,9 +171,9 @@ static struct SnapScan_Model_desc scanners[] = {"FlatbedScanner22", PRISA4300_2}, {"FlatbedScanner23", PRISA4300_2}, {"FlatbedScanner24", PRISA5300}, - {"FlatbedScanner25", PRISA5000}, + {"FlatbedScanner25", PRISA5000E},/* 5000E/5000U */ {"FlatbedScanner40", PRISA5000}, /* 5250C */ - {"FlatbedScanner42", PRISA5000}, /* 5000S */ + {"FlatbedScanner42", PRISA5000}, /* 5000 */ {"SNAPSCAN 1212U", SNAPSCAN1212U}, {"SNAPSCAN 1212U_2", SNAPSCAN1212U}, {"SNAPSCAN e10", SNAPSCANE20}, @@ -415,6 +417,9 @@ struct snapscan_scanner /* * $Log$ + * Revision 1.38 2005/10/31 21:08:47 oliver-guest + * Distinguish between Benq 5000/5000E/5000U + * * Revision 1.37 2005/10/24 19:46:40 oliver-guest * Preview and range fix for Epson 2480/2580 * diff --git a/doc/descriptions/snapscan.desc b/doc/descriptions/snapscan.desc index ea6de627e..d4d6b7024 100644 --- a/doc/descriptions/snapscan.desc +++ b/doc/descriptions/snapscan.desc @@ -14,7 +14,7 @@ :version "1.4" ; version of backend :manpage "sane-snapscan" ; name of manpage (if it exists) :url "http://snapscan.sourceforge.net/" ; backend's web page -:comment "Supported bit depths: 24 bit (color), 8 bit (gray)" +:comment "Supported bit depths: 24 bit (color), 48 bit (color, Epson) 8 bit (gray)" :devicetype :scanner ; start of a list of devices.... ; other types: :stillcam, :vidcam, @@ -175,10 +175,20 @@ :interface "USB" :status :good -:model "5000" +:model "5000E" :interface "USB" :status :basic -:comment "Working up to 600 DPI" +:comment "USB ID 0x04a5,0x20fc: Same as 5000U, working up to 600 DPI" + +:model "5000U" +:interface "USB" +:status :basic +:comment "USB ID 0x04a5,0x20fc: Same as 5000E, working up to 600 DPI" + +:model "5000" +:interface "USB" +:status :untested +:comment "USB ID 0x04a5,0x20f8: Status unknown, please contact oliverschwartz@users.sf.net" :model "5300" :interface "USB"