kopia lustrzana https://gitlab.com/sane-project/backends
genesys: Extract gamma creation into a single function
rodzic
ea74f8e6ef
commit
dafd2a150b
|
@ -727,6 +727,25 @@ sanei_genesys_create_gamma_table (std::vector<uint16_t>& gamma_table, int size,
|
|||
DBG(DBG_proc, "%s: completed\n", __func__);
|
||||
}
|
||||
|
||||
void sanei_genesys_create_default_gamma_table(Genesys_Device* dev,
|
||||
std::vector<uint16_t>& gamma_table, float gamma)
|
||||
{
|
||||
int size = 0;
|
||||
int max = 0;
|
||||
if (dev->model->asic_type == GENESYS_GL646) {
|
||||
if (dev->model->flags & GENESYS_FLAG_14BIT_GAMMA) {
|
||||
size = 16384;
|
||||
} else {
|
||||
size = 4096;
|
||||
}
|
||||
max = size - 1;
|
||||
} else {
|
||||
size = 256;
|
||||
max = 65535;
|
||||
}
|
||||
sanei_genesys_create_gamma_table(gamma_table, size, max, max, gamma);
|
||||
}
|
||||
|
||||
|
||||
/* computes the exposure_time on the basis of the given vertical dpi,
|
||||
the number of pixels the ccd needs to send,
|
||||
|
|
|
@ -4020,7 +4020,6 @@ gl646_init (Genesys_Device * dev)
|
|||
struct timeval tv;
|
||||
uint8_t cold = 0, val = 0;
|
||||
uint32_t addr = 0xdead;
|
||||
int size, i;
|
||||
size_t len;
|
||||
|
||||
DBG_INIT ();
|
||||
|
@ -4071,23 +4070,9 @@ gl646_init (Genesys_Device * dev)
|
|||
/* Set default values for registers */
|
||||
gl646_init_regs (dev);
|
||||
|
||||
/* build default gamma tables */
|
||||
if (dev->model->flags & GENESYS_FLAG_14BIT_GAMMA)
|
||||
size = 16384;
|
||||
else
|
||||
size = 4096;
|
||||
|
||||
for(i=0;i<3;i++)
|
||||
{
|
||||
if (dev->sensor.gamma_table[i].empty())
|
||||
{
|
||||
dev->sensor.gamma_table[i].resize(size, 0);
|
||||
sanei_genesys_create_gamma_table (dev->sensor.gamma_table[i],
|
||||
size,
|
||||
size - 1,
|
||||
size - 1,
|
||||
dev->sensor.gamma[i]);
|
||||
}
|
||||
for(int i=0; i < 3; i++) {
|
||||
sanei_genesys_create_default_gamma_table(dev, dev->sensor.gamma_table[i],
|
||||
dev->sensor.gamma[i]);
|
||||
}
|
||||
|
||||
/* Init shading data */
|
||||
|
|
|
@ -5038,7 +5038,6 @@ gl841_init (Genesys_Device * dev)
|
|||
SANE_Status status;
|
||||
uint8_t val;
|
||||
size_t size;
|
||||
int i;
|
||||
|
||||
DBG_INIT ();
|
||||
DBGSTART;
|
||||
|
@ -5103,16 +5102,10 @@ gl841_init (Genesys_Device * dev)
|
|||
}
|
||||
}
|
||||
|
||||
/* initalize sensor gamma tables */
|
||||
size = 256;
|
||||
|
||||
for(i=0;i<3;i++)
|
||||
{
|
||||
sanei_genesys_create_gamma_table (dev->sensor.gamma_table[i],
|
||||
size,
|
||||
65535,
|
||||
65535,
|
||||
dev->sensor.gamma[i]);
|
||||
// initalize sensor gamma tables
|
||||
for (int i = 0; i<3; i++) {
|
||||
sanei_genesys_create_default_gamma_table(dev, dev->sensor.gamma_table[i],
|
||||
dev->sensor.gamma[i]);
|
||||
}
|
||||
|
||||
/* send gamma tables */
|
||||
|
|
|
@ -1376,8 +1376,6 @@ sanei_genesys_asic_init (Genesys_Device * dev, int /*max_regs*/)
|
|||
SANE_Status status;
|
||||
uint8_t val;
|
||||
SANE_Bool cold = SANE_TRUE;
|
||||
int size; /**< size of the device's gamma table */
|
||||
int i;
|
||||
|
||||
DBGSTART;
|
||||
|
||||
|
@ -1400,15 +1398,10 @@ sanei_genesys_asic_init (Genesys_Device * dev, int /*max_regs*/)
|
|||
dev->usb_mode = 2;
|
||||
}
|
||||
|
||||
/* setup gamma tables */
|
||||
size = 256;
|
||||
for(i=0;i<3;i++)
|
||||
{
|
||||
sanei_genesys_create_gamma_table (dev->sensor.gamma_table[i],
|
||||
size,
|
||||
65535,
|
||||
65535,
|
||||
dev->sensor.gamma[i]);
|
||||
// initalize sensor gamma tables
|
||||
for (int i = 0; i<3; i++) {
|
||||
sanei_genesys_create_default_gamma_table(dev, dev->sensor.gamma_table[i],
|
||||
dev->sensor.gamma[i]);
|
||||
}
|
||||
|
||||
/* check if the device has already been initialized and powered up
|
||||
|
|
|
@ -1554,6 +1554,9 @@ sanei_genesys_create_gamma_table (std::vector<uint16_t>& gamma_table, int size,
|
|||
float maximum, float gamma_max,
|
||||
float gamma);
|
||||
|
||||
void sanei_genesys_create_default_gamma_table(Genesys_Device* dev,
|
||||
std::vector<uint16_t>& gamma_table, float gamma);
|
||||
|
||||
extern SANE_Status sanei_genesys_send_gamma_table (Genesys_Device * dev);
|
||||
|
||||
extern SANE_Status sanei_genesys_start_motor (Genesys_Device * dev);
|
||||
|
|
Ładowanie…
Reference in New Issue