genesys: Extract gamma creation into a single function

merge-requests/81/head
Povilas Kanapickas 2019-06-02 11:47:49 +03:00
rodzic ea74f8e6ef
commit dafd2a150b
5 zmienionych plików z 33 dodań i 40 usunięć

Wyświetl plik

@ -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,

Wyświetl plik

@ -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 */

Wyświetl plik

@ -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 */

Wyświetl plik

@ -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

Wyświetl plik

@ -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);