diff --git a/backend/genesys/genesys.cpp b/backend/genesys/genesys.cpp index 306684b42..1ff8eba5c 100644 --- a/backend/genesys/genesys.cpp +++ b/backend/genesys/genesys.cpp @@ -1047,13 +1047,12 @@ void scanner_stop_action_no_move(Genesys_Device& dev, genesys::Genesys_Register_ dev.interface->sleep_ms(100); } -void scanner_move(Genesys_Device& dev, unsigned steps, Direction direction) +void scanner_move(Genesys_Device& dev, ScanMethod scan_method, unsigned steps, Direction direction) { DBG_HELPER_ARGS(dbg, "steps=%d direction=%d", steps, static_cast(direction)); auto local_reg = dev.reg; - auto scan_method = dev.model->default_method; unsigned resolution = dev.model->get_resolution_settings(scan_method).get_min_resolution_y(); const auto& sensor = sanei_genesys_find_sensor(&dev, resolution, 3, scan_method); @@ -1109,7 +1108,6 @@ void scanner_move(Genesys_Device& dev, unsigned steps, Direction direction) if (is_testing_mode()) { dev.interface->test_checkpoint("feed"); - // FIXME: why don't we stop the scanner like on other ASICs if (dev.model->asic_type != AsicType::GL843) { scanner_stop_action(dev); @@ -1170,7 +1168,7 @@ void scanner_move_back_home(Genesys_Device& dev, bool wait_until_home) if (dev.model->model_id == ModelId::CANON_LIDE_210) { // move the head back a little first - scanner_move(dev, 20, Direction::BACKWARD); + scanner_move(dev, dev.model->default_method, 20, Direction::BACKWARD); } Genesys_Register_Set local_reg = dev.reg; diff --git a/backend/genesys/gl124.cpp b/backend/genesys/gl124.cpp index b74bda9bf..eb5a23653 100644 --- a/backend/genesys/gl124.cpp +++ b/backend/genesys/gl124.cpp @@ -1351,7 +1351,8 @@ void CommandSetGl124::init_regs_for_scan(Genesys_Device* dev, const Genesys_Sens DBG (DBG_info, "%s: move=%f steps\n", __func__, move); if (dev->settings.get_channels() * dev->settings.yres >= 600 && move > 700) { - scanner_move(*dev, static_cast(move - 500), Direction::FORWARD); + scanner_move(*dev, dev->model->default_method, static_cast(move - 500), + Direction::FORWARD); move=500; } DBG(DBG_info, "%s: move=%f steps\n", __func__, move); diff --git a/backend/genesys/gl843.cpp b/backend/genesys/gl843.cpp index d01dc91c6..842c72a24 100644 --- a/backend/genesys/gl843.cpp +++ b/backend/genesys/gl843.cpp @@ -2730,7 +2730,7 @@ void CommandSetGl843::asic_boot(Genesys_Device* dev, bool cold) const // setup gpio gl843_init_gpio(dev); - scanner_move(*dev, 300, Direction::FORWARD); + scanner_move(*dev, dev->model->default_method, 300, Direction::FORWARD); dev->interface->sleep_ms(100); } @@ -2790,7 +2790,7 @@ void CommandSetGl843::move_to_ta(Genesys_Device* dev) const } unsigned feed = static_cast(multiplier * (dev->model->y_offset_sensor_to_ta * resolution) / MM_PER_INCH); - scanner_move(*dev, feed, Direction::FORWARD); + scanner_move(*dev, dev->model->default_method, feed, Direction::FORWARD); } diff --git a/backend/genesys/gl846.cpp b/backend/genesys/gl846.cpp index 0adf224c5..37437965f 100644 --- a/backend/genesys/gl846.cpp +++ b/backend/genesys/gl846.cpp @@ -1101,7 +1101,8 @@ void CommandSetGl846::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) { - scanner_move(*dev, static_cast(move - 500), Direction::FORWARD); + scanner_move(*dev, dev->model->default_method, static_cast(move - 500), + Direction::FORWARD); move=500; } @@ -1235,7 +1236,8 @@ SensorExposure CommandSetGl846::led_calibration(Genesys_Device* dev, const Genes move = static_cast((move * (dev->motor.base_ydpi / 4)) / MM_PER_INCH); if(move>20) { - scanner_move(*dev, static_cast(move), Direction::FORWARD); + scanner_move(*dev, dev->model->default_method, static_cast(move), + Direction::FORWARD); } DBG(DBG_io, "%s: move=%f steps\n", __func__, move); diff --git a/backend/genesys/gl847.cpp b/backend/genesys/gl847.cpp index 65a2585dc..89a317fce 100644 --- a/backend/genesys/gl847.cpp +++ b/backend/genesys/gl847.cpp @@ -1135,7 +1135,8 @@ 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) { - scanner_move(*dev, static_cast(move - 500), Direction::FORWARD); + scanner_move(*dev, dev->model->default_method, static_cast(move - 500), + Direction::FORWARD); move=500; } @@ -1269,7 +1270,8 @@ SensorExposure CommandSetGl847::led_calibration(Genesys_Device* dev, const Genes move = static_cast(dev->model->y_offset_calib_white); move = static_cast((move * (dev->motor.base_ydpi / 4)) / MM_PER_INCH); if (move > 20) { - scanner_move(*dev, static_cast(move), Direction::FORWARD); + scanner_move(*dev, dev->model->default_method, static_cast(move), + Direction::FORWARD); } DBG(DBG_io, "%s: move=%f steps\n", __func__, move); diff --git a/backend/genesys/low.h b/backend/genesys/low.h index 986df051a..bbe460906 100644 --- a/backend/genesys/low.h +++ b/backend/genesys/low.h @@ -353,7 +353,7 @@ extern void sanei_genesys_search_reference_point(Genesys_Device* dev, Genesys_Se int width, int height); // moves the scan head by the specified steps at the motor base dpi -void scanner_move(Genesys_Device& dev, unsigned steps, Direction direction); +void scanner_move(Genesys_Device& dev, ScanMethod scan_method, unsigned steps, Direction direction); void scanner_move_back_home(Genesys_Device& dev, bool wait_until_home); void scanner_move_back_home_ta(Genesys_Device& dev);