kopia lustrzana https://gitlab.com/sane-project/backends
genesys: Resolve various floating-point conversion warnings
rodzic
f4a2957541
commit
0ab82e9f86
|
@ -372,8 +372,8 @@ SANE_Int sanei_genesys_generate_slope_table(std::vector<uint16_t>& slope_table,
|
|||
t2 = vstart;
|
||||
for (i = 0; i < steps && i < use_steps - 1 && i < max_steps; i++, c++)
|
||||
{
|
||||
t = std::pow(static_cast<double>(i) / static_cast<double>(steps - 1), g);
|
||||
t2 = vstart * (1 - t) + t * vend;
|
||||
t = std::pow(static_cast<double>(i) / static_cast<double>(steps - 1), g);
|
||||
t2 = static_cast<std::uint16_t>(vstart * (1 - t) + t * vend);
|
||||
if (t2 < stop_at) {
|
||||
break;
|
||||
}
|
||||
|
@ -448,7 +448,7 @@ SANE_Int sanei_genesys_create_slope_table3(Genesys_Device * dev,
|
|||
step_type, exposure_time, yres);
|
||||
|
||||
/* final speed */
|
||||
vtarget = (exposure_time * yres) / dev->motor.base_ydpi;
|
||||
vtarget = static_cast<unsigned>((exposure_time * yres) / dev->motor.base_ydpi);
|
||||
|
||||
vstart = dev->motor.slopes[step_type].maximum_start_speed;
|
||||
vend = dev->motor.slopes[step_type].maximum_speed;
|
||||
|
@ -476,8 +476,9 @@ SANE_Int sanei_genesys_create_slope_table3(Genesys_Device * dev,
|
|||
used_steps,
|
||||
&vfinal);
|
||||
|
||||
if (final_exposure)
|
||||
*final_exposure = (vfinal * dev->motor.base_ydpi) / yres;
|
||||
if (final_exposure) {
|
||||
*final_exposure = static_cast<unsigned>((vfinal * dev->motor.base_ydpi) / yres);
|
||||
}
|
||||
|
||||
DBG(DBG_proc, "%s: returns sum_time=%d, completed\n", __func__, sum_time);
|
||||
|
||||
|
@ -510,20 +511,21 @@ SANE_Int genesys_create_slope_table2(Genesys_Device* dev, std::vector<uint16_t>&
|
|||
}
|
||||
else
|
||||
{
|
||||
if (steps == 2)
|
||||
vstart = exposure_time;
|
||||
else if (steps == 3)
|
||||
vstart = 2 * exposure_time;
|
||||
else if (steps == 4)
|
||||
vstart = 1.5 * exposure_time;
|
||||
else if (steps == 120)
|
||||
vstart = 1.81674 * exposure_time;
|
||||
else
|
||||
vstart = exposure_time;
|
||||
if (steps == 2) {
|
||||
vstart = exposure_time;
|
||||
} else if (steps == 3) {
|
||||
vstart = 2 * exposure_time;
|
||||
} else if (steps == 4) {
|
||||
vstart = static_cast<int>(1.5 * exposure_time);
|
||||
} else if (steps == 120) {
|
||||
vstart = static_cast<int>(1.81674 * exposure_time);
|
||||
} else {
|
||||
vstart = exposure_time;
|
||||
}
|
||||
}
|
||||
|
||||
/* final speed */
|
||||
vend = (exposure_time * yres) / (dev->motor.base_ydpi * (1 << step_type));
|
||||
vend = static_cast<int>((exposure_time * yres) / (dev->motor.base_ydpi * (1 << step_type)));
|
||||
|
||||
/*
|
||||
type=1 : full
|
||||
|
@ -585,7 +587,7 @@ SANE_Int genesys_create_slope_table2(Genesys_Device* dev, std::vector<uint16_t>&
|
|||
for (i = 0; i < steps; i++)
|
||||
{
|
||||
t = std::pow(static_cast<double>(i) / static_cast<double>(steps - 1), g);
|
||||
slope_table[i] = vstart * (1 - t) + t * vend;
|
||||
slope_table[i] = static_cast<std::uint16_t>(vstart * (1 - t) + t * vend);
|
||||
DBG (DBG_io, "slope_table[%3d] = %5d\n", i, slope_table[i]);
|
||||
sum += slope_table[i];
|
||||
}
|
||||
|
@ -789,10 +791,11 @@ sanei_genesys_create_gamma_table (std::vector<uint16_t>& gamma_table, int size,
|
|||
maximum, gamma_max, gamma);
|
||||
for (i = 0; i < size; i++)
|
||||
{
|
||||
value = gamma_max * std::pow(static_cast<double>(i) / size, 1.0 / gamma);
|
||||
if (value > maximum)
|
||||
value = maximum;
|
||||
gamma_table[i] = value;
|
||||
value = static_cast<float>(gamma_max * std::pow(static_cast<double>(i) / size, 1.0 / gamma));
|
||||
if (value > maximum) {
|
||||
value = maximum;
|
||||
}
|
||||
gamma_table[i] = static_cast<std::uint16_t>(value);
|
||||
}
|
||||
DBG(DBG_proc, "%s: completed\n", __func__);
|
||||
}
|
||||
|
@ -832,7 +835,8 @@ sanei_genesys_exposure_time2 (Genesys_Device * dev, float ydpi,
|
|||
int step_type, int endpixel, int exposure_by_led)
|
||||
{
|
||||
int exposure_by_ccd = endpixel + 32;
|
||||
int exposure_by_motor = (dev->motor.slopes[step_type].maximum_speed * dev->motor.base_ydpi) / ydpi;
|
||||
int exposure_by_motor = static_cast<int>((dev->motor.slopes[step_type].maximum_speed *
|
||||
dev->motor.base_ydpi) / ydpi);
|
||||
|
||||
int exposure = exposure_by_ccd;
|
||||
|
||||
|
@ -1295,7 +1299,6 @@ genesys_average_black (Genesys_Device * dev, int channel,
|
|||
static void genesys_coarse_calibration(Genesys_Device* dev, Genesys_Sensor& sensor)
|
||||
{
|
||||
DBG_HELPER_ARGS(dbg, "scan_mode = %d", static_cast<unsigned>(dev->settings.scan_mode));
|
||||
int size;
|
||||
int black_pixels;
|
||||
int white_average;
|
||||
uint8_t offset[4] = { 0xa0, 0x00, 0xa0, 0x40 }; /* first value isn't used */
|
||||
|
@ -1309,7 +1312,8 @@ static void genesys_coarse_calibration(Genesys_Device* dev, Genesys_Sensor& sens
|
|||
|
||||
DBG(DBG_info, "channels %d y_size %f xres %d\n", channels, dev->model->y_size.value(),
|
||||
dev->settings.xres);
|
||||
size = channels * 2 * dev->model->y_size * dev->settings.xres / 25.4;
|
||||
unsigned size = static_cast<unsigned>(channels * 2 * dev->model->y_size * dev->settings.xres /
|
||||
MM_PER_INCH);
|
||||
/* 1 1 mm 1/inch inch/mm */
|
||||
|
||||
std::vector<uint8_t> calibration_data(size);
|
||||
|
@ -2754,7 +2758,8 @@ static void genesys_flatbed_calibration(Genesys_Device* dev, Genesys_Sensor& sen
|
|||
/* we always use sensor pixel number when the ASIC can't handle multi-segments sensor */
|
||||
if (!(dev->model->flags & GENESYS_FLAG_SIS_SENSOR))
|
||||
{
|
||||
pixels_per_line = (dev->model->x_size * dev->settings.xres) / MM_PER_INCH;
|
||||
pixels_per_line = static_cast<std::uint32_t>((dev->model->x_size * dev->settings.xres) /
|
||||
MM_PER_INCH);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -3027,7 +3032,7 @@ static void genesys_warmup_lamp(Genesys_Device* dev)
|
|||
if (dev->session.params.depth == 16) {
|
||||
first_average /= pixel;
|
||||
second_average /= pixel;
|
||||
difference = fabs (first_average - second_average);
|
||||
difference = static_cast<int>(std::fabs(first_average - second_average));
|
||||
DBG(DBG_info, "%s: average = %.2f, diff = %.3f\n", __func__,
|
||||
100 * ((second_average) / (256 * 256)),
|
||||
100 * (difference / second_average));
|
||||
|
@ -3428,7 +3433,9 @@ static void calc_parameters(Genesys_Scanner* s)
|
|||
const auto& sensor = sanei_genesys_find_sensor_any(s->dev);
|
||||
|
||||
// hardware settings
|
||||
if (s->resolution > sensor.optical_res && s->dev->settings.disable_interpolation) {
|
||||
if (static_cast<unsigned>(s->resolution) > sensor.optical_res &&
|
||||
s->dev->settings.disable_interpolation)
|
||||
{
|
||||
s->dev->settings.xres = sensor.optical_res;
|
||||
} else {
|
||||
s->dev->settings.xres = s->resolution;
|
||||
|
@ -3438,8 +3445,10 @@ static void calc_parameters(Genesys_Scanner* s)
|
|||
s->dev->settings.xres = pick_resolution(s->dev->model->xdpi_values, s->dev->settings.xres, "X");
|
||||
s->dev->settings.yres = pick_resolution(s->dev->model->ydpi_values, s->dev->settings.yres, "Y");
|
||||
|
||||
s->params.lines = ((br_y - tl_y) * s->dev->settings.yres) / MM_PER_INCH;
|
||||
unsigned pixels_per_line = ((br_x - tl_x) * s->dev->settings.xres) / MM_PER_INCH;
|
||||
s->params.lines = static_cast<unsigned>(((br_y - tl_y) * s->dev->settings.yres) /
|
||||
MM_PER_INCH);
|
||||
unsigned pixels_per_line = static_cast<unsigned>(((br_x - tl_x) * s->dev->settings.xres) /
|
||||
MM_PER_INCH);
|
||||
|
||||
/* we need an even pixels number
|
||||
* TODO invert test logic or generalize behaviour across all ASICs */
|
||||
|
@ -3526,7 +3535,7 @@ static void calc_parameters(Genesys_Scanner* s)
|
|||
s->dev->settings.tl_y = tl_y;
|
||||
|
||||
// threshold setting
|
||||
s->dev->settings.threshold = 2.55 * (SANE_UNFIX(s->threshold));
|
||||
s->dev->settings.threshold = static_cast<int>(2.55 * (SANE_UNFIX(s->threshold)));
|
||||
|
||||
// color filter
|
||||
if (s->color_filter == "Red") {
|
||||
|
@ -3845,12 +3854,12 @@ static void init_options(Genesys_Scanner* s)
|
|||
s->opt[OPT_GEOMETRY_GROUP].size = 0;
|
||||
s->opt[OPT_GEOMETRY_GROUP].constraint_type = SANE_CONSTRAINT_NONE;
|
||||
|
||||
x_range = create_range(model->x_size);
|
||||
x_range = create_range(static_cast<float>(model->x_size));
|
||||
if (x_range == nullptr) {
|
||||
throw SaneException(SANE_STATUS_NO_MEM);
|
||||
}
|
||||
|
||||
y_range = create_range(model->y_size);
|
||||
y_range = create_range(static_cast<float>(model->y_size));
|
||||
if (y_range == nullptr) {
|
||||
throw SaneException(SANE_STATUS_NO_MEM);
|
||||
}
|
||||
|
@ -4569,7 +4578,7 @@ static void genesys_buffer_image(Genesys_Scanner *s)
|
|||
}
|
||||
else
|
||||
{
|
||||
lines = (dev->model->y_size * dev->settings.yres) / MM_PER_INCH;
|
||||
lines = static_cast<int>((dev->model->y_size * dev->settings.yres) / MM_PER_INCH);
|
||||
}
|
||||
DBG(DBG_info, "%s: buffering %d lines of %d bytes\n", __func__, lines,
|
||||
s->params.bytes_per_line);
|
||||
|
@ -5362,13 +5371,13 @@ set_option_value (Genesys_Scanner * s, int option, void *val,
|
|||
// change geometry constraint to the new source value
|
||||
if (s->source == STR_FLATBED)
|
||||
{
|
||||
x_range=create_range(s->dev->model->x_size);
|
||||
y_range=create_range(s->dev->model->y_size);
|
||||
x_range = create_range(static_cast<float>(s->dev->model->x_size));
|
||||
y_range = create_range(static_cast<float>(s->dev->model->y_size));
|
||||
}
|
||||
else
|
||||
{
|
||||
x_range=create_range(s->dev->model->x_size_ta);
|
||||
y_range=create_range(s->dev->model->y_size_ta);
|
||||
x_range = create_range(static_cast<float>(s->dev->model->x_size_ta));
|
||||
y_range = create_range(static_cast<float>(s->dev->model->y_size_ta));
|
||||
}
|
||||
if (x_range == nullptr || y_range == nullptr) {
|
||||
return SANE_STATUS_NO_MEM;
|
||||
|
|
|
@ -1006,9 +1006,9 @@ void CommandSetGl124::calculate_current_setup(Genesys_Device * dev,
|
|||
debug_dump(DBG_info, dev->settings);
|
||||
|
||||
/* start */
|
||||
start = dev->model->x_offset;
|
||||
start += dev->settings.tl_x;
|
||||
start = (start * sensor.optical_res) / MM_PER_INCH;
|
||||
start = static_cast<int>(dev->model->x_offset);
|
||||
start += static_cast<int>(dev->settings.tl_x);
|
||||
start = static_cast<int>((start * sensor.optical_res) / MM_PER_INCH);
|
||||
|
||||
ScanSession session;
|
||||
session.params.xres = dev->settings.xres;
|
||||
|
@ -1275,7 +1275,6 @@ void CommandSetGl124::slow_back_home(Genesys_Device* dev, bool wait_until_home)
|
|||
Genesys_Register_Set local_reg;
|
||||
GenesysRegister *r;
|
||||
uint8_t val;
|
||||
float resolution;
|
||||
int loop = 0;
|
||||
|
||||
// post scan gpio : without that HOMSNR is unreliable
|
||||
|
@ -1312,7 +1311,7 @@ void CommandSetGl124::slow_back_home(Genesys_Device* dev, bool wait_until_home)
|
|||
}
|
||||
|
||||
local_reg = dev->reg;
|
||||
resolution=sanei_genesys_get_lowest_dpi(dev);
|
||||
unsigned resolution = sanei_genesys_get_lowest_dpi(dev);
|
||||
|
||||
const auto& sensor = sanei_genesys_find_sensor_any(dev);
|
||||
|
||||
|
@ -1396,13 +1395,12 @@ static void gl124_feed(Genesys_Device* dev, unsigned int steps, int reverse)
|
|||
DBG_HELPER_ARGS(dbg, "steps=%d", steps);
|
||||
Genesys_Register_Set local_reg;
|
||||
GenesysRegister *r;
|
||||
float resolution;
|
||||
uint8_t val;
|
||||
|
||||
/* prepare local registers */
|
||||
local_reg = dev->reg;
|
||||
|
||||
resolution=sanei_genesys_get_lowest_ydpi(dev);
|
||||
unsigned resolution = sanei_genesys_get_lowest_ydpi(dev);
|
||||
const auto& sensor = sanei_genesys_find_sensor(dev, resolution, 3, dev->model->default_method);
|
||||
|
||||
ScanSession session;
|
||||
|
@ -1611,8 +1609,8 @@ void CommandSetGl124::init_regs_for_shading(Genesys_Device* dev, const Genesys_S
|
|||
/* distance to move to reach white target at high resolution */
|
||||
move=0;
|
||||
if (dev->settings.yres >= 1200) {
|
||||
move = dev->model->y_offset_calib_white;
|
||||
move = (move * (dev->motor.base_ydpi/4)) / MM_PER_INCH;
|
||||
move = static_cast<int>(dev->model->y_offset_calib_white);
|
||||
move = static_cast<int>((move * (dev->motor.base_ydpi/4)) / MM_PER_INCH);
|
||||
}
|
||||
DBG (DBG_io, "%s: move=%d steps\n", __func__, move);
|
||||
|
||||
|
@ -1679,28 +1677,28 @@ void CommandSetGl124::init_regs_for_scan(Genesys_Device* dev, const Genesys_Sens
|
|||
|
||||
/* y (motor) distance to move to reach scanned area */
|
||||
move_dpi = dev->motor.base_ydpi/4;
|
||||
move = dev->model->y_offset;
|
||||
move += dev->settings.tl_y;
|
||||
move = (move * move_dpi) / MM_PER_INCH;
|
||||
move = static_cast<float>(dev->model->y_offset);
|
||||
move += static_cast<float>(dev->settings.tl_y);
|
||||
move = static_cast<float>((move * move_dpi) / MM_PER_INCH);
|
||||
DBG (DBG_info, "%s: move=%f steps\n", __func__, move);
|
||||
|
||||
if (dev->settings.get_channels() * dev->settings.yres >= 600 && move > 700) {
|
||||
gl124_feed(dev, move-500, false);
|
||||
gl124_feed(dev, static_cast<unsigned>(move - 500), false);
|
||||
move=500;
|
||||
}
|
||||
DBG(DBG_info, "%s: move=%f steps\n", __func__, move);
|
||||
|
||||
/* start */
|
||||
start = dev->model->x_offset;
|
||||
start += dev->settings.tl_x;
|
||||
start = static_cast<float>(dev->model->x_offset);
|
||||
start += static_cast<float>(dev->settings.tl_x);
|
||||
start /= sensor.get_ccd_size_divisor_for_dpi(dev->settings.xres);
|
||||
start = (start * sensor.optical_res) / MM_PER_INCH;
|
||||
start = static_cast<float>((start * sensor.optical_res) / MM_PER_INCH);
|
||||
|
||||
ScanSession session;
|
||||
session.params.xres = dev->settings.xres;
|
||||
session.params.yres = dev->settings.yres;
|
||||
session.params.startx = start;
|
||||
session.params.starty = move;
|
||||
session.params.startx = static_cast<unsigned>(start);
|
||||
session.params.starty = static_cast<unsigned>(move);
|
||||
session.params.pixels = dev->settings.pixels;
|
||||
session.params.requested_pixels = dev->settings.requested_pixels;
|
||||
session.params.lines = dev->settings.lines;
|
||||
|
@ -2223,9 +2221,9 @@ void CommandSetGl124::coarse_gain_calibration(Genesys_Device* dev, const Genesys
|
|||
|
||||
if(dev->settings.xres<sensor.optical_res)
|
||||
{
|
||||
coeff=0.9;
|
||||
coeff = 0.9f;
|
||||
} else {
|
||||
coeff=1.0;
|
||||
coeff = 1.0f;
|
||||
}
|
||||
lines=10;
|
||||
pixels = (sensor.sensor_pixels * sensor.optical_res) / sensor.optical_res;
|
||||
|
@ -2291,7 +2289,7 @@ void CommandSetGl124::coarse_gain_calibration(Genesys_Device* dev, const Genesys
|
|||
gain[j] = (static_cast<float>(sensor.gain_white_ref) * coeff) / max[j];
|
||||
|
||||
/* turn logical gain value into gain code, checking for overflow */
|
||||
code = 283 - 208 / gain[j];
|
||||
code = static_cast<int>(283 - 208 / gain[j]);
|
||||
if (code > 255)
|
||||
code = 255;
|
||||
else if (code < 0)
|
||||
|
|
|
@ -1393,8 +1393,8 @@ void CommandSetGl646::detect_document_end(Genesys_Device* dev) const
|
|||
unsigned lines_in_buffer = bytes_left / dev->session.output_line_bytes_raw;
|
||||
|
||||
// we add the number of lines needed to read the last part of the document in
|
||||
unsigned lines_offset = (dev->model->y_offset * dev->session.params.yres) /
|
||||
MM_PER_INCH;
|
||||
unsigned lines_offset = static_cast<unsigned>(
|
||||
(dev->model->y_offset * dev->session.params.yres) / MM_PER_INCH);
|
||||
|
||||
unsigned remaining_lines = lines_in_buffer + lines_offset;
|
||||
|
||||
|
@ -1991,36 +1991,36 @@ static void setup_for_scan(Genesys_Device* dev,
|
|||
if (!split) {
|
||||
if (!dev->model->is_sheetfed) {
|
||||
if (ycorrection) {
|
||||
move = dev->model->y_offset;
|
||||
move = static_cast<float>(dev->model->y_offset);
|
||||
}
|
||||
|
||||
// add tl_y to base movement
|
||||
}
|
||||
move += settings.tl_y;
|
||||
move += static_cast<float>(settings.tl_y);
|
||||
|
||||
if (move < 0) {
|
||||
DBG(DBG_error, "%s: overriding negative move value %f\n", __func__, move);
|
||||
move = 0;
|
||||
}
|
||||
}
|
||||
move = (move * dev->motor.optical_ydpi) / MM_PER_INCH;
|
||||
move = static_cast<float>((move * dev->motor.optical_ydpi) / MM_PER_INCH);
|
||||
DBG(DBG_info, "%s: move=%f steps\n", __func__, move);
|
||||
|
||||
float start = settings.tl_x;
|
||||
float start = static_cast<float>(settings.tl_x);
|
||||
if (xcorrection) {
|
||||
if (settings.scan_method == ScanMethod::FLATBED) {
|
||||
start += dev->model->x_offset;
|
||||
start += static_cast<float>(dev->model->x_offset);
|
||||
} else {
|
||||
start += dev->model->x_offset_ta;
|
||||
start += static_cast<float>(dev->model->x_offset_ta);
|
||||
}
|
||||
}
|
||||
start = (start * sensor.optical_res) / MM_PER_INCH;
|
||||
start = static_cast<float>((start * sensor.optical_res) / MM_PER_INCH);
|
||||
|
||||
ScanSession session;
|
||||
session.params.xres = settings.xres;
|
||||
session.params.yres = settings.yres;
|
||||
session.params.startx = start;
|
||||
session.params.starty = move;
|
||||
session.params.startx = static_cast<unsigned>(start);
|
||||
session.params.starty = static_cast<unsigned>(move);
|
||||
session.params.pixels = settings.pixels;
|
||||
session.params.requested_pixels = settings.requested_pixels;
|
||||
session.params.lines = settings.lines;
|
||||
|
@ -2654,7 +2654,7 @@ void CommandSetGl646::coarse_gain_calibration(Genesys_Device* dev, const Genesys
|
|||
else
|
||||
{
|
||||
settings.tl_x = dev->model->x_offset_ta;
|
||||
settings.pixels = (dev->model->x_size_ta * resolution) / MM_PER_INCH;
|
||||
settings.pixels = static_cast<unsigned>((dev->model->x_size_ta * resolution) / MM_PER_INCH);
|
||||
}
|
||||
settings.requested_pixels = settings.pixels;
|
||||
settings.lines = CALIBRATION_LINES;
|
||||
|
@ -2729,7 +2729,7 @@ void CommandSetGl646::coarse_gain_calibration(Genesys_Device* dev, const Genesys
|
|||
}
|
||||
|
||||
/* threshold */
|
||||
maximum *= 0.9;
|
||||
maximum = static_cast<int>(maximum * 0.9);
|
||||
|
||||
/* computes white average */
|
||||
average[k] = 0;
|
||||
|
@ -3045,7 +3045,7 @@ void CommandSetGl646::move_to_ta(Genesys_Device* dev) const
|
|||
{
|
||||
DBG_HELPER(dbg);
|
||||
|
||||
simple_move(dev, dev->model->y_offset_sensor_to_ta);
|
||||
simple_move(dev, static_cast<int>(dev->model->y_offset_sensor_to_ta));
|
||||
}
|
||||
|
||||
|
||||
|
@ -3218,7 +3218,7 @@ static void simple_move(Genesys_Device* dev, SANE_Int distance)
|
|||
settings.tl_x = 0;
|
||||
settings.pixels = (sensor.sensor_pixels * settings.xres) / sensor.optical_res;
|
||||
settings.requested_pixels = settings.pixels;
|
||||
settings.lines = (distance * settings.xres) / MM_PER_INCH;
|
||||
settings.lines = static_cast<unsigned>((distance * settings.xres) / MM_PER_INCH);
|
||||
settings.depth = 8;
|
||||
settings.color_filter = ColorFilter::RED;
|
||||
|
||||
|
@ -3507,12 +3507,12 @@ void CommandSetGl646::search_strip(Genesys_Device* dev, const Genesys_Sensor& se
|
|||
settings.yres = res;
|
||||
settings.tl_x = 0;
|
||||
settings.tl_y = 0;
|
||||
settings.pixels = (dev->model->x_size * res) / MM_PER_INCH;
|
||||
settings.pixels = static_cast<unsigned>((dev->model->x_size * res) / MM_PER_INCH);
|
||||
settings.pixels /= calib_sensor.get_ccd_size_divisor_for_dpi(res);
|
||||
settings.requested_pixels = settings.pixels;
|
||||
|
||||
/* 15 mm at at time */
|
||||
settings.lines = (15 * settings.yres) / MM_PER_INCH; /* may become a parameter from genesys_devices.c */
|
||||
settings.lines = static_cast<unsigned>((15 * settings.yres) / MM_PER_INCH);
|
||||
settings.depth = 8;
|
||||
settings.color_filter = ColorFilter::RED;
|
||||
|
||||
|
|
|
@ -149,88 +149,88 @@ typedef struct
|
|||
*/
|
||||
static Motor_Master motor_master[] = {
|
||||
/* HP3670 motor settings */
|
||||
{MotorId::HP3670, 75, 3, StepType::FULL, false, true , 1, 200, 3429, 305, 192, 3399, 337, 0.3, 0.4, 192},
|
||||
{MotorId::HP3670, 100, 3, StepType::HALF, false, true , 1, 143, 2905, 187, 192, 3399, 337, 0.3, 0.4, 192},
|
||||
{MotorId::HP3670, 150, 3, StepType::HALF, false, true , 1, 73, 3429, 305, 192, 3399, 337, 0.3, 0.4, 192},
|
||||
{MotorId::HP3670, 300, 3, StepType::HALF, false, true , 1, 11, 1055, 563, 192, 3399, 337, 0.3, 0.4, 192},
|
||||
{MotorId::HP3670, 600, 3, StepType::FULL, false, true , 0, 3, 10687, 5126, 192, 3399, 337, 0.3, 0.4, 192},
|
||||
{MotorId::HP3670,1200, 3, StepType::HALF, false, true , 0, 3, 15937, 6375, 192, 3399, 337, 0.3, 0.4, 192},
|
||||
{MotorId::HP3670,2400, 3, StepType::HALF, false, true , 0, 3, 15937, 12750, 192, 3399, 337, 0.3, 0.4, 192},
|
||||
{MotorId::HP3670, 75, 1, StepType::FULL, false, true , 1, 200, 3429, 305, 192, 3399, 337, 0.3, 0.4, 192},
|
||||
{MotorId::HP3670, 100, 1, StepType::HALF, false, true , 1, 143, 2905, 187, 192, 3399, 337, 0.3, 0.4, 192},
|
||||
{MotorId::HP3670, 150, 1, StepType::HALF, false, true , 1, 73, 3429, 305, 192, 3399, 337, 0.3, 0.4, 192},
|
||||
{MotorId::HP3670, 300, 1, StepType::HALF, false, true , 1, 11, 1055, 563, 192, 3399, 337, 0.3, 0.4, 192},
|
||||
{MotorId::HP3670, 600, 1, StepType::FULL, false, true , 0, 3, 10687, 5126, 192, 3399, 337, 0.3, 0.4, 192},
|
||||
{MotorId::HP3670,1200, 1, StepType::HALF, false, true , 0, 3, 15937, 6375, 192, 3399, 337, 0.3, 0.4, 192},
|
||||
{MotorId::HP3670,2400, 3, StepType::HALF, false, true , 0, 3, 15937, 12750, 192, 3399, 337, 0.3, 0.4, 192},
|
||||
{MotorId::HP3670, 75, 3, StepType::FULL, false, true , 1, 200, 3429, 305, 192, 3399, 337, 0.3f, 0.4f, 192},
|
||||
{MotorId::HP3670, 100, 3, StepType::HALF, false, true , 1, 143, 2905, 187, 192, 3399, 337, 0.3f, 0.4f, 192},
|
||||
{MotorId::HP3670, 150, 3, StepType::HALF, false, true , 1, 73, 3429, 305, 192, 3399, 337, 0.3f, 0.4f, 192},
|
||||
{MotorId::HP3670, 300, 3, StepType::HALF, false, true , 1, 11, 1055, 563, 192, 3399, 337, 0.3f, 0.4f, 192},
|
||||
{MotorId::HP3670, 600, 3, StepType::FULL, false, true , 0, 3, 10687, 5126, 192, 3399, 337, 0.3f, 0.4f, 192},
|
||||
{MotorId::HP3670,1200, 3, StepType::HALF, false, true , 0, 3, 15937, 6375, 192, 3399, 337, 0.3f, 0.4f, 192},
|
||||
{MotorId::HP3670,2400, 3, StepType::HALF, false, true , 0, 3, 15937, 12750,192, 3399, 337, 0.3f, 0.4f, 192},
|
||||
{MotorId::HP3670, 75, 1, StepType::FULL, false, true , 1, 200, 3429, 305, 192, 3399, 337, 0.3f, 0.4f, 192},
|
||||
{MotorId::HP3670, 100, 1, StepType::HALF, false, true , 1, 143, 2905, 187, 192, 3399, 337, 0.3f, 0.4f, 192},
|
||||
{MotorId::HP3670, 150, 1, StepType::HALF, false, true , 1, 73, 3429, 305, 192, 3399, 337, 0.3f, 0.4f, 192},
|
||||
{MotorId::HP3670, 300, 1, StepType::HALF, false, true , 1, 11, 1055, 563, 192, 3399, 337, 0.3f, 0.4f, 192},
|
||||
{MotorId::HP3670, 600, 1, StepType::FULL, false, true , 0, 3, 10687, 5126, 192, 3399, 337, 0.3f, 0.4f, 192},
|
||||
{MotorId::HP3670,1200, 1, StepType::HALF, false, true , 0, 3, 15937, 6375, 192, 3399, 337, 0.3f, 0.4f, 192},
|
||||
{MotorId::HP3670,2400, 3, StepType::HALF, false, true , 0, 3, 15937, 12750,192, 3399, 337, 0.3f, 0.4f, 192},
|
||||
|
||||
/* HP2400/G2410 motor settings base motor dpi = 600 */
|
||||
{MotorId::HP2400, 50, 3, StepType::FULL, false, true , 63, 120, 8736, 601, 192, 4905, 337, 0.30, 0.4, 192},
|
||||
{MotorId::HP2400, 100, 3, StepType::HALF, false, true, 63, 120, 8736, 601, 192, 4905, 337, 0.30, 0.4, 192},
|
||||
{MotorId::HP2400, 150, 3, StepType::HALF, false, true , 63, 67, 15902, 902, 192, 4905, 337, 0.30, 0.4, 192},
|
||||
{MotorId::HP2400, 300, 3, StepType::HALF, false, true , 63, 32, 16703, 2188, 192, 4905, 337, 0.30, 0.4, 192},
|
||||
{MotorId::HP2400, 600, 3, StepType::FULL, false, true , 63, 3, 18761, 18761, 192, 4905, 627, 0.30, 0.4, 192},
|
||||
{MotorId::HP2400,1200, 3, StepType::HALF, false, true , 63, 3, 43501, 43501, 192, 4905, 627, 0.30, 0.4, 192},
|
||||
{MotorId::HP2400, 50, 1, StepType::FULL, false, true , 63, 120, 8736, 601, 192, 4905, 337, 0.30, 0.4, 192},
|
||||
{MotorId::HP2400, 100, 1, StepType::HALF, false, true, 63, 120, 8736, 601, 192, 4905, 337, 0.30, 0.4, 192},
|
||||
{MotorId::HP2400, 150, 1, StepType::HALF, false, true , 63, 67, 15902, 902, 192, 4905, 337, 0.30, 0.4, 192},
|
||||
{MotorId::HP2400, 300, 1, StepType::HALF, false, true , 63, 32, 16703, 2188, 192, 4905, 337, 0.30, 0.4, 192},
|
||||
{MotorId::HP2400, 600, 1, StepType::FULL, false, true , 63, 3, 18761, 18761, 192, 4905, 337, 0.30, 0.4, 192},
|
||||
{MotorId::HP2400,1200, 1, StepType::HALF, false, true , 63, 3, 43501, 43501, 192, 4905, 337, 0.30, 0.4, 192},
|
||||
{MotorId::HP2400, 50, 3, StepType::FULL, false, true , 63, 120, 8736, 601, 192, 4905, 337, 0.3f, 0.4f, 192},
|
||||
{MotorId::HP2400, 100, 3, StepType::HALF, false, true, 63, 120, 8736, 601, 192, 4905, 337, 0.3f, 0.4f, 192},
|
||||
{MotorId::HP2400, 150, 3, StepType::HALF, false, true , 63, 67, 15902, 902, 192, 4905, 337, 0.3f, 0.4f, 192},
|
||||
{MotorId::HP2400, 300, 3, StepType::HALF, false, true , 63, 32, 16703, 2188, 192, 4905, 337, 0.3f, 0.4f, 192},
|
||||
{MotorId::HP2400, 600, 3, StepType::FULL, false, true , 63, 3, 18761, 18761, 192, 4905, 627, 0.3f, 0.4f, 192},
|
||||
{MotorId::HP2400,1200, 3, StepType::HALF, false, true , 63, 3, 43501, 43501, 192, 4905, 627, 0.3f, 0.4f, 192},
|
||||
{MotorId::HP2400, 50, 1, StepType::FULL, false, true , 63, 120, 8736, 601, 192, 4905, 337, 0.3f, 0.4f, 192},
|
||||
{MotorId::HP2400, 100, 1, StepType::HALF, false, true, 63, 120, 8736, 601, 192, 4905, 337, 0.3f, 0.4f, 192},
|
||||
{MotorId::HP2400, 150, 1, StepType::HALF, false, true , 63, 67, 15902, 902, 192, 4905, 337, 0.3f, 0.4f, 192},
|
||||
{MotorId::HP2400, 300, 1, StepType::HALF, false, true , 63, 32, 16703, 2188, 192, 4905, 337, 0.3f, 0.4f, 192},
|
||||
{MotorId::HP2400, 600, 1, StepType::FULL, false, true , 63, 3, 18761, 18761, 192, 4905, 337, 0.3f, 0.4f, 192},
|
||||
{MotorId::HP2400,1200, 1, StepType::HALF, false, true , 63, 3, 43501, 43501, 192, 4905, 337, 0.3f, 0.4f, 192},
|
||||
|
||||
/* XP 200 motor settings */
|
||||
{MotorId::XP200, 75, 3, StepType::HALF, true , false, 0, 4, 6000, 2136, 8, 12000, 1200, 0.3, 0.5, 1},
|
||||
{MotorId::XP200, 100, 3, StepType::HALF, true , false, 0, 4, 6000, 2850, 8, 12000, 1200, 0.3, 0.5, 1},
|
||||
{MotorId::XP200, 200, 3, StepType::HALF, true , false, 0, 4, 6999, 5700, 8, 12000, 1200, 0.3, 0.5, 1},
|
||||
{MotorId::XP200, 250, 3, StepType::HALF, true , false, 0, 4, 6999, 6999, 8, 12000, 1200, 0.3, 0.5, 1},
|
||||
{MotorId::XP200, 300, 3, StepType::HALF, true , false, 0, 4, 13500, 13500, 8, 12000, 1200, 0.3, 0.5, 1},
|
||||
{MotorId::XP200, 600, 3, StepType::HALF, true , true, 0, 4, 31998, 31998, 2, 12000, 1200, 0.3, 0.5, 1},
|
||||
{MotorId::XP200, 75, 1, StepType::HALF, true , false, 0, 4, 6000, 2000, 8, 12000, 1200, 0.3, 0.5, 1},
|
||||
{MotorId::XP200, 100, 1, StepType::HALF, true , false, 0, 4, 6000, 1300, 8, 12000, 1200, 0.3, 0.5, 1},
|
||||
{MotorId::XP200, 200, 1, StepType::HALF, true , true, 0, 4, 6000, 3666, 8, 12000, 1200, 0.3, 0.5, 1},
|
||||
{MotorId::XP200, 300, 1, StepType::HALF, true , false, 0, 4, 6500, 6500, 8, 12000, 1200, 0.3, 0.5, 1},
|
||||
{MotorId::XP200, 600, 1, StepType::HALF, true , true, 0, 4, 24000, 24000, 2, 12000, 1200, 0.3, 0.5, 1},
|
||||
{MotorId::XP200, 75, 3, StepType::HALF, true , false, 0, 4, 6000, 2136, 8, 12000, 1200, 0.3f, 0.5f, 1},
|
||||
{MotorId::XP200, 100, 3, StepType::HALF, true , false, 0, 4, 6000, 2850, 8, 12000, 1200, 0.3f, 0.5f, 1},
|
||||
{MotorId::XP200, 200, 3, StepType::HALF, true , false, 0, 4, 6999, 5700, 8, 12000, 1200, 0.3f, 0.5f, 1},
|
||||
{MotorId::XP200, 250, 3, StepType::HALF, true , false, 0, 4, 6999, 6999, 8, 12000, 1200, 0.3f, 0.5f, 1},
|
||||
{MotorId::XP200, 300, 3, StepType::HALF, true , false, 0, 4, 13500, 13500, 8, 12000, 1200, 0.3f, 0.5f, 1},
|
||||
{MotorId::XP200, 600, 3, StepType::HALF, true , true, 0, 4, 31998, 31998, 2, 12000, 1200, 0.3f, 0.5f, 1},
|
||||
{MotorId::XP200, 75, 1, StepType::HALF, true , false, 0, 4, 6000, 2000, 8, 12000, 1200, 0.3f, 0.5f, 1},
|
||||
{MotorId::XP200, 100, 1, StepType::HALF, true , false, 0, 4, 6000, 1300, 8, 12000, 1200, 0.3f, 0.5f, 1},
|
||||
{MotorId::XP200, 200, 1, StepType::HALF, true , true, 0, 4, 6000, 3666, 8, 12000, 1200, 0.3f, 0.5f, 1},
|
||||
{MotorId::XP200, 300, 1, StepType::HALF, true , false, 0, 4, 6500, 6500, 8, 12000, 1200, 0.3f, 0.5f, 1},
|
||||
{MotorId::XP200, 600, 1, StepType::HALF, true , true, 0, 4, 24000, 24000, 2, 12000, 1200, 0.3f, 0.5f, 1},
|
||||
|
||||
/* HP scanjet 2300c */
|
||||
{MotorId::HP2300, 75, 3, StepType::FULL, false, true , 63, 120, 8139, 560, 120, 4905, 337, 0.3, 0.4, 16},
|
||||
{MotorId::HP2300, 150, 3, StepType::HALF, false, true , 63, 67, 7903, 543, 120, 4905, 337, 0.3, 0.4, 16},
|
||||
{MotorId::HP2300, 300, 3, StepType::HALF, false, true , 63, 3, 2175, 1087, 120, 4905, 337, 0.3, 0.4, 16},
|
||||
{MotorId::HP2300, 600, 3, StepType::HALF, false, true , 63, 3, 8700, 4350, 120, 4905, 337, 0.3, 0.4, 16},
|
||||
{MotorId::HP2300,1200, 3, StepType::HALF, false, true , 63, 3, 17400, 8700, 120, 4905, 337, 0.3, 0.4, 16},
|
||||
{MotorId::HP2300, 75, 1, StepType::FULL, false, true , 63, 120, 8139, 560, 120, 4905, 337, 0.3, 0.4, 16},
|
||||
{MotorId::HP2300, 150, 1, StepType::HALF, false, true , 63, 67, 7903, 543, 120, 4905, 337, 0.3, 0.4, 16},
|
||||
{MotorId::HP2300, 300, 1, StepType::HALF, false, true , 63, 3, 2175, 1087, 120, 4905, 337, 0.3, 0.4, 16},
|
||||
{MotorId::HP2300, 600, 1, StepType::HALF, false, true , 63, 3, 8700, 4350, 120, 4905, 337, 0.3, 0.4, 16},
|
||||
{MotorId::HP2300,1200, 1, StepType::HALF, false, true , 63, 3, 17400, 8700, 120, 4905, 337, 0.3, 0.4, 16},
|
||||
{MotorId::HP2300, 75, 3, StepType::FULL, false, true , 63, 120, 8139, 560, 120, 4905, 337, 0.3f, 0.4f, 16},
|
||||
{MotorId::HP2300, 150, 3, StepType::HALF, false, true , 63, 67, 7903, 543, 120, 4905, 337, 0.3f, 0.4f, 16},
|
||||
{MotorId::HP2300, 300, 3, StepType::HALF, false, true , 63, 3, 2175, 1087, 120, 4905, 337, 0.3f, 0.4f, 16},
|
||||
{MotorId::HP2300, 600, 3, StepType::HALF, false, true , 63, 3, 8700, 4350, 120, 4905, 337, 0.3f, 0.4f, 16},
|
||||
{MotorId::HP2300,1200, 3, StepType::HALF, false, true , 63, 3, 17400, 8700, 120, 4905, 337, 0.3f, 0.4f, 16},
|
||||
{MotorId::HP2300, 75, 1, StepType::FULL, false, true , 63, 120, 8139, 560, 120, 4905, 337, 0.3f, 0.4f, 16},
|
||||
{MotorId::HP2300, 150, 1, StepType::HALF, false, true , 63, 67, 7903, 543, 120, 4905, 337, 0.3f, 0.4f, 16},
|
||||
{MotorId::HP2300, 300, 1, StepType::HALF, false, true , 63, 3, 2175, 1087, 120, 4905, 337, 0.3f, 0.4f, 16},
|
||||
{MotorId::HP2300, 600, 1, StepType::HALF, false, true , 63, 3, 8700, 4350, 120, 4905, 337, 0.3f, 0.4f, 16},
|
||||
{MotorId::HP2300,1200, 1, StepType::HALF, false, true , 63, 3, 17400, 8700, 120, 4905, 337, 0.3f, 0.4f, 16},
|
||||
/* non half ccd settings for 300 dpi
|
||||
{MotorId::HP2300, 300, 3, StepType::HALF, false, true , 63, 44, 5386, 2175, 120, 4905, 337, 0.3, 0.4, 16},
|
||||
{MotorId::HP2300, 300, 1, StepType::HALF, false, true , 63, 44, 5386, 2175, 120, 4905, 337, 0.3, 0.4, 16},
|
||||
{MotorId::HP2300, 300, 3, StepType::HALF, false, true , 63, 44, 5386, 2175, 120, 4905, 337, 0.3f, 0.4f, 16},
|
||||
{MotorId::HP2300, 300, 1, StepType::HALF, false, true , 63, 44, 5386, 2175, 120, 4905, 337, 0.3f, 0.4f, 16},
|
||||
*/
|
||||
|
||||
/* MD5345/6471 motor settings */
|
||||
/* vfinal=(exposure/(1200/dpi))/step_type */
|
||||
{MotorId::MD_5345, 50, 3, StepType::HALF , false, true , 2, 255, 2500, 250, 255, 2000, 300, 0.3, 0.4, 64},
|
||||
{MotorId::MD_5345, 75, 3, StepType::HALF , false, true , 2, 255, 2500, 343, 255, 2000, 300, 0.3, 0.4, 64},
|
||||
{MotorId::MD_5345, 100, 3, StepType::HALF , false, true , 2, 255, 2500, 458, 255, 2000, 300, 0.3, 0.4, 64},
|
||||
{MotorId::MD_5345, 150, 3, StepType::HALF , false, true , 2, 255, 2500, 687, 255, 2000, 300, 0.3, 0.4, 64},
|
||||
{MotorId::MD_5345, 200, 3, StepType::HALF , false, true , 2, 255, 2500, 916, 255, 2000, 300, 0.3, 0.4, 64},
|
||||
{MotorId::MD_5345, 300, 3, StepType::HALF , false, true , 2, 255, 2500, 1375, 255, 2000, 300, 0.3, 0.4, 64},
|
||||
{MotorId::MD_5345, 400, 3, StepType::HALF , false, true , 0, 32, 2000, 1833, 255, 2000, 300, 0.3, 0.4, 32},
|
||||
{MotorId::MD_5345, 500, 3, StepType::HALF , false, true , 0, 32, 2291, 2291, 255, 2000, 300, 0.3, 0.4, 32},
|
||||
{MotorId::MD_5345, 600, 3, StepType::HALF , false, true , 0, 32, 2750, 2750, 255, 2000, 300, 0.3, 0.4, 32},
|
||||
{MotorId::MD_5345, 1200, 3, StepType::QUARTER, false, true , 0, 16, 2750, 2750, 255, 2000, 300, 0.3, 0.4, 146},
|
||||
{MotorId::MD_5345, 2400, 3, StepType::QUARTER, false, true , 0, 16, 5500, 5500, 255, 2000, 300, 0.3, 0.4, 146},
|
||||
{MotorId::MD_5345, 50, 1, StepType::HALF , false, true , 2, 255, 2500, 250, 255, 2000, 300, 0.3, 0.4, 64},
|
||||
{MotorId::MD_5345, 75, 1, StepType::HALF , false, true , 2, 255, 2500, 343, 255, 2000, 300, 0.3, 0.4, 64},
|
||||
{MotorId::MD_5345, 100, 1, StepType::HALF , false, true , 2, 255, 2500, 458, 255, 2000, 300, 0.3, 0.4, 64},
|
||||
{MotorId::MD_5345, 150, 1, StepType::HALF , false, true , 2, 255, 2500, 687, 255, 2000, 300, 0.3, 0.4, 64},
|
||||
{MotorId::MD_5345, 200, 1, StepType::HALF , false, true , 2, 255, 2500, 916, 255, 2000, 300, 0.3, 0.4, 64},
|
||||
{MotorId::MD_5345, 300, 1, StepType::HALF , false, true , 2, 255, 2500, 1375, 255, 2000, 300, 0.3, 0.4, 64},
|
||||
{MotorId::MD_5345, 400, 1, StepType::HALF , false, true , 0, 32, 2000, 1833, 255, 2000, 300, 0.3, 0.4, 32},
|
||||
{MotorId::MD_5345, 500, 1, StepType::HALF , false, true , 0, 32, 2291, 2291, 255, 2000, 300, 0.3, 0.4, 32},
|
||||
{MotorId::MD_5345, 600, 1, StepType::HALF , false, true , 0, 32, 2750, 2750, 255, 2000, 300, 0.3, 0.4, 32},
|
||||
{MotorId::MD_5345, 1200, 1, StepType::QUARTER, false, true , 0, 16, 2750, 2750, 255, 2000, 300, 0.3, 0.4, 146},
|
||||
{MotorId::MD_5345, 2400, 1, StepType::QUARTER, false, true , 0, 16, 5500, 5500, 255, 2000, 300, 0.3, 0.4, 146}, /* 5500 guessed */
|
||||
{MotorId::MD_5345, 50, 3, StepType::HALF , false, true , 2, 255, 2500, 250, 255, 2000, 300, 0.3f, 0.4f, 64},
|
||||
{MotorId::MD_5345, 75, 3, StepType::HALF , false, true , 2, 255, 2500, 343, 255, 2000, 300, 0.3f, 0.4f, 64},
|
||||
{MotorId::MD_5345, 100, 3, StepType::HALF , false, true , 2, 255, 2500, 458, 255, 2000, 300, 0.3f, 0.4f, 64},
|
||||
{MotorId::MD_5345, 150, 3, StepType::HALF , false, true , 2, 255, 2500, 687, 255, 2000, 300, 0.3f, 0.4f, 64},
|
||||
{MotorId::MD_5345, 200, 3, StepType::HALF , false, true , 2, 255, 2500, 916, 255, 2000, 300, 0.3f, 0.4f, 64},
|
||||
{MotorId::MD_5345, 300, 3, StepType::HALF , false, true , 2, 255, 2500, 1375, 255, 2000, 300, 0.3f, 0.4f, 64},
|
||||
{MotorId::MD_5345, 400, 3, StepType::HALF , false, true , 0, 32, 2000, 1833, 255, 2000, 300, 0.3f, 0.4f, 32},
|
||||
{MotorId::MD_5345, 500, 3, StepType::HALF , false, true , 0, 32, 2291, 2291, 255, 2000, 300, 0.3f, 0.4f, 32},
|
||||
{MotorId::MD_5345, 600, 3, StepType::HALF , false, true , 0, 32, 2750, 2750, 255, 2000, 300, 0.3f, 0.4f, 32},
|
||||
{MotorId::MD_5345, 1200, 3, StepType::QUARTER, false, true , 0, 16, 2750, 2750, 255, 2000, 300, 0.3f, 0.4f, 146},
|
||||
{MotorId::MD_5345, 2400, 3, StepType::QUARTER, false, true , 0, 16, 5500, 5500, 255, 2000, 300, 0.3f, 0.4f, 146},
|
||||
{MotorId::MD_5345, 50, 1, StepType::HALF , false, true , 2, 255, 2500, 250, 255, 2000, 300, 0.3f, 0.4f, 64},
|
||||
{MotorId::MD_5345, 75, 1, StepType::HALF , false, true , 2, 255, 2500, 343, 255, 2000, 300, 0.3f, 0.4f, 64},
|
||||
{MotorId::MD_5345, 100, 1, StepType::HALF , false, true , 2, 255, 2500, 458, 255, 2000, 300, 0.3f, 0.4f, 64},
|
||||
{MotorId::MD_5345, 150, 1, StepType::HALF , false, true , 2, 255, 2500, 687, 255, 2000, 300, 0.3f, 0.4f, 64},
|
||||
{MotorId::MD_5345, 200, 1, StepType::HALF , false, true , 2, 255, 2500, 916, 255, 2000, 300, 0.3f, 0.4f, 64},
|
||||
{MotorId::MD_5345, 300, 1, StepType::HALF , false, true , 2, 255, 2500, 1375, 255, 2000, 300, 0.3f, 0.4f, 64},
|
||||
{MotorId::MD_5345, 400, 1, StepType::HALF , false, true , 0, 32, 2000, 1833, 255, 2000, 300, 0.3f, 0.4f, 32},
|
||||
{MotorId::MD_5345, 500, 1, StepType::HALF , false, true , 0, 32, 2291, 2291, 255, 2000, 300, 0.3f, 0.4f, 32},
|
||||
{MotorId::MD_5345, 600, 1, StepType::HALF , false, true , 0, 32, 2750, 2750, 255, 2000, 300, 0.3f, 0.4f, 32},
|
||||
{MotorId::MD_5345, 1200, 1, StepType::QUARTER, false, true , 0, 16, 2750, 2750, 255, 2000, 300, 0.3f, 0.4f, 146},
|
||||
{MotorId::MD_5345, 2400, 1, StepType::QUARTER, false, true , 0, 16, 5500, 5500, 255, 2000, 300, 0.3f, 0.4f, 146}, /* 5500 guessed */
|
||||
};
|
||||
|
||||
class CommandSetGl646 : public CommandSet
|
||||
|
|
|
@ -1795,11 +1795,10 @@ void CommandSetGl841::calculate_current_setup(Genesys_Device * dev,
|
|||
debug_dump(DBG_info, dev->settings);
|
||||
|
||||
/* start */
|
||||
start = dev->model->x_offset;
|
||||
start = static_cast<int>(dev->model->x_offset);
|
||||
start += static_cast<int>(dev->settings.tl_x);
|
||||
|
||||
start += dev->settings.tl_x;
|
||||
|
||||
start = (start * sensor.optical_res) / MM_PER_INCH;
|
||||
start = static_cast<int>((start * sensor.optical_res) / MM_PER_INCH);
|
||||
|
||||
ScanSession session;
|
||||
session.params.xres = dev->settings.xres;
|
||||
|
@ -2175,10 +2174,10 @@ void CommandSetGl841::eject_document(Genesys_Device* dev) const
|
|||
}
|
||||
}
|
||||
|
||||
feed_mm = dev->model->eject_feed;
|
||||
feed_mm = static_cast<float>(dev->model->eject_feed);
|
||||
if (dev->document)
|
||||
{
|
||||
feed_mm += dev->model->post_scan;
|
||||
feed_mm += static_cast<float>(dev->model->post_scan);
|
||||
}
|
||||
|
||||
sanei_genesys_read_feed_steps(dev, &init_steps);
|
||||
|
@ -2268,8 +2267,8 @@ void CommandSetGl841::detect_document_end(Genesys_Device* dev) const
|
|||
|
||||
std::size_t output_lines = dev->session.output_line_count;
|
||||
|
||||
std::size_t offset_lines = (dev->model->post_scan / MM_PER_INCH) *
|
||||
dev->settings.yres;
|
||||
std::size_t offset_lines = static_cast<std::size_t>(
|
||||
(dev->model->post_scan / MM_PER_INCH) * dev->settings.yres);
|
||||
|
||||
std::size_t scan_end_lines = scanned_lines + offset_lines;
|
||||
|
||||
|
@ -2631,7 +2630,7 @@ void CommandSetGl841::init_regs_for_shading(Genesys_Device* dev, const Genesys_S
|
|||
{
|
||||
DBG_HELPER_ARGS(dbg, "lines = %zu", dev->calib_lines);
|
||||
SANE_Int ydpi;
|
||||
float starty=0;
|
||||
unsigned starty = 0;
|
||||
|
||||
/* initial calibration reg values */
|
||||
regs = dev->reg;
|
||||
|
@ -2726,25 +2725,25 @@ void CommandSetGl841::init_regs_for_scan(Genesys_Device* dev, const Genesys_Sens
|
|||
|
||||
move = 0;
|
||||
if (dev->model->flags & GENESYS_FLAG_SEARCH_START) {
|
||||
move += dev->model->y_offset_calib_white;
|
||||
move += static_cast<float>(dev->model->y_offset_calib_white);
|
||||
}
|
||||
|
||||
DBG(DBG_info, "%s move=%f steps\n", __func__, move);
|
||||
|
||||
move += dev->model->y_offset;
|
||||
move += static_cast<float>(dev->model->y_offset);
|
||||
DBG(DBG_info, "%s: move=%f steps\n", __func__, move);
|
||||
|
||||
move += dev->settings.tl_y;
|
||||
move += static_cast<float>(dev->settings.tl_y);
|
||||
DBG(DBG_info, "%s: move=%f steps\n", __func__, move);
|
||||
|
||||
move = (move * move_dpi) / MM_PER_INCH;
|
||||
move = static_cast<float>((move * move_dpi) / MM_PER_INCH);
|
||||
|
||||
/* start */
|
||||
start = dev->model->x_offset;
|
||||
start = static_cast<float>(dev->model->x_offset);
|
||||
|
||||
start += dev->settings.tl_x;
|
||||
start += static_cast<float>(dev->settings.tl_x);
|
||||
|
||||
start = (start * sensor.optical_res) / MM_PER_INCH;
|
||||
start = static_cast<float>((start * sensor.optical_res) / MM_PER_INCH);
|
||||
|
||||
/* we enable true gray for cis scanners only, and just when doing
|
||||
* scan since color calibration is OK for this mode
|
||||
|
@ -2764,8 +2763,8 @@ void CommandSetGl841::init_regs_for_scan(Genesys_Device* dev, const Genesys_Sens
|
|||
ScanSession session;
|
||||
session.params.xres = dev->settings.xres;
|
||||
session.params.yres = dev->settings.yres;
|
||||
session.params.startx = start;
|
||||
session.params.starty = move;
|
||||
session.params.startx = static_cast<unsigned>(start);
|
||||
session.params.starty = static_cast<unsigned>(move);
|
||||
session.params.pixels = dev->settings.pixels;
|
||||
session.params.requested_pixels = dev->settings.requested_pixels;
|
||||
session.params.lines = dev->settings.lines;
|
||||
|
@ -2827,8 +2826,8 @@ SensorExposure CommandSetGl841::led_calibration(Genesys_Device* dev, const Genes
|
|||
|
||||
/* feed to white strip if needed */
|
||||
if (dev->model->y_offset_calib_white > 0) {
|
||||
move = dev->model->y_offset_calib_white;
|
||||
move = (move * (dev->motor.base_ydpi)) / MM_PER_INCH;
|
||||
move = static_cast<int>(dev->model->y_offset_calib_white);
|
||||
move = static_cast<int>((move * (dev->motor.base_ydpi)) / MM_PER_INCH);
|
||||
DBG(DBG_io, "%s: move=%d lines\n", __func__, move);
|
||||
gl841_feed(dev, move);
|
||||
}
|
||||
|
@ -3520,8 +3519,8 @@ void CommandSetGl841::coarse_gain_calibration(Genesys_Device* dev, const Genesys
|
|||
|
||||
// feed to white strip if needed
|
||||
if (dev->model->y_offset_calib_white > 0) {
|
||||
move = dev->model->y_offset_calib_white;
|
||||
move = (move * (dev->motor.base_ydpi)) / MM_PER_INCH;
|
||||
move = static_cast<int>(dev->model->y_offset_calib_white);
|
||||
move = static_cast<int>((move * (dev->motor.base_ydpi)) / MM_PER_INCH);
|
||||
DBG(DBG_io, "%s: move=%d lines\n", __func__, move);
|
||||
gl841_feed(dev, move);
|
||||
}
|
||||
|
@ -3590,7 +3589,7 @@ void CommandSetGl841::coarse_gain_calibration(Genesys_Device* dev, const Genesys
|
|||
max[j] = val;
|
||||
}
|
||||
|
||||
gain[j] = 65535.0/max[j];
|
||||
gain[j] = 65535.0f / max[j];
|
||||
|
||||
uint8_t out_gain = 0;
|
||||
|
||||
|
@ -3598,15 +3597,15 @@ void CommandSetGl841::coarse_gain_calibration(Genesys_Device* dev, const Genesys
|
|||
dev->model->adc_id == AdcId::WOLFSON_XP300 ||
|
||||
dev->model->adc_id == AdcId::WOLFSON_DSM600)
|
||||
{
|
||||
gain[j] *= 0.69;/*seems we don't get the real maximum. empirically derived*/
|
||||
gain[j] *= 0.69f; // seems we don't get the real maximum. empirically derived
|
||||
if (283 - 208/gain[j] > 255)
|
||||
out_gain = 255;
|
||||
else if (283 - 208/gain[j] < 0)
|
||||
out_gain = 0;
|
||||
else
|
||||
out_gain = 283 - 208/gain[j];
|
||||
out_gain = static_cast<std::uint8_t>(283 - 208 / gain[j]);
|
||||
} else if (dev->model->adc_id == AdcId::CANON_LIDE_80) {
|
||||
out_gain = gain[j]*12;
|
||||
out_gain = static_cast<std::uint8_t>(gain[j] * 12);
|
||||
}
|
||||
dev->frontend.set_gain(j, out_gain);
|
||||
|
||||
|
@ -3955,12 +3954,12 @@ void CommandSetGl841::search_strip(Genesys_Device* dev, const Genesys_Sensor& se
|
|||
|
||||
/* shading calibation is done with dev->motor.base_ydpi */
|
||||
/* lines = (dev->model->shading_lines * dpi) / dev->motor.base_ydpi; */
|
||||
lines = (10*dpi)/MM_PER_INCH;
|
||||
lines = static_cast<unsigned>((10 * dpi) / MM_PER_INCH);
|
||||
|
||||
pixels = (sensor.sensor_pixels * dpi) / sensor.optical_res;
|
||||
|
||||
/* 20 cm max length for calibration sheet */
|
||||
length = ((200 * dpi) / MM_PER_INCH)/lines;
|
||||
length = static_cast<unsigned>(((200 * dpi) / MM_PER_INCH) / lines);
|
||||
|
||||
dev->scanhead_position_in_steps = 0;
|
||||
|
||||
|
|
|
@ -1322,9 +1322,9 @@ void CommandSetGl843::calculate_current_setup(Genesys_Device * dev,
|
|||
if (dev->settings.scan_method == ScanMethod::TRANSPARENCY ||
|
||||
dev->settings.scan_method == ScanMethod::TRANSPARENCY_INFRARED)
|
||||
{
|
||||
start = dev->model->x_offset_ta;
|
||||
start = static_cast<int>(dev->model->x_offset_ta);
|
||||
} else {
|
||||
start = dev->model->x_offset;
|
||||
start = static_cast<int>(dev->model->x_offset);
|
||||
}
|
||||
|
||||
if (dev->model->model_id == ModelId::CANON_8400F ||
|
||||
|
@ -1334,8 +1334,8 @@ void CommandSetGl843::calculate_current_setup(Genesys_Device * dev,
|
|||
start /= ccd_size_divisor;
|
||||
}
|
||||
|
||||
start += dev->settings.tl_x;
|
||||
start = (start * sensor.optical_res) / MM_PER_INCH;
|
||||
start += static_cast<int>(dev->settings.tl_x);
|
||||
start = static_cast<int>((start * sensor.optical_res) / MM_PER_INCH);
|
||||
|
||||
ScanSession session;
|
||||
session.params.xres = dev->settings.xres;
|
||||
|
@ -1527,8 +1527,8 @@ void CommandSetGl843::detect_document_end(Genesys_Device* dev) const
|
|||
|
||||
std::size_t output_lines = dev->session.output_line_count;
|
||||
|
||||
std::size_t offset_lines = (dev->model->post_scan * dev->session.params.yres) /
|
||||
MM_PER_INCH;
|
||||
std::size_t offset_lines = static_cast<std::size_t>(
|
||||
(dev->model->post_scan * dev->session.params.yres) / MM_PER_INCH);
|
||||
|
||||
std::size_t scan_end_lines = scanned_lines + offset_lines;
|
||||
|
||||
|
@ -2238,16 +2238,16 @@ void CommandSetGl843::init_regs_for_shading(Genesys_Device* dev, const Genesys_S
|
|||
dev->model->model_id == ModelId::CANON_8600F &&
|
||||
dev->settings.xres == 4800)
|
||||
{
|
||||
float offset = dev->model->x_offset_ta;
|
||||
float offset = static_cast<float>(dev->model->x_offset_ta);
|
||||
offset /= calib_sensor.get_ccd_size_divisor_for_dpi(resolution);
|
||||
offset = (offset * calib_sensor.optical_res) / MM_PER_INCH;
|
||||
offset = static_cast<float>((offset * calib_sensor.optical_res) / MM_PER_INCH);
|
||||
|
||||
float size = dev->model->x_size_ta;
|
||||
float size = static_cast<float>(dev->model->x_size_ta);
|
||||
size /= calib_sensor.get_ccd_size_divisor_for_dpi(resolution);
|
||||
size = (size * calib_sensor.optical_res) / MM_PER_INCH;
|
||||
size = static_cast<float>((size * calib_sensor.optical_res) / MM_PER_INCH);
|
||||
|
||||
dev->calib_pixels_offset = offset;
|
||||
dev->calib_pixels = size;
|
||||
dev->calib_pixels_offset = static_cast<std::size_t>(offset);
|
||||
dev->calib_pixels = static_cast<std::size_t>(size);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -2267,13 +2267,13 @@ void CommandSetGl843::init_regs_for_shading(Genesys_Device* dev, const Genesys_S
|
|||
{
|
||||
// note: move_to_ta() function has already been called and the sensor is at the
|
||||
// transparency adapter
|
||||
move = dev->model->y_offset_calib_white_ta - dev->model->y_offset_sensor_to_ta;
|
||||
move = static_cast<int>(dev->model->y_offset_calib_white_ta - dev->model->y_offset_sensor_to_ta);
|
||||
flags |= SCAN_FLAG_USE_XPA;
|
||||
} else {
|
||||
move = dev->model->y_offset_calib_white;
|
||||
move = static_cast<int>(dev->model->y_offset_calib_white);
|
||||
}
|
||||
|
||||
move = (move * resolution) / MM_PER_INCH;
|
||||
move = static_cast<int>((move * resolution) / MM_PER_INCH);
|
||||
|
||||
ScanSession session;
|
||||
session.params.xres = resolution;
|
||||
|
@ -2327,28 +2327,28 @@ void CommandSetGl843::init_regs_for_scan(Genesys_Device* dev, const Genesys_Sens
|
|||
if (dev->ignore_offsets) {
|
||||
move = 0;
|
||||
} else {
|
||||
move = dev->model->y_offset_ta - dev->model->y_offset_sensor_to_ta;
|
||||
move = static_cast<float>(dev->model->y_offset_ta - dev->model->y_offset_sensor_to_ta);
|
||||
}
|
||||
flags |= SCAN_FLAG_USE_XPA;
|
||||
} else {
|
||||
if (dev->ignore_offsets) {
|
||||
move = 0;
|
||||
} else {
|
||||
move = dev->model->y_offset;
|
||||
move = static_cast<float>(dev->model->y_offset);
|
||||
}
|
||||
}
|
||||
|
||||
move += dev->settings.tl_y;
|
||||
move = (move * move_dpi) / MM_PER_INCH;
|
||||
move += static_cast<float>(dev->settings.tl_y);
|
||||
move = static_cast<float>((move * move_dpi) / MM_PER_INCH);
|
||||
DBG(DBG_info, "%s: move=%f steps\n", __func__, move);
|
||||
|
||||
/* start */
|
||||
if (dev->settings.scan_method==ScanMethod::TRANSPARENCY ||
|
||||
dev->settings.scan_method == ScanMethod::TRANSPARENCY_INFRARED)
|
||||
{
|
||||
start = dev->model->x_offset_ta;
|
||||
start = static_cast<float>(dev->model->x_offset_ta);
|
||||
} else {
|
||||
start = dev->model->x_offset;
|
||||
start = static_cast<float>(dev->model->x_offset);
|
||||
}
|
||||
|
||||
if (dev->model->model_id == ModelId::CANON_8400F ||
|
||||
|
@ -2358,8 +2358,8 @@ void CommandSetGl843::init_regs_for_scan(Genesys_Device* dev, const Genesys_Sens
|
|||
start /= sensor.get_ccd_size_divisor_for_dpi(dev->settings.xres);
|
||||
}
|
||||
|
||||
start += dev->settings.tl_x;
|
||||
start = (start * sensor.optical_res) / MM_PER_INCH;
|
||||
start = static_cast<float>(start + dev->settings.tl_x);
|
||||
start = static_cast<float>((start * sensor.optical_res) / MM_PER_INCH);
|
||||
|
||||
ScanSession session;
|
||||
session.params.xres = dev->settings.xres;
|
||||
|
@ -2637,13 +2637,13 @@ void CommandSetGl843::offset_calibration(Genesys_Device* dev, const Genesys_Sens
|
|||
dev->model->model_id == ModelId::CANON_8600F &&
|
||||
dev->settings.xres == 4800)
|
||||
{
|
||||
start_pixel = dev->model->x_offset_ta;
|
||||
start_pixel = static_cast<int>(dev->model->x_offset_ta);
|
||||
start_pixel /= calib_sensor.get_ccd_size_divisor_for_dpi(resolution);
|
||||
start_pixel = (start_pixel * calib_sensor.optical_res) / MM_PER_INCH;
|
||||
start_pixel = static_cast<int>((start_pixel * calib_sensor.optical_res) / MM_PER_INCH);
|
||||
|
||||
target_pixels = dev->model->x_size_ta;
|
||||
target_pixels = static_cast<int>(dev->model->x_size_ta);
|
||||
target_pixels /= calib_sensor.get_ccd_size_divisor_for_dpi(resolution);
|
||||
target_pixels = (target_pixels * calib_sensor.optical_res) / MM_PER_INCH;
|
||||
target_pixels = static_cast<int>((target_pixels * calib_sensor.optical_res) / MM_PER_INCH);
|
||||
}
|
||||
|
||||
int flags = SCAN_FLAG_DISABLE_SHADING |
|
||||
|
@ -2844,7 +2844,7 @@ void CommandSetGl843::coarse_gain_calibration(Genesys_Device* dev, const Genesys
|
|||
if (dev->model->sensor_id == SensorId::CCD_KVSS080) {
|
||||
if(dev->settings.xres<sensor.optical_res)
|
||||
{
|
||||
coeff=0.9;
|
||||
coeff = 0.9f;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -3177,10 +3177,10 @@ void CommandSetGl843::move_to_ta(Genesys_Device* dev) const
|
|||
{
|
||||
DBG_HELPER(dbg);
|
||||
float resolution;
|
||||
unsigned int feed;
|
||||
|
||||
resolution=sanei_genesys_get_lowest_ydpi(dev);
|
||||
feed = 16 * (dev->model->y_offset_sensor_to_ta * resolution) / MM_PER_INCH;
|
||||
unsigned feed = static_cast<unsigned>(16 * (dev->model->y_offset_sensor_to_ta * resolution) /
|
||||
MM_PER_INCH);
|
||||
gl843_feed(dev, feed);
|
||||
}
|
||||
|
||||
|
|
|
@ -855,9 +855,9 @@ void CommandSetGl846::calculate_current_setup(Genesys_Device* dev,
|
|||
debug_dump(DBG_info, dev->settings);
|
||||
|
||||
/* start */
|
||||
start = dev->model->x_offset;
|
||||
start += dev->settings.tl_x;
|
||||
start = (start * sensor.optical_res) / MM_PER_INCH;
|
||||
start = static_cast<int>(dev->model->x_offset);
|
||||
start += static_cast<int>(dev->settings.tl_x);
|
||||
start = static_cast<int>((start * sensor.optical_res) / MM_PER_INCH);
|
||||
|
||||
ScanSession session;
|
||||
session.params.xres = dev->settings.xres;
|
||||
|
@ -1363,7 +1363,7 @@ void CommandSetGl846::init_regs_for_shading(Genesys_Device* dev, const Genesys_S
|
|||
session.params.xres = dev->calib_resolution;
|
||||
session.params.yres = dev->calib_resolution;
|
||||
session.params.startx = 0;
|
||||
session.params.starty = move;
|
||||
session.params.starty = static_cast<unsigned>(move);
|
||||
session.params.pixels = dev->calib_pixels;
|
||||
session.params.lines = dev->calib_lines;
|
||||
session.params.depth = 16;
|
||||
|
@ -1417,9 +1417,9 @@ void CommandSetGl846::init_regs_for_scan(Genesys_Device* dev, const Genesys_Sens
|
|||
|
||||
move_dpi = dev->motor.base_ydpi;
|
||||
|
||||
move = dev->model->y_offset;
|
||||
move += dev->settings.tl_y;
|
||||
move = (move * move_dpi) / MM_PER_INCH;
|
||||
move = static_cast<float>(dev->model->y_offset);
|
||||
move = static_cast<float>(move + dev->settings.tl_y);
|
||||
move = static_cast<float>((move * move_dpi) / MM_PER_INCH);
|
||||
move -= dev->scanhead_position_in_steps;
|
||||
DBG(DBG_info, "%s: move=%f steps\n", __func__, move);
|
||||
|
||||
|
@ -1430,7 +1430,7 @@ void CommandSetGl846::init_regs_for_scan(Genesys_Device* dev, const Genesys_Sens
|
|||
* move tuning */
|
||||
if (dev->settings.get_channels() * dev->settings.yres >= 600 && move > 700)
|
||||
{
|
||||
gl846_feed(dev, move-500);
|
||||
gl846_feed(dev, static_cast<unsigned>(move - 500));
|
||||
move=500;
|
||||
}
|
||||
|
||||
|
@ -1438,15 +1438,15 @@ void CommandSetGl846::init_regs_for_scan(Genesys_Device* dev, const Genesys_Sens
|
|||
DBG(DBG_info, "%s: move=%f steps\n", __func__, move);
|
||||
|
||||
/* start */
|
||||
start = dev->model->x_offset;
|
||||
start += dev->settings.tl_x;
|
||||
start = (start * sensor.optical_res) / MM_PER_INCH;
|
||||
start = static_cast<float>(dev->model->x_offset);
|
||||
start = static_cast<float>(start + dev->settings.tl_x);
|
||||
start = static_cast<float>((start * sensor.optical_res) / MM_PER_INCH);
|
||||
|
||||
ScanSession session;
|
||||
session.params.xres = dev->settings.xres;
|
||||
session.params.yres = dev->settings.yres;
|
||||
session.params.startx = start;
|
||||
session.params.starty = move;
|
||||
session.params.startx = static_cast<unsigned>(start);
|
||||
session.params.starty = static_cast<unsigned>(move);
|
||||
session.params.pixels = dev->settings.pixels;
|
||||
session.params.requested_pixels = dev->settings.requested_pixels;
|
||||
session.params.lines = dev->settings.lines;
|
||||
|
@ -1554,13 +1554,12 @@ SensorExposure CommandSetGl846::led_calibration(Genesys_Device* dev, const Genes
|
|||
int avg[3], top[3], bottom[3];
|
||||
int turn;
|
||||
uint16_t exp[3];
|
||||
float move;
|
||||
|
||||
move = dev->model->y_offset_calib_white;
|
||||
move = (move * (dev->motor.base_ydpi/4)) / MM_PER_INCH;
|
||||
float move = static_cast<float>(dev->model->y_offset_calib_white);
|
||||
move = static_cast<float>((move * (dev->motor.base_ydpi / 4)) / MM_PER_INCH);
|
||||
if(move>20)
|
||||
{
|
||||
gl846_feed(dev, move);
|
||||
gl846_feed(dev, static_cast<unsigned>(move));
|
||||
}
|
||||
DBG(DBG_io, "%s: move=%f steps\n", __func__, move);
|
||||
|
||||
|
@ -2260,7 +2259,7 @@ void CommandSetGl846::coarse_gain_calibration(Genesys_Device* dev, const Genesys
|
|||
/* follow CKSEL */
|
||||
if(dev->settings.xres<sensor.optical_res)
|
||||
{
|
||||
coeff=0.9;
|
||||
coeff = 0.9f;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -2329,7 +2328,7 @@ void CommandSetGl846::coarse_gain_calibration(Genesys_Device* dev, const Genesys
|
|||
gain[j] = (static_cast<float>(sensor.gain_white_ref) * coeff) / max[j];
|
||||
|
||||
/* turn logical gain value into gain code, checking for overflow */
|
||||
code = 283 - 208 / gain[j];
|
||||
code = static_cast<int>(283 - 208 / gain[j]);
|
||||
if (code > 255)
|
||||
code = 255;
|
||||
else if (code < 0)
|
||||
|
|
|
@ -857,9 +857,9 @@ void CommandSetGl847::calculate_current_setup(Genesys_Device * dev,
|
|||
debug_dump(DBG_info, dev->settings);
|
||||
|
||||
/* start */
|
||||
start = dev->model->x_offset;
|
||||
start += dev->settings.tl_x;
|
||||
start = (start * sensor.optical_res) / MM_PER_INCH;
|
||||
start = static_cast<int>(dev->model->x_offset);
|
||||
start = static_cast<int>(start + dev->settings.tl_x);
|
||||
start = static_cast<int>((start * sensor.optical_res) / MM_PER_INCH);
|
||||
|
||||
ScanSession session;
|
||||
session.params.xres = dev->settings.xres;
|
||||
|
@ -1403,7 +1403,7 @@ void CommandSetGl847::init_regs_for_shading(Genesys_Device* dev, const Genesys_S
|
|||
session.params.xres = dev->calib_resolution;
|
||||
session.params.yres = dev->calib_resolution;
|
||||
session.params.startx = 0;
|
||||
session.params.starty = move;
|
||||
session.params.starty = static_cast<unsigned>(move);
|
||||
session.params.pixels = dev->calib_pixels;
|
||||
session.params.lines = dev->calib_lines;
|
||||
session.params.depth = 16;
|
||||
|
@ -1457,9 +1457,9 @@ void CommandSetGl847::init_regs_for_scan(Genesys_Device* dev, const Genesys_Sens
|
|||
|
||||
move_dpi = dev->motor.base_ydpi;
|
||||
|
||||
move = dev->model->y_offset;
|
||||
move += dev->settings.tl_y;
|
||||
move = (move * move_dpi) / MM_PER_INCH;
|
||||
move = static_cast<float>(dev->model->y_offset);
|
||||
move = static_cast<float>(move + dev->settings.tl_y);
|
||||
move = static_cast<float>((move * move_dpi) / MM_PER_INCH);
|
||||
move -= dev->scanhead_position_in_steps;
|
||||
DBG(DBG_info, "%s: move=%f steps\n", __func__, move);
|
||||
|
||||
|
@ -1469,7 +1469,7 @@ void CommandSetGl847::init_regs_for_scan(Genesys_Device* dev, const Genesys_Sens
|
|||
* resolution. So leave a remainder for it so scan makes the final
|
||||
* move tuning */
|
||||
if (dev->settings.get_channels() * dev->settings.yres >= 600 && move > 700) {
|
||||
gl847_feed(dev, move-500);
|
||||
gl847_feed(dev, static_cast<unsigned>(move - 500));
|
||||
move=500;
|
||||
}
|
||||
|
||||
|
@ -1477,15 +1477,15 @@ void CommandSetGl847::init_regs_for_scan(Genesys_Device* dev, const Genesys_Sens
|
|||
DBG(DBG_info, "%s: move=%f steps\n", __func__, move);
|
||||
|
||||
/* start */
|
||||
start = dev->model->x_offset;
|
||||
start += dev->settings.tl_x;
|
||||
start = (start * sensor.optical_res) / MM_PER_INCH;
|
||||
start = static_cast<float>(dev->model->x_offset);
|
||||
start = static_cast<float>(start + dev->settings.tl_x);
|
||||
start = static_cast<float>((start * sensor.optical_res) / MM_PER_INCH);
|
||||
|
||||
ScanSession session;
|
||||
session.params.xres = dev->settings.xres;
|
||||
session.params.yres = dev->settings.yres;
|
||||
session.params.startx = start;
|
||||
session.params.starty = move;
|
||||
session.params.startx = static_cast<unsigned>(start);
|
||||
session.params.starty = static_cast<unsigned>(move);
|
||||
session.params.pixels = dev->settings.pixels;
|
||||
session.params.requested_pixels = dev->settings.requested_pixels;
|
||||
session.params.lines = dev->settings.lines;
|
||||
|
@ -1595,11 +1595,11 @@ SensorExposure CommandSetGl847::led_calibration(Genesys_Device* dev, const Genes
|
|||
uint16_t exp[3];
|
||||
float move;
|
||||
|
||||
move = dev->model->y_offset_calib_white;
|
||||
move = (move * (dev->motor.base_ydpi/4)) / MM_PER_INCH;
|
||||
move = static_cast<float>(dev->model->y_offset_calib_white);
|
||||
move = static_cast<float>((move * (dev->motor.base_ydpi / 4)) / MM_PER_INCH);
|
||||
if(move>20)
|
||||
{
|
||||
gl847_feed(dev, move);
|
||||
gl847_feed(dev, static_cast<unsigned>(move));
|
||||
}
|
||||
DBG(DBG_io, "%s: move=%f steps\n", __func__, move);
|
||||
|
||||
|
@ -2040,8 +2040,9 @@ void CommandSetGl847::search_strip(Genesys_Device* dev, const Genesys_Sensor& se
|
|||
|
||||
if (DBG_LEVEL >= DBG_data)
|
||||
{
|
||||
sprintf(title, "gl847_search_strip_%s_%s%02d.pnm",
|
||||
black ? "black" : "white", forward ? "fwd" : "bwd", (int)pass);
|
||||
std::sprintf(title, "gl847_search_strip_%s_%s%02d.pnm",
|
||||
black ? "black" : "white",
|
||||
forward ? "fwd" : "bwd", static_cast<int>(pass));
|
||||
sanei_genesys_write_pnm_file(title, data.data(), session.params.depth,
|
||||
channels, pixels, lines);
|
||||
}
|
||||
|
@ -2334,7 +2335,7 @@ void CommandSetGl847::coarse_gain_calibration(Genesys_Device* dev, const Genesys
|
|||
/* follow CKSEL */
|
||||
if(dev->settings.xres<sensor.optical_res)
|
||||
{
|
||||
coeff=0.9;
|
||||
coeff = 0.9f;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -2404,7 +2405,7 @@ void CommandSetGl847::coarse_gain_calibration(Genesys_Device* dev, const Genesys
|
|||
gain[j] = (static_cast<float>(sensor.gain_white_ref) * coeff) / max[j];
|
||||
|
||||
/* turn logical gain value into gain code, checking for overflow */
|
||||
code = 283 - 208 / gain[j];
|
||||
code = static_cast<int>(283 - 208 / gain[j]);
|
||||
if (code > 255)
|
||||
code = 255;
|
||||
else if (code < 0)
|
||||
|
|
|
@ -205,17 +205,17 @@ void set_pixel_to_row(std::uint8_t* data, std::size_t x, Pixel pixel, PixelForma
|
|||
}
|
||||
case PixelFormat::I8: {
|
||||
float val = (pixel.r >> 8) * 0.3f;
|
||||
val += (pixel.g >> 8) * 0.59;
|
||||
val += (pixel.b >> 8) * 0.11;
|
||||
val += (pixel.g >> 8) * 0.59f;
|
||||
val += (pixel.b >> 8) * 0.11f;
|
||||
data[x] = static_cast<std::uint16_t>(val);
|
||||
return;
|
||||
}
|
||||
case PixelFormat::I16: {
|
||||
x *= 2;
|
||||
float val = pixel.r * 0.3f;
|
||||
val += pixel.g * 0.59;
|
||||
val += pixel.b * 0.11;
|
||||
std::uint16_t val16 = val;
|
||||
val += pixel.g * 0.59f;
|
||||
val += pixel.b * 0.11f;
|
||||
auto val16 = static_cast<std::uint16_t>(val);
|
||||
data[x] = val16 & 0xff;
|
||||
data[x + 1] = (val16 >> 8) & 0xff;
|
||||
return;
|
||||
|
|
|
@ -1833,7 +1833,7 @@ std::uint8_t compute_frontend_gain_wolfson(float value, float target_value)
|
|||
{PGA} = 283 * (1 - {value} / {target_value})
|
||||
*/
|
||||
float gain = value / target_value;
|
||||
int code = 283 * (1 - gain);
|
||||
int code = static_cast<int>(283 * (1 - gain));
|
||||
return clamp(code, 0, 255);
|
||||
}
|
||||
|
||||
|
@ -2435,7 +2435,7 @@ void sanei_genesys_load_lut(unsigned char* lut,
|
|||
|
||||
for (i = 0; i <= max_in_val; i++)
|
||||
{
|
||||
j = rise * i + shift;
|
||||
j = static_cast<int>(rise * i + shift);
|
||||
|
||||
/* cap data to required range */
|
||||
if (j < out_min)
|
||||
|
|
Ładowanie…
Reference in New Issue