kopia lustrzana https://gitlab.com/sane-project/backends
* backend/hp3900_sane.c, backend/hp3900_config.c, backend/hp3900_types.c,
backend/hp3900.conf.in, doc/sane-hp3900.man, doc/descriptions/hp3900.desc: Added support for HP Scanjet G3110 scanner.merge-requests/1/head
rodzic
e11de37747
commit
4b9e686065
|
@ -1,3 +1,9 @@
|
|||
2009-01-06 Jonathan Bravo Lopez <jkdsoft@gmail.com>
|
||||
* backend/hp3900_sane.c, backend/hp3900_config.c,
|
||||
backend/hp3900_types.c, backend/hp3900.conf.in, doc/sane-hp3900.man,
|
||||
doc/descriptions/hp3900.desc:
|
||||
Added support for HP Scanjet G3110 scanner.
|
||||
|
||||
2009-01-05 Jeremy Johnson <jeremy a t acjlaw dot net>
|
||||
Added code to read_data() to pad image data to
|
||||
requested length and to zero out any garbage using
|
||||
|
|
|
@ -20,6 +20,9 @@ usb 0x03f0 0x2805
|
|||
# HP Scanjet G3010
|
||||
usb 0x03f0 0x4205
|
||||
|
||||
# HP Scanjet G3110
|
||||
usb 0x03f0 0x4305
|
||||
|
||||
# UMAX Astra 4900/4950
|
||||
usb 0x06dc 0x0020
|
||||
|
||||
|
|
|
@ -369,7 +369,8 @@ static SANE_Int cfg_device_get(SANE_Int product, SANE_Int vendor)
|
|||
{ 0x3f0, 0x2305, HP3970 }, /* HP Scanjet 3970c */
|
||||
{ 0x3f0, 0x2405, HP4070 }, /* HP Scanjet 4070 Photosmart */
|
||||
{ 0x3f0, 0x4105, HP4370 }, /* HP Scanjet 4370 */
|
||||
{ 0x3f0, 0x4205, HPG3010} /* HP Scanjet G3010 */
|
||||
{ 0x3f0, 0x4205, HPG3010}, /* HP Scanjet G3010 */
|
||||
{ 0x3f0, 0x4305, HPG3110} /* HP Scanjet G3010 */
|
||||
};
|
||||
|
||||
SANE_Int rst = -1; /* default */
|
||||
|
@ -406,7 +407,8 @@ static SANE_Int cfg_chipset_model_get(SANE_Int device)
|
|||
{ HP3970 , RTS8822L_01H },
|
||||
{ HP4070 , RTS8822L_01H },
|
||||
{ HP4370 , RTS8822L_02A },
|
||||
{ HPG3010, RTS8822L_02A }
|
||||
{ HPG3010, RTS8822L_02A },
|
||||
{ HPG3110, RTS8822L_02A }
|
||||
};
|
||||
|
||||
SANE_Int rst = RTS8822L_01H; /* default */
|
||||
|
@ -488,7 +490,8 @@ static SANE_Int cfg_buttons_get(struct st_buttons *reg)
|
|||
{ HP3970 , {4 , {0x04, 0x08, 0x02, 0x01, -1, -1}}},
|
||||
{ HP4070 , {4 , {0x04, 0x08, 0x02, 0x01, -1, -1}}},
|
||||
{ HP4370 , {4 , {0x04, 0x08, 0x02, 0x01, -1, -1}}},
|
||||
{ HPG3010, {4 , {0x04, 0x08, 0x02, 0x01, -1, -1}}}
|
||||
{ HPG3010, {4 , {0x04, 0x08, 0x02, 0x01, -1, -1}}},
|
||||
{ HPG3110, {4 , {0x04, 0x08, 0x02, 0x01, -1, -1}}}
|
||||
};
|
||||
|
||||
SANE_Int a;
|
||||
|
@ -532,7 +535,8 @@ static SANE_Int cfg_sscg_get(SANE_Int *enable, SANE_Int *mode, SANE_Int *clock)
|
|||
{ HP3970, {1 , 1, 0}},
|
||||
{ HP4070, {1 , 1, 0}},
|
||||
{ HP4370, {1 , 1, 0}},
|
||||
{HPG3010, {1 , 1, 0}}
|
||||
{HPG3010, {1 , 1, 0}},
|
||||
{HPG3110, {1 , 1, 0}}
|
||||
};
|
||||
|
||||
SANE_Int a;
|
||||
|
@ -582,7 +586,8 @@ static SANE_Int cfg_motor_get(struct st_motorcfg *reg)
|
|||
{ HP3970, {MT_OUTPUTSTATE, 2400, 30, 800, 1, 0, 0, TRUE}},
|
||||
{ HP4070, {MT_OUTPUTSTATE, 2400, 30, 800, 1, 0, 0, TRUE}},
|
||||
{ HP4370, {MT_OUTPUTSTATE, 2400, 30, 800, 1, 0, 0, TRUE}},
|
||||
{HPG3010, {MT_OUTPUTSTATE, 2400, 30, 800, 1, 0, 0, TRUE}}
|
||||
{HPG3010, {MT_OUTPUTSTATE, 2400, 30, 800, 1, 0, 0, TRUE}},
|
||||
{HPG3110, {MT_OUTPUTSTATE, 2400, 30, 800, 1, 0, 0, TRUE}}
|
||||
};
|
||||
|
||||
SANE_Int a;
|
||||
|
@ -630,7 +635,8 @@ static SANE_Int cfg_sensor_get(struct st_sensorcfg *reg)
|
|||
{ HP3970, {CCD_SENSOR, TCD2952, 2400 , {CL_RED , CL_GREEN, CL_BLUE}, {CL_RED , 0}, {CL_RED , CL_GREEN, CL_BLUE}, 24 , 4 }},
|
||||
{ HP4070, {CCD_SENSOR, TCD2952, 2400 , {CL_RED , CL_GREEN, CL_BLUE}, {CL_RED , 0}, {CL_RED , CL_GREEN, CL_BLUE}, 24 , 4 }},
|
||||
{ HP4370, {CCD_SENSOR, TCD2958, 4800 , {CL_RED , CL_GREEN, CL_BLUE}, {CL_RED , 0}, {CL_RED , CL_GREEN, CL_BLUE}, 128 , 6 }},
|
||||
{HPG3010, {CCD_SENSOR, TCD2958, 4800 , {CL_RED , CL_GREEN, CL_BLUE}, {CL_RED , 0}, {CL_RED , CL_GREEN, CL_BLUE}, 128 , 6 }}
|
||||
{HPG3010, {CCD_SENSOR, TCD2958, 4800 , {CL_RED , CL_GREEN, CL_BLUE}, {CL_RED , 0}, {CL_RED , CL_GREEN, CL_BLUE}, 128 , 6 }},
|
||||
{HPG3110, {CCD_SENSOR, TCD2958, 4800 , {CL_RED , CL_GREEN, CL_BLUE}, {CL_RED , 0}, {CL_RED , CL_GREEN, CL_BLUE}, 128 , 6 }}
|
||||
};
|
||||
|
||||
SANE_Int a;
|
||||
|
@ -954,6 +960,7 @@ static void cfg_offset_get(SANE_Int sensortype, SANE_Int resolution, SANE_Int sc
|
|||
break;
|
||||
|
||||
case HPG3010:
|
||||
case HPG3110:
|
||||
case HP4370:
|
||||
hp4370_offset(resolution, scantype, left, width);
|
||||
break;
|
||||
|
@ -988,7 +995,8 @@ static SANE_Int cfg_constrains_get(struct st_constrains *constrain)
|
|||
{ HP4070 , {{ 0, 220, 0, 300}, { 58, 99, 0, 197}, { 58, 99, 0, 197}}},
|
||||
{ HP4370 , {{ 0, 220, 0, 300}, { 90, 45, 0, 85}, { 90, 45, 0, 100}}},
|
||||
{ UA4900 , {{ 0, 220, 0, 300}, { 88, 42, 0, 83}, { 88, 42, 0, 83}}},
|
||||
{HPG3010 , {{ 0, 220, 0, 300}, { 90, 45, 0, 85}, { 89, 45, 0, 100}}}
|
||||
{HPG3010 , {{ 0, 220, 0, 300}, { 90, 45, 0, 85}, { 89, 45, 0, 100}}},
|
||||
{HPG3110 , {{ 0, 220, 0, 300}, { 90, 45, 0, 85}, { 89, 45, 0, 100}}}
|
||||
};
|
||||
|
||||
if (constrain != NULL)
|
||||
|
@ -1071,7 +1079,8 @@ static void cfg_autoref_get(struct st_autoref *reg)
|
|||
{ HP3970 , {REF_TAKEFROMSCANNER, 88, 717, 600 , 40}},
|
||||
{ HP4070 , {REF_TAKEFROMSCANNER, 88, 717, 600 , 40}},
|
||||
{ HP4370 , {REF_TAKEFROMSCANNER, 88, 717, 600 , 40}},
|
||||
{HPG3010 , {REF_TAKEFROMSCANNER, 88, 717, 600 , 40}}
|
||||
{HPG3010 , {REF_TAKEFROMSCANNER, 88, 717, 600 , 40}},
|
||||
{HPG3110 , {REF_TAKEFROMSCANNER, 88, 717, 600 , 40}}
|
||||
};
|
||||
|
||||
SANE_Int a;
|
||||
|
@ -1240,6 +1249,7 @@ static SANE_Int cfg_effectivepixel_get(SANE_Int sensortype, SANE_Int resolution)
|
|||
|
||||
case HP4370:
|
||||
case HPG3010:
|
||||
case HPG3110:
|
||||
rst = hp4370_effectivepixel(resolution);
|
||||
break;
|
||||
|
||||
|
@ -1453,6 +1463,7 @@ static SANE_Int cfg_gainoffset_get(SANE_Int sensortype, struct st_gain_offset *r
|
|||
|
||||
case HP4370:
|
||||
case HPG3010:
|
||||
case HPG3110:
|
||||
rst = hp4370_gainoffset(RTS_Debug->usbtype, reg);
|
||||
break;
|
||||
|
||||
|
@ -1627,6 +1638,7 @@ static SANE_Int cfg_checkstable_get(SANE_Int lamp, struct st_checkstable *check)
|
|||
|
||||
case HP4370:
|
||||
case HPG3010:
|
||||
case HPG3110:
|
||||
rst = hp4370_checkstable(lamp, check);
|
||||
break;
|
||||
|
||||
|
@ -1789,6 +1801,7 @@ static SANE_Int cfg_fixedpwm_get(SANE_Int sensortype, SANE_Int scantype)
|
|||
|
||||
case HP4370:
|
||||
case HPG3010:
|
||||
case HPG3110:
|
||||
rst = hp4370_fixedpwm(scantype, RTS_Debug->usbtype);
|
||||
break;
|
||||
|
||||
|
@ -1813,6 +1826,7 @@ static void cfg_vrefs_get(SANE_Int sensortype, SANE_Int res, SANE_Int *ser, SANE
|
|||
|
||||
case HP4370:
|
||||
case HPG3010:
|
||||
case HPG3110:
|
||||
hp4370_vrefs(res, ser, ler);
|
||||
break;
|
||||
|
||||
|
@ -2115,6 +2129,7 @@ static SANE_Int cfg_scanmode_get(SANE_Int sensortype, SANE_Int sm, struct st_sca
|
|||
|
||||
case HP4370:
|
||||
case HPG3010:
|
||||
case HPG3110:
|
||||
rst = hp4370_scanmodes(RTS_Debug->usbtype, sm, mymode);
|
||||
break;
|
||||
|
||||
|
@ -3145,6 +3160,7 @@ static void cfg_wrefs_get(SANE_Int sensortype, SANE_Int depth, SANE_Int res, SAN
|
|||
|
||||
case HP4370:
|
||||
case HPG3010:
|
||||
case HPG3110:
|
||||
hp4370_wrefs(res, scantype, red, green, blue);
|
||||
break;
|
||||
|
||||
|
@ -3518,6 +3534,7 @@ static void cfg_shading_cut_get(SANE_Int sensortype, SANE_Int depth, SANE_Int re
|
|||
|
||||
case HP4370:
|
||||
case HPG3010:
|
||||
case HPG3110:
|
||||
hp4370_shading_cut(depth, res, scantype, red, green, blue);
|
||||
break;
|
||||
|
||||
|
@ -3741,6 +3758,7 @@ static SANE_Int cfg_timing_get(SANE_Int sensortype, SANE_Int tm, struct st_timin
|
|||
|
||||
case HP4370:
|
||||
case HPG3010:
|
||||
case HPG3110:
|
||||
rst = hp4370_timing_get(tm, reg);
|
||||
break;
|
||||
|
||||
|
@ -4148,6 +4166,7 @@ static SANE_Int *cfg_motorcurve_get()
|
|||
|
||||
case HP4370:
|
||||
case HPG3010:
|
||||
case HPG3110:
|
||||
rst = hp4370_motor();
|
||||
break;
|
||||
|
||||
|
@ -4536,6 +4555,7 @@ static int fc_calibreflective(int option, int defvalue)
|
|||
case HPG2710:
|
||||
case HP3800: rst = hp3800_calibreflective(option, defvalue); break;
|
||||
case HPG3010:
|
||||
case HPG3110:
|
||||
case HP4370: rst = hp4370_calibreflective(option, defvalue); break;
|
||||
default : rst = hp3970_calibreflective(option, defvalue); break;
|
||||
}
|
||||
|
@ -4920,6 +4940,7 @@ static int fc_calibtransparent(int option, int defvalue)
|
|||
case HPG2710:
|
||||
case HP3800: rst = hp3800_calibtransparent(option, defvalue); break;
|
||||
case HPG3010:
|
||||
case HPG3110:
|
||||
case HP4370: rst = hp4370_calibtransparent(option, defvalue); break;
|
||||
default : rst = hp3970_calibtransparent(option, defvalue); break;
|
||||
}
|
||||
|
@ -5307,6 +5328,7 @@ static int fc_calibnegative(int option, int defvalue)
|
|||
case HPG2710:
|
||||
case HP3800: rst = hp3800_calibnegative(option, defvalue); break;
|
||||
case HPG3010:
|
||||
case HPG3110:
|
||||
case HP4370: rst = hp4370_calibnegative(option, defvalue); break;
|
||||
default : rst = hp3970_calibnegative(option, defvalue); break;
|
||||
}
|
||||
|
@ -5741,6 +5763,7 @@ static int srt_sec_get(int file, int section, int option, int defvalue)
|
|||
case HPG2710:
|
||||
case HP3800: rst = srt_hp3800_scanparam_get(option, defvalue); break;
|
||||
case HPG3010:
|
||||
case HPG3110:
|
||||
case HP4370: rst = srt_hp4370_scanparam_get(file, option, defvalue); break;
|
||||
default : rst = srt_hp3970_scanparam_get(file, option, defvalue); break;
|
||||
}
|
||||
|
@ -5758,6 +5781,7 @@ static int srt_sec_get(int file, int section, int option, int defvalue)
|
|||
case HP3800: rst = srt_hp3800_platform_get(option, defvalue); break;
|
||||
case UA4900: rst = srt_ua4900_platform_get(option, defvalue); break;
|
||||
case HPG3010:
|
||||
case HPG3110:
|
||||
case HP4370: rst = srt_hp4370_platform_get(option, defvalue); break;
|
||||
default : rst = srt_hp3970_platform_get(option, defvalue); break;
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* HP Scanjet 3900 series - SANE Backend controller
|
||||
Copyright (C) 2005-2008 Jonathan Bravo Lopez <jkdsoft@gmail.com>
|
||||
Copyright (C) 2005-2009 Jonathan Bravo Lopez <jkdsoft@gmail.com>
|
||||
|
||||
This file is part of the SANE package.
|
||||
|
||||
|
@ -293,6 +293,7 @@ bknd_resolutions (TScanner * scanner, SANE_Int model)
|
|||
|
||||
case HP4370:
|
||||
case HPG3010:
|
||||
case HPG3110:
|
||||
{
|
||||
SANE_Int myres[] =
|
||||
{ 10, 50, 75, 100, 150, 200, 300, 600, 1200, 2400, 4800 };
|
||||
|
@ -342,7 +343,7 @@ bknd_models (TScanner * scanner)
|
|||
/* at this moment all devices use the same list */
|
||||
SANE_String_Const mymodel[] =
|
||||
{ "HP3800", "HP3970", "HP4070", "HP4370", "UA4900", "HPG3010",
|
||||
"BQ5550", "HPG2710", 0 };
|
||||
"BQ5550", "HPG2710", "HPG3110", 0 };
|
||||
|
||||
/* allocate space to save list */
|
||||
model = (SANE_String_Const *) malloc (sizeof (mymodel));
|
||||
|
@ -633,9 +634,9 @@ set_ScannerModel (SANE_Int proposed, SANE_Int product, SANE_Int vendor)
|
|||
/* This function will set the device behaviour */
|
||||
|
||||
SANE_Int current = Device_get (product, vendor);
|
||||
char *sdevname[9] =
|
||||
char *sdevname[10] =
|
||||
{ "Unknown", "HP3970", "HP4070", "HP4370", "UA4900", "HP3800", "HPG3010",
|
||||
"BQ5550", "HPG2710" };
|
||||
"BQ5550", "HPG2710", "HPG3110" };
|
||||
|
||||
DBG (DBG_FNC,
|
||||
"> set_ScannerModel(proposed=%i, product=%04x, vendor=%04x)\n",
|
||||
|
@ -996,6 +997,8 @@ Get_Model (SANE_String model)
|
|||
rst = HP4370;
|
||||
else if (strcmp (model, "HPG3010") == 0)
|
||||
rst = HPG3010;
|
||||
else if (strcmp (model, "HPG3110") == 0)
|
||||
rst = HPG3110;
|
||||
else if (strcmp (model, "UA4900") == 0)
|
||||
rst = UA4900;
|
||||
else if (strcmp (model, "BQ5550") == 0)
|
||||
|
@ -1716,6 +1719,10 @@ attach_one_device (SANE_String_Const devname)
|
|||
sModel.pszVendor = (char *) strdup ("Hewlett-Packard");
|
||||
sModel.pszName = (char *) strdup ("Scanjet G3010");
|
||||
break;
|
||||
case HPG3110:
|
||||
sModel.pszVendor = (char *) strdup ("Hewlett-Packard");
|
||||
sModel.pszName = (char *) strdup ("Scanjet G3110");
|
||||
break;
|
||||
case UA4900:
|
||||
sModel.pszVendor = (char *) strdup ("UMAX");
|
||||
sModel.pszName = (char *) strdup ("Astra 4900");
|
||||
|
@ -1791,6 +1798,7 @@ sane_init (SANE_Int * version_code, SANE_Auth_Callback authorize)
|
|||
sanei_usb_attach_matching_devices ("usb 0x03f0 0x2405", attach_one_device); /* HP4070 */
|
||||
sanei_usb_attach_matching_devices ("usb 0x03f0 0x4105", attach_one_device); /* HP4370 */
|
||||
sanei_usb_attach_matching_devices ("usb 0x03f0 0x4205", attach_one_device); /* HPG3010 */
|
||||
sanei_usb_attach_matching_devices ("usb 0x03f0 0x4305", attach_one_device); /* HPG3110 */
|
||||
sanei_usb_attach_matching_devices ("usb 0x06dc 0x0020", attach_one_device); /* UA4900 */
|
||||
sanei_usb_attach_matching_devices ("usb 0x04a5 0x2211", attach_one_device); /* BQ5550 */
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* HP Scanjet 3900 series - Structures and global variables
|
||||
|
||||
Copyright (C) 2005-2008 Jonathan Bravo Lopez <jkdsoft@gmail.com>
|
||||
Copyright (C) 2005-2009 Jonathan Bravo Lopez <jkdsoft@gmail.com>
|
||||
|
||||
This file is part of the SANE package.
|
||||
|
||||
|
@ -41,7 +41,7 @@
|
|||
*/
|
||||
|
||||
/* devices */
|
||||
#define DEVSCOUNT 0x08 /* Number of scanners supported by this backend */
|
||||
#define DEVSCOUNT 0x09 /* Number of scanners supported by this backend */
|
||||
|
||||
#define HP3970 0x00 /* rts8822l-01H HP Scanjet 3970 */
|
||||
#define HP4070 0x01 /* rts8822l-01H HP Scanjet 4070 */
|
||||
|
@ -51,6 +51,7 @@
|
|||
#define HPG3010 0x05 /* rts8822l-02A HP Scanjet G3010 */
|
||||
#define BQ5550 0x06 /* rts8823l-01E BenQ 5550 */
|
||||
#define HPG2710 0x07 /* rts8822bl-03A HP Scanjet G2710 */
|
||||
#define HPG3110 0x08 /* rts8822l-02A HP Scanjet G3110 */
|
||||
|
||||
/* chipset models */
|
||||
#define RTS8822L_01H 0x00
|
||||
|
|
|
@ -54,6 +54,12 @@
|
|||
:status :basic
|
||||
:comment "Similar to hp scanjet 4370"
|
||||
|
||||
:model "ScanJet G3110"
|
||||
:interface "USB"
|
||||
:usbid "0x03f0" "0x4305"
|
||||
:status :basic
|
||||
:comment "Similar to hp scanjet 4370"
|
||||
|
||||
; -----------------------------------------------------
|
||||
:mfg "UMAX"
|
||||
:url "http://www.umax.com"
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
.TH sane\-hp3900 5 "13 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy"
|
||||
.TH sane\-hp3900 5 "06 Jan 2009" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy"
|
||||
.IX sane\-hp3900
|
||||
.SH NAME
|
||||
sane\-hp3900 \- SANE backend for RTS8822 chipset based scanners
|
||||
|
@ -19,6 +19,7 @@ HP ScanJet 4070 Photosmart RTS8822L-01H
|
|||
HP ScanJet 4370 RTS8822L-02A
|
||||
HP ScanJet G2710 RTS8822BL-03A
|
||||
HP ScanJet G3010 RTS8822L-02A
|
||||
HP ScanJet G3110 RTS8822L-02A
|
||||
UMAX Astra 4900/4950 RTS8822L-01H *
|
||||
BenQ 5550 RTS8823L-01E *
|
||||
.fi
|
||||
|
|
Ładowanie…
Reference in New Issue