diff options
Diffstat (limited to 'backend/genesys_devices.cc')
| -rw-r--r-- | backend/genesys_devices.cc | 5165 | 
1 files changed, 0 insertions, 5165 deletions
| diff --git a/backend/genesys_devices.cc b/backend/genesys_devices.cc deleted file mode 100644 index b4ae5ca..0000000 --- a/backend/genesys_devices.cc +++ /dev/null @@ -1,5165 +0,0 @@ -/* sane - Scanner Access Now Easy. - -   Copyright (C) 2003 Oliver Rauch -   Copyright (C) 2003-2005 Henning Meier-Geinitz <henning@meier-geinitz.de> -   Copyright (C) 2004, 2005 Gerhard Jaeger <gerhard@gjaeger.de> -   Copyright (C) 2004-2013 Stéphane Voltz <stef.dev@free.fr> -   Copyright (C) 2005-2009 Pierre Willenbrock <pierre@pirsoft.dnsalias.org> -   Copyright (C) 2007 Luke <iceyfor@gmail.com> -   Copyright (C) 2010 Jack McGill <jmcgill85258@yahoo.com> -   Copyright (C) 2010 Andrey Loginov <avloginov@gmail.com>, -                   xerox travelscan device entry -   Copyright (C) 2010 Chris Berry <s0457957@sms.ed.ac.uk> and Michael Rickmann <mrickma@gwdg.de> -                 for Plustek Opticbook 3600 support - -   This file is part of the SANE package. - -   This program is free software; you can redistribute it and/or -   modify it under the terms of the GNU General Public License as -   published by the Free Software Foundation; either version 2 of the -   License, or (at your option) any later version. - -   This program is distributed in the hope that it will be useful, but -   WITHOUT ANY WARRANTY; without even the implied warranty of -   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU -   General Public License for more details. - -   You should have received a copy of the GNU General Public License -   along with this program; if not, write to the Free Software -   Foundation, Inc., 59 Temple Place - Suite 330, Boston, -   MA 02111-1307, USA. - -   As a special exception, the authors of SANE give permission for -   additional uses of the libraries contained in this release of SANE. - -   The exception is that, if you link a SANE library with other files -   to produce an executable, this does not by itself cause the -   resulting executable to be covered by the GNU General Public -   License.  Your use of that executable is in no way restricted on -   account of linking the SANE library code into it. - -   This exception does not, however, invalidate any other reasons why -   the executable file might be covered by the GNU General Public -   License. - -   If you submit changes to SANE to the maintainers to be included in -   a subsequent release, you agree by submitting the changes that -   those changes may be distributed with this exception intact. - -   If you write modifications of your own for SANE, it is your choice -   whether to permit this exception to apply to your modifications. -   If you do not wish that, delete this exception notice. -*/ - -/* ------------------------------------------------------------------------ */ -/*                     Some setup DAC and CCD tables                        */ -/* ------------------------------------------------------------------------ */ - -#include "genesys_low.h" - -StaticInit<std::vector<Genesys_Frontend>> s_frontends; - -void genesys_init_frontend_tables() -{ -    s_frontends.init(); - -    GenesysFrontendLayout wolfson_layout; -    wolfson_layout.offset_addr = { 0x20, 0x21, 0x22 }; -    wolfson_layout.gain_addr = { 0x28, 0x29, 0x2a }; - -    Genesys_Frontend fe; -    fe.fe_id = DAC_WOLFSON_UMAX; -    fe.layout = wolfson_layout; -    fe.regs = { -        { 0x00, 0x00 }, -        { 0x01, 0x03 }, -        { 0x02, 0x05 }, -        { 0x03, 0x11 }, -        { 0x20, 0x80 }, -        { 0x21, 0x80 }, -        { 0x22, 0x80 }, -        { 0x24, 0x00 }, -        { 0x25, 0x00 }, -        { 0x26, 0x00 }, -        { 0x28, 0x02 }, -        { 0x29, 0x02 }, -        { 0x2a, 0x02 }, -    }; -    fe.reg2 = {0x00, 0x00, 0x00}; -    s_frontends->push_back(fe); - - -    fe = Genesys_Frontend(); -    fe.fe_id = DAC_WOLFSON_ST12; -    fe.layout = wolfson_layout; -    fe.regs = { -        { 0x00, 0x00 }, -        { 0x01, 0x03 }, -        { 0x02, 0x05 }, -        { 0x03, 0x03 }, -        { 0x20, 0xc8 }, -        { 0x21, 0xc8 }, -        { 0x22, 0xc8 }, -        { 0x24, 0x00 }, -        { 0x25, 0x00 }, -        { 0x26, 0x00 }, -        { 0x28, 0x04 }, -        { 0x29, 0x04 }, -        { 0x2a, 0x04 }, -    }; -    fe.reg2 = {0x00, 0x00, 0x00}; -    s_frontends->push_back(fe); - - -    fe = Genesys_Frontend(); -    fe.fe_id = DAC_WOLFSON_ST24; -    fe.layout = wolfson_layout; -    fe.regs = { -        { 0x00, 0x00 }, -        { 0x01, 0x03 }, -        { 0x02, 0x05 }, -        { 0x03, 0x21 }, -        { 0x20, 0xc8 }, -        { 0x21, 0xc8 }, -        { 0x22, 0xc8 }, -        { 0x24, 0x00 }, -        { 0x25, 0x00 }, -        { 0x26, 0x00 }, -        { 0x28, 0x06 }, -        { 0x29, 0x06 }, -        { 0x2a, 0x06 }, -    }; -    fe.reg2 = {0x00, 0x00, 0x00}; -    s_frontends->push_back(fe); - - -    fe = Genesys_Frontend(); -    fe.fe_id = DAC_WOLFSON_5345; -    fe.layout = wolfson_layout; -    fe.regs = { -        { 0x00, 0x00 }, -        { 0x01, 0x03 }, -        { 0x02, 0x05 }, -        { 0x03, 0x12 }, -        { 0x20, 0xb8 }, -        { 0x21, 0xb8 }, -        { 0x22, 0xb8 }, -        { 0x24, 0x00 }, -        { 0x25, 0x00 }, -        { 0x26, 0x00 }, -        { 0x28, 0x04 }, -        { 0x29, 0x04 }, -        { 0x2a, 0x04 }, -    }; -    fe.reg2 = {0x00, 0x00, 0x00}; -    s_frontends->push_back(fe); - - -    // reg3=0x02 for 50-600 dpi, 0x32 (0x12 also works well) at 1200 -    fe = Genesys_Frontend(); -    fe.fe_id = DAC_WOLFSON_HP2400; -    fe.layout = wolfson_layout; -    fe.regs = { -        { 0x00, 0x00 }, -        { 0x01, 0x03 }, -        { 0x02, 0x05 }, -        { 0x03, 0x02 }, -        { 0x20, 0xb4 }, -        { 0x21, 0xb6 }, -        { 0x22, 0xbc }, -        { 0x24, 0x00 }, -        { 0x25, 0x00 }, -        { 0x26, 0x00 }, -        { 0x28, 0x06 }, -        { 0x29, 0x09 }, -        { 0x2a, 0x08 }, -    }; -    fe.reg2 = {0x00, 0x00, 0x00}; -    s_frontends->push_back(fe); - - -    fe = Genesys_Frontend(); -    fe.fe_id = DAC_WOLFSON_HP2300; -    fe.layout = wolfson_layout; -    fe.regs = { -        { 0x00, 0x00 }, -        { 0x01, 0x03 }, -        { 0x02, 0x04 }, -        { 0x03, 0x02 }, -        { 0x20, 0xbe }, -        { 0x21, 0xbe }, -        { 0x22, 0xbe }, -        { 0x24, 0x00 }, -        { 0x25, 0x00 }, -        { 0x26, 0x00 }, -        { 0x28, 0x04 }, -        { 0x29, 0x04 }, -        { 0x2a, 0x04 }, -    }; -    fe.reg2 = {0x00, 0x00, 0x00}; -    s_frontends->push_back(fe); - - -    fe = Genesys_Frontend(); -    fe.fe_id = DAC_CANONLIDE35; -    fe.layout = wolfson_layout; -    fe.regs = { -        { 0x00, 0x00 }, -        { 0x01, 0x3d }, -        { 0x02, 0x08 }, -        { 0x03, 0x00 }, -        { 0x20, 0xe1 }, -        { 0x21, 0xe1 }, -        { 0x22, 0xe1 }, -        { 0x24, 0x00 }, -        { 0x25, 0x00 }, -        { 0x26, 0x00 }, -        { 0x28, 0x93 }, -        { 0x29, 0x93 }, -        { 0x2a, 0x93 }, -    }; -    fe.reg2 = {0x00, 0x19, 0x06}; -    s_frontends->push_back(fe); - - -    fe = Genesys_Frontend(); -    fe.fe_id = DAC_AD_XP200; -    fe.layout = wolfson_layout; -    fe.regs = { -        { 0x00, 0x58 }, -        { 0x01, 0x80 }, -        { 0x02, 0x00 }, -        { 0x03, 0x00 }, -        { 0x20, 0x09 }, -        { 0x21, 0x09 }, -        { 0x22, 0x09 }, -        { 0x24, 0x00 }, -        { 0x25, 0x00 }, -        { 0x26, 0x00 }, -        { 0x28, 0x09 }, -        { 0x29, 0x09 }, -        { 0x2a, 0x09 }, -    }; -    fe.reg2 = {0x00, 0x00, 0x00}; -    s_frontends->push_back(fe); - - -    fe = Genesys_Frontend(); -    fe.fe_id = DAC_WOLFSON_XP300; -    fe.layout = wolfson_layout; -    fe.regs = { -        { 0x00, 0x00 }, -        { 0x01, 0x35 }, -        { 0x02, 0x20 }, -        { 0x03, 0x14 }, -        { 0x20, 0xe1 }, -        { 0x21, 0xe1 }, -        { 0x22, 0xe1 }, -        { 0x24, 0x00 }, -        { 0x25, 0x00 }, -        { 0x26, 0x00 }, -        { 0x28, 0x93 }, -        { 0x29, 0x93 }, -        { 0x2a, 0x93 }, -    }; -    fe.reg2 = {0x07, 0x00, 0x00}; -    s_frontends->push_back(fe); - - -    fe = Genesys_Frontend(); -    fe.fe_id = DAC_WOLFSON_HP3670; -    fe.layout = wolfson_layout; -    fe.regs = { -        { 0x00, 0x00 }, -        { 0x01, 0x03 }, -        { 0x02, 0x05 }, -        { 0x03, 0x32 }, -        { 0x20, 0xba }, -        { 0x21, 0xb8 }, -        { 0x22, 0xb8 }, -        { 0x24, 0x00 }, -        { 0x25, 0x00 }, -        { 0x26, 0x00 }, -        { 0x28, 0x06 }, -        { 0x29, 0x05 }, -        { 0x2a, 0x04 }, -    }; -    fe.reg2 = {0x00, 0x00, 0x00}; -    s_frontends->push_back(fe); - - -    fe = Genesys_Frontend(); -    fe.fe_id = DAC_WOLFSON_DSM600; -    fe.layout = wolfson_layout; -    fe.regs = { -        { 0x00, 0x00 }, -        { 0x01, 0x35 }, -        { 0x02, 0x20 }, -        { 0x03, 0x14 }, -        { 0x20, 0x85 }, -        { 0x21, 0x85 }, -        { 0x22, 0x85 }, -        { 0x24, 0x00 }, -        { 0x25, 0x00 }, -        { 0x26, 0x00 }, -        { 0x28, 0xa0 }, -        { 0x29, 0xa0 }, -        { 0x2a, 0xa0 }, -    }; -    fe.reg2 = {0x07, 0x00, 0x00}; -    s_frontends->push_back(fe); - - -    fe = Genesys_Frontend(); -    fe.fe_id = DAC_CANONLIDE200; -    fe.layout = wolfson_layout; -    fe.regs = { -        { 0x00, 0x9d }, -        { 0x01, 0x91 }, -        { 0x02, 0x00 }, -        { 0x03, 0x00 }, -        { 0x20, 0x00 }, -        { 0x21, 0x3f }, -        { 0x22, 0x00 }, -        { 0x24, 0x00 }, -        { 0x25, 0x00 }, -        { 0x26, 0x00 }, -        { 0x28, 0x32 }, -        { 0x29, 0x04 }, -        { 0x2a, 0x00 }, -    }; -    fe.reg2 = {0x00, 0x00, 0x00}; -    s_frontends->push_back(fe); - - -    fe = Genesys_Frontend(); -    fe.fe_id = DAC_CANONLIDE700; -    fe.layout = wolfson_layout; -    fe.regs = { -        { 0x00, 0x9d }, -        { 0x01, 0x9e }, -        { 0x02, 0x00 }, -        { 0x03, 0x00 }, -        { 0x20, 0x00 }, -        { 0x21, 0x3f }, -        { 0x22, 0x00 }, -        { 0x24, 0x00 }, -        { 0x25, 0x00 }, -        { 0x26, 0x00 }, -        { 0x28, 0x2f }, -        { 0x29, 0x04 }, -        { 0x2a, 0x00 }, -    }; -    fe.reg2 = {0x00, 0x00, 0x00}; -    s_frontends->push_back(fe); - - -    fe = Genesys_Frontend(); -    fe.fe_id = DAC_KVSS080; -    fe.layout = wolfson_layout; -    fe.regs = { -        { 0x00, 0x00 }, -        { 0x01, 0x23 }, -        { 0x02, 0x24 }, -        { 0x03, 0x0f }, -        { 0x20, 0x80 }, -        { 0x21, 0x80 }, -        { 0x22, 0x80 }, -        { 0x24, 0x00 }, -        { 0x25, 0x00 }, -        { 0x26, 0x00 }, -        { 0x28, 0x4b }, -        { 0x29, 0x4b }, -        { 0x2a, 0x4b }, -    }; -    fe.reg2 = {0x00,0x00,0x00}; -    s_frontends->push_back(fe); - - -    fe = Genesys_Frontend(); -    fe.fe_id = DAC_G4050; -    fe.layout = wolfson_layout; -    fe.regs = { -        { 0x00, 0x00 }, -        { 0x01, 0x23 }, -        { 0x02, 0x24 }, -        { 0x03, 0x1f }, -        { 0x20, 0x45 }, -        { 0x21, 0x45 }, -        { 0x22, 0x45 }, -        { 0x24, 0x00 }, -        { 0x25, 0x00 }, -        { 0x26, 0x00 }, -        { 0x28, 0x4b }, -        { 0x29, 0x4b }, -        { 0x2a, 0x4b }, -    }; -    fe.reg2 = {0x00,0x00,0x00}; -    s_frontends->push_back(fe); - - -    fe = Genesys_Frontend(); -    fe.fe_id = DAC_CANONLIDE110; -    fe.layout = wolfson_layout; -    fe.regs = { -        { 0x00, 0x80 }, -        { 0x01, 0x8a }, -        { 0x02, 0x23 }, -        { 0x03, 0x4c }, -        { 0x20, 0x00 }, -        { 0x21, 0x00 }, -        { 0x22, 0x00 }, -        { 0x24, 0x00 }, -        { 0x25, 0xca }, -        { 0x26, 0x94 }, -        { 0x28, 0x00 }, -        { 0x29, 0x00 }, -        { 0x2a, 0x00 }, -    }; -    fe.reg2 = {0x00, 0x00, 0x00}; -    s_frontends->push_back(fe); - -    /** @brief GL124 special case -    * for GL124 based scanners, this struct is "abused" -    * in fact the fields are map like below to AFE registers -    * (from Texas Instrument or alike ?) -    */ -    fe = Genesys_Frontend(); -    fe.fe_id = DAC_CANONLIDE120; -    fe.layout = wolfson_layout; -    fe.regs = { -        { 0x00, 0x80 }, -        { 0x01, 0xa3 }, -        { 0x02, 0x2b }, -        { 0x03, 0x4c }, -        { 0x20, 0x00 }, -        { 0x21, 0x00 }, -        { 0x22, 0x00 }, -        { 0x24, 0x00 }, // actual address 0x05 -        { 0x25, 0xca }, // actual address 0x06 -        { 0x26, 0x95 }, // actual address 0x07 -        { 0x28, 0x00 }, -        { 0x29, 0x00 }, -        { 0x2a, 0x00 }, -    }; -    fe.reg2 = {0x00, 0x00, 0x00}; -    s_frontends->push_back(fe); - - -    fe = Genesys_Frontend(); -    fe.fe_id = DAC_PLUSTEK_3600; -    fe.layout = wolfson_layout; -    fe.regs = { -        { 0x00, 0x70 }, -        { 0x01, 0x80 }, -        { 0x02, 0x00 }, -        { 0x03, 0x00 }, -        { 0x20, 0x00 }, -        { 0x21, 0x00 }, -        { 0x22, 0x00 }, -        { 0x24, 0x00 }, -        { 0x25, 0x00 }, -        { 0x26, 0x00 }, -        { 0x28, 0x3f }, -        { 0x29, 0x3d }, -        { 0x2a, 0x3d }, -    }; -    fe.reg2 = {0x00, 0x00, 0x00}; -    s_frontends->push_back(fe); - - -    fe = Genesys_Frontend(); -    fe.fe_id = DAC_CS8400F; -    fe.layout = wolfson_layout; -    fe.regs = { -        { 0x00, 0x00 }, -        { 0x01, 0x23 }, -        { 0x02, 0x24 }, -        { 0x03, 0x0f }, -        { 0x20, 0x60 }, -        { 0x21, 0x5c }, -        { 0x22, 0x6c }, -        { 0x24, 0x00 }, -        { 0x25, 0x00 }, -        { 0x26, 0x00 }, -        { 0x28, 0x8a }, -        { 0x29, 0x9f }, -        { 0x2a, 0xc2 }, -    }; -    fe.reg2 = {0x00, 0x00, 0x00}; -    s_frontends->push_back(fe); - - -    fe = Genesys_Frontend(); -    fe.fe_id = DAC_CS8600F; -    fe.layout = wolfson_layout; -    fe.regs = { -        { 0x00, 0x00 }, -        { 0x01, 0x23 }, -        { 0x02, 0x24 }, -        { 0x03, 0x2f }, -        { 0x20, 0x67 }, -        { 0x21, 0x69 }, -        { 0x22, 0x68 }, -        { 0x24, 0x00 }, -        { 0x25, 0x00 }, -        { 0x26, 0x00 }, -        { 0x28, 0xdb }, -        { 0x29, 0xda }, -        { 0x2a, 0xd7 }, -    }; -    fe.reg2 = { 0x00, 0x00, 0x00 }; -    s_frontends->push_back(fe); - - -    fe = Genesys_Frontend(); -    fe.fe_id = DAC_IMG101; -    fe.layout = wolfson_layout; -    fe.regs = { -        { 0x00, 0x78 }, -        { 0x01, 0xf0 }, -        { 0x02, 0x00 }, -        { 0x03, 0x00 }, -        { 0x20, 0x00 }, -        { 0x21, 0x00 }, -        { 0x22, 0x00 }, -        { 0x24, 0x00 }, -        { 0x25, 0x00 }, -        { 0x26, 0x00 }, -        { 0x28, 0x00 }, -        { 0x29, 0x00 }, -        { 0x2a, 0x00 }, -    }; -    fe.reg2 = {0x00, 0x00, 0x00}; -    s_frontends->push_back(fe); - - -    fe = Genesys_Frontend(); -    fe.fe_id = DAC_PLUSTEK3800; -    fe.layout = wolfson_layout; -    fe.regs = { -        { 0x00, 0x78 }, -        { 0x01, 0xf0 }, -        { 0x02, 0x00 }, -        { 0x03, 0x00 }, -        { 0x20, 0x00 }, -        { 0x21, 0x00 }, -        { 0x22, 0x00 }, -        { 0x24, 0x00 }, -        { 0x25, 0x00 }, -        { 0x26, 0x00 }, -        { 0x28, 0x00 }, -        { 0x29, 0x00 }, -        { 0x2a, 0x00 }, -    }; -    fe.reg2 = {0x00, 0x00, 0x00}; -    s_frontends->push_back(fe); - - -    /* reg0: control 74 data, 70 no data -    * reg3: offset -    * reg6: gain -    * reg0 , reg3, reg6 */ -    fe = Genesys_Frontend(); -    fe.fe_id = DAC_CANONLIDE80; -    fe.layout = wolfson_layout; -    fe.regs = { -        { 0x00, 0x70 }, -        { 0x01, 0x16 }, -        { 0x02, 0x60 }, -        { 0x03, 0x00 }, -        { 0x20, 0x00 }, -        { 0x21, 0x00 }, -        { 0x22, 0x00 }, -        { 0x24, 0x00 }, -        { 0x25, 0x00 }, -        { 0x26, 0x00 }, -        { 0x28, 0x00 }, -        { 0x29, 0x00 }, -        { 0x2a, 0x00 }, -    }; -    fe.reg2 = {0x00, 0x00, 0x00}; -    s_frontends->push_back(fe); -} - - -/** for setting up the sensor-specific settings: - * Optical Resolution, number of black pixels, number of dummy pixels, - * CCD_start_xoffset, and overall number of sensor pixels - * registers 0x08-0x0b, 0x10-0x1d and 0x52-0x5e - */ -StaticInit<std::vector<Genesys_Sensor>> s_sensors; - -void genesys_init_sensor_tables() -{ -    s_sensors.init(); - -    Genesys_Sensor sensor; -    sensor.sensor_id = CCD_UMAX; -    sensor.optical_res = 1200; -    sensor.black_pixels = 48; -    sensor.dummy_pixel = 64; -    sensor.CCD_start_xoffset = 0; -    sensor.sensor_pixels = 10800; -    sensor.fau_gain_white_ref = 210; -    sensor.gain_white_ref = 230; -    sensor.exposure = { 0x0000, 0x0000, 0x0000 }; -    sensor.custom_regs = { -        { 0x08, 0x01 }, -        { 0x09, 0x03 }, -        { 0x0a, 0x05 }, -        { 0x0b, 0x07 }, -        { 0x16, 0x33 }, -        { 0x17, 0x05 }, -        { 0x18, 0x31 }, -        { 0x19, 0x2a }, -        { 0x1a, 0x00 }, -        { 0x1b, 0x00 }, -        { 0x1c, 0x00 }, -        { 0x1d, 0x02 }, -        { 0x52, 0x13 }, -        { 0x53, 0x17 }, -        { 0x54, 0x03 }, -        { 0x55, 0x07 }, -        { 0x56, 0x0b }, -        { 0x57, 0x0f }, -        { 0x58, 0x23 }, -        { 0x59, 0x00 }, -        { 0x5a, 0xc1 }, -        { 0x5b, 0x00 }, -        { 0x5c, 0x00 }, -        { 0x5d, 0x00 }, -        { 0x5e, 0x00 }, -    }; -    sensor.gamma = {1.0, 1.0, 1.0}; -    s_sensors->push_back(sensor); - - -    sensor = Genesys_Sensor(); -    sensor.sensor_id = CCD_ST12; -    sensor.optical_res = 600; -    sensor.black_pixels = 48; -    sensor.dummy_pixel = 85; -    sensor.CCD_start_xoffset = 152; -    sensor.sensor_pixels = 5416; -    sensor.fau_gain_white_ref = 210; -    sensor.gain_white_ref = 230; -    sensor.exposure = { 0x0000, 0x0000, 0x0000 }; -    sensor.custom_regs = { -        { 0x08, 0x02 }, -        { 0x09, 0x00 }, -        { 0x0a, 0x06 }, -        { 0x0b, 0x04 }, -        { 0x16, 0x2b }, -        { 0x17, 0x08 }, -        { 0x18, 0x20 }, -        { 0x19, 0x2a }, -        { 0x1a, 0x00 }, -        { 0x1b, 0x00 }, -        { 0x1c, 0x0c }, -        { 0x1d, 0x03 }, -        { 0x52, 0x0f }, -        { 0x53, 0x13 }, -        { 0x54, 0x17 }, -        { 0x55, 0x03 }, -        { 0x56, 0x07 }, -        { 0x57, 0x0b }, -        { 0x58, 0x83 }, -        { 0x59, 0x00 }, -        { 0x5a, 0xc1 }, -        { 0x5b, 0x00 }, -        { 0x5c, 0x00 }, -        { 0x5d, 0x00 }, -        { 0x5e, 0x00 }, -    }; -    sensor.gamma = {1.0, 1.0, 1.0}; -    s_sensors->push_back(sensor); - - -    sensor = Genesys_Sensor(); -    sensor.sensor_id = CCD_ST24; -    sensor.optical_res = 1200; -    sensor.black_pixels = 48; -    sensor.dummy_pixel = 64; -    sensor.CCD_start_xoffset = 0; -    sensor.sensor_pixels = 10800; -    sensor.fau_gain_white_ref = 210; -    sensor.gain_white_ref = 230; -    sensor.exposure = { 0x0000, 0x0000, 0x0000 }; -    sensor.custom_regs = { -        { 0x08, 0x0e }, -        { 0x09, 0x0c }, -        { 0x0a, 0x00 }, -        { 0x0b, 0x0c }, -        { 0x16, 0x33 }, -        { 0x17, 0x08 }, -        { 0x18, 0x31 }, -        { 0x19, 0x2a }, -        { 0x1a, 0x00 }, -        { 0x1b, 0x00 }, -        { 0x1c, 0x00 }, -        { 0x1d, 0x02 }, -        { 0x52, 0x17 }, -        { 0x53, 0x03 }, -        { 0x54, 0x07 }, -        { 0x55, 0x0b }, -        { 0x56, 0x0f }, -        { 0x57, 0x13 }, -        { 0x58, 0x03 }, -        { 0x59, 0x00 }, -        { 0x5a, 0xc1 }, -        { 0x5b, 0x00 }, -        { 0x5c, 0x00 }, -        { 0x5d, 0x00 }, -        { 0x5e, 0x00 }, -    }; -    sensor.gamma = {1.0, 1.0, 1.0}; -    s_sensors->push_back(sensor); - - -    sensor = Genesys_Sensor(); -    sensor.sensor_id = CCD_5345; -    sensor.optical_res = 1200; -    sensor.ccd_size_divisor = 2; -    sensor.black_pixels = 48; -    sensor.dummy_pixel = 16; -    sensor.CCD_start_xoffset = 0; -    sensor.sensor_pixels = 10872; -    sensor.fau_gain_white_ref = 190; -    sensor.gain_white_ref = 190; -    sensor.exposure = { 0x0000, 0x0000, 0x0000 }; -    sensor.custom_regs = { -        { 0x08, 0x0d }, -        { 0x09, 0x0f }, -        { 0x0a, 0x11 }, -        { 0x0b, 0x13 }, -        { 0x16, 0x0b }, -        { 0x17, 0x0a }, -        { 0x18, 0x30 }, -        { 0x19, 0x2a }, -        { 0x1a, 0x00 }, -        { 0x1b, 0x00 }, -        { 0x1c, 0x00 }, -        { 0x1d, 0x03 }, -        { 0x52, 0x0f }, -        { 0x53, 0x13 }, -        { 0x54, 0x17 }, -        { 0x55, 0x03 }, -        { 0x56, 0x07 }, -        { 0x57, 0x0b }, -        { 0x58, 0x23 }, -        { 0x59, 0x00 }, -        { 0x5a, 0xc1 }, -        { 0x5b, 0x00 }, -        { 0x5c, 0x00 }, -        { 0x5d, 0x00 }, -        { 0x5e, 0x00 }, -    }; -    sensor.gamma = {2.38, 2.35, 2.34}; -    s_sensors->push_back(sensor); - - -    sensor = Genesys_Sensor(); -    sensor.sensor_id = CCD_HP2400; -    sensor.optical_res = 1200, -    sensor.black_pixels = 48; -    sensor.dummy_pixel = 15; -    sensor.CCD_start_xoffset = 0; -    sensor.sensor_pixels = 10872; -    sensor.fau_gain_white_ref = 210; -    sensor.gain_white_ref = 200; -    sensor.exposure = { 0x0000, 0x0000, 0x0000 }; -    sensor.custom_regs = { -        { 0x08, 0x14 }, -        { 0x09, 0x15 }, -        { 0x0a, 0x00 }, -        { 0x0b, 0x00 }, -        { 0x16, 0xbf }, -        { 0x17, 0x08 }, -        { 0x18, 0x3f }, -        { 0x19, 0x2a }, -        { 0x1a, 0x00 }, -        { 0x1b, 0x00 }, -        { 0x1c, 0x00 }, -        { 0x1d, 0x02 }, -        { 0x52, 0x0b }, -        { 0x53, 0x0f }, -        { 0x54, 0x13 }, -        { 0x55, 0x17 }, -        { 0x56, 0x03 }, -        { 0x57, 0x07 }, -        { 0x58, 0x63 }, -        { 0x59, 0x00 }, -        { 0x5a, 0xc1 }, -        { 0x5b, 0x00 }, -        { 0x5c, 0x0e }, -        { 0x5d, 0x00 }, -        { 0x5e, 0x00 }, -    }; -    sensor.gamma = {2.1, 2.1, 2.1}; -    s_sensors->push_back(sensor); - - -    sensor = Genesys_Sensor(); -    sensor.sensor_id = CCD_HP2300; -    sensor.optical_res = 600; -    sensor.ccd_size_divisor = 2; -    sensor.black_pixels = 48; -    sensor.dummy_pixel = 20; -    sensor.CCD_start_xoffset = 0; -    sensor.sensor_pixels = 5368; -    sensor.fau_gain_white_ref = 180; -    sensor.gain_white_ref = 180; -    sensor.exposure = { 0x0000, 0x0000, 0x0000 }; -    sensor.custom_regs = { -        { 0x08, 0x16 }, -        { 0x09, 0x00 }, -        { 0x0a, 0x01 }, -        { 0x0b, 0x03 }, -        { 0x16, 0xb7 }, -        { 0x17, 0x0a }, -        { 0x18, 0x20 }, -        { 0x19, 0x2a }, -        { 0x1a, 0x6a }, -        { 0x1b, 0x8a }, -        { 0x1c, 0x00 }, -        { 0x1d, 0x05 }, -        { 0x52, 0x0f }, -        { 0x53, 0x13 }, -        { 0x54, 0x17 }, -        { 0x55, 0x03 }, -        { 0x56, 0x07 }, -        { 0x57, 0x0b }, -        { 0x58, 0x83 }, -        { 0x59, 0x00 }, -        { 0x5a, 0xc1 }, -        { 0x5b, 0x06 }, -        { 0x5c, 0x0b }, -        { 0x5d, 0x10 }, -        { 0x5e, 0x16 }, -    }; -    sensor.gamma = {2.1, 2.1, 2.1}; -    s_sensors->push_back(sensor); - - -    sensor = Genesys_Sensor(); -    sensor.sensor_id = CCD_CANONLIDE35; -    sensor.optical_res = 1200; -    sensor.ccd_size_divisor = 2; -    sensor.black_pixels = 87; -    sensor.dummy_pixel = 87; -    sensor.CCD_start_xoffset = 0; -    sensor.sensor_pixels = 10400; -    sensor.fau_gain_white_ref = 0; -    sensor.gain_white_ref = 0; -    sensor.exposure = { 0x0400, 0x0400, 0x0400 }; -    sensor.custom_regs = { -        { 0x08, 0x00 }, -        { 0x09, 0x00 }, -        { 0x0a, 0x00 }, -        { 0x0b, 0x00 }, -        { 0x16, 0x00 }, -        { 0x17, 0x02 }, -        { 0x18, 0x00 }, -        { 0x19, 0x50 }, -        { 0x1a, 0x00 }, // TODO: 1a-1d: these do no harm, but may be neccessery for CCD -        { 0x1b, 0x00 }, -        { 0x1c, 0x00 }, -        { 0x1d, 0x02 }, -        { 0x52, 0x05 }, // [GB](HI|LOW) not needed for cis -        { 0x53, 0x07 }, -        { 0x54, 0x00 }, -        { 0x55, 0x00 }, -        { 0x56, 0x00 }, -        { 0x57, 0x00 }, -        { 0x58, 0x3a }, -        { 0x59, 0x03 }, -        { 0x5a, 0x40 }, -        { 0x5b, 0x00 }, // TODO: 5b-5e -        { 0x5c, 0x00 }, -        { 0x5d, 0x00 }, -        { 0x5e, 0x00 }, -    }; -    sensor.gamma = {1.0, 1.0, 1.0}; -    s_sensors->push_back(sensor); - - -    sensor = Genesys_Sensor(); -    sensor.sensor_id = CIS_XP200; -    sensor.optical_res = 600; -    sensor.black_pixels = 5; -    sensor.dummy_pixel = 38; -    sensor.CCD_start_xoffset = 0; -    sensor.sensor_pixels = 5200; -    sensor.fau_gain_white_ref = 200; -    sensor.gain_white_ref = 200; -    sensor.exposure = { 0x1450, 0x0c80, 0x0a28 }; -    sensor.custom_regs = { -        { 0x08, 0x16 }, -        { 0x09, 0x00 }, -        { 0x0a, 0x01 }, -        { 0x0b, 0x03 }, -        { 0x16, 0xb7 }, -        { 0x17, 0x0a }, -        { 0x18, 0x20 }, -        { 0x19, 0x2a }, -        { 0x1a, 0x6a }, -        { 0x1b, 0x8a }, -        { 0x1c, 0x00 }, -        { 0x1d, 0x05 }, -        { 0x52, 0x0f }, -        { 0x53, 0x13 }, -        { 0x54, 0x17 }, -        { 0x55, 0x03 }, -        { 0x56, 0x07 }, -        { 0x57, 0x0b }, -        { 0x58, 0x83 }, -        { 0x59, 0x00 }, -        { 0x5a, 0xc1 }, -        { 0x5b, 0x06 }, -        { 0x5c, 0x0b }, -        { 0x5d, 0x10 }, -        { 0x5e, 0x16 }, -    }; -    sensor.gamma = {2.1, 2.1, 2.1}; -    s_sensors->push_back(sensor); - - -    sensor = Genesys_Sensor(); -    sensor.sensor_id = CCD_HP3670; -    sensor.optical_res = 1200; -    sensor.black_pixels = 48; -    sensor.dummy_pixel = 16; -    sensor.CCD_start_xoffset = 0; -    sensor.sensor_pixels = 10872; -    sensor.fau_gain_white_ref = 210; -    sensor.gain_white_ref = 200; -    sensor.exposure = { 0x0000, 0x0000, 0x0000 }; -    sensor.custom_regs = { -        { 0x08, 0x00 }, -        { 0x09, 0x0a }, -        { 0x0a, 0x0b }, -        { 0x0b, 0x0d }, -        { 0x16, 0x33 }, -        { 0x17, 0x07 }, -        { 0x18, 0x20 }, -        { 0x19, 0x2a }, -        { 0x1a, 0x00 }, -        { 0x1b, 0x00 }, -        { 0x1c, 0xc0 }, -        { 0x1d, 0x43 }, -        { 0x52, 0x0f }, -        { 0x53, 0x13 }, -        { 0x54, 0x17 }, -        { 0x55, 0x03 }, -        { 0x56, 0x07 }, -        { 0x57, 0x0b }, -        { 0x58, 0x83 }, -        { 0x59, 0x00 }, -        { 0x5a, 0x15 }, -        { 0x5b, 0x05 }, -        { 0x5c, 0x0a }, -        { 0x5d, 0x0f }, -        { 0x5e, 0x00 }, -    }; -    sensor.gamma = {1.0, 1.0, 1.0}; -    s_sensors->push_back(sensor); - - -    sensor = Genesys_Sensor(); -    sensor.sensor_id = CCD_DP665; -    sensor.optical_res = 600; -    sensor.black_pixels = 27; -    sensor.dummy_pixel = 27; -    sensor.CCD_start_xoffset = 0; -    sensor.sensor_pixels = 2496; -    sensor.fau_gain_white_ref = 210; -    sensor.gain_white_ref = 200; -    sensor.exposure = { 0x1100, 0x1100, 0x1100 }; -    sensor.custom_regs = { -        { 0x08, 0x00 }, -        { 0x09, 0x00 }, -        { 0x0a, 0x00 }, -        { 0x0b, 0x00 }, -        { 0x16, 0x00 }, -        { 0x17, 0x02 }, -        { 0x18, 0x04 }, -        { 0x19, 0x50 }, -        { 0x1a, 0x10 }, -        { 0x1b, 0x00 }, -        { 0x1c, 0x20 }, -        { 0x1d, 0x02 }, -        { 0x52, 0x04 }, // [GB](HI|LOW) not needed for cis -        { 0x53, 0x05 }, -        { 0x54, 0x00 }, -        { 0x55, 0x00 }, -        { 0x56, 0x00 }, -        { 0x57, 0x00 }, -        { 0x58, 0x54 }, -        { 0x59, 0x03 }, -        { 0x5a, 0x00 }, -        { 0x5b, 0x00 }, // TODO: 5b-5e -        { 0x5c, 0x00 }, -        { 0x5d, 0x00 }, -        { 0x5e, 0x01 }, -    }; -    sensor.gamma = {1.0, 1.0, 1.0}; -    s_sensors->push_back(sensor); - - -    sensor = Genesys_Sensor(); -    sensor.sensor_id = CCD_ROADWARRIOR; -    sensor.optical_res = 600; -    sensor.black_pixels = 27; -    sensor.dummy_pixel = 27; -    sensor.CCD_start_xoffset = 0; -    sensor.sensor_pixels = 5200; -    sensor.fau_gain_white_ref = 210; -    sensor.gain_white_ref = 200; -    sensor.exposure = { 0x1100, 0x1100, 0x1100 }; -    sensor.custom_regs = { -        { 0x08, 0x00 }, -        { 0x09, 0x00 }, -        { 0x0a, 0x00 }, -        { 0x0b, 0x00 }, -        { 0x16, 0x00 }, -        { 0x17, 0x02 }, -        { 0x18, 0x04 }, -        { 0x19, 0x50 }, -        { 0x1a, 0x10 }, -        { 0x1b, 0x00 }, -        { 0x1c, 0x20 }, -        { 0x1d, 0x02 }, -        { 0x52, 0x04 }, // [GB](HI|LOW) not needed for cis -        { 0x53, 0x05 }, -        { 0x54, 0x00 }, -        { 0x55, 0x00 }, -        { 0x56, 0x00 }, -        { 0x57, 0x00 }, -        { 0x58, 0x54 }, -        { 0x59, 0x03 }, -        { 0x5a, 0x00 }, -        { 0x5b, 0x00 }, // TODO: 5b-5e -        { 0x5c, 0x00 }, -        { 0x5d, 0x00 }, -        { 0x5e, 0x01 }, -    }; -    sensor.gamma = {1.0, 1.0, 1.0}; -    s_sensors->push_back(sensor); - - -    sensor = Genesys_Sensor(); -    sensor.sensor_id = CCD_DSMOBILE600; -    sensor.optical_res = 600; -    sensor.black_pixels = 28; -    sensor.dummy_pixel = 28; -    sensor.CCD_start_xoffset = 0; -    sensor.sensor_pixels = 5200; -    sensor.fau_gain_white_ref = 210; -    sensor.gain_white_ref = 200; -    sensor.exposure = { 0x1544, 0x1544, 0x1544 }; -    sensor.custom_regs = { -        { 0x08, 0x00 }, -        { 0x09, 0x00 }, -        { 0x0a, 0x00 }, -        { 0x0b, 0x00 }, -        { 0x16, 0x00 }, -        { 0x17, 0x02 }, -        { 0x18, 0x04 }, -        { 0x19, 0x50 }, -        { 0x1a, 0x10 }, -        { 0x1b, 0x00 }, -        { 0x1c, 0x20 }, -        { 0x1d, 0x02 }, -        { 0x52, 0x04 }, // [GB](HI|LOW) not needed for cis -        { 0x53, 0x05 }, -        { 0x54, 0x00 }, -        { 0x55, 0x00 }, -        { 0x56, 0x00 }, -        { 0x57, 0x00 }, -        { 0x58, 0x54 }, -        { 0x59, 0x03 }, -        { 0x5a, 0x00 }, -        { 0x5b, 0x00 }, // TODO: 5b-5e -        { 0x5c, 0x00 }, -        { 0x5d, 0x00 }, -        { 0x5e, 0x01 }, -    }; -    sensor.gamma = {1.0, 1.0, 1.0}; -    s_sensors->push_back(sensor); - - -    sensor = Genesys_Sensor(); -    sensor.sensor_id = CCD_XP300; -    sensor.optical_res = 600; -    sensor.black_pixels = 27; -    sensor.dummy_pixel = 27; -    sensor.CCD_start_xoffset = 0; -    sensor.sensor_pixels = 10240; -    sensor.fau_gain_white_ref = 210; -    sensor.gain_white_ref = 200; -    sensor.exposure = { 0x1100, 0x1100, 0x1100 }; -    sensor.custom_regs = { -        { 0x08, 0x00 }, -        { 0x09, 0x00 }, -        { 0x0a, 0x00 }, -        { 0x0b, 0x00 }, -        { 0x16, 0x00 }, -        { 0x17, 0x02 }, -        { 0x18, 0x04 }, -        { 0x19, 0x50 }, -        { 0x1a, 0x10 }, -        { 0x1b, 0x00 }, -        { 0x1c, 0x20 }, -        { 0x1d, 0x02 }, -        { 0x52, 0x04 }, // [GB](HI|LOW) not needed for cis -        { 0x53, 0x05 }, -        { 0x54, 0x00 }, -        { 0x55, 0x00 }, -        { 0x56, 0x00 }, -        { 0x57, 0x00 }, -        { 0x58, 0x54 }, -        { 0x59, 0x03 }, -        { 0x5a, 0x00 }, -        { 0x5b, 0x00 }, // TODO: 5b-5e -        { 0x5c, 0x00 }, -        { 0x5d, 0x00 }, -        { 0x5e, 0x01 }, -    }; -    sensor.gamma = {1.0, 1.0, 1.0}; -    s_sensors->push_back(sensor); - - -    sensor = Genesys_Sensor(); -    sensor.sensor_id = CCD_DP685; -    sensor.optical_res = 600; -    sensor.black_pixels = 27; -    sensor.dummy_pixel = 27; -    sensor.CCD_start_xoffset = 0; -    sensor.sensor_pixels = 5020; -    sensor.fau_gain_white_ref = 210; -    sensor.gain_white_ref = 200; -    sensor.exposure = { 0x1100, 0x1100, 0x1100 }; -    sensor.custom_regs = { -        { 0x08, 0x00 }, -        { 0x09, 0x00 }, -        { 0x0a, 0x00 }, -        { 0x0b, 0x00 }, -        { 0x16, 0x00 }, -        { 0x17, 0x02 }, -        { 0x18, 0x04 }, -        { 0x19, 0x50 }, -        { 0x1a, 0x10 }, -        { 0x1b, 0x00 }, -        { 0x1c, 0x20 }, -        { 0x1d, 0x02 }, -        { 0x52, 0x04 }, // [GB](HI|LOW) not needed for cis -        { 0x53, 0x05 }, -        { 0x54, 0x00 }, -        { 0x55, 0x00 }, -        { 0x56, 0x00 }, -        { 0x57, 0x00 }, -        { 0x58, 0x54 }, -        { 0x59, 0x03 }, -        { 0x5a, 0x00 }, -        { 0x5b, 0x00 }, // TODO: 5b-5e -        { 0x5c, 0x00 }, -        { 0x5d, 0x00 }, -        { 0x5e, 0x01 }, -    }; -    sensor.gamma = {1.0, 1.0, 1.0}; -    s_sensors->push_back(sensor); - - -    sensor = Genesys_Sensor(); -    sensor.sensor_id = CIS_CANONLIDE200; -    sensor.optical_res = 4800; -    sensor.black_pixels = 87*4; -    sensor.dummy_pixel = 16*4; -    sensor.CCD_start_xoffset = 320*8; -    sensor.sensor_pixels = 5136*8; -    sensor.fau_gain_white_ref = 210; -    sensor.gain_white_ref = 200; -    sensor.exposure = { 0x0000, 0x0000, 0x0000 }; -    sensor.custom_regs = { -        { 0x08, 0x00 }, -        { 0x09, 0x00 }, -        { 0x0a, 0x00 }, -        { 0x0b, 0x00 }, -        { 0x16, 0x10 }, -        { 0x17, 0x08 }, -        { 0x18, 0x00 }, -        { 0x19, 0xff }, -        { 0x1a, 0x34 }, -        { 0x1b, 0x00 }, -        { 0x1c, 0x02 }, -        { 0x1d, 0x04 }, -        { 0x52, 0x03 }, -        { 0x53, 0x07 }, -        { 0x54, 0x00 }, -        { 0x55, 0x00 }, -        { 0x56, 0x00 }, -        { 0x57, 0x00 }, -        { 0x58, 0x2a }, -        { 0x59, 0xe1 }, -        { 0x5a, 0x55 }, -        { 0x5b, 0x00 }, -        { 0x5c, 0x00 }, -        { 0x5d, 0x00 }, -        { 0x5e, 0x41 }, -    }; -    sensor.gamma = {1.7, 1.7, 1.7}; -    s_sensors->push_back(sensor); - - -    sensor = Genesys_Sensor(); -    sensor.sensor_id = CIS_CANONLIDE700; -    sensor.optical_res = 4800; -    sensor.black_pixels = 73*8; // black pixels 73 at 600 dpi -    sensor.dummy_pixel = 16*8; -    // 384 at 600 dpi -    sensor.CCD_start_xoffset = 384*8; -    // 8x5570 segments, 5187+1 for rounding -    sensor.sensor_pixels = 5188*8; -    sensor.fau_gain_white_ref = 210; -    sensor.gain_white_ref = 200; -    sensor.exposure = { 0x0000, 0x0000, 0x0000 }; -    sensor.custom_regs = { -        { 0x08, 0x00 }, -        { 0x09, 0x00 }, -        { 0x0a, 0x00 }, -        { 0x0b, 0x00 }, -        { 0x16, 0x10 }, -        { 0x17, 0x08 }, -        { 0x18, 0x00 }, -        { 0x19, 0xff }, -        { 0x1a, 0x34 }, -        { 0x1b, 0x00 }, -        { 0x1c, 0x02 }, -        { 0x1d, 0x04 }, -        { 0x52, 0x07 }, -        { 0x53, 0x03 }, -        { 0x54, 0x00 }, -        { 0x55, 0x00 }, -        { 0x56, 0x00 }, -        { 0x57, 0x00 }, -        { 0x58, 0x2a }, -        { 0x59, 0xe1 }, -        { 0x5a, 0x55 }, -        { 0x5b, 0x00 }, -        { 0x5c, 0x00 }, -        { 0x5d, 0x00 }, -        { 0x5e, 0x41 }, -    }; -    sensor.gamma = {1.0, 1.0, 1.0}; -    s_sensors->push_back(sensor); - - -    sensor = Genesys_Sensor(); -    sensor.sensor_id = CIS_CANONLIDE100; -    sensor.optical_res = 2400; -    sensor.black_pixels = 87*4,        /* black pixels */ -    sensor.dummy_pixel = 16*4; -    sensor.CCD_start_xoffset = 320*4; -    sensor.sensor_pixels = 5136*4; -    sensor.fau_gain_white_ref = 210; -    sensor.gain_white_ref = 200; -    sensor.exposure = { 0x01c1, 0x0126, 0x00e5 }; -    sensor.custom_regs = { -        { 0x08, 0x00 }, -        { 0x09, 0x00 }, -        { 0x0a, 0x00 }, -        { 0x0b, 0x00 }, -        { 0x16, 0x10 }, -        { 0x17, 0x08 }, -        { 0x18, 0x00 }, -        { 0x19, 0x50 }, -        { 0x1a, 0x34 }, -        { 0x1b, 0x00 }, -        { 0x1c, 0x02 }, -        { 0x1d, 0x04 }, -        { 0x52, 0x03 }, -        { 0x53, 0x07 }, -        { 0x54, 0x00 }, -        { 0x55, 0x00 }, -        { 0x56, 0x00 }, -        { 0x57, 0x00 }, -        { 0x58, 0x2a }, -        { 0x59, 0xe1 }, -        { 0x5a, 0x55 }, -        { 0x5b, 0x00 }, -        { 0x5c, 0x00 }, -        { 0x5d, 0x00 }, -        { 0x5e, 0x41 }, -    }; -    sensor.gamma = {1.7, 1.7, 1.7}; -    s_sensors->push_back(sensor); - - -    sensor = Genesys_Sensor(); -    sensor.sensor_id = CCD_KVSS080; -    sensor.optical_res = 600; -    sensor.black_pixels = 38; -    sensor.dummy_pixel = 38; -    sensor.CCD_start_xoffset = 152; -    sensor.sensor_pixels = 5376; -    sensor.fau_gain_white_ref = 160; -    sensor.gain_white_ref = 160; -    sensor.exposure = { 0x0000, 0x0000, 0x0000 }; -    sensor.exposure_lperiod = 8000; -    sensor.custom_regs = { -        { 0x74, 0x00 }, { 0x75, 0x00 }, { 0x76, 0x00 }, -        { 0x77, 0x00 }, { 0x78, 0xff }, { 0x79, 0xff }, -        { 0x7a, 0x03 }, { 0x7b, 0xff }, { 0x7c, 0xff }, -        { 0x0c, 0x00 }, -        { 0x70, 0x01 }, -        { 0x71, 0x03 }, -        { 0x9e, 0x00 }, -        { 0xaa, 0x00 }, -        { 0x16, 0x33 }, -        { 0x17, 0x1c }, -        { 0x18, 0x00 }, -        { 0x19, 0x2a }, -        { 0x1a, 0x2c }, -        { 0x1b, 0x00 }, -        { 0x1c, 0x20 }, -        { 0x1d, 0x04 }, -        { 0x52, 0x0c }, -        { 0x53, 0x0f }, -        { 0x54, 0x00 }, -        { 0x55, 0x03 }, -        { 0x56, 0x06 }, -        { 0x57, 0x09 }, -        { 0x58, 0x6b }, -        { 0x59, 0x00 }, -        { 0x5a, 0xc0 }, -    }; -    sensor.gamma = {1.0, 1.0, 1.0}; -    s_sensors->push_back(sensor); - - -    sensor = Genesys_Sensor(); -    sensor.sensor_id = CCD_G4050; -    sensor.optical_res = 4800; -    sensor.black_pixels = 50*8; -    // 31 at 600 dpi dummy_pixels 58 at 1200 -    sensor.dummy_pixel = 58; -    sensor.CCD_start_xoffset = 152; -    sensor.sensor_pixels = 5360*8; -    sensor.fau_gain_white_ref = 160; -    sensor.gain_white_ref = 160; -    sensor.exposure = { 0x2c09, 0x22b8, 0x10f0 }; -    sensor.custom_regs = {}; -    sensor.gamma = {1.0, 1.0, 1.0}; - -    { -        struct CustomSensorSettings { -            int min_resolution; -            int max_resolution; -            int exposure_lperiod; -            ScanMethod method; -            GenesysRegisterSettingSet extra_custom_regs; -        }; - -        CustomSensorSettings custom_settings[] = { -            { -1, 600, 8016, ScanMethod::FLATBED, { -                    { 0x74, 0x00 }, { 0x75, 0x01 }, { 0x76, 0xff }, -                    { 0x77, 0x03 }, { 0x78, 0xff }, { 0x79, 0xff }, -                    { 0x7a, 0x03 }, { 0x7b, 0xff }, { 0x7c, 0xff }, -                    { 0x0c, 0x00 }, -                    { 0x70, 0x00 }, -                    { 0x71, 0x02 }, -                    { 0x9e, 0x00 }, -                    { 0xaa, 0x00 }, -                    { 0x16, 0x33 }, -                    { 0x17, 0x0c }, -                    { 0x18, 0x00 }, -                    { 0x19, 0x2a }, -                    { 0x1a, 0x30 }, -                    { 0x1b, 0x00 }, -                    { 0x1c, 0x00 }, -                    { 0x1d, 0x08 }, -                    { 0x52, 0x0b }, -                    { 0x53, 0x0e }, -                    { 0x54, 0x11 }, -                    { 0x55, 0x02 }, -                    { 0x56, 0x05 }, -                    { 0x57, 0x08 }, -                    { 0x58, 0x63 }, -                    { 0x59, 0x00 }, -                    { 0x5a, 0x40 }, -                } -            }, -            { 1200, 1200, 56064, ScanMethod::FLATBED, { -                    { 0x74, 0x0f }, { 0x75, 0xff }, { 0x76, 0xff }, -                    { 0x77, 0x00 }, { 0x78, 0x01 }, { 0x79, 0xff }, -                    { 0x7a, 0x00 }, { 0x7b, 0x01 }, { 0x7c, 0xff }, -                    { 0x0c, 0x20 }, -                    { 0x70, 0x08 }, -                    { 0x71, 0x0c }, -                    { 0x9e, 0xc0 }, -                    { 0xaa, 0x05 }, -                    { 0x16, 0x3b }, -                    { 0x17, 0x0c }, -                    { 0x18, 0x10 }, -                    { 0x19, 0x2a }, -                    { 0x1a, 0x38 }, -                    { 0x1b, 0x10 }, -                    { 0x1c, 0x00 }, -                    { 0x1d, 0x08 }, -                    { 0x52, 0x02 }, -                    { 0x53, 0x05 }, -                    { 0x54, 0x08 }, -                    { 0x55, 0x0b }, -                    { 0x56, 0x0e }, -                    { 0x57, 0x11 }, -                    { 0x58, 0x1b }, -                    { 0x59, 0x00 }, -                    { 0x5a, 0x40 }, -                } -            }, -            { 2400, 2400, 56064, ScanMethod::FLATBED, { -                    { 0x74, 0x0f }, { 0x75, 0xff }, { 0x76, 0xff }, -                    { 0x77, 0x00 }, { 0x78, 0x00 }, { 0x79, 0x00 }, -                    { 0x7a, 0x00 }, { 0x7b, 0x00 }, { 0x7c, 0x00 }, -                    { 0x0c, 0x20 }, -                    { 0x70, 0x08 }, -                    { 0x71, 0x0a }, -                    { 0x9e, 0xc0 }, -                    { 0xaa, 0x05 }, -                    { 0x16, 0x3b }, -                    { 0x17, 0x0c }, -                    { 0x18, 0x10 }, -                    { 0x19, 0x2a }, -                    { 0x1a, 0x38 }, -                    { 0x1b, 0x10 }, -                    { 0x1c, 0xc0 }, -                    { 0x1d, 0x08 }, -                    { 0x52, 0x02 }, -                    { 0x53, 0x05 }, -                    { 0x54, 0x08 }, -                    { 0x55, 0x0b }, -                    { 0x56, 0x0e }, -                    { 0x57, 0x11 }, -                    { 0x58, 0x1b }, -                    { 0x59, 0x00 }, -                    { 0x5a, 0x40 }, -                } -            }, -            { 4800, 4800, 42752, ScanMethod::FLATBED, { -                    { 0x74, 0x0f }, { 0x75, 0xff }, { 0x76, 0xff }, -                    { 0x77, 0x00 }, { 0x78, 0x00 }, { 0x79, 0x00 }, -                    { 0x7a, 0x00 }, { 0x7b, 0x00 }, { 0x7c, 0x00 }, -                    { 0x0c, 0x21 }, -                    { 0x70, 0x08 }, -                    { 0x71, 0x0a }, -                    { 0x9e, 0xc0 }, -                    { 0xaa, 0x07 }, -                    { 0x16, 0x3b }, -                    { 0x17, 0x0c }, -                    { 0x18, 0x10 }, -                    { 0x19, 0x2a }, -                    { 0x1a, 0x38 }, -                    { 0x1b, 0x10 }, -                    { 0x1c, 0xc1 }, -                    { 0x1d, 0x08 }, -                    { 0x52, 0x02 }, -                    { 0x53, 0x05 }, -                    { 0x54, 0x08 }, -                    { 0x55, 0x0b }, -                    { 0x56, 0x0e }, -                    { 0x57, 0x11 }, -                    { 0x58, 0x1b }, -                    { 0x59, 0x00 }, -                    { 0x5a, 0x40 }, -                } -            }, -            { -1, -1, 15624, ScanMethod::TRANSPARENCY, { -                    { 0x74, 0x00 }, { 0x75, 0x1c }, { 0x76, 0x7f }, -                    { 0x77, 0x03 }, { 0x78, 0xff }, { 0x79, 0xff }, -                    { 0x7a, 0x03 }, { 0x7b, 0xff }, { 0x7c, 0xff }, -                    { 0x0c, 0x00 }, -                    { 0x70, 0x00 }, -                    { 0x71, 0x02 }, -                    { 0x9e, 0x00 }, -                    { 0xaa, 0x00 }, -                    { 0x16, 0x33 }, -                    { 0x17, 0x4c }, -                    { 0x18, 0x01 }, -                    { 0x19, 0x2a }, -                    { 0x1a, 0x30 }, -                    { 0x1b, 0x00 }, -                    { 0x1c, 0x00 }, -                    { 0x1d, 0x08 }, -                    { 0x52, 0x0e }, -                    { 0x53, 0x11 }, -                    { 0x54, 0x02 }, -                    { 0x55, 0x05 }, -                    { 0x56, 0x08 }, -                    { 0x57, 0x0b }, -                    { 0x58, 0x6b }, -                    { 0x59, 0x00 }, -                    { 0x5a, 0xc0 }, -                } -            } -        }; - -        auto base_custom_regs = sensor.custom_regs; -        for (const CustomSensorSettings& setting : custom_settings) -        { -            sensor.min_resolution = setting.min_resolution; -            sensor.max_resolution = setting.max_resolution; -            sensor.exposure_lperiod = setting.exposure_lperiod; -            sensor.method = setting.method; -            sensor.custom_regs = base_custom_regs; -            sensor.custom_regs.merge(setting.extra_custom_regs); -            s_sensors->push_back(sensor); -        } -    } - -    sensor = Genesys_Sensor(); -    sensor.sensor_id = CCD_CS4400F; -    sensor.optical_res = 4800; -    sensor.ccd_size_divisor = 4; -    sensor.black_pixels = 50*8; -    // 31 at 600 dpi, 58 at 1200 dpi -    sensor.dummy_pixel = 20; -    sensor.CCD_start_xoffset = 152; -    // 5360 max at 600 dpi -    sensor.sensor_pixels = 5360*8; -    sensor.fau_gain_white_ref = 160; -    sensor.gain_white_ref = 160; -    sensor.exposure = { 0x9c40, 0x9c40, 0x9c40 }; -    sensor.exposure_lperiod = 11640; -    sensor.custom_regs = { -        { 0x74, 0x00 }, { 0x75, 0xf8 }, { 0x76, 0x38 }, -        { 0x77, 0x00 }, { 0x78, 0xfc }, { 0x79, 0x00 }, -        { 0x7a, 0x00 }, { 0x7b, 0x92 }, { 0x7c, 0xa4 }, -        { 0x0c, 0x00 }, -        { 0x70, 0x00 }, -        { 0x71, 0x02 }, -        { 0x9e, 0x2d }, -        { 0xaa, 0x00 }, -        { 0x16, 0x13 }, -        { 0x17, 0x0a }, -        { 0x18, 0x10 }, -        { 0x19, 0x2a }, -        { 0x1a, 0x30 }, -        { 0x1b, 0x00 }, -        { 0x1c, 0x00 }, -        { 0x1d, 0x6b }, -        { 0x52, 0x0a }, -        { 0x53, 0x0d }, -        { 0x54, 0x00 }, -        { 0x55, 0x03 }, -        { 0x56, 0x06 }, -        { 0x57, 0x08 }, -        { 0x58, 0x5b }, -        { 0x59, 0x00 }, -        { 0x5a, 0x40 }, -    }; -    sensor.gamma = {1.0, 1.0, 1.0}; -    s_sensors->push_back(sensor); - - -    sensor = Genesys_Sensor(); -    sensor.sensor_id = CCD_CS8400F; -    sensor.optical_res = 4800; -    sensor.black_pixels = 50*8; -    // 31 at 600 dpi, 58 at 1200 dpi -    sensor.dummy_pixel = 20; -    sensor.CCD_start_xoffset = 152; -    // 5360 max at 600 dpi -    sensor.sensor_pixels = 5360*8; -    sensor.fau_gain_white_ref = 160; -    sensor.gain_white_ref = 160; -    sensor.exposure = { 0x9c40, 0x9c40, 0x9c40 }; -    sensor.exposure_lperiod = 7200; -    sensor.custom_regs = { -        { 0x74, 0x00 }, { 0x75, 0x0e }, { 0x76, 0x3f }, -        { 0x77, 0x00 }, { 0x78, 0x00 }, { 0x79, 0x00 }, -        { 0x7a, 0x01 }, { 0x7b, 0xb6 }, { 0x7c, 0xdb }, -        { 0x0c, 0x00 }, -        { 0x70, 0x01 }, -        { 0x71, 0x02 }, -        { 0x9e, 0x00 }, -        { 0xaa, 0x00 }, -        { 0x16, 0x33 }, -        { 0x17, 0x0c }, -        { 0x18, 0x13 }, -        { 0x19, 0x2a }, -        { 0x1a, 0x30 }, -        { 0x1b, 0x00 }, -        { 0x1c, 0x00 }, -        { 0x1d, 0x84 }, -        { 0x52, 0x0d }, -        { 0x53, 0x10 }, -        { 0x54, 0x01 }, -        { 0x55, 0x04 }, -        { 0x56, 0x07 }, -        { 0x57, 0x0a }, -        { 0x58, 0x6b }, -        { 0x59, 0x00 }, -        { 0x5a, 0x40 }, -    }; -    sensor.gamma = {1.0, 1.0, 1.0}; -    s_sensors->push_back(sensor); - - -    sensor = Genesys_Sensor(); -    sensor.sensor_id = CCD_CS8600F; -    sensor.optical_res = 4800; -    sensor.ccd_size_divisor = 4; -    sensor.black_pixels = 31; -    sensor.dummy_pixel = 20; -    sensor.CCD_start_xoffset = 0; // not used at the moment -    // 11372 pixels at 1200 dpi -    sensor.sensor_pixels = 11372*4; -    sensor.fau_gain_white_ref = 160; -    sensor.gain_white_ref = 160; -    sensor.exposure = { 0x9c40, 0x9c40, 0x9c40 }; -    sensor.custom_regs = {}; -    sensor.gamma = {1.0, 1.0, 1.0}; - -    { -        struct CustomSensorSettings { -            int min_resolution; -            int max_resolution; -            int exposure_lperiod; -            ScanMethod method; -            GenesysRegisterSettingSet extra_custom_regs; -            GenesysRegisterSettingSet custom_fe_regs; -        }; - -        CustomSensorSettings custom_settings[] = { -            { -1, 1200, 24000, ScanMethod::FLATBED, { -                    { 0x74, 0x03 }, { 0x75, 0xf0 }, { 0x76, 0xf0 }, -                    { 0x77, 0x03 }, { 0x78, 0xfe }, { 0x79, 0x00 }, -                    { 0x7a, 0x00 }, { 0x7b, 0x92 }, { 0x7c, 0x49 }, -                    { 0x0c, 0x00 }, -                    { 0x70, 0x00 }, -                    { 0x71, 0x02 }, -                    { 0x9e, 0x2d }, -                    { 0xaa, 0x00 }, -                    { 0x16, 0x13 }, -                    { 0x17, 0x0a }, -                    { 0x18, 0x10 }, -                    { 0x19, 0x2a }, -                    { 0x1a, 0x30 }, -                    { 0x1b, 0x00 }, -                    { 0x1c, 0x00 }, -                    { 0x1d, 0x6b }, -                    { 0x52, 0x0c }, -                    { 0x53, 0x0f }, -                    { 0x54, 0x00 }, -                    { 0x55, 0x03 }, -                    { 0x56, 0x06 }, -                    { 0x57, 0x09 }, -                    { 0x58, 0x6b }, -                    { 0x59, 0x00 }, -                    { 0x5a, 0x40 }, -                }, -                {}, -            }, -            { -1, 1200, 24000, ScanMethod::TRANSPARENCY, { -                    { 0x74, 0x03 }, { 0x75, 0xf0 }, { 0x76, 0xf0 }, -                    { 0x77, 0x03 }, { 0x78, 0xfe }, { 0x79, 0x00 }, -                    { 0x7a, 0x00 }, { 0x7b, 0x92 }, { 0x7c, 0x49 }, -                    { 0x0c, 0x00 }, -                    { 0x70, 0x00 }, -                    { 0x71, 0x02 }, -                    { 0x9e, 0x2d }, -                    { 0xaa, 0x00 }, -                    { 0x16, 0x13 }, -                    { 0x17, 0x0a }, -                    { 0x18, 0x10 }, -                    { 0x19, 0x2a }, -                    { 0x1a, 0x30 }, -                    { 0x1b, 0x00 }, -                    { 0x1c, 0x00 }, -                    { 0x1d, 0x6b }, -                    { 0x52, 0x0c }, -                    { 0x53, 0x0f }, -                    { 0x54, 0x00 }, -                    { 0x55, 0x03 }, -                    { 0x56, 0x06 }, -                    { 0x57, 0x09 }, -                    { 0x58, 0x6b }, -                    { 0x59, 0x00 }, -                    { 0x5a, 0x40 }, -                }, -                {}, -            }, -            { 2400, 2400, 24000, ScanMethod::TRANSPARENCY, { -                    { 0x74, 0x03 }, { 0x75, 0xfe }, { 0x76, 0x00 }, -                    { 0x77, 0x03 }, { 0x78, 0xfe }, { 0x79, 0x00 }, -                    { 0x7a, 0x00 }, { 0x7b, 0x92 }, { 0x7c, 0x49 }, -                    { 0x0c, 0x00 }, -                    { 0x70, 0x00 }, -                    { 0x71, 0x02 }, -                    { 0x9e, 0x2d }, -                    { 0xaa, 0x00 }, -                    { 0x16, 0x13 }, -                    { 0x17, 0x15 }, -                    { 0x18, 0x10 }, -                    { 0x19, 0x2a }, -                    { 0x1a, 0x30 }, -                    { 0x1b, 0x00 }, -                    { 0x1c, 0x01 }, -                    { 0x1d, 0x75 }, -                    { 0x52, 0x0c }, -                    { 0x53, 0x0f }, -                    { 0x54, 0x00 }, -                    { 0x55, 0x03 }, -                    { 0x56, 0x06 }, -                    { 0x57, 0x09 }, -                    { 0x58, 0x6b }, -                    { 0x59, 0x00 }, -                    { 0x5a, 0x40 }, -                }, -                {}, -            }, -            { 4800, 4800, 24000, ScanMethod::TRANSPARENCY, { -                    { 0x74, 0x03 }, { 0x75, 0xff }, { 0x76, 0xff }, -                    { 0x77, 0x03 }, { 0x78, 0xff }, { 0x79, 0xff }, -                    { 0x7a, 0x00 }, { 0x7b, 0x92 }, { 0x7c, 0x49 }, -                    { 0x0c, 0x00 }, -                    { 0x70, 0x0a }, -                    { 0x71, 0x0c }, -                    { 0x72, 0x0c }, -                    { 0x73, 0x0e }, -                    { 0x9e, 0x2d }, -                    { 0xaa, 0x00 }, -                    { 0x16, 0x13 }, -                    { 0x17, 0x15 }, -                    { 0x18, 0x10 }, -                    { 0x19, 0x2a }, -                    { 0x1a, 0x30 }, -                    { 0x1b, 0x00 }, -                    { 0x1c, 0x61 }, -                    { 0x1d, 0x75 }, -                    { 0x52, 0x03 }, -                    { 0x53, 0x06 }, -                    { 0x54, 0x09 }, -                    { 0x55, 0x0c }, -                    { 0x56, 0x0f }, -                    { 0x57, 0x00 }, -                    { 0x58, 0x23 }, -                    { 0x59, 0x00 }, -                    { 0x5a, 0x40 }, -                }, -                {   { 0x03, 0x1f }, -                }, -            }, -        }; - -        auto base_custom_regs = sensor.custom_regs; -        for (const CustomSensorSettings& setting : custom_settings) -        { -            sensor.min_resolution = setting.min_resolution; -            sensor.max_resolution = setting.max_resolution; -            sensor.method = setting.method; -            sensor.exposure_lperiod = setting.exposure_lperiod; -            sensor.custom_regs = base_custom_regs; -            sensor.custom_regs.merge(setting.extra_custom_regs); -            sensor.custom_fe_regs = setting.custom_fe_regs; -            s_sensors->push_back(sensor); -        } -    } -    s_sensors->push_back(sensor); - - -    sensor = Genesys_Sensor(); -    sensor.sensor_id = CCD_HP_N6310; -    sensor.optical_res = 2400; -    // sensor.ccd_size_divisor = 2; Possibly half CCD, needs checking -    sensor.black_pixels = 96; -    sensor.dummy_pixel = 26; -    sensor.CCD_start_xoffset = 128; -    sensor.sensor_pixels = 42720; -    sensor.fau_gain_white_ref = 210; -    sensor.gain_white_ref = 230; -    sensor.exposure = { 0x0000, 0x0000, 0x0000 }; -    sensor.custom_regs = { -        { 0x08, 0x00 }, -        { 0x09, 0x10 }, -        { 0x0a, 0x10 }, -        { 0x0b, 0x0c }, -        { 0x16, 0x33 }, -        { 0x17, 0x0c }, -        { 0x18, 0x02 }, -        { 0x19, 0x2a }, -        { 0x1a, 0x30 }, -        { 0x1b, 0x00 }, -        { 0x1c, 0x00 }, -        { 0x1d, 0x08 }, -        { 0x52, 0x0b }, -        { 0x53, 0x0e }, -        { 0x54, 0x11 }, -        { 0x55, 0x02 }, -        { 0x56, 0x05 }, -        { 0x57, 0x08 }, -        { 0x58, 0x63 }, -        { 0x59, 0x00 }, -        { 0x5a, 0x40 }, -        { 0x5b, 0x00 }, -        { 0x5c, 0x00 }, -        { 0x5d, 0x06 }, -        { 0x5e, 0x6f }, -    }; -    sensor.gamma = {1.0, 1.0, 1.0}; -    s_sensors->push_back(sensor); - - -    sensor = Genesys_Sensor(); -    sensor.sensor_id = CIS_CANONLIDE110; -    sensor.optical_res = 2400; -    sensor.ccd_size_divisor = 2; -    sensor.black_pixels = 87; -    sensor.dummy_pixel = 16; -    sensor.CCD_start_xoffset = 303; -    sensor.sensor_pixels = 5168*4; -    sensor.fau_gain_white_ref = 210; -    sensor.gain_white_ref = 200; -    sensor.exposure = { 0x0000, 0x0000, 0x0000 }; -    sensor.custom_regs = { -        { 0x08, 0x00 }, -        { 0x09, 0x00 }, -        { 0x0a, 0x00 }, -        { 0x0b, 0x00 }, -        { 0x16, 0x10 }, -        { 0x17, 0x04 }, -        { 0x18, 0x00 }, -        { 0x19, 0x01 }, -        { 0x1a, 0x30 }, -        { 0x1b, 0x00 }, -        { 0x1c, 0x02 }, -        { 0x1d, 0x01 }, -        { 0x52, 0x00 }, -        { 0x53, 0x02 }, -        { 0x54, 0x04 }, -        { 0x55, 0x06 }, -        { 0x56, 0x04 }, -        { 0x57, 0x04 }, -        { 0x58, 0x04 }, -        { 0x59, 0x04 }, -        { 0x5a, 0x1a }, -        { 0x5b, 0x00 }, -        { 0x5c, 0xc0 }, -        { 0x5d, 0x00 }, -        { 0x5e, 0x00 }, -    }; -    sensor.gamma = {2.1, 2.1, 2.1}; -    s_sensors->push_back(sensor); - - -    sensor = Genesys_Sensor(); -    sensor.sensor_id = CIS_CANONLIDE120; -    sensor.optical_res = 2400; -    sensor.ccd_size_divisor = 2; -    sensor.black_pixels = 87; -    sensor.dummy_pixel = 16; -    sensor.CCD_start_xoffset = 303; -    // SEGCNT at 600 DPI by number of segments -    sensor.sensor_pixels = 5104*4; -    sensor.fau_gain_white_ref = 210; -    sensor.gain_white_ref = 200; -    sensor.exposure = { 0x0000, 0x0000, 0x0000 }; -    sensor.custom_regs = { -        { 0x08, 0x00 }, -        { 0x09, 0x00 }, -        { 0x0a, 0x00 }, -        { 0x0b, 0x00 }, -        { 0x16, 0x15 }, -        { 0x17, 0x04 }, -        { 0x18, 0x00 }, -        { 0x19, 0x01 }, -        { 0x1a, 0x30 }, -        { 0x1b, 0x00 }, -        { 0x1c, 0x02 }, -        { 0x1d, 0x01 }, -        { 0x52, 0x04 }, -        { 0x53, 0x06 }, -        { 0x54, 0x00 }, -        { 0x55, 0x02 }, -        { 0x56, 0x04 }, -        { 0x57, 0x04 }, -        { 0x58, 0x04 }, -        { 0x59, 0x04 }, -        { 0x5a, 0x3a }, -        { 0x5b, 0x00 }, -        { 0x5c, 0x00 }, -        { 0x5d, 0x00 }, -        { 0x5e, 0x1f }, -    }; -    sensor.gamma = {2.1, 2.1, 2.1}; -    s_sensors->push_back(sensor); - - -    sensor = Genesys_Sensor(); -    sensor.sensor_id = CIS_CANONLIDE210; -    sensor.optical_res = 2400; -    sensor.ccd_size_divisor = 2; -    sensor.black_pixels = 87; -    sensor.dummy_pixel = 16; -    sensor.CCD_start_xoffset = 303; -    sensor.sensor_pixels = 5168*4; -    sensor.fau_gain_white_ref = 210; -    sensor.gain_white_ref = 200; -    sensor.exposure = { 0x0000, 0x0000, 0x0000 }; -    sensor.custom_regs = { -        { 0x08, 0x00 }, -        { 0x09, 0x00 }, -        { 0x0a, 0x00 }, -        { 0x0b, 0x00 }, -        { 0x16, 0x10 }, -        { 0x17, 0x04 }, -        { 0x18, 0x00 }, -        { 0x19, 0x01 }, -        { 0x1a, 0x30 }, -        { 0x1b, 0x00 }, -        { 0x1c, 0x02 }, -        { 0x1d, 0x01 }, -        { 0x52, 0x00 }, -        { 0x53, 0x02 }, -        { 0x54, 0x04 }, -        { 0x55, 0x06 }, -        { 0x56, 0x04 }, -        { 0x57, 0x04 }, -        { 0x58, 0x04 }, -        { 0x59, 0x04 }, -        { 0x5a, 0x1a }, -        { 0x5b, 0x00 }, -        { 0x5c, 0xc0 }, -        { 0x5d, 0x00 }, -        { 0x5e, 0x00 }, -    }; -    sensor.gamma = {2.1, 2.1, 2.1}; -    s_sensors->push_back(sensor); - - -    sensor = Genesys_Sensor(); -    sensor.sensor_id = CIS_CANONLIDE220; -    sensor.optical_res = 2400; -    sensor.ccd_size_divisor = 2; -    sensor.black_pixels = 87; -    sensor.dummy_pixel = 16; -    sensor.CCD_start_xoffset = 303; -    sensor.sensor_pixels = 5168*4; -    sensor.fau_gain_white_ref = 210; -    sensor.gain_white_ref = 200; -    sensor.exposure = { 0x0000, 0x0000, 0x0000 }; -    sensor.custom_regs = { -        { 0x08, 0x00 }, -        { 0x09, 0x00 }, -        { 0x0a, 0x00 }, -        { 0x0b, 0x00 }, -        { 0x16, 0x10 }, -        { 0x17, 0x04 }, -        { 0x18, 0x00 }, -        { 0x19, 0x01 }, -        { 0x1a, 0x30 }, -        { 0x1b, 0x00 }, -        { 0x1c, 0x02 }, -        { 0x1d, 0x01 }, -        { 0x52, 0x00 }, -        { 0x53, 0x02 }, -        { 0x54, 0x04 }, -        { 0x55, 0x06 }, -        { 0x56, 0x04 }, -        { 0x57, 0x04 }, -        { 0x58, 0x04 }, -        { 0x59, 0x04 }, -        { 0x5a, 0x1a }, -        { 0x5b, 0x00 }, -        { 0x5c, 0xc0 }, -        { 0x5d, 0x00 }, -        { 0x5e, 0x00 }, -    }; -    sensor.gamma = {2.1, 2.1, 2.1}; -    s_sensors->push_back(sensor); - - -    sensor = Genesys_Sensor(); -    sensor.sensor_id = CCD_PLUSTEK_3600; -    sensor.optical_res = 1200; -    sensor.ccd_size_divisor = 2; -    sensor.black_pixels = 87; -    sensor.dummy_pixel = 87; -    sensor.CCD_start_xoffset = 0; -    sensor.sensor_pixels = 10100; -    sensor.fau_gain_white_ref = 210; -    sensor.gain_white_ref = 230; -    sensor.exposure = { 0x0000, 0x0000, 0x0000 }; -    sensor.custom_regs = { -        { 0x08, 0x00 }, -        { 0x09, 0x00 }, -        { 0x0a, 0x00 }, -        { 0x0b, 0x00 }, -        { 0x16, 0x33 }, -        { 0x17, 0x0b }, -        { 0x18, 0x11 }, -        { 0x19, 0x2a }, -        { 0x1a, 0x00 }, -        { 0x1b, 0x00 }, -        { 0x1c, 0x00 }, -        { 0x1d, 0xc4 }, -        { 0x52, 0x07 }, // [GB](HI|LOW) not needed for cis -        { 0x53, 0x0a }, -        { 0x54, 0x0c }, -        { 0x55, 0x00 }, -        { 0x56, 0x02 }, -        { 0x57, 0x06 }, -        { 0x58, 0x22 }, -        { 0x59, 0x69 }, -        { 0x5a, 0x40 }, -        { 0x5b, 0x00 }, // TODO: 5b-5e -        { 0x5c, 0x00 }, -        { 0x5d, 0x00 }, -        { 0x5e, 0x02 }, -    }; -    sensor.gamma = {1.0, 1.0, 1.0}; -    s_sensors->push_back(sensor); - - -    sensor = Genesys_Sensor(); -    sensor.sensor_id = CCD_IMG101; -    sensor.optical_res = 1200; -    sensor.black_pixels = 31; -    sensor.dummy_pixel = 31; -    sensor.CCD_start_xoffset = 0; -    sensor.sensor_pixels = 10800; -    sensor.fau_gain_white_ref = 210; -    sensor.gain_white_ref = 200; -    sensor.exposure = { 0x0000, 0x0000, 0x0000 }; -    sensor.custom_regs = { -        { 0x08, 0x60 }, -        { 0x09, 0x00 }, -        { 0x0a, 0x00 }, -        { 0x0b, 0x8b }, -        { 0x16, 0xbb }, -        { 0x17, 0x13 }, -        { 0x18, 0x10 }, -        { 0x19, 0x2a }, -        { 0x1a, 0x34 }, -        { 0x1b, 0x00 }, -        { 0x1c, 0x20 }, -        { 0x1d, 0x06 }, -        { 0x52, 0x02 }, -        { 0x53, 0x04 }, -        { 0x54, 0x06 }, -        { 0x55, 0x08 }, -        { 0x56, 0x0a }, -        { 0x57, 0x00 }, -        { 0x58, 0x59 }, -        { 0x59, 0x31 }, -        { 0x5a, 0x40 }, -        { 0x5b, 0x00 }, -        { 0x5c, 0x00 }, -        { 0x5d, 0x00 }, -        { 0x5e, 0x1f }, -    }; -    sensor.gamma = {1.7, 1.7, 1.7}; -    s_sensors->push_back(sensor); - - -    sensor = Genesys_Sensor(); -    sensor.sensor_id = CCD_PLUSTEK3800; -    sensor.optical_res = 1200; -    sensor.black_pixels = 31; -    sensor.dummy_pixel = 31; -    sensor.CCD_start_xoffset = 0; -    sensor.sensor_pixels = 10200; -    sensor.fau_gain_white_ref = 210; -    sensor.gain_white_ref = 200; -    sensor.exposure = { 0x0000, 0x0000, 0x0000 }; -    sensor.custom_regs = { -        { 0x08, 0x60 }, -        { 0x09, 0x00 }, -        { 0x0a, 0x00 }, -        { 0x0b, 0x8b }, -        { 0x16, 0xbb }, -        { 0x17, 0x13 }, -        { 0x18, 0x10 }, -        { 0x19, 0x2a }, -        { 0x1a, 0x34 }, -        { 0x1b, 0x00 }, -        { 0x1c, 0x20 }, -        { 0x1d, 0x06 }, -        { 0x52, 0x02 }, -        { 0x53, 0x04 }, -        { 0x54, 0x06 }, -        { 0x55, 0x08 }, -        { 0x56, 0x0a }, -        { 0x57, 0x00 }, -        { 0x58, 0x59 }, -        { 0x59, 0x31 }, -        { 0x5a, 0x40 }, -        { 0x5b, 0x00 }, -        { 0x5c, 0x00 }, -        { 0x5d, 0x00 }, -        { 0x5e, 0x1f }, -    }; -    sensor.gamma = {1.7, 1.7, 1.7}; -    s_sensors->push_back(sensor); - - -    sensor = Genesys_Sensor(); -    sensor.sensor_id = CIS_CANONLIDE80, -    sensor.optical_res = 1200; // real hardware limit is 2400 -    sensor.ccd_size_divisor = 2; -    sensor.black_pixels = 20; -    sensor.dummy_pixel = 6; -    // tuned to give 3*8 multiple startx coordinate during shading calibration -    sensor.CCD_start_xoffset = 34; // 14=>3, 20=>2 -    // 10400, too wide=>10288 in shading data 10240~ -    // 10208 too short for shading, max shading data = 10240 pixels, endpix-startpix=10208 -    sensor.sensor_pixels = 10240; -    sensor.fau_gain_white_ref = 150; -    sensor.gain_white_ref = 150; -    // maps to 0x70-0x73 for GL841 -    sensor.exposure = { 0x1000, 0x1000, 0x0500 }; -    sensor.custom_regs = { -        { 0x08, 0x00 }, -        { 0x09, 0x05 }, -        { 0x0a, 0x07 }, -        { 0x0b, 0x09 }, -        { 0x16, 0x00 }, -        { 0x17, 0x01 }, -        { 0x18, 0x00 }, -        { 0x19, 0x06 }, -        { 0x1a, 0x00 }, -        { 0x1b, 0x00 }, -        { 0x1c, 0x00 }, -        { 0x1d, 0x04 }, -        { 0x52, 0x03 }, -        { 0x53, 0x07 }, -        { 0x54, 0x00 }, -        { 0x55, 0x00 }, -        { 0x56, 0x00 }, -        { 0x57, 0x00 }, -        { 0x58, 0x29 }, -        { 0x59, 0x69 }, -        { 0x5a, 0x55 }, -        { 0x5b, 0x00 }, -        { 0x5c, 0x00 }, -        { 0x5d, 0x20 }, -        { 0x5e, 0x41 }, -    }; -    sensor.gamma = {1.0, 1.0, 1.0}; -    s_sensors->push_back(sensor); -} - -/** for General Purpose Output specific settings: - * initial GPO value (registers 0x66-0x67/0x6c-0x6d) - * GPO enable mask (registers 0x68-0x69/0x6e-0x6f) - * The first register is for GPIO9-GPIO16, the second for GPIO1-GPIO8 - */ -static Genesys_Gpo Gpo[] = { -  /* UMAX */ -  {GPO_UMAX, -   {0x11, 0x00} -   , -   {0x51, 0x20} -   , -   } -  , -  /* Plustek OpticPro S12/ST12 */ -  {GPO_ST12, -   {0x11, 0x00} -   , -   {0x51, 0x20} -   , -   } -  , -  /* Plustek OpticPro S24/ST24 */ -  {GPO_ST24, -   {0x00, 0x00} -   , -   {0x51, 0x20} -   , -   } -  , -  /* MD5345/MD6471 */ -  {GPO_5345, -   {0x30, 0x18} -   ,                                /* bits 11-12 are for bipolar V-ref input voltage */ -   {0xa0, 0x18} -   , -   } -  , -  /* HP2400C */ -  {GPO_HP2400, -   {0x30, 0x00} -   , -   {0x31, 0x00} -   , -   } -  , -  /* HP2300C */ -  {GPO_HP2300, -   {0x00, 0x00} -   , -   {0x00, 0x00} -   , -   } -  , -  /* CANONLIDE35 */ -  {GPO_CANONLIDE35, -   {0x02, 0x80} -   , -   {0xef, 0x80} -   , -   } -  , -  /* 7: XP200 */ -  {GPO_XP200, -   {0x30, 0x00} -   , -   {0xb0, 0x00} -   , -   }, -  /* HP3670 */ -  {GPO_HP3670, -   {0x00, 0x00} -   , -   {0x00, 0x00} -  } -  , -  /* 8: XP300 */ -  {GPO_XP300, -   {0x09, 0xc6}, -   {0xbb, 0x00}, -  } -  , -  /* Syscan DP 665 */ -  { -    GPO_DP665, -   {0x18, 0x00},/*0x19,0x00*/ -   {0xbb, 0x00}, -  } -  , -  /* Syscan DP 685 */ -  { -    GPO_DP685, -   {0x3f, 0x46}, /* 6c, 6d */ -   {0xfb, 0x00}, /* 6e, 6f */ -  }, -  /* CANONLIDE200 */ -  {GPO_CANONLIDE200, -   {0xfb, 0x20},        /* 0xfb when idle , 0xf9/0xe9 (1200) when scanning */ -   {0xff, 0x00}, -  }, -  /* CANONLIDE700 */ -  {GPO_CANONLIDE700, -   {0xdb, 0xff}, -   {0xff, 0x80}, -  }, -  {GPO_KVSS080, -   {0xf5, 0x20}, -   {0x7e, 0xa1}, -  } -  , -  {GPO_G4050, -   {0x20, 0x00}, -   {0xfc, 0x00}, -  } -  , -  /* HP N6310 */ -  {GPO_HP_N6310, -   {0xa3, 0x00}, -   {0x7f, 0x00}, -  } -  , -  /* CANONLIDE110 */ -  {GPO_CANONLIDE110, -   {0xfb, 0x20}, -   {0xff, 0x00}, -  } -  , -  /* CANONLIDE120 */ -  {GPO_CANONLIDE120, -   {0xfb, 0x20}, -   {0xff, 0x00}, -  } -  , -  /* CANONLIDE210 */ -  {GPO_CANONLIDE210, -   {0xfb, 0x20}, -   {0xff, 0x00}, -  } -  , -  /* Plustek 3600 */ -  {GPO_PLUSTEK_3600, -   {0x02, 0x00}, -   {0x1e, 0x80}, -  } -  /* CanoScan 4400f */ -  , -  {GPO_CS4400F, -   {0x01, 0x7f}, -   {0xff, 0x00}, -  } -  /* CanoScan 8400f */ -  , -  {GPO_CS8400F, -   {0x9a, 0xdf}, -   {0xfe, 0x60}, -  } -  /* CanoScan 8600F */ -  , -  { GPO_CS8600F, -    { 0x20, 0x7c }, -    { 0xff, 0x00 }, -  } -  /* Canon Image formula 101 */ -  , -  {GPO_IMG101, -   {0x41, 0xa4}, -   {0x13, 0xa7} -  } -  /* Plustek OpticBook 3800 */ -  , -  {GPO_PLUSTEK3800, -   {0x41, 0xa4}, -   {0x13, 0xa7} -  }, -  /* Canon LiDE 80 */ -  { -    GPO_CANONLIDE80, -   {0x28, 0x90}, -   {0x75, 0x80}, -  } -}; - -static Genesys_Motor Motor[] = { -  /* UMAX */ -  {MOTOR_UMAX, -   1200,                        /* motor base steps */ -   2400,                        /* maximum motor resolution */ -   1,                                /* maximum step mode */ -   1,                           /* number of power modes*/ -   {{{ -     11000,                        /* maximum start speed */ -     3000,                        /* maximum end speed */ -     128,                        /* step count */ -     1.0,                        /* nonlinearity */ -     }, -    { -     11000, -     3000, -     128, -     1.0, -   },},}, -  }, -  {MOTOR_5345,                                /* MD5345/6228/6471 */ -   1200, -   2400, -   1, -   1, -   {{{ -     2000, -     1375, -     128, -     0.5, -     }, -    { -     2000, -     1375, -     128, -     0.5, -    },},}, -  }, -  {MOTOR_ST24,                        /* ST24 */ -   2400, -   2400, -   1, -   1, -   {{{ -     2289, -     2100, -     128, -     0.3, -     }, -    { -     2289, -     2100, -     128, -     0.3, -    },},}, -  }, -  {MOTOR_HP3670,        /* HP 3670 */ -   1200, -   2400, -   1, -   1, -   {{{ -     11000,        /* start speed */ -     3000,        /* max speed */ -     128,        /* min steps */ -     0.25, -     }, -    { -     11000, -     3000, -     128, -     0.5, -    },},}, -  }, -  {MOTOR_HP2400,                /* HP 2400c */ -   1200, -   1200, -   1, -   1, -   {{{ -     11000,        /* start speed */ -     3000,        /* max speed */ -     128,        /* min steps */ -     0.25, -     }, -    { -     11000, -     3000, -     128, -     0.5, -    },},}, -  }, -  {MOTOR_HP2300,                /* HP 2300c */ -   600, /* 600/1200 */ -   1200, -   1, -   1, -   {{{ -     3200, -     1200, -     128, -     0.5, -     }, -    { -     3200, -     1200, -     128, -     0.5, -   },},}, -  }, -  {MOTOR_CANONLIDE35,                /* Canon LiDE 35 */ -   1200, -   2400, -   1, -   1, -   {{{ 3500, 1300, 60, 0.8, }, -    { 3500, 1400, 60, 0.8, },},}, -  }, -  {MOTOR_XP200,                        /* Strobe XP200 */ -   600, -   600, -   1, -   1, -   {{{ -     3500, -     1300, -     60, -     0.25, -     }, -    { -     3500, -     1400, -     60, -     0.5, -    },},}, -  }, -  {MOTOR_XP300,                                /* 7: Visioneer Strobe XP300 */ -   300, -   600, -   1, -   1, -   {{{ /* works best with GPIO10, GPIO14 off */ -     3700, -     3700, -     2, -     0.8, -     }, -    { -     11000, -     11000, -     2, -     0.8, -     },},}, -  }, -  {MOTOR_DP665,                                /* Syscan DP 665 */ -   750, -   1500, -   1, -   1, -   {{{ -     3000, -     2500, -     10, -     0.8, -     }, -    { -     11000, -     11000, -     2, -     0.8, -     },},}, -  }, -  {MOTOR_ROADWARRIOR,                        /* Visioneer Roadwarrior */ -   750, -   1500, -   1, -   1, -   {{{ -     3000, -     2600, -     10, -     0.8, -     }, -    { -     11000, -     11000, -     2, -     0.8, -     },},}, -  }, -  {MOTOR_DSMOBILE_600,                        /* Pentax DSmobile 600 */ -   750, -   1500, -   2, -   1, -   {{{ -     6666, -     3700, -     8, -     0.8, -     }, -    { -     6666, -     3700, -     8, -     0.8, -     },},}, -  }, -  {MOTOR_CANONLIDE100,                /* Canon LiDE 100 */ -   1200, -   6400, -   2,   /* maximum step type count */ -   1,   /* maximum power modes count */ -   { /* motor slopes */ -	   { /* power mode 0 */ -		   {   3000,   1000, 127, 0.50}, /* full step */ -		       {   3000,   1500, 127, 0.50}, /* half step */ -		       { 3*2712, 3*2712, 16, 0.80}, /* quarter step 0.75*2712 */ -	   }, -    }, -  }, -  {MOTOR_CANONLIDE200,                /* Canon LiDE 200 */ -   1200, -   6400, -   2, -   1, -   { /* motor slopes */ -	   { /* power mode 0 */ -		   {   3000,   1000, 127, 0.50}, /* full step */ -		       {   3000,   1500, 127, 0.50}, /* half step */ -		       { 3*2712, 3*2712, 16, 0.80}, /* quarter step 0.75*2712 */ -	   }, -    }, -  }, -  {MOTOR_CANONLIDE700,                /* Canon LiDE 700 */ -   1200, -   6400, -   2, -   1, -   { /* motor slopes */ -	   { /* power mode 0 */ -		   {   3000,   1000, 127, 0.50}, /* full step */ -		       {   3000,   1500, 127, 0.50}, /* half step */ -		       { 3*2712, 3*2712, 16, 0.80}, /* quarter step 0.75*2712 */ -	   }, -    }, -  }, -  {MOTOR_KVSS080, -   1200, -   1200, -   2, -   1, -   { /* motor slopes */ -	   { /* power mode 0 */ -		     { 22222, 500, 246, 0.5 }, /* max speed / dpi * base dpi => exposure */ -		     { 22222, 500, 246, 0.5 }, -		     { 22222, 500, 246, 0.5 }, -	       }, -   }, -  }, -  {MOTOR_G4050, -   2400, -   9600, -   2, -   1, -   { /* motor slopes */ -	   { /* power mode 0 */ -		     { 3961, 240, 246, 0.8 }, /* full step   */ -		     { 3961, 240, 246, 0.8 }, /* half step   */ -		     { 3961, 240, 246, 0.8 }, /* quarter step */ -	       }, -   }, -  }, -  {MOTOR_CS8400F, -   2400, -   9600, -   2, -   1, -   { /* motor slopes */ -	   { /* power mode 0 */ -		     { 3961, 240, 246, 0.8 }, /* full step   */ -		     { 3961, 240, 246, 0.8 }, /* half step   */ -		     { 3961, 240, 246, 0.8 }, /* quarter step */ -	       }, -   }, -  }, -  { -    MOTOR_CS8600F, -    2400, -    9600, -    2, -    1, -    { /* motor slopes */ -      { /* power mode 0 */ -        { 3961, 240, 246, 0.8 }, /* full step   */ -        { 3961, 240, 246, 0.8 }, /* half step   */ -        { 3961, 240, 246, 0.8 }, /* quarter step */ -      }, -    }, -  }, -  {MOTOR_CANONLIDE110,                /* Canon LiDE 110 */ -   4800, -   9600, -   1,   /* maximum step type count */ -   1,   /* maximum power modes count */ -   { /* motor slopes */ -	   { /* power mode 0 */ -		   {   3000,   1000, 256, 0.50}, /* full step */ -	   }, -    }, -  }, -  {MOTOR_CANONLIDE120,                /* Canon LiDE 120 */ -   4800, -   9600, -   1,   /* maximum step type count */ -   1,   /* maximum power modes count */ -   { /* motor slopes */ -	   { /* power mode 0 */ -		   {   3000,   1000, 256, 0.50}, /* full step */ -	   }, -    }, -  }, -  {MOTOR_CANONLIDE210,                /* Canon LiDE 210 */ -   4800, -   9600, -   1,   /* maximum step type count */ -   1,   /* maximum power modes count */ -   { /* motor slopes */ -	   { /* power mode 0 */ -		   {   3000,   1000, 256, 0.50}, /* full step */ -	   }, -    }, -  }, -  {MOTOR_PLUSTEK_3600,                /* PLUSTEK 3600 */ -   1200, -   2400, -   1, -   1, -   { -     { -       { 3500, 1300, 60, 0.8 }, -       { 3500, 3250, 60, 0.8 }, -     }, -   },}, -  {MOTOR_IMG101,                /* Canon Image Formula 101 */ -   600, -   1200, -   1, -   1, -   { -     { -       { 3500, 1300, 60, 0.8 }, -       { 3500, 3250, 60, 0.8 }, -     }, -   },}, -  {MOTOR_PLUSTEK3800,                /* Plustek OpticBook 3800 */ -   600, -   1200, -   1, -   1, -   { -     { -       { 3500, 1300, 60, 0.8 }, -       { 3500, 3250, 60, 0.8 }, -     }, -   },}, -  {MOTOR_CANONLIDE80, -   2400, /* 2400 ???? */ -   4800, /* 9600 ???? */ -   1,        /* max step type */ -   1,        /* power mode count */ -   { -     { /* start speed, max end speed, step number */ -       /* maximum speed (second field) is used to compute exposure as seen by motor */ -       /* exposure=max speed/ slope dpi * base dpi */ -       /* 5144 = max pixels at 600 dpi */ -       /* 1288=(5144+8)*ydpi(=300)/base_dpi(=1200) , where 5152 is exposure */ -       /* 6440=9660/(1932/1288) */ -       {  9560,  1912, 31, 0.8 }, -     }, -   },}, -}; - -/* here we have the various device settings... - */ -static Genesys_Model umax_astra_4500_model = { -  "umax-astra-4500",                /* Name */ -  "UMAX",                        /* Device vendor string */ -  "Astra 4500",                        /* Device model name */ -  MODEL_UMAX_ASTRA_4500, -  GENESYS_GL646, -  NULL, - -  {1200, 600, 300, 150, 75, 0},        /* possible x-resolutions */ -  {2400, 1200, 600, 300, 150, 75, 0},        /* possible y-resolutions */ -  {16, 8, 0},                        /* possible depths in gray mode */ -  {16, 8, 0},                        /* possible depths in color mode */ - -  SANE_FIX (3.5),                /* Start of scan area in mm  (x) */ -  SANE_FIX (7.5),                /* Start of scan area in mm (y) */ -  SANE_FIX (218.0),                /* Size of scan area in mm (x) */ -  SANE_FIX (299.0),                /* Size of scan area in mm (y) */ - -  SANE_FIX (0.0),                /* Start of white strip in mm (y) */ -  SANE_FIX (1.0),                /* Start of black mark in mm (x) */ - -  SANE_FIX (0.0),                /* Start of scan area in TA mode in mm (x) */ -  SANE_FIX (0.0),                /* Start of scan area in TA mode in mm (y) */ -  SANE_FIX (100.0),                /* Size of scan area in TA mode in mm (x) */ -  SANE_FIX (100.0),                /* Size of scan area in TA mode in mm (y) */ - -  SANE_FIX (0.0),                /* Start of white strip in TA mode in mm (y) */ - -  SANE_FIX (0.0),                /* Size of scan area after paper sensor stops -				   sensing document in mm */ -  SANE_FIX (0.0),                /* Amount of feeding needed to eject document -				   after finishing scanning in mm */ - -  0, 8, 16,                        /* RGB CCD Line-distance correction in pixel */ - -  COLOR_ORDER_BGR,                /* Order of the CCD/CIS colors */ - -  SANE_FALSE,                        /* Is this a CIS scanner? */ -  SANE_FALSE,                        /* Is this a sheetfed scanner? */ -  CCD_UMAX, -  DAC_WOLFSON_UMAX, -  GPO_UMAX, -  MOTOR_UMAX, -  GENESYS_FLAG_UNTESTED,        /* Which flags are needed for this scanner? */ -  /* untested, values set by hmg */ -  GENESYS_HAS_NO_BUTTONS, /* no buttons supported */ -  20, -  0,        // shading_ta_lines -  200 -}; - -static Genesys_Model canon_lide_50_model = { -  "canon-lide-50",                /* Name */ -  "Canon",                        /* Device vendor string */ -  "LiDE 35/40/50",                /* Device model name */ -  MODEL_CANON_LIDE_50, -  GENESYS_GL841, -  NULL, - -  {      1200, 600, 400, 300, 240, 200, 150, 75, 0},        /* possible x-resolutions */ -  {2400, 1200, 600, 400, 300, 240, 200, 150, 75, 0},        /* possible y-resolutions */ -  {16, 8, 0},                        /* possible depths in gray mode */ -  {16, 8, 0},                        /* possible depths in color mode */ - -  SANE_FIX (0.42),                /* Start of scan area in mm  (x) */ -  SANE_FIX (7.9),                /* Start of scan area in mm (y) */ -  SANE_FIX (218.0),                /* Size of scan area in mm (x) */ -  SANE_FIX (299.0),                /* Size of scan area in mm (y) */ - -  SANE_FIX (6.0),                /* Start of white strip in mm (y) */ -  SANE_FIX (0.0),                /* Start of black mark in mm (x) */ - -  SANE_FIX (0.0),                /* Start of scan area in TA mode in mm (x) */ -  SANE_FIX (0.0),                /* Start of scan area in TA mode in mm (y) */ -  SANE_FIX (100.0),                /* Size of scan area in TA mode in mm (x) */ -  SANE_FIX (100.0),                /* Size of scan area in TA mode in mm (y) */ - -  SANE_FIX (0.0),                /* Start of white strip in TA mode in mm (y) */ - -  SANE_FIX (0.0),                /* Size of scan area after paper sensor stops -				   sensing document in mm */ -  SANE_FIX (0.0),                /* Amount of feeding needed to eject document -				   after finishing scanning in mm */ - -  0, 0, 0,                        /* RGB CCD Line-distance correction in pixel */ - -  COLOR_ORDER_RGB,                /* Order of the CCD/CIS colors */ - -  SANE_TRUE,                        /* Is this a CIS scanner? */ -  SANE_FALSE,                        /* Is this a sheetfed scanner? */ -  CCD_CANONLIDE35, -  DAC_CANONLIDE35, -  GPO_CANONLIDE35, -  MOTOR_CANONLIDE35, -  GENESYS_FLAG_LAZY_INIT |         /* Which flags are needed for this scanner? */ -  GENESYS_FLAG_SKIP_WARMUP | -  GENESYS_FLAG_OFFSET_CALIBRATION | -  GENESYS_FLAG_DARK_WHITE_CALIBRATION | -  GENESYS_FLAG_CUSTOM_GAMMA, -  GENESYS_HAS_SCAN_SW | -  GENESYS_HAS_FILE_SW | -  GENESYS_HAS_EMAIL_SW | -  GENESYS_HAS_COPY_SW, -  280, -  0,        // shading_ta_lines -  400 -}; - -static Genesys_Model panasonic_kvss080_model = { -  "panasonic-kv-ss080",                /* Name */ -  "Panasonic",                        /* Device vendor string */ -  "KV-SS080",                        /* Device model name */ -  MODEL_PANASONIC_KV_SS080, -  GENESYS_GL843, -  NULL, - -  { 600, /* 500, 400,*/ 300, 200, 150, 100, 75, 0},        /* possible x-resolutions */ -  { 1200, 600, /* 500, 400, */ 300, 200, 150, 100, 75, 0},        /* possible y-resolutions */ -  {16, 8, 0},                        /* possible depths in gray mode */ -  {16, 8, 0},                        /* possible depths in color mode */ - -  SANE_FIX (7.2),                /* Start of scan area in mm  (x) */ -  SANE_FIX (14.7),                /* Start of scan area in mm (y) */ -  SANE_FIX (217.7),                /* Size of scan area in mm (x) */ -  SANE_FIX (300.0),                /* Size of scan area in mm (y) */ - -  SANE_FIX (9.0),                /* Start of white strip in mm (y) */ -  SANE_FIX (0.0),                /* Start of black mark in mm (x) */ - -  SANE_FIX (0.0),                /* Start of scan area in TA mode in mm (x) */ -  SANE_FIX (0.0),                /* Start of scan area in TA mode in mm (y) */ -  SANE_FIX (0.0),                /* Size of scan area in TA mode in mm (x) */ -  SANE_FIX (0.0),                /* Size of scan area in TA mode in mm (y) */ - -  SANE_FIX (0.0),                /* Start of white strip in TA mode in mm (y) */ - -  SANE_FIX (0.0),                /* Size of scan area after paper sensor stops -				   sensing document in mm */ -  SANE_FIX (0.0),                /* Amount of feeding needed to eject document -				   after finishing scanning in mm */ - -  0, 8, 16,                        /* RGB CCD Line-distance correction in pixel */ - -  COLOR_ORDER_RGB,                /* Order of the CCD/CIS colors */ - -  SANE_FALSE,                        /* Is this a CIS scanner? */ -  SANE_FALSE,                        /* Is this a sheetfed scanner? */ -  CCD_KVSS080, -  DAC_KVSS080, -  GPO_KVSS080, -  MOTOR_KVSS080, -  GENESYS_FLAG_LAZY_INIT | -  GENESYS_FLAG_SKIP_WARMUP | -  GENESYS_FLAG_OFFSET_CALIBRATION | -  GENESYS_FLAG_CUSTOM_GAMMA, -  GENESYS_HAS_SCAN_SW , -  100, -  0,        // shading_ta_lines -  100 -}; - -static Genesys_Model hp4850c_model = { -  "hewlett-packard-scanjet-4850c",        /* Name */ -  "Hewlett Packard",                        /* Device vendor string */ -  "ScanJet 4850C",                        /* Device model name */ -  MODEL_HP_SCANJET_4850C, -  GENESYS_GL843, -  NULL, - -  {2400, 1200, 600, 400, 300, 200, 150, 100, 0}, -  {2400, 1200, 600, 400, 300, 200, 150, 100, 0}, -  {16, 8, 0},                        /* possible depths in gray mode */ -  {16, 8, 0},                        /* possible depths in color mode */ - -  SANE_FIX (7.9),        /* Start of scan area in mm  (x) */ -  SANE_FIX (5.9),        /* Start of scan area in mm (y) */ -  SANE_FIX (219.6),      /* Size of scan area in mm (x) */ -  SANE_FIX (314.5),      /* Size of scan area in mm (y) */ - -  SANE_FIX (3.0),                /* Start of white strip in mm (y) */ -  SANE_FIX (0.0),                /* Start of black mark in mm (x) */ - -  SANE_FIX (0.0),                /* Start of scan area in TA mode in mm (x) */ -  SANE_FIX (0.0),                /* Start of scan area in TA mode in mm (y) */ -  SANE_FIX (100.0),                /* Size of scan area in TA mode in mm (x) */ -  SANE_FIX (100.0),                /* Size of scan area in TA mode in mm (y) */ - -  SANE_FIX (0.0),                /* Start of white strip in TA mode in mm (y) */ - -  SANE_FIX (0.0),                /* Size of scan area after paper sensor stops -				   sensing document in mm */ -  SANE_FIX (0.0),                /* Amount of feeding needed to eject document -				   after finishing scanning in mm */ - -  0, 24, 48,                        /* RGB CCD Line-distance correction in line number */ -				  /* 0 38 76 OK 1200/2400 */ -				  /* 0 24 48 OK [100,600] dpi */ - -  COLOR_ORDER_RGB,                /* Order of the CCD/CIS colors */ - -  SANE_FALSE,                        /* Is this a CIS scanner? */ -  SANE_FALSE,                        /* Is this a sheetfed scanner? */ -  CCD_G4050, -  DAC_G4050, -  GPO_G4050, -  MOTOR_G4050, -  GENESYS_FLAG_LAZY_INIT | -  GENESYS_FLAG_OFFSET_CALIBRATION | -  GENESYS_FLAG_STAGGERED_LINE | -  GENESYS_FLAG_SKIP_WARMUP | -  GENESYS_FLAG_DARK_CALIBRATION | -  GENESYS_FLAG_CUSTOM_GAMMA, -  GENESYS_HAS_SCAN_SW | GENESYS_HAS_FILE_SW | GENESYS_HAS_COPY_SW, -  100, -  0,        // shading_ta_lines -  100 -}; - -static Genesys_Model hpg4010_model = { -  "hewlett-packard-scanjet-g4010",        /* Name */ -  "Hewlett Packard",                        /* Device vendor string */ -  "ScanJet G4010",                        /* Device model name */ -  MODEL_HP_SCANJET_G4010, -  GENESYS_GL843, -  NULL, - -  { 2400, 1200, 600, 400, 300, 200, 150, 100, 0}, -  { 2400, 1200, 600, 400, 300, 200, 150, 100, 0}, -  {16, 8, 0},                        /* possible depths in gray mode */ -  {16, 8, 0},                        /* possible depths in color mode */ - -  SANE_FIX (8.0),                /* Start of scan area in mm  (x) */ -  SANE_FIX (13.00),                /* Start of scan area in mm (y) */ -  SANE_FIX (217.9),                /* Size of scan area in mm (x) 5148 pixels at 600 dpi*/ -  SANE_FIX (315.0),                /* Size of scan area in mm (y) */ - -  SANE_FIX (3.0),                /* Start of white strip in mm (y) */ -  SANE_FIX (0.0),                /* Start of black mark in mm (x) */ - -  SANE_FIX (0.0),                /* Start of scan area in TA mode in mm (x) */ -  SANE_FIX (0.0),                /* Start of scan area in TA mode in mm (y) */ -  SANE_FIX (100.0),                /* Size of scan area in TA mode in mm (x) */ -  SANE_FIX (100.0),                /* Size of scan area in TA mode in mm (y) */ - -  SANE_FIX (0.0),                /* Start of white strip in TA mode in mm (y) */ - -  SANE_FIX (0.0),                /* Size of scan area after paper sensor stops -				   sensing document in mm */ -  SANE_FIX (0.0),                /* Amount of feeding needed to eject document -				   after finishing scanning in mm */ - -  0, 24, 48,                        /* RGB CCD Line-distance correction in line number */ -				  /* 0 38 76 OK 1200/2400 */ -				  /* 0 24 48 OK [100,600] dpi */ - -  COLOR_ORDER_RGB,                /* Order of the CCD/CIS colors */ - -  SANE_FALSE,                        /* Is this a CIS scanner? */ -  SANE_FALSE,                        /* Is this a sheetfed scanner? */ -  CCD_G4050, -  DAC_G4050, -  GPO_G4050, -  MOTOR_G4050, -  GENESYS_FLAG_LAZY_INIT | -  GENESYS_FLAG_OFFSET_CALIBRATION | -  GENESYS_FLAG_STAGGERED_LINE | -  GENESYS_FLAG_SKIP_WARMUP | -  GENESYS_FLAG_DARK_CALIBRATION | -  GENESYS_FLAG_CUSTOM_GAMMA, -  GENESYS_HAS_SCAN_SW | GENESYS_HAS_FILE_SW | GENESYS_HAS_COPY_SW, -  100, -  0,        // shading_ta_lines -  100 -}; - -static Genesys_Model hpg4050_model = { -  "hewlett-packard-scanjet-g4050",        /* Name */ -  "Hewlett Packard",                        /* Device vendor string */ -  "ScanJet G4050",                        /* Device model name */ -  MODEL_HP_SCANJET_G4050, -  GENESYS_GL843, -  NULL, - -  { 2400, 1200, 600, 400, 300, 200, 150, 100, 0}, -  { 2400, 1200, 600, 400, 300, 200, 150, 100, 0}, -  {16, 8, 0},                        /* possible depths in gray mode */ -  {16, 8, 0},                        /* possible depths in color mode */ - -  SANE_FIX (8.0),                /* Start of scan area in mm  (x) */ -  SANE_FIX (13.00),                /* Start of scan area in mm (y) */ -  SANE_FIX (217.9),                /* Size of scan area in mm (x) 5148 pixels at 600 dpi*/ -  SANE_FIX (315.0),                /* Size of scan area in mm (y) */ - -  SANE_FIX (3.0),                /* Start of white strip in mm (y) */ -  SANE_FIX (0.0),                /* Start of black mark in mm (x) */ - -  SANE_FIX (8.0),                /* Start of scan area in TA mode in mm (x) */ -  SANE_FIX (13.00),                /* Start of scan area in TA mode in mm (y) */ -  SANE_FIX (217.9),                /* Size of scan area in TA mode in mm (x) */ -  SANE_FIX (250.0),                /* Size of scan area in TA mode in mm (y) */ - -  SANE_FIX (40.0),                /* Start of white strip in TA mode in mm (y) */ - -  SANE_FIX (0.0),                /* Size of scan area after paper sensor stops -				   sensing document in mm */ -  SANE_FIX (0.0),                /* Amount of feeding needed to eject document -				   after finishing scanning in mm */ - -  0, 24, 48,                        /* RGB CCD Line-distance correction in line number */ -				  /* 0 38 76 OK 1200/2400 */ -				  /* 0 24 48 OK [100,600] dpi */ - -  COLOR_ORDER_RGB,                /* Order of the CCD/CIS colors */ - -  SANE_FALSE,                        /* Is this a CIS scanner? */ -  SANE_FALSE,                        /* Is this a sheetfed scanner? */ -  CCD_G4050, -  DAC_G4050, -  GPO_G4050, -  MOTOR_G4050, -  GENESYS_FLAG_LAZY_INIT | -  GENESYS_FLAG_OFFSET_CALIBRATION | -  GENESYS_FLAG_STAGGERED_LINE | -  GENESYS_FLAG_SKIP_WARMUP | -  GENESYS_FLAG_DARK_CALIBRATION | -  GENESYS_FLAG_CUSTOM_GAMMA, -  GENESYS_HAS_SCAN_SW | GENESYS_HAS_FILE_SW | GENESYS_HAS_COPY_SW, -  100, -  0,        // shading_ta_lines -  100 -}; - - -static Genesys_Model canon_4400f_model = { -  "canon-canoscan-4400f",        /* Name */ -  "Canon",                        /* Device vendor string */ -  "Canoscan 4400f",                /* Device model name */ -  MODEL_CANON_CANOSCAN_4400F, -  GENESYS_GL843, -  NULL, - -  { 4800, 2400, 1200, 600, 400, 300, 200, 150, 100, 0}, -  { 4800, 2400, 1200, 600, 400, 300, 200, 150, 100, 0}, -  {16, 8, 0},                        /* possible depths in gray mode */ -  {16, 8, 0},                        /* possible depths in color mode */ - -  SANE_FIX (6.0),                /* Start of scan area in mm  (x) */ -  SANE_FIX (13.00),                /* Start of scan area in mm (y) */ -  SANE_FIX (217.9),                /* Size of scan area in mm (x) 5148 pixels at 600 dpi*/ -  SANE_FIX (315.0),                /* Size of scan area in mm (y) */ - -  SANE_FIX (3.0),                /* Start of white strip in mm (y) */ -  SANE_FIX (0.0),                /* Start of black mark in mm (x) */ - -  SANE_FIX (8.0),                /* Start of scan area in TA mode in mm (x) */ -  SANE_FIX (13.00),                /* Start of scan area in TA mode in mm (y) */ -  SANE_FIX (217.9),                /* Size of scan area in TA mode in mm (x) */ -  SANE_FIX (250.0),                /* Size of scan area in TA mode in mm (y) */ - -  SANE_FIX (40.0),                /* Start of white strip in TA mode in mm (y) */ - -  SANE_FIX (0.0),                /* Size of scan area after paper sensor stops -				   sensing document in mm */ -  SANE_FIX (0.0),                /* Amount of feeding needed to eject document -				   after finishing scanning in mm */ - -  0, 24, 48,                        /* RGB CCD Line-distance correction in line number */ -				  /* 0 38 76 OK 1200/2400 */ -				  /* 0 24 48 OK [100,600] dpi */ - -  COLOR_ORDER_RGB,                /* Order of the CCD/CIS colors */ - -  SANE_FALSE,                        /* Is this a CIS scanner? */ -  SANE_FALSE,                        /* Is this a sheetfed scanner? */ -  CCD_CS4400F, -  DAC_G4050, -  GPO_CS4400F, -  MOTOR_G4050, -  GENESYS_FLAG_NO_CALIBRATION | -  GENESYS_FLAG_LAZY_INIT | -  GENESYS_FLAG_OFFSET_CALIBRATION | -  GENESYS_FLAG_STAGGERED_LINE | -  GENESYS_FLAG_SKIP_WARMUP | -  GENESYS_FLAG_DARK_CALIBRATION | -  GENESYS_FLAG_FULL_HWDPI_MODE | -  GENESYS_FLAG_CUSTOM_GAMMA, -  GENESYS_HAS_SCAN_SW | GENESYS_HAS_FILE_SW | GENESYS_HAS_COPY_SW, -  100, -  0,        // shading_ta_lines -  100 -}; - - -static Genesys_Model canon_8400f_model = { -  "canon-canoscan-8400f",        /* Name */ -  "Canon",                        /* Device vendor string */ -  "Canoscan 8400f",                /* Device model name */ -  MODEL_CANON_CANOSCAN_8400F, -  GENESYS_GL843, -  NULL, - -  { 4800, 2400, 1200, 600, 400, 300, 200, 150, 100, 0}, -  { 4800, 2400, 1200, 600, 400, 300, 200, 150, 100, 0}, -  {16, 8, 0},                        /* possible depths in gray mode */ -  {16, 8, 0},                        /* possible depths in color mode */ - -  SANE_FIX (4.0),                /* Start of scan area in mm  (x) */ -  SANE_FIX (13.00),                /* Start of scan area in mm (y) */ -  SANE_FIX (217.9),                /* Size of scan area in mm (x) 5148 pixels at 600 dpi*/ -  SANE_FIX (315.0),                /* Size of scan area in mm (y) */ - -  SANE_FIX (3.0),                /* Start of white strip in mm (y) */ -  SANE_FIX (0.0),                /* Start of black mark in mm (x) */ - -  SANE_FIX (8.0),                /* Start of scan area in TA mode in mm (x) */ -  SANE_FIX (13.00),                /* Start of scan area in TA mode in mm (y) */ -  SANE_FIX (217.9),                /* Size of scan area in TA mode in mm (x) */ -  SANE_FIX (250.0),                /* Size of scan area in TA mode in mm (y) */ - -  SANE_FIX (40.0),                /* Start of white strip in TA mode in mm (y) */ - -  SANE_FIX (0.0),                /* Size of scan area after paper sensor stops -				   sensing document in mm */ -  SANE_FIX (0.0),                /* Amount of feeding needed to eject document -				   after finishing scanning in mm */ - -  0, 24, 48,                        /* RGB CCD Line-distance correction in line number */ -				  /* 0 38 76 OK 1200/2400 */ -				  /* 0 24 48 OK [100,600] dpi */ - -  COLOR_ORDER_RGB,                /* Order of the CCD/CIS colors */ - -  SANE_FALSE,                        /* Is this a CIS scanner? */ -  SANE_FALSE,                        /* Is this a sheetfed scanner? */ -  CCD_CS8400F, -  DAC_CS8400F, -  GPO_CS8400F, -  MOTOR_CS8400F, -  GENESYS_FLAG_NO_CALIBRATION | -  GENESYS_FLAG_LAZY_INIT | -  GENESYS_FLAG_OFFSET_CALIBRATION | -  GENESYS_FLAG_STAGGERED_LINE | -  GENESYS_FLAG_SKIP_WARMUP | -  GENESYS_FLAG_DARK_CALIBRATION | -  GENESYS_FLAG_FULL_HWDPI_MODE | -  GENESYS_FLAG_CUSTOM_GAMMA, -  GENESYS_HAS_SCAN_SW | GENESYS_HAS_FILE_SW | GENESYS_HAS_COPY_SW, -  100, -  0,        // shading_ta_lines -  100 -}; - - -static Genesys_Model canon_8600f_model = { -  "canon-canoscan-8600f",       // name -  "Canon",                      // Device vendor string -  "Canoscan 8600f",             // Device model name -  MODEL_CANON_CANOSCAN_8600F, -  GENESYS_GL843,                // ASIC type -  NULL, - -  { 4800, 2400, 1200, 600, 400, 300, 0}, // TODO: resolutions for non-XPA mode -  { 4800, 2400, 1200, 600, 400, 300, 0}, // TODO: resolutions for non-XPA mode -  { 16, 8, 0 },         // possible depths in gray mode -  { 16, 8, 0 },         // possible depths in color mode - -  SANE_FIX(24.0),        // Start of scan area in mm (x) -  SANE_FIX(10.0),        // Start of scan area in mm (y) -  SANE_FIX(216.0),      // Size of scan area in mm (x) -  SANE_FIX(297.0),      // Size of scan area in mm (y) - -  SANE_FIX(0.0),        // Start of white strip in mm (y) -  SANE_FIX(8.0),        // Start of black mark in mm (x) - -  SANE_FIX(95.0),       // x_offset_ta -  SANE_FIX(26.0),       // y_offset_ta -  SANE_FIX(70.0),       // x_size_ta -  SANE_FIX(230.0),      // y_size_ta - -  SANE_FIX(12.5),       // y_offset_calib - -  SANE_FIX(0.0),        // Size of scan area after paper sensor stops -                        // sensing document in mm -  SANE_FIX(0.0),        // Amount of feeding needed to eject document -                        // after finishing scanning in mm - -  0, 48, 96,            // RGB CCD Line-distance correction in line number - -  COLOR_ORDER_RGB,      // Order of the CCD/CIS colors - -  SANE_FALSE,            // Is this a CIS scanner? -  SANE_FALSE,           // Is this a sheetfed scanner? -  CCD_CS8600F, -  DAC_CS8600F, -  GPO_CS8600F, -  MOTOR_CS8600F, -  GENESYS_FLAG_HAS_UTA | -  GENESYS_FLAG_LAZY_INIT | -  GENESYS_FLAG_OFFSET_CALIBRATION | -  GENESYS_FLAG_STAGGERED_LINE | -  GENESYS_FLAG_SKIP_WARMUP | -  GENESYS_FLAG_DARK_CALIBRATION | -  GENESYS_FLAG_FULL_HWDPI_MODE | -  GENESYS_FLAG_CUSTOM_GAMMA | -  GENESYS_FLAG_SHADING_REPARK, -  GENESYS_HAS_SCAN_SW | GENESYS_HAS_FILE_SW | GENESYS_HAS_COPY_SW, -  50,       // shading_lines -  50,       // shading_ta_lines -  100 -}; - - -static Genesys_Model canon_lide_100_model = { -  "canon-lide-100",                /* Name */ -  "Canon",                        /* Device vendor string */ -  "LiDE 100",                        /* Device model name */ -  MODEL_CANON_LIDE_100, -  GENESYS_GL847, -  NULL, - -  {4800, 2400, 1200, 600, 300, 200, 150, 100, 75, 0},        /* possible x-resolutions */ -  {4800, 2400, 1200, 600, 300, 200, 150, 100, 75, 0},        /* possible y-resolutions */ -  {16, 8, 0},                        /* possible depths in gray mode */ -  {16, 8, 0},                        /* possible depths in color mode */ - -  SANE_FIX (1.1),                /* Start of scan area in mm (x) */ -  SANE_FIX (8.3),                /* Start of scan area in mm (y) */ -  SANE_FIX (216.07),                /* Size of scan area in mm (x) */ -  SANE_FIX (299.0),                /* Size of scan area in mm (y) */ - -  SANE_FIX (1.0),                /* Start of white strip in mm (y) */ -  SANE_FIX (0.0),                /* Start of black mark in mm (x) */ - -  SANE_FIX (0.0),                /* Start of scan area in TA mode in mm (x) */ -  SANE_FIX (0.0),                /* Start of scan area in TA mode in mm (y) */ -  SANE_FIX (100.0),                /* Size of scan area in TA mode in mm (x) */ -  SANE_FIX (100.0),                /* Size of scan area in TA mode in mm (y) */ - -  SANE_FIX (0.0),                /* Start of white strip in TA mode in mm (y) */ - -  SANE_FIX (0.0),                /* Size of scan area after paper sensor stops -				   sensing document in mm */ -  SANE_FIX (0.0),                /* Amount of feeding needed to eject document -				   after finishing scanning in mm */ - -  0, 0, 0,                        /* RGB CCD Line-distance correction in pixel */ - -  COLOR_ORDER_RGB,                /* Order of the CCD/CIS colors */ - -  SANE_TRUE,                        /* Is this a CIS scanner? */ -  SANE_FALSE,                        /* Is this a sheetfed scanner? */ -  CIS_CANONLIDE100, -  DAC_CANONLIDE200, -  GPO_CANONLIDE200, -  MOTOR_CANONLIDE100, -  /* Which flags are needed for this scanner? */ -      GENESYS_FLAG_SKIP_WARMUP -    | GENESYS_FLAG_SIS_SENSOR -    | GENESYS_FLAG_DARK_CALIBRATION -    | GENESYS_FLAG_SHADING_REPARK -    | GENESYS_FLAG_OFFSET_CALIBRATION -    | GENESYS_FLAG_CUSTOM_GAMMA, -  GENESYS_HAS_SCAN_SW | GENESYS_HAS_COPY_SW | GENESYS_HAS_EMAIL_SW | GENESYS_HAS_FILE_SW, -  50, -  0,        // shading_ta_lines -  400 -}; - -static Genesys_Model canon_lide_110_model = { -  "canon-lide-110",                /* Name */ -  "Canon",                        /* Device vendor string */ -  "LiDE 110",                        /* Device model name */ -  MODEL_CANON_LIDE_110, -  GENESYS_GL124, -  NULL, - -  {4800, 2400, 1200, 600, /* 400,*/ 300, 150, 100, 75, 0},        /* possible x-resolutions */ -  {4800, 2400, 1200, 600, /* 400,*/ 300, 150, 100, 75, 0},        /* possible y-resolutions */ -  {16, 8, 0},                        /* possible depths in gray mode */ -  {16, 8, 0},                        /* possible depths in color mode */ - -  SANE_FIX (2.2),                /* Start of scan area in mm (x) */ -  SANE_FIX (9.0),                /* Start of scan area in mm (y) */ -  SANE_FIX (216.70),                /* Size of scan area in mm (x) */ -  SANE_FIX (300.0),                /* Size of scan area in mm (y) */ - -  SANE_FIX (1.0),                /* Start of white strip in mm (y) */ -  SANE_FIX (0.0),                /* Start of black mark in mm (x) */ - -  SANE_FIX (0.0),                /* Start of scan area in TA mode in mm (x) */ -  SANE_FIX (0.0),                /* Start of scan area in TA mode in mm (y) */ -  SANE_FIX (100.0),                /* Size of scan area in TA mode in mm (x) */ -  SANE_FIX (100.0),                /* Size of scan area in TA mode in mm (y) */ - -  SANE_FIX (0.0),                /* Start of white strip in TA mode in mm (y) */ - -  SANE_FIX (0.0),                /* Size of scan area after paper sensor stops -				   sensing document in mm */ -  SANE_FIX (0.0),                /* Amount of feeding needed to eject document -				   after finishing scanning in mm */ - -  0, 0, 0,                        /* RGB CCD Line-distance correction in pixel */ - -  COLOR_ORDER_RGB,                /* Order of the CCD/CIS colors */ - -  SANE_TRUE,                        /* Is this a CIS scanner? */ -  SANE_FALSE,                        /* Is this a sheetfed scanner? */ -  CIS_CANONLIDE110, -  DAC_CANONLIDE110, -  GPO_CANONLIDE110, -  MOTOR_CANONLIDE110, -      GENESYS_FLAG_SKIP_WARMUP -    | GENESYS_FLAG_OFFSET_CALIBRATION -    | GENESYS_FLAG_DARK_CALIBRATION -    | GENESYS_FLAG_SHADING_REPARK -    | GENESYS_FLAG_CUSTOM_GAMMA, -  GENESYS_HAS_SCAN_SW | GENESYS_HAS_COPY_SW | GENESYS_HAS_EMAIL_SW | GENESYS_HAS_FILE_SW, -  50, -  0,        // shading_ta_lines -  400 -}; - -static Genesys_Model canon_lide_120_model = { -  "canon-lide-120",              /* Name */ -  "Canon",                       /* Device vendor string */ -  "LiDE 120",                    /* Device model name */ -  MODEL_CANON_LIDE_120, -  GENESYS_GL124, -  NULL, - -  {4800, 2400, 1200, 600, 300, 150, 100, 75, 0},        /* possible x-resolutions */ -  {4800, 2400, 1200, 600, 300, 150, 100, 75, 0},        /* possible y-resolutions */ -  {16, 8, 0},                    /* possible depths in gray mode */ -  {16, 8, 0},                    /* possible depths in color mode */ - -  SANE_FIX (0.0),               /* Start of scan area in mm (x) */ -  SANE_FIX (8.0),                /* Start of scan area in mm (y) */ -  SANE_FIX (216.0),             /* Size of scan area in mm (x) */ -  SANE_FIX (300.0),              /* Size of scan area in mm (y) */ - -  SANE_FIX (1.0),                /* Start of white strip in mm (y) */ -  SANE_FIX (0.0),                /* Start of black mark in mm (x) */ - -  SANE_FIX (0.0),                /* Start of scan area in TA mode in mm (x) */ -  SANE_FIX (0.0),                /* Start of scan area in TA mode in mm (y) */ -  SANE_FIX (100.0),              /* Size of scan area in TA mode in mm (x) */ -  SANE_FIX (100.0),              /* Size of scan area in TA mode in mm (y) */ - -  SANE_FIX (0.0),                /* Start of white strip in TA mode in mm (y) */ - -  SANE_FIX (0.0),                /* Size of scan area after paper sensor stops -				   sensing document in mm */ -  SANE_FIX (0.0),                /* Amount of feeding needed to eject document -				   after finishing scanning in mm */ - -  0, 0, 0,                       /* RGB CCD Line-distance correction in pixel */ - -  COLOR_ORDER_RGB,               /* Order of the CCD/CIS colors */ - -  SANE_TRUE,                     /* Is this a CIS scanner? */ -  SANE_FALSE,                    /* Is this a sheetfed scanner? */ -  CIS_CANONLIDE120, -  DAC_CANONLIDE120, -  GPO_CANONLIDE120, -  MOTOR_CANONLIDE120, -      GENESYS_FLAG_SKIP_WARMUP -    | GENESYS_FLAG_OFFSET_CALIBRATION -    | GENESYS_FLAG_DARK_CALIBRATION -    | GENESYS_FLAG_SHADING_REPARK -    | GENESYS_FLAG_CUSTOM_GAMMA, -  GENESYS_HAS_SCAN_SW | GENESYS_HAS_COPY_SW | GENESYS_HAS_EMAIL_SW | GENESYS_HAS_FILE_SW, -  50, -  0,        // shading_ta_lines -  400 -}; - - -static Genesys_Model canon_lide_210_model = { -  "canon-lide-210",                /* Name */ -  "Canon",                        /* Device vendor string */ -  "LiDE 210",                        /* Device model name */ -  MODEL_CANON_LIDE_210, -  GENESYS_GL124, -  NULL, - -  {4800, 2400, 1200, 600, /* 400,*/ 300, 150, 100, 75, 0},        /* possible x-resolutions */ -  {4800, 2400, 1200, 600, /* 400,*/ 300, 150, 100, 75, 0},        /* possible y-resolutions */ -  {16, 8, 0},                        /* possible depths in gray mode */ -  {16, 8, 0},                        /* possible depths in color mode */ - -  SANE_FIX (2.2),                /* Start of scan area in mm (x) */ -  SANE_FIX (8.7),                /* Start of scan area in mm (y) */ -  SANE_FIX (216.70),                /* Size of scan area in mm (x) */ -  SANE_FIX (297.5),                /* Size of scan area in mm (y) */ - -  SANE_FIX (0.0),                /* Start of white strip in mm (y) */ -  SANE_FIX (0.0),                /* Start of black mark in mm (x) */ - -  SANE_FIX (0.0),                /* Start of scan area in TA mode in mm (x) */ -  SANE_FIX (0.0),                /* Start of scan area in TA mode in mm (y) */ -  SANE_FIX (100.0),                /* Size of scan area in TA mode in mm (x) */ -  SANE_FIX (100.0),                /* Size of scan area in TA mode in mm (y) */ - -  SANE_FIX (0.0),                /* Start of white strip in TA mode in mm (y) */ - -  SANE_FIX (0.0),                /* Size of scan area after paper sensor stops -				   sensing document in mm */ -  SANE_FIX (0.0),                /* Amount of feeding needed to eject document -				   after finishing scanning in mm */ - -  0, 0, 0,                        /* RGB CCD Line-distance correction in pixel */ - -  COLOR_ORDER_RGB,                /* Order of the CCD/CIS colors */ - -  SANE_TRUE,                        /* Is this a CIS scanner? */ -  SANE_FALSE,                        /* Is this a sheetfed scanner? */ -  CIS_CANONLIDE210, -  DAC_CANONLIDE110, -  GPO_CANONLIDE210, -  MOTOR_CANONLIDE210, -      GENESYS_FLAG_SKIP_WARMUP -    | GENESYS_FLAG_OFFSET_CALIBRATION -    | GENESYS_FLAG_DARK_CALIBRATION -    | GENESYS_FLAG_SHADING_REPARK -    | GENESYS_FLAG_CUSTOM_GAMMA, -  GENESYS_HAS_SCAN_SW | GENESYS_HAS_COPY_SW | GENESYS_HAS_EMAIL_SW | GENESYS_HAS_FILE_SW | GENESYS_HAS_EXTRA_SW, -  60, -  0,        // shading_ta_lines -  400 -}; - -static Genesys_Model canon_lide_220_model = { -  "canon-lide-220",                /* Name */ -  "Canon",                        /* Device vendor string */ -  "LiDE 220",                        /* Device model name */ -  MODEL_CANON_LIDE_220, -  GENESYS_GL124, /* or a compatible one */ -  NULL, - -  {4800, 2400, 1200, 600, 300, 150, 100, 75, 0},        /* possible x-resolutions */ -  {4800, 2400, 1200, 600, 300, 150, 100, 75, 0},        /* possible y-resolutions */ -  {16, 8, 0},                        /* possible depths in gray mode */ -  {16, 8, 0},                        /* possible depths in color mode */ - -  SANE_FIX (2.2),                /* Start of scan area in mm (x) */ -  SANE_FIX (8.7),                /* Start of scan area in mm (y) */ -  SANE_FIX (216.70),                /* Size of scan area in mm (x) */ -  SANE_FIX (297.5),                /* Size of scan area in mm (y) */ - -  SANE_FIX (0.0),                /* Start of white strip in mm (y) */ -  SANE_FIX (0.0),                /* Start of black mark in mm (x) */ - -  SANE_FIX (0.0),                /* Start of scan area in TA mode in mm (x) */ -  SANE_FIX (0.0),                /* Start of scan area in TA mode in mm (y) */ -  SANE_FIX (100.0),                /* Size of scan area in TA mode in mm (x) */ -  SANE_FIX (100.0),                /* Size of scan area in TA mode in mm (y) */ - -  SANE_FIX (0.0),                /* Start of white strip in TA mode in mm (y) */ - -  SANE_FIX (0.0),                /* Size of scan area after paper sensor stops -				   sensing document in mm */ -  SANE_FIX (0.0),                /* Amount of feeding needed to eject document -				   after finishing scanning in mm */ - -  0, 0, 0,                        /* RGB CCD Line-distance correction in pixel */ - -  COLOR_ORDER_RGB,                /* Order of the CCD/CIS colors */ - -  SANE_TRUE,                        /* Is this a CIS scanner? */ -  SANE_FALSE,                        /* Is this a sheetfed scanner? */ -  CIS_CANONLIDE220, -  DAC_CANONLIDE110, -  GPO_CANONLIDE210, -  MOTOR_CANONLIDE210, -      GENESYS_FLAG_SKIP_WARMUP -    | GENESYS_FLAG_OFFSET_CALIBRATION -    | GENESYS_FLAG_DARK_CALIBRATION -    | GENESYS_FLAG_SHADING_REPARK -    | GENESYS_FLAG_CUSTOM_GAMMA, -  GENESYS_HAS_SCAN_SW | GENESYS_HAS_COPY_SW | GENESYS_HAS_EMAIL_SW | GENESYS_HAS_FILE_SW | GENESYS_HAS_EXTRA_SW, -  60, -  0,        // shading_ta_lines -  400 -}; - -static Genesys_Model canon_5600f_model = { -  "canon-5600f",                /* Name */ -  "Canon",                        /* Device vendor string */ -  "5600F",                        /* Device model name */ -  MODEL_CANON_CANOSCAN_5600F, -  GENESYS_GL847, -  NULL, - -  {1200, 600, 400, 300, 200, 150, 100, 75, 0},        /* possible x-resolutions */ -  {1200, 600, 400, 300, 200, 150, 100, 75, 0},        /* possible y-resolutions */ -  {16, 8, 0},                        /* possible depths in gray mode */ -  {16, 8, 0},                        /* possible depths in color mode */ - -  SANE_FIX (1.1),                /* Start of scan area in mm  (x) */ -  SANE_FIX (8.3),                /* Start of scan area in mm (y) */ -  SANE_FIX (216.07),                /* Size of scan area in mm (x) */ -  SANE_FIX (299.0),                /* Size of scan area in mm (y) */ - -  SANE_FIX (3.0),                /* Start of white strip in mm (y) */ -  SANE_FIX (0.0),                /* Start of black mark in mm (x) */ - -  SANE_FIX (0.0),                /* Start of scan area in TA mode in mm (x) */ -  SANE_FIX (0.0),                /* Start of scan area in TA mode in mm (y) */ -  SANE_FIX (100.0),                /* Size of scan area in TA mode in mm (x) */ -  SANE_FIX (100.0),                /* Size of scan area in TA mode in mm (y) */ - -  SANE_FIX (0.0),                /* Start of white strip in TA mode in mm (y) */ - -  SANE_FIX (0.0),                /* Size of scan area after paper sensor stops -				   sensing document in mm */ -  SANE_FIX (0.0),                /* Amount of feeding needed to eject document -				   after finishing scanning in mm */ - -  0, 0, 0,                        /* RGB CCD Line-distance correction in pixel */ - -  COLOR_ORDER_RGB,                /* Order of the CCD/CIS colors */ - -  SANE_TRUE,                        /* Is this a CIS scanner? */ -  SANE_FALSE,                        /* Is this a sheetfed scanner? */ -  CIS_CANONLIDE200, -  DAC_CANONLIDE200, -  GPO_CANONLIDE200, -  MOTOR_CANONLIDE200, -  GENESYS_FLAG_UNTESTED                /* not working yet */ -    | GENESYS_FLAG_SKIP_WARMUP -    | GENESYS_FLAG_SIS_SENSOR -    | GENESYS_FLAG_DARK_CALIBRATION -    | GENESYS_FLAG_OFFSET_CALIBRATION -    | GENESYS_FLAG_CUSTOM_GAMMA, -  GENESYS_HAS_SCAN_SW | GENESYS_HAS_COPY_SW | GENESYS_HAS_EMAIL_SW | GENESYS_HAS_FILE_SW, -  50, -  0,        // shading_ta_lines -  400 -}; - -static Genesys_Model canon_lide_700f_model = { -  "canon-lide-700f",                /* Name */ -  "Canon",                        /* Device vendor string */ -  "LiDE 700F",                        /* Device model name */ -  MODEL_CANON_LIDE_700F, -  GENESYS_GL847, -  NULL, - -  {4800, 2400, 1200, 600, 300, 200, 150, 100, 75, 0},        /* possible x-resolutions */ -  {4800, 2400, 1200, 600, 300, 200, 150, 100, 75, 0},        /* possible y-resolutions */ -  {16, 8, 0},                        /* possible depths in gray mode */ -  {16, 8, 0},                        /* possible depths in color mode */ - -  SANE_FIX (3.1),                /* Start of scan area in mm  (x) */ -  SANE_FIX (8.1),                /* Start of scan area in mm (y) */ -  SANE_FIX (216.07),                /* Size of scan area in mm (x) */ -  SANE_FIX (297.0),                /* Size of scan area in mm (y) */ - -  SANE_FIX (1.0),                /* Start of white strip in mm (y) */ -  SANE_FIX (0.0),                /* Start of black mark in mm (x) */ - -  SANE_FIX (0.0),                /* Start of scan area in TA mode in mm (x) */ -  SANE_FIX (0.0),                /* Start of scan area in TA mode in mm (y) */ -  SANE_FIX (100.0),                /* Size of scan area in TA mode in mm (x) */ -  SANE_FIX (100.0),                /* Size of scan area in TA mode in mm (y) */ - -  SANE_FIX (0.0),                /* Start of white strip in TA mode in mm (y) */ - -  SANE_FIX (0.0),                /* Size of scan area after paper sensor stops -				   sensing document in mm */ -  SANE_FIX (0.0),                /* Amount of feeding needed to eject document -				   after finishing scanning in mm */ - -  0, 0, 0,                        /* RGB CCD Line-distance correction in pixel */ - -  COLOR_ORDER_RGB,                /* Order of the CCD/CIS colors */ - -  SANE_TRUE,                        /* Is this a CIS scanner? */ -  SANE_FALSE,                        /* Is this a sheetfed scanner? */ -  CIS_CANONLIDE700, -  DAC_CANONLIDE700, -  GPO_CANONLIDE700, -  MOTOR_CANONLIDE700, -      GENESYS_FLAG_SKIP_WARMUP -    | GENESYS_FLAG_SIS_SENSOR -    | GENESYS_FLAG_OFFSET_CALIBRATION -    | GENESYS_FLAG_DARK_CALIBRATION -    | GENESYS_FLAG_SHADING_REPARK -    | GENESYS_FLAG_CUSTOM_GAMMA, -  GENESYS_HAS_SCAN_SW | GENESYS_HAS_COPY_SW | GENESYS_HAS_EMAIL_SW | GENESYS_HAS_FILE_SW, -  70, -  0,        // shading_ta_lines -  400 -}; - - - -static Genesys_Model canon_lide_200_model = { -  "canon-lide-200",                /* Name */ -  "Canon",                        /* Device vendor string */ -  "LiDE 200",                        /* Device model name */ -  MODEL_CANON_LIDE_200, -  GENESYS_GL847, -  NULL, - -  {4800, 2400, 1200, 600, 300, 200, 150, 100, 75, 0},        /* possible x-resolutions */ -  {4800, 2400, 1200, 600, 300, 200, 150, 100, 75, 0},        /* possible y-resolutions */ -  {16, 8, 0},                        /* possible depths in gray mode */ -  {16, 8, 0},                        /* possible depths in color mode */ - -  SANE_FIX (1.1),                /* Start of scan area in mm  (x) */ -  SANE_FIX (8.3),                /* Start of scan area in mm (y) */ -  SANE_FIX (216.07),                /* Size of scan area in mm (x) */ -  SANE_FIX (299.0),                /* Size of scan area in mm (y) */ - -  SANE_FIX (0.0),                /* Start of white strip in mm (y) */ -  SANE_FIX (0.0),                /* Start of black mark in mm (x) */ - -  SANE_FIX (0.0),                /* Start of scan area in TA mode in mm (x) */ -  SANE_FIX (0.0),                /* Start of scan area in TA mode in mm (y) */ -  SANE_FIX (100.0),                /* Size of scan area in TA mode in mm (x) */ -  SANE_FIX (100.0),                /* Size of scan area in TA mode in mm (y) */ - -  SANE_FIX (0.0),                /* Start of white strip in TA mode in mm (y) */ - -  SANE_FIX (0.0),                /* Size of scan area after paper sensor stops -				   sensing document in mm */ -  SANE_FIX (0.0),                /* Amount of feeding needed to eject document -				   after finishing scanning in mm */ - -  0, 0, 0,                        /* RGB CCD Line-distance correction in pixel */ - -  COLOR_ORDER_RGB,                /* Order of the CCD/CIS colors */ - -  SANE_TRUE,                        /* Is this a CIS scanner? */ -  SANE_FALSE,                        /* Is this a sheetfed scanner? */ -  CIS_CANONLIDE200, -  DAC_CANONLIDE200, -  GPO_CANONLIDE200, -  MOTOR_CANONLIDE200, -      GENESYS_FLAG_SKIP_WARMUP -    | GENESYS_FLAG_SIS_SENSOR -    | GENESYS_FLAG_OFFSET_CALIBRATION -    | GENESYS_FLAG_DARK_CALIBRATION -    | GENESYS_FLAG_SHADING_REPARK -    | GENESYS_FLAG_CUSTOM_GAMMA, -  GENESYS_HAS_SCAN_SW | GENESYS_HAS_COPY_SW | GENESYS_HAS_EMAIL_SW | GENESYS_HAS_FILE_SW, -  50, -  0,        // shading_ta_lines -  400 -}; - - -static Genesys_Model canon_lide_60_model = { -  "canon-lide-60",                /* Name */ -  "Canon",                        /* Device vendor string */ -  "LiDE 60",                        /* Device model name */ -  MODEL_CANON_LIDE_60, -  GENESYS_GL841, -  NULL, - -  {1200, 600, 300, 150, 75, 0},        /* possible x-resolutions */ -  {2400, 1200, 600, 300, 150, 75, 0},        /* possible y-resolutions */ -  {16, 8, 0},                        /* possible depths in gray mode */ -  {16, 8, 0},                        /* possible depths in color mode */ - -  SANE_FIX (0.42),                /* Start of scan area in mm  (x) */ -  SANE_FIX (7.9),                /* Start of scan area in mm (y) */ -  SANE_FIX (218.0),                /* Size of scan area in mm (x) */ -  SANE_FIX (299.0),                /* Size of scan area in mm (y) */ - -  SANE_FIX (6.0),                /* Start of white strip in mm (y) */ -  SANE_FIX (0.0),                /* Start of black mark in mm (x) */ - -  SANE_FIX (0.0),                /* Start of scan area in TA mode in mm (x) */ -  SANE_FIX (0.0),                /* Start of scan area in TA mode in mm (y) */ -  SANE_FIX (100.0),                /* Size of scan area in TA mode in mm (x) */ -  SANE_FIX (100.0),                /* Size of scan area in TA mode in mm (y) */ - -  SANE_FIX (0.0),                /* Start of white strip in TA mode in mm (y) */ - -  SANE_FIX (0.0),                /* Size of scan area after paper sensor stops -				   sensing document in mm */ -  SANE_FIX (0.0),                /* Amount of feeding needed to eject document -				   after finishing scanning in mm */ - -  0, 0, 0,                        /* RGB CCD Line-distance correction in pixel */ - -  COLOR_ORDER_RGB,                /* Order of the CCD/CIS colors */ - -  SANE_TRUE,                        /* Is this a CIS scanner? */ -  SANE_FALSE,                        /* Is this a sheetfed scanner? */ -  CCD_CANONLIDE35, -  DAC_CANONLIDE35, -  GPO_CANONLIDE35, -  MOTOR_CANONLIDE35, -  GENESYS_FLAG_LAZY_INIT         /* Which flags are needed for this scanner? */ -    | GENESYS_FLAG_SKIP_WARMUP -    | GENESYS_FLAG_OFFSET_CALIBRATION -    | GENESYS_FLAG_DARK_WHITE_CALIBRATION -    | GENESYS_FLAG_CUSTOM_GAMMA, - -  GENESYS_HAS_COPY_SW             /* Has four buttons: COPY, SCAN, PDF, EMAIL */ -    | GENESYS_HAS_SCAN_SW -    | GENESYS_HAS_FILE_SW -    | GENESYS_HAS_EMAIL_SW, -  300, -  0,        // shading_ta_lines -  400 -};                                /* this is completely untested -- hmg */ - -static Genesys_Model canon_lide_80_model = { -  "canon-lide-80",                /* Name */ -  "Canon",                        /* Device vendor string */ -  "LiDE 80",                        /* Device model name */ -  MODEL_CANON_LIDE_80, -  GENESYS_GL841, -  NULL, - -  {      1200, 600, 400, 300, 240, 150, 100, 75, 0},        /* possible x-resolutions */ -  {2400, 1200, 600, 400, 300, 240, 150, 100, 75, 0},        /* possible y-resolutions */ -  {16, 8, 0},                        /* possible depths in gray mode */ -  {16, 8, 0},                        /* possible depths in color mode */ -  SANE_FIX (0.42),                /* Start of scan area in mm  (x)   0.42 */ -  SANE_FIX (7.90),                /* Start of scan area in mm (y)    7.90 */ -  SANE_FIX (216.07),                /* Size of scan area in mm (x)   218.00 */ -  SANE_FIX (299.0),                /* Size of scan area in mm (y) */ - -  SANE_FIX (4.5),                /* Start of white strip in mm (y) */ -  SANE_FIX (0.0),                /* Start of black mark in mm (x) */ - -  SANE_FIX (0.0),                /* Start of scan area in TA mode in mm (x) */ -  SANE_FIX (0.0),                /* Start of scan area in TA mode in mm (y) */ -  SANE_FIX (100.0),                /* Size of scan area in TA mode in mm (x) */ -  SANE_FIX (100.0),                /* Size of scan area in TA mode in mm (y) */ - -  SANE_FIX (0.0),                /* Start of white strip in TA mode in mm (y) */ - -  SANE_FIX (0.0),                /* Size of scan area after paper sensor stops -				   sensing document in mm */ -  SANE_FIX (0.0),                /* Amount of feeding needed to eject document -				   after finishing scanning in mm */ - -  0, 0, 0,                        /* RGB CCD Line-distance correction in pixel */ - -  COLOR_ORDER_RGB,                /* Order of the CCD/CIS colors */ - -  SANE_TRUE,                        /* Is this a CIS scanner? */ -  SANE_FALSE,                        /* Is this a sheetfed scanner? */ -  CIS_CANONLIDE80, -  DAC_CANONLIDE80, -  GPO_CANONLIDE80, -  MOTOR_CANONLIDE80, -  GENESYS_FLAG_LAZY_INIT |         /* Which flags are needed for this scanner? */ -  GENESYS_FLAG_SKIP_WARMUP | -  GENESYS_FLAG_OFFSET_CALIBRATION | -  GENESYS_FLAG_DARK_WHITE_CALIBRATION | -  GENESYS_FLAG_CUSTOM_GAMMA, -  GENESYS_HAS_SCAN_SW | -  GENESYS_HAS_FILE_SW | -  GENESYS_HAS_EMAIL_SW | -  GENESYS_HAS_COPY_SW, -  160, /* 280 @2400 */ -  0,        // shading_ta_lines -  400 -}; - - -static Genesys_Model hp2300c_model = { -  "hewlett-packard-scanjet-2300c",        /* Name */ -  "Hewlett Packard",                /* Device vendor string */ -  "ScanJet 2300c",                /* Device model name */ -  MODEL_HP_SCANJET_2300C, -  GENESYS_GL646, -  NULL, - -  {600, 300, 150, 75, 0},        /* possible x-resolutions */ -  {1200, 600, 300, 150, 75, 0},        /* possible y-resolutions, motor can go up to 1200 dpi */ -  {16, 8, 0},                        /* possible depths in gray mode */ -  {16, 8, 0},                        /* possible depths in color mode */ - -  SANE_FIX (2.0),                /* Start of scan area in mm (x_offset) */ -  SANE_FIX (7.5),                /* Start of scan area in mm (y_offset) */ -  SANE_FIX (215.9),                /* Size of scan area in mm (x) */ -  SANE_FIX (295.0),                /* Size of scan area in mm (y) */ - -  SANE_FIX (0.0),                /* Start of white strip in mm (y) */ -  SANE_FIX (1.0),                /* Start of black mark in mm (x) */ - -  SANE_FIX (0.0),                /* Start of scan area in TA mode in mm (x) */ -  SANE_FIX (0.0),                /* Start of scan area in TA mode in mm (y) */ -  SANE_FIX (100.0),                /* Size of scan area in TA mode in mm (x) */ -  SANE_FIX (100.0),                /* Size of scan area in TA mode in mm (y) */ - -  SANE_FIX (0.0),                /* Start of white strip in TA mode in mm (y) */ - -  SANE_FIX (0.0),                /* Size of scan area after paper sensor stops -				   sensing document in mm */ -  SANE_FIX (0.0),                /* Amount of feeding needed to eject document -				   after finishing scanning in mm */ - -  16, 8, 0,                        /* RGB CCD Line-distance correction in pixel */ - -  COLOR_ORDER_RGB,                /* Order of the CCD/CIS colors */ - -  SANE_FALSE,                        /* Is this a CIS scanner? */ -  SANE_FALSE,                        /* Is this a sheetfed scanner? */ -  CCD_HP2300, -  DAC_WOLFSON_HP2300, -  GPO_HP2300, -  MOTOR_HP2300, -  GENESYS_FLAG_14BIT_GAMMA -    | GENESYS_FLAG_SKIP_WARMUP -    | GENESYS_FLAG_LAZY_INIT -    | GENESYS_FLAG_SEARCH_START -    | GENESYS_FLAG_DARK_CALIBRATION -    | GENESYS_FLAG_OFFSET_CALIBRATION -    | GENESYS_FLAG_CUSTOM_GAMMA, -  GENESYS_HAS_SCAN_SW | GENESYS_HAS_COPY_SW, -  40, -  0,        // shading_ta_lines -  132 -}; - -static -Genesys_Model hp2400c_model = { -  "hewlett-packard-scanjet-2400c",        /* Name */ -  "Hewlett Packard",                /* Device vendor string */ -  "ScanJet 2400c",                /* Device model name */ -  MODEL_HP_SCANJET_2400C, -  GENESYS_GL646, -  NULL, - -  {1200, 600, 300, 150, 100, 50, 0},        /* possible x-resolutions */ -  {1200, 600, 300, 150, 100, 50, 0},        /* possible y-resolutions */ -  {16, 8, 0},                        /* possible depths in gray mode */ -  {16, 8, 0},                        /* possible depths in color mode */ - -  SANE_FIX (6.5),                /* Start of scan area in mm  (x) */ -  SANE_FIX (2.5),                /* Start of scan area in mm (y) */ -  SANE_FIX (220.0),                /* Size of scan area in mm (x) */ -  SANE_FIX (297.2),                /* Size of scan area in mm (y) */ - -  SANE_FIX (0.0),                /* Start of white strip in mm (y) */ -  SANE_FIX (1.0),                /* Start of black mark in mm (x) */ - -  SANE_FIX (0.0),                /* Start of scan area in TA mode in mm (x) */ -  SANE_FIX (0.0),                /* Start of scan area in TA mode in mm (y) */ -  SANE_FIX (100.0),                /* Size of scan area in TA mode in mm (x) */ -  SANE_FIX (100.0),                /* Size of scan area in TA mode in mm (y) */ - -  SANE_FIX (0.0),                /* Start of white strip in TA mode in mm (y) */ - -  SANE_FIX (0.0),                /* Size of scan area after paper sensor stops -				   sensing document in mm */ -  SANE_FIX (0.0),                /* Amount of feeding needed to eject document -				   after finishing scanning in mm */ - -  0, 24, 48,                        /* RGB CCD Line-distance correction in pixel */ - -  COLOR_ORDER_RGB,                /* Order of the CCD/CIS colors */ - -  SANE_FALSE,                        /* Is this a CIS scanner? */ -  SANE_FALSE,                        /* Is this a sheetfed scanner? */ -  CCD_HP2400, -  DAC_WOLFSON_HP2400, -  GPO_HP2400, -  MOTOR_HP2400, -      GENESYS_FLAG_LAZY_INIT -    | GENESYS_FLAG_14BIT_GAMMA -    | GENESYS_FLAG_DARK_CALIBRATION -    | GENESYS_FLAG_OFFSET_CALIBRATION -    | GENESYS_FLAG_SKIP_WARMUP -    | GENESYS_FLAG_STAGGERED_LINE -    | GENESYS_FLAG_CUSTOM_GAMMA, -  GENESYS_HAS_COPY_SW | GENESYS_HAS_EMAIL_SW | GENESYS_HAS_SCAN_SW, -  20, -  0,        // shading_ta_lines -  132 -}; - -static -Genesys_Model visioneer_xp200_model = { -  "visioneer-strobe-xp200",        /* Name */ -  "Visioneer",                        /* Device vendor string */ -  "Strobe XP200",                /* Device model name */ -  MODEL_VISIONEER_STROBE_XP200, -  GENESYS_GL646, -  NULL, - -  {600, 300, 200, 100, 75, 0},        /* possible x-resolutions */ -  {600, 300, 200, 100, 75, 0},        /* possible y-resolutions */ -  {16, 8, 0},                        /* possible depths in gray mode */ -  {16, 8, 0},                        /* possible depths in color mode */ - -  SANE_FIX (0.5),                /* Start of scan area in mm  (x) */ -  SANE_FIX (16.0),                /* Start of scan area in mm (y) */ -  SANE_FIX (215.9),                /* Size of scan area in mm (x) */ -  SANE_FIX (297.2),                /* Size of scan area in mm (y) */ - -  SANE_FIX (0.0),                /* Start of white strip in mm (y) */ -  SANE_FIX (0.0),                /* Start of black mark in mm (x) */ - -  SANE_FIX (0.0),                /* Start of scan area in TA mode in mm (x) */ -  SANE_FIX (0.0),                /* Start of scan area in TA mode in mm (y) */ -  SANE_FIX (100.0),                /* Size of scan area in TA mode in mm (x) */ -  SANE_FIX (100.0),                /* Size of scan area in TA mode in mm (y) */ - -  SANE_FIX (0.0),                /* Start of white strip in TA mode in mm (y) */ - -  SANE_FIX (0.0),                /* Size of scan area after paper sensor stops -				   sensing document in mm */ -  SANE_FIX (0.0),                /* Amount of feeding needed to eject document -				   after finishing scanning in mm */ - -  0, 0, 0,                        /* RGB CCD Line-distance correction in pixel */ - -  COLOR_ORDER_RGB,                /* Order of the CCD/CIS colors */ - -  SANE_TRUE,                        /* Is this a CIS scanner? */ -  SANE_TRUE,                        /* Is this a sheetfed scanner? */ -  CIS_XP200, -  DAC_AD_XP200,                        /* Analog Device frontend */ -  GPO_XP200, -  MOTOR_XP200, -      GENESYS_FLAG_14BIT_GAMMA -    | GENESYS_FLAG_LAZY_INIT -    | GENESYS_FLAG_CUSTOM_GAMMA -    | GENESYS_FLAG_SKIP_WARMUP -    | GENESYS_FLAG_DARK_CALIBRATION -    | GENESYS_FLAG_OFFSET_CALIBRATION, -  GENESYS_HAS_SCAN_SW | GENESYS_HAS_PAGE_LOADED_SW | GENESYS_HAS_CALIBRATE, -  120, -  0,        // shading_ta_lines -  132 -}; - -static Genesys_Model hp3670c_model = { -  "hewlett-packard-scanjet-3670c",        /* Name */ -  "Hewlett Packard",                /* Device vendor string */ -  "ScanJet 3670c",                /* Device model name */ -  MODEL_HP_SCANJET_3670C, -  GENESYS_GL646, -  NULL, - -  {1200, 600, 300, 150, 100, 75, 0},        /* possible x-resolutions */ -  {1200, 600, 300, 150, 100, 75, 0},        /* possible y-resolutions */ -  {16, 8, 0},                        /* possible depths in gray mode */ -  {16, 8, 0},                        /* possible depths in color mode */ - -  SANE_FIX (8.5),                /* Start of scan area in mm  (x) */ -  SANE_FIX (11.0),                /* Start of scan area in mm (y) */ -  SANE_FIX (215.9),                /* Size of scan area in mm (x) */ -  SANE_FIX (300.0),                /* Size of scan area in mm (y) */ - -  SANE_FIX (0.0),                /* Start of white strip in mm (y) */ -  SANE_FIX (1.0),                /* Start of black mark in mm (x) */ - -  SANE_FIX (104.0),                /* Start of scan area in TA mode in mm (x) */ -  SANE_FIX (55.6),                /* Start of scan area in TA mode in mm (y) */ -  SANE_FIX (25.6),                /* Size of scan area in TA mode in mm (x) */ -  SANE_FIX (78.0),                /* Size of scan area in TA mode in mm (y) */ - -  SANE_FIX (76.0),                /* Start of white strip in TA mode in mm (y) */ - -  SANE_FIX (0.0),                /* Size of scan area after paper sensor stops -				   sensing document in mm */ -  SANE_FIX (0.0),                /* Amount of feeding needed to eject document -				   after finishing scanning in mm */ - -  0, 24, 48,                        /* RGB CCD Line-distance correction in pixel */ - -  COLOR_ORDER_RGB,                /* Order of the CCD/CIS colors */ - -  SANE_FALSE,                        /* Is this a CIS scanner? */ -  SANE_FALSE,                        /* Is this a sheetfed scanner? */ -  CCD_HP3670, -  DAC_WOLFSON_HP3670, -  GPO_HP3670, -  MOTOR_HP3670, -      GENESYS_FLAG_LAZY_INIT -    | GENESYS_FLAG_14BIT_GAMMA -    | GENESYS_FLAG_XPA -    | GENESYS_FLAG_DARK_CALIBRATION -    | GENESYS_FLAG_OFFSET_CALIBRATION -    | GENESYS_FLAG_STAGGERED_LINE -    | GENESYS_FLAG_CUSTOM_GAMMA, -  GENESYS_HAS_COPY_SW | GENESYS_HAS_EMAIL_SW | GENESYS_HAS_SCAN_SW, -  20, -  0,        // shading_ta_lines -  200 -}; - -static Genesys_Model plustek_st12_model = { -  "plustek-opticpro-st12",        /* Name */ -  "Plustek",                        /* Device vendor string */ -  "OpticPro ST12",                /* Device model name */ -  MODEL_PLUSTEK_OPTICPRO_ST12, -  GENESYS_GL646, -  NULL, - -  {600, 300, 150, 75, 0},        /* possible x-resolutions */ -  {1200, 600, 300, 150, 75, 0},        /* possible y-resolutions */ -  {16, 8, 0},                        /* possible depths in gray mode */ -  {16, 8, 0},                        /* possible depths in color mode */ - -  SANE_FIX (3.5),                /* Start of scan area in mm  (x) */ -  SANE_FIX (7.5),                /* Start of scan area in mm (y) */ -  SANE_FIX (218.0),                /* Size of scan area in mm (x) */ -  SANE_FIX (299.0),                /* Size of scan area in mm (y) */ - -  SANE_FIX (0.0),                /* Start of white strip in mm (y) */ -  SANE_FIX (1.0),                /* Start of black mark in mm (x) */ - -  SANE_FIX (0.0),                /* Start of scan area in TA mode in mm (x) */ -  SANE_FIX (0.0),                /* Start of scan area in TA mode in mm (y) */ -  SANE_FIX (100.0),                /* Size of scan area in TA mode in mm (x) */ -  SANE_FIX (100.0),                /* Size of scan area in TA mode in mm (y) */ - -  SANE_FIX (0.0),                /* Start of white strip in TA mode in mm (y) */ - -  SANE_FIX (0.0),                /* Size of scan area after paper sensor stops -				   sensing document in mm */ -  SANE_FIX (0.0),                /* Amount of feeding needed to eject document -				   after finishing scanning in mm */ - -  0, 8, 16,                        /* RGB CCD Line-distance correction in pixel */ - -  COLOR_ORDER_BGR,                /* Order of the CCD/CIS colors */ - -  SANE_FALSE,                        /* Is this a CIS scanner? */ -  SANE_FALSE,                        /* Is this a sheetfed scanner? */ -  CCD_ST12, -  DAC_WOLFSON_ST12, -  GPO_ST12, -  MOTOR_UMAX, -  GENESYS_FLAG_UNTESTED | GENESYS_FLAG_14BIT_GAMMA,        /* Which flags are needed for this scanner? */ -  GENESYS_HAS_NO_BUTTONS, /* no buttons supported */ -  20, -  0,        // shading_ta_lines -  200 -}; - -static Genesys_Model plustek_st24_model = { -  "plustek-opticpro-st24",        /* Name */ -  "Plustek",                        /* Device vendor string */ -  "OpticPro ST24",                /* Device model name */ -  MODEL_PLUSTEK_OPTICPRO_ST24, -  GENESYS_GL646, -  NULL, - -  {1200, 600, 300, 150, 75, 0},        /* possible x-resolutions */ -  {2400, 1200, 600, 300, 150, 75, 0},        /* possible y-resolutions */ -  {16, 8, 0},                        /* possible depths in gray mode */ -  {16, 8, 0},                        /* possible depths in color mode */ - -  SANE_FIX (3.5),                /* Start of scan area in mm  (x) */ -  SANE_FIX (7.5),                /* Start of scan area in mm (y) */ -  SANE_FIX (218.0),                /* Size of scan area in mm (x) */ -  SANE_FIX (299.0),                /* Size of scan area in mm (y) */ - -  SANE_FIX (0.0),                /* Start of white strip in mm (y) */ -  SANE_FIX (1.0),                /* Start of black mark in mm (x) */ - -  SANE_FIX (0.0),                /* Start of scan area in TA mode in mm (x) */ -  SANE_FIX (0.0),                /* Start of scan area in TA mode in mm (y) */ -  SANE_FIX (100.0),                /* Size of scan area in TA mode in mm (x) */ -  SANE_FIX (100.0),                /* Size of scan area in TA mode in mm (y) */ - -  SANE_FIX (0.0),                /* Start of white strip in TA mode in mm (y) */ - -  SANE_FIX (0.0),                /* Size of scan area after paper sensor stops -				   sensing document in mm */ -  SANE_FIX (0.0),                /* Amount of feeding needed to eject document -				   after finishing scanning in mm */ - -  0, 8, 16,                        /* RGB CCD Line-distance correction in pixel */ - -  COLOR_ORDER_BGR,                /* Order of the CCD/CIS colors */ - -  SANE_FALSE,                        /* Is this a CIS scanner? */ -  SANE_FALSE,                        /* Is this a sheetfed scanner? */ -  CCD_ST24, -  DAC_WOLFSON_ST24, -  GPO_ST24, -  MOTOR_ST24, -  GENESYS_FLAG_UNTESTED -    | GENESYS_FLAG_14BIT_GAMMA -    | GENESYS_FLAG_LAZY_INIT -    | GENESYS_FLAG_CUSTOM_GAMMA -    | GENESYS_FLAG_SEARCH_START -    | GENESYS_FLAG_OFFSET_CALIBRATION, -  GENESYS_HAS_NO_BUTTONS, /* no buttons supported */ -  20, -  0,        // shading_ta_lines -  200 -}; - -static Genesys_Model medion_md5345_model = { -  "medion-md5345-model",        /* Name */ -  "Medion",                        /* Device vendor string */ -  "MD5345/MD6228/MD6471",        /* Device model name */ -  MODEL_MEDION_MD5345, -  GENESYS_GL646, -  NULL, - -  {1200, 600, 400, 300, 200, 150, 100, 75, 50, 0},        /* possible x-resolutions */ -  {2400, 1200, 600, 400, 300, 200, 150, 100, 75, 50, 0},        /* possible y-resolutions */ -  {16, 8, 0},                        /* possible depths in gray mode */ -  {16, 8, 0},                        /* possible depths in color mode */ - -  SANE_FIX ( 0.30),                /* Start of scan area in mm  (x) */ -  SANE_FIX ( 0.80),                /* 2.79 < Start of scan area in mm (y) */ -  SANE_FIX (220.0),                /* Size of scan area in mm (x) */ -  SANE_FIX (296.4),                /* Size of scan area in mm (y) */ - -  SANE_FIX (0.00),                /* Start of white strip in mm (y) */ -  SANE_FIX (0.00),                /* Start of black mark in mm (x) */ - -  SANE_FIX (0.00),                /* Start of scan area in TA mode in mm (x) */ -  SANE_FIX (0.00),                /* Start of scan area in TA mode in mm (y) */ -  SANE_FIX (0.00),                /* Size of scan area in TA mode in mm (x) */ -  SANE_FIX (0.00),                /* Size of scan area in TA mode in mm (y) */ - -  SANE_FIX (0.00),                /* Start of white strip in TA mode in mm (y) */ - -  SANE_FIX (0.0),                /* Size of scan area after paper sensor stops -				   sensing document in mm */ -  SANE_FIX (0.0),                /* Amount of feeding needed to eject document -				   after finishing scanning in mm */ - -  48, 24, 0,                        /* RGB CCD Line-distance correction in pixel */ -  COLOR_ORDER_RGB,                /* Order of the CCD/CIS colors */ - -  SANE_FALSE,                        /* Is this a CIS scanner? */ -  SANE_FALSE,                        /* Is this a sheetfed scanner? */ -  CCD_5345, -  DAC_WOLFSON_5345, -  GPO_5345, -  MOTOR_5345, -  GENESYS_FLAG_14BIT_GAMMA -    | GENESYS_FLAG_LAZY_INIT -    | GENESYS_FLAG_SEARCH_START -    | GENESYS_FLAG_STAGGERED_LINE -    | GENESYS_FLAG_DARK_CALIBRATION -    | GENESYS_FLAG_OFFSET_CALIBRATION -    | GENESYS_FLAG_SHADING_NO_MOVE -    | GENESYS_FLAG_CUSTOM_GAMMA, -  GENESYS_HAS_COPY_SW | GENESYS_HAS_EMAIL_SW | GENESYS_HAS_POWER_SW | GENESYS_HAS_OCR_SW | GENESYS_HAS_SCAN_SW, -  40, -  0,        // shading_ta_lines -  200 -}; - -static Genesys_Model visioneer_xp300_model = { -  "visioneer-strobe-xp300",                /* Name */ -  "Visioneer",                        /* Device vendor string */ -  "Strobe XP300",                        /* Device model name */ -  MODEL_VISIONEER_STROBE_XP300, -  GENESYS_GL841, -  NULL, - -  {600, 300, 150, 75, 0},        /* possible x-resolutions */ -  {600, 300, 150, 75, 0},        /* possible y-resolutions */ -  {16, 8, 0},                        /* possible depths in gray mode */ -  {16, 8, 0},                        /* possible depths in color mode */ - -  SANE_FIX (0.0),                /* Start of scan area in mm  (x) */ -  SANE_FIX (1.0),                /* Start of scan area in mm (y) */ -  SANE_FIX (435.0),                /* Size of scan area in mm (x) */ -  SANE_FIX (511),                /* Size of scan area in mm (y) */ - -  SANE_FIX (0.0),                /* Start of white strip in mm (y) */ -  SANE_FIX (0.0),                /* Start of black mark in mm (x) */ - -  SANE_FIX (0.0),                /* Start of scan area in TA mode in mm (x) */ -  SANE_FIX (0.0),                /* Start of scan area in TA mode in mm (y) */ -  SANE_FIX (100.0),                /* Size of scan area in TA mode in mm (x) */ -  SANE_FIX (100.0),                /* Size of scan area in TA mode in mm (y) */ - -  SANE_FIX (0.0),                /* Start of white strip in TA mode in mm (y) */ - -  SANE_FIX (26.5),                /* Size of scan area after paper sensor stops -				   sensing document in mm */ -  /* this is larger than needed -- accounts for second sensor head, which is a -     calibration item */ -  SANE_FIX (0.0),                /* Amount of feeding needed to eject document -				   after finishing scanning in mm */ -  0, 0, 0,                        /* RGB CCD Line-distance correction in pixel */ - -  COLOR_ORDER_RGB,                /* Order of the CCD/CIS colors */ - -  SANE_TRUE,                        /* Is this a CIS scanner? */ -  SANE_TRUE,                        /* Is this a sheetfed scanner? */ -  CCD_XP300, -  DAC_WOLFSON_XP300, -  GPO_XP300, -  MOTOR_XP300, -  GENESYS_FLAG_LAZY_INIT         /* Which flags are needed for this scanner? */ -    | GENESYS_FLAG_SKIP_WARMUP -    | GENESYS_FLAG_OFFSET_CALIBRATION -    | GENESYS_FLAG_DARK_CALIBRATION -    | GENESYS_FLAG_CUSTOM_GAMMA, -  GENESYS_HAS_SCAN_SW | GENESYS_HAS_PAGE_LOADED_SW | GENESYS_HAS_CALIBRATE, -  100, -  0,        // shading_ta_lines -  400 -}; - -static Genesys_Model syscan_docketport_665_model = { -  "syscan-docketport-665",                /* Name */ -  "Syscan/Ambir",                        /* Device vendor string */ -  "DocketPORT 665",                        /* Device model name */ -  MODEL_SYSCAN_DOCKETPORT_665, -  GENESYS_GL841, -  NULL, - -  {600, 300, 150, 75, 0},        /* possible x-resolutions */ -  {1200, 600, 300, 150, 75, 0},        /* possible y-resolutions */ -  {16, 8, 0},                        /* possible depths in gray mode */ -  {16, 8, 0},                        /* possible depths in color mode */ - -  SANE_FIX (0.0),                /* Start of scan area in mm  (x) */ -  SANE_FIX (0.0),                /* Start of scan area in mm (y) */ -  SANE_FIX (108.0),                /* Size of scan area in mm (x) */ -  SANE_FIX (511),                /* Size of scan area in mm (y) */ - -  SANE_FIX (0.0),                /* Start of white strip in mm (y) */ -  SANE_FIX (0.0),                /* Start of black mark in mm (x) */ - -  SANE_FIX (0.0),                /* Start of scan area in TA mode in mm (x) */ -  SANE_FIX (0.0),                /* Start of scan area in TA mode in mm (y) */ -  SANE_FIX (100.0),                /* Size of scan area in TA mode in mm (x) */ -  SANE_FIX (100.0),                /* Size of scan area in TA mode in mm (y) */ - -  SANE_FIX (0.0),                /* Start of white strip in TA mode in mm (y) */ - -  SANE_FIX (17.5),                /* Size of scan area after paper sensor stops -				   sensing document in mm */ -  SANE_FIX (0.0),                /* Amount of feeding needed to eject document -				   after finishing scanning in mm */ - -  0, 0, 0,                        /* RGB CCD Line-distance correction in pixel */ - -  COLOR_ORDER_RGB,                /* Order of the CCD/CIS colors */ - -  SANE_TRUE,                        /* Is this a CIS scanner? */ -  SANE_TRUE,                        /* Is this a sheetfed scanner? */ -  CCD_DP665, -  DAC_WOLFSON_XP300, -  GPO_DP665, -  MOTOR_DP665, -  GENESYS_FLAG_LAZY_INIT         /* Which flags are needed for this scanner? */ -    | GENESYS_FLAG_SKIP_WARMUP -    | GENESYS_FLAG_OFFSET_CALIBRATION -    | GENESYS_FLAG_DARK_CALIBRATION -    | GENESYS_FLAG_CUSTOM_GAMMA, -  GENESYS_HAS_SCAN_SW | GENESYS_HAS_PAGE_LOADED_SW | GENESYS_HAS_CALIBRATE, -  100, -  0,        // shading_ta_lines -  400 -}; - -static Genesys_Model visioneer_roadwarrior_model = { -  "visioneer-roadwarrior",                /* Name */ -  "Visioneer",                                /* Device vendor string */ -  "Readwarrior",                        /* Device model name */ -  MODEL_VISIONEER_ROADWARRIOR, -  GENESYS_GL841, -  NULL, - -  {600, 300, 150, 75, 0},        /* possible x-resolutions */ -  {1200, 600, 300, 150, 75, 0},        /* possible y-resolutions */ -  {16, 8, 0},                        /* possible depths in gray mode */ -  {16, 8, 0},                        /* possible depths in color mode */ - -  SANE_FIX (0.0),                /* Start of scan area in mm  (x) */ -  SANE_FIX (0.0),                /* Start of scan area in mm (y) */ -  SANE_FIX (220.0),                /* Size of scan area in mm (x) */ -  SANE_FIX (511),                /* Size of scan area in mm (y) */ - -  SANE_FIX (0.0),                /* Start of white strip in mm (y) */ -  SANE_FIX (0.0),                /* Start of black mark in mm (x) */ - -  SANE_FIX (0.0),                /* Start of scan area in TA mode in mm (x) */ -  SANE_FIX (0.0),                /* Start of scan area in TA mode in mm (y) */ -  SANE_FIX (100.0),                /* Size of scan area in TA mode in mm (x) */ -  SANE_FIX (100.0),                /* Size of scan area in TA mode in mm (y) */ - -  SANE_FIX (0.0),                /* Start of white strip in TA mode in mm (y) */ - -  SANE_FIX (16.0),                /* Size of scan area after paper sensor stops -				   sensing document in mm */ -  SANE_FIX (0.0),                /* Amount of feeding needed to eject document -				   after finishing scanning in mm */ - -  0, 0, 0,                        /* RGB CCD Line-distance correction in pixel */ - -  COLOR_ORDER_RGB,                /* Order of the CCD/CIS colors */ - -  SANE_TRUE,                        /* Is this a CIS scanner? */ -  SANE_TRUE,                        /* Is this a sheetfed scanner? */ -  CCD_ROADWARRIOR, -  DAC_WOLFSON_XP300, -  GPO_DP665, -  MOTOR_ROADWARRIOR, -  GENESYS_FLAG_LAZY_INIT         /* Which flags are needed for this scanner? */ -    | GENESYS_FLAG_SKIP_WARMUP -    | GENESYS_FLAG_OFFSET_CALIBRATION -    | GENESYS_FLAG_CUSTOM_GAMMA -    | GENESYS_FLAG_DARK_CALIBRATION, -  GENESYS_HAS_SCAN_SW | GENESYS_HAS_PAGE_LOADED_SW | GENESYS_HAS_CALIBRATE, -  100, -  0,        // shading_ta_lines -  400 -}; - -static Genesys_Model syscan_docketport_465_model = { -  "syscan-docketport-465",                /* Name */ -  "Syscan",                                /* Device vendor string */ -  "DocketPORT 465",                        /* Device model name */ -  MODEL_SYSCAN_DOCKETPORT_465, -  GENESYS_GL841, -  NULL, - -  {600, 300, 150, 75, 0},        /* possible x-resolutions */ -  {1200, 600, 300, 150, 75, 0},        /* possible y-resolutions */ -  {16, 8, 0},                        /* possible depths in gray mode */ -  {16, 8, 0},                        /* possible depths in color mode */ - -  SANE_FIX (0.0),                /* Start of scan area in mm  (x) */ -  SANE_FIX (0.0),                /* Start of scan area in mm (y) */ -  SANE_FIX (220.0),                /* Size of scan area in mm (x) */ -  SANE_FIX (511),                /* Size of scan area in mm (y) */ - -  SANE_FIX (0.0),                /* Start of white strip in mm (y) */ -  SANE_FIX (0.0),                /* Start of black mark in mm (x) */ - -  SANE_FIX (0.0),                /* Start of scan area in TA mode in mm (x) */ -  SANE_FIX (0.0),                /* Start of scan area in TA mode in mm (y) */ -  SANE_FIX (100.0),                /* Size of scan area in TA mode in mm (x) */ -  SANE_FIX (100.0),                /* Size of scan area in TA mode in mm (y) */ - -  SANE_FIX (0.0),                /* Start of white strip in TA mode in mm (y) */ - -  SANE_FIX (16.0),                /* Size of scan area after paper sensor stops -				   sensing document in mm */ -  SANE_FIX (0.0),                /* Amount of feeding needed to eject document -				   after finishing scanning in mm */ - -  0, 0, 0,                        /* RGB CCD Line-distance correction in pixel */ - -  COLOR_ORDER_RGB,                /* Order of the CCD/CIS colors */ - -  SANE_TRUE,                        /* Is this a CIS scanner? */ -  SANE_TRUE,                        /* Is this a sheetfed scanner? */ -  CCD_ROADWARRIOR, -  DAC_WOLFSON_XP300, -  GPO_DP665, -  MOTOR_ROADWARRIOR, -  GENESYS_FLAG_LAZY_INIT         /* Which flags are needed for this scanner? */ -    | GENESYS_FLAG_SKIP_WARMUP -    | GENESYS_FLAG_NO_CALIBRATION -    | GENESYS_FLAG_CUSTOM_GAMMA -    | GENESYS_FLAG_UNTESTED, -  GENESYS_HAS_SCAN_SW | GENESYS_HAS_PAGE_LOADED_SW, -  300, -  0,        // shading_ta_lines -  400 -}; - -static Genesys_Model visioneer_xp100_r3_model = { -  "visioneer-xp100-revision3",                /* Name */ -  "Visioneer",                                /* Device vendor string */ -  "XP100 Revision 3",                        /* Device model name */ -  MODEL_VISIONEER_STROBE_XP100_REVISION3, -  GENESYS_GL841, -  NULL, - -  {600, 300, 150, 75, 0},        /* possible x-resolutions */ -  {1200, 600, 300, 150, 75, 0},        /* possible y-resolutions */ -  {16, 8, 0},                        /* possible depths in gray mode */ -  {16, 8, 0},                        /* possible depths in color mode */ - -  SANE_FIX (0.0),                /* Start of scan area in mm  (x) */ -  SANE_FIX (0.0),                /* Start of scan area in mm (y) */ -  SANE_FIX (220.0),                /* Size of scan area in mm (x) */ -  SANE_FIX (511),                /* Size of scan area in mm (y) */ - -  SANE_FIX (0.0),                /* Start of white strip in mm (y) */ -  SANE_FIX (0.0),                /* Start of black mark in mm (x) */ - -  SANE_FIX (0.0),                /* Start of scan area in TA mode in mm (x) */ -  SANE_FIX (0.0),                /* Start of scan area in TA mode in mm (y) */ -  SANE_FIX (100.0),                /* Size of scan area in TA mode in mm (x) */ -  SANE_FIX (100.0),                /* Size of scan area in TA mode in mm (y) */ - -  SANE_FIX (0.0),                /* Start of white strip in TA mode in mm (y) */ - -  SANE_FIX (16.0),                /* Size of scan area after paper sensor stops -				   sensing document in mm */ -  SANE_FIX (0.0),                /* Amount of feeding needed to eject document -				   after finishing scanning in mm */ - -  0, 0, 0,                        /* RGB CCD Line-distance correction in pixel */ - -  COLOR_ORDER_RGB,                /* Order of the CCD/CIS colors */ - -  SANE_TRUE,                        /* Is this a CIS scanner? */ -  SANE_TRUE,                        /* Is this a sheetfed scanner? */ -  CCD_ROADWARRIOR, -  DAC_WOLFSON_XP300, -  GPO_DP665, -  MOTOR_ROADWARRIOR, -  GENESYS_FLAG_LAZY_INIT         /* Which flags are needed for this scanner? */ -    | GENESYS_FLAG_SKIP_WARMUP -    | GENESYS_FLAG_OFFSET_CALIBRATION -    | GENESYS_FLAG_CUSTOM_GAMMA -    | GENESYS_FLAG_DARK_CALIBRATION, -  GENESYS_HAS_SCAN_SW | GENESYS_HAS_PAGE_LOADED_SW | GENESYS_HAS_CALIBRATE, -  100, -  0,        // shading_ta_lines -  400 -}; - -static Genesys_Model pentax_dsmobile_600_model = { -  "pentax-dsmobile-600",                /* Name */ -  "Pentax",                                /* Device vendor string */ -  "DSmobile 600",                        /* Device model name */ -  MODEL_PENTAX_DSMOBILE_600, -  GENESYS_GL841, -  NULL, - -  {600, 300, 150, 75, 0},        /* possible x-resolutions */ -  {1200, 600, 300, 150, 75, 0},        /* possible y-resolutions */ -  {16, 8, 0},                        /* possible depths in gray mode */ -  {16, 8, 0},                        /* possible depths in color mode */ - -  SANE_FIX (0.0),                /* Start of scan area in mm  (x) */ -  SANE_FIX (0.0),                /* Start of scan area in mm (y) */ -  SANE_FIX (220.0),                /* Size of scan area in mm (x) */ -  SANE_FIX (511),                /* Size of scan area in mm (y) */ - -  SANE_FIX (0.0),                /* Start of white strip in mm (y) */ -  SANE_FIX (0.0),                /* Start of black mark in mm (x) */ - -  SANE_FIX (0.0),                /* Start of scan area in TA mode in mm (x) */ -  SANE_FIX (0.0),                /* Start of scan area in TA mode in mm (y) */ -  SANE_FIX (100.0),                /* Size of scan area in TA mode in mm (x) */ -  SANE_FIX (100.0),                /* Size of scan area in TA mode in mm (y) */ - -  SANE_FIX (0.0),                /* Start of white strip in TA mode in mm (y) */ - -  SANE_FIX (16.0),                /* Size of scan area after paper sensor stops -				   sensing document in mm */ -  SANE_FIX (0.0),                /* Amount of feeding needed to eject document -				   after finishing scanning in mm */ - -  0, 0, 0,                        /* RGB CCD Line-distance correction in pixel */ - -  COLOR_ORDER_RGB,                /* Order of the CCD/CIS colors */ - -  SANE_TRUE,                        /* Is this a CIS scanner? */ -  SANE_TRUE,                        /* Is this a sheetfed scanner? */ -  CCD_DSMOBILE600, -  DAC_WOLFSON_DSM600, -  GPO_DP665, -  MOTOR_DSMOBILE_600, -  GENESYS_FLAG_LAZY_INIT         /* Which flags are needed for this scanner? */ -    | GENESYS_FLAG_SKIP_WARMUP -    | GENESYS_FLAG_OFFSET_CALIBRATION -    | GENESYS_FLAG_CUSTOM_GAMMA -    | GENESYS_FLAG_DARK_CALIBRATION, -  GENESYS_HAS_SCAN_SW | GENESYS_HAS_PAGE_LOADED_SW | GENESYS_HAS_CALIBRATE, -  100, -  0,        // shading_ta_lines -  400 -}; - -static Genesys_Model syscan_docketport_467_model = { -  "syscan-docketport-467",                /* Name */ -  "Syscan",                                /* Device vendor string */ -  "DocketPORT 467",                        /* Device model name */ -  MODEL_SYSCAN_DOCKETPORT_467, -  GENESYS_GL841, -  NULL, - -  {600, 300, 150, 75, 0},        /* possible x-resolutions */ -  {1200, 600, 300, 150, 75, 0},        /* possible y-resolutions */ -  {16, 8, 0},                        /* possible depths in gray mode */ -  {16, 8, 0},                        /* possible depths in color mode */ - -  SANE_FIX (0.0),                /* Start of scan area in mm  (x) */ -  SANE_FIX (0.0),                /* Start of scan area in mm (y) */ -  SANE_FIX (220.0),                /* Size of scan area in mm (x) */ -  SANE_FIX (511),                /* Size of scan area in mm (y) */ - -  SANE_FIX (0.0),                /* Start of white strip in mm (y) */ -  SANE_FIX (0.0),                /* Start of black mark in mm (x) */ - -  SANE_FIX (0.0),                /* Start of scan area in TA mode in mm (x) */ -  SANE_FIX (0.0),                /* Start of scan area in TA mode in mm (y) */ -  SANE_FIX (100.0),                /* Size of scan area in TA mode in mm (x) */ -  SANE_FIX (100.0),                /* Size of scan area in TA mode in mm (y) */ - -  SANE_FIX (0.0),                /* Start of white strip in TA mode in mm (y) */ - -  SANE_FIX (16.0),                /* Size of scan area after paper sensor stops -				   sensing document in mm */ -  SANE_FIX (0.0),                /* Amount of feeding needed to eject document -				   after finishing scanning in mm */ - -  0, 0, 0,                        /* RGB CCD Line-distance correction in pixel */ - -  COLOR_ORDER_RGB,                /* Order of the CCD/CIS colors */ - -  SANE_TRUE,                        /* Is this a CIS scanner? */ -  SANE_TRUE,                        /* Is this a sheetfed scanner? */ -  CCD_DSMOBILE600, -  DAC_WOLFSON_DSM600, -  GPO_DP665, -  MOTOR_DSMOBILE_600, -  GENESYS_FLAG_LAZY_INIT         /* Which flags are needed for this scanner? */ -    | GENESYS_FLAG_SKIP_WARMUP -    | GENESYS_FLAG_OFFSET_CALIBRATION -    | GENESYS_FLAG_CUSTOM_GAMMA -    | GENESYS_FLAG_DARK_CALIBRATION, -  GENESYS_HAS_SCAN_SW | GENESYS_HAS_PAGE_LOADED_SW | GENESYS_HAS_CALIBRATE, -  100, -  0,        // shading_ta_lines -  400 -}; - -static Genesys_Model syscan_docketport_685_model = { -  "syscan-docketport-685",                /* Name */ -  "Syscan/Ambir",                        /* Device vendor string */ -  "DocketPORT 685",                        /* Device model name */ -  MODEL_SYSCAN_DOCKETPORT_685, -  GENESYS_GL841, -  NULL, - -  {600, 300, 150, 75, 0},        /* possible x-resolutions */ -  {600, 300, 150, 75, 0},        /* possible y-resolutions */ -  {16, 8, 0},                        /* possible depths in gray mode */ -  {16, 8, 0},                        /* possible depths in color mode */ - -  SANE_FIX (0.0),                /* Start of scan area in mm  (x) */ -  SANE_FIX (1.0),                /* Start of scan area in mm (y) */ -  SANE_FIX (212.0),                /* Size of scan area in mm (x) */ -  SANE_FIX (500),                /* Size of scan area in mm (y) */ - -  SANE_FIX (0.0),                /* Start of white strip in mm (y) */ -  SANE_FIX (0.0),                /* Start of black mark in mm (x) */ - -  SANE_FIX (0.0),                /* Start of scan area in TA mode in mm (x) */ -  SANE_FIX (0.0),                /* Start of scan area in TA mode in mm (y) */ -  SANE_FIX (100.0),                /* Size of scan area in TA mode in mm (x) */ -  SANE_FIX (100.0),                /* Size of scan area in TA mode in mm (y) */ - -  SANE_FIX (0.0),                /* Start of white strip in TA mode in mm (y) */ - -  SANE_FIX (26.5),                /* Size of scan area after paper sensor stops -				   sensing document in mm */ -  /* this is larger than needed -- accounts for second sensor head, which is a -     calibration item */ -  SANE_FIX (0.0),                /* Amount of feeding needed to eject document -				   after finishing scanning in mm */ -  0, 0, 0,                        /* RGB CCD Line-distance correction in pixel */ - -  COLOR_ORDER_RGB,                /* Order of the CCD/CIS colors */ - -  SANE_TRUE,                        /* Is this a CIS scanner? */ -  SANE_TRUE,                        /* Is this a sheetfed scanner? */ -  CCD_DP685, -  DAC_WOLFSON_DSM600, -  GPO_DP685, -  MOTOR_XP300, -  GENESYS_FLAG_LAZY_INIT         /* Which flags are needed for this scanner? */ -    | GENESYS_FLAG_SKIP_WARMUP -    | GENESYS_FLAG_OFFSET_CALIBRATION -    | GENESYS_FLAG_CUSTOM_GAMMA -    | GENESYS_FLAG_DARK_CALIBRATION, -  GENESYS_HAS_SCAN_SW | GENESYS_HAS_PAGE_LOADED_SW | GENESYS_HAS_CALIBRATE, -  100, -  0,        // shading_ta_lines -  400 -}; - -static Genesys_Model syscan_docketport_485_model = { -  "syscan-docketport-485",                /* Name */ -  "Syscan/Ambir",                        /* Device vendor string */ -  "DocketPORT 485",                        /* Device model name */ -  MODEL_SYSCAN_DOCKETPORT_485, -  GENESYS_GL841, -  NULL, - -  {600, 300, 150, 75, 0},        /* possible x-resolutions */ -  {600, 300, 150, 75, 0},        /* possible y-resolutions */ -  {16, 8, 0},                        /* possible depths in gray mode */ -  {16, 8, 0},                        /* possible depths in color mode */ - -  SANE_FIX (0.0),                /* Start of scan area in mm  (x) */ -  SANE_FIX (1.0),                /* Start of scan area in mm (y) */ -  SANE_FIX (435.0),                /* Size of scan area in mm (x) */ -  SANE_FIX (511),                /* Size of scan area in mm (y) */ - -  SANE_FIX (0.0),                /* Start of white strip in mm (y) */ -  SANE_FIX (0.0),                /* Start of black mark in mm (x) */ - -  SANE_FIX (0.0),                /* Start of scan area in TA mode in mm (x) */ -  SANE_FIX (0.0),                /* Start of scan area in TA mode in mm (y) */ -  SANE_FIX (100.0),                /* Size of scan area in TA mode in mm (x) */ -  SANE_FIX (100.0),                /* Size of scan area in TA mode in mm (y) */ - -  SANE_FIX (0.0),                /* Start of white strip in TA mode in mm (y) */ - -  SANE_FIX (26.5),                /* Size of scan area after paper sensor stops -				   sensing document in mm */ -  /* this is larger than needed -- accounts for second sensor head, which is a -     calibration item */ -  SANE_FIX (0.0),                /* Amount of feeding needed to eject document -				   after finishing scanning in mm */ -  0, 0, 0,                        /* RGB CCD Line-distance correction in pixel */ - -  COLOR_ORDER_RGB,                /* Order of the CCD/CIS colors */ - -  SANE_TRUE,                        /* Is this a CIS scanner? */ -  SANE_TRUE,                        /* Is this a sheetfed scanner? */ -  CCD_XP300, -  DAC_WOLFSON_XP300, -  GPO_XP300, -  MOTOR_XP300, -  GENESYS_FLAG_LAZY_INIT         /* Which flags are needed for this scanner? */ -    | GENESYS_FLAG_SKIP_WARMUP -    | GENESYS_FLAG_OFFSET_CALIBRATION -    | GENESYS_FLAG_CUSTOM_GAMMA -    | GENESYS_FLAG_DARK_CALIBRATION, -  GENESYS_HAS_SCAN_SW | GENESYS_HAS_PAGE_LOADED_SW | GENESYS_HAS_CALIBRATE, -  100, -  0,        // shading_ta_lines -  400 -}; - -static Genesys_Model dct_docketport_487_model = { -  "dct-docketport-487",                /* Name */ -  "DCT",                        /* Device vendor string */ -  "DocketPORT 487",                        /* Device model name */ -  MODEL_DCT_DOCKETPORT_487, -  GENESYS_GL841, -  NULL, - -  {600, 300, 150, 75, 0},        /* possible x-resolutions */ -  {600, 300, 150, 75, 0},        /* possible y-resolutions */ -  {16, 8, 0},                        /* possible depths in gray mode */ -  {16, 8, 0},                        /* possible depths in color mode */ - -  SANE_FIX (0.0),                /* Start of scan area in mm  (x) */ -  SANE_FIX (1.0),                /* Start of scan area in mm (y) */ -  SANE_FIX (435.0),                /* Size of scan area in mm (x) */ -  SANE_FIX (511),                /* Size of scan area in mm (y) */ - -  SANE_FIX (0.0),                /* Start of white strip in mm (y) */ -  SANE_FIX (0.0),                /* Start of black mark in mm (x) */ - -  SANE_FIX (0.0),                /* Start of scan area in TA mode in mm (x) */ -  SANE_FIX (0.0),                /* Start of scan area in TA mode in mm (y) */ -  SANE_FIX (100.0),                /* Size of scan area in TA mode in mm (x) */ -  SANE_FIX (100.0),                /* Size of scan area in TA mode in mm (y) */ - -  SANE_FIX (0.0),                /* Start of white strip in TA mode in mm (y) */ - -  SANE_FIX (26.5),                /* Size of scan area after paper sensor stops -				   sensing document in mm */ -  /* this is larger than needed -- accounts for second sensor head, which is a -     calibration item */ -  SANE_FIX (0.0),                /* Amount of feeding needed to eject document -				   after finishing scanning in mm */ -  0, 0, 0,                        /* RGB CCD Line-distance correction in pixel */ - -  COLOR_ORDER_RGB,                /* Order of the CCD/CIS colors */ - -  SANE_TRUE,                        /* Is this a CIS scanner? */ -  SANE_TRUE,                        /* Is this a sheetfed scanner? */ -  CCD_XP300, -  DAC_WOLFSON_XP300, -  GPO_XP300, -  MOTOR_XP300, -  GENESYS_FLAG_LAZY_INIT         /* Which flags are needed for this scanner? */ -    | GENESYS_FLAG_SKIP_WARMUP -    | GENESYS_FLAG_OFFSET_CALIBRATION -    | GENESYS_FLAG_DARK_CALIBRATION -    | GENESYS_FLAG_CUSTOM_GAMMA -    | GENESYS_FLAG_UNTESTED, -  GENESYS_HAS_SCAN_SW | GENESYS_HAS_PAGE_LOADED_SW | GENESYS_HAS_CALIBRATE, -  100, -  0,        // shading_ta_lines -  400 -}; - -static Genesys_Model visioneer_7100_model = { -  "visioneer-7100-model",        /* Name */ -  "Visioneer",                        /* Device vendor string */ -  "OneTouch 7100",        /* Device model name */ -  MODEL_VISIONEER_7100, -  GENESYS_GL646, -  NULL, - -  {1200, 600, 400, 300, 200, 150, 100, 75, 50, 0},        /* possible x-resolutions */ -  {2400, 1200, 600, 400, 300, 200, 150, 100, 75, 50, 0},        /* possible y-resolutions */ -  {16, 8, 0},                        /* possible depths in gray mode */ -  {16, 8, 0},                        /* possible depths in color mode */ - -  SANE_FIX ( 4.00),                /* Start of scan area in mm  (x) */ -  SANE_FIX ( 0.80),                /* 2.79 < Start of scan area in mm (y) */ -  SANE_FIX (215.9),                /* Size of scan area in mm (x) */ -  SANE_FIX (296.4),                /* Size of scan area in mm (y) */ - -  SANE_FIX (0.00),                /* Start of white strip in mm (y) */ -  SANE_FIX (0.00),                /* Start of black mark in mm (x) */ - -  SANE_FIX (0.00),                /* Start of scan area in TA mode in mm (x) */ -  SANE_FIX (0.00),                /* Start of scan area in TA mode in mm (y) */ -  SANE_FIX (0.00),                /* Size of scan area in TA mode in mm (x) */ -  SANE_FIX (0.00),                /* Size of scan area in TA mode in mm (y) */ - -  SANE_FIX (0.00),                /* Start of white strip in TA mode in mm (y) */ - -  SANE_FIX (0.0),                /* Size of scan area after paper sensor stops -				   sensing document in mm */ -  SANE_FIX (0.0),                /* Amount of feeding needed to eject document -				   after finishing scanning in mm */ - -  48, 24, 0,                        /* RGB CCD Line-distance correction in pixel */ -/* 48, 24, 0, */ -  COLOR_ORDER_RGB,                /* Order of the CCD/CIS colors */ - -  SANE_FALSE,                        /* Is this a CIS scanner? */ -  SANE_FALSE,                        /* Is this a sheetfed scanner? */ -  CCD_5345, -  DAC_WOLFSON_5345, -  GPO_5345, -  MOTOR_5345, -  GENESYS_FLAG_14BIT_GAMMA -    | GENESYS_FLAG_LAZY_INIT -    | GENESYS_FLAG_SEARCH_START -    | GENESYS_FLAG_STAGGERED_LINE -    | GENESYS_FLAG_DARK_CALIBRATION -    | GENESYS_FLAG_OFFSET_CALIBRATION -    | GENESYS_FLAG_CUSTOM_GAMMA, -  GENESYS_HAS_COPY_SW | GENESYS_HAS_EMAIL_SW | GENESYS_HAS_POWER_SW | GENESYS_HAS_OCR_SW | GENESYS_HAS_SCAN_SW, -  40, -  0,        // shading_ta_lines -  200 -}; - -static Genesys_Model xerox_2400_model = { -  "xerox-2400-model",        /* Name */ -  "Xerox",                /* Device vendor string */ -  "OneTouch 2400",        /* Device model name */ -  MODEL_XEROX_2400, -  GENESYS_GL646, -  NULL, - -  {1200, 600, 400, 300, 200, 150, 100, 75, 50, 0},        /* possible x-resolutions */ -  {2400, 1200, 600, 400, 300, 200, 150, 100, 75, 50, 0},        /* possible y-resolutions */ -  {16, 8, 0},                        /* possible depths in gray mode */ -  {16, 8, 0},                        /* possible depths in color mode */ - -  SANE_FIX ( 4.00),                /* Start of scan area in mm  (x) */ -  SANE_FIX ( 0.80),                /* 2.79 < Start of scan area in mm (y) */ -  SANE_FIX (215.9),                /* Size of scan area in mm (x) */ -  SANE_FIX (296.4),                /* Size of scan area in mm (y) */ - -  SANE_FIX (0.00),                /* Start of white strip in mm (y) */ -  SANE_FIX (0.00),                /* Start of black mark in mm (x) */ - -  SANE_FIX (0.00),                /* Start of scan area in TA mode in mm (x) */ -  SANE_FIX (0.00),                /* Start of scan area in TA mode in mm (y) */ -  SANE_FIX (0.00),                /* Size of scan area in TA mode in mm (x) */ -  SANE_FIX (0.00),                /* Size of scan area in TA mode in mm (y) */ - -  SANE_FIX (0.00),                /* Start of white strip in TA mode in mm (y) */ - -  SANE_FIX (0.0),                /* Size of scan area after paper sensor stops -				   sensing document in mm */ -  SANE_FIX (0.0),                /* Amount of feeding needed to eject document -				   after finishing scanning in mm */ - -  48, 24, 0,                        /* RGB CCD Line-distance correction in pixel */ -/* 48, 24, 0, */ -  COLOR_ORDER_RGB,                /* Order of the CCD/CIS colors */ - -  SANE_FALSE,                        /* Is this a CIS scanner? */ -  SANE_FALSE,                        /* Is this a sheetfed scanner? */ -  CCD_5345, -  DAC_WOLFSON_5345, -  GPO_5345, -  MOTOR_5345, -  GENESYS_FLAG_14BIT_GAMMA -    | GENESYS_FLAG_LAZY_INIT -    | GENESYS_FLAG_SEARCH_START -    | GENESYS_FLAG_STAGGERED_LINE -    | GENESYS_FLAG_DARK_CALIBRATION -    | GENESYS_FLAG_OFFSET_CALIBRATION -    | GENESYS_FLAG_CUSTOM_GAMMA, -  GENESYS_HAS_COPY_SW | GENESYS_HAS_EMAIL_SW | GENESYS_HAS_POWER_SW | GENESYS_HAS_OCR_SW | GENESYS_HAS_SCAN_SW, -  40, -  0,        // shading_ta_lines -  200 -}; - - -static Genesys_Model xerox_travelscanner_model = { -  "xerox-travelscanner",                /* Name */ -  "Xerox",                                /* Device vendor string */ -  "Travelscanner 100",                        /* Device model name */ -  MODEL_XEROX_TRAVELSCANNER_100, -  GENESYS_GL841, -  NULL, - -  {600, 300, 150, 75, 0},        /* possible x-resolutions */ -  {1200, 600, 300, 150, 75, 0},        /* possible y-resolutions */ -  {16, 8, 0},                        /* possible depths in gray mode */ -  {16, 8, 0},                        /* possible depths in color mode */ - -  SANE_FIX (4.0),                /* Start of scan area in mm  (x) */ -  SANE_FIX (0.0),                /* Start of scan area in mm (y) */ -  SANE_FIX (220.0),                /* Size of scan area in mm (x) */ -  SANE_FIX (511),                /* Size of scan area in mm (y) */ - -  SANE_FIX (0.0),                /* Start of white strip in mm (y) */ -  SANE_FIX (0.0),                /* Start of black mark in mm (x) */ - -  SANE_FIX (0.0),                /* Start of scan area in TA mode in mm (x) */ -  SANE_FIX (0.0),                /* Start of scan area in TA mode in mm (y) */ -  SANE_FIX (100.0),                /* Size of scan area in TA mode in mm (x) */ -  SANE_FIX (100.0),                /* Size of scan area in TA mode in mm (y) */ - -  SANE_FIX (0.0),                /* Start of white strip in TA mode in mm (y) */ - -  SANE_FIX (16.0),                /* Size of scan area after paper sensor stops -				   sensing document in mm */ -  SANE_FIX (0.0),                /* Amount of feeding needed to eject document -				   after finishing scanning in mm */ - -  0, 0, 0,                        /* RGB CCD Line-distance correction in pixel */ - -  COLOR_ORDER_RGB,                /* Order of the CCD/CIS colors */ - -  SANE_TRUE,                        /* Is this a CIS scanner? */ -  SANE_TRUE,                        /* Is this a sheetfed scanner? */ -  CCD_ROADWARRIOR, -  DAC_WOLFSON_XP300, -  GPO_DP665, -  MOTOR_ROADWARRIOR, -  GENESYS_FLAG_LAZY_INIT         /* Which flags are needed for this scanner? */ -    | GENESYS_FLAG_SKIP_WARMUP -    | GENESYS_FLAG_OFFSET_CALIBRATION -    | GENESYS_FLAG_CUSTOM_GAMMA -    | GENESYS_FLAG_DARK_CALIBRATION, -  GENESYS_HAS_SCAN_SW | GENESYS_HAS_PAGE_LOADED_SW | GENESYS_HAS_CALIBRATE, -  100, -  0,        // shading_ta_lines -  400 -}; - -static Genesys_Model plustek_3600_model = { -  "plustek-opticbook-3600",        /* Name */ -  "PLUSTEK",                        /* Device vendor string */ -  "OpticBook 3600",                /* Device model name */ -  MODEL_PLUSTEK_OPTICPRO_3600, -  GENESYS_GL841, -  NULL, -  {/*1200,*/ 600, 400, 300, 200, 150, 100, 75, 0},                /* possible x-resolutions */ -  {/*2400,*/ 1200, 600, 400, 300, 200, 150, 100, 75, 0},        /* possible y-resolutions */ -  {16, 8, 0},                        /* possible depths in gray mode */ -  {16, 8, 0},                        /* possible depths in color mode */ - -  SANE_FIX (0.42),/*SANE_FIX (0.42),                 Start of scan area in mm  (x) */ -  SANE_FIX (6.75),/*SANE_FIX (7.9),                 Start of scan area in mm (y) */ -  SANE_FIX (216.0),/*SANE_FIX (216.0),                 Size of scan area in mm (x) */ -  SANE_FIX (297.0),/*SANE_FIX (297.0),                 Size of scan area in mm (y) */ - -  SANE_FIX (0.0),                /* Start of white strip in mm (y) */ -  SANE_FIX (0.0),                /* Start of black mark in mm (x) */ - -  SANE_FIX (0.0),                /* Start of scan area in TA mode in mm (x) */ -  SANE_FIX (0.0),                /* Start of scan area in TA mode in mm (y) */ -  SANE_FIX (0.0),                /* Size of scan area in TA mode in mm (x) */ -  SANE_FIX (0.0),                /* Size of scan area in TA mode in mm (y) */ - -  SANE_FIX (0.0),                /* Start of white strip in TA mode in mm (y) */ - -  SANE_FIX (0.0),                /* Size of scan area after paper sensor stops -				   sensing document in mm */ -  SANE_FIX (0.0),                /* Amount of feeding needed to eject document -				   after finishing scanning in mm */ - -  0, 24, 48,                        /* RGB CCD Line-distance correction in pixel */ - -  COLOR_ORDER_RGB,                /* Order of the CCD/CIS colors */ - -  SANE_FALSE,                        /* Is this a CIS scanner? */ -  SANE_FALSE,                        /* Is this a sheetfed scanner? */ -  CCD_PLUSTEK_3600, -  DAC_PLUSTEK_3600, -  GPO_PLUSTEK_3600, -  MOTOR_PLUSTEK_3600, -  GENESYS_FLAG_UNTESTED                /* not fully working yet */ -	  | GENESYS_FLAG_CUSTOM_GAMMA -	  | GENESYS_FLAG_SKIP_WARMUP -	  | GENESYS_FLAG_DARK_CALIBRATION -	  | GENESYS_FLAG_OFFSET_CALIBRATION -            | GENESYS_FLAG_LAZY_INIT,/* -      | GENESYS_FLAG_NO_CALIBRATION,*/ -  GENESYS_HAS_NO_BUTTONS, -  7, -  0,        // shading_ta_lines -  200 -}; - -static Genesys_Model hpn6310_model = { -  "hewlett-packard-scanjet-N6310",        /* Name */ -  "Hewlett Packard",                        /* Device vendor string */ -  "ScanJet N6310",                        /* Device model name */ -  MODEL_HP_SCANJET_N6310, -  GENESYS_GL847, -  NULL, - -  { 2400, 1200, 600, 400, 300, 200, 150, 100, 75, 0}, -  { 2400, 1200, 600, 400, 300, 200, 150, 100, 75, 0}, - -  {16, 8, 0},                        /* possible depths in gray mode */ -  {16, 8, 0},                        /* possible depths in color mode */ - -  SANE_FIX (6),                 /* Start of scan area in mm  (x) */ -  SANE_FIX (2),                 /* Start of scan area in mm (y) */ -  SANE_FIX (216),                /* Size of scan area in mm (x) 5148 pixels at 600 dpi*/ -  SANE_FIX (511),                /* Size of scan area in mm (y) */ - -  SANE_FIX (3.0),                /* Start of white strip in mm (y) */ -  SANE_FIX (0.0),                /* Start of black mark in mm (x) */ - -  SANE_FIX (0.0),                /* Start of scan area in TA mode in mm (x) */ -  SANE_FIX (0.0),                /* Start of scan area in TA mode in mm (y) */ -  SANE_FIX (100.0),                /* Size of scan area in TA mode in mm (x) */ -  SANE_FIX (100.0),                /* Size of scan area in TA mode in mm (y) */ - -  SANE_FIX (0),                /* Start of white strip in TA mode in mm (y) */ - -  SANE_FIX (0),                /* Size of scan area after paper sensor stops -				   sensing document in mm */ -  SANE_FIX (0),                /* Amount of feeding needed to eject document -				   after finishing scanning in mm */ - -  0, 0, 0,                                /* RGB CCD Line-distance correction in pixel */ - -  COLOR_ORDER_RGB,                /* Order of the CCD/CIS colors */ - -  SANE_FALSE,                        /* Is this a CIS scanner? */ -  SANE_FALSE,                        /* Is this a sheetfed scanner? */ -  CCD_HP_N6310, -  DAC_CANONLIDE200,     /*Not defined yet for N6310 */ -  GPO_HP_N6310, -  MOTOR_CANONLIDE200,   /*Not defined yet for N6310 */ -  GENESYS_FLAG_UNTESTED                /* not fully working yet */ -  | GENESYS_FLAG_LAZY_INIT -    | GENESYS_FLAG_14BIT_GAMMA -    | GENESYS_FLAG_DARK_CALIBRATION -    | GENESYS_FLAG_OFFSET_CALIBRATION -    | GENESYS_FLAG_CUSTOM_GAMMA -    | GENESYS_FLAG_SKIP_WARMUP -   | GENESYS_FLAG_NO_CALIBRATION, - -  GENESYS_HAS_NO_BUTTONS, -  100, -  0,        // shading_ta_lines -  100 -}; - - -static Genesys_Model plustek_3800_model = { -  "plustek-opticbook-3800",        /* Name */ -  "PLUSTEK",                        /* Device vendor string */ -  "OpticBook 3800",                /* Device model name */ -  MODEL_PLUSTEK_OPTICBOOK_3800, -  GENESYS_GL845, -  NULL, - -  {1200, 600, 300, 150, 100, 75, 0},        /* possible x-resolutions */ -  {1200, 600, 300, 150, 100, 75, 0},        /* possible y-resolutions */ -  {16, 8, 0},                        /* possible depths in gray mode */ -  {16, 8, 0},                        /* possible depths in color mode */ - -  SANE_FIX (7.2),                /* Start of scan area in mm  (x) */ -  SANE_FIX (14.7),                /* Start of scan area in mm (y) */ -  SANE_FIX (217.7),                /* Size of scan area in mm (x) */ -  SANE_FIX (300.0),                /* Size of scan area in mm (y) */ - -  SANE_FIX (9.0),                /* Start of white strip in mm (y) */ -  SANE_FIX (0.0),                /* Start of black mark in mm (x) */ - -  SANE_FIX (0.0),                /* Start of scan area in TA mode in mm (x) */ -  SANE_FIX (0.0),                /* Start of scan area in TA mode in mm (y) */ -  SANE_FIX (0.0),                /* Size of scan area in TA mode in mm (x) */ -  SANE_FIX (0.0),                /* Size of scan area in TA mode in mm (y) */ - -  SANE_FIX (0.0),                /* Start of white strip in TA mode in mm (y) */ - -  SANE_FIX (0.0),                /* Size of scan area after paper sensor stops -				   sensing document in mm */ -  SANE_FIX (0.0),                /* Amount of feeding needed to eject document -				   after finishing scanning in mm */ - -  0, 24, 48,                        /* RGB CCD Line-distance correction in pixel */ - -  COLOR_ORDER_RGB,                /* Order of the CCD/CIS colors */ - -  SANE_FALSE,                        /* Is this a CIS scanner? */ -  SANE_FALSE,                        /* Is this a sheetfed scanner? */ -  CCD_PLUSTEK3800, -  DAC_PLUSTEK3800, -  GPO_PLUSTEK3800, -  MOTOR_PLUSTEK3800, -  GENESYS_FLAG_LAZY_INIT | -  GENESYS_FLAG_SKIP_WARMUP | -  GENESYS_FLAG_OFFSET_CALIBRATION | -  GENESYS_FLAG_CUSTOM_GAMMA, -  GENESYS_HAS_NO_BUTTONS,        /* TODO there are 4 buttons to support */ -  100, -  0,        // shading_ta_lines -  100 -}; - - -static Genesys_Model canon_formula101_model = { -  "canon-image-formula-101",                /* Name */ -  "Canon",                        /* Device vendor string */ -  "Image Formula 101",                        /* Device model name */ -  MODEL_CANON_IMAGE_FORMULA_101, -  GENESYS_GL846, -  NULL, - -  {1200, 600, 300, 150, 100, 75, 0},        /* possible x-resolutions */ -  {1200, 600, 300, 150, 100, 75, 0},        /* possible y-resolutions */ -  {16, 8, 0},                        /* possible depths in gray mode */ -  {16, 8, 0},                        /* possible depths in color mode */ - -  SANE_FIX (7.2),                /* Start of scan area in mm  (x) */ -  SANE_FIX (14.7),                /* Start of scan area in mm (y) */ -  SANE_FIX (217.7),                /* Size of scan area in mm (x) */ -  SANE_FIX (300.0),                /* Size of scan area in mm (y) */ - -  SANE_FIX (9.0),                /* Start of white strip in mm (y) */ -  SANE_FIX (0.0),                /* Start of black mark in mm (x) */ - -  SANE_FIX (0.0),                /* Start of scan area in TA mode in mm (x) */ -  SANE_FIX (0.0),                /* Start of scan area in TA mode in mm (y) */ -  SANE_FIX (0.0),                /* Size of scan area in TA mode in mm (x) */ -  SANE_FIX (0.0),                /* Size of scan area in TA mode in mm (y) */ - -  SANE_FIX (0.0),                /* Start of white strip in TA mode in mm (y) */ - -  SANE_FIX (0.0),                /* Size of scan area after paper sensor stops -				   sensing document in mm */ -  SANE_FIX (0.0),                /* Amount of feeding needed to eject document -				   after finishing scanning in mm */ - -  0, 24, 48,                        /* RGB CCD Line-distance correction in pixel */ - -  COLOR_ORDER_RGB,                /* Order of the CCD/CIS colors */ - -  SANE_FALSE,                        /* Is this a CIS scanner? */ -  SANE_FALSE,                        /* Is this a sheetfed scanner? */ -  CCD_IMG101, -  DAC_IMG101, -  GPO_IMG101, -  MOTOR_IMG101, -  GENESYS_FLAG_LAZY_INIT | -  GENESYS_FLAG_SKIP_WARMUP | -  GENESYS_FLAG_OFFSET_CALIBRATION | -  GENESYS_FLAG_CUSTOM_GAMMA, -  GENESYS_HAS_NO_BUTTONS , -  100, -  0,        // shading_ta_lines -  100 -}; - - -static Genesys_USB_Device_Entry genesys_usb_device_list[] = { -  /* GL646 devices */ -  {0x03f0, 0x0901, &hp2300c_model}, -  {0x03f0, 0x0a01, &hp2400c_model}, -  {0x03f0, 0x1405, &hp3670c_model}, -  {0x0461, 0x0377, &medion_md5345_model}, -  {0x04a7, 0x0229, &visioneer_7100_model}, -  {0x0461, 0x038b, &xerox_2400_model}, -  {0x04a7, 0x0426, &visioneer_xp200_model}, -  {0x0638, 0x0a10, &umax_astra_4500_model}, -  {0x07b3, 0x0600, &plustek_st12_model}, -  {0x07b3, 0x0601, &plustek_st24_model}, -  /* GL841 devices */ -  {0x04a7, 0x0474, &visioneer_xp300_model}, -  {0x04a7, 0x0494, &visioneer_roadwarrior_model}, -  {0x04a7, 0x049b, &visioneer_xp100_r3_model}, -  {0x04a7, 0x04ac, &xerox_travelscanner_model}, -  {0x04a9, 0x2213, &canon_lide_50_model}, -  {0x04a9, 0x221c, &canon_lide_60_model}, -  {0x04a9, 0x2214, &canon_lide_80_model}, -  {0x07b3, 0x0900, &plustek_3600_model}, -  {0x0a17, 0x3210, &pentax_dsmobile_600_model}, -  {0x04f9, 0x2038, &pentax_dsmobile_600_model}, /* clone, only usb id is different */ -  {0x0a82, 0x4800, &syscan_docketport_485_model}, -  {0x0a82, 0x4802, &syscan_docketport_465_model}, -  {0x0a82, 0x4803, &syscan_docketport_665_model}, -  {0x0a82, 0x480c, &syscan_docketport_685_model}, -  {0x1dcc, 0x4810, &dct_docketport_487_model}, -  {0x1dcc, 0x4812, &syscan_docketport_467_model}, -  /* GL843 devices */ -  {0x04da, 0x100f, &panasonic_kvss080_model}, -  {0x03f0, 0x1b05, &hp4850c_model}, -  {0x03f0, 0x4505, &hpg4010_model}, -  {0x03f0, 0x4605, &hpg4050_model}, -  {0x04a9, 0x2228, &canon_4400f_model}, -  {0x04a9, 0x221e, &canon_8400f_model}, -  {0x04a9, 0x2229, &canon_8600f_model}, -  /* GL845 devices */ -  {0x07b3, 0x1300, &plustek_3800_model}, -  /* GL846 devices */ -  {0x1083, 0x162e, &canon_formula101_model}, -  /* GL847 devices */ -  {0x04a9, 0x1904, &canon_lide_100_model}, -  {0x04a9, 0x1905, &canon_lide_200_model}, -  {0x04a9, 0x1906, &canon_5600f_model}, -  {0x04a9, 0x1907, &canon_lide_700f_model}, -  {0x03f0, 0x4705, &hpn6310_model}, -  /* GL124 devices */ -  {0x04a9, 0x1909, &canon_lide_110_model}, -  {0x04a9, 0x190e, &canon_lide_120_model}, -  {0x04a9, 0x190a, &canon_lide_210_model}, -  {0x04a9, 0x190f, &canon_lide_220_model}, -  {0, 0, NULL} -}; - -#define MAX_SCANNERS (sizeof(genesys_usb_device_list) / \ -        sizeof(genesys_usb_device_list[0])) | 
