kopia lustrzana https://gitlab.com/sane-project/backends
Fixed area of negative/slide scans for HP ScanJet G3110
rodzic
975aed198c
commit
3846396eff
|
@ -1,3 +1,7 @@
|
||||||
|
2009-02-23 Jonathan Bravo Lopez <jkdsoft@gmail.com>
|
||||||
|
backend/hp3900_config.c: Fix area of negative/slide scans for
|
||||||
|
HP ScanJet G3110.
|
||||||
|
|
||||||
2009-02-22 Chris Bagwell <cbagwell-guest at users.alioth.debian.org>
|
2009-02-22 Chris Bagwell <cbagwell-guest at users.alioth.debian.org>
|
||||||
* japi/Makefile.am: Add back -version-number to java library but
|
* japi/Makefile.am: Add back -version-number to java library but
|
||||||
also add V_REV.
|
also add V_REV.
|
||||||
|
|
|
@ -190,6 +190,10 @@ static int hp4370_calibtransparent(int option, int defvalue);
|
||||||
static int hp4370_calibnegative(int option, int defvalue);
|
static int hp4370_calibnegative(int option, int defvalue);
|
||||||
static int srt_hp4370_scanparam_get(int file, int option, int defvalue);
|
static int srt_hp4370_scanparam_get(int file, int option, int defvalue);
|
||||||
|
|
||||||
|
/* HP Scanjet g3110 */
|
||||||
|
static int hpg3110_calibnegative(int option, int defvalue);
|
||||||
|
static int hpg3110_calibtransparent(int option, int defvalue);
|
||||||
|
|
||||||
/* ----- Implementation ----- */
|
/* ----- Implementation ----- */
|
||||||
|
|
||||||
enum ConfigFiles
|
enum ConfigFiles
|
||||||
|
@ -996,7 +1000,7 @@ static SANE_Int cfg_constrains_get(struct st_constrains *constrain)
|
||||||
{ HP4370 , {{ 0, 220, 0, 300}, { 90, 45, 0, 85}, { 90, 45, 0, 100}}},
|
{ 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}}},
|
{ 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}}}
|
{HPG3110 , {{ 0, 220, 0, 300}, { 92, 28, 0, 190}, { 85, 44, 0, 190}}}
|
||||||
};
|
};
|
||||||
|
|
||||||
if (constrain != NULL)
|
if (constrain != NULL)
|
||||||
|
@ -4930,6 +4934,102 @@ static int hp4370_calibtransparent(int option, int defvalue)
|
||||||
return rst;
|
return rst;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int hpg3110_calibtransparent(int option, int defvalue)
|
||||||
|
{
|
||||||
|
int rst = defvalue;
|
||||||
|
switch(option)
|
||||||
|
{
|
||||||
|
case WSTRIPXPOS: rst = 0; break;
|
||||||
|
case WSTRIPYPOS: rst = 5100; break;
|
||||||
|
case BSTRIPXPOS: rst = 0; break;
|
||||||
|
case BSTRIPYPOS: rst = 0; break;
|
||||||
|
case BREFR: rst = 2; break;
|
||||||
|
case BREFG: rst = 2; break;
|
||||||
|
case BREFB: rst = 2; break;
|
||||||
|
case REFBITDEPTH: rst = 8; break;
|
||||||
|
case OFFSETHEIGHT: rst = 10; break;
|
||||||
|
case OFFSETNSIGMA: rst = 2; break;
|
||||||
|
case OFFSETTARGETMAX: rst = 50; break;
|
||||||
|
case OFFSETTARGETMIN: rst = 2; break;
|
||||||
|
case OFFSETAVGTARGETR: rst = 10; break;
|
||||||
|
case OFFSETAVGTARGETG: rst = 10; break;
|
||||||
|
case OFFSETAVGTARGETB: rst = 10; break;
|
||||||
|
case ADCOFFEVENODD: rst = 1; break;
|
||||||
|
case CALIBOFFSET1ON: rst = 2; break;
|
||||||
|
case ADCOFFQUICKWAY: rst = 1; break;
|
||||||
|
case ADCOFFPREDICTSTART: rst = 200; break;
|
||||||
|
case ADCOFFPREDICTEND: rst = 500; break;
|
||||||
|
case OFFSETTUNESTEP1: rst = 5; break;
|
||||||
|
case OFFSETBOUNDARYRATIO1: rst = 100; break;
|
||||||
|
case OFFSETAVGRATIO1: rst = 100; break;
|
||||||
|
case OFFSETEVEN1R: rst = 315; break;
|
||||||
|
case OFFSETODD1R: rst = 321; break;
|
||||||
|
case OFFSETEVEN1G: rst = 321; break;
|
||||||
|
case OFFSETODD1G: rst = 324; break;
|
||||||
|
case OFFSETEVEN1B: rst = 324; break;
|
||||||
|
case OFFSETODD1B: rst = 327; break;
|
||||||
|
case ADCOFFPREDICTR: rst = 333; break;
|
||||||
|
case ADCOFFPREDICTG: rst = 313; break;
|
||||||
|
case ADCOFFPREDICTB: rst = 317; break;
|
||||||
|
case ADCOFFEVEN1R_1ST: rst = 69; break;
|
||||||
|
case ADCOFFODD1R_1ST: rst = 69; break;
|
||||||
|
case ADCOFFEVEN1G_1ST: rst = 87; break;
|
||||||
|
case ADCOFFODD1G_1ST: rst = 87; break;
|
||||||
|
case ADCOFFEVEN1B_1ST: rst = 106; break;
|
||||||
|
case ADCOFFODD1B_1ST: rst = 106; break;
|
||||||
|
case PEAKR: rst = 62; break;
|
||||||
|
case PEAKG: rst = 66; break;
|
||||||
|
case PEAKB: rst = 54; break;
|
||||||
|
case MINR: rst = 42; break;
|
||||||
|
case MING: rst = 45; break;
|
||||||
|
case MINB: rst = 45; break;
|
||||||
|
case CALIBOFFSET2ON: rst = 0; break;
|
||||||
|
case OFFSETTUNESTEP2: rst = 1; break;
|
||||||
|
case OFFSETBOUNDARYRATIO2: rst = 100; break;
|
||||||
|
case OFFSETAVGRATIO2: rst = 100; break;
|
||||||
|
case OFFSETEVEN2R: rst = 0; break;
|
||||||
|
case OFFSETODD2R: rst = 0; break;
|
||||||
|
case OFFSETEVEN2G: rst = 0; break;
|
||||||
|
case OFFSETODD2G: rst = 0; break;
|
||||||
|
case OFFSETEVEN2B: rst = 0; break;
|
||||||
|
case OFFSETODD2B: rst = 0; break;
|
||||||
|
case GAINHEIGHT: rst = 30; break;
|
||||||
|
case GAINTARGETFACTOR: rst = 80; break;
|
||||||
|
case CALIBPAGON: rst = 0; break;
|
||||||
|
case HIPAGR: rst = 3; break;
|
||||||
|
case HIPAGG: rst = 3; break;
|
||||||
|
case HIPAGB: rst = 2; break;
|
||||||
|
case LOPAGR: rst = 3; break;
|
||||||
|
case LOPAGG: rst = 3; break;
|
||||||
|
case LOPAGB: rst = 2; break;
|
||||||
|
case PAGR: rst = 3; break;
|
||||||
|
case PAGG: rst = 3; break;
|
||||||
|
case PAGB: rst = 2; break;
|
||||||
|
case CALIBGAIN1ON: rst = 1; break;
|
||||||
|
case GAIN1R: rst = 11; break;
|
||||||
|
case GAIN1G: rst = 9; break;
|
||||||
|
case GAIN1B: rst = 12; break;
|
||||||
|
case CALIBGAIN2ON: rst = 0; break;
|
||||||
|
case GAIN2R: rst = 4; break;
|
||||||
|
case GAIN2G: rst = 4; break;
|
||||||
|
case GAIN2B: rst = 4; break;
|
||||||
|
case TOTSHADING: rst = 0; break;
|
||||||
|
case BSHADINGON: rst = -2; break;
|
||||||
|
case BSHADINGHEIGHT: rst = 30; break;
|
||||||
|
case BSHADINGPREDIFFR: rst = 2; break;
|
||||||
|
case BSHADINGPREDIFFG: rst = 2; break;
|
||||||
|
case BSHADINGPREDIFFB: rst = 2; break;
|
||||||
|
case BSHADINGDEFCUTOFF: rst = 0; break;
|
||||||
|
case WSHADINGON: rst = 3; break;
|
||||||
|
case WSHADINGHEIGHT: rst = 24; break;
|
||||||
|
case WSHADINGPREDIFFR: rst = -1; break;
|
||||||
|
case WSHADINGPREDIFFG: rst = -1; break;
|
||||||
|
case WSHADINGPREDIFFB: rst = -1; break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return rst;
|
||||||
|
}
|
||||||
|
|
||||||
static int fc_calibtransparent(int option, int defvalue)
|
static int fc_calibtransparent(int option, int defvalue)
|
||||||
{
|
{
|
||||||
int rst;
|
int rst;
|
||||||
|
@ -4940,8 +5040,8 @@ static int fc_calibtransparent(int option, int defvalue)
|
||||||
case HPG2710:
|
case HPG2710:
|
||||||
case HP3800: rst = hp3800_calibtransparent(option, defvalue); break;
|
case HP3800: rst = hp3800_calibtransparent(option, defvalue); break;
|
||||||
case HPG3010:
|
case HPG3010:
|
||||||
case HPG3110:
|
|
||||||
case HP4370: rst = hp4370_calibtransparent(option, defvalue); break;
|
case HP4370: rst = hp4370_calibtransparent(option, defvalue); break;
|
||||||
|
case HPG3110: rst = hpg3110_calibtransparent(option, defvalue); break;
|
||||||
default : rst = hp3970_calibtransparent(option, defvalue); break;
|
default : rst = hp3970_calibtransparent(option, defvalue); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5221,6 +5321,103 @@ static int hp3970_calibnegative(int option, int defvalue)
|
||||||
return rst;
|
return rst;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int hpg3110_calibnegative(int option, int defvalue)
|
||||||
|
{
|
||||||
|
int rst = defvalue;
|
||||||
|
|
||||||
|
switch(option)
|
||||||
|
{
|
||||||
|
case WSTRIPXPOS: rst = 0; break;
|
||||||
|
case WSTRIPYPOS: rst = 5100; break;
|
||||||
|
case BSTRIPXPOS: rst = 0; break;
|
||||||
|
case BSTRIPYPOS: rst = 0; break;
|
||||||
|
case BREFR: rst = 10; break;
|
||||||
|
case BREFG: rst = 10; break;
|
||||||
|
case BREFB: rst = 10; break;
|
||||||
|
case REFBITDEPTH: rst = 8; break;
|
||||||
|
case OFFSETHEIGHT: rst = 10; break;
|
||||||
|
case OFFSETNSIGMA: rst = 2; break;
|
||||||
|
case OFFSETTARGETMAX: rst = 50; break;
|
||||||
|
case OFFSETTARGETMIN: rst = 2; break;
|
||||||
|
case OFFSETAVGTARGETR: rst = 10; break;
|
||||||
|
case OFFSETAVGTARGETG: rst = 10; break;
|
||||||
|
case OFFSETAVGTARGETB: rst = 10; break;
|
||||||
|
case ADCOFFEVENODD: rst = 1; break;
|
||||||
|
case CALIBOFFSET1ON: rst = 2; break;
|
||||||
|
case ADCOFFQUICKWAY: rst = 1; break;
|
||||||
|
case ADCOFFPREDICTSTART: rst = 200; break;
|
||||||
|
case ADCOFFPREDICTEND: rst = 500; break;
|
||||||
|
case OFFSETTUNESTEP1: rst = 5; break;
|
||||||
|
case OFFSETBOUNDARYRATIO1: rst = 100; break;
|
||||||
|
case OFFSETAVGRATIO1: rst = 100; break;
|
||||||
|
case OFFSETEVEN1R: rst = 308; break;
|
||||||
|
case OFFSETODD1R: rst = 308; break;
|
||||||
|
case OFFSETEVEN1G: rst = 317; break;
|
||||||
|
case OFFSETODD1G: rst = 317; break;
|
||||||
|
case OFFSETEVEN1B: rst = 319; break;
|
||||||
|
case OFFSETODD1B: rst = 319; break;
|
||||||
|
case ADCOFFPREDICTR: rst = 333; break;
|
||||||
|
case ADCOFFPREDICTG: rst = 313; break;
|
||||||
|
case ADCOFFPREDICTB: rst = 317; break;
|
||||||
|
case ADCOFFEVEN1R_1ST: rst = 69; break;
|
||||||
|
case ADCOFFODD1R_1ST: rst = 69; break;
|
||||||
|
case ADCOFFEVEN1G_1ST: rst = 87; break;
|
||||||
|
case ADCOFFODD1G_1ST: rst = 87; break;
|
||||||
|
case ADCOFFEVEN1B_1ST: rst = 106; break;
|
||||||
|
case ADCOFFODD1B_1ST: rst = 106; break;
|
||||||
|
case PEAKR: rst = 116; break;
|
||||||
|
case PEAKG: rst = 126; break;
|
||||||
|
case PEAKB: rst = 102; break;
|
||||||
|
case MINR: rst = 103; break;
|
||||||
|
case MING: rst = 112; break;
|
||||||
|
case MINB: rst = 80; break;
|
||||||
|
case CALIBOFFSET2ON: rst = 0; break;
|
||||||
|
case OFFSETTUNESTEP2: rst = 1; break;
|
||||||
|
case OFFSETBOUNDARYRATIO2: rst = 100; break;
|
||||||
|
case OFFSETAVGRATIO2: rst = 100; break;
|
||||||
|
case OFFSETEVEN2R: rst = 0; break;
|
||||||
|
case OFFSETODD2R: rst = 0; break;
|
||||||
|
case OFFSETEVEN2G: rst = 0; break;
|
||||||
|
case OFFSETODD2G: rst = 0; break;
|
||||||
|
case OFFSETEVEN2B: rst = 0; break;
|
||||||
|
case OFFSETODD2B: rst = 0; break;
|
||||||
|
case GAINHEIGHT: rst = 30; break;
|
||||||
|
case GAINTARGETFACTOR: rst = 80; break;
|
||||||
|
case CALIBPAGON: rst = 0; break;
|
||||||
|
case HIPAGR: rst = 3; break;
|
||||||
|
case HIPAGG: rst = 3; break;
|
||||||
|
case HIPAGB: rst = 3; break;
|
||||||
|
case LOPAGR: rst = 3; break;
|
||||||
|
case LOPAGG: rst = 3; break;
|
||||||
|
case LOPAGB: rst = 3; break;
|
||||||
|
case PAGR: rst = 3; break;
|
||||||
|
case PAGG: rst = 3; break;
|
||||||
|
case PAGB: rst = 3; break;
|
||||||
|
case CALIBGAIN1ON: rst = 1; break;
|
||||||
|
case GAIN1R: rst = 6; break;
|
||||||
|
case GAIN1G: rst = 1; break;
|
||||||
|
case GAIN1B: rst = 7; break;
|
||||||
|
case CALIBGAIN2ON: rst = 0; break;
|
||||||
|
case GAIN2R: rst = 4; break;
|
||||||
|
case GAIN2G: rst = 4; break;
|
||||||
|
case GAIN2B: rst = 4; break;
|
||||||
|
case TOTSHADING: rst = 0; break;
|
||||||
|
case BSHADINGON: rst = -2; break;
|
||||||
|
case BSHADINGHEIGHT: rst = 30; break;
|
||||||
|
case BSHADINGPREDIFFR: rst = 2; break;
|
||||||
|
case BSHADINGPREDIFFG: rst = 2; break;
|
||||||
|
case BSHADINGPREDIFFB: rst = 2; break;
|
||||||
|
case BSHADINGDEFCUTOFF: rst = 0; break;
|
||||||
|
case WSHADINGON: rst = 3; break;
|
||||||
|
case WSHADINGHEIGHT: rst = 24; break;
|
||||||
|
case WSHADINGPREDIFFR: rst = -1; break;
|
||||||
|
case WSHADINGPREDIFFG: rst = -1; break;
|
||||||
|
case WSHADINGPREDIFFB: rst = -1; break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return rst;
|
||||||
|
}
|
||||||
|
|
||||||
static int hp4370_calibnegative(int option, int defvalue)
|
static int hp4370_calibnegative(int option, int defvalue)
|
||||||
{
|
{
|
||||||
int rst = defvalue;
|
int rst = defvalue;
|
||||||
|
@ -5328,8 +5525,8 @@ static int fc_calibnegative(int option, int defvalue)
|
||||||
case HPG2710:
|
case HPG2710:
|
||||||
case HP3800: rst = hp3800_calibnegative(option, defvalue); break;
|
case HP3800: rst = hp3800_calibnegative(option, defvalue); break;
|
||||||
case HPG3010:
|
case HPG3010:
|
||||||
case HPG3110:
|
|
||||||
case HP4370: rst = hp4370_calibnegative(option, defvalue); break;
|
case HP4370: rst = hp4370_calibnegative(option, defvalue); break;
|
||||||
|
case HPG3110: rst = hpg3110_calibnegative(option, defvalue); break;
|
||||||
default : rst = hp3970_calibnegative(option, defvalue); break;
|
default : rst = hp3970_calibnegative(option, defvalue); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Ładowanie…
Reference in New Issue