Merge branch 'genesys-model-flag-enum' into 'master'

genesys: Move model flags to separate enum

See merge request sane-project/backends!325
merge-requests/340/head
Povilas Kanapickas 2020-02-02 12:25:16 +00:00
commit 03d50b5e64
13 zmienionych plików z 368 dodań i 348 usunięć

Wyświetl plik

@ -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;

Wyświetl plik

@ -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<ModelFlag>(static_cast<unsigned>(left) | static_cast<unsigned>(right));
}
inline ModelFlag& operator|=(ModelFlag& left, ModelFlag right)
{
left = left | right;
return left;
}
inline ModelFlag operator&(ModelFlag left, ModelFlag right)
{
return static_cast<ModelFlag>(static_cast<unsigned>(left) & static_cast<unsigned>(right));
}
inline bool has_flag(ModelFlag flags, ModelFlag which)
{
return (flags & which) == which;
}
enum class ScanFlag : unsigned
{
NONE = 0,

Wyświetl plik

@ -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<uint16_t> 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<uint8_t> 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<std::uint32_t>((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<unsigned>& 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

Wyświetl plik

@ -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 {

Wyświetl plik

@ -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:

Wyświetl plik

@ -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<float>(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);

Wyświetl plik

@ -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 {

Wyświetl plik

@ -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;

Wyświetl plik

@ -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;

Wyświetl plik

@ -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<ImagePipelineNodeSwap16BitEndian>();
}
@ -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<ImagePipelineNodeSwap16BitEndian>();
}
@ -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<ImagePipelineNodeCalibrate>(dev->dark_average_data,
dev->white_average_data);

Wyświetl plik

@ -108,39 +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_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 */
#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 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)
#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 */

Wyświetl plik

@ -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,14 +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_HAS_UTA |
GENESYS_FLAG_HAS_UTA_INFRARED |
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;
@ -615,14 +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_HAS_UTA |
GENESYS_FLAG_HAS_UTA_INFRARED |
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;
@ -680,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 |
@ -745,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 |
@ -808,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 |
@ -874,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 |
@ -940,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 |
@ -1006,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 |
@ -1071,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 |
@ -1136,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 |
@ -1201,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 |
@ -1265,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 |
@ -1328,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;
@ -1391,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;
@ -1453,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;
@ -1515,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;
@ -1577,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;
@ -1634,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;
@ -1694,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 |
@ -1760,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;
@ -1820,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;
@ -1880,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;
@ -1940,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;
@ -2001,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;
@ -2061,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;
@ -2122,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;
@ -2182,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;
@ -2244,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;
@ -2305,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;
@ -2366,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 |
@ -2431,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 |
@ -2497,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;
@ -2558,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;
@ -2621,16 +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_HAS_UTA |
GENESYS_FLAG_HAS_UTA_INFRARED |
GENESYS_FLAG_CUSTOM_GAMMA |
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;
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;
@ -2688,14 +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_HAS_UTA |
GENESYS_FLAG_CUSTOM_GAMMA |
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;
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;
@ -2753,15 +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_HAS_UTA |
GENESYS_FLAG_HAS_UTA_INFRARED |
GENESYS_FLAG_CUSTOM_GAMMA |
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;
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;
@ -2818,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;
@ -2883,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;
@ -2943,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;

Wyświetl plik

@ -394,7 +394,7 @@ std::vector<TestConfig> get_all_test_configs()
std::unordered_set<std::string> 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()) {