Lines Matching defs:scancfg
86 struct st_scanparams *scancfg);
90 struct st_scanparams *scancfg);
212 struct st_scanparams *scancfg,
247 struct st_scanparams *scancfg,
252 struct st_scanparams *scancfg,
255 struct st_scanparams *scancfg,
262 struct st_scanparams *scancfg,
273 struct st_scanparams *scancfg,
317 static SANE_Int Refs_Analyze_Pattern (struct st_scanparams *scancfg,
354 struct st_scanparams *scancfg,
490 struct st_scanparams *scancfg, SANE_Int scantype,
526 struct st_scanparams *scancfg,
532 struct st_scanparams *scancfg);
578 struct st_scanparams *scancfg,
1637 struct st_scanparams *scancfg, struct st_hwdconfig *hwdcfg)
1649 dbg_ScanParams (scancfg);
1653 /* Copy scancfg to scan2 */
1654 memcpy (&scan2, scancfg, sizeof (struct st_scanparams));
1656 mycolormode = scancfg->colormode;
1657 myvalue = scancfg->colormode;
1660 if (scancfg->colormode == CM_LINEART)
1663 if ((scancfg->colormode != CM_COLOR) && (scancfg->channel == 3)) /*channel = 0x00 */
1665 if (scancfg->colormode == CM_GRAY)
1674 dev->Resize->resolution_x = scancfg->resolution_x;
1675 dev->Resize->resolution_y = scancfg->resolution_y;
1677 mymode = RTS_GetScanmode (dev, hwdcfg->scantype, myvalue, scancfg->resolution_x); /*0x0b */
1684 Scanmode_fitres (dev, hwdcfg->scantype, scancfg->colormode,
1685 scancfg->resolution_x);
1695 Scanmode_maxres (dev, hwdcfg->scantype, scancfg->colormode);
1706 imageheight = scancfg->coord.height;
1707 dev->Resize->towidth = scancfg->coord.width;
1711 (scan2.resolution_x * scancfg->coord.left) /
1714 (scan2.resolution_x * scancfg->coord.width) /
1717 (scan2.resolution_y * scancfg->coord.top) / dev->Resize->resolution_y;
1719 ((scan2.resolution_y * scancfg->coord.height) /
1745 scancfg->coord.width * (channel_count * channel_size);
1753 scan2.resolution_x = scancfg->resolution_x;
1754 scan2.resolution_y = scancfg->resolution_y;
1755 mycoords.left = scancfg->coord.left;
1756 mycoords.top = scancfg->coord.top;
1757 mycoords.width = scancfg->coord.width;
1758 mycoords.height = scancfg->coord.height;
1761 scancfg->timing = dev->scanmodes[mymode]->timing;
1763 scan2.sensorresolution = dev->timings[scancfg->timing]->sensorresolution;
1768 scancfg->sensorresolution = scan2.sensorresolution;
1769 scancfg->shadinglength = scan2.shadinglength;
1799 && (scancfg->samplerate == PIXEL_RATE)) ? 8 : 4;
1864 scancfg->sensorresolution / scancfg->resolution_x);
1866 scancfg->coord.left = mycoords.left;
1867 scancfg->coord.top = mycoords.top;
1868 scancfg->coord.width = mycoords.width;
1869 scancfg->coord.height = mycoords.height;
1870 scancfg->resolution_x = scan2.resolution_x;
1871 scancfg->resolution_y = scan2.resolution_y;
1875 scancfg->bytesperline = bytesperline;
1877 scancfg->v157c = myvalue;
1882 scancfg->v157c = (scancfg->v157c / 3);
1889 scancfg->v157c = (scancfg->v157c + 7) / 8;
1890 scancfg->bytesperline = (scancfg->bytesperline + 7) / 8;
4713 struct st_scanparams *scancfg, struct st_hwdconfig *hwdcfg,
4718 DBG (DBG_FNC, "+ Gamma_Apply(*Regs, *scancfg, *hwdcfg, *mygamma):\n");
4719 dbg_ScanParams (scancfg);
4740 if (scancfg->colormode != CM_COLOR)
4742 if (scancfg->channel != 3)
4744 if (scancfg->colormode != 3)
4745 channels = (scancfg->samplerate == PIXEL_RATE) ? 2 : 1;
4797 Refs_Analyze_Pattern (struct st_scanparams *scancfg,
4807 scancfg->depth, scancfg->coord.width, scancfg->coord.height, ler1order,
4812 chn_size = (scancfg->depth > 8) ? 2 : 1;
4813 buffersize = max (scancfg->coord.width, scancfg->coord.height);
4824 if ((scancfg->coord.width - dist) > 1)
4830 for (xpos = 0; xpos < scancfg->coord.width; xpos++)
4835 (scancfg->coord.width * ypos) + xpos,
4866 while (cnt < (scancfg->coord.width - dist));
4874 if ((scancfg->coord.height - dist) > 1)
4880 for (ypos = 0; ypos < scancfg->coord.height; ypos++)
4882 for (xpos = vector[0]; xpos < scancfg->coord.width - dist;
4886 (scancfg->coord.width * ypos) + xpos,
4917 while (cnt < (scancfg->coord.height - dist));
4923 if ((scancfg->coord.width - dist) > 1)
4929 for (xpos = 0; xpos < scancfg->coord.width; xpos++)
4931 for (ypos = coord + 4; ypos < scancfg->coord.height; ypos++)
4934 (scancfg->coord.width * ypos) + xpos,
4964 while (cnt < (scancfg->coord.width - dist));
4971 dbg_autoref (scancfg, scanned_pattern, vector[0], vector[2],
8063 struct st_scanparams scancfg;
8069 memcpy (&scancfg, &scan, sizeof (struct st_scanparams));
8071 dbg_ScanParams (&scancfg);
8094 Refs_Set (dev, Regs, &scancfg);
8104 (dev, Regs, (scancfg.scantype == ST_NORMAL) ? FLB_LAMP : TMA_LAMP,
8117 if (Calib_BlackShading_jkd(dev, Regs, &myCalib, &scancfg) == OK)
8122 if (Calib_test(dev, Regs, &myCalib, &scancfg) == OK )
8128 if (WShading_Calibrate (dev, Regs, &myCalib, &scancfg) == OK)
8136 if ((scancfg.colormode != CM_COLOR) && (scancfg.channel == 3))
8137 scancfg.colormode = CM_COLOR;
8149 if (Calibration (dev, Regs, &scancfg, &myCalib, 0) != OK)
8170 scancfg.colormode = scan.colormode;
8188 ta_y_start += (((((scan.coord.top * 3) * 5) * 5) * 32) / scancfg.resolution_x);
8192 scancfg.coord.top = 1;
8200 scancfg.coord.top = 1;
8217 scancfg.coord.left += scan.ser;
8218 scancfg.coord.top += scan.ler;
8222 hwdcfg.highresolution = (scancfg.resolution_x <= 1200) ? FALSE : TRUE;
8228 SANE_Int mytop = (((scancfg.coord.top * 5) * 5) * 16) / scancfg.resolution_y;
8229 if ((scancfg.resolution_y <= 150)&&(mytop < 300))
8231 scancfg.coord.top = scancfg.resolution_y / 4;
8235 scancfg.coord.top = scancfg.resolution_y / 12;
8246 if (scancfg.resolution_x == 2400)
8249 if (scancfg.colormode != CM_COLOR)
8251 if ((scancfg.colormode == CM_GRAY) && (scancfg.channel == 3))
8262 scancfg.coord.left += 24;
8263 switch (scancfg.resolution_x)
8266 scancfg.coord.left -= 63;
8269 scancfg.coord.left -= 127;
8278 scancfg.coord.left += 50;
8279 switch (scancfg.resolution_x)
8282 scancfg.coord.left -= 63;
8285 scancfg.coord.left -= 127;
8292 scancfg.coord.left, scancfg.coord.width);
8298 if ((scancfg.resolution_x == 1200)
8299 || (scancfg.resolution_x == 2400))
8302 if ((scancfg.resolution_y / 10) > scancfg.coord.top)
8307 if ((scancfg.resolution_x == 600)
8309 && (scancfg.colormode == CM_COLOR))
8312 if ((scancfg.resolution_y / 10) > scancfg.coord.top)
8317 if ((scancfg.resolution_x == 600)
8318 || (scancfg.resolution_x == 300))
8321 if (scancfg.resolution_y > scancfg.coord.top)
8332 if ((scancfg.resolution_y / 10) > scancfg.coord.top)
8338 SANE_Int val1 = scancfg.coord.top - (scancfg.resolution_y / 10);
8339 scancfg.coord.top -= val1;
8340 Head_Relocate (dev, dev->motorcfg->highspeedmotormove, MTR_FORWARD, (dev->motorcfg->resolution / scancfg.resolution_y) * val1); /*x168 */
8356 RTS_Setup (dev, Regs, &scancfg, &hwdcfg, &calibdata->gain_offset);
8362 if (scancfg.colormode != CM_COLOR)
8364 if ((scancfg.channel > 0) && (scancfg.channel < 3))
8365 myCalib.WRef[0] = myCalib.WRef[scancfg.channel];
8371 Gamma_Apply (dev, Regs, &scancfg, &hwdcfg, hp_gamma);
8373 Shading_apply (dev, Regs, &scancfg, &myCalib);
8380 RTS_Setup (dev, Regs, &scancfg, &hwdcfg, default_gain_offset);
8405 Motor_GetFromResolution (scancfg.resolution_x));
8408 Lamp_SetGainMode (dev, Regs, scancfg.resolution_x,
8409 Lamp_GetGainMode (dev, scancfg.resolution_x,
8423 /*WShading_Calibrate(dev, Regs, &myCalib, &scancfg); */
8438 && (scancfg.resolution_x > 2400))
8453 struct st_scanparams *scancfg, SANE_Int somevalue)
8457 DBG (DBG_FNC, "+ RTS_Setup_Motor(*Regs, *scancfg, somevalue=%i):\n",
8459 dbg_ScanParams (scancfg);
8461 if ((Regs != NULL) && (scancfg != NULL))
8465 colormode = ((scancfg->colormode != CM_COLOR)
8466 && (scancfg->channel == 3)) ? 3 : scancfg->colormode;
8468 RTS_GetScanmode (dev, scantype, colormode, scancfg->resolution_x);
8534 (dummyline * scancfg->resolution_y));
8610 myvalue = scancfg->coord.top * (dummyline * step_size);
8613 scancfg->coord.top = 1;
8615 scancfg->coord.top -= (lf02c / (dummyline * step_size)) - 1;
8627 RTS_Setup_Exposure_Times (SANE_Byte * Regs, struct st_scanparams *scancfg,
8632 if ((sm != NULL) && (Regs != NULL) && (scancfg != NULL))
8641 if (scancfg->depth > 8)
8672 /* scancfg->expt = lowest value */
8673 scancfg->expt = min (min (myexpt[1], myexpt[2]), myexpt[0]);
8679 struct st_scanparams *scancfg,
8691 (dev->sensorcfg->line_distance * scancfg->resolution_y) /
8696 (hwdcfg->sensorevenodddistance * scancfg->resolution_y) /
8755 "> RTS_Setup_Line_Distances(*Regs, *scancfg, *hwdcfg, mycolormode=%i, arrangeline=%i): %i\n",
8762 RTS_Setup_Depth (SANE_Byte * Regs, struct st_scanparams *scancfg,
8771 if ((scancfg != NULL) && (Regs != NULL))
8774 data_bitget (&Regs[0x12], 0xc0) * scancfg->coord.width;
8788 switch (scancfg->depth)
8812 RTS_Setup_Shading (SANE_Byte * Regs, struct st_scanparams *scancfg,
8816 "> RTS_Setup_Shading(*Regs, *scancfg, *hwdcfg, bytes_per_line=%i)\n",
8844 table_size = (resolution_ratio * scancfg->coord.width) * 2; /* black shading buffer size? */
8848 table_size += (resolution_ratio * scancfg->coord.width) * 2; /* white shading buffer size? */
8949 struct st_scanparams *scancfg, SANE_Int mycolormode)
8953 if ((scancfg != NULL) && (Regs != NULL))
8958 if (scancfg->samplerate == LINE_RATE)
8964 data_bitset (&Regs[0x12], 0x03, dev->sensorcfg->rgb_order[scancfg->channel]); /*------xx*/
8975 if (scancfg->channel == dev->sensorcfg->rgb_order[1])
8985 else if (scancfg->channel == dev->sensorcfg->rgb_order[2])
9022 data_bitset (&Regs[0x1cf], 0x40, scancfg->samplerate);
9042 struct st_scanparams *scancfg, struct st_hwdconfig *hwdcfg,
9050 dbg_ScanParams (scancfg);
9053 mycolormode = scancfg->colormode;
9054 if (scancfg->colormode != CM_COLOR)
9056 if (scancfg->colormode == CM_LINEART)
9057 scancfg->depth = 8;
9059 if (scancfg->channel == 3)
9061 if (scancfg->colormode == CM_GRAY)
9069 memcpy (&scan2, scancfg, sizeof (struct st_scanparams));
9073 RTS_GetScanmode (dev, scantype, mycolormode, scancfg->resolution_x);
9085 scancfg->timing = sm->timing;
9086 scancfg->sensorresolution =
9087 dev->timings[scancfg->timing]->sensorresolution;
9088 scancfg->shadinglength =
9089 (((scancfg->sensorresolution * 17) / 2) + 3) & 0xfffffffc;
9090 scancfg->samplerate = sm->samplerate;
9098 RTS_Setup_Exposure_Times (Regs, scancfg, sm);
9105 RTS_Setup_Line_Distances (dev, Regs, scancfg, hwdcfg, mycolormode,
9111 RTS_Setup_Channels (dev, Regs, scancfg, mycolormode);
9114 bytes_per_line = RTS_Setup_Depth (Regs, scancfg, mycolormode);
9120 (scancfg->sensorresolution / scancfg->resolution_x) & 0x1f;
9124 RTS_Setup_SensorTiming (dev, scancfg->timing, Regs);
9135 RTS_Setup_Shading (Regs, scancfg, hwdcfg, bytes_per_line);
9139 RTS_Setup_Motor (dev, Regs, scancfg,
9145 if (scancfg->coord.left == 0)
9146 scancfg->coord.left++;
9147 if (scancfg->coord.top == 0)
9148 scancfg->coord.top++;
9150 rts_coords.left = scancfg->coord.left * resolution_ratio;
9151 rts_coords.width = scancfg->coord.width * resolution_ratio;
9152 rts_coords.top = scancfg->coord.top * dummyline;
9154 ((Regs[0x14d] & 0x3f) + scancfg->coord.height +
9184 data_bitget (&Regs[0x12], 0xc0) * scancfg->coord.width;
9197 switch (scancfg->depth)
9208 if (scancfg->colormode == CM_LINEART)
10266 struct st_scanparams *scancfg, struct st_hwdconfig *hwdcfg)
10269 scancfg f850 = esp+18
10274 DBG (DBG_FNC, "+ RTS_GetImage_Read(buffer, scancfg, hwdcfg):\n");
10278 double dSize = scancfg->bytesperline * scancfg->coord.height;
10281 if (scancfg->depth == 12)
10307 struct st_scanparams *scancfg,
10317 "+ RTS_GetImage(*Regs, *scancfg, *gain_offset, *buffer, myCalib, options=0x%08x, gaincontrol=%i):\n",
10319 dbg_ScanParams (scancfg);
10322 if ((Regs != NULL) && (scancfg != NULL))
10324 if ((scancfg->coord.width != 0) && (scancfg->coord.height != 0))
10335 memcpy (myscancfg, scancfg, sizeof (struct st_scanparams));
10544 struct st_scanparams scancfg;
10549 memset (&scancfg, 0, sizeof (struct st_scanparams));
10550 scancfg.depth = 8;
10551 scancfg.colormode = CM_GRAY;
10552 scancfg.channel = CL_RED;
10553 scancfg.resolution_x = resolution_x;
10554 scancfg.resolution_y = resolution_y;
10555 scancfg.coord.left = 4;
10556 scancfg.coord.width = (resolution_x * 3) / 10;
10557 scancfg.coord.top = 1;
10558 scancfg.coord.height = (resolution_y * 4) / 10;
10559 scancfg.shadinglength = (resolution_x * 17) / 2;
10560 scancfg.bytesperline = scancfg.coord.width;
10564 (SANE_Byte *) malloc ((scancfg.coord.height * scancfg.coord.width) *
10603 (dev, Regs, &scancfg, &gain_offset, image, 0, 0x20000000,
10612 scancfg.coord.width,
10613 scancfg.coord.height,
10614 scancfg.depth,
10616 scancfg.resolution_x,
10617 scancfg.resolution_y,
10619 scancfg.coord.height * scancfg.coord.width);
10623 if (Refs_Analyze_Pattern (&scancfg, image, &ler1, 1, &ser1, 0)
10626 *y = scancfg.coord.top + ler1;
10627 *x = scancfg.coord.left + ser1;
10648 struct st_scanparams *scancfg)
10654 DBG (DBG_FNC, "+ Refs_Set(*Regs, *scancfg):\n");
10655 dbg_ScanParams (scancfg);
10660 cfg_vrefs_get (dev->sensorcfg->type, scancfg->resolution_x, &scan.ler,
10720 scan.ser = ((x + refcfg.offset_x) * scancfg->resolution_x) / 2400;
10721 scan.ler = ((y + refcfg.offset_y) * scancfg->resolution_y) / 2400;
10979 struct st_scanparams scancfg;
11006 memset (&scancfg, 0, sizeof (struct st_scanparams));
11007 scancfg.colormode = CM_COLOR;
11008 scancfg.resolution_x = resolution;
11009 scancfg.resolution_y = resolution;
11010 scancfg.coord.left = 100;
11011 scancfg.coord.width = (resolution * 8.5) - 100;
11012 scancfg.coord.top = 1;
11013 scancfg.coord.height = 1;
11014 scancfg.depth = 8;
11015 scancfg.shadinglength = resolution * 8.5;
11016 scancfg.v157c = scancfg.coord.width * 3;
11017 scancfg.bytesperline = scancfg.v157c;
11021 (SANE_Byte *) malloc (((scancfg.coord.width * 0x21) * 3) *
11028 (dev, Regs, &scancfg, &gain_offset, image, 0,
11040 if (scancfg.colormode != CM_GRAY)
11058 if (scancfg.coord.height > 0)
11069 for (y = 0; y < scancfg.coord.height; y++)
11071 if (scancfg.coord.width > 0)
11075 for (x = 0; x < scancfg.coord.width; x++)
11097 pointer1 += scancfg.coord.width * 3;
11098 pointer2 += scancfg.coord.width * 3;
11099 pointer3 += scancfg.coord.width * 3;
11103 mysize = scancfg.coord.height * scancfg.coord.width;
11606 struct st_scanparams *scancfg; /*f17c */
11612 scancfg =
11614 if (scancfg != NULL)
11619 memcpy (scancfg, &calibdata->scancfg,
11623 Lamp_SetGainMode (dev, myRegs, scancfg->resolution_x, gaincontrol);
11626 scancfg->depth = 8;
11630 scancfg->coord.left += scan.ser;
11632 if ((scancfg->coord.width & 1) == 0)
11633 scancfg->coord.width++;
11635 scancfg->coord.top = 1;
11636 scancfg->coord.height = calibcfg->OffsetHeight;
11639 switch (scancfg->colormode)
11645 bytes_per_line = scancfg->coord.width;
11650 bytes_per_line = scancfg->coord.width * 3;
11651 if (scancfg->samplerate == LINE_RATE)
11653 bytes_to_next_colour = scancfg->coord.width;
11662 scancfg->v157c = bytes_per_line;
11663 scancfg->bytesperline = bytes_per_line;
11682 ((scancfg->coord.height +
11688 (dev, myRegs, scancfg, &calibdata->gain_offset, image, NULL,
11707 if (scancfg->coord.width > 0)
11713 for (pos = scancfg->coord.width; pos > 0; pos--)
11718 if (scancfg->coord.height > 0)
11720 myheight < scancfg->coord.height; myheight++)
11731 chn_sum[a] / scancfg->coord.height);
11734 chn_sum[a] / scancfg->coord.height);
11749 dval[CL_RED] /= scancfg->coord.width;
11750 dval[CL_GREEN] /= scancfg->coord.width;
11751 dval[CL_BLUE] /= scancfg->coord.width;
11762 if (scancfg->colormode == CM_COLOR)
11771 ((((calibcfg->WRef[a] * (1 << scancfg->depth)) *
11798 pgain[CL_RED]) / 40) * ((((1 << scancfg->depth) *
11799 calibcfg->WRef[scancfg->
11827 scancfg->coord.width,
11828 scancfg->coord.height,
11829 scancfg->depth,
11831 scancfg->resolution_x,
11832 scancfg->resolution_y,
11834 (scancfg->coord.height +
11850 free (scancfg);
11906 struct st_scanparams *scancfg;
11920 scancfg =
11922 if (scancfg != NULL)
11925 memcpy (scancfg, &calibdata->scancfg,
11931 scancfg->coord.left = scan.ser;
11932 scancfg->coord.width = (scancfg->sensorresolution * 17) / 2;
11936 scancfg->coord.left = scan.ser + v0750;
11937 scancfg->coord.width = (scancfg->sensorresolution * 3) / 2;
11941 if ((scancfg->coord.width & 1) == 1)
11942 scancfg->coord.width++;
11944 scancfg->coord.top = 1;
11945 scancfg->coord.height = calibcfg->OffsetHeight;
11947 channel_size = (scancfg->depth > 8) ? 2 : 1;
11949 switch (scancfg->colormode)
11955 length = channel_size * scancfg->coord.width;
11960 length = (channel_size * scancfg->coord.width) * 3;
11961 if (scancfg->samplerate == LINE_RATE)
11963 bytes_to_next_colour = scancfg->coord.width;
11972 scancfg->v157c = length;
11975 (SANE_Byte *) malloc ((scancfg->coord.height * length) *
11980 RTS_GetImage (dev, Regs, scancfg, &calibdata->gain_offset,
11995 if (scancfg->coord.width > 0)
11999 for (pos = 0; pos < scancfg->coord.width; pos++)
12005 for (a = 0; a < scancfg->coord.height; a++)
12010 ((scancfg->coord.height - a) * length));
12016 total[a] /= scancfg->coord.height;
12049 free (scancfg);
12163 struct st_scanparams scancfg; /*f18c */
12186 memcpy (&scancfg, &calibdata->scancfg, sizeof (struct st_scanparams));
12188 channels_per_dot = (calibdata->scancfg.colormode == CM_COLOR) ? 3 : 1;
12207 scancfg.coord.left = calibcfg->OffsetPixelStart;
12220 scancfg.coord.width = calibcfg->OffsetNPixel;
12221 if ((scancfg.coord.width & 1) == 0)
12222 scancfg.coord.width++;
12224 scancfg.bytesperline = channels_per_dot * scancfg.coord.width;
12225 scancfg.coord.top = 1;
12226 scancfg.coord.height = calibcfg->OffsetHeight;
12227 scancfg.depth = 8;
12231 (SANE_Byte *) malloc ((scancfg.bytesperline * calibcfg->OffsetHeight) *
12238 highresolution = (scancfg.sensorresolution >= 1200) ? TRUE : FALSE;
12256 gainmode = Lamp_GetGainMode (dev, scancfg.resolution_x, scan.scantype);
12258 (dev, Regs, &scancfg, &calibdata->gain_offset, scanbuffer, 0,
12274 scancfg.coord.width,
12275 scancfg.coord.height,
12276 scancfg.depth,
12278 scancfg.resolution_x,
12279 scancfg.resolution_y,
12281 scancfg.bytesperline * calibcfg->OffsetHeight);
12481 if (scancfg.resolution_x > 600)
12571 Calib_LoadCut (struct st_device *dev, struct st_scanparams *scancfg,
12579 cfg_shading_cut_get (dev->sensorcfg->type, scancfg->depth,
12580 scancfg->resolution_x, scantype, &channel[0],
12583 mylong = 1 << scancfg->depth;
12624 struct st_scanparams scancfg; /*f170 */
12651 memcpy (&scancfg, &calibdata->scancfg, sizeof (struct st_scanparams));
12653 Lamp_SetGainMode (dev, myRegs, scancfg.resolution_x, gainmode);
12656 scancfg.resolution_y = 200;
12661 scancfg.coord.left += scan.ser;
12662 scancfg.coord.width &= 0xffff;
12666 scancfg.coord.left += scan.ser;
12671 if ((scancfg.coord.width & 1) != 0)
12672 scancfg.coord.width++;
12674 scancfg.coord.top = 1;
12675 scancfg.coord.height = calibcfg->WShadingHeight;
12677 switch (scancfg.colormode)
12681 myWidth = scancfg.coord.width;
12683 bytes_per_line = ((scancfg.depth + 7) / 8) * myWidth;
12687 myWidth = scancfg.coord.width * 3;
12688 bytes_per_line = ((scancfg.depth + 7) / 8) * myWidth;
12689 lf168 = (scancfg.samplerate == LINE_RATE) ? scancfg.coord.width : 1;
12690 bytes_per_pixel = (scancfg.samplerate == PIXEL_RATE) ? 3 : 1;
12695 scancfg.v157c = bytes_per_line;
12696 scancfg.bytesperline = bytes_per_line;
12699 lf1a4[a] = (calibcfg->WRef[a] * (1 << scancfg.depth)) >> 8;
12721 (SANE_Byte *) malloc (((scancfg.coord.height + 16) * bytes_per_line) *
12733 RTS_GetImage (dev, myRegs, &scancfg, &calibdata->gain_offset, scanbuffer,
12737 myCalib->WRef[a] *= ((1 << scancfg.depth) >> 8);
12747 if (scancfg.depth > 8)
12756 switch (scancfg.colormode)
12764 if (scancfg.samplerate == PIXEL_RATE)
12787 buffer2[a] = (1 << scancfg.depth) - 1.0;
12892 scancfg.ser = 0;
12893 scancfg.startpos = otherheight - 4;
12895 sumatorio = sumatorio / scancfg.startpos;
12905 if ((scancfg.colormode != CM_GRAY)
12906 && (scancfg.colormode != CM_LINEART))
12909 sumatorio /= lf1a4[scancfg.channel];
12938 switch (scancfg.colormode)
12946 if (scancfg.samplerate == PIXEL_RATE)
12967 buffer2[a] = (1 << scancfg.depth) - 1.0;
13069 scancfg.ser = 0;
13070 scancfg.startpos = otherheight - 4;
13072 sumatorio /= scancfg.startpos;
13082 if ((scancfg.colormode != CM_GRAY)
13083 && (scancfg.colormode != CM_LINEART))
13086 sumatorio /= lf1a4[scancfg.channel];
13110 scancfg.coord.width,
13111 scancfg.coord.height,
13112 scancfg.depth,
13114 scancfg.resolution_x,
13115 scancfg.resolution_y,
13117 (scancfg.coord.height + 16) * bytes_per_line);
13138 struct st_scanparams scancfg; /*f020 */
13170 memcpy (&scancfg, &calibdata->scancfg, sizeof (struct st_scanparams));
13172 Lamp_SetGainMode (dev, myRegs, scancfg.resolution_x, gainmode);
13178 scancfg.coord.left += scan.ser;
13180 if ((scancfg.coord.width & 1) != 0)
13181 scancfg.coord.width++;
13183 scancfg.coord.top = 1;
13184 scancfg.depth = 8;
13185 scancfg.coord.height = calibcfg->BShadingHeight;
13187 if (scancfg.colormode != CM_COLOR)
13189 bytes_per_line = scancfg.coord.width;
13196 bytes_per_line = scancfg.coord.width * 3;
13197 if (scancfg.samplerate == LINE_RATE)
13199 leff0 = scancfg.coord.width;
13209 scancfg.v157c = bytes_per_line;
13210 scancfg.bytesperline = bytes_per_line;
13212 mylong = 1 << (16 - scancfg.depth);
13220 if (scancfg.depth >= 8)
13221 maxvalue = ((1 << (scancfg.depth - 8)) << 8) - 1;
13223 maxvalue = (256 / (1 << (8 - scancfg.depth))) - 1;
13225 Calib_LoadCut (dev, &scancfg, scan.scantype, calibcfg);
13245 if (scancfg.colormode != CM_COLOR)
13252 if (scancfg.samplerate == PIXEL_RATE)
13273 mheight = scancfg.coord.height;
13275 (SANE_Byte *) malloc (((scancfg.coord.height + 16) * bytes_per_line) *
13287 RTS_GetImage (dev, myRegs, &scancfg, &calibdata->gain_offset, buffer,
13315 scancfg.coord.width,
13316 scancfg.coord.height,
13317 scancfg.depth,
13319 scancfg.resolution_x,
13320 scancfg.resolution_y,
13321 buffer, (scancfg.coord.height + 16) * bytes_per_line);
13324 if (scancfg.depth > 8)
13385 if (scancfg.colormode != CM_COLOR)
13393 if (scancfg.samplerate == PIXEL_RATE)
13406 if ((scancfg.colormode == CM_GRAY)
13407 || (scancfg.colormode == CM_LINEART))
13408 sumatorio += shadingprediff[scancfg.channel];
13421 calibcfg->BRef[channel] * (1 << (scancfg.depth - 8));
13506 if (scancfg.colormode != CM_COLOR)
13514 if (scancfg.samplerate == PIXEL_RATE)
13529 if ((scancfg.colormode == CM_GRAY)
13530 || (scancfg.colormode == CM_LINEART))
13531 sumatorio += shadingprediff[scancfg.channel];
13568 calibcfg->BRef[channel] / (1 << (8 - scancfg.depth));
13589 (dbvalue[a] / scancfg.coord.width) + calibcfg->ShadingCut[a];
13595 if (scancfg.coord.width > 0)
13599 for (c = 0; c < scancfg.coord.width; c++)
13613 struct st_scanparams *scancfg, struct st_calibration *myCalib,
13616 /*//SANE_Int Calibration([fa20]char *Regs, [fa24]struct st_scanparams *scancfg, [fa28]struct st_calibration myCalib, [fa2c]SANE_Int value)
13625 dbg_ScanParams (scancfg);
13633 Calib_LoadConfig (dev, &calibcfg, scan.scantype, scancfg->resolution_x,
13634 scancfg->depth);
13655 memcpy (&calibdata->scancfg, scancfg, sizeof (struct st_scanparams));
13656 gainmode = Lamp_GetGainMode (dev, scancfg->resolution_x, scan.scantype); /* [lf904] = 1 */
13661 if (calibdata->scancfg.colormode == CM_LINEART)
13663 calibdata->scancfg.colormode = CM_GRAY;
13676 if ((calibdata->scancfg.colormode != CM_GRAY)
13677 && (calibdata->scancfg.colormode != CM_LINEART))
13686 if (calibdata->scancfg.channel > 2)
13687 calibdata->scancfg.channel = 0;
13691 calibcfg.PAG[calibdata->scancfg.channel];
14453 struct st_scanparams *scancfg)
14483 memcpy (myscancfg, scancfg, sizeof (struct st_scanparams));
14613 scancfg->resolution_x,
14614 scancfg->resolution_y,
14650 scancfg->resolution_x,
14651 scancfg->resolution_y,
14675 struct st_calibration *myCalib, struct st_scanparams *scancfg)
14697 memcpy (myscancfg, scancfg, sizeof (struct st_scanparams));
14808 struct st_scanparams *scancfg)
14837 memcpy (myscancfg, scancfg, sizeof (struct st_scanparams));
14943 struct st_calibration *myCalib, struct st_scanparams *scancfg)
14965 memcpy (myscancfg, scancfg, sizeof (struct st_scanparams));