genesys: Rename read_bytes_left -> read_bytes_left_after_deseg

merge-requests/160/head
Povilas Kanapickas 2019-09-12 20:06:38 +03:00
rodzic 96a893bb0d
commit 88d6cdcc32
8 zmienionych plików z 60 dodań i 55 usunięć

Wyświetl plik

@ -3562,9 +3562,8 @@ static void genesys_fill_read_buffer(Genesys_Device* dev)
/* Some setups need the reads to be multiples of 256 bytes */
size &= ~0xff;
if (dev->read_bytes_left < size)
{
size = dev->read_bytes_left;
if (dev->read_bytes_left_after_deseg < size) {
size = dev->read_bytes_left_after_deseg;
/*round up to a multiple of 256 bytes */
size += (size & 0xff) ? 0x100 : 0x00;
size &= ~0xff;
@ -3604,10 +3603,11 @@ static void genesys_fill_read_buffer(Genesys_Device* dev)
dev->cmd_set->bulk_read_data(dev, 0x45, work_buffer_dst, size);
}
if (size > dev->read_bytes_left)
size = dev->read_bytes_left;
if (size > dev->read_bytes_left_after_deseg) {
size = dev->read_bytes_left_after_deseg;
}
dev->read_bytes_left -= size;
dev->read_bytes_left_after_deseg -= size;
dev->read_buffer.produce(size);
}
@ -3695,9 +3695,9 @@ static void genesys_read_ordered_data(Genesys_Device* dev, SANE_Byte* destinatio
DBG(DBG_info, "%s: %lu lines left by output\n", __func__,
((dev->total_bytes_to_read - dev->total_bytes_read) * 8UL) /
(dev->settings.requested_pixels * channels * depth));
DBG(DBG_info, "%s: %lu lines left by input\n", __func__,
((dev->read_bytes_left + dev->read_buffer.avail()) * 8UL) /
(src_pixels * channels * depth));
DBG(DBG_info, "%s: %lu lines left by input\n", __func__,
((dev->read_bytes_left_after_deseg + dev->read_buffer.avail()) * 8UL) /
(src_pixels * channels * depth));
if (channels == 1)
{
@ -6524,7 +6524,8 @@ sane_read_impl(SANE_Handle handle, SANE_Byte * buf, SANE_Int max_len, SANE_Int*
DBG(DBG_proc, "%s: start, %d maximum bytes required\n", __func__, max_len);
DBG(DBG_io2, "%s: bytes_to_read=%lu, total_bytes_read=%lu\n", __func__,
(u_long) dev->total_bytes_to_read, (u_long) dev->total_bytes_read);
DBG(DBG_io2, "%s: physical bytes to read = %lu\n", __func__, (u_long) dev->read_bytes_left);
DBG(DBG_io2, "%s: desegmented bytes to read = %lu\n", __func__,
(u_long) dev->read_bytes_left_after_deseg);
if(dev->total_bytes_read>=dev->total_bytes_to_read)
{

Wyświetl plik

@ -282,8 +282,9 @@ struct Genesys_Device
// local buffer for gray data during dynamix lineart
Genesys_Buffer local_buffer;
// bytes to read from scanner
size_t read_bytes_left = 0;
// bytes to read from desegmentation step. This is not the same as physical bytes read from
// scanners, see `wpl` which corresponds to this information on certain scanners.
size_t read_bytes_left_after_deseg = 0;
// total bytes read sent to frontend
size_t total_bytes_read = 0;

Wyświetl plik

@ -1145,9 +1145,10 @@ static void gl124_init_scan_regs(Genesys_Device* dev, const Genesys_Sensor& sens
dev->out_buffer.clear();
dev->out_buffer.alloc((8 * dev->settings.pixels * session.params.channels * session.params.depth) / 8);
dev->read_bytes_left = session.output_line_bytes * session.output_line_count;
dev->read_bytes_left_after_deseg = session.output_line_bytes * session.output_line_count;
DBG(DBG_info, "%s: physical bytes to read = %lu\n", __func__, (u_long) dev->read_bytes_left);
DBG(DBG_info, "%s: desegmented bytes to read = %lu\n", __func__,
(u_long) dev->read_bytes_left_after_deseg);
dev->read_active = SANE_TRUE;
dev->session = session;

Wyświetl plik

@ -742,9 +742,10 @@ static void gl646_setup_registers(Genesys_Device* dev,
/* scan bytes to read */
unsigned cis_channel_multiplier = dev->model->is_cis ? session.params.channels : 1;
dev->read_bytes_left = session.output_line_bytes * session.output_line_count * cis_channel_multiplier;
dev->read_bytes_left_after_deseg = session.output_line_bytes * session.output_line_count * cis_channel_multiplier;
DBG(DBG_info, "%s: physical bytes to read = %lu\n", __func__, (u_long) dev->read_bytes_left);
DBG(DBG_info, "%s: desegmented bytes to read = %lu\n", __func__,
(u_long) dev->read_bytes_left_after_deseg);
dev->read_active = SANE_TRUE;
dev->session = session;
@ -1511,7 +1512,7 @@ static void gl646_detect_document_end(Genesys_Device* dev)
*/
DBG(DBG_io, "%s: total_bytes_to_read=%lu\n", __func__, (u_long) dev->total_bytes_to_read);
DBG(DBG_io, "%s: total_bytes_read =%lu\n", __func__, (u_long) dev->total_bytes_read);
DBG(DBG_io, "%s: read_bytes_left =%lu\n", __func__, (u_long) dev->read_bytes_left);
DBG(DBG_io, "%s: read_bytes_left_after_deseg =%lu\n", __func__, (u_long) dev->read_bytes_left_after_deseg);
// amount of data available from scanner is what to scan
sanei_genesys_read_valid_words(dev, &bytes_left);
@ -1526,14 +1527,13 @@ static void gl646_detect_document_end(Genesys_Device* dev)
if (dev->session.params.channels > 1) {
bytes_left = 3 * bytes_left;
}
if (bytes_left < dev->read_bytes_left)
{
dev->total_bytes_to_read = dev->total_bytes_read + bytes_left;
dev->read_bytes_left = bytes_left;
}
if (bytes_left < dev->read_bytes_left_after_deseg) {
dev->total_bytes_to_read = dev->total_bytes_read + bytes_left;
dev->read_bytes_left_after_deseg = bytes_left;
}
DBG(DBG_io, "%s: total_bytes_to_read=%lu\n", __func__, (u_long) dev->total_bytes_to_read);
DBG(DBG_io, "%s: total_bytes_read =%lu\n", __func__, (u_long) dev->total_bytes_read);
DBG(DBG_io, "%s: read_bytes_left =%lu\n", __func__, (u_long) dev->read_bytes_left);
DBG(DBG_io, "%s: read_bytes_left =%lu\n", __func__, (u_long) dev->read_bytes_left_after_deseg);
}
}

Wyświetl plik

@ -1902,9 +1902,10 @@ dummy \ scanned lines
dev->out_buffer.clear();
dev->out_buffer.alloc((8 * dev->settings.pixels * session.params.channels * session.params.depth) / 8);
dev->read_bytes_left = session.output_line_bytes * session.output_line_count;
dev->read_bytes_left_after_deseg = session.output_line_bytes * session.output_line_count;
DBG(DBG_info, "%s: physical bytes to read = %lu\n", __func__, (u_long) dev->read_bytes_left);
DBG(DBG_info, "%s: desegmented bytes to read = %lu\n", __func__,
(u_long) dev->read_bytes_left_after_deseg);
dev->read_active = SANE_TRUE;
dev->session = session;
@ -2433,7 +2434,7 @@ static void gl841_detect_document_end(Genesys_Device* dev)
sanei_genesys_read_scancnt(dev, &scancnt);
} catch (...) {
dev->total_bytes_to_read = dev->total_bytes_read;
dev->read_bytes_left = 0;
dev->read_bytes_left_after_deseg = 0;
throw;
}

Wyświetl plik

@ -1322,9 +1322,10 @@ static void gl843_init_scan_regs(Genesys_Device* dev, const Genesys_Sensor& sens
dev->out_buffer.alloc((8 * session.params.pixels * session.params.channels *
session.params.depth) / 8);
dev->read_bytes_left = session.output_line_bytes * session.output_line_count;
dev->read_bytes_left_after_deseg = session.output_line_bytes * session.output_line_count;
DBG(DBG_info, "%s: physical bytes to read = %lu\n", __func__, (u_long) dev->read_bytes_left);
DBG(DBG_info, "%s: physical bytes to read = %lu\n", __func__,
(u_long) dev->read_bytes_left_after_deseg);
dev->read_active = SANE_TRUE;
dev->session = session;
@ -1569,7 +1570,7 @@ static void gl843_detect_document_end(Genesys_Device* dev)
unsigned channels = dev->session.params.channels;
unsigned depth = dev->session.params.depth;
read_bytes_left = (int) dev->read_bytes_left;
read_bytes_left = (int) dev->read_bytes_left_after_deseg;
DBG(DBG_io, "%s: read_bytes_left=%d\n", __func__, read_bytes_left);
// get lines read
@ -1641,16 +1642,13 @@ static void gl843_detect_document_end(Genesys_Device* dev)
dev->total_bytes_to_read -= sub_bytes;
/* then adjust the physical bytes to read */
if (read_bytes_left > sub_bytes)
{
dev->read_bytes_left -= sub_bytes;
}
else
{
dev->total_bytes_to_read = dev->total_bytes_read;
dev->read_bytes_left = 0;
}
/* then adjust the desegmented bytes to read */
if (read_bytes_left > sub_bytes) {
dev->read_bytes_left_after_deseg -= sub_bytes;
} else {
dev->total_bytes_to_read = dev->total_bytes_read;
dev->read_bytes_left_after_deseg = 0;
}
DBG(DBG_io, "%s: sublines=%d\n", __func__, sublines);
DBG(DBG_io, "%s: subbytes=%d\n", __func__, sub_bytes);
@ -2154,7 +2152,7 @@ static void gl843_search_start_position(Genesys_Device* dev)
// send to scanner
dev->write_registers(local_reg);
size = dev->read_bytes_left;
size = dev->read_bytes_left_after_deseg;
std::vector<uint8_t> data(size);
@ -2392,7 +2390,7 @@ static void gl843_init_regs_for_shading(Genesys_Device* dev, const Genesys_Senso
// the pixel number may be updated to conform to scanner constraints
dev->calib_pixels = dev->current_setup.pixels;
dev->calib_total_bytes_to_read = dev->read_bytes_left;
dev->calib_total_bytes_to_read = dev->read_bytes_left_after_deseg;
dev->scanhead_position_in_steps += dev->calib_lines + move;
@ -2574,7 +2572,7 @@ static SensorExposure gl843_led_calibration(Genesys_Device* dev, const Genesys_S
dev->write_registers(regs);
total_size = dev->read_bytes_left;
total_size = dev->read_bytes_left_after_deseg;
std::vector<uint8_t> line(total_size);
@ -2812,8 +2810,8 @@ static void gl843_offset_calibration(Genesys_Device* dev, const Genesys_Sensor&
sanei_genesys_set_motor_power(regs, false);
/* allocate memory for scans */
total_size = dev->read_bytes_left;
// allocate memory for scans
total_size = dev->read_bytes_left_after_deseg;
std::vector<uint8_t> first_line(total_size);
std::vector<uint8_t> second_line(total_size);
@ -3042,7 +3040,7 @@ static void gl843_coarse_gain_calibration(Genesys_Device* dev, const Genesys_Sen
dev->write_registers(regs);
total_size = dev->read_bytes_left;
total_size = dev->read_bytes_left_after_deseg;
std::vector<uint8_t> line(total_size);
@ -3417,7 +3415,7 @@ static void gl843_search_strip(Genesys_Device* dev, const Genesys_Sensor& sensor
gl843_init_scan_regs(dev, calib_sensor, &local_reg, session);
size = dev->read_bytes_left;
size = dev->read_bytes_left_after_deseg;
std::vector<uint8_t> data(size);
/* set up for reverse or forward */

Wyświetl plik

@ -726,7 +726,7 @@ static void gl846_init_optical_regs_scan(Genesys_Device* dev, const Genesys_Sens
{
DBG_HELPER_ARGS(dbg, "exposure_time=%d, start=%d", exposure_time, start);
unsigned int words_per_line;
unsigned int dpiset, dpihw, segnb, factor;
unsigned int dpihw, segnb, factor;
GenesysRegister *r;
// resolution is divided according to ccd_pixels_per_system_pixel()
@ -742,7 +742,6 @@ static void gl846_init_optical_regs_scan(Genesys_Device* dev, const Genesys_Sens
// sensor parameters
const auto& sensor_profile = get_sensor_profile(sensor, dpihw);
gl846_setup_sensor(dev, sensor, reg, dpihw);
dpiset = session.params.xres * ccd_pixels_per_system_pixel ;
// start and end coordinate in optical dpi coordinates
unsigned startx = start / ccd_pixels_per_system_pixel + sensor.CCD_start_xoffset;
@ -871,7 +870,7 @@ static void gl846_init_optical_regs_scan(Genesys_Device* dev, const Genesys_Sens
}
/* words(16bit) before gamma, conversion to 8 bit or lineart*/
words_per_line = (used_pixels * dpiset) / dpihw;
words_per_line = (used_pixels * session.params.xres * ccd_pixels_per_system_pixel) / sensor.get_register_hwdpi(session.params.xres * ccd_pixels_per_system_pixel);
words_per_line = multiply_by_depth_ceil(words_per_line, session.params.depth);
dev->len = multiply_by_depth_ceil(dev->len, session.params.depth);
dev->dist = multiply_by_depth_ceil(dev->dist, session.params.depth);
@ -881,8 +880,9 @@ static void gl846_init_optical_regs_scan(Genesys_Device* dev, const Genesys_Sens
dev->segnb=segnb;
dev->line_interp = 0;
reg->set16(REG_DPISET,dpiset);
DBG (DBG_io2, "%s: dpiset used=%d\n", __func__, dpiset);
unsigned dpiset = session.params.xres * ccd_pixels_per_system_pixel;
reg->set16(REG_DPISET, dpiset);
DBG(DBG_io2, "%s: dpiset used=%d\n", __func__, dpiset);
reg->set16(REG_STRPIXEL,startx);
reg->set16(REG_ENDPIXEL,endx);
@ -1027,9 +1027,10 @@ static void gl846_init_scan_regs(Genesys_Device* dev, const Genesys_Sensor& sens
dev->out_buffer.clear();
dev->out_buffer.alloc((8 * session.params.pixels * session.params.channels * session.params.depth) / 8);
dev->read_bytes_left = session.output_line_bytes * session.output_line_count;
dev->read_bytes_left_after_deseg = session.output_line_bytes * session.output_line_count;
DBG(DBG_info, "%s: physical bytes to read = %lu\n", __func__, (u_long) dev->read_bytes_left);
DBG(DBG_info, "%s: desegmented bytes to read = %lu\n", __func__,
(u_long) dev->read_bytes_left_after_deseg);
dev->read_active = SANE_TRUE;
dev->session = session;

Wyświetl plik

@ -1041,9 +1041,11 @@ static void gl847_init_scan_regs(Genesys_Device* dev, const Genesys_Sensor& sens
dev->out_buffer.clear();
dev->out_buffer.alloc((8 * session.params.pixels * session.params.channels * session.params.depth) / 8);
dev->read_bytes_left = session.output_line_bytes * session.output_line_count;
dev->read_bytes_left_after_deseg = session.output_line_bytes * session.output_line_count;
DBG(DBG_info, "%s: desegment bytes to read = %lu\n", __func__,
(u_long) dev->read_bytes_left_after_deseg);
DBG(DBG_info, "%s: physical bytes to read = %lu\n", __func__, (u_long) dev->read_bytes_left);
dev->read_active = SANE_TRUE;
dev->session = session;