Fix reading/writing calib_channels to/from cache file, bad calib_pixels calculation.

This fixes bugs introduced by my previous commit.
merge-requests/1/head
Pierre Willenbrock 2009-04-17 14:02:13 +00:00
rodzic ad1f7de9e0
commit 0f82af6930
3 zmienionych plików z 6 dodań i 3 usunięć

Wyświetl plik

@ -2,6 +2,7 @@
* backend/genesys.c, backend/genesys_gl646.c,
backend/genesys_gl841.c, backend/genesys_low.h: Always do shading
calibration in color mode on gl841.
* backend/genesys.c, backend/genesys_gl841.c: Fix bugs introduced above.
2009-04-16 Stéphane Voltz <stef.dev@free.fr>
* backend/genesys.h backend/genesys.c backend/genesys_gl646.c

Wyświetl plik

@ -5477,6 +5477,7 @@ read_calibration(Genesys_Device * dev)
/* the gamma (and later) fields are not stored */
BILT1(fread(&cache->sensor,offsetof(Genesys_Sensor,red_gamma),1,fp));
BILT1(fread(&cache->calib_pixels,sizeof(cache->calib_pixels),1,fp));
BILT1(fread(&cache->calib_channels,sizeof(cache->calib_channels),1,fp));
BILT1(fread(&cache->average_size,sizeof(cache->average_size),1,fp));
/* Make sure we don't do bad things if someone feeds us a forged/
@ -5555,6 +5556,7 @@ write_calibration(Genesys_Device * dev)
/* the gamma (and later) fields are not stored */
fwrite(&cache->sensor,offsetof(Genesys_Sensor,red_gamma),1,fp);
fwrite(&cache->calib_pixels,sizeof(cache->calib_pixels),1,fp);
fwrite(&cache->calib_channels,sizeof(cache->calib_channels),1,fp);
fwrite(&cache->average_size,sizeof(cache->average_size),1,fp);
fwrite(cache->white_average_data,cache->average_size,1,fp);
fwrite(cache->dark_average_data,cache->average_size,1,fp);

Wyświetl plik

@ -4452,15 +4452,13 @@ gl841_init_regs_for_shading (Genesys_Device * dev)
dev->model->shading_lines);
dev->calib_channels = 3;
dev->calib_pixels = (dev->sensor.sensor_pixels * dev->settings.xres) / dev->sensor.optical_res;
status = gl841_init_scan_regs (dev,
dev->calib_reg,
dev->settings.xres,
dev->motor.base_ydpi,
0,
0,
dev->calib_pixels,
(dev->sensor.sensor_pixels * dev->settings.xres) / dev->sensor.optical_res,
dev->model->shading_lines,
16,
dev->calib_channels,
@ -4473,6 +4471,8 @@ gl841_init_regs_for_shading (Genesys_Device * dev)
SCAN_FLAG_USE_OPTICAL_RES
);
dev->calib_pixels = dev->current_setup.pixels;
if (status != SANE_STATUS_GOOD)
{
DBG (DBG_error,