From 1c3d1e25ecc763e011819a72c3370c089d5f8010 Mon Sep 17 00:00:00 2001 From: Povilas Kanapickas Date: Sun, 2 Feb 2020 14:08:50 +0200 Subject: [PATCH 1/3] genesys: Remove unused model flags --- backend/genesys/low.h | 5 ----- backend/genesys/tables_model.cpp | 19 +++++-------------- 2 files changed, 5 insertions(+), 19 deletions(-) diff --git a/backend/genesys/low.h b/backend/genesys/low.h index 4d479e9a2..925f20d35 100644 --- a/backend/genesys/low.h +++ b/backend/genesys/low.h @@ -125,9 +125,6 @@ #define GENESYS_FLAG_MUST_WAIT (1 << 10) /**< tells wether the scanner must wait for the head when parking */ - -#define GENESYS_FLAG_HAS_UTA (1 << 11) /**< scanner has a transparency adapter */ - #define GENESYS_FLAG_DARK_WHITE_CALIBRATION (1 << 12) /**< yet another calibration method. does white and dark shading in one run, depending on a black and a white strip*/ #define GENESYS_FLAG_CUSTOM_GAMMA (1 << 13) /**< allow custom gamma tables */ #define GENESYS_FLAG_NO_CALIBRATION (1 << 14) /**< allow scanners to use skip the calibration, needed for sheetfed scanners */ @@ -135,8 +132,6 @@ #define GENESYS_FLAG_SHADING_NO_MOVE (1 << 17) /**< scanner doesn't move sensor during shading calibration */ #define GENESYS_FLAG_SHADING_REPARK (1 << 18) /**< repark head between shading scans */ #define GENESYS_FLAG_FULL_HWDPI_MODE (1 << 19) /**< scanner always use maximum hw dpi to setup the sensor */ -// scanner has infrared transparency scanning capability -#define GENESYS_FLAG_HAS_UTA_INFRARED (1 << 20) // scanner calibration is handled on the host side #define GENESYS_FLAG_CALIBRATION_HOST_SIDE (1 << 21) #define GENESYS_FLAG_16BIT_DATA_INVERTED (1 << 22) diff --git a/backend/genesys/tables_model.cpp b/backend/genesys/tables_model.cpp index a33ac1579..fe0d497b5 100644 --- a/backend/genesys/tables_model.cpp +++ b/backend/genesys/tables_model.cpp @@ -546,9 +546,7 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::CANON_8400F; model.gpio_id = GpioId::CANON_8400F; model.motor_id = MotorId::CANON_8400F; - model.flags = GENESYS_FLAG_HAS_UTA | - GENESYS_FLAG_HAS_UTA_INFRARED | - GENESYS_FLAG_OFFSET_CALIBRATION | + model.flags = GENESYS_FLAG_OFFSET_CALIBRATION | GENESYS_FLAG_SKIP_WARMUP | GENESYS_FLAG_DARK_CALIBRATION | GENESYS_FLAG_FULL_HWDPI_MODE | @@ -615,9 +613,7 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::CANON_8600F; model.gpio_id = GpioId::CANON_8600F; model.motor_id = MotorId::CANON_8600F; - model.flags = GENESYS_FLAG_HAS_UTA | - GENESYS_FLAG_HAS_UTA_INFRARED | - GENESYS_FLAG_OFFSET_CALIBRATION | + model.flags = GENESYS_FLAG_OFFSET_CALIBRATION | GENESYS_FLAG_SKIP_WARMUP | GENESYS_FLAG_DARK_CALIBRATION | GENESYS_FLAG_FULL_HWDPI_MODE | @@ -2621,9 +2617,7 @@ void genesys_init_usb_device_tables() model.gpio_id = GpioId::PLUSTEK_OPTICFILM_7200I; model.motor_id = MotorId::PLUSTEK_OPTICFILM_7200I; - model.flags = GENESYS_FLAG_HAS_UTA | - GENESYS_FLAG_HAS_UTA_INFRARED | - GENESYS_FLAG_CUSTOM_GAMMA | + model.flags = GENESYS_FLAG_CUSTOM_GAMMA | GENESYS_FLAG_SKIP_WARMUP | GENESYS_FLAG_DARK_CALIBRATION | GENESYS_FLAG_OFFSET_CALIBRATION | @@ -2688,8 +2682,7 @@ void genesys_init_usb_device_tables() model.gpio_id = GpioId::PLUSTEK_OPTICFILM_7300; model.motor_id = MotorId::PLUSTEK_OPTICFILM_7300; - model.flags = GENESYS_FLAG_HAS_UTA | - GENESYS_FLAG_CUSTOM_GAMMA | + model.flags = GENESYS_FLAG_CUSTOM_GAMMA | GENESYS_FLAG_SKIP_WARMUP | GENESYS_FLAG_DARK_CALIBRATION | GENESYS_FLAG_OFFSET_CALIBRATION | @@ -2753,9 +2746,7 @@ void genesys_init_usb_device_tables() model.gpio_id = GpioId::PLUSTEK_OPTICFILM_7500I; model.motor_id = MotorId::PLUSTEK_OPTICFILM_7500I; - model.flags = GENESYS_FLAG_HAS_UTA | - GENESYS_FLAG_HAS_UTA_INFRARED | - GENESYS_FLAG_CUSTOM_GAMMA | + model.flags = GENESYS_FLAG_CUSTOM_GAMMA | GENESYS_FLAG_SKIP_WARMUP | GENESYS_FLAG_DARK_CALIBRATION | GENESYS_FLAG_OFFSET_CALIBRATION | From de10ace2e6b0d635ed56b9213dfe17586835576a Mon Sep 17 00:00:00 2001 From: Povilas Kanapickas Date: Sun, 2 Feb 2020 14:08:51 +0200 Subject: [PATCH 2/3] genesys: Remove invalid usage of GENESYS_HAS_NO_BUTTONS --- backend/genesys/tables_model.cpp | 3 --- 1 file changed, 3 deletions(-) diff --git a/backend/genesys/tables_model.cpp b/backend/genesys/tables_model.cpp index fe0d497b5..6e2fb6ccb 100644 --- a/backend/genesys/tables_model.cpp +++ b/backend/genesys/tables_model.cpp @@ -2621,7 +2621,6 @@ void genesys_init_usb_device_tables() GENESYS_FLAG_SKIP_WARMUP | GENESYS_FLAG_DARK_CALIBRATION | GENESYS_FLAG_OFFSET_CALIBRATION | - GENESYS_HAS_NO_BUTTONS | GENESYS_FLAG_SHADING_REPARK | GENESYS_FLAG_CALIBRATION_HOST_SIDE | GENESYS_FLAG_16BIT_DATA_INVERTED; @@ -2686,7 +2685,6 @@ void genesys_init_usb_device_tables() GENESYS_FLAG_SKIP_WARMUP | GENESYS_FLAG_DARK_CALIBRATION | GENESYS_FLAG_OFFSET_CALIBRATION | - GENESYS_HAS_NO_BUTTONS | GENESYS_FLAG_SHADING_REPARK | GENESYS_FLAG_CALIBRATION_HOST_SIDE; @@ -2750,7 +2748,6 @@ void genesys_init_usb_device_tables() GENESYS_FLAG_SKIP_WARMUP | GENESYS_FLAG_DARK_CALIBRATION | GENESYS_FLAG_OFFSET_CALIBRATION | - GENESYS_HAS_NO_BUTTONS | GENESYS_FLAG_SHADING_REPARK | GENESYS_FLAG_CALIBRATION_HOST_SIDE; From e59401ed6b923ebb16123d3da5cd4f696582bdd1 Mon Sep 17 00:00:00 2001 From: Povilas Kanapickas Date: Sun, 2 Feb 2020 14:08:52 +0200 Subject: [PATCH 3/3] genesys: Move model flags to a separate enum --- backend/genesys/device.h | 4 +- backend/genesys/enums.h | 82 ++++ backend/genesys/genesys.cpp | 87 ++-- backend/genesys/gl124.cpp | 2 +- backend/genesys/gl646.cpp | 25 +- backend/genesys/gl841.cpp | 9 +- backend/genesys/gl843.cpp | 8 +- backend/genesys/gl846.cpp | 6 +- backend/genesys/gl847.cpp | 6 +- backend/genesys/low.cpp | 8 +- backend/genesys/low.h | 28 -- backend/genesys/tables_model.cpp | 432 +++++++++--------- .../backend/genesys/session_config_test.cpp | 2 +- 13 files changed, 368 insertions(+), 331 deletions(-) diff --git a/backend/genesys/device.h b/backend/genesys/device.h index 128a2acf1..5a045ff85 100644 --- a/backend/genesys/device.h +++ b/backend/genesys/device.h @@ -210,8 +210,8 @@ struct Genesys_Model // stepper motor type MotorId motor_id = MotorId::UNKNOWN; - // Which hacks are needed for this scanner? - SANE_Word flags = 0; + // Which customizations are needed for this scanner? + ModelFlag flags = ModelFlag::NONE; // Button flags, described existing buttons for the model SANE_Word buttons = 0; diff --git a/backend/genesys/enums.h b/backend/genesys/enums.h index 64e7b1618..7d141a772 100644 --- a/backend/genesys/enums.h +++ b/backend/genesys/enums.h @@ -431,6 +431,88 @@ enum class AsicType : unsigned }; +enum class ModelFlag : unsigned +{ + // no flags + NONE = 0, + + // scanner is not tested, print a warning as it's likely it won't work + UNTESTED = 1 << 0, + + // use 14-bit gamma table instead of 12-bit + GAMMA_14BIT = 1 << 1, + + // has XPA adapter + XPA = 1 << 3, + + // skip lamp warmup (genesys_warmup()) + SKIP_WARMUP = 1 << 4, + + // the scanner does offset and gain calibration + OFFSET_CALIBRATION = 1 << 5, + + // search start point befor scanning + SEARCH_START = 1 << 6, + + // repark head and check for lock by moving without scanning + REPARK = 1 << 7, + + // do dark calibration + DARK_CALIBRATION = 1 << 8, + + // whether scanner must wait for the head while parking + MUST_WAIT = 1 << 10, + + // do dark and white calibration in one run + DARK_WHITE_CALIBRATION = 1 << 12, + + // allow custom gamma tables + CUSTOM_GAMMA = 1 << 13, + + // skip calibration completely, this is needed for sheet-fed scanners + NO_CALIBRATION = 1 << 14, + + // the scanner uses multi-segment sensors that must be handled during calibration + SIS_SENSOR = 1 << 16, + + // the scanner does not move sensor during scanner calibration + SHADING_NO_MOVE = 1 << 17, + + // the head must be reparked between shading scans + SHADING_REPARK = 1 << 18, + + // the scanner always uses maximum hwdpi to setup the sensor + FULL_HWDPI_MODE = 1 << 19, + + // scanner calibration is handled on the host side + CALIBRATION_HOST_SIDE = 1 << 21, + + // the scanner outputs 16-bit data that is byte-inverted + INVERTED_16BIT_DATA = 1 << 22, +}; + +inline ModelFlag operator|(ModelFlag left, ModelFlag right) +{ + return static_cast(static_cast(left) | static_cast(right)); +} + +inline ModelFlag& operator|=(ModelFlag& left, ModelFlag right) +{ + left = left | right; + return left; +} + +inline ModelFlag operator&(ModelFlag left, ModelFlag right) +{ + return static_cast(static_cast(left) & static_cast(right)); +} + +inline bool has_flag(ModelFlag flags, ModelFlag which) +{ + return (flags & which) == which; +} + + enum class ScanFlag : unsigned { NONE = 0, diff --git a/backend/genesys/genesys.cpp b/backend/genesys/genesys.cpp index 67d0fbf02..e1dd7d953 100644 --- a/backend/genesys/genesys.cpp +++ b/backend/genesys/genesys.cpp @@ -382,7 +382,7 @@ void sanei_genesys_create_default_gamma_table(Genesys_Device* dev, int size = 0; int max = 0; if (dev->model->asic_type == AsicType::GL646) { - if (dev->model->flags & GENESYS_FLAG_14BIT_GAMMA) { + if (has_flag(dev->model->flags, ModelFlag::GAMMA_14BIT)) { size = 16384; } else { size = 4096; @@ -506,7 +506,7 @@ void sanei_genesys_init_shading_data(Genesys_Device* dev, const Genesys_Sensor& { DBG_HELPER_ARGS(dbg, "pixels_per_line: %d", pixels_per_line); - if (dev->model->flags & GENESYS_FLAG_CALIBRATION_HOST_SIDE) { + if (has_flag(dev->model->flags, ModelFlag::CALIBRATION_HOST_SIDE)) { return; } @@ -1668,8 +1668,7 @@ static void genesys_shading_calibration_impl(Genesys_Device* dev, const Genesys_ std::vector calibration_data(size / 2); bool motor = true; - if (dev->model->flags & GENESYS_FLAG_SHADING_NO_MOVE) - { + if (has_flag(dev->model->flags, ModelFlag::SHADING_NO_MOVE)) { motor = false; } @@ -1688,7 +1687,7 @@ static void genesys_shading_calibration_impl(Genesys_Device* dev, const Genesys_ if (is_dark) { // wait some time to let lamp to get dark dev->interface->sleep_ms(200); - } else if (dev->model->flags & GENESYS_FLAG_DARK_CALIBRATION) { + } else if (has_flag(dev->model->flags, ModelFlag::DARK_CALIBRATION)) { // make sure lamp is bright again // FIXME: what about scanners that take a long time to warm the lamp? dev->interface->sleep_ms(500); @@ -1710,7 +1709,7 @@ static void genesys_shading_calibration_impl(Genesys_Device* dev, const Genesys_ dev->cmd_set->end_scan(dev, &dev->calib_reg, true); - if (dev->model->flags & GENESYS_FLAG_16BIT_DATA_INVERTED) { + if (has_flag(dev->model->flags, ModelFlag::INVERTED_16BIT_DATA)) { for (std::size_t i = 0; i < size / 2; ++i) { auto value = calibration_data[i]; value = ((value >> 8) & 0xff) | ((value << 8) & 0xff00); @@ -1823,7 +1822,7 @@ static void genesys_dummy_dark_shading(Genesys_Device* dev, const Genesys_Sensor static void genesys_repark_sensor_before_shading(Genesys_Device* dev) { DBG_HELPER(dbg); - if (dev->model->flags & GENESYS_FLAG_SHADING_REPARK) { + if (has_flag(dev->model->flags, ModelFlag::SHADING_REPARK)) { dev->cmd_set->move_back_home(dev, true); if (dev->settings.scan_method == ScanMethod::TRANSPARENCY || @@ -1837,7 +1836,7 @@ static void genesys_repark_sensor_before_shading(Genesys_Device* dev) static void genesys_repark_sensor_after_white_shading(Genesys_Device* dev) { DBG_HELPER(dbg); - if (dev->model->flags & GENESYS_FLAG_SHADING_REPARK) { + if (has_flag(dev->model->flags, ModelFlag::SHADING_REPARK)) { dev->cmd_set->move_back_home(dev, true); } } @@ -1882,8 +1881,7 @@ static void genesys_dark_white_shading_calibration(Genesys_Device* dev, std::vector calibration_data(size); bool motor = true; - if (dev->model->flags & GENESYS_FLAG_SHADING_NO_MOVE) - { + if (has_flag(dev->model->flags, ModelFlag::SHADING_NO_MOVE)) { motor = false; } @@ -2463,7 +2461,7 @@ static void genesys_send_shading_coefficient(Genesys_Device* dev, const Genesys_ { DBG_HELPER(dbg); - if (dev->model->flags & GENESYS_FLAG_CALIBRATION_HOST_SIDE) { + if (has_flag(dev->model->flags, ModelFlag::CALIBRATION_HOST_SIDE)) { return; } @@ -2861,8 +2859,7 @@ static void genesys_flatbed_calibration(Genesys_Device* dev, Genesys_Sensor& sen } /* do offset calibration if needed */ - if (dev->model->flags & GENESYS_FLAG_OFFSET_CALIBRATION) - { + if (has_flag(dev->model->flags, ModelFlag::OFFSET_CALIBRATION)) { dev->interface->record_progress_message("offset_calibration"); dev->cmd_set->offset_calibration(dev, sensor, dev->calib_reg); @@ -2903,7 +2900,7 @@ static void genesys_flatbed_calibration(Genesys_Device* dev, Genesys_Sensor& sen /* calibrate afe again to match new exposure */ - if (dev->model->flags & GENESYS_FLAG_OFFSET_CALIBRATION) { + if (has_flag(dev->model->flags, ModelFlag::OFFSET_CALIBRATION)) { dev->interface->record_progress_message("offset_calibration"); dev->cmd_set->offset_calibration(dev, sensor, dev->calib_reg); @@ -2922,8 +2919,7 @@ static void genesys_flatbed_calibration(Genesys_Device* dev, Genesys_Sensor& sen } /* we always use sensor pixel number when the ASIC can't handle multi-segments sensor */ - if (!(dev->model->flags & GENESYS_FLAG_SIS_SENSOR)) - { + if (!has_flag(dev->model->flags, ModelFlag::SIS_SENSOR)) { pixels_per_line = static_cast((dev->model->x_size * dev->settings.xres) / MM_PER_INCH); } @@ -2943,7 +2939,7 @@ static void genesys_flatbed_calibration(Genesys_Device* dev, Genesys_Sensor& sen } // shading calibration - if (dev->model->flags & GENESYS_FLAG_DARK_WHITE_CALIBRATION) { + if (has_flag(dev->model->flags, ModelFlag::DARK_WHITE_CALIBRATION)) { dev->interface->record_progress_message("init_regs_for_shading"); dev->cmd_set->init_regs_for_shading(dev, sensor, dev->calib_reg); @@ -2953,7 +2949,7 @@ static void genesys_flatbed_calibration(Genesys_Device* dev, Genesys_Sensor& sen DBG(DBG_proc, "%s : genesys_dark_shading_calibration dev->calib_reg ", __func__); debug_dump(DBG_proc, dev->calib_reg); - if (dev->model->flags & GENESYS_FLAG_DARK_CALIBRATION) { + if (has_flag(dev->model->flags, ModelFlag::DARK_CALIBRATION)) { dev->interface->record_progress_message("init_regs_for_shading"); dev->cmd_set->init_regs_for_shading(dev, sensor, dev->calib_reg); @@ -2969,7 +2965,7 @@ static void genesys_flatbed_calibration(Genesys_Device* dev, Genesys_Sensor& sen genesys_white_shading_calibration(dev, sensor); genesys_repark_sensor_after_white_shading(dev); - if (!(dev->model->flags & GENESYS_FLAG_DARK_CALIBRATION)) { + if (!has_flag(dev->model->flags, ModelFlag::DARK_CALIBRATION)) { genesys_dummy_dark_shading(dev, sensor); } } @@ -3023,8 +3019,7 @@ static void genesys_sheetfed_calibration(Genesys_Device* dev, Genesys_Sensor& se } /* calibrate afe */ - if (dev->model->flags & GENESYS_FLAG_OFFSET_CALIBRATION) - { + if (has_flag(dev->model->flags, ModelFlag::OFFSET_CALIBRATION)) { dev->cmd_set->offset_calibration(dev, sensor, dev->calib_reg); /* since all the registers are set up correctly, just use them */ @@ -3042,9 +3037,8 @@ static void genesys_sheetfed_calibration(Genesys_Device* dev, Genesys_Sensor& se /* search for a full width black strip and then do a 16 bit scan to * gather black shading data */ - if (dev->model->flags & GENESYS_FLAG_DARK_CALIBRATION) - { - /* seek black/white reverse/forward */ + if (has_flag(dev->model->flags, ModelFlag::DARK_CALIBRATION)) { + // seek black/white reverse/forward try { dev->cmd_set->search_strip(dev, sensor, forward, true); } catch (...) { @@ -3086,8 +3080,8 @@ static void genesys_sheetfed_calibration(Genesys_Device* dev, Genesys_Sensor& se // in case we haven't black shading data, build it from black pixels of white calibration // FIXME: shouldn't we use genesys_dummy_dark_shading() ? - if (!(dev->model->flags & GENESYS_FLAG_DARK_CALIBRATION)) { - dev->dark_average_data.clear(); + if (!has_flag(dev->model->flags, ModelFlag::DARK_CALIBRATION)) { + dev->dark_average_data.clear(); dev->dark_average_data.resize(dev->average_size, 0x0f0f); /* XXX STEF XXX * with black point in white shading, build an average black @@ -3266,8 +3260,8 @@ static void genesys_start_scan(Genesys_Device* dev, bool lamp_off) /* wait for lamp warmup : until a warmup for TRANSPARENCY is designed, skip * it when scanning from XPA. */ - if (!(dev->model->flags & GENESYS_FLAG_SKIP_WARMUP) - && (dev->settings.scan_method == ScanMethod::FLATBED)) + if (!has_flag(dev->model->flags, ModelFlag::SKIP_WARMUP) && + (dev->settings.scan_method == ScanMethod::FLATBED)) { genesys_warmup_lamp(dev); } @@ -3275,9 +3269,9 @@ static void genesys_start_scan(Genesys_Device* dev, bool lamp_off) /* set top left x and y values by scanning the internals if flatbed scanners */ if (!dev->model->is_sheetfed) { /* do the geometry detection only once */ - if ((dev->model->flags & GENESYS_FLAG_SEARCH_START) - && (dev->model->y_offset_calib_white == 0)) - { + if (has_flag(dev->model->flags, ModelFlag::SEARCH_START) && + (dev->model->y_offset_calib_white == 0)) + { dev->cmd_set->search_start_position (dev); dev->parking = false; @@ -3318,7 +3312,7 @@ static void genesys_start_scan(Genesys_Device* dev, bool lamp_off) { /* calibration : sheetfed scanners can't calibrate before each scan */ /* and also those who have the NO_CALIBRATION flag */ - if (!(dev->model->flags & GENESYS_FLAG_NO_CALIBRATION) && !dev->model->is_sheetfed) { + if (!has_flag(dev->model->flags, ModelFlag::NO_CALIBRATION) && !dev->model->is_sheetfed) { genesys_scanner_calibration(dev, sensor); genesys_save_calibration (dev, sensor); } @@ -3356,7 +3350,7 @@ static void genesys_start_scan(Genesys_Device* dev, bool lamp_off) /* GL124 is using SHDAREA, so we have to wait for scan to be set up before * sending shading data */ if (dev->cmd_set->has_send_shading_data() && - !(dev->model->flags & GENESYS_FLAG_NO_CALIBRATION)) + !has_flag(dev->model->flags, ModelFlag::NO_CALIBRATION)) { genesys_send_shading_coefficient(dev, sensor); } @@ -3451,7 +3445,7 @@ static void genesys_read_ordered_data(Genesys_Device* dev, SANE_Byte* destinatio { /* issue park command immediatly in case scanner can handle it * so we save time */ - if (!dev->model->is_sheetfed && !(dev->model->flags & GENESYS_FLAG_MUST_WAIT) && + if (!dev->model->is_sheetfed && !has_flag(dev->model->flags, ModelFlag::MUST_WAIT) && !dev->parking) { dev->cmd_set->move_back_home(dev, false); @@ -3643,7 +3637,7 @@ static void calc_parameters(Genesys_Scanner* s) /* we need an even pixels number * TODO invert test logic or generalize behaviour across all ASICs */ - if ((s->dev->model->flags & GENESYS_FLAG_SIS_SENSOR) || + if (has_flag(s->dev->model->flags, ModelFlag::SIS_SENSOR) || s->dev->model->asic_type == AsicType::GL847 || s->dev->model->asic_type == AsicType::GL124 || s->dev->model->asic_type == AsicType::GL845 || @@ -3772,7 +3766,7 @@ static void create_bpp_list (Genesys_Scanner * s, const std::vector& b /** @brief this function initialize a gamma vector based on the ASIC: * Set up a default gamma table vector based on device description - * gl646: 12 or 14 bits gamma table depending on GENESYS_FLAG_14BIT_GAMMA + * gl646: 12 or 14 bits gamma table depending on ModelFlag::GAMMA_14BIT * gl84x: 16 bits * gl12x: 16 bits * @param scanner pointer to scanner session to get options @@ -3788,8 +3782,7 @@ init_gamma_vector_option (Genesys_Scanner * scanner, int option) scanner->opt[option].unit = SANE_UNIT_NONE; scanner->opt[option].constraint_type = SANE_CONSTRAINT_RANGE; if (scanner->dev->model->asic_type == AsicType::GL646) { - if ((scanner->dev->model->flags & GENESYS_FLAG_14BIT_GAMMA) != 0) - { + if (has_flag(scanner->dev->model->flags, ModelFlag::GAMMA_14BIT)) { scanner->opt[option].size = 16384 * sizeof (SANE_Word); scanner->opt[option].constraint.range = &u14_range; } @@ -4128,8 +4121,7 @@ static void init_options(Genesys_Scanner* s) /* currently, there are only gamma table options in this group, * so if the scanner doesn't support gamma table, disable the * whole group */ - if (!(model->flags & GENESYS_FLAG_CUSTOM_GAMMA)) - { + if (!has_flag(model->flags, ModelFlag::CUSTOM_GAMMA)) { s->opt[OPT_ENHANCEMENT_GROUP].cap |= SANE_CAP_INACTIVE; s->opt[OPT_CUSTOM_GAMMA].cap |= SANE_CAP_INACTIVE; DBG(DBG_info, "%s: custom gamma disabled\n", __func__); @@ -4793,8 +4785,8 @@ static void genesys_buffer_image(Genesys_Scanner *s) * computing so we can save time */ if (!dev->model->is_sheetfed && !dev->parking) { - dev->cmd_set->move_back_home(dev, dev->model->flags & GENESYS_FLAG_MUST_WAIT); - dev->parking = !(s->dev->model->flags & GENESYS_FLAG_MUST_WAIT); + dev->cmd_set->move_back_home(dev, has_flag(dev->model->flags, ModelFlag::MUST_WAIT)); + dev->parking = !has_flag(s->dev->model->flags, ModelFlag::MUST_WAIT); } /* in case of dynamic lineart, we have buffered gray data which @@ -5002,8 +4994,7 @@ static void sane_open_impl(SANE_String_Const devicename, SANE_Handle * handle) throw SaneException("could not find the device to open: %s", devicename); } - if (dev->model->flags & GENESYS_FLAG_UNTESTED) - { + if (has_flag(dev->model->flags, ModelFlag::UNTESTED)) { DBG(DBG_error0, "WARNING: Your scanner is not fully supported or at least \n"); DBG(DBG_error0, " had only limited testing. Please be careful and \n"); DBG(DBG_error0, " report any failure/success to \n"); @@ -5997,7 +5988,7 @@ void sane_read_impl(SANE_Handle handle, SANE_Byte * buf, SANE_Int max_len, SANE_ /* issue park command immediatly in case scanner can handle it * so we save time */ - if (!dev->model->is_sheetfed && !(dev->model->flags & GENESYS_FLAG_MUST_WAIT) && + if (!dev->model->is_sheetfed && !has_flag(dev->model->flags, ModelFlag::MUST_WAIT) && !dev->parking) { dev->cmd_set->move_back_home(dev, false); @@ -6097,10 +6088,10 @@ void sane_cancel_impl(SANE_Handle handle) /* park head if flatbed scanner */ if (!s->dev->model->is_sheetfed) { if (!s->dev->parking) { - s->dev->cmd_set->move_back_home (s->dev, s->dev->model->flags & - GENESYS_FLAG_MUST_WAIT); + s->dev->cmd_set->move_back_home (s->dev, has_flag(s->dev->model->flags, + ModelFlag::MUST_WAIT)); - s->dev->parking = !(s->dev->model->flags & GENESYS_FLAG_MUST_WAIT); + s->dev->parking = !has_flag(s->dev->model->flags, ModelFlag::MUST_WAIT); } } else diff --git a/backend/genesys/gl124.cpp b/backend/genesys/gl124.cpp index 45f8486cd..9f9eb8f91 100644 --- a/backend/genesys/gl124.cpp +++ b/backend/genesys/gl124.cpp @@ -711,7 +711,7 @@ static void gl124_init_optical_regs_scan(Genesys_Device* dev, const Genesys_Sens regs_set_optical_off(dev->model->asic_type, *reg); r = sanei_genesys_get_address (reg, REG_0x01); if (has_flag(session.params.flags, ScanFlag::DISABLE_SHADING) || - (dev->model->flags & GENESYS_FLAG_NO_CALIBRATION)) + has_flag(dev->model->flags, ModelFlag::NO_CALIBRATION)) { r->value &= ~REG_0x01_DVDSET; } else { diff --git a/backend/genesys/gl646.cpp b/backend/genesys/gl646.cpp index 9435b4c28..6d69f7677 100644 --- a/backend/genesys/gl646.cpp +++ b/backend/genesys/gl646.cpp @@ -232,9 +232,8 @@ void CommandSetGl646::init_regs_for_scan_session(Genesys_Device* dev, const Gene regs->find_reg(0x01).value &= ~REG_0x01_CISSET; } - /* if device has no calibration, don't enable shading correction */ - if (dev->model->flags & GENESYS_FLAG_NO_CALIBRATION) - { + // if device has no calibration, don't enable shading correction + if (has_flag(dev->model->flags, ModelFlag::NO_CALIBRATION)) { regs->find_reg(0x01).value &= ~REG_0x01_DVDSET; } @@ -317,7 +316,7 @@ void CommandSetGl646::init_regs_for_scan_session(Genesys_Device* dev, const Gene sanei_genesys_set_dpihw(*regs, sensor, sensor.optical_res); /* gamma enable for scans */ - if (dev->model->flags & GENESYS_FLAG_14BIT_GAMMA) { + if (has_flag(dev->model->flags, ModelFlag::GAMMA_14BIT)) { regs->find_reg(0x05).value |= REG_0x05_GMM14BIT; } @@ -666,7 +665,7 @@ gl646_init_regs (Genesys_Device * dev) dev->reg.find_reg(0x05).value = 0x00; /* 12 bits gamma, disable gamma, 24 clocks/pixel */ sanei_genesys_set_dpihw(dev->reg, sensor, sensor.optical_res); - if (dev->model->flags & GENESYS_FLAG_14BIT_GAMMA) { + if (has_flag(dev->model->flags, ModelFlag::GAMMA_14BIT)) { dev->reg.find_reg(0x05).value |= REG_0x05_GMM14BIT; } if (dev->model->adc_id == AdcId::AD_XP200) { @@ -1857,9 +1856,7 @@ void CommandSetGl646::send_gamma_table(Genesys_Device* dev, const Genesys_Sensor int address; int bits; - /* gamma table size */ - if (dev->model->flags & GENESYS_FLAG_14BIT_GAMMA) - { + if (has_flag(dev->model->flags, ModelFlag::GAMMA_14BIT)) { size = 16384; bits = 14; } @@ -2828,16 +2825,13 @@ void CommandSetGl646::init(Genesys_Device* dev) const /* ensure head is correctly parked, and check lock */ if (!dev->model->is_sheetfed) { - if (dev->model->flags & GENESYS_FLAG_REPARK) - { + if (has_flag(dev->model->flags, ModelFlag::REPARK)) { // FIXME: if repark fails, we should print an error message that the scanner is locked and // the user should unlock the lock. We should also rethrow with SANE_STATUS_JAMMED gl646_repark_head(dev); - } - else - { + } else { move_back_home(dev, true); - } + } } /* here session and device are initialized */ @@ -3130,8 +3124,7 @@ void CommandSetGl646::update_hardware_sensors(Genesys_Scanner* session) const } /* XPA detection */ - if (dev->model->flags & GENESYS_FLAG_XPA) - { + if (has_flag(dev->model->flags, ModelFlag::XPA)) { switch (dev->model->gpio_id) { case GpioId::HP3670: case GpioId::HP2400: diff --git a/backend/genesys/gl841.cpp b/backend/genesys/gl841.cpp index 45e1c90a3..16ed21594 100644 --- a/backend/genesys/gl841.cpp +++ b/backend/genesys/gl841.cpp @@ -1308,7 +1308,7 @@ static void gl841_init_optical_regs_scan(Genesys_Device* dev, const Genesys_Sens r = sanei_genesys_get_address (reg, 0x01); r->value |= REG_0x01_SCAN; if (has_flag(session.params.flags, ScanFlag::DISABLE_SHADING) || - (dev->model->flags & GENESYS_FLAG_NO_CALIBRATION)) { + has_flag(dev->model->flags, ModelFlag::NO_CALIBRATION)) { r->value &= ~REG_0x01_DVDSET; } else { r->value |= REG_0x01_DVDSET; @@ -1651,10 +1651,10 @@ ScanSession CommandSetGl841::calculate_scan_session(const Genesys_Device* dev, mm_to_steps()=motor dpi / 2.54 / 10=motor dpi / MM_PER_INCH */ - // if scanner uses GENESYS_FLAG_SEARCH_START y_offset is + // if scanner uses ModelFlag::SEARCH_START y_offset is // relative from origin, else, it is from parking position float move = 0.0f; - if (dev->model->flags & GENESYS_FLAG_SEARCH_START) { + if (has_flag(dev->model->flags, ModelFlag::SEARCH_START)) { move += static_cast(dev->model->y_offset_calib_white); } @@ -3465,8 +3465,7 @@ void CommandSetGl841::init(Genesys_Device* dev) const sanei_genesys_init_shading_data(dev, sensor, sensor.sensor_pixels); /* ensure head is correctly parked, and check lock */ - if (dev->model->flags & GENESYS_FLAG_REPARK) - { + if (has_flag(dev->model->flags, ModelFlag::REPARK)) { // FIXME: if repark fails, we should print an error message that the scanner is locked and // the user should unlock the lock. We should also rethrow with SANE_STATUS_JAMMED sanei_gl841_repark_head(dev); diff --git a/backend/genesys/gl843.cpp b/backend/genesys/gl843.cpp index 4d67626a8..02a412ce9 100644 --- a/backend/genesys/gl843.cpp +++ b/backend/genesys/gl843.cpp @@ -96,7 +96,7 @@ static void gl843_setup_sensor(Genesys_Device* dev, const Genesys_Sensor& sensor for (const auto& custom_reg : sensor.custom_regs) { regs->set8(custom_reg.address, custom_reg.value); } - if (!(dev->model->flags & GENESYS_FLAG_FULL_HWDPI_MODE) && + if (!has_flag(dev->model->flags, ModelFlag::FULL_HWDPI_MODE) && dev->model->model_id != ModelId::PLUSTEK_OPTICFILM_7200I && dev->model->model_id != ModelId::PLUSTEK_OPTICFILM_7300 && dev->model->model_id != ModelId::PLUSTEK_OPTICFILM_7500I) @@ -982,7 +982,7 @@ static void gl843_init_motor_regs_scan(Genesys_Device* dev, /* Vref XXX STEF XXX : optical divider or step type ? */ r = sanei_genesys_get_address (reg, 0x80); - if (!(dev->model->flags & GENESYS_FLAG_FULL_HWDPI_MODE)) + if (!has_flag(dev->model->flags, ModelFlag::FULL_HWDPI_MODE)) { r->value = 0x50; coeff = sensor.get_hwdpi_divisor_for_dpi(scan_yres); @@ -1057,8 +1057,8 @@ static void gl843_init_optical_regs_scan(Genesys_Device* dev, const Genesys_Sens regs_set_optical_off(dev->model->asic_type, *reg); r = sanei_genesys_get_address (reg, REG_0x01); if (has_flag(session.params.flags, ScanFlag::DISABLE_SHADING) || - (dev->model->flags & GENESYS_FLAG_NO_CALIBRATION || - (dev->model->flags & GENESYS_FLAG_CALIBRATION_HOST_SIDE))) + has_flag(dev->model->flags, ModelFlag::NO_CALIBRATION) || + has_flag(dev->model->flags, ModelFlag::CALIBRATION_HOST_SIDE)) { r->value &= ~REG_0x01_DVDSET; } else { diff --git a/backend/genesys/gl846.cpp b/backend/genesys/gl846.cpp index 607b21ea0..9730892db 100644 --- a/backend/genesys/gl846.cpp +++ b/backend/genesys/gl846.cpp @@ -579,7 +579,7 @@ static void gl846_init_optical_regs_scan(Genesys_Device* dev, const Genesys_Sens r = sanei_genesys_get_address(reg, REG_0x01); r->value |= REG_0x01_SHDAREA; if (has_flag(session.params.flags, ScanFlag::DISABLE_SHADING) || - (dev->model->flags & GENESYS_FLAG_NO_CALIBRATION)) + has_flag(dev->model->flags, ModelFlag::NO_CALIBRATION)) { r->value &= ~REG_0x01_DVDSET; } @@ -1014,7 +1014,7 @@ void CommandSetGl846::init_regs_for_shading(Genesys_Device* dev, const Genesys_S dev->interface->write_registers(regs); - /* we use GENESYS_FLAG_SHADING_REPARK */ + /* we use ModelFlag::SHADING_REPARK */ dev->set_head_pos_zero(ScanHeadId::PRIMARY); } @@ -1045,7 +1045,7 @@ void CommandSetGl846::init_regs_for_scan(Genesys_Device* dev, const Genesys_Sens float y_offset_calib; mm_to_steps()=motor dpi / 2.54 / 10=motor dpi / MM_PER_INCH */ - /* if scanner uses GENESYS_FLAG_SEARCH_START y_offset is + /* if scanner uses ModelFlag::SEARCH_START y_offset is relative from origin, else, it is from parking position */ move_dpi = dev->motor.base_ydpi; diff --git a/backend/genesys/gl847.cpp b/backend/genesys/gl847.cpp index 3d6443d95..75ec80dc8 100644 --- a/backend/genesys/gl847.cpp +++ b/backend/genesys/gl847.cpp @@ -585,7 +585,7 @@ static void gl847_init_optical_regs_scan(Genesys_Device* dev, const Genesys_Sens r->value |= REG_0x01_SHDAREA; if (has_flag(session.params.flags, ScanFlag::DISABLE_SHADING) || - (dev->model->flags & GENESYS_FLAG_NO_CALIBRATION)) + has_flag(dev->model->flags, ModelFlag::NO_CALIBRATION)) { r->value &= ~REG_0x01_DVDSET; } @@ -1014,7 +1014,7 @@ void CommandSetGl847::init_regs_for_shading(Genesys_Device* dev, const Genesys_S dev->interface->write_registers(regs); - /* we use GENESYS_FLAG_SHADING_REPARK */ + /* we use ModelFlag::SHADING_REPARK */ dev->set_head_pos_zero(ScanHeadId::PRIMARY); } @@ -1045,7 +1045,7 @@ void CommandSetGl847::init_regs_for_scan(Genesys_Device* dev, const Genesys_Sens float y_offset_calib; mm_to_steps()=motor dpi / 2.54 / 10=motor dpi / MM_PER_INCH */ - /* if scanner uses GENESYS_FLAG_SEARCH_START y_offset is + /* if scanner uses ModelFlag::SEARCH_START y_offset is relative from origin, else, it is from parking position */ move_dpi = dev->motor.base_ydpi; diff --git a/backend/genesys/low.cpp b/backend/genesys/low.cpp index eccb93f00..4f3849b3b 100644 --- a/backend/genesys/low.cpp +++ b/backend/genesys/low.cpp @@ -541,7 +541,7 @@ Image read_unshuffled_image_from_scanner(Genesys_Device* dev, const ScanSession& 1, 1); } - if ((dev->model->flags & GENESYS_FLAG_16BIT_DATA_INVERTED) && session.params.depth == 16) { + if (has_flag(dev->model->flags, ModelFlag::INVERTED_16BIT_DATA) && session.params.depth == 16) { pipeline.push_node(); } @@ -1297,7 +1297,7 @@ void build_image_pipeline(Genesys_Device* dev, const ScanSession& session) "_0_before_swap.pnm"); } - if ((dev->model->flags & GENESYS_FLAG_16BIT_DATA_INVERTED) && depth == 16) { + if (has_flag(dev->model->flags, ModelFlag::INVERTED_16BIT_DATA) && depth == 16) { dev->pipeline.push_node(); } @@ -1349,8 +1349,8 @@ void build_image_pipeline(Genesys_Device* dev, const ScanSession& session) "_3_after_stagger.pnm"); } - if ((dev->model->flags & GENESYS_FLAG_CALIBRATION_HOST_SIDE) && - !(dev->model->flags & GENESYS_FLAG_NO_CALIBRATION)) + if (has_flag(dev->model->flags, ModelFlag::CALIBRATION_HOST_SIDE) && + !has_flag(dev->model->flags, ModelFlag::NO_CALIBRATION)) { dev->pipeline.push_node(dev->dark_average_data, dev->white_average_data); diff --git a/backend/genesys/low.h b/backend/genesys/low.h index 925f20d35..f141cdfa7 100644 --- a/backend/genesys/low.h +++ b/backend/genesys/low.h @@ -108,34 +108,6 @@ #define GENESYS_GREEN 1 #define GENESYS_BLUE 2 -/* Flags */ -#define GENESYS_FLAG_UNTESTED (1 << 0) /**< Print a warning for these scanners */ -#define GENESYS_FLAG_14BIT_GAMMA (1 << 1) /**< use 14bit Gamma table instead of 12 */ -#define GENESYS_FLAG_XPA (1 << 3) -#define GENESYS_FLAG_SKIP_WARMUP (1 << 4) /**< skip genesys_warmup() */ -/** @brief offset calibration flag - * signals that the scanner does offset calibration. In this case off_calibration() and - * coarse_gain_calibration() functions must be implemented - */ -#define GENESYS_FLAG_OFFSET_CALIBRATION (1 << 5) -#define GENESYS_FLAG_SEARCH_START (1 << 6) /**< do start search before scanning */ -#define GENESYS_FLAG_REPARK (1 << 7) /**< repark head (and check for lock) by - moving without scanning */ -#define GENESYS_FLAG_DARK_CALIBRATION (1 << 8) /**< do dark calibration */ - -#define GENESYS_FLAG_MUST_WAIT (1 << 10) /**< tells wether the scanner must wait for the head when parking */ - -#define GENESYS_FLAG_DARK_WHITE_CALIBRATION (1 << 12) /**< yet another calibration method. does white and dark shading in one run, depending on a black and a white strip*/ -#define GENESYS_FLAG_CUSTOM_GAMMA (1 << 13) /**< allow custom gamma tables */ -#define GENESYS_FLAG_NO_CALIBRATION (1 << 14) /**< allow scanners to use skip the calibration, needed for sheetfed scanners */ -#define GENESYS_FLAG_SIS_SENSOR (1 << 16) /**< handling of multi-segments sensors in software */ -#define GENESYS_FLAG_SHADING_NO_MOVE (1 << 17) /**< scanner doesn't move sensor during shading calibration */ -#define GENESYS_FLAG_SHADING_REPARK (1 << 18) /**< repark head between shading scans */ -#define GENESYS_FLAG_FULL_HWDPI_MODE (1 << 19) /**< scanner always use maximum hw dpi to setup the sensor */ -// scanner calibration is handled on the host side -#define GENESYS_FLAG_CALIBRATION_HOST_SIDE (1 << 21) -#define GENESYS_FLAG_16BIT_DATA_INVERTED (1 << 22) - #define GENESYS_HAS_NO_BUTTONS 0 /**< scanner has no supported button */ #define GENESYS_HAS_SCAN_SW (1 << 0) /**< scanner has SCAN button */ #define GENESYS_HAS_FILE_SW (1 << 1) /**< scanner has FILE button */ diff --git a/backend/genesys/tables_model.cpp b/backend/genesys/tables_model.cpp index 6e2fb6ccb..56ee4c965 100644 --- a/backend/genesys/tables_model.cpp +++ b/backend/genesys/tables_model.cpp @@ -112,7 +112,7 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::WOLFSON_UMAX; model.gpio_id = GpioId::UMAX; model.motor_id = MotorId::UMAX; - model.flags = GENESYS_FLAG_UNTESTED; + model.flags = ModelFlag::UNTESTED; model.buttons = GENESYS_HAS_NO_BUTTONS; model.shading_lines = 20; model.shading_ta_lines = 0; @@ -170,10 +170,10 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::CANON_LIDE_35; model.gpio_id = GpioId::CANON_LIDE_35; model.motor_id = MotorId::CANON_LIDE_35; - model.flags = GENESYS_FLAG_SKIP_WARMUP | - GENESYS_FLAG_OFFSET_CALIBRATION | - GENESYS_FLAG_DARK_WHITE_CALIBRATION | - GENESYS_FLAG_CUSTOM_GAMMA; + model.flags = ModelFlag::SKIP_WARMUP | + ModelFlag::OFFSET_CALIBRATION | + ModelFlag::DARK_WHITE_CALIBRATION | + ModelFlag::CUSTOM_GAMMA; model.buttons = GENESYS_HAS_SCAN_SW | GENESYS_HAS_FILE_SW | GENESYS_HAS_EMAIL_SW | @@ -234,9 +234,9 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::KVSS080; model.gpio_id = GpioId::KVSS080; model.motor_id = MotorId::KVSS080; - model.flags = GENESYS_FLAG_SKIP_WARMUP | - GENESYS_FLAG_OFFSET_CALIBRATION | - GENESYS_FLAG_CUSTOM_GAMMA; + model.flags = ModelFlag::SKIP_WARMUP | + ModelFlag::OFFSET_CALIBRATION | + ModelFlag::CUSTOM_GAMMA; model.buttons = GENESYS_HAS_SCAN_SW; model.shading_lines = 100; model.shading_ta_lines = 0; @@ -294,10 +294,10 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::G4050; model.gpio_id = GpioId::G4050; model.motor_id = MotorId::G4050; - model.flags = GENESYS_FLAG_OFFSET_CALIBRATION | - GENESYS_FLAG_SHADING_REPARK | - GENESYS_FLAG_SKIP_WARMUP | - GENESYS_FLAG_CUSTOM_GAMMA; + model.flags = ModelFlag::OFFSET_CALIBRATION | + ModelFlag::SHADING_REPARK | + ModelFlag::SKIP_WARMUP | + ModelFlag::CUSTOM_GAMMA; model.buttons = GENESYS_HAS_SCAN_SW | GENESYS_HAS_FILE_SW | GENESYS_HAS_COPY_SW; model.shading_lines = 100; model.shading_ta_lines = 0; @@ -353,10 +353,10 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::G4050; model.gpio_id = GpioId::G4050; model.motor_id = MotorId::G4050; - model.flags = GENESYS_FLAG_OFFSET_CALIBRATION | - GENESYS_FLAG_SKIP_WARMUP | - GENESYS_FLAG_DARK_CALIBRATION | - GENESYS_FLAG_CUSTOM_GAMMA; + model.flags = ModelFlag::OFFSET_CALIBRATION | + ModelFlag::SKIP_WARMUP | + ModelFlag::DARK_CALIBRATION | + ModelFlag::CUSTOM_GAMMA; model.buttons = GENESYS_HAS_SCAN_SW | GENESYS_HAS_FILE_SW | GENESYS_HAS_COPY_SW; model.shading_lines = 100; model.shading_ta_lines = 0; @@ -414,10 +414,10 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::G4050; model.gpio_id = GpioId::G4050; model.motor_id = MotorId::G4050; - model.flags = GENESYS_FLAG_OFFSET_CALIBRATION | - GENESYS_FLAG_SKIP_WARMUP | - GENESYS_FLAG_DARK_CALIBRATION | - GENESYS_FLAG_CUSTOM_GAMMA; + model.flags = ModelFlag::OFFSET_CALIBRATION | + ModelFlag::SKIP_WARMUP | + ModelFlag::DARK_CALIBRATION | + ModelFlag::CUSTOM_GAMMA; model.buttons = GENESYS_HAS_SCAN_SW | GENESYS_HAS_FILE_SW | GENESYS_HAS_COPY_SW; model.shading_lines = 100; model.shading_ta_lines = 0; @@ -475,12 +475,12 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::CANON_4400F; model.gpio_id = GpioId::CANON_4400F; model.motor_id = MotorId::CANON_4400F; - model.flags = GENESYS_FLAG_OFFSET_CALIBRATION | - GENESYS_FLAG_SKIP_WARMUP | - GENESYS_FLAG_DARK_CALIBRATION | - GENESYS_FLAG_FULL_HWDPI_MODE | - GENESYS_FLAG_CUSTOM_GAMMA | - GENESYS_FLAG_SHADING_REPARK; + model.flags = ModelFlag::OFFSET_CALIBRATION | + ModelFlag::SKIP_WARMUP | + ModelFlag::DARK_CALIBRATION | + ModelFlag::FULL_HWDPI_MODE | + ModelFlag::CUSTOM_GAMMA | + ModelFlag::SHADING_REPARK; model.buttons = GENESYS_HAS_SCAN_SW | GENESYS_HAS_FILE_SW | GENESYS_HAS_COPY_SW; model.shading_lines = 100; model.shading_ta_lines = 0; @@ -546,12 +546,12 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::CANON_8400F; model.gpio_id = GpioId::CANON_8400F; model.motor_id = MotorId::CANON_8400F; - model.flags = GENESYS_FLAG_OFFSET_CALIBRATION | - GENESYS_FLAG_SKIP_WARMUP | - GENESYS_FLAG_DARK_CALIBRATION | - GENESYS_FLAG_FULL_HWDPI_MODE | - GENESYS_FLAG_CUSTOM_GAMMA | - GENESYS_FLAG_SHADING_REPARK; + model.flags = ModelFlag::OFFSET_CALIBRATION | + ModelFlag::SKIP_WARMUP | + ModelFlag::DARK_CALIBRATION | + ModelFlag::FULL_HWDPI_MODE | + ModelFlag::CUSTOM_GAMMA | + ModelFlag::SHADING_REPARK; model.buttons = GENESYS_HAS_SCAN_SW | GENESYS_HAS_FILE_SW | GENESYS_HAS_COPY_SW; model.shading_lines = 100; model.shading_ta_lines = 50; @@ -613,12 +613,12 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::CANON_8600F; model.gpio_id = GpioId::CANON_8600F; model.motor_id = MotorId::CANON_8600F; - model.flags = GENESYS_FLAG_OFFSET_CALIBRATION | - GENESYS_FLAG_SKIP_WARMUP | - GENESYS_FLAG_DARK_CALIBRATION | - GENESYS_FLAG_FULL_HWDPI_MODE | - GENESYS_FLAG_CUSTOM_GAMMA | - GENESYS_FLAG_SHADING_REPARK; + model.flags = ModelFlag::OFFSET_CALIBRATION | + ModelFlag::SKIP_WARMUP | + ModelFlag::DARK_CALIBRATION | + ModelFlag::FULL_HWDPI_MODE | + ModelFlag::CUSTOM_GAMMA | + ModelFlag::SHADING_REPARK; model.buttons = GENESYS_HAS_SCAN_SW | GENESYS_HAS_FILE_SW | GENESYS_HAS_COPY_SW; model.shading_lines = 50; model.shading_ta_lines = 50; @@ -676,12 +676,12 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::CANON_LIDE_200; model.gpio_id = GpioId::CANON_LIDE_200; model.motor_id = MotorId::CANON_LIDE_100; - model.flags = GENESYS_FLAG_SKIP_WARMUP | - GENESYS_FLAG_SIS_SENSOR | - GENESYS_FLAG_DARK_CALIBRATION | - GENESYS_FLAG_SHADING_REPARK | - GENESYS_FLAG_OFFSET_CALIBRATION | - GENESYS_FLAG_CUSTOM_GAMMA; + model.flags = ModelFlag::SKIP_WARMUP | + ModelFlag::SIS_SENSOR | + ModelFlag::DARK_CALIBRATION | + ModelFlag::SHADING_REPARK | + ModelFlag::OFFSET_CALIBRATION | + ModelFlag::CUSTOM_GAMMA; model.buttons = GENESYS_HAS_SCAN_SW | GENESYS_HAS_COPY_SW | GENESYS_HAS_EMAIL_SW | @@ -741,11 +741,11 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::CANON_LIDE_110; model.gpio_id = GpioId::CANON_LIDE_110; model.motor_id = MotorId::CANON_LIDE_110; - model.flags = GENESYS_FLAG_SKIP_WARMUP | - GENESYS_FLAG_OFFSET_CALIBRATION | - GENESYS_FLAG_DARK_CALIBRATION | - GENESYS_FLAG_SHADING_REPARK | - GENESYS_FLAG_CUSTOM_GAMMA; + model.flags = ModelFlag::SKIP_WARMUP | + ModelFlag::OFFSET_CALIBRATION | + ModelFlag::DARK_CALIBRATION | + ModelFlag::SHADING_REPARK | + ModelFlag::CUSTOM_GAMMA; model.buttons = GENESYS_HAS_SCAN_SW | GENESYS_HAS_COPY_SW | GENESYS_HAS_EMAIL_SW | @@ -804,11 +804,11 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::CANON_LIDE_120; model.gpio_id = GpioId::CANON_LIDE_120; model.motor_id = MotorId::CANON_LIDE_120; - model.flags = GENESYS_FLAG_SKIP_WARMUP | - GENESYS_FLAG_OFFSET_CALIBRATION | - GENESYS_FLAG_DARK_CALIBRATION | - GENESYS_FLAG_SHADING_REPARK | - GENESYS_FLAG_CUSTOM_GAMMA; + model.flags = ModelFlag::SKIP_WARMUP | + ModelFlag::OFFSET_CALIBRATION | + ModelFlag::DARK_CALIBRATION | + ModelFlag::SHADING_REPARK | + ModelFlag::CUSTOM_GAMMA; model.buttons = GENESYS_HAS_SCAN_SW | GENESYS_HAS_COPY_SW | GENESYS_HAS_EMAIL_SW | @@ -870,11 +870,11 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::CANON_LIDE_110; model.gpio_id = GpioId::CANON_LIDE_210; model.motor_id = MotorId::CANON_LIDE_210; - model.flags = GENESYS_FLAG_SKIP_WARMUP | - GENESYS_FLAG_OFFSET_CALIBRATION | - GENESYS_FLAG_DARK_CALIBRATION | - GENESYS_FLAG_SHADING_REPARK | - GENESYS_FLAG_CUSTOM_GAMMA; + model.flags = ModelFlag::SKIP_WARMUP | + ModelFlag::OFFSET_CALIBRATION | + ModelFlag::DARK_CALIBRATION | + ModelFlag::SHADING_REPARK | + ModelFlag::CUSTOM_GAMMA; model.buttons = GENESYS_HAS_SCAN_SW | GENESYS_HAS_COPY_SW | GENESYS_HAS_EMAIL_SW | @@ -936,11 +936,11 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::CANON_LIDE_110; model.gpio_id = GpioId::CANON_LIDE_210; model.motor_id = MotorId::CANON_LIDE_210; - model.flags = GENESYS_FLAG_SKIP_WARMUP | - GENESYS_FLAG_OFFSET_CALIBRATION | - GENESYS_FLAG_DARK_CALIBRATION | - GENESYS_FLAG_SHADING_REPARK | - GENESYS_FLAG_CUSTOM_GAMMA; + model.flags = ModelFlag::SKIP_WARMUP | + ModelFlag::OFFSET_CALIBRATION | + ModelFlag::DARK_CALIBRATION | + ModelFlag::SHADING_REPARK | + ModelFlag::CUSTOM_GAMMA; model.buttons = GENESYS_HAS_SCAN_SW | GENESYS_HAS_COPY_SW | GENESYS_HAS_EMAIL_SW | @@ -1002,12 +1002,12 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::CANON_LIDE_200; model.gpio_id = GpioId::CANON_LIDE_200; model.motor_id = MotorId::CANON_LIDE_200; - model.flags = GENESYS_FLAG_UNTESTED | - GENESYS_FLAG_SKIP_WARMUP | - GENESYS_FLAG_SIS_SENSOR | - GENESYS_FLAG_DARK_CALIBRATION | - GENESYS_FLAG_OFFSET_CALIBRATION | - GENESYS_FLAG_CUSTOM_GAMMA; + model.flags = ModelFlag::UNTESTED | + ModelFlag::SKIP_WARMUP | + ModelFlag::SIS_SENSOR | + ModelFlag::DARK_CALIBRATION | + ModelFlag::OFFSET_CALIBRATION | + ModelFlag::CUSTOM_GAMMA; model.buttons = GENESYS_HAS_SCAN_SW | GENESYS_HAS_COPY_SW | GENESYS_HAS_EMAIL_SW | @@ -1067,12 +1067,12 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::CANON_LIDE_700F; model.gpio_id = GpioId::CANON_LIDE_700F; model.motor_id = MotorId::CANON_LIDE_700; - model.flags = GENESYS_FLAG_SKIP_WARMUP | - GENESYS_FLAG_SIS_SENSOR | - GENESYS_FLAG_OFFSET_CALIBRATION | - GENESYS_FLAG_DARK_CALIBRATION | - GENESYS_FLAG_SHADING_REPARK | - GENESYS_FLAG_CUSTOM_GAMMA; + model.flags = ModelFlag::SKIP_WARMUP | + ModelFlag::SIS_SENSOR | + ModelFlag::OFFSET_CALIBRATION | + ModelFlag::DARK_CALIBRATION | + ModelFlag::SHADING_REPARK | + ModelFlag::CUSTOM_GAMMA; model.buttons = GENESYS_HAS_SCAN_SW | GENESYS_HAS_COPY_SW | GENESYS_HAS_EMAIL_SW | @@ -1132,12 +1132,12 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::CANON_LIDE_200; model.gpio_id = GpioId::CANON_LIDE_200; model.motor_id = MotorId::CANON_LIDE_200; - model.flags = GENESYS_FLAG_SKIP_WARMUP | - GENESYS_FLAG_SIS_SENSOR | - GENESYS_FLAG_OFFSET_CALIBRATION | - GENESYS_FLAG_DARK_CALIBRATION | - GENESYS_FLAG_SHADING_REPARK | - GENESYS_FLAG_CUSTOM_GAMMA; + model.flags = ModelFlag::SKIP_WARMUP | + ModelFlag::SIS_SENSOR | + ModelFlag::OFFSET_CALIBRATION | + ModelFlag::DARK_CALIBRATION | + ModelFlag::SHADING_REPARK | + ModelFlag::CUSTOM_GAMMA; model.buttons = GENESYS_HAS_SCAN_SW | GENESYS_HAS_COPY_SW | GENESYS_HAS_EMAIL_SW | @@ -1197,10 +1197,10 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::CANON_LIDE_35; model.gpio_id = GpioId::CANON_LIDE_35; model.motor_id = MotorId::CANON_LIDE_35; - model.flags = GENESYS_FLAG_SKIP_WARMUP | - GENESYS_FLAG_OFFSET_CALIBRATION | - GENESYS_FLAG_DARK_WHITE_CALIBRATION | - GENESYS_FLAG_CUSTOM_GAMMA; + model.flags = ModelFlag::SKIP_WARMUP | + ModelFlag::OFFSET_CALIBRATION | + ModelFlag::DARK_WHITE_CALIBRATION | + ModelFlag::CUSTOM_GAMMA; model.buttons = GENESYS_HAS_COPY_SW | GENESYS_HAS_SCAN_SW | @@ -1261,10 +1261,10 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::CANON_LIDE_80; model.gpio_id = GpioId::CANON_LIDE_80; model.motor_id = MotorId::CANON_LIDE_80; - model.flags = GENESYS_FLAG_SKIP_WARMUP | - GENESYS_FLAG_OFFSET_CALIBRATION | - GENESYS_FLAG_DARK_WHITE_CALIBRATION | - GENESYS_FLAG_CUSTOM_GAMMA; + model.flags = ModelFlag::SKIP_WARMUP | + ModelFlag::OFFSET_CALIBRATION | + ModelFlag::DARK_WHITE_CALIBRATION | + ModelFlag::CUSTOM_GAMMA; model.buttons = GENESYS_HAS_SCAN_SW | GENESYS_HAS_FILE_SW | GENESYS_HAS_EMAIL_SW | @@ -1324,12 +1324,12 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::WOLFSON_HP2300; model.gpio_id = GpioId::HP2300; model.motor_id = MotorId::HP2300; - model.flags = GENESYS_FLAG_14BIT_GAMMA | - GENESYS_FLAG_SKIP_WARMUP | - GENESYS_FLAG_SEARCH_START | - GENESYS_FLAG_DARK_CALIBRATION | - GENESYS_FLAG_OFFSET_CALIBRATION | - GENESYS_FLAG_CUSTOM_GAMMA; + model.flags = ModelFlag::GAMMA_14BIT | + ModelFlag::SKIP_WARMUP | + ModelFlag::SEARCH_START | + ModelFlag::DARK_CALIBRATION | + ModelFlag::OFFSET_CALIBRATION | + ModelFlag::CUSTOM_GAMMA; model.buttons = GENESYS_HAS_SCAN_SW | GENESYS_HAS_COPY_SW; model.shading_lines = 40; model.shading_ta_lines = 0; @@ -1387,11 +1387,11 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::WOLFSON_HP2400; model.gpio_id = GpioId::HP2400; model.motor_id = MotorId::HP2400; - model.flags = GENESYS_FLAG_14BIT_GAMMA | - GENESYS_FLAG_DARK_CALIBRATION | - GENESYS_FLAG_OFFSET_CALIBRATION | - GENESYS_FLAG_SKIP_WARMUP | - GENESYS_FLAG_CUSTOM_GAMMA; + model.flags = ModelFlag::GAMMA_14BIT | + ModelFlag::DARK_CALIBRATION | + ModelFlag::OFFSET_CALIBRATION | + ModelFlag::SKIP_WARMUP | + ModelFlag::CUSTOM_GAMMA; model.buttons = GENESYS_HAS_COPY_SW | GENESYS_HAS_EMAIL_SW | GENESYS_HAS_SCAN_SW; model.shading_lines = 20; model.shading_ta_lines = 0; @@ -1449,11 +1449,11 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::AD_XP200; model.gpio_id = GpioId::XP200; model.motor_id = MotorId::XP200; - model.flags = GENESYS_FLAG_14BIT_GAMMA | - GENESYS_FLAG_CUSTOM_GAMMA | - GENESYS_FLAG_SKIP_WARMUP | - GENESYS_FLAG_DARK_CALIBRATION | - GENESYS_FLAG_OFFSET_CALIBRATION; + model.flags = ModelFlag::GAMMA_14BIT | + ModelFlag::CUSTOM_GAMMA | + ModelFlag::SKIP_WARMUP | + ModelFlag::DARK_CALIBRATION | + ModelFlag::OFFSET_CALIBRATION; model.buttons = GENESYS_HAS_SCAN_SW | GENESYS_HAS_PAGE_LOADED_SW | GENESYS_HAS_CALIBRATE; model.shading_lines = 120; model.shading_ta_lines = 0; @@ -1511,11 +1511,11 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::WOLFSON_HP3670; model.gpio_id = GpioId::HP3670; model.motor_id = MotorId::HP3670; - model.flags = GENESYS_FLAG_14BIT_GAMMA | - GENESYS_FLAG_XPA | - GENESYS_FLAG_DARK_CALIBRATION | - GENESYS_FLAG_OFFSET_CALIBRATION | - GENESYS_FLAG_CUSTOM_GAMMA; + model.flags = ModelFlag::GAMMA_14BIT | + ModelFlag::XPA | + ModelFlag::DARK_CALIBRATION | + ModelFlag::OFFSET_CALIBRATION | + ModelFlag::CUSTOM_GAMMA; model.buttons = GENESYS_HAS_COPY_SW | GENESYS_HAS_EMAIL_SW | GENESYS_HAS_SCAN_SW; model.shading_lines = 20; model.shading_ta_lines = 0; @@ -1573,7 +1573,7 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::WOLFSON_ST12; model.gpio_id = GpioId::ST12; model.motor_id = MotorId::UMAX; - model.flags = GENESYS_FLAG_UNTESTED | GENESYS_FLAG_14BIT_GAMMA; + model.flags = ModelFlag::UNTESTED | ModelFlag::GAMMA_14BIT; model.buttons = GENESYS_HAS_NO_BUTTONS; model.shading_lines = 20; model.shading_ta_lines = 0; @@ -1630,11 +1630,11 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::WOLFSON_ST24; model.gpio_id = GpioId::ST24; model.motor_id = MotorId::ST24; - model.flags = GENESYS_FLAG_UNTESTED | - GENESYS_FLAG_14BIT_GAMMA | - GENESYS_FLAG_CUSTOM_GAMMA | - GENESYS_FLAG_SEARCH_START | - GENESYS_FLAG_OFFSET_CALIBRATION; + model.flags = ModelFlag::UNTESTED | + ModelFlag::GAMMA_14BIT | + ModelFlag::CUSTOM_GAMMA | + ModelFlag::SEARCH_START | + ModelFlag::OFFSET_CALIBRATION; model.buttons = GENESYS_HAS_NO_BUTTONS; model.shading_lines = 20; model.shading_ta_lines = 0; @@ -1690,12 +1690,12 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::WOLFSON_5345; model.gpio_id = GpioId::MD_5345; model.motor_id = MotorId::MD_5345; - model.flags = GENESYS_FLAG_14BIT_GAMMA | - GENESYS_FLAG_SEARCH_START | - GENESYS_FLAG_DARK_CALIBRATION | - GENESYS_FLAG_OFFSET_CALIBRATION | - GENESYS_FLAG_SHADING_NO_MOVE | - GENESYS_FLAG_CUSTOM_GAMMA; + model.flags = ModelFlag::GAMMA_14BIT | + ModelFlag::SEARCH_START | + ModelFlag::DARK_CALIBRATION | + ModelFlag::OFFSET_CALIBRATION | + ModelFlag::SHADING_NO_MOVE | + ModelFlag::CUSTOM_GAMMA; model.buttons = GENESYS_HAS_COPY_SW | GENESYS_HAS_EMAIL_SW | GENESYS_HAS_POWER_SW | @@ -1756,10 +1756,10 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::WOLFSON_XP300; model.gpio_id = GpioId::XP300; model.motor_id = MotorId::XP300; - model.flags = GENESYS_FLAG_SKIP_WARMUP | - GENESYS_FLAG_OFFSET_CALIBRATION | - GENESYS_FLAG_DARK_CALIBRATION | - GENESYS_FLAG_CUSTOM_GAMMA; + model.flags = ModelFlag::SKIP_WARMUP | + ModelFlag::OFFSET_CALIBRATION | + ModelFlag::DARK_CALIBRATION | + ModelFlag::CUSTOM_GAMMA; model.buttons = GENESYS_HAS_SCAN_SW | GENESYS_HAS_PAGE_LOADED_SW | GENESYS_HAS_CALIBRATE; model.shading_lines = 100; model.shading_ta_lines = 0; @@ -1816,10 +1816,10 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::WOLFSON_XP300; model.gpio_id = GpioId::DP665; model.motor_id = MotorId::DP665; - model.flags = GENESYS_FLAG_SKIP_WARMUP | - GENESYS_FLAG_OFFSET_CALIBRATION | - GENESYS_FLAG_DARK_CALIBRATION | - GENESYS_FLAG_CUSTOM_GAMMA; + model.flags = ModelFlag::SKIP_WARMUP | + ModelFlag::OFFSET_CALIBRATION | + ModelFlag::DARK_CALIBRATION | + ModelFlag::CUSTOM_GAMMA; model.buttons = GENESYS_HAS_SCAN_SW | GENESYS_HAS_PAGE_LOADED_SW | GENESYS_HAS_CALIBRATE; model.shading_lines = 100; model.shading_ta_lines = 0; @@ -1876,10 +1876,10 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::WOLFSON_XP300; model.gpio_id = GpioId::DP665; model.motor_id = MotorId::ROADWARRIOR; - model.flags = GENESYS_FLAG_SKIP_WARMUP | - GENESYS_FLAG_OFFSET_CALIBRATION | - GENESYS_FLAG_CUSTOM_GAMMA | - GENESYS_FLAG_DARK_CALIBRATION; + model.flags = ModelFlag::SKIP_WARMUP | + ModelFlag::OFFSET_CALIBRATION | + ModelFlag::CUSTOM_GAMMA | + ModelFlag::DARK_CALIBRATION; model.buttons = GENESYS_HAS_SCAN_SW | GENESYS_HAS_PAGE_LOADED_SW | GENESYS_HAS_CALIBRATE; model.shading_lines = 100; model.shading_ta_lines = 0; @@ -1936,10 +1936,10 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::WOLFSON_XP300; model.gpio_id = GpioId::DP665; model.motor_id = MotorId::ROADWARRIOR; - model.flags = GENESYS_FLAG_SKIP_WARMUP | - GENESYS_FLAG_NO_CALIBRATION | - GENESYS_FLAG_CUSTOM_GAMMA | - GENESYS_FLAG_UNTESTED; + model.flags = ModelFlag::SKIP_WARMUP | + ModelFlag::NO_CALIBRATION | + ModelFlag::CUSTOM_GAMMA | + ModelFlag::UNTESTED; model.buttons = GENESYS_HAS_SCAN_SW | GENESYS_HAS_PAGE_LOADED_SW; model.shading_lines = 300; model.shading_ta_lines = 0; @@ -1997,10 +1997,10 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::WOLFSON_XP300; model.gpio_id = GpioId::DP665; model.motor_id = MotorId::ROADWARRIOR; - model.flags = GENESYS_FLAG_SKIP_WARMUP | - GENESYS_FLAG_OFFSET_CALIBRATION | - GENESYS_FLAG_CUSTOM_GAMMA | - GENESYS_FLAG_DARK_CALIBRATION; + model.flags = ModelFlag::SKIP_WARMUP | + ModelFlag::OFFSET_CALIBRATION | + ModelFlag::CUSTOM_GAMMA | + ModelFlag::DARK_CALIBRATION; model.buttons = GENESYS_HAS_SCAN_SW | GENESYS_HAS_PAGE_LOADED_SW | GENESYS_HAS_CALIBRATE; model.shading_lines = 100; model.shading_ta_lines = 0; @@ -2057,10 +2057,10 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::WOLFSON_DSM600; model.gpio_id = GpioId::DP665; model.motor_id = MotorId::DSMOBILE_600; - model.flags = GENESYS_FLAG_SKIP_WARMUP | - GENESYS_FLAG_OFFSET_CALIBRATION | - GENESYS_FLAG_CUSTOM_GAMMA | - GENESYS_FLAG_DARK_CALIBRATION; + model.flags = ModelFlag::SKIP_WARMUP | + ModelFlag::OFFSET_CALIBRATION | + ModelFlag::CUSTOM_GAMMA | + ModelFlag::DARK_CALIBRATION; model.buttons = GENESYS_HAS_SCAN_SW | GENESYS_HAS_PAGE_LOADED_SW | GENESYS_HAS_CALIBRATE; model.shading_lines = 100; model.shading_ta_lines = 0; @@ -2118,10 +2118,10 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::WOLFSON_DSM600; model.gpio_id = GpioId::DP665; model.motor_id = MotorId::DSMOBILE_600; - model.flags = GENESYS_FLAG_SKIP_WARMUP | - GENESYS_FLAG_OFFSET_CALIBRATION | - GENESYS_FLAG_CUSTOM_GAMMA | - GENESYS_FLAG_DARK_CALIBRATION; + model.flags = ModelFlag::SKIP_WARMUP | + ModelFlag::OFFSET_CALIBRATION | + ModelFlag::CUSTOM_GAMMA | + ModelFlag::DARK_CALIBRATION; model.buttons = GENESYS_HAS_SCAN_SW | GENESYS_HAS_PAGE_LOADED_SW | GENESYS_HAS_CALIBRATE; model.shading_lines = 100; model.shading_ta_lines = 0; @@ -2178,10 +2178,10 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::WOLFSON_DSM600; model.gpio_id = GpioId::DP685; model.motor_id = MotorId::XP300; - model.flags = GENESYS_FLAG_SKIP_WARMUP | - GENESYS_FLAG_OFFSET_CALIBRATION | - GENESYS_FLAG_CUSTOM_GAMMA | - GENESYS_FLAG_DARK_CALIBRATION; + model.flags = ModelFlag::SKIP_WARMUP | + ModelFlag::OFFSET_CALIBRATION | + ModelFlag::CUSTOM_GAMMA | + ModelFlag::DARK_CALIBRATION; model.buttons = GENESYS_HAS_SCAN_SW | GENESYS_HAS_PAGE_LOADED_SW | GENESYS_HAS_CALIBRATE; model.shading_lines = 100; model.shading_ta_lines = 0; @@ -2240,10 +2240,10 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::WOLFSON_XP300; model.gpio_id = GpioId::XP300; model.motor_id = MotorId::XP300; - model.flags = GENESYS_FLAG_SKIP_WARMUP | - GENESYS_FLAG_OFFSET_CALIBRATION | - GENESYS_FLAG_CUSTOM_GAMMA | - GENESYS_FLAG_DARK_CALIBRATION; + model.flags = ModelFlag::SKIP_WARMUP | + ModelFlag::OFFSET_CALIBRATION | + ModelFlag::CUSTOM_GAMMA | + ModelFlag::DARK_CALIBRATION; model.buttons = GENESYS_HAS_SCAN_SW | GENESYS_HAS_PAGE_LOADED_SW | GENESYS_HAS_CALIBRATE; model.shading_lines = 100; model.shading_ta_lines = 0; @@ -2301,11 +2301,11 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::WOLFSON_XP300; model.gpio_id = GpioId::XP300; model.motor_id = MotorId::XP300; - model.flags = GENESYS_FLAG_SKIP_WARMUP | - GENESYS_FLAG_OFFSET_CALIBRATION | - GENESYS_FLAG_DARK_CALIBRATION | - GENESYS_FLAG_CUSTOM_GAMMA | - GENESYS_FLAG_UNTESTED; + model.flags = ModelFlag::SKIP_WARMUP | + ModelFlag::OFFSET_CALIBRATION | + ModelFlag::DARK_CALIBRATION | + ModelFlag::CUSTOM_GAMMA | + ModelFlag::UNTESTED; model.buttons = GENESYS_HAS_SCAN_SW | GENESYS_HAS_PAGE_LOADED_SW | GENESYS_HAS_CALIBRATE; model.shading_lines = 100; model.shading_ta_lines = 0; @@ -2362,11 +2362,11 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::WOLFSON_5345; model.gpio_id = GpioId::MD_5345; model.motor_id = MotorId::MD_5345; - model.flags = GENESYS_FLAG_14BIT_GAMMA | - GENESYS_FLAG_SEARCH_START | - GENESYS_FLAG_DARK_CALIBRATION | - GENESYS_FLAG_OFFSET_CALIBRATION | - GENESYS_FLAG_CUSTOM_GAMMA; + model.flags = ModelFlag::GAMMA_14BIT | + ModelFlag::SEARCH_START | + ModelFlag::DARK_CALIBRATION | + ModelFlag::OFFSET_CALIBRATION | + ModelFlag::CUSTOM_GAMMA; model.buttons = GENESYS_HAS_COPY_SW | GENESYS_HAS_EMAIL_SW | GENESYS_HAS_POWER_SW | @@ -2427,11 +2427,11 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::WOLFSON_5345; model.gpio_id = GpioId::MD_5345; model.motor_id = MotorId::MD_5345; - model.flags = GENESYS_FLAG_14BIT_GAMMA | - GENESYS_FLAG_SEARCH_START | - GENESYS_FLAG_DARK_CALIBRATION | - GENESYS_FLAG_OFFSET_CALIBRATION | - GENESYS_FLAG_CUSTOM_GAMMA; + model.flags = ModelFlag::GAMMA_14BIT | + ModelFlag::SEARCH_START | + ModelFlag::DARK_CALIBRATION | + ModelFlag::OFFSET_CALIBRATION | + ModelFlag::CUSTOM_GAMMA; model.buttons = GENESYS_HAS_COPY_SW | GENESYS_HAS_EMAIL_SW | GENESYS_HAS_POWER_SW | @@ -2493,10 +2493,10 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::WOLFSON_XP300; model.gpio_id = GpioId::DP665; model.motor_id = MotorId::ROADWARRIOR; - model.flags = GENESYS_FLAG_SKIP_WARMUP | - GENESYS_FLAG_OFFSET_CALIBRATION | - GENESYS_FLAG_CUSTOM_GAMMA | - GENESYS_FLAG_DARK_CALIBRATION; + model.flags = ModelFlag::SKIP_WARMUP | + ModelFlag::OFFSET_CALIBRATION | + ModelFlag::CUSTOM_GAMMA | + ModelFlag::DARK_CALIBRATION; model.buttons = GENESYS_HAS_SCAN_SW | GENESYS_HAS_PAGE_LOADED_SW | GENESYS_HAS_CALIBRATE; model.shading_lines = 100; model.shading_ta_lines = 0; @@ -2554,11 +2554,11 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::PLUSTEK_OPTICPRO_3600; model.gpio_id = GpioId::PLUSTEK_OPTICPRO_3600; model.motor_id = MotorId::PLUSTEK_OPTICPRO_3600; - model.flags = GENESYS_FLAG_UNTESTED | // not fully working yet - GENESYS_FLAG_CUSTOM_GAMMA | - GENESYS_FLAG_SKIP_WARMUP | - GENESYS_FLAG_DARK_CALIBRATION | - GENESYS_FLAG_OFFSET_CALIBRATION; + model.flags = ModelFlag::UNTESTED | // not fully working yet + ModelFlag::CUSTOM_GAMMA | + ModelFlag::SKIP_WARMUP | + ModelFlag::DARK_CALIBRATION | + ModelFlag::OFFSET_CALIBRATION; model.buttons = GENESYS_HAS_NO_BUTTONS; model.shading_lines = 7; model.shading_ta_lines = 0; @@ -2617,13 +2617,13 @@ void genesys_init_usb_device_tables() model.gpio_id = GpioId::PLUSTEK_OPTICFILM_7200I; model.motor_id = MotorId::PLUSTEK_OPTICFILM_7200I; - model.flags = GENESYS_FLAG_CUSTOM_GAMMA | - GENESYS_FLAG_SKIP_WARMUP | - GENESYS_FLAG_DARK_CALIBRATION | - GENESYS_FLAG_OFFSET_CALIBRATION | - GENESYS_FLAG_SHADING_REPARK | - GENESYS_FLAG_CALIBRATION_HOST_SIDE | - GENESYS_FLAG_16BIT_DATA_INVERTED; + model.flags = ModelFlag::CUSTOM_GAMMA | + ModelFlag::SKIP_WARMUP | + ModelFlag::DARK_CALIBRATION | + ModelFlag::OFFSET_CALIBRATION | + ModelFlag::SHADING_REPARK | + ModelFlag::CALIBRATION_HOST_SIDE | + ModelFlag::INVERTED_16BIT_DATA; model.shading_lines = 7; model.shading_ta_lines = 50; @@ -2681,12 +2681,12 @@ void genesys_init_usb_device_tables() model.gpio_id = GpioId::PLUSTEK_OPTICFILM_7300; model.motor_id = MotorId::PLUSTEK_OPTICFILM_7300; - model.flags = GENESYS_FLAG_CUSTOM_GAMMA | - GENESYS_FLAG_SKIP_WARMUP | - GENESYS_FLAG_DARK_CALIBRATION | - GENESYS_FLAG_OFFSET_CALIBRATION | - GENESYS_FLAG_SHADING_REPARK | - GENESYS_FLAG_CALIBRATION_HOST_SIDE; + model.flags = ModelFlag::CUSTOM_GAMMA | + ModelFlag::SKIP_WARMUP | + ModelFlag::DARK_CALIBRATION | + ModelFlag::OFFSET_CALIBRATION | + ModelFlag::SHADING_REPARK | + ModelFlag::CALIBRATION_HOST_SIDE; model.shading_lines = 7; model.shading_ta_lines = 50; @@ -2744,12 +2744,12 @@ void genesys_init_usb_device_tables() model.gpio_id = GpioId::PLUSTEK_OPTICFILM_7500I; model.motor_id = MotorId::PLUSTEK_OPTICFILM_7500I; - model.flags = GENESYS_FLAG_CUSTOM_GAMMA | - GENESYS_FLAG_SKIP_WARMUP | - GENESYS_FLAG_DARK_CALIBRATION | - GENESYS_FLAG_OFFSET_CALIBRATION | - GENESYS_FLAG_SHADING_REPARK | - GENESYS_FLAG_CALIBRATION_HOST_SIDE; + model.flags = ModelFlag::CUSTOM_GAMMA | + ModelFlag::SKIP_WARMUP | + ModelFlag::DARK_CALIBRATION | + ModelFlag::OFFSET_CALIBRATION | + ModelFlag::SHADING_REPARK | + ModelFlag::CALIBRATION_HOST_SIDE; model.shading_lines = 7; model.shading_ta_lines = 50; @@ -2806,13 +2806,13 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::CANON_LIDE_200; // Not defined yet for N6310 model.gpio_id = GpioId::HP_N6310; model.motor_id = MotorId::CANON_LIDE_200; // Not defined yet for N6310 - model.flags = GENESYS_FLAG_UNTESTED | - GENESYS_FLAG_14BIT_GAMMA | - GENESYS_FLAG_DARK_CALIBRATION | - GENESYS_FLAG_OFFSET_CALIBRATION | - GENESYS_FLAG_CUSTOM_GAMMA | - GENESYS_FLAG_SKIP_WARMUP | - GENESYS_FLAG_NO_CALIBRATION; + model.flags = ModelFlag::UNTESTED | + ModelFlag::GAMMA_14BIT | + ModelFlag::DARK_CALIBRATION | + ModelFlag::OFFSET_CALIBRATION | + ModelFlag::CUSTOM_GAMMA | + ModelFlag::SKIP_WARMUP | + ModelFlag::NO_CALIBRATION; model.buttons = GENESYS_HAS_NO_BUTTONS; model.shading_lines = 100; @@ -2871,9 +2871,9 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::PLUSTEK_OPTICBOOK_3800; model.gpio_id = GpioId::PLUSTEK_OPTICBOOK_3800; model.motor_id = MotorId::PLUSTEK_OPTICBOOK_3800; - model.flags = GENESYS_FLAG_SKIP_WARMUP | - GENESYS_FLAG_OFFSET_CALIBRATION | - GENESYS_FLAG_CUSTOM_GAMMA; + model.flags = ModelFlag::SKIP_WARMUP | + ModelFlag::OFFSET_CALIBRATION | + ModelFlag::CUSTOM_GAMMA; model.buttons = GENESYS_HAS_NO_BUTTONS; // TODO there are 4 buttons to support model.shading_lines = 100; model.shading_ta_lines = 0; @@ -2931,10 +2931,10 @@ void genesys_init_usb_device_tables() model.adc_id = AdcId::IMG101; model.gpio_id = GpioId::IMG101; model.motor_id = MotorId::IMG101; - model.flags = GENESYS_FLAG_SKIP_WARMUP | - GENESYS_FLAG_OFFSET_CALIBRATION | - GENESYS_FLAG_CUSTOM_GAMMA | - GENESYS_FLAG_UNTESTED; + model.flags = ModelFlag::SKIP_WARMUP | + ModelFlag::OFFSET_CALIBRATION | + ModelFlag::CUSTOM_GAMMA | + ModelFlag::UNTESTED; model.buttons = GENESYS_HAS_NO_BUTTONS ; model.shading_lines = 100; model.shading_ta_lines = 0; diff --git a/testsuite/backend/genesys/session_config_test.cpp b/testsuite/backend/genesys/session_config_test.cpp index 42c3066df..c8dabe1f7 100644 --- a/testsuite/backend/genesys/session_config_test.cpp +++ b/testsuite/backend/genesys/session_config_test.cpp @@ -394,7 +394,7 @@ std::vector get_all_test_configs() std::unordered_set model_names; for (const auto& usb_dev : *genesys::s_usb_devices) { - if (usb_dev.model.flags & GENESYS_FLAG_UNTESTED) { + if (genesys::has_flag(usb_dev.model.flags, genesys::ModelFlag::UNTESTED)) { continue; } if (model_names.find(usb_dev.model.name) != model_names.end()) {