kopia lustrzana https://gitlab.com/sane-project/backends
genesys: Rename read_bytes_left -> read_bytes_left_after_deseg
rodzic
96a893bb0d
commit
88d6cdcc32
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
Ładowanie…
Reference in New Issue