kopia lustrzana https://gitlab.com/sane-project/backends
Genius Vivid 4xe now has color order RGB. Removed 50 dpi for Mustek BearPaw 2448
as that resolution doesn't work. Make sure that the lamp of the Mustek A3 USB gets warmed up. It's a CIS scanner with a lamp. That code is untested. Full scan starts scanning from the start position of the white strip now. Added detection for Genius Vivid 1200 EX. Fixed product id of Mustek BearPaw 2448 TA Plus. Other minor updates.merge-requests/1/head
rodzic
75018e1ad0
commit
aafcfe6a8e
13
ChangeLog
13
ChangeLog
|
@ -1,3 +1,16 @@
|
|||
2004-03-19 Henning Meier-Geinitz <henning@meier-geinitz.de>
|
||||
|
||||
* backend/gt68xx.c backend/gt68xx.conf backend/gt68xx_devices.c
|
||||
backend/gt68xx_high.c backend/gt68xx_low.h doc/sane-gt68xx.man
|
||||
doc/descriptions/gt68xx.desc doc/gt68xx/gt68xx.CHANGES: Genius
|
||||
Vivid 4xe now has color order RGB. Removed 50 dpi for Mustek
|
||||
BearPaw 2448 as that resolution doesn't work. Make sure that the
|
||||
lamp of the Mustek A3 USB gets warmed up. It's a CIS scanner with
|
||||
a lamp. That code is untested. Full scan starts scanning from the
|
||||
start position of the white strip now. Added detection for Genius
|
||||
Vivid 1200 EX. Fixed product id of Mustek BearPaw 2448 TA
|
||||
Plus. Other minor updates.
|
||||
|
||||
2004-03-15 Oliver Rauch <oliver.rauch@rauch-domain.de>
|
||||
* backend/umax: bugfix for sense_handler and do_calibration
|
||||
|
||||
|
|
|
@ -48,7 +48,7 @@
|
|||
|
||||
#include "../include/sane/config.h"
|
||||
|
||||
#define BUILD 54
|
||||
#define BUILD 56
|
||||
#define MAX_DEBUG
|
||||
#define WARMUP_TIME 30
|
||||
#define CALIBRATION_HEIGHT 2.5
|
||||
|
@ -278,7 +278,7 @@ setup_scan_request (GT68xx_Scanner * s, GT68xx_Scan_Request * scan_request)
|
|||
if (s->val[OPT_FULL_SCAN].w == SANE_TRUE)
|
||||
{
|
||||
scan_request->x0 -= s->dev->model->x_offset;
|
||||
scan_request->y0 -= s->dev->model->y_offset;
|
||||
scan_request->y0 -= (s->dev->model->y_offset - s->dev->model->y_offset_calib);
|
||||
scan_request->xs += s->dev->model->x_offset;
|
||||
scan_request->ys += s->dev->model->y_offset;
|
||||
}
|
||||
|
@ -478,7 +478,7 @@ init_options (GT68xx_Scanner * s)
|
|||
s->opt[OPT_LAMP_ON].unit = SANE_UNIT_NONE;
|
||||
s->opt[OPT_LAMP_ON].constraint_type = SANE_CONSTRAINT_NONE;
|
||||
s->val[OPT_LAMP_ON].w = SANE_FALSE;
|
||||
if (s->dev->model->is_cis)
|
||||
if (s->dev->model->is_cis && !(s->dev->model->flags & GT68XX_FLAG_CIS_LAMP))
|
||||
DISABLE (OPT_LAMP_ON);
|
||||
|
||||
/* bit depth */
|
||||
|
@ -533,7 +533,7 @@ init_options (GT68xx_Scanner * s)
|
|||
s->opt[OPT_AUTO_WARMUP].unit = SANE_UNIT_NONE;
|
||||
s->opt[OPT_AUTO_WARMUP].constraint_type = SANE_CONSTRAINT_NONE;
|
||||
s->val[OPT_AUTO_WARMUP].w = SANE_TRUE;
|
||||
if (s->dev->model->is_cis || !debug_options)
|
||||
if ((s->dev->model->is_cis && !(s->dev->model->flags & GT68XX_FLAG_CIS_LAMP)) || !debug_options)
|
||||
DISABLE (OPT_AUTO_WARMUP);
|
||||
|
||||
/* full scan */
|
||||
|
|
|
@ -85,9 +85,12 @@ usb 0x055f 0x0218
|
|||
usb 0x055f 0x0219
|
||||
|
||||
##############################################################################
|
||||
# Autodetect Mustek BearPaw 2448 TA Plus
|
||||
# Autodetect Mustek BearPaw 2448 TA Plus and Mustek BearPaw 2448 CS Plus
|
||||
usb 0x055f 0x021a
|
||||
|
||||
# Mustek BearPaw 2448 CS Plus:
|
||||
#model "Bearpaw 2448 CS Plus"
|
||||
|
||||
##############################################################################
|
||||
# Autodetect Mustek BearPaw 2400 CU Plus
|
||||
usb 0x055f 0x021d
|
||||
|
@ -170,3 +173,10 @@ usb 0x0458 0x201a
|
|||
# Genius Colorpage Vivid4xe doesn't need any manual settings
|
||||
##############################################################################
|
||||
|
||||
##############################################################################
|
||||
# Autodetect Genius Colorpage 1200 EX
|
||||
usb 0x0458 0x201f
|
||||
|
||||
# Genius Colorpage Vivid 1200 EX doesn't need any manual settings
|
||||
##############################################################################
|
||||
|
||||
|
|
|
@ -315,8 +315,8 @@ static GT68xx_Model mustek_2448taplus_model = {
|
|||
1200, /* if ydpi is equal or higher, use linemode */
|
||||
SANE_FALSE, /* Use base_ydpi for all resolutions */
|
||||
|
||||
{1200, 600, 300, 100, 50, 0}, /* possible x-resolutions */
|
||||
{2400, 1200, 600, 300, 100, 50, 0}, /* possible y-resolutions */
|
||||
{1200, 600, 300, 100, 0}, /* possible x-resolutions */
|
||||
{2400, 1200, 600, 300, 100, 0}, /* possible y-resolutions */
|
||||
{16, 12, 8, 0}, /* possible depths in gray mode */
|
||||
{16, 12, 8, 0}, /* possible depths in color mode */
|
||||
|
||||
|
@ -765,12 +765,12 @@ static GT68xx_Model mustek_a3usb_model = {
|
|||
{12, 8, 0}, /* possible depths in color mode */
|
||||
|
||||
SANE_FIX (6.0), /* Start of scan area in mm (x) */
|
||||
SANE_FIX (14.0), /* Start of scan area in mm (y) */
|
||||
SANE_FIX (297.0), /* Size of scan area in mm (x) */
|
||||
SANE_FIX (431.0), /* Size of scan area in mm (y) */
|
||||
SANE_FIX (10.5), /* Start of scan area in mm (y) */
|
||||
SANE_FIX (299.0), /* Size of scan area in mm (x) */
|
||||
SANE_FIX (433.0), /* Size of scan area in mm (y) */
|
||||
|
||||
SANE_FIX (5.0), /* Start of white strip in mm (y) */
|
||||
SANE_FIX (0.0), /* Start of black mark in mm (x) */
|
||||
SANE_FIX (2.4), /* Start of white strip in mm (y) */
|
||||
SANE_FIX (4.3), /* Start of black mark in mm (x) */
|
||||
|
||||
SANE_FIX (0.0), /* Start of scan area in TA mode in mm (x) */
|
||||
SANE_FIX (0.0), /* Start of scan area in TA mode in mm (y) */
|
||||
|
@ -783,14 +783,15 @@ static GT68xx_Model mustek_a3usb_model = {
|
|||
0, /* CCD distcance for CCD with 6 lines) */
|
||||
|
||||
COLOR_ORDER_RGB, /* Order of the CCD/CIS colors */
|
||||
{0x14, 0x07, 0x14, 0x07, 0x14, 0x07}, /* Default offset/gain */
|
||||
{0x157, 0x157, 0x157}, /* Default exposure parameters */
|
||||
SANE_FIX (2.0), /* Default gamma value */
|
||||
{0x14, 0x05, 0x12, 0x05, 0x17, 0x0c}, /* Default offset/gain */
|
||||
{0x255, 0x255, 0x255}, /* Default exposure parameters */
|
||||
SANE_FIX (1.5), /* Default gamma value */
|
||||
|
||||
SANE_FALSE, /* Is this a CIS scanner? */
|
||||
0 /* Which flags are needed for this scanner? */
|
||||
/* Tested by Pedro Morais <morais@inocam.com>, changes to CCD by hmg, white
|
||||
strip/black mark untested, line distance must be set up */
|
||||
SANE_TRUE, /* Is this a CIS scanner? */
|
||||
GT68XX_FLAG_UNTESTED | GT68XX_FLAG_CIS_LAMP /* Which flags are needed for this scanner? */
|
||||
/* Tested by some people. This scanner is a bit strange as it uses a CIS sensor
|
||||
but it also has a lamp. So the lamp needs to be heated but CIS mode must be
|
||||
used for scanning. */
|
||||
};
|
||||
|
||||
static GT68xx_Model lexmark_x73_model = {
|
||||
|
@ -1080,14 +1081,14 @@ static GT68xx_Model genius_vivid4xe_model = {
|
|||
0, 8, 16, /* RGB CCD Line-distance correction in pixel */
|
||||
0, /* CCD distcance for CCD with 6 lines) */
|
||||
|
||||
COLOR_ORDER_BGR, /* Order of the CCD/CIS colors */
|
||||
COLOR_ORDER_RGB, /* Order of the CCD/CIS colors */
|
||||
{0x1c, 0x29, 0x1c, 0x2c, 0x1c, 0x2b}, /* Default offset/gain */
|
||||
{0x157, 0x157, 0x157}, /* Default exposure parameters */
|
||||
SANE_FIX (2.0), /* Default gamma value */
|
||||
|
||||
SANE_FALSE, /* Is this a CIS scanner? */
|
||||
GT68XX_FLAG_OFFSET_INV /* Which flags are needed for this scanner? */
|
||||
/* mostly untested, based on the Genius Vivid3x */
|
||||
/* tested a bit */
|
||||
};
|
||||
|
||||
static GT68xx_Model genius_vivid3xe_model = {
|
||||
|
@ -1139,6 +1140,55 @@ static GT68xx_Model genius_vivid3xe_model = {
|
|||
/* mostly untested, based on the Genius Vivid3x */
|
||||
};
|
||||
|
||||
static GT68xx_Model genius_vivid1200ex_model = {
|
||||
"genius-colorpage-vivid-1200-ex", /* Name */
|
||||
"Genius", /* Device vendor string */
|
||||
"Colorpage Vivid 1200 EX", /* Device model name */
|
||||
"ccd548.fw", /* Name of the firmware file */
|
||||
SANE_FALSE, /* Dynamic allocation flag */
|
||||
|
||||
&mustek_gt6816_command_set, /* Command set used by this scanner */
|
||||
|
||||
600, /* maximum optical sensor resolution */
|
||||
600, /* maximum motor resolution */
|
||||
600, /* base x-res used to calculate geometry */
|
||||
600, /* base y-res used to calculate geometry */
|
||||
50, /* if ydpi is equal or higher, use linemode */
|
||||
SANE_TRUE, /* Use base_ydpi for all resolutions */
|
||||
|
||||
{600, 300, 150, 75, 0}, /* possible x-resolutions */
|
||||
{600, 300, 150, 75, 0}, /* possible y-resolutions */
|
||||
{12, 8, 0}, /* possible depths in gray mode */
|
||||
{12, 8, 0}, /* possible depths in color mode */
|
||||
|
||||
SANE_FIX (3.5), /* Start of scan area in mm (x) */
|
||||
SANE_FIX (7.5), /* Start of scan area in mm (y) */
|
||||
SANE_FIX (218.0), /* Size of scan area in mm (x) */
|
||||
SANE_FIX (299.0), /* Size of scan area in mm (y) */
|
||||
|
||||
SANE_FIX (0.0), /* Start of white strip in mm (y) */
|
||||
SANE_FIX (1.0), /* Start of black mark in mm (x) */
|
||||
|
||||
SANE_FIX (0.0), /* Start of scan area in TA mode in mm (x) */
|
||||
SANE_FIX (0.0), /* Start of scan area in TA mode in mm (y) */
|
||||
SANE_FIX (100.0), /* Size of scan area in TA mode in mm (x) */
|
||||
SANE_FIX (100.0), /* Size of scan area in TA mode in mm (y) */
|
||||
|
||||
SANE_FIX (0.0), /* Start of white strip in TA mode in mm (y) */
|
||||
|
||||
0, 8, 16, /* RGB CCD Line-distance correction in pixel */
|
||||
0, /* CCD distcance for CCD with 6 lines) */
|
||||
|
||||
COLOR_ORDER_BGR, /* Order of the CCD/CIS colors */
|
||||
{0x1c, 0x29, 0x1c, 0x2c, 0x1c, 0x2b}, /* Default offset/gain */
|
||||
{0x157, 0x157, 0x157}, /* Default exposure parameters */
|
||||
SANE_FIX (2.0), /* Default gamma value */
|
||||
|
||||
SANE_FALSE, /* Is this a CIS scanner? */
|
||||
GT68XX_FLAG_OFFSET_INV | GT68XX_FLAG_UNTESTED /* Which flags are needed for this scanner? */
|
||||
/* untested */
|
||||
};
|
||||
|
||||
static GT68xx_Model plustek_opticslim1200_model = {
|
||||
"plustek-opticslim-1200", /* Name */
|
||||
"Plustek", /* Device vendor string */
|
||||
|
@ -1249,7 +1299,7 @@ static GT68xx_USB_Device_Entry gt68xx_usb_device_list[] = {
|
|||
{0x05d8, 0x4002, &mustek_2400cu_model}, /* manual override */
|
||||
{0x05d8, 0x4002, &mustek_scanexpress2400usb_model}, /* manual override */
|
||||
{0x055f, 0x0210, &mustek_a3usb_model},
|
||||
{0x05d8, 0x021a, &mustek_2448taplus_model},
|
||||
{0x055f, 0x021a, &mustek_2448taplus_model},
|
||||
{0x043d, 0x002d, &lexmark_x73_model},
|
||||
{0x07b3, 0x0400, &plustek_op1248u_model},
|
||||
{0x07b3, 0x0401, &plustek_op1248u_model}, /* Same scanner, different id? */
|
||||
|
@ -1258,8 +1308,10 @@ static GT68xx_USB_Device_Entry gt68xx_usb_device_list[] = {
|
|||
{0x07b3, 0x0413, &plustek_opticslim1200_model},
|
||||
{0x07b3, 0x0422, &plustek_opticslim2400_model},
|
||||
{0x0458, 0x2011, &genius_vivid3x_model},
|
||||
{0x0458, 0x2014, &plustek_u16b_model},
|
||||
{0x0458, 0x2017, &genius_vivid3xe_model},
|
||||
{0x0458, 0x201a, &genius_vivid4xe_model},
|
||||
{0x0458, 0x201b, &genius_vivid4x_model},
|
||||
{0x0458, 0x201f, &genius_vivid1200ex_model},
|
||||
{0, 0, NULL}
|
||||
};
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
Copyright (C) 2002 Sergey Vlasov <vsu@altlinux.ru>
|
||||
AFE offset/gain setting by David Stevenson <david.stevenson@zoom.co.uk>
|
||||
Copyright (C) 2002 Henning Meier-Geinitz <henning@meier-geinitz.de>
|
||||
Copyright (C) 2002 - 2004 Henning Meier-Geinitz <henning@meier-geinitz.de>
|
||||
|
||||
This file is part of the SANE package.
|
||||
|
||||
|
@ -781,7 +781,7 @@ gt68xx_scanner_calibrate (GT68xx_Scanner * scanner,
|
|||
return status;
|
||||
}
|
||||
|
||||
if (!scanner->dev->model->is_cis)
|
||||
if (!scanner->dev->model->is_cis || (scanner->dev->model->flags & GT68XX_FLAG_CIS_LAMP))
|
||||
usleep (500000);
|
||||
status = gt68xx_scanner_start_scan_extended (scanner, &req, SA_CALIBRATE,
|
||||
¶ms);
|
||||
|
@ -967,7 +967,7 @@ static void
|
|||
gt68xx_afe_exposure_dump (SANE_String_Const phase, int i,
|
||||
GT68xx_Exposure_Parameters * exposure)
|
||||
{
|
||||
XDBG ((5, "set exposure %s %2d: RGB exposure time: %02x %02x %02x\n",
|
||||
XDBG ((3, "set exposure %s %2d: RGB exposure time: %02x %02x %02x\n",
|
||||
phase, i, exposure->r_time, exposure->g_time, exposure->b_time));
|
||||
}
|
||||
#endif /* not NDEBUG */
|
||||
|
@ -1359,6 +1359,7 @@ gt68xx_afe_cis_calc_black (GT68xx_Afe_Values * values,
|
|||
SANE_Int end_black;
|
||||
SANE_Int i, j;
|
||||
SANE_Int min_black = 255;
|
||||
SANE_Int average = 0;
|
||||
|
||||
start_black = 0;
|
||||
end_black = values->calwidth;
|
||||
|
@ -1370,11 +1371,14 @@ gt68xx_afe_cis_calc_black (GT68xx_Afe_Values * values,
|
|||
for (j = 0; j < values->callines; j++)
|
||||
avg_black += (*(black_buffer + i + j * values->calwidth) >> 8);
|
||||
avg_black /= values->callines;
|
||||
average += avg_black;
|
||||
if (avg_black < min_black)
|
||||
min_black = avg_black;
|
||||
}
|
||||
values->black = min_black;
|
||||
XDBG ((5, "%s: min_black=%02x\n", function_name, values->black));
|
||||
average /= (end_black - start_black);
|
||||
XDBG ((4, "%s: min_black=0x%02x, average_black=0x%02x\n", function_name, values->black,
|
||||
average));
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -1388,19 +1392,25 @@ gt68xx_afe_cis_calc_white (GT68xx_Afe_Values * values,
|
|||
|
||||
start_white = 0;
|
||||
end_white = values->calwidth;
|
||||
values->total_white = 0;
|
||||
|
||||
/* find max average white value */
|
||||
for (i = start_white; i < end_white; ++i)
|
||||
{
|
||||
SANE_Int avg_white = 0;
|
||||
for (j = 0; j < values->callines; j++)
|
||||
avg_white += (*(white_buffer + i + j * values->calwidth) >> 8);
|
||||
{
|
||||
avg_white += (*(white_buffer + i + j * values->calwidth) >> 8);
|
||||
values->total_white += (*(white_buffer + i + j * values->calwidth));
|
||||
}
|
||||
avg_white /= values->callines;
|
||||
if (avg_white > max_white)
|
||||
max_white = avg_white;
|
||||
}
|
||||
values->white = max_white;
|
||||
XDBG ((5, "%s: max_white=%02x\n", function_name, values->white));
|
||||
values->total_white /= (values->callines * (end_white - start_white));
|
||||
XDBG ((4, "%s: max_white=0x%02x, average_white=0x%02x\n", function_name, values->white,
|
||||
values->total_white >> 8));
|
||||
}
|
||||
|
||||
static SANE_Bool
|
||||
|
@ -1417,18 +1427,18 @@ gt68xx_afe_cis_adjust_offset (GT68xx_Afe_Values * values,
|
|||
offs = (values->offset_direction * (low - values->black) / 4);
|
||||
if (offs == 0)
|
||||
offs = values->offset_direction;
|
||||
DBG (5, "black = %d (too low) --> offs = %d\n", values->black, offs);
|
||||
DBG (4, "black = %d (too low) --> offs = %d\n", values->black, offs);
|
||||
}
|
||||
else if (values->black > high)
|
||||
{
|
||||
offs = -(values->offset_direction * (values->black - high) / 7);
|
||||
if (offs == 0)
|
||||
offs = -values->offset_direction;
|
||||
DBG (5, "black = %d (too high) --> offs = %d\n", values->black, offs);
|
||||
DBG (4, "black = %d (too high) --> offs = %d\n", values->black, offs);
|
||||
}
|
||||
else
|
||||
{
|
||||
DBG (5, "black = %d (ok)\n", values->black);
|
||||
DBG (4, "black = %d (ok)\n", values->black);
|
||||
}
|
||||
|
||||
if (offs == 0)
|
||||
|
@ -1455,16 +1465,16 @@ gt68xx_afe_cis_adjust_gain (GT68xx_Afe_Values * values,
|
|||
if (values->white < white_low)
|
||||
{
|
||||
g += 1;
|
||||
DBG (5, "white = %d (too low) --> gain += 1\n", values->white);
|
||||
DBG (4, "white = %d (too low) --> gain += 1\n", values->white);
|
||||
}
|
||||
else if (values->white > white_high)
|
||||
{
|
||||
g -= 1;
|
||||
DBG (5, "white = %d (too high) --> gain -= 1\n", values->white);
|
||||
DBG (4, "white = %d (too high) --> gain -= 1\n", values->white);
|
||||
}
|
||||
else
|
||||
{
|
||||
DBG (5, "white = %d (ok)\n", values->white);
|
||||
DBG (4, "white = %d (ok)\n", values->white);
|
||||
}
|
||||
if (g < 0)
|
||||
g = 0;
|
||||
|
@ -1486,20 +1496,20 @@ gt68xx_afe_cis_adjust_exposure (GT68xx_Afe_Values * values,
|
|||
if (values->white < border)
|
||||
{
|
||||
*exposure_time += ((border - values->white) * 2);
|
||||
DBG (5, "white = %d (too low) --> += %d\n",
|
||||
DBG (4, "white = %d (too low) --> += %d\n",
|
||||
values->white, ((border - values->white) * 2));
|
||||
return SANE_FALSE;
|
||||
}
|
||||
else if (values->white > border + 10)
|
||||
{
|
||||
*exposure_time -= ((values->white - (border + 10)) * 2);
|
||||
DBG (5, "white = %d (too high) --> -= %d\n",
|
||||
DBG (4, "white = %d (too high) --> -= %d\n",
|
||||
values->white, ((values->white - (border + 10)) * 2));
|
||||
return SANE_FALSE;
|
||||
}
|
||||
else
|
||||
{
|
||||
DBG (5, "white = %d (ok)\n", values->white);
|
||||
DBG (4, "white = %d (ok)\n", values->white);
|
||||
}
|
||||
return SANE_TRUE;
|
||||
}
|
||||
|
@ -1619,6 +1629,49 @@ gt68xx_afe_cis_auto (GT68xx_Scanner * scanner)
|
|||
if (!r_buffer || !g_buffer || !b_buffer)
|
||||
return SANE_STATUS_NO_MEM;
|
||||
|
||||
if (scanner->dev->model->flags & GT68XX_FLAG_CIS_LAMP)
|
||||
{
|
||||
GT68xx_Afe_Values lamp_values = values;
|
||||
SANE_Int last_white = -21;
|
||||
SANE_Word i;
|
||||
|
||||
lamp_values.callines = 1;
|
||||
|
||||
/* loop waiting for lamp to give stable brightness */
|
||||
for (i = 0; i < 80; i++)
|
||||
{
|
||||
usleep (200000);
|
||||
if (i == 10)
|
||||
DBG (0, "Please wait for lamp warm-up\n");
|
||||
|
||||
/* read line */
|
||||
RIE (gt68xx_afe_cis_read_lines (&lamp_values, scanner, SANE_TRUE, SANE_FALSE,
|
||||
r_buffer, g_buffer, b_buffer));
|
||||
|
||||
gt68xx_afe_cis_calc_white (&lamp_values, r_buffer);
|
||||
|
||||
XDBG ((4, "%s: check lamp stable: this white = 0x%04X, last white =0x%04X\n",
|
||||
function_name, lamp_values.total_white, last_white));
|
||||
|
||||
if (scanner->val[OPT_AUTO_WARMUP].w == SANE_TRUE)
|
||||
{
|
||||
if (lamp_values.total_white <= (last_white + 20))
|
||||
break; /* lamp is warmed up */
|
||||
}
|
||||
else
|
||||
{ /* insist on 30 seconds */
|
||||
struct timeval now;
|
||||
int secs;
|
||||
|
||||
gettimeofday (&now, 0);
|
||||
secs = now.tv_sec - scanner->lamp_on_time.tv_sec;
|
||||
if (secs >= WARMUP_TIME)
|
||||
break;
|
||||
}
|
||||
last_white = lamp_values.total_white;
|
||||
}
|
||||
}
|
||||
|
||||
total_count = 0;
|
||||
do
|
||||
{
|
||||
|
@ -1664,6 +1717,9 @@ gt68xx_afe_cis_auto (GT68xx_Scanner * scanner)
|
|||
}
|
||||
while (total_count < 100 && !done);
|
||||
|
||||
if (total_count >= 100)
|
||||
XDBG ((0, "%s: setting AFE reached limit\n", function_name));
|
||||
|
||||
IF_DBG (gt68xx_afe_dump ("final", total_count, afe));
|
||||
|
||||
/* Exposure time */
|
||||
|
@ -1686,6 +1742,9 @@ gt68xx_afe_cis_auto (GT68xx_Scanner * scanner)
|
|||
}
|
||||
while (!done && exposure_count < 10);
|
||||
|
||||
if (exposure_count >= 10)
|
||||
XDBG ((0, "%s: setting exposure reached limit\n", function_name));
|
||||
|
||||
free (r_buffer);
|
||||
free (g_buffer);
|
||||
free (b_buffer);
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/* sane - Scanner Access Now Easy.
|
||||
|
||||
Copyright (C) 2002 Sergey Vlasov <vsu@altlinux.ru>
|
||||
Copyright (C) 2002, 2003 Henning Meier-Geinitz <henning@meier-geinitz.de>
|
||||
Copyright (C) 2002 - 2004 Henning Meier-Geinitz <henning@meier-geinitz.de>
|
||||
|
||||
This file is part of the SANE package.
|
||||
|
||||
|
@ -136,6 +136,7 @@
|
|||
#define GT68XX_FLAG_UNTESTED (1 << 3) /* Print a warning for these scanners */
|
||||
#define GT68XX_FLAG_SE_2400 (1 << 4) /* Special quirks for SE 2400USB */
|
||||
#define GT68XX_FLAG_NO_STOP (1 << 5) /* Don't call stop_scan before the scan */
|
||||
#define GT68XX_FLAG_CIS_LAMP (1 << 6) /* CIS sensor with lamp */
|
||||
|
||||
/* Forward typedefs */
|
||||
typedef struct GT68xx_USB_Device_Entry GT68xx_USB_Device_Entry;
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
:backend "gt68xx"
|
||||
:version "1.0-54"
|
||||
:version "1.0-56"
|
||||
:manpage "sane-gt68xx"
|
||||
:url "http://www.meier-geinitz.de/sane/gt68xx-backend/"
|
||||
:comment "Only the USB scanners mentioned below are supported. For other Mustek BearPaws, look at the Plustek and the MA-1509 backend."
|
||||
|
@ -58,6 +58,11 @@
|
|||
:interface "USB"
|
||||
;:comment ""
|
||||
|
||||
:model "Colorpage Vivid4"
|
||||
:status :untested
|
||||
:interface "USB"
|
||||
:comment "Should be detected but may not work. Similar to Plustek U16B?"
|
||||
|
||||
:model "Colorpage Vivid4x"
|
||||
:status :basic
|
||||
:interface "USB"
|
||||
|
@ -68,6 +73,11 @@
|
|||
:interface "USB"
|
||||
:comment "Should work but has limited testing. Please contact me if you own such a device."
|
||||
|
||||
:model "Colorpage Vivid 1200 EX"
|
||||
:status :untested
|
||||
:interface "USB"
|
||||
:comment "Should be detected but may not work."
|
||||
|
||||
; -----------------------------------------------------------------------------
|
||||
|
||||
:mfg "Googlegear"
|
||||
|
@ -173,20 +183,26 @@
|
|||
:status :good
|
||||
:comment "Transparency adapter supported"
|
||||
|
||||
:model "BearPaw 2448 TA Plus"
|
||||
:model "BearPaw 2448 CS Plus"
|
||||
:interface "USB"
|
||||
:status :minimal
|
||||
:comment "Very limited testing. Images don't seem to be ok. Please contact me if you own such a device."
|
||||
|
||||
:model "BearPaw 2448 TA Plus"
|
||||
:interface "USB"
|
||||
:status :minimal
|
||||
:comment "With transparency adapter. Very limited testing. Images don't seem to be ok. Please contact me if you own such a device."
|
||||
|
||||
|
||||
:model "Plug-n-Scan 2400 MT"
|
||||
:interface "USB"
|
||||
:status :untested
|
||||
:comment "Same as BearPaw 2400 TA Plus? May work. Please test and tell me the result."
|
||||
:status :good
|
||||
:comment "Works but is slow in high resolutions. Same as BearPaw 2400 TA Plus."
|
||||
|
||||
:model "Plug-n-Scan 2400 M"
|
||||
:interface "USB"
|
||||
:status :untested
|
||||
:comment "Same as BearPaw 2400 TA Plus? May work. Please test and tell me the result."
|
||||
:status :good
|
||||
:comment "Works but is slow in high resolutions. Same as BearPaw 2400 CS Plus."
|
||||
|
||||
:model "ScanExpress 1200 UB Plus"
|
||||
:interface "USB"
|
||||
|
@ -239,8 +255,13 @@
|
|||
|
||||
:model "OpticPro U16B"
|
||||
:interface "USB"
|
||||
:status :untested
|
||||
:comment "Should be detected but may not work. Please contact me if you own such a device."
|
||||
:status :minimal
|
||||
:comment "Is detected but images look strange."
|
||||
|
||||
:model "OpticPro U16B+"
|
||||
:interface "USB"
|
||||
:status :minimal
|
||||
:comment "Is detected but images look strange. Same scanner as U16B?"
|
||||
|
||||
:model "OpticPro UT16B"
|
||||
:interface "USB"
|
||||
|
|
|
@ -1,5 +1,19 @@
|
|||
gt68xx.CHANGES -*-text-*-
|
||||
|
||||
V 1.0-56 (2004-03-19)
|
||||
|
||||
* Genius Vivid 4xe now has color order RGB.
|
||||
* Removed 50 dpi for Mustek BearPaw 2448 as that resolution doesn't work.
|
||||
* Make sure that the lamp of the Mustek A3 USB gets warmed up. It's a CIS
|
||||
scanner with a lamp. That code is untested.
|
||||
* Full scan starts scanning from the start position of the white strip now.
|
||||
|
||||
V 1.0-55 (2004-03-06)
|
||||
|
||||
* Added detection for Genius Vivid 1200 EX.
|
||||
* Fixed product id of Mustek BearPaw 2448 TA Plus.
|
||||
* Other minor updates.
|
||||
|
||||
V 1.0-54 (2004-02-10)
|
||||
|
||||
* Added basic support for Plustek OpticSlim 2400. Thanks to Radoslaw Grzanka and
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
.TH sane-gt68xx 5 "10 Feb 2004" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy"
|
||||
.TH sane-gt68xx 5 "22 Feb 2004" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy"
|
||||
.IX sane-gt68xx
|
||||
.SH NAME
|
||||
sane-gt68xx \- SANE backend for GT-68XX based USB flatbed scanners
|
||||
|
@ -129,6 +129,7 @@ or
|
|||
.I system32
|
||||
directories). Put that firmware file into
|
||||
.IR @DATADIR@/sane/gt68xx/ .
|
||||
Make sure that it's readable by everyone.
|
||||
|
||||
.SH CONFIGURATION
|
||||
The contents of the
|
||||
|
|
Ładowanie…
Reference in New Issue