kopia lustrzana https://gitlab.com/sane-project/backends
genesys: Move motor direction register adjustment to low level functions
rodzic
50149e9064
commit
3ada79c35a
|
@ -425,6 +425,7 @@ enum class ScanFlag : unsigned
|
|||
USE_XPA = 1 << 8,
|
||||
ENABLE_LEDADD = 1 << 9,
|
||||
USE_XCORRECTION = 1 << 10,
|
||||
REVERSE = 1 << 11,
|
||||
};
|
||||
|
||||
inline ScanFlag operator|(ScanFlag left, ScanFlag right)
|
||||
|
@ -472,6 +473,7 @@ enum class MotorFlag : unsigned
|
|||
DISABLE_BUFFER_FULL_MOVE = 1 << 2,
|
||||
FEED = 1 << 3,
|
||||
USE_XPA = 1 << 4,
|
||||
REVERSE = 1 << 5,
|
||||
};
|
||||
|
||||
inline MotorFlag operator|(MotorFlag left, MotorFlag right)
|
||||
|
|
|
@ -576,6 +576,9 @@ static void gl124_init_motor_regs_scan(Genesys_Device* dev,
|
|||
{
|
||||
r02 |= REG_0x02_ACDCDIS;
|
||||
}
|
||||
if (has_flag(flags, MotorFlag::REVERSE)) {
|
||||
r02 |= REG_0x02_MTRREV;
|
||||
}
|
||||
|
||||
reg->set8(REG_0x02, r02);
|
||||
sanei_genesys_set_motor_power(*reg, true);
|
||||
|
@ -933,6 +936,9 @@ static void gl124_init_scan_regs(Genesys_Device* dev, const Genesys_Sensor& sens
|
|||
if (has_flag(session.params.flags, ScanFlag::FEEDING)) {
|
||||
mflags |= MotorFlag::FEED;
|
||||
}
|
||||
if (has_flag(session.params.flags, ScanFlag::REVERSE)) {
|
||||
mflags |= MotorFlag::REVERSE;
|
||||
}
|
||||
gl124_init_motor_regs_scan(dev, sensor, reg, motor_profile, exposure_time, slope_dpi,
|
||||
dev->model->is_cis ? session.output_line_count * session.params.channels :
|
||||
session.output_line_count,
|
||||
|
@ -1204,7 +1210,6 @@ void CommandSetGl124::slow_back_home(Genesys_Device* dev, bool wait_until_home)
|
|||
{
|
||||
DBG_HELPER_ARGS(dbg, "wait_until_home = %d", wait_until_home);
|
||||
Genesys_Register_Set local_reg;
|
||||
GenesysRegister *r;
|
||||
uint8_t val;
|
||||
int loop = 0;
|
||||
|
||||
|
@ -1260,7 +1265,8 @@ void CommandSetGl124::slow_back_home(Genesys_Device* dev, bool wait_until_home)
|
|||
session.params.color_filter = ColorFilter::RED;
|
||||
session.params.flags = ScanFlag::DISABLE_SHADING |
|
||||
ScanFlag::DISABLE_GAMMA |
|
||||
ScanFlag::IGNORE_LINE_DISTANCE;
|
||||
ScanFlag::IGNORE_LINE_DISTANCE |
|
||||
ScanFlag::REVERSE;
|
||||
compute_session(dev, session, sensor);
|
||||
|
||||
gl124_init_scan_regs(dev, sensor, &local_reg, session);
|
||||
|
@ -1268,9 +1274,6 @@ void CommandSetGl124::slow_back_home(Genesys_Device* dev, bool wait_until_home)
|
|||
// clear scan and feed count
|
||||
dev->interface->write_register(REG_0x0D, REG_0x0D_CLRLNCNT | REG_0x0D_CLRMCNT);
|
||||
|
||||
/* set up for reverse and no scan */
|
||||
r = sanei_genesys_get_address(&local_reg, REG_0x02);
|
||||
r->value |= REG_0x02_MTRREV;
|
||||
|
||||
dev->interface->write_registers(local_reg);
|
||||
|
||||
|
@ -1356,6 +1359,9 @@ static void gl124_feed(Genesys_Device* dev, unsigned int steps, int reverse)
|
|||
ScanFlag::FEEDING |
|
||||
ScanFlag::DISABLE_BUFFER_FULL_MOVE |
|
||||
ScanFlag::IGNORE_LINE_DISTANCE;
|
||||
if (reverse) {
|
||||
session.params.flags |= ScanFlag::REVERSE;
|
||||
}
|
||||
compute_session(dev, session, sensor);
|
||||
|
||||
gl124_init_scan_regs(dev, sensor, &local_reg, session);
|
||||
|
@ -1372,13 +1378,6 @@ static void gl124_feed(Genesys_Device* dev, unsigned int steps, int reverse)
|
|||
r = sanei_genesys_get_address (&local_reg, REG_0x01);
|
||||
r->value &= ~REG_0x01_SCAN;
|
||||
|
||||
/* set up for reverse if needed */
|
||||
if(reverse)
|
||||
{
|
||||
r = sanei_genesys_get_address (&local_reg, REG_0x02);
|
||||
r->value |= REG_0x02_MTRREV;
|
||||
}
|
||||
|
||||
// send registers
|
||||
dev->interface->write_registers(local_reg);
|
||||
|
||||
|
|
|
@ -303,7 +303,12 @@ static void gl646_setup_registers(Genesys_Device* dev,
|
|||
|
||||
/* setup motor power and direction */
|
||||
sanei_genesys_set_motor_power(*regs, true);
|
||||
regs->find_reg(0x02).value &= ~REG_0x02_MTRREV;
|
||||
|
||||
if (has_flag(session.params.flags, ScanFlag::REVERSE)) {
|
||||
regs->find_reg(0x02).value |= REG_0x02_MTRREV;
|
||||
} else {
|
||||
regs->find_reg(0x02).value &= ~REG_0x02_MTRREV;
|
||||
}
|
||||
|
||||
/* fastfed enabled (2 motor slope tables) */
|
||||
if (motor->fastfed) {
|
||||
|
@ -1585,10 +1590,9 @@ void CommandSetGl646::slow_back_home(Genesys_Device* dev, bool wait_until_home)
|
|||
const auto& sensor = sanei_genesys_find_sensor(dev, settings.xres, 3,
|
||||
dev->model->default_method);
|
||||
|
||||
setup_for_scan(dev, sensor, &dev->reg, settings, true, true, true);
|
||||
setup_for_scan(dev, sensor, &dev->reg, settings, true, true, true, true);
|
||||
|
||||
/* backward , no actual data scanned TODO more setup flags to avoid this register manipulations ? */
|
||||
dev->reg.find_reg(0x02).value |= REG_0x02_MTRREV;
|
||||
dev->reg.find_reg(0x01).value &= ~REG_0x01_SCAN;
|
||||
dev->reg.set24(REG_FEEDL, 65535);
|
||||
|
||||
|
@ -1779,7 +1783,7 @@ void CommandSetGl646::init_regs_for_shading(Genesys_Device* dev, const Genesys_S
|
|||
|
||||
// we don't want top offset, but we need right margin to be the same than the one for the final
|
||||
// scan
|
||||
setup_for_scan(dev, calib_sensor, &dev->reg, settings, true, false, false);
|
||||
setup_for_scan(dev, calib_sensor, &dev->reg, settings, true, false, false, false);
|
||||
|
||||
/* used when sending shading calibration data */
|
||||
dev->calib_pixels = settings.pixels;
|
||||
|
@ -1861,7 +1865,8 @@ static void setup_for_scan(Genesys_Device* dev,
|
|||
Genesys_Settings settings,
|
||||
bool split,
|
||||
bool xcorrection,
|
||||
bool ycorrection)
|
||||
bool ycorrection,
|
||||
bool reverse)
|
||||
{
|
||||
DBG_HELPER(dbg);
|
||||
|
||||
|
@ -1918,6 +1923,9 @@ static void setup_for_scan(Genesys_Device* dev,
|
|||
if (xcorrection) {
|
||||
session.params.flags |= ScanFlag::USE_XCORRECTION;
|
||||
}
|
||||
if (reverse) {
|
||||
session.params.flags |= ScanFlag::REVERSE;
|
||||
}
|
||||
compute_session(dev, session, sensor);
|
||||
|
||||
std::vector<uint16_t> slope_table0;
|
||||
|
@ -2702,7 +2710,7 @@ void CommandSetGl646::init_regs_for_warmup(Genesys_Device* dev, const Genesys_Se
|
|||
settings.threshold = 0;
|
||||
|
||||
// setup for scan
|
||||
setup_for_scan(dev, local_sensor, &dev->reg, settings, true, false, false);
|
||||
setup_for_scan(dev, local_sensor, &dev->reg, settings, true, false, false, false);
|
||||
|
||||
/* we are not going to move, so clear these bits */
|
||||
dev->reg.find_reg(0x02).value &= ~(REG_0x02_FASTFED | REG_0x02_AGOHOME);
|
||||
|
@ -2756,7 +2764,7 @@ static void gl646_repark_head(Genesys_Device* dev)
|
|||
const auto& sensor = sanei_genesys_find_sensor(dev, settings.xres, 3,
|
||||
dev->model->default_method);
|
||||
|
||||
setup_for_scan(dev, sensor, &dev->reg, settings, false, false, false);
|
||||
setup_for_scan(dev, sensor, &dev->reg, settings, false, false, false, false);
|
||||
|
||||
/* TODO seems wrong ... no effective scan */
|
||||
dev->reg.find_reg(0x01).value &= ~REG_0x01_SCAN;
|
||||
|
@ -2967,7 +2975,7 @@ static void simple_scan(Genesys_Device* dev, const Genesys_Sensor& sensor,
|
|||
|
||||
/* setup for move then scan */
|
||||
split = !(move && settings.tl_y > 0);
|
||||
setup_for_scan(dev, sensor, &dev->reg, settings, split, false, false);
|
||||
setup_for_scan(dev, sensor, &dev->reg, settings, split, false, false, !forward);
|
||||
|
||||
/* allocate memory fo scan : LINCNT may have been adjusted for CCD reordering */
|
||||
if (dev->model->is_cis) {
|
||||
|
@ -3011,11 +3019,6 @@ static void simple_scan(Genesys_Device* dev, const Genesys_Sensor& sensor,
|
|||
/* no automatic go home if no movement */
|
||||
dev->reg.find_reg(0x02).value &= ~REG_0x02_AGOHOME;
|
||||
}
|
||||
if (!forward) {
|
||||
dev->reg.find_reg(0x02).value |= REG_0x02_MTRREV;
|
||||
} else {
|
||||
dev->reg.find_reg(0x02).value &= ~REG_0x02_MTRREV;
|
||||
}
|
||||
|
||||
/* no automatic go home when using XPA */
|
||||
if (settings.scan_method == ScanMethod::TRANSPARENCY) {
|
||||
|
|
|
@ -73,7 +73,8 @@ static void setup_for_scan(Genesys_Device* device,
|
|||
Genesys_Settings settings,
|
||||
bool split,
|
||||
bool xcorrection,
|
||||
bool ycorrection);
|
||||
bool ycorrection,
|
||||
bool reverse);
|
||||
|
||||
/**
|
||||
* Does a simple move of the given distance by doing a scan at lowest resolution
|
||||
|
|
|
@ -957,6 +957,10 @@ HOME_FREE: 3
|
|||
|
||||
r->value &= ~0x40;
|
||||
|
||||
if (has_flag(flags, MotorFlag::REVERSE)) {
|
||||
r->value |= REG_0x02_MTRREV;
|
||||
}
|
||||
|
||||
gl841_send_slope_table(dev, 3, fast_slope_table, 256);
|
||||
|
||||
r = sanei_genesys_get_address(reg, 0x67);
|
||||
|
@ -2308,11 +2312,9 @@ void CommandSetGl841::slow_back_home(Genesys_Device* dev, bool wait_until_home)
|
|||
|
||||
const auto& sensor = sanei_genesys_find_sensor_any(dev);
|
||||
|
||||
gl841_init_motor_regs(dev, sensor, &local_reg, 65536, MOTOR_ACTION_GO_HOME, MotorFlag::NONE);
|
||||
gl841_init_motor_regs(dev, sensor, &local_reg, 65536, MOTOR_ACTION_GO_HOME, MotorFlag::REVERSE);
|
||||
|
||||
/* set up for reverse and no scan */
|
||||
r = sanei_genesys_get_address(&local_reg, REG_0x02);
|
||||
r->value |= REG_0x02_MTRREV;
|
||||
// set up for no scan
|
||||
r = sanei_genesys_get_address(&local_reg, REG_0x01);
|
||||
r->value &= ~REG_0x01_SCAN;
|
||||
|
||||
|
|
|
@ -873,6 +873,12 @@ static void gl843_init_motor_regs_scan(Genesys_Device* dev,
|
|||
r->value |= REG_0x02_ACDCDIS;
|
||||
}
|
||||
|
||||
if (has_flag(flags, MotorFlag::REVERSE)) {
|
||||
r->value |= REG_0x02_MTRREV;
|
||||
} else {
|
||||
r->value &= ~REG_0x02_MTRREV;
|
||||
}
|
||||
|
||||
/* scan and backtracking slope table */
|
||||
auto scan_table = sanei_genesys_slope_table(scan_yres, exposure, dev->motor.base_ydpi,
|
||||
factor, motor_profile);
|
||||
|
@ -1220,6 +1226,9 @@ static void gl843_init_scan_regs(Genesys_Device* dev, const Genesys_Sensor& sens
|
|||
if (has_flag(session.params.flags, ScanFlag::USE_XPA)) {
|
||||
mflags |= MotorFlag::USE_XPA;
|
||||
}
|
||||
if (has_flag(session.params.flags, ScanFlag::REVERSE)) {
|
||||
mflags |= MotorFlag::REVERSE;
|
||||
}
|
||||
|
||||
unsigned scan_lines = dev->model->is_cis ? session.output_line_count * session.params.channels
|
||||
: session.output_line_count;
|
||||
|
@ -1859,7 +1868,8 @@ void CommandSetGl843::slow_back_home(Genesys_Device* dev, bool wait_until_home)
|
|||
session.params.flags = ScanFlag::DISABLE_SHADING |
|
||||
ScanFlag::DISABLE_GAMMA |
|
||||
ScanFlag::DISABLE_BUFFER_FULL_MOVE |
|
||||
ScanFlag::IGNORE_LINE_DISTANCE;
|
||||
ScanFlag::IGNORE_LINE_DISTANCE |
|
||||
ScanFlag::REVERSE;
|
||||
compute_session(dev, session, sensor);
|
||||
|
||||
gl843_init_scan_regs(dev, sensor, &local_reg, session);
|
||||
|
@ -1867,9 +1877,7 @@ void CommandSetGl843::slow_back_home(Genesys_Device* dev, bool wait_until_home)
|
|||
// clear scan and feed count
|
||||
dev->interface->write_register(REG_0x0D, REG_0x0D_CLRLNCNT | REG_0x0D_CLRMCNT);
|
||||
|
||||
/* set up for reverse and no scan */
|
||||
r = sanei_genesys_get_address(&local_reg, REG_0x02);
|
||||
r->value |= REG_0x02_MTRREV;
|
||||
// set up for no scan
|
||||
r = sanei_genesys_get_address(&local_reg, REG_0x01);
|
||||
r->value &= ~REG_0x01_SCAN;
|
||||
|
||||
|
@ -3136,7 +3144,6 @@ void CommandSetGl843::search_strip(Genesys_Device* dev, const Genesys_Sensor& se
|
|||
Genesys_Register_Set local_reg;
|
||||
int dpi;
|
||||
unsigned int pass, count, found, x, y;
|
||||
GenesysRegister *r;
|
||||
|
||||
dev->cmd_set->set_fe(dev, sensor, AFE_SET);
|
||||
gl843_stop_action(dev);
|
||||
|
@ -3171,18 +3178,13 @@ void CommandSetGl843::search_strip(Genesys_Device* dev, const Genesys_Sensor& se
|
|||
session.params.scan_mode = ScanColorMode::GRAY;
|
||||
session.params.color_filter = ColorFilter::RED;
|
||||
session.params.flags = ScanFlag::DISABLE_SHADING | ScanFlag::DISABLE_SHADING;
|
||||
if (!forward) {
|
||||
session.params.flags = ScanFlag::REVERSE;
|
||||
}
|
||||
compute_session(dev, session, calib_sensor);
|
||||
|
||||
gl843_init_scan_regs(dev, calib_sensor, &local_reg, session);
|
||||
|
||||
/* set up for reverse or forward */
|
||||
r = sanei_genesys_get_address(&local_reg, REG_0x02);
|
||||
if (forward) {
|
||||
r->value &= ~REG_0x02_MTRREV;
|
||||
} else {
|
||||
r->value |= REG_0x02_MTRREV;
|
||||
}
|
||||
|
||||
dev->interface->write_registers(local_reg);
|
||||
|
||||
dev->cmd_set->begin_scan(dev, calib_sensor, &local_reg, true);
|
||||
|
|
|
@ -423,6 +423,11 @@ static void gl846_init_motor_regs_scan(Genesys_Device* dev,
|
|||
if (has_flag(flags, MotorFlag::DISABLE_BUFFER_FULL_MOVE) ||(scan_yres>=sensor.optical_res)) {
|
||||
r->value |= REG_0x02_ACDCDIS;
|
||||
}
|
||||
if (has_flag(flags, MotorFlag::REVERSE)) {
|
||||
r->value |= REG_0x02_MTRREV;
|
||||
} else {
|
||||
r->value &= ~REG_0x02_MTRREV;
|
||||
}
|
||||
|
||||
/* scan and backtracking slope table */
|
||||
auto scan_table = sanei_genesys_slope_table(scan_yres, scan_exposure_time, dev->motor.base_ydpi,
|
||||
|
@ -785,6 +790,9 @@ static void gl846_init_scan_regs(Genesys_Device* dev, const Genesys_Sensor& sens
|
|||
if (has_flag(session.params.flags, ScanFlag::FEEDING)) {
|
||||
mflags |= MotorFlag::FEED;
|
||||
}
|
||||
if (has_flag(session.params.flags, ScanFlag::REVERSE)) {
|
||||
mflags |= MotorFlag::REVERSE;
|
||||
}
|
||||
|
||||
gl846_init_motor_regs_scan(dev, sensor, reg, motor_profile, exposure_time, slope_dpi,
|
||||
dev->model->is_cis ? session.output_line_count * session.params.channels
|
||||
|
@ -957,7 +965,6 @@ void CommandSetGl846::slow_back_home(Genesys_Device* dev, bool wait_until_home)
|
|||
{
|
||||
DBG_HELPER_ARGS(dbg, "wait_until_home = %d", wait_until_home);
|
||||
Genesys_Register_Set local_reg;
|
||||
GenesysRegister *r;
|
||||
uint8_t val;
|
||||
int loop = 0;
|
||||
ScanColorMode scan_mode;
|
||||
|
@ -1014,7 +1021,8 @@ void CommandSetGl846::slow_back_home(Genesys_Device* dev, bool wait_until_home)
|
|||
session.params.color_filter = ColorFilter::RED;
|
||||
session.params.flags = ScanFlag::DISABLE_SHADING |
|
||||
ScanFlag::DISABLE_GAMMA |
|
||||
ScanFlag::IGNORE_LINE_DISTANCE;
|
||||
ScanFlag::IGNORE_LINE_DISTANCE |
|
||||
ScanFlag::REVERSE;
|
||||
compute_session(dev, session, sensor);
|
||||
|
||||
gl846_init_scan_regs(dev, sensor, &local_reg, session);
|
||||
|
@ -1024,10 +1032,6 @@ void CommandSetGl846::slow_back_home(Genesys_Device* dev, bool wait_until_home)
|
|||
// clear scan and feed count
|
||||
dev->interface->write_register(REG_0x0D, REG_0x0D_CLRLNCNT | REG_0x0D_CLRMCNT);
|
||||
|
||||
/* set up for reverse */
|
||||
r = sanei_genesys_get_address(&local_reg, REG_0x02);
|
||||
r->value |= REG_0x02_MTRREV;
|
||||
|
||||
dev->interface->write_registers(local_reg);
|
||||
|
||||
try {
|
||||
|
@ -1835,7 +1839,6 @@ void CommandSetGl846::search_strip(Genesys_Device* dev, const Genesys_Sensor& se
|
|||
size_t size;
|
||||
unsigned int pass, count, found, x, y;
|
||||
char title[80];
|
||||
GenesysRegister *r;
|
||||
|
||||
set_fe(dev, sensor, AFE_SET);
|
||||
|
||||
|
@ -1868,6 +1871,9 @@ void CommandSetGl846::search_strip(Genesys_Device* dev, const Genesys_Sensor& se
|
|||
session.params.color_filter = ColorFilter::RED;
|
||||
session.params.flags = ScanFlag::DISABLE_SHADING |
|
||||
ScanFlag::DISABLE_GAMMA;
|
||||
if (!forward) {
|
||||
session.params.flags |= ScanFlag::REVERSE;
|
||||
}
|
||||
compute_session(dev, session, sensor);
|
||||
|
||||
gl846_init_scan_regs(dev, sensor, &local_reg, session);
|
||||
|
@ -1875,14 +1881,6 @@ void CommandSetGl846::search_strip(Genesys_Device* dev, const Genesys_Sensor& se
|
|||
size = pixels * channels * lines * (session.params.depth / 8);
|
||||
std::vector<uint8_t> data(size);
|
||||
|
||||
/* set up for reverse or forward */
|
||||
r = sanei_genesys_get_address(&local_reg, REG_0x02);
|
||||
if (forward) {
|
||||
r->value &= ~REG_0x02_MTRREV;
|
||||
} else {
|
||||
r->value |= REG_0x02_MTRREV;
|
||||
}
|
||||
|
||||
dev->interface->write_registers(local_reg);
|
||||
|
||||
begin_scan(dev, sensor, &local_reg, true);
|
||||
|
|
|
@ -462,6 +462,12 @@ static void gl847_init_motor_regs_scan(Genesys_Device* dev,
|
|||
r->value |= REG_0x02_ACDCDIS;
|
||||
}
|
||||
|
||||
if (has_flag(flags, MotorFlag::REVERSE)) {
|
||||
r->value |= REG_0x02_MTRREV;
|
||||
} else {
|
||||
r->value &= ~REG_0x02_MTRREV;
|
||||
}
|
||||
|
||||
/* scan and backtracking slope table */
|
||||
auto scan_table = sanei_genesys_slope_table(scan_yres, scan_exposure_time, dev->motor.base_ydpi,
|
||||
factor, motor_profile);
|
||||
|
@ -797,6 +803,9 @@ static void gl847_init_scan_regs(Genesys_Device* dev, const Genesys_Sensor& sens
|
|||
if (has_flag(session.params.flags, ScanFlag::FEEDING)) {
|
||||
mflags |= MotorFlag::FEED;
|
||||
}
|
||||
if (has_flag(session.params.flags, ScanFlag::REVERSE)) {
|
||||
mflags |= MotorFlag::REVERSE;
|
||||
}
|
||||
|
||||
gl847_init_motor_regs_scan(dev, sensor, reg, motor_profile, exposure_time, slope_dpi,
|
||||
dev->model->is_cis ? session.output_line_count * session.params.channels
|
||||
|
@ -1007,7 +1016,6 @@ void CommandSetGl847::slow_back_home(Genesys_Device* dev, bool wait_until_home)
|
|||
{
|
||||
DBG_HELPER_ARGS(dbg, "wait_until_home = %d", wait_until_home);
|
||||
Genesys_Register_Set local_reg;
|
||||
GenesysRegister *r;
|
||||
uint8_t val;
|
||||
int loop = 0;
|
||||
ScanColorMode scan_mode;
|
||||
|
@ -1064,7 +1072,8 @@ void CommandSetGl847::slow_back_home(Genesys_Device* dev, bool wait_until_home)
|
|||
session.params.color_filter = ColorFilter::RED;
|
||||
session.params.flags = ScanFlag::DISABLE_SHADING |
|
||||
ScanFlag::DISABLE_GAMMA |
|
||||
ScanFlag::IGNORE_LINE_DISTANCE;
|
||||
ScanFlag::IGNORE_LINE_DISTANCE |
|
||||
ScanFlag::REVERSE;
|
||||
compute_session(dev, session, sensor);
|
||||
|
||||
gl847_init_scan_regs(dev, sensor, &local_reg, session);
|
||||
|
@ -1074,10 +1083,6 @@ void CommandSetGl847::slow_back_home(Genesys_Device* dev, bool wait_until_home)
|
|||
// clear scan and feed count
|
||||
dev->interface->write_register(REG_0x0D, REG_0x0D_CLRLNCNT | REG_0x0D_CLRMCNT);
|
||||
|
||||
/* set up for reverse */
|
||||
r = sanei_genesys_get_address (&local_reg, REG_0x02);
|
||||
r->value |= REG_0x02_MTRREV;
|
||||
|
||||
dev->interface->write_registers(local_reg);
|
||||
|
||||
try {
|
||||
|
@ -1905,7 +1910,6 @@ void CommandSetGl847::search_strip(Genesys_Device* dev, const Genesys_Sensor& se
|
|||
size_t size;
|
||||
unsigned int pass, count, found, x, y;
|
||||
char title[80];
|
||||
GenesysRegister *r;
|
||||
|
||||
set_fe(dev, sensor, AFE_SET);
|
||||
gl847_stop_action(dev);
|
||||
|
@ -1937,6 +1941,9 @@ void CommandSetGl847::search_strip(Genesys_Device* dev, const Genesys_Sensor& se
|
|||
session.params.color_filter = ColorFilter::RED;
|
||||
session.params.flags = ScanFlag::DISABLE_SHADING |
|
||||
ScanFlag::DISABLE_GAMMA;
|
||||
if (!forward) {
|
||||
session.params.flags |= ScanFlag::REVERSE;
|
||||
}
|
||||
compute_session(dev, session, sensor);
|
||||
|
||||
size = pixels * channels * lines * (session.params.depth / 8);
|
||||
|
@ -1944,14 +1951,6 @@ void CommandSetGl847::search_strip(Genesys_Device* dev, const Genesys_Sensor& se
|
|||
|
||||
gl847_init_scan_regs(dev, sensor, &local_reg, session);
|
||||
|
||||
/* set up for reverse or forward */
|
||||
r = sanei_genesys_get_address(&local_reg, REG_0x02);
|
||||
if (forward) {
|
||||
r->value &= ~REG_0x02_MTRREV;
|
||||
} else {
|
||||
r->value |= REG_0x02_MTRREV;
|
||||
}
|
||||
|
||||
dev->interface->write_registers(local_reg);
|
||||
|
||||
begin_scan(dev, sensor, &local_reg, true);
|
||||
|
|
Ładowanie…
Reference in New Issue