kopia lustrzana https://gitlab.com/sane-project/backends
SnapScan backend 1.4.15
rodzic
09ac7f1e3b
commit
1d1c4d1d8d
|
@ -58,6 +58,10 @@ static const SANE_Range y_range_fb =
|
||||||
{
|
{
|
||||||
SANE_FIX (0.0), SANE_FIX (297.0), 0
|
SANE_FIX (0.0), SANE_FIX (297.0), 0
|
||||||
}; /* mm */
|
}; /* mm */
|
||||||
|
|
||||||
|
/* default TPO range (shortest y_range
|
||||||
|
to avoid tray collision.
|
||||||
|
*/
|
||||||
static const SANE_Range x_range_tpo_default =
|
static const SANE_Range x_range_tpo_default =
|
||||||
{
|
{
|
||||||
SANE_FIX (0.0), SANE_FIX (129.0), 0
|
SANE_FIX (0.0), SANE_FIX (129.0), 0
|
||||||
|
@ -66,6 +70,8 @@ static const SANE_Range y_range_tpo_default =
|
||||||
{
|
{
|
||||||
SANE_FIX (0.0), SANE_FIX (180.0), 0
|
SANE_FIX (0.0), SANE_FIX (180.0), 0
|
||||||
}; /* mm */
|
}; /* mm */
|
||||||
|
|
||||||
|
/* TPO range for the Agfa 1236 */
|
||||||
static const SANE_Range x_range_tpo_1236 =
|
static const SANE_Range x_range_tpo_1236 =
|
||||||
{
|
{
|
||||||
SANE_FIX (0.0), SANE_FIX (203.0), 0
|
SANE_FIX (0.0), SANE_FIX (203.0), 0
|
||||||
|
@ -74,6 +80,17 @@ static const SANE_Range y_range_tpo_1236 =
|
||||||
{
|
{
|
||||||
SANE_FIX (0.0), SANE_FIX (254.0), 0
|
SANE_FIX (0.0), SANE_FIX (254.0), 0
|
||||||
}; /* mm */
|
}; /* mm */
|
||||||
|
|
||||||
|
/* TPO range for the Agfa e50 */
|
||||||
|
static const SANE_Range x_range_tpo_e50 =
|
||||||
|
{
|
||||||
|
SANE_FIX (0.0), SANE_FIX (40.0), 0
|
||||||
|
}; /* mm */
|
||||||
|
static const SANE_Range y_range_tpo_e50 =
|
||||||
|
{
|
||||||
|
SANE_FIX (0.0), SANE_FIX (240.0), 0
|
||||||
|
}; /* mm */
|
||||||
|
|
||||||
static SANE_Range x_range_tpo;
|
static SANE_Range x_range_tpo;
|
||||||
static SANE_Range y_range_tpo;
|
static SANE_Range y_range_tpo;
|
||||||
static const SANE_Range gamma_range =
|
static const SANE_Range gamma_range =
|
||||||
|
@ -135,6 +152,26 @@ static void init_options (SnapScan_Scanner * ps)
|
||||||
{md_auto, md_colour, md_greyscale, md_lineart, NULL};
|
{md_auto, md_colour, md_greyscale, md_lineart, NULL};
|
||||||
SANE_Option_Descriptor *po = ps->options;
|
SANE_Option_Descriptor *po = ps->options;
|
||||||
|
|
||||||
|
/* Initialize TPO range */
|
||||||
|
switch (ps->pdev->model)
|
||||||
|
{
|
||||||
|
case SNAPSCAN1236:
|
||||||
|
x_range_tpo = x_range_tpo_1236;
|
||||||
|
y_range_tpo = y_range_tpo_1236;
|
||||||
|
break;
|
||||||
|
case SNAPSCANE20:
|
||||||
|
case SNAPSCANE50:
|
||||||
|
case SNAPSCANE52:
|
||||||
|
x_range_tpo = x_range_tpo_e50;
|
||||||
|
y_range_tpo = y_range_tpo_e50;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
x_range_tpo = x_range_tpo_default;
|
||||||
|
y_range_tpo = y_range_tpo_default;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Initialize option descriptors */
|
||||||
po[OPT_COUNT].name = SANE_NAME_NUM_OPTIONS;
|
po[OPT_COUNT].name = SANE_NAME_NUM_OPTIONS;
|
||||||
po[OPT_COUNT].title = SANE_TITLE_NUM_OPTIONS;
|
po[OPT_COUNT].title = SANE_TITLE_NUM_OPTIONS;
|
||||||
po[OPT_COUNT].desc = SANE_DESC_NUM_OPTIONS;
|
po[OPT_COUNT].desc = SANE_DESC_NUM_OPTIONS;
|
||||||
|
@ -377,10 +414,11 @@ static void init_options (SnapScan_Scanner * ps)
|
||||||
po[OPT_QUALITY_CAL].cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT;
|
po[OPT_QUALITY_CAL].cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT;
|
||||||
ps->val[OPT_QUALITY_CAL].b = DEFAULT_QUALITY;
|
ps->val[OPT_QUALITY_CAL].b = DEFAULT_QUALITY;
|
||||||
/* Disable quality calibration option if not supported
|
/* Disable quality calibration option if not supported
|
||||||
Note: Snapscan e52 does not support quality calibration,
|
Note: Snapscan e52 and Prisa5300 do not support quality calibration,
|
||||||
although HCFG_CAL_ALLOWED is set. */
|
although HCFG_CAL_ALLOWED is set. */
|
||||||
if ((!(ps->hconfig & HCFG_CAL_ALLOWED))
|
if ((!(ps->hconfig & HCFG_CAL_ALLOWED))
|
||||||
|| (ps->pdev->model == SNAPSCANE52)) {
|
|| (ps->pdev->model == SNAPSCANE52)
|
||||||
|
|| (ps->pdev->model == PRISA5300)) {
|
||||||
po[OPT_QUALITY_CAL].cap |= SANE_CAP_INACTIVE;
|
po[OPT_QUALITY_CAL].cap |= SANE_CAP_INACTIVE;
|
||||||
ps->val[OPT_QUALITY_CAL].b = SANE_FALSE;
|
ps->val[OPT_QUALITY_CAL].b = SANE_FALSE;
|
||||||
}
|
}
|
||||||
|
@ -847,7 +885,7 @@ SANE_Status sane_control_option (SANE_Handle h,
|
||||||
return SANE_STATUS_INVAL;
|
return SANE_STATUS_INVAL;
|
||||||
}
|
}
|
||||||
/* prevent setting of options during a scan */
|
/* prevent setting of options during a scan */
|
||||||
if (pss->state!=ST_IDLE) {
|
if ((pss->state==ST_SCAN_INIT) || (pss->state==ST_SCANNING)) {
|
||||||
DBG(DL_INFO,
|
DBG(DL_INFO,
|
||||||
"set value for option %s ignored: scanner is still scanning (status %d)\n",
|
"set value for option %s ignored: scanner is still scanning (status %d)\n",
|
||||||
pss->options[n].name,
|
pss->options[n].name,
|
||||||
|
@ -1348,11 +1386,17 @@ SANE_Status sane_control_option (SANE_Handle h,
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* $Log$
|
* $Log$
|
||||||
* Revision 1.4 2002/05/02 17:19:14 oliverschwartz
|
* Revision 1.5 2002/07/12 23:29:05 oliverschwartz
|
||||||
* SnapScan backend 1.4.13: Support for ADF
|
* SnapScan backend 1.4.15
|
||||||
*
|
*
|
||||||
* Revision 1.3 2002/04/27 15:35:16 oliverschwartz
|
* Revision 1.6 2002/07/12 23:23:06 oliverschwartz
|
||||||
* SnapScan backend 1.4.12: Fix option handling
|
* Disable quality calibration for 5300
|
||||||
|
*
|
||||||
|
* Revision 1.5 2002/06/06 20:40:00 oliverschwartz
|
||||||
|
* Changed default scan area for transparancy unit of SnapScan e50
|
||||||
|
*
|
||||||
|
* Revision 1.4 2002/05/02 18:28:44 oliverschwartz
|
||||||
|
* Added ADF support
|
||||||
*
|
*
|
||||||
* Revision 1.3 2002/04/27 14:43:59 oliverschwartz
|
* Revision 1.3 2002/04/27 14:43:59 oliverschwartz
|
||||||
* - Remove SCSI debug options
|
* - Remove SCSI debug options
|
||||||
|
|
|
@ -1124,7 +1124,8 @@ static SANE_Status download_firmware(SnapScan_Scanner * pss)
|
||||||
fd = fopen(firmware,"r");
|
fd = fopen(firmware,"r");
|
||||||
if(fd == NULL)
|
if(fd == NULL)
|
||||||
{
|
{
|
||||||
DBG (0, "Cannot open firmware file %s\n", firmware);
|
DBG (0, "Cannot open firmware file %s.\n", firmware);
|
||||||
|
DBG (0, "Edit the firmware file entry in %s.\n", SNAPSCAN_CONFIG_FILE);
|
||||||
status = SANE_STATUS_INVAL;
|
status = SANE_STATUS_INVAL;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -1184,11 +1185,14 @@ static SANE_Status download_firmware(SnapScan_Scanner * pss)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* $Log$
|
* $Log$
|
||||||
* Revision 1.17 2002/05/02 17:19:15 oliverschwartz
|
* Revision 1.18 2002/07/12 23:29:06 oliverschwartz
|
||||||
* SnapScan backend 1.4.13: Support for ADF
|
* SnapScan backend 1.4.15
|
||||||
*
|
*
|
||||||
* Revision 1.16 2002/04/27 15:35:17 oliverschwartz
|
* Revision 1.32 2002/06/06 20:40:01 oliverschwartz
|
||||||
* SnapScan backend 1.4.12: Fix option handling
|
* Changed default scan area for transparancy unit of SnapScan e50
|
||||||
|
*
|
||||||
|
* Revision 1.31 2002/05/02 18:28:44 oliverschwartz
|
||||||
|
* Added ADF support
|
||||||
*
|
*
|
||||||
* Revision 1.30 2002/04/27 14:41:22 oliverschwartz
|
* Revision 1.30 2002/04/27 14:41:22 oliverschwartz
|
||||||
* Print number of open handles in close_scanner()
|
* Print number of open handles in close_scanner()
|
||||||
|
|
|
@ -153,7 +153,6 @@ static SANE_Status snapscani_usb_open(const char *dev, int *fdp,
|
||||||
return SANE_STATUS_INVAL;
|
return SANE_STATUS_INVAL;
|
||||||
}
|
}
|
||||||
semop(sem_id, &sem_signal, 1);
|
semop(sem_id, &sem_signal, 1);
|
||||||
sanei_usb_init();
|
|
||||||
usb_sense_handler=sense_handler;
|
usb_sense_handler=sense_handler;
|
||||||
usb_pss = pss;
|
usb_pss = pss;
|
||||||
return sanei_usb_open(dev, fdp);
|
return sanei_usb_open(dev, fdp);
|
||||||
|
@ -208,52 +207,36 @@ static char *usb_debug_data(char *str,const char *data, int len) {
|
||||||
|
|
||||||
#define RETURN_ON_FAILURE(x) if((status = x) != SANE_STATUS_GOOD) return status;
|
#define RETURN_ON_FAILURE(x) if((status = x) != SANE_STATUS_GOOD) return status;
|
||||||
|
|
||||||
static SANE_Status usb_write(int fd, const void *buf, int n) {
|
static SANE_Status usb_write(int fd, const void *buf, size_t n) {
|
||||||
char dbgmsg[16384];
|
char dbgmsg[16384];
|
||||||
int r;
|
SANE_Status status;
|
||||||
|
size_t bytes_written = n;
|
||||||
|
|
||||||
static const char me[] = "usb_write";
|
static const char me[] = "usb_write";
|
||||||
DBG(DL_DATA_TRACE, "%s: writing: %s\n",me,usb_debug_data(dbgmsg,buf,n));
|
DBG(DL_DATA_TRACE, "%s: writing: %s\n",me,usb_debug_data(dbgmsg,buf,n));
|
||||||
|
|
||||||
if((r=write(fd,buf,n)) != n) {
|
status = sanei_usb_write_bulk(fd, (const SANE_Byte*)buf, &bytes_written);
|
||||||
DBG (DL_MAJOR_ERROR, "%s Only %d bytes written\n",me,r);
|
if(bytes_written != n) {
|
||||||
return SANE_STATUS_IO_ERROR;
|
DBG (DL_MAJOR_ERROR, "%s Only %d bytes written\n",me,bytes_written);
|
||||||
|
status = SANE_STATUS_IO_ERROR;
|
||||||
}
|
}
|
||||||
return SANE_STATUS_GOOD;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
static SANE_Status usb_read(int fd, void *buf, int n) {
|
static SANE_Status usb_read(SANE_Int fd, void *buf, size_t n) {
|
||||||
char dbgmsg[16384];
|
char dbgmsg[16384];
|
||||||
int r;
|
|
||||||
|
|
||||||
static const char me[] = "usb_read";
|
static const char me[] = "usb_read";
|
||||||
|
SANE_Status status;
|
||||||
|
size_t bytes_read = n;
|
||||||
|
|
||||||
/* USB driver appears to block in all cases when asking for data
|
status = sanei_usb_read_bulk(fd, (SANE_Byte*)buf, &bytes_read);
|
||||||
* except if the device says its not ready. In this case, we
|
if (bytes_read != n) {
|
||||||
* attempt to block ourselves to act like the sane SCSI driver.
|
DBG (DL_MAJOR_ERROR, "%s Only %d bytes read\n",me,bytes_read);
|
||||||
* This relies on the USB driver to eventually report something
|
status = SANE_STATUS_IO_ERROR;
|
||||||
* besides EAGAIN if there is a serious problem.
|
}
|
||||||
*/
|
|
||||||
do
|
|
||||||
{
|
|
||||||
if((r=read(fd,buf,n)) != n && !(r == -1 && errno == EAGAIN)) {
|
|
||||||
if (r == -1) {
|
|
||||||
DBG (DL_MAJOR_ERROR, "%s Error returned from read: %s (%d)\n",
|
|
||||||
me,strerror(errno),errno);
|
|
||||||
} else {
|
|
||||||
DBG (DL_MAJOR_ERROR, "%s Only %d bytes read\n",me,r);
|
|
||||||
}
|
|
||||||
return SANE_STATUS_IO_ERROR;
|
|
||||||
}
|
|
||||||
if (r == -1 && errno == EAGAIN)
|
|
||||||
{
|
|
||||||
DBG (DL_MAJOR_ERROR, "%s: Got an EAGAIN\n",me);
|
|
||||||
usleep(10000);
|
|
||||||
}
|
|
||||||
} while (r == -1 && errno == EAGAIN);
|
|
||||||
|
|
||||||
DBG(DL_DATA_TRACE, "%s: reading: %s\n",me,usb_debug_data(dbgmsg,buf,n));
|
DBG(DL_DATA_TRACE, "%s: reading: %s\n",me,usb_debug_data(dbgmsg,buf,n));
|
||||||
return SANE_STATUS_GOOD;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
static SANE_Status usb_read_status(int fd, int *scsistatus, int *transaction_status)
|
static SANE_Status usb_read_status(int fd, int *scsistatus, int *transaction_status)
|
||||||
|
@ -452,8 +435,11 @@ static SANE_Status usb_request_sense(SnapScan_Scanner *pss) {
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* $Log$
|
* $Log$
|
||||||
* Revision 1.10 2002/04/27 15:35:17 oliverschwartz
|
* Revision 1.11 2002/07/12 23:29:06 oliverschwartz
|
||||||
* SnapScan backend 1.4.12: Fix option handling
|
* SnapScan backend 1.4.15
|
||||||
|
*
|
||||||
|
* Revision 1.21 2002/07/12 22:52:42 oliverschwartz
|
||||||
|
* use sanei_usb_read_bulk() and sanei_usb_write_bulk()
|
||||||
*
|
*
|
||||||
* Revision 1.20 2002/04/27 14:36:25 oliverschwartz
|
* Revision 1.20 2002/04/27 14:36:25 oliverschwartz
|
||||||
* Pass a char as 'proj' argument for ftok()
|
* Pass a char as 'proj' argument for ftok()
|
||||||
|
|
|
@ -78,7 +78,7 @@
|
||||||
|
|
||||||
#define EXPECTED_MAJOR 1
|
#define EXPECTED_MAJOR 1
|
||||||
#define MINOR_VERSION 4
|
#define MINOR_VERSION 4
|
||||||
#define BUILD 13
|
#define BUILD 15
|
||||||
|
|
||||||
#include "snapscan.h"
|
#include "snapscan.h"
|
||||||
|
|
||||||
|
@ -718,6 +718,8 @@ SANE_Status sane_init (SANE_Int *version_code,
|
||||||
first_device = NULL;
|
first_device = NULL;
|
||||||
n_devices = 0;
|
n_devices = 0;
|
||||||
|
|
||||||
|
sanei_usb_init();
|
||||||
|
|
||||||
/* build a device structure */
|
/* build a device structure */
|
||||||
fp = sanei_config_open (SNAPSCAN_CONFIG_FILE);
|
fp = sanei_config_open (SNAPSCAN_CONFIG_FILE);
|
||||||
if (!fp)
|
if (!fp)
|
||||||
|
@ -976,17 +978,6 @@ SANE_Status sane_open (SANE_String_Const name, SANE_Handle * h)
|
||||||
free (pss);
|
free (pss);
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
switch (pss->pdev->model)
|
|
||||||
{
|
|
||||||
case SNAPSCAN1236:
|
|
||||||
x_range_tpo = x_range_tpo_1236;
|
|
||||||
y_range_tpo = y_range_tpo_1236;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
x_range_tpo = x_range_tpo_default;
|
|
||||||
y_range_tpo = y_range_tpo_default;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
init_options (pss);
|
init_options (pss);
|
||||||
pss->state = ST_IDLE;
|
pss->state = ST_IDLE;
|
||||||
|
@ -1567,11 +1558,11 @@ SANE_Status sane_start (SANE_Handle h)
|
||||||
release_unit (pss);
|
release_unit (pss);
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
/* Wait for scanner ready again (e.g. until paper is loaded from an ADF) */
|
||||||
status = wait_scanner_ready (pss);
|
status = wait_scanner_ready (pss);
|
||||||
if (status != SANE_STATUS_GOOD)
|
if (status != SANE_STATUS_GOOD)
|
||||||
{
|
{
|
||||||
DBG (DL_MAJOR_ERROR, "%s: scan command failed: %s.\n", me, sane_strstatus(status));
|
DBG (DL_MAJOR_ERROR, "%s: scan command failed while waiting for scanner: %s.\n", me, sane_strstatus(status));
|
||||||
release_unit (pss);
|
release_unit (pss);
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
@ -1762,11 +1753,24 @@ SANE_Status sane_get_select_fd (SANE_Handle h, SANE_Int * fd)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* $Log$
|
* $Log$
|
||||||
* Revision 1.23 2002/05/02 17:19:16 oliverschwartz
|
* Revision 1.24 2002/07/12 23:29:07 oliverschwartz
|
||||||
* SnapScan backend 1.4.13: Support for ADF
|
* SnapScan backend 1.4.15
|
||||||
*
|
*
|
||||||
* Revision 1.22 2002/04/27 15:35:18 oliverschwartz
|
* Revision 1.49 2002/07/12 22:53:54 oliverschwartz
|
||||||
* SnapScan backend 1.4.12: Fix option handling
|
* Version 1.4.15
|
||||||
|
*
|
||||||
|
* Revision 1.48 2002/07/12 22:53:16 oliverschwartz
|
||||||
|
* call sanei_usb_init() before sanei_usb_attach_matching_devices()
|
||||||
|
*
|
||||||
|
* Revision 1.47 2002/06/06 21:16:23 oliverschwartz
|
||||||
|
* Set backend version to 1.4.14
|
||||||
|
*
|
||||||
|
* Revision 1.46 2002/06/06 20:40:01 oliverschwartz
|
||||||
|
* Changed default scan area for transparancy unit of SnapScan e50
|
||||||
|
*
|
||||||
|
* Revision 1.45 2002/05/02 18:29:34 oliverschwartz
|
||||||
|
* - Added ADF support
|
||||||
|
* - Fixed status handling after cancel
|
||||||
*
|
*
|
||||||
* Revision 1.44 2002/04/27 14:42:30 oliverschwartz
|
* Revision 1.44 2002/04/27 14:42:30 oliverschwartz
|
||||||
* Cleanup of debug logging
|
* Cleanup of debug logging
|
||||||
|
|
|
@ -29,36 +29,54 @@ scsi ACERPERI * Scanner
|
||||||
|
|
||||||
# Benq/Acer/Vuego 320U
|
# Benq/Acer/Vuego 320U
|
||||||
usb 0x04a5 0x2022
|
usb 0x04a5 0x2022
|
||||||
|
|
||||||
# Benq/Acer/Vuego 620U / 620UT
|
# Benq/Acer/Vuego 620U / 620UT
|
||||||
usb 0x04a5 0x1a2a
|
usb 0x04a5 0x1a2a
|
||||||
usb 0x04a5 0x2040
|
usb 0x04a5 0x2040
|
||||||
|
|
||||||
# Benq/Acer/Vuego 640U
|
# Benq/Acer/Vuego 640U
|
||||||
usb 0x04a5 0x2060
|
usb 0x04a5 0x2060
|
||||||
|
|
||||||
# Benq/Acer/Vuego 640BU
|
# Benq/Acer/Vuego 640BU
|
||||||
usb 0x04a5 0x207e
|
usb 0x04a5 0x207e
|
||||||
|
|
||||||
# Benq/Acer/Vuego 1240U
|
# Benq/Acer/Vuego 1240U
|
||||||
usb 0x04a5 0x20c0
|
usb 0x04a5 0x20c0
|
||||||
|
|
||||||
# Benq/Acer/Vuego 3300 / 4300
|
# Benq/Acer/Vuego 3300 / 4300
|
||||||
usb 0x04a5 0x20b0
|
usb 0x04a5 0x20b0
|
||||||
|
|
||||||
# Benq/Acer/Vuego 4300
|
# Benq/Acer/Vuego 4300
|
||||||
usb 0x04a5 0x20de
|
usb 0x04a5 0x20de
|
||||||
|
|
||||||
|
# Benq/Acer/Vuego 5300
|
||||||
|
usb 0x04a5 0x20fe
|
||||||
|
|
||||||
# Agfa 1236U
|
# Agfa 1236U
|
||||||
usb 0x06bd 0x0002
|
usb 0x06bd 0x0002
|
||||||
|
|
||||||
# Agfa 1212U
|
# Agfa 1212U
|
||||||
usb 0x06bd 0x0001
|
usb 0x06bd 0x0001
|
||||||
usb 0x06bd 0x2061
|
usb 0x06bd 0x2061
|
||||||
|
|
||||||
# Agfa Snapscan e20
|
# Agfa Snapscan e20
|
||||||
usb 0x06bd 0x2091
|
usb 0x06bd 0x2091
|
||||||
|
|
||||||
# Agfa Snapscan e25
|
# Agfa Snapscan e25
|
||||||
usb 0x06bd 0x2095
|
usb 0x06bd 0x2095
|
||||||
|
|
||||||
# Agfa Snapscan e26
|
# Agfa Snapscan e26
|
||||||
usb 0x06bd 0x2097
|
usb 0x06bd 0x2097
|
||||||
|
|
||||||
# Agfa Snapscan e40
|
# Agfa Snapscan e40
|
||||||
usb 0x06bd 0x208d
|
usb 0x06bd 0x208d
|
||||||
|
|
||||||
# Agfa Snapscan e42
|
# Agfa Snapscan e42
|
||||||
usb 0x06bd 0x20ff
|
usb 0x06bd 0x20ff
|
||||||
|
|
||||||
# Agfa Snapscan e50
|
# Agfa Snapscan e50
|
||||||
usb 0x06bd 0x208f
|
usb 0x06bd 0x208f
|
||||||
|
|
||||||
# Agfa Snapscan e52
|
# Agfa Snapscan e52
|
||||||
usb 0x06bd 0x20fd
|
usb 0x06bd 0x20fd
|
||||||
|
|
||||||
|
|
|
@ -120,7 +120,7 @@ static struct SnapScan_Driver_desc drivers[] =
|
||||||
{PRISA620S, "Acer620"},
|
{PRISA620S, "Acer620"},
|
||||||
{PRISA640, "Acer640"},
|
{PRISA640, "Acer640"},
|
||||||
{PRISA4300, "Acer4300"},
|
{PRISA4300, "Acer4300"},
|
||||||
{PRISA4300, "Acer4300 (42 bit)"},
|
{PRISA4300_2, "Acer4300 (42 bit)"},
|
||||||
{PRISA1240, "Acer1240"},
|
{PRISA1240, "Acer1240"},
|
||||||
{PRISA5300, "Acer5300"}
|
{PRISA5300, "Acer5300"}
|
||||||
};
|
};
|
||||||
|
@ -362,8 +362,11 @@ struct snapscan_scanner
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* $Log$
|
* $Log$
|
||||||
* Revision 1.15 2002/04/27 15:35:19 oliverschwartz
|
* Revision 1.16 2002/07/12 23:29:08 oliverschwartz
|
||||||
* SnapScan backend 1.4.12: Fix option handling
|
* SnapScan backend 1.4.15
|
||||||
|
*
|
||||||
|
* Revision 1.32 2002/07/12 22:22:47 oliverschwartz
|
||||||
|
* Correct driver description for 4300_2
|
||||||
*
|
*
|
||||||
* Revision 1.31 2002/04/27 14:44:27 oliverschwartz
|
* Revision 1.31 2002/04/27 14:44:27 oliverschwartz
|
||||||
* - Remove SCSI debug options
|
* - Remove SCSI debug options
|
||||||
|
|
|
@ -12,9 +12,10 @@
|
||||||
|
|
||||||
:backend "SnapScan" ; name of backend
|
:backend "SnapScan" ; name of backend
|
||||||
:version "1.4" ; version of backend
|
:version "1.4" ; version of backend
|
||||||
:status :beta ; :alpha, :beta, :stable, :new
|
:status :stable ; :alpha, :beta, :stable, :new
|
||||||
:manpage "sane-snapscan" ; name of manpage (if it exists)
|
:manpage "sane-snapscan" ; name of manpage (if it exists)
|
||||||
:url "http://snapscan.sourceforge.net/" ; backend's web page
|
:url "http://snapscan.sourceforge.net/" ; backend's web page
|
||||||
|
:comment "Supported bit depths: 24 bit (color), 8 bit (gray)"
|
||||||
|
|
||||||
:devicetype :scanner ; start of a list of devices....
|
:devicetype :scanner ; start of a list of devices....
|
||||||
; other types: :stillcam, :vidcam,
|
; other types: :stillcam, :vidcam,
|
||||||
|
@ -26,131 +27,138 @@
|
||||||
|
|
||||||
:model "SnapScan 300" ; name models for above-specified mfg.
|
:model "SnapScan 300" ; name models for above-specified mfg.
|
||||||
:interface "SCSI"
|
:interface "SCSI"
|
||||||
:comment "Only 8 bits/sample at present."
|
:status :beta
|
||||||
|
|
||||||
:model "SnapScan 310"
|
:model "SnapScan 310"
|
||||||
:interface "SCSI"
|
:interface "SCSI"
|
||||||
:comment "Ditto"
|
:status :beta
|
||||||
|
|
||||||
:model "SnapScan 600"
|
:model "SnapScan 600"
|
||||||
:interface "SCSI"
|
:interface "SCSI"
|
||||||
:comment "Ditto"
|
:status :stable
|
||||||
|
:comment "Optional ADF supported."
|
||||||
|
|
||||||
:model "SnapScan 1236s"
|
:model "SnapScan 1236s"
|
||||||
:interface "SCSI"
|
:interface "SCSI"
|
||||||
:comment "Ditto. Have no specific programming info yet."
|
:status :stable
|
||||||
|
:comment "Optional ADF and transparency unit supported."
|
||||||
|
|
||||||
:model "SnapScan 1236u"
|
:model "SnapScan 1236u"
|
||||||
:interface "USB"
|
:interface "USB"
|
||||||
:comment "Ditto. Have no specific programming info yet."
|
:status :stable
|
||||||
|
:comment "Optional ADF and transparency unit supported."
|
||||||
|
|
||||||
:model "SnapScan 1212u"
|
:model "SnapScan 1212u"
|
||||||
:interface "USB"
|
:interface "USB"
|
||||||
:comment "Ditto. Have no specific programming info yet."
|
:status :stable
|
||||||
|
|
||||||
:model "SnapScan e20"
|
:model "SnapScan e20"
|
||||||
:interface "USB"
|
:interface "USB"
|
||||||
:comment "Have no specific programming info yet."
|
:status :stable
|
||||||
|
|
||||||
:model "SnapScan e25"
|
:model "SnapScan e25"
|
||||||
:interface "USB"
|
:interface "USB"
|
||||||
:comment "Have no specific programming info yet."
|
:status :stable
|
||||||
|
|
||||||
:model "SnapScan e26"
|
:model "SnapScan e26"
|
||||||
:interface "USB"
|
:interface "USB"
|
||||||
:comment "Have no specific programming info yet."
|
:status :stable
|
||||||
|
|
||||||
:model "SnapScan e40"
|
:model "SnapScan e40"
|
||||||
:interface "USB"
|
:interface "USB"
|
||||||
:comment "Have no specific programming info yet."
|
:status :stable
|
||||||
|
|
||||||
:model "SnapScan e42"
|
:model "SnapScan e42"
|
||||||
:interface "USB"
|
:interface "USB"
|
||||||
:comment "Have no specific programming info yet."
|
:status :stable
|
||||||
|
|
||||||
:model "SnapScan e50"
|
:model "SnapScan e50"
|
||||||
:interface "USB"
|
:interface "USB"
|
||||||
:comment "Have no specific programming info yet."
|
:status :stable
|
||||||
|
:comment "Optional tranparency unit supported"
|
||||||
|
|
||||||
:model "SnapScan e52"
|
:model "SnapScan e52"
|
||||||
:interface "USB"
|
:interface "USB"
|
||||||
:comment "Have no specific programming info yet."
|
:status :stable
|
||||||
|
:comment "Optional tranparency unit supported"
|
||||||
|
|
||||||
:model "SnapScan e60"
|
:model "SnapScan e60"
|
||||||
:interface "USB"
|
:interface "USB"
|
||||||
:comment "Have no specific programming info yet."
|
:status :untested
|
||||||
|
|
||||||
|
:mfg "Acer Peripherals"
|
||||||
|
:comment "Company was renamed to <a href=\"#BENQ\">Benq</a>."
|
||||||
|
|
||||||
:mfg "Vuego"
|
:mfg "Vuego"
|
||||||
;------------------------------------------------------------------------------
|
:comment "Company was renamed to <a href=\"#BENQ\">Benq</a>."
|
||||||
|
|
||||||
:model "310s"
|
:mfg "Benq"
|
||||||
:interface "SCSI"
|
:url "http://www.benq.com"
|
||||||
:comment "Close SnapScan 310 compatible."
|
:comment "Formerly Acer Peripherals"
|
||||||
|
|
||||||
:mfg "Acer / Benq"
|
|
||||||
:url "www.benq.com"
|
|
||||||
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
||||||
|
|
||||||
:model "300f"
|
:model "300f"
|
||||||
:interface "SCSI"
|
:interface "SCSI"
|
||||||
|
:status :stable
|
||||||
|
|
||||||
:model "310s"
|
:model "310s"
|
||||||
:interface "SCSI"
|
:interface "SCSI"
|
||||||
:comment "Same thing as the Vuego 310s."
|
:status :stable
|
||||||
|
|
||||||
:model "610s"
|
:model "610s"
|
||||||
:interface "SCSI"
|
:interface "SCSI"
|
||||||
|
:status :stable
|
||||||
|
|
||||||
:model "610plus"
|
:model "610plus"
|
||||||
:interface "SCSI"
|
:interface "SCSI"
|
||||||
:comment "Seems to be a close SnapScan 310/600 compatible."
|
:status :stable
|
||||||
|
|
||||||
:model "Prisa 620s"
|
:model "620s"
|
||||||
:interface "SCSI"
|
:interface "SCSI"
|
||||||
:comment "Seems to be a close SnapScan 310/600 compatible."
|
:status :stable
|
||||||
|
|
||||||
:model "Prisa 620u"
|
:model "620u"
|
||||||
:interface "USB"
|
:interface "USB"
|
||||||
:comment "Seems to be a close SnapScan 310/600 compatible."
|
:status :stable
|
||||||
|
:comment "Optional tranparency unit supported"
|
||||||
|
|
||||||
:model "Prisa 620ut"
|
:model "640u"
|
||||||
:interface "USB"
|
:interface "USB"
|
||||||
:comment "Seems to be a close SnapScan 310/600 compatible."
|
:status :stable
|
||||||
|
|
||||||
:model "Prisa 640u"
|
:model "640bu"
|
||||||
:interface "USB"
|
:interface "USB"
|
||||||
:comment "Seems to be a close SnapScan 310/600 compatible."
|
:status :stable
|
||||||
|
|
||||||
:model "Prisa 640bu"
|
:model "1240"
|
||||||
:interface "USB"
|
:interface "USB"
|
||||||
:comment "Seems to be a close SnapScan 310/600 compatible."
|
:status :stable
|
||||||
|
:comment "Optional tranparency unit supported"
|
||||||
|
|
||||||
:model "Prisa 1240"
|
:model "3300"
|
||||||
:interface "USB"
|
:interface "USB"
|
||||||
:comment "Seems to be a close SnapScan 310/600 compatible."
|
:status :stable
|
||||||
|
|
||||||
:model "Prisa 3300"
|
:model "4300"
|
||||||
:interface "USB"
|
:interface "USB"
|
||||||
:comment "Have no specific programming info yet."
|
:status :stable
|
||||||
|
|
||||||
:model "Prisa 4300"
|
:model "5300"
|
||||||
:interface "USB"
|
:interface "USB"
|
||||||
:comment "Have no specific programming info yet, untested."
|
:status :alpha
|
||||||
|
|
||||||
:model "Prisa 5300"
|
|
||||||
:interface "USB"
|
|
||||||
:comment "Have no specific programming info yet, untested."
|
|
||||||
|
|
||||||
:mfg "Guillemot / Hercules"
|
:mfg "Guillemot / Hercules"
|
||||||
:url "www.guillemot.com"
|
:url "http://www.guillemot.com"
|
||||||
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
||||||
|
|
||||||
:model "Maxi Scan A4 Deluxe (SCSI)"
|
:model "Maxi Scan A4 Deluxe (SCSI)"
|
||||||
:interface "SCSI"
|
:interface "SCSI"
|
||||||
:comment "May be a repackaged Vuego 310s or SnapScan 310s."
|
:status :stable
|
||||||
|
:comment "Seems to be a repackaged SnapScan 310s."
|
||||||
|
|
||||||
:model "Scan@home Touch 1248 (USB)"
|
:model "Scan@home Touch 1248 (USB)"
|
||||||
:interface "USB"
|
:interface "USB"
|
||||||
|
:status :stable
|
||||||
:comment "Seems to be a repackaged Acer 3300."
|
:comment "Seems to be a repackaged Acer 3300."
|
||||||
|
|
||||||
; :comment and :url specifiers are optional after :mfg, :model, :desc,
|
; :comment and :url specifiers are optional after :mfg, :model, :desc,
|
||||||
|
|
Ładowanie…
Reference in New Issue