diff --git a/backend/genesys_gl843.cc b/backend/genesys_gl843.cc index 76978be4d..56d2561b6 100644 --- a/backend/genesys_gl843.cc +++ b/backend/genesys_gl843.cc @@ -1755,6 +1755,17 @@ static void gl843_set_xpa_lamp_power(Genesys_Device* dev, bool set) { 0x6c, 0x00, 0x80 }, } }, + { MODEL_PLUSTEK_OPTICFILM_7200I, ScanMethod::TRANSPARENCY, { + }, { + { 0xa6, 0x40, 0x70 }, // BUG: remove this cleanup write, it was enabled by accident + } + }, + { MODEL_PLUSTEK_OPTICFILM_7200I, ScanMethod::TRANSPARENCY_INFRARED, { + { 0xa8, 0x07, 0x07 }, + }, { + { 0xa8, 0x00, 0x07 }, + } + }, }; for (const auto& setting : settings) { @@ -1830,6 +1841,12 @@ static void gl843_begin_scan(Genesys_Device* dev, const Genesys_Sensor& sensor, gl843_set_xpa_motor_power(dev, true); } break; + case GPO_PLUSTEK_7200I: { + if (reg->state.is_xpa_on && reg->state.is_lamp_on) { + gl843_set_xpa_lamp_power(dev, true); + } + break; + } case GPO_CS4400F: default: break; diff --git a/backend/genesys_low.cc b/backend/genesys_low.cc index 2a929589b..49686561d 100644 --- a/backend/genesys_low.cc +++ b/backend/genesys_low.cc @@ -918,7 +918,8 @@ void sanei_genesys_set_lamp_power(Genesys_Device* dev, const Genesys_Sensor& sen // we don't actually turn on lamp on infrared scan if ((dev->model->model_id == MODEL_CANON_CANOSCAN_8400F || - dev->model->model_id == MODEL_CANON_CANOSCAN_8600F) && + dev->model->model_id == MODEL_CANON_CANOSCAN_8600F || + dev->model->model_id == MODEL_PLUSTEK_OPTICFILM_7200I) && dev->settings.scan_method == ScanMethod::TRANSPARENCY_INFRARED) { regs.find_reg(0x03).value &= ~REG03_LAMPPWR; diff --git a/backend/genesys_tables_model.cc b/backend/genesys_tables_model.cc index 66c4cbbdd..f77722939 100644 --- a/backend/genesys_tables_model.cc +++ b/backend/genesys_tables_model.cc @@ -2373,6 +2373,7 @@ void genesys_init_usb_device_tables() model.motor_type = MOTOR_PLUSTEK_7200I; model.flags = GENESYS_FLAG_HAS_UTA | + GENESYS_FLAG_HAS_UTA_INFRARED | GENESYS_FLAG_CUSTOM_GAMMA | GENESYS_FLAG_SKIP_WARMUP | GENESYS_FLAG_DARK_CALIBRATION | diff --git a/backend/genesys_tables_sensor.cc b/backend/genesys_tables_sensor.cc index f984f7207..a243fabcd 100644 --- a/backend/genesys_tables_sensor.cc +++ b/backend/genesys_tables_sensor.cc @@ -3378,6 +3378,10 @@ void genesys_init_sensor_tables() { 0x04, 0x20 }, } }, + { { 900 }, ScanMethod::TRANSPARENCY_INFRARED, 1, 900, 8, 0x1f54, 150, {} }, + { { 1800 }, ScanMethod::TRANSPARENCY_INFRARED, 1, 1800, 4, 0x1f54, 300, {} }, + { { 3600 }, ScanMethod::TRANSPARENCY_INFRARED, 1, 3600, 2, 0x1f54, 600, {} }, + { { 7200 }, ScanMethod::TRANSPARENCY_INFRARED, 1, 7200, 1, 0x1f54, 1200, {} }, }; for (const CustomSensorSettings& setting : custom_settings) {