diff options
Diffstat (limited to 'backend/genesys_gl646.h')
| -rw-r--r-- | backend/genesys_gl646.h | 428 | 
1 files changed, 163 insertions, 265 deletions
| diff --git a/backend/genesys_gl646.h b/backend/genesys_gl646.h index 4c47d03..766176a 100644 --- a/backend/genesys_gl646.h +++ b/backend/genesys_gl646.h @@ -165,111 +165,21 @@  #include "genesys.h" -enum -{ -  reg_0x01 = 0, -  reg_0x02, -  reg_0x03, -  reg_0x04, -  reg_0x05, -  reg_0x06, -  reg_0x07, -  reg_0x08, -  reg_0x09, -  reg_0x0a, -  reg_0x0b, -  reg_0x10, -  reg_0x11, -  reg_0x12, -  reg_0x13, -  reg_0x14, -  reg_0x15, -  reg_0x16, -  reg_0x17, -  reg_0x18, -  reg_0x19, -  reg_0x1a, -  reg_0x1b, -  reg_0x1c, -  reg_0x1d, -  reg_0x1e, -  reg_0x1f, -  reg_0x20, -  reg_0x21, -  reg_0x22, -  reg_0x23, -  reg_0x24, -  reg_0x25, -  reg_0x26, -  reg_0x27, -  reg_0x28, -  reg_0x29, -  reg_0x2c, -  reg_0x2d, -  reg_0x2e, -  reg_0x2f, -  reg_0x30, -  reg_0x31, -  reg_0x32, -  reg_0x33, -  reg_0x34, -  reg_0x35, -  reg_0x36, -  reg_0x37, -  reg_0x38, -  reg_0x39, -  reg_0x3d, -  reg_0x3e, -  reg_0x3f, -  reg_0x52, -  reg_0x53, -  reg_0x54, -  reg_0x55, -  reg_0x56, -  reg_0x57, -  reg_0x58, -  reg_0x59, -  reg_0x5a, -  reg_0x5b, -  reg_0x5c, -  reg_0x5d, -  reg_0x5e, -  reg_0x60, -  reg_0x61, -  reg_0x62, -  reg_0x63, -  reg_0x64, -  reg_0x65, -  reg_0x66, -  reg_0x67, -  reg_0x68, -  reg_0x69, -  reg_0x6a, -  reg_0x6b, -  reg_0x6c, -  reg_0x6d, -  GENESYS_GL646_MAX_REGS -}; +static SANE_Status gl646_set_fe(Genesys_Device * dev, const Genesys_Sensor& sensor, +                                uint8_t set, int dpi); -#ifndef UNIT_TESTING -static -#endif -SANE_Status gl646_set_fe (Genesys_Device * dev, uint8_t set, int dpi); +static SANE_Status gl646_public_set_fe(Genesys_Device * dev, const Genesys_Sensor& sensor, +                                       uint8_t set); -#ifndef UNIT_TESTING  static -#endif -SANE_Status gl646_public_set_fe (Genesys_Device * dev, uint8_t set); - -GENESYS_STATIC  SANE_Status  gl646_save_power (Genesys_Device * dev, SANE_Bool enable); -GENESYS_STATIC +static  SANE_Status  gl646_slow_back_home (Genesys_Device * dev, SANE_Bool wait_until_home); -GENESYS_STATIC +static  SANE_Status  gl646_move_to_ta (Genesys_Device * dev); @@ -285,8 +195,9 @@ gl646_move_to_ta (Genesys_Device * dev);   * @param ycorrection true if scanner's Y geometry must be taken into account to   * 		     compute Y, ie add top margins   */ -GENESYS_STATIC SANE_Status +static SANE_Status  setup_for_scan (Genesys_Device *device, +                const Genesys_Sensor& sensor,  		Genesys_Register_Set *regs,  		Genesys_Settings settings,  		SANE_Bool split, @@ -300,15 +211,11 @@ setup_for_scan (Genesys_Device *device,   * */  static SANE_Status  gl646_setup_registers (Genesys_Device * dev, -		       Genesys_Register_Set * regs, -		       Genesys_Settings scan_settings, -		       uint16_t * slope_table1, -		       uint16_t * slope_table2, -		       SANE_Int resolution, -		       uint32_t move, -		       uint32_t linecnt, -		       uint16_t startx, -		       uint16_t endx, SANE_Bool color, SANE_Int depth); +                       const Genesys_Sensor& sensor, +                       Genesys_Register_Set * regs, SetupParams& params, +                       uint16_t * slope_table1, +                       uint16_t * slope_table2, +                       bool xcorrection);  /**   * Does a simple move of the given distance by doing a scan at lowest resolution @@ -317,10 +224,7 @@ gl646_setup_registers (Genesys_Device * dev,   * @param dev device of the scanner   * @param distance distance to move in MM   */ -#ifndef UNIT_TESTING -static -#endif -  SANE_Status +static SANE_Status  simple_move (Genesys_Device * dev, SANE_Int distance);  /** @@ -335,12 +239,10 @@ simple_move (Genesys_Device * dev, SANE_Int distance);   * @param shading  flag to tell if shading correction should be done   * @param data     pointer that will point to the scanned data   */ -#ifndef UNIT_TESTING -static -#endif -SANE_Status -simple_scan (Genesys_Device * dev, Genesys_Settings settings, SANE_Bool move, SANE_Bool forward, -	     SANE_Bool shading, unsigned char **data); +static SANE_Status +simple_scan(Genesys_Device * dev, const Genesys_Sensor& sensor, +            Genesys_Settings settings, SANE_Bool move, SANE_Bool forward, +            SANE_Bool shading, std::vector<uint8_t>& data);  /**   * Send the stop scan command @@ -351,7 +253,8 @@ end_scan (Genesys_Device * dev, Genesys_Register_Set * reg,  /**   * writes control data to an area behind the last motor table.   */ -static SANE_Status write_control (Genesys_Device * dev, int resolution); +static SANE_Status write_control (Genesys_Device * dev, const Genesys_Sensor& sensor, +                                  int resolution);  /** @@ -359,10 +262,7 @@ static SANE_Status write_control (Genesys_Device * dev, int resolution);   */  static void gl646_init_regs (Genesys_Device * dev); -#ifndef UNIT_TESTING -static -#endif -SANE_Status gl646_load_document (Genesys_Device * dev); +static SANE_Status gl646_load_document (Genesys_Device * dev);  static SANE_Status  gl646_detect_document_end (Genesys_Device * dev); @@ -381,7 +281,7 @@ typedef struct    /* key */    SANE_Int motor;    SANE_Int dpi; -  SANE_Bool color; +  unsigned channels;    /* settings */    SANE_Int ydpi;		/* real motor dpi, may be different from the resolution */ @@ -408,7 +308,7 @@ typedef struct    /* key */    SANE_Int sensor;	/**< sensor identifier */    SANE_Int dpi;		/**< required dpi */ -  SANE_Bool color;	/**< SANE_TRUE if color scan */ +  unsigned channels;     // 3 channels if color scan, 1 channel for gray scan    /* settings */    SANE_Int xdpi;		/**< real sensor dpi, may be different from the required resolution */ @@ -448,88 +348,87 @@ static uint8_t xp200_gray[6]={0x05, 0x0a, 0x0f, 0xa0, 0x10, 0x10};   * master sensor settings, for a given sensor and dpi,   * it gives exposure and CCD time   */ -/* *INDENT-OFF* */  static Sensor_Master sensor_master[] = {    /* HP3670 master settings */ -  {CCD_HP3670,  75, SANE_TRUE ,   75,  4879,  300, 4, 42, NULL, SANE_FALSE, 0x33, 0x43}, -  {CCD_HP3670, 100, SANE_TRUE ,  100,  4487,  400, 4, 42, NULL, SANE_FALSE, 0x33, 0x43}, -  {CCD_HP3670, 150, SANE_TRUE ,  150,  4879,  600, 4, 42, NULL, SANE_FALSE, 0x33, 0x43}, -  {CCD_HP3670, 300, SANE_TRUE ,  300,  4503, 1200, 4, 42, NULL, SANE_FALSE, 0x33, 0x43}, -  {CCD_HP3670, 600, SANE_TRUE ,  600, 10251, 1200, 2, 42, NULL, SANE_FALSE, 0x31, 0x43}, -  {CCD_HP3670,1200, SANE_TRUE , 1200, 12750, 1200, 1, 42, NULL, SANE_FALSE, 0x30, 0x43}, -  {CCD_HP3670,2400, SANE_TRUE , 1200, 12750, 1200, 1, 42, NULL, SANE_FALSE, 0x30, 0x43}, -  {CCD_HP3670,  75, SANE_FALSE,   75,  4879,  300, 4, 42, NULL, SANE_FALSE, 0x33, 0x43}, -  {CCD_HP3670, 100, SANE_FALSE,  100,  4487,  400, 4, 42, NULL, SANE_FALSE, 0x33, 0x43}, -  {CCD_HP3670, 150, SANE_FALSE,  150,  4879,  600, 4, 42, NULL, SANE_FALSE, 0x33, 0x43}, -  {CCD_HP3670, 300, SANE_FALSE,  300,  4503, 1200, 4, 42, NULL, SANE_FALSE, 0x33, 0x43}, -  {CCD_HP3670, 600, SANE_FALSE,  600, 10251, 1200, 2, 42, NULL, SANE_FALSE, 0x31, 0x43}, -  {CCD_HP3670,1200, SANE_FALSE, 1200, 12750, 1200, 1, 42, NULL, SANE_FALSE, 0x30, 0x43}, -  {CCD_HP3670,2400, SANE_FALSE, 1200, 12750, 1200, 1, 42, NULL, SANE_FALSE, 0x30, 0x43}, +  {CCD_HP3670,  75, 3,   75,  4879,  300, 4, 42, NULL, SANE_FALSE, 0x33, 0x43}, +  {CCD_HP3670, 100, 3,  100,  4487,  400, 4, 42, NULL, SANE_FALSE, 0x33, 0x43}, +  {CCD_HP3670, 150, 3,  150,  4879,  600, 4, 42, NULL, SANE_FALSE, 0x33, 0x43}, +  {CCD_HP3670, 300, 3,  300,  4503, 1200, 4, 42, NULL, SANE_FALSE, 0x33, 0x43}, +  {CCD_HP3670, 600, 3,  600, 10251, 1200, 2, 42, NULL, SANE_FALSE, 0x31, 0x43}, +  {CCD_HP3670,1200, 3, 1200, 12750, 1200, 1, 42, NULL, SANE_FALSE, 0x30, 0x43}, +  {CCD_HP3670,2400, 3, 1200, 12750, 1200, 1, 42, NULL, SANE_FALSE, 0x30, 0x43}, +  {CCD_HP3670,  75, 1,   75,  4879,  300, 4, 42, NULL, SANE_FALSE, 0x33, 0x43}, +  {CCD_HP3670, 100, 1,  100,  4487,  400, 4, 42, NULL, SANE_FALSE, 0x33, 0x43}, +  {CCD_HP3670, 150, 1,  150,  4879,  600, 4, 42, NULL, SANE_FALSE, 0x33, 0x43}, +  {CCD_HP3670, 300, 1,  300,  4503, 1200, 4, 42, NULL, SANE_FALSE, 0x33, 0x43}, +  {CCD_HP3670, 600, 1,  600, 10251, 1200, 2, 42, NULL, SANE_FALSE, 0x31, 0x43}, +  {CCD_HP3670,1200, 1, 1200, 12750, 1200, 1, 42, NULL, SANE_FALSE, 0x30, 0x43}, +  {CCD_HP3670,2400, 1, 1200, 12750, 1200, 1, 42, NULL, SANE_FALSE, 0x30, 0x43},    /* HP 2400 master settings */ -  {CCD_HP2400,  50, SANE_TRUE ,   50,  7211,  200, 4, 42, NULL, SANE_FALSE, 0x3f, 0x02}, -  {CCD_HP2400, 100, SANE_TRUE ,  100,  7211,  400, 4, 42, NULL, SANE_FALSE, 0x3f, 0x02}, -  {CCD_HP2400, 150, SANE_TRUE ,  150,  7211,  600, 4, 42, NULL, SANE_FALSE, 0x3f, 0x02}, -  {CCD_HP2400, 300, SANE_TRUE ,  300,  8751, 1200, 4, 42, NULL, SANE_FALSE, 0x3f, 0x02}, -  {CCD_HP2400, 600, SANE_TRUE ,  600, 18760, 1200, 2, 42, NULL, SANE_FALSE, 0x31, 0x02}, -  {CCD_HP2400,1200, SANE_TRUE , 1200, 21749, 1200, 1, 42, NULL, SANE_FALSE, 0x30, 0x42}, -  {CCD_HP2400,  50, SANE_FALSE,   50,  7211,  200, 4, 42, NULL, SANE_FALSE, 0x3f, 0x02}, -  {CCD_HP2400, 100, SANE_FALSE,  100,  7211,  400, 4, 42, NULL, SANE_FALSE, 0x3f, 0x02}, -  {CCD_HP2400, 150, SANE_FALSE,  150,  7211,  600, 4, 42, NULL, SANE_FALSE, 0x3f, 0x02}, -  {CCD_HP2400, 300, SANE_FALSE,  300,  8751, 1200, 4, 42, NULL, SANE_FALSE, 0x3f, 0x02}, -  {CCD_HP2400, 600, SANE_FALSE,  600, 18760, 1200, 2, 42, NULL, SANE_FALSE, 0x31, 0x02}, -  {CCD_HP2400,1200, SANE_FALSE, 1200, 21749, 1200, 1, 42, NULL, SANE_FALSE, 0x30, 0x42}, +  {CCD_HP2400,  50, 3,   50,  7211,  200, 4, 42, NULL, SANE_FALSE, 0x3f, 0x02}, +  {CCD_HP2400, 100, 3,  100,  7211,  400, 4, 42, NULL, SANE_FALSE, 0x3f, 0x02}, +  {CCD_HP2400, 150, 3,  150,  7211,  600, 4, 42, NULL, SANE_FALSE, 0x3f, 0x02}, +  {CCD_HP2400, 300, 3,  300,  8751, 1200, 4, 42, NULL, SANE_FALSE, 0x3f, 0x02}, +  {CCD_HP2400, 600, 3,  600, 18760, 1200, 2, 42, NULL, SANE_FALSE, 0x31, 0x02}, +  {CCD_HP2400,1200, 3, 1200, 21749, 1200, 1, 42, NULL, SANE_FALSE, 0x30, 0x42}, +  {CCD_HP2400,  50, 1,   50,  7211,  200, 4, 42, NULL, SANE_FALSE, 0x3f, 0x02}, +  {CCD_HP2400, 100, 1,  100,  7211,  400, 4, 42, NULL, SANE_FALSE, 0x3f, 0x02}, +  {CCD_HP2400, 150, 1,  150,  7211,  600, 4, 42, NULL, SANE_FALSE, 0x3f, 0x02}, +  {CCD_HP2400, 300, 1,  300,  8751, 1200, 4, 42, NULL, SANE_FALSE, 0x3f, 0x02}, +  {CCD_HP2400, 600, 1,  600, 18760, 1200, 2, 42, NULL, SANE_FALSE, 0x31, 0x02}, +  {CCD_HP2400,1200, 1, 1200, 21749, 1200, 1, 42, NULL, SANE_FALSE, 0x30, 0x42},    /* XP 200 master settings */ -  {CIS_XP200 ,  75, SANE_TRUE ,  75,  5700,  75, 1, 42, xp200_color, SANE_FALSE, 0x00, 0x11}, -  {CIS_XP200 , 100, SANE_TRUE , 100,  5700, 100, 1, 42, xp200_color, SANE_FALSE, 0x00, 0x11}, -  {CIS_XP200 , 200, SANE_TRUE , 200,  5700, 200, 1, 42, xp200_color, SANE_FALSE, 0x00, 0x11}, -  {CIS_XP200 , 300, SANE_TRUE , 300,  9000, 300, 1, 42, xp200_color, SANE_FALSE, 0x00, 0x11}, -  {CIS_XP200 , 600, SANE_TRUE , 600, 16000, 600, 1, 42, xp200_color, SANE_FALSE, 0x00, 0x11}, - -  {CIS_XP200 ,  75, SANE_FALSE,  75, 16000,  75, 1, 42, xp200_gray, SANE_FALSE, 0x00, 0x11}, -  {CIS_XP200 , 100, SANE_FALSE, 100,  7800, 100, 1, 42, xp200_gray, SANE_FALSE, 0x00, 0x11}, -  {CIS_XP200 , 200, SANE_FALSE, 200, 11000, 200, 1, 42, xp200_gray, SANE_FALSE, 0x00, 0x11}, -  {CIS_XP200 , 300, SANE_FALSE, 300, 13000, 300, 1, 42, xp200_gray, SANE_FALSE, 0x00, 0x11}, -  {CIS_XP200 , 600, SANE_FALSE, 600, 24000, 600, 1, 42, xp200_gray, SANE_FALSE, 0x00, 0x11}, +  {CIS_XP200 ,  75, 3,  75,  5700,  75, 1, 42, xp200_color, SANE_FALSE, 0x00, 0x11}, +  {CIS_XP200 , 100, 3, 100,  5700, 100, 1, 42, xp200_color, SANE_FALSE, 0x00, 0x11}, +  {CIS_XP200 , 200, 3, 200,  5700, 200, 1, 42, xp200_color, SANE_FALSE, 0x00, 0x11}, +  {CIS_XP200 , 300, 3, 300,  9000, 300, 1, 42, xp200_color, SANE_FALSE, 0x00, 0x11}, +  {CIS_XP200 , 600, 3, 600, 16000, 600, 1, 42, xp200_color, SANE_FALSE, 0x00, 0x11}, + +  {CIS_XP200 ,  75, 1,  75, 16000,  75, 1, 42, xp200_gray, SANE_FALSE, 0x00, 0x11}, +  {CIS_XP200 , 100, 1, 100,  7800, 100, 1, 42, xp200_gray, SANE_FALSE, 0x00, 0x11}, +  {CIS_XP200 , 200, 1, 200, 11000, 200, 1, 42, xp200_gray, SANE_FALSE, 0x00, 0x11}, +  {CIS_XP200 , 300, 1, 300, 13000, 300, 1, 42, xp200_gray, SANE_FALSE, 0x00, 0x11}, +  {CIS_XP200 , 600, 1, 600, 24000, 600, 1, 42, xp200_gray, SANE_FALSE, 0x00, 0x11},    /* HP 2300 master settings */ -  {CCD_HP2300,  75, SANE_TRUE ,  75,  4480, 150, 1, 42, NULL, SANE_TRUE , 0x20, 0x85}, -  {CCD_HP2300, 150, SANE_TRUE , 150,  4350, 300, 1, 42, NULL, SANE_TRUE , 0x20, 0x85}, -  {CCD_HP2300, 300, SANE_TRUE,  300,  4350, 600, 1, 42, NULL, SANE_TRUE , 0x20, 0x85}, -  {CCD_HP2300, 600, SANE_TRUE , 600,  8700, 600, 1, 42, NULL, SANE_FALSE, 0x20, 0x05}, -  {CCD_HP2300,1200, SANE_TRUE , 600,  8700, 600, 1, 42, NULL, SANE_FALSE, 0x20, 0x05}, -  {CCD_HP2300,  75, SANE_FALSE,  75,  4480, 150, 1, 42, NULL, SANE_TRUE , 0x20, 0x85}, -  {CCD_HP2300, 150, SANE_FALSE, 150,  4350, 300, 1, 42, NULL, SANE_TRUE , 0x20, 0x85}, -  {CCD_HP2300, 300, SANE_FALSE, 300,  4350, 600, 1, 42, NULL, SANE_TRUE , 0x20, 0x85}, -  {CCD_HP2300, 600, SANE_FALSE, 600,  8700, 600, 1, 42, NULL, SANE_FALSE, 0x20, 0x05}, -  {CCD_HP2300,1200, SANE_FALSE, 600,  8700, 600, 1, 42, NULL, SANE_FALSE, 0x20, 0x05}, +  {CCD_HP2300,  75, 3,  75,  4480, 150, 1, 42, NULL, SANE_TRUE , 0x20, 0x85}, +  {CCD_HP2300, 150, 3, 150,  4350, 300, 1, 42, NULL, SANE_TRUE , 0x20, 0x85}, +  {CCD_HP2300, 300, 3, 300,  4350, 600, 1, 42, NULL, SANE_TRUE , 0x20, 0x85}, +  {CCD_HP2300, 600, 3, 600,  8700, 600, 1, 42, NULL, SANE_FALSE, 0x20, 0x05}, +  {CCD_HP2300,1200, 3, 600,  8700, 600, 1, 42, NULL, SANE_FALSE, 0x20, 0x05}, +  {CCD_HP2300,  75, 1,  75,  4480, 150, 1, 42, NULL, SANE_TRUE , 0x20, 0x85}, +  {CCD_HP2300, 150, 1, 150,  4350, 300, 1, 42, NULL, SANE_TRUE , 0x20, 0x85}, +  {CCD_HP2300, 300, 1, 300,  4350, 600, 1, 42, NULL, SANE_TRUE , 0x20, 0x85}, +  {CCD_HP2300, 600, 1, 600,  8700, 600, 1, 42, NULL, SANE_FALSE, 0x20, 0x05}, +  {CCD_HP2300,1200, 1, 600,  8700, 600, 1, 42, NULL, SANE_FALSE, 0x20, 0x05},    /* non half ccd 300 dpi settings -  {CCD_HP2300, 300, SANE_TRUE , 300,  8700, 300, 1, 42, NULL, SANE_FALSE, 0x20, 0x05}, -  {CCD_HP2300, 300, SANE_FALSE, 300,  8700, 300, 1, 42, NULL, SANE_FALSE, 0x20, 0x05}, +  {CCD_HP2300, 300, 3, 300,  8700, 300, 1, 42, NULL, SANE_FALSE, 0x20, 0x05}, +  {CCD_HP2300, 300, 1, 300,  8700, 300, 1, 42, NULL, SANE_FALSE, 0x20, 0x05},    */    /* MD5345/6471 master settings */ -  {CCD_5345  ,  50, SANE_TRUE ,  50, 12000, 100, 1, 42, NULL, SANE_TRUE , 0x28, 0x03}, -  {CCD_5345  ,  75, SANE_TRUE ,  75, 11000, 150, 1, 42, NULL, SANE_TRUE , 0x28, 0x03}, -  {CCD_5345  , 100, SANE_TRUE , 100, 11000, 200, 1, 42, NULL, SANE_TRUE , 0x28, 0x03}, -  {CCD_5345  , 150, SANE_TRUE , 150, 11000, 300, 1, 42, NULL, SANE_TRUE , 0x28, 0x03}, -  {CCD_5345  , 200, SANE_TRUE , 200, 11000, 400, 1, 42, NULL, SANE_TRUE , 0x28, 0x03}, -  {CCD_5345  , 300, SANE_TRUE , 300, 11000, 600, 1, 42, NULL, SANE_TRUE , 0x28, 0x03}, -  {CCD_5345  , 400, SANE_TRUE , 400, 11000, 800, 1, 42, NULL, SANE_TRUE , 0x28, 0x03}, -  {CCD_5345  , 600, SANE_TRUE , 600, 11000,1200, 1, 42, NULL, SANE_TRUE , 0x28, 0x03}, -  {CCD_5345  ,1200, SANE_TRUE ,1200, 11000,1200, 1, 42, NULL, SANE_FALSE, 0x30, 0x03}, -  {CCD_5345  ,2400, SANE_TRUE ,1200, 11000,1200, 1, 42, NULL, SANE_FALSE, 0x30, 0x03}, -  {CCD_5345  ,  50, SANE_FALSE,  50, 12000, 100, 1, 42, NULL, SANE_TRUE , 0x28, 0x03}, -  {CCD_5345  ,  75, SANE_FALSE,  75, 11000, 150, 1, 42, NULL, SANE_TRUE , 0x28, 0x03}, -  {CCD_5345  , 100, SANE_FALSE, 100, 11000, 200, 1, 42, NULL, SANE_TRUE , 0x28, 0x03}, -  {CCD_5345  , 150, SANE_FALSE, 150, 11000, 300, 1, 42, NULL, SANE_TRUE , 0x28, 0x03}, -  {CCD_5345  , 200, SANE_FALSE, 200, 11000, 400, 1, 42, NULL, SANE_TRUE , 0x28, 0x03}, -  {CCD_5345  , 300, SANE_FALSE, 300, 11000, 600, 1, 42, NULL, SANE_TRUE , 0x28, 0x03}, -  {CCD_5345  , 400, SANE_FALSE, 400, 11000, 800, 1, 42, NULL, SANE_TRUE , 0x28, 0x03}, -  {CCD_5345  , 600, SANE_FALSE, 600, 11000,1200, 1, 42, NULL, SANE_TRUE , 0x28, 0x03}, -  {CCD_5345  ,1200, SANE_FALSE,1200, 11000,1200, 1, 42, NULL, SANE_FALSE, 0x30, 0x03}, -  {CCD_5345  ,2400, SANE_FALSE,1200, 11000,1200, 1, 42, NULL, SANE_FALSE, 0x30, 0x03}, +  {CCD_5345  ,  50, 3,   50, 12000, 100, 1, 42, NULL, SANE_TRUE , 0x28, 0x03}, +  {CCD_5345  ,  75, 3,   75, 11000, 150, 1, 42, NULL, SANE_TRUE , 0x28, 0x03}, +  {CCD_5345  , 100, 3,  100, 11000, 200, 1, 42, NULL, SANE_TRUE , 0x28, 0x03}, +  {CCD_5345  , 150, 3,  150, 11000, 300, 1, 42, NULL, SANE_TRUE , 0x28, 0x03}, +  {CCD_5345  , 200, 3,  200, 11000, 400, 1, 42, NULL, SANE_TRUE , 0x28, 0x03}, +  {CCD_5345  , 300, 3,  300, 11000, 600, 1, 42, NULL, SANE_TRUE , 0x28, 0x03}, +  {CCD_5345  , 400, 3,  400, 11000, 800, 1, 42, NULL, SANE_TRUE , 0x28, 0x03}, +  {CCD_5345  , 600, 3,  600, 11000,1200, 1, 42, NULL, SANE_TRUE , 0x28, 0x03}, +  {CCD_5345  ,1200, 3, 1200, 11000,1200, 1, 42, NULL, SANE_FALSE, 0x30, 0x03}, +  {CCD_5345  ,2400, 3, 1200, 11000,1200, 1, 42, NULL, SANE_FALSE, 0x30, 0x03}, +  {CCD_5345  ,  50, 1,   50, 12000, 100, 1, 42, NULL, SANE_TRUE , 0x28, 0x03}, +  {CCD_5345  ,  75, 1,   75, 11000, 150, 1, 42, NULL, SANE_TRUE , 0x28, 0x03}, +  {CCD_5345  , 100, 1,  100, 11000, 200, 1, 42, NULL, SANE_TRUE , 0x28, 0x03}, +  {CCD_5345  , 150, 1,  150, 11000, 300, 1, 42, NULL, SANE_TRUE , 0x28, 0x03}, +  {CCD_5345  , 200, 1,  200, 11000, 400, 1, 42, NULL, SANE_TRUE , 0x28, 0x03}, +  {CCD_5345  , 300, 1,  300, 11000, 600, 1, 42, NULL, SANE_TRUE , 0x28, 0x03}, +  {CCD_5345  , 400, 1,  400, 11000, 800, 1, 42, NULL, SANE_TRUE , 0x28, 0x03}, +  {CCD_5345  , 600, 1,  600, 11000,1200, 1, 42, NULL, SANE_TRUE , 0x28, 0x03}, +  {CCD_5345  ,1200, 1, 1200, 11000,1200, 1, 42, NULL, SANE_FALSE, 0x30, 0x03}, +  {CCD_5345  ,2400, 1, 1200, 11000,1200, 1, 42, NULL, SANE_FALSE, 0x30, 0x03},  }; @@ -539,88 +438,88 @@ static Sensor_Master sensor_master[] = {   */  static Motor_Master motor_master[] = {    /* HP3670 motor settings */ -  {MOTOR_HP3670,  75, SANE_TRUE ,  75, FULL_STEP, SANE_FALSE, SANE_TRUE , 1, 200,  3429,  305, 192, 3399, 337, 0.3, 0.4, 192}, -  {MOTOR_HP3670, 100, SANE_TRUE , 100, HALF_STEP, SANE_FALSE, SANE_TRUE , 1, 143,  2905,  187, 192, 3399, 337, 0.3, 0.4, 192}, -  {MOTOR_HP3670, 150, SANE_TRUE , 150, HALF_STEP, SANE_FALSE, SANE_TRUE , 1,  73,  3429,  305, 192, 3399, 337, 0.3, 0.4, 192}, -  {MOTOR_HP3670, 300, SANE_TRUE , 300, HALF_STEP, SANE_FALSE, SANE_TRUE , 1,  11,  1055,  563, 192, 3399, 337, 0.3, 0.4, 192}, -  {MOTOR_HP3670, 600, SANE_TRUE , 600, FULL_STEP, SANE_FALSE, SANE_TRUE , 0,   3, 10687, 5126, 192, 3399, 337, 0.3, 0.4, 192}, -  {MOTOR_HP3670,1200, SANE_TRUE ,1200, HALF_STEP, SANE_FALSE, SANE_TRUE , 0,   3, 15937, 6375, 192, 3399, 337, 0.3, 0.4, 192}, -  {MOTOR_HP3670,2400, SANE_TRUE ,2400, HALF_STEP, SANE_FALSE, SANE_TRUE , 0,   3, 15937, 12750, 192, 3399, 337, 0.3, 0.4, 192}, -  {MOTOR_HP3670,  75, SANE_FALSE,  75, FULL_STEP, SANE_FALSE, SANE_TRUE , 1, 200,  3429,  305, 192, 3399, 337, 0.3, 0.4, 192}, -  {MOTOR_HP3670, 100, SANE_FALSE, 100, HALF_STEP, SANE_FALSE, SANE_TRUE , 1, 143,  2905,  187, 192, 3399, 337, 0.3, 0.4, 192}, -  {MOTOR_HP3670, 150, SANE_FALSE, 150, HALF_STEP, SANE_FALSE, SANE_TRUE , 1,  73,  3429,  305, 192, 3399, 337, 0.3, 0.4, 192}, -  {MOTOR_HP3670, 300, SANE_FALSE, 300, HALF_STEP, SANE_FALSE, SANE_TRUE , 1,  11,  1055,  563, 192, 3399, 337, 0.3, 0.4, 192}, -  {MOTOR_HP3670, 600, SANE_FALSE, 600, FULL_STEP, SANE_FALSE, SANE_TRUE , 0,   3, 10687, 5126, 192, 3399, 337, 0.3, 0.4, 192}, -  {MOTOR_HP3670,1200, SANE_FALSE,1200, HALF_STEP, SANE_FALSE, SANE_TRUE , 0,   3, 15937, 6375, 192, 3399, 337, 0.3, 0.4, 192}, -  {MOTOR_HP3670,2400, SANE_TRUE ,2400, HALF_STEP, SANE_FALSE, SANE_TRUE , 0,   3, 15937, 12750, 192, 3399, 337, 0.3, 0.4, 192}, +  {MOTOR_HP3670,  75, 3,  75, FULL_STEP, SANE_FALSE, SANE_TRUE , 1, 200,  3429,  305, 192, 3399, 337, 0.3, 0.4, 192}, +  {MOTOR_HP3670, 100, 3, 100, HALF_STEP, SANE_FALSE, SANE_TRUE , 1, 143,  2905,  187, 192, 3399, 337, 0.3, 0.4, 192}, +  {MOTOR_HP3670, 150, 3, 150, HALF_STEP, SANE_FALSE, SANE_TRUE , 1,  73,  3429,  305, 192, 3399, 337, 0.3, 0.4, 192}, +  {MOTOR_HP3670, 300, 3, 300, HALF_STEP, SANE_FALSE, SANE_TRUE , 1,  11,  1055,  563, 192, 3399, 337, 0.3, 0.4, 192}, +  {MOTOR_HP3670, 600, 3, 600, FULL_STEP, SANE_FALSE, SANE_TRUE , 0,   3, 10687, 5126, 192, 3399, 337, 0.3, 0.4, 192}, +  {MOTOR_HP3670,1200, 3,1200, HALF_STEP, SANE_FALSE, SANE_TRUE , 0,   3, 15937, 6375, 192, 3399, 337, 0.3, 0.4, 192}, +  {MOTOR_HP3670,2400, 3,2400, HALF_STEP, SANE_FALSE, SANE_TRUE , 0,   3, 15937, 12750, 192, 3399, 337, 0.3, 0.4, 192}, +  {MOTOR_HP3670,  75, 1,  75, FULL_STEP, SANE_FALSE, SANE_TRUE , 1, 200,  3429,  305, 192, 3399, 337, 0.3, 0.4, 192}, +  {MOTOR_HP3670, 100, 1, 100, HALF_STEP, SANE_FALSE, SANE_TRUE , 1, 143,  2905,  187, 192, 3399, 337, 0.3, 0.4, 192}, +  {MOTOR_HP3670, 150, 1, 150, HALF_STEP, SANE_FALSE, SANE_TRUE , 1,  73,  3429,  305, 192, 3399, 337, 0.3, 0.4, 192}, +  {MOTOR_HP3670, 300, 1, 300, HALF_STEP, SANE_FALSE, SANE_TRUE , 1,  11,  1055,  563, 192, 3399, 337, 0.3, 0.4, 192}, +  {MOTOR_HP3670, 600, 1, 600, FULL_STEP, SANE_FALSE, SANE_TRUE , 0,   3, 10687, 5126, 192, 3399, 337, 0.3, 0.4, 192}, +  {MOTOR_HP3670,1200, 1,1200, HALF_STEP, SANE_FALSE, SANE_TRUE , 0,   3, 15937, 6375, 192, 3399, 337, 0.3, 0.4, 192}, +  {MOTOR_HP3670,2400, 3,2400, HALF_STEP, SANE_FALSE, SANE_TRUE , 0,   3, 15937, 12750, 192, 3399, 337, 0.3, 0.4, 192},    /* HP2400/G2410 motor settings base motor dpi = 600 */ -  {MOTOR_HP2400,  50, SANE_TRUE ,  50, FULL_STEP, SANE_FALSE, SANE_TRUE , 63, 120, 8736,   601, 192, 4905,  337, 0.30, 0.4, 192}, -  {MOTOR_HP2400, 100, SANE_TRUE , 100, HALF_STEP, SANE_FALSE, SANE_TRUE,  63, 120, 8736,   601, 192, 4905,  337, 0.30, 0.4, 192}, -  {MOTOR_HP2400, 150, SANE_TRUE , 150, HALF_STEP, SANE_FALSE, SANE_TRUE , 63, 67, 15902,   902, 192, 4905,  337, 0.30, 0.4, 192}, -  {MOTOR_HP2400, 300, SANE_TRUE , 300, HALF_STEP, SANE_FALSE, SANE_TRUE , 63, 32, 16703,  2188, 192, 4905,  337, 0.30, 0.4, 192}, -  {MOTOR_HP2400, 600, SANE_TRUE , 600, FULL_STEP, SANE_FALSE, SANE_TRUE , 63,  3, 18761, 18761, 192, 4905,  627, 0.30, 0.4, 192}, -  {MOTOR_HP2400,1200, SANE_TRUE ,1200, HALF_STEP, SANE_FALSE, SANE_TRUE , 63,  3, 43501, 43501, 192, 4905,  627, 0.30, 0.4, 192}, -  {MOTOR_HP2400,  50, SANE_FALSE,  50, FULL_STEP, SANE_FALSE, SANE_TRUE , 63, 120, 8736,   601, 192, 4905,  337, 0.30, 0.4, 192}, -  {MOTOR_HP2400, 100, SANE_FALSE, 100, HALF_STEP, SANE_FALSE, SANE_TRUE,  63, 120, 8736,   601, 192, 4905,  337, 0.30, 0.4, 192}, -  {MOTOR_HP2400, 150, SANE_FALSE, 150, HALF_STEP, SANE_FALSE, SANE_TRUE , 63, 67, 15902,   902, 192, 4905,  337, 0.30, 0.4, 192}, -  {MOTOR_HP2400, 300, SANE_FALSE, 300, HALF_STEP, SANE_FALSE, SANE_TRUE , 63, 32, 16703,  2188, 192, 4905,  337, 0.30, 0.4, 192}, -  {MOTOR_HP2400, 600, SANE_FALSE, 600, FULL_STEP, SANE_FALSE, SANE_TRUE , 63,  3, 18761, 18761, 192, 4905,  337, 0.30, 0.4, 192}, -  {MOTOR_HP2400,1200, SANE_FALSE,1200, HALF_STEP, SANE_FALSE, SANE_TRUE , 63,  3, 43501, 43501, 192, 4905,  337, 0.30, 0.4, 192}, +  {MOTOR_HP2400,  50, 3,  50, FULL_STEP, SANE_FALSE, SANE_TRUE , 63, 120, 8736,   601, 192, 4905,  337, 0.30, 0.4, 192}, +  {MOTOR_HP2400, 100, 3, 100, HALF_STEP, SANE_FALSE, SANE_TRUE,  63, 120, 8736,   601, 192, 4905,  337, 0.30, 0.4, 192}, +  {MOTOR_HP2400, 150, 3, 150, HALF_STEP, SANE_FALSE, SANE_TRUE , 63, 67, 15902,   902, 192, 4905,  337, 0.30, 0.4, 192}, +  {MOTOR_HP2400, 300, 3, 300, HALF_STEP, SANE_FALSE, SANE_TRUE , 63, 32, 16703,  2188, 192, 4905,  337, 0.30, 0.4, 192}, +  {MOTOR_HP2400, 600, 3, 600, FULL_STEP, SANE_FALSE, SANE_TRUE , 63,  3, 18761, 18761, 192, 4905,  627, 0.30, 0.4, 192}, +  {MOTOR_HP2400,1200, 3,1200, HALF_STEP, SANE_FALSE, SANE_TRUE , 63,  3, 43501, 43501, 192, 4905,  627, 0.30, 0.4, 192}, +  {MOTOR_HP2400,  50, 1,  50, FULL_STEP, SANE_FALSE, SANE_TRUE , 63, 120, 8736,   601, 192, 4905,  337, 0.30, 0.4, 192}, +  {MOTOR_HP2400, 100, 1, 100, HALF_STEP, SANE_FALSE, SANE_TRUE,  63, 120, 8736,   601, 192, 4905,  337, 0.30, 0.4, 192}, +  {MOTOR_HP2400, 150, 1, 150, HALF_STEP, SANE_FALSE, SANE_TRUE , 63, 67, 15902,   902, 192, 4905,  337, 0.30, 0.4, 192}, +  {MOTOR_HP2400, 300, 1, 300, HALF_STEP, SANE_FALSE, SANE_TRUE , 63, 32, 16703,  2188, 192, 4905,  337, 0.30, 0.4, 192}, +  {MOTOR_HP2400, 600, 1, 600, FULL_STEP, SANE_FALSE, SANE_TRUE , 63,  3, 18761, 18761, 192, 4905,  337, 0.30, 0.4, 192}, +  {MOTOR_HP2400,1200, 1,1200, HALF_STEP, SANE_FALSE, SANE_TRUE , 63,  3, 43501, 43501, 192, 4905,  337, 0.30, 0.4, 192},    /* XP 200 motor settings */ -  {MOTOR_XP200,  75,  SANE_TRUE,  75, HALF_STEP, SANE_TRUE , SANE_FALSE, 0, 4,  6000,  2136, 8, 12000, 1200, 0.3, 0.5, 1}, -  {MOTOR_XP200, 100,  SANE_TRUE, 100, HALF_STEP, SANE_TRUE , SANE_FALSE, 0, 4,  6000,  2850, 8, 12000, 1200, 0.3, 0.5, 1}, -  {MOTOR_XP200, 200,  SANE_TRUE, 200, HALF_STEP, SANE_TRUE , SANE_FALSE, 0, 4,  6999,  5700, 8, 12000, 1200, 0.3, 0.5, 1}, -  {MOTOR_XP200, 250,  SANE_TRUE, 250, HALF_STEP, SANE_TRUE , SANE_FALSE, 0, 4,  6999,  6999, 8, 12000, 1200, 0.3, 0.5, 1}, -  {MOTOR_XP200, 300,  SANE_TRUE, 300, HALF_STEP, SANE_TRUE , SANE_FALSE, 0, 4, 13500, 13500, 8, 12000, 1200, 0.3, 0.5, 1}, -  {MOTOR_XP200, 600,  SANE_TRUE, 600, HALF_STEP, SANE_TRUE ,  SANE_TRUE, 0, 4, 31998, 31998, 2, 12000, 1200, 0.3, 0.5, 1}, -  {MOTOR_XP200,  75, SANE_FALSE,  75, HALF_STEP, SANE_TRUE , SANE_FALSE, 0, 4,  6000,  2000, 8, 12000, 1200, 0.3, 0.5, 1}, -  {MOTOR_XP200, 100, SANE_FALSE, 100, HALF_STEP, SANE_TRUE , SANE_FALSE, 0, 4,  6000,  1300, 8, 12000, 1200, 0.3, 0.5, 1}, -  {MOTOR_XP200, 200, SANE_FALSE, 200, HALF_STEP, SANE_TRUE ,  SANE_TRUE, 0, 4,  6000,  3666, 8, 12000, 1200, 0.3, 0.5, 1}, -  {MOTOR_XP200, 300, SANE_FALSE, 300, HALF_STEP, SANE_TRUE , SANE_FALSE, 0, 4,  6500,  6500, 8, 12000, 1200, 0.3, 0.5, 1}, -  {MOTOR_XP200, 600, SANE_FALSE, 600, HALF_STEP, SANE_TRUE ,  SANE_TRUE, 0, 4, 24000, 24000, 2, 12000, 1200, 0.3, 0.5, 1}, +  {MOTOR_XP200,  75, 3,  75, HALF_STEP, SANE_TRUE , SANE_FALSE, 0, 4,  6000,  2136, 8, 12000, 1200, 0.3, 0.5, 1}, +  {MOTOR_XP200, 100, 3, 100, HALF_STEP, SANE_TRUE , SANE_FALSE, 0, 4,  6000,  2850, 8, 12000, 1200, 0.3, 0.5, 1}, +  {MOTOR_XP200, 200, 3, 200, HALF_STEP, SANE_TRUE , SANE_FALSE, 0, 4,  6999,  5700, 8, 12000, 1200, 0.3, 0.5, 1}, +  {MOTOR_XP200, 250, 3, 250, HALF_STEP, SANE_TRUE , SANE_FALSE, 0, 4,  6999,  6999, 8, 12000, 1200, 0.3, 0.5, 1}, +  {MOTOR_XP200, 300, 3, 300, HALF_STEP, SANE_TRUE , SANE_FALSE, 0, 4, 13500, 13500, 8, 12000, 1200, 0.3, 0.5, 1}, +  {MOTOR_XP200, 600, 3, 600, HALF_STEP, SANE_TRUE ,  SANE_TRUE, 0, 4, 31998, 31998, 2, 12000, 1200, 0.3, 0.5, 1}, +  {MOTOR_XP200,  75, 1,  75, HALF_STEP, SANE_TRUE , SANE_FALSE, 0, 4,  6000,  2000, 8, 12000, 1200, 0.3, 0.5, 1}, +  {MOTOR_XP200, 100, 1, 100, HALF_STEP, SANE_TRUE , SANE_FALSE, 0, 4,  6000,  1300, 8, 12000, 1200, 0.3, 0.5, 1}, +  {MOTOR_XP200, 200, 1, 200, HALF_STEP, SANE_TRUE ,  SANE_TRUE, 0, 4,  6000,  3666, 8, 12000, 1200, 0.3, 0.5, 1}, +  {MOTOR_XP200, 300, 1, 300, HALF_STEP, SANE_TRUE , SANE_FALSE, 0, 4,  6500,  6500, 8, 12000, 1200, 0.3, 0.5, 1}, +  {MOTOR_XP200, 600, 1, 600, HALF_STEP, SANE_TRUE ,  SANE_TRUE, 0, 4, 24000, 24000, 2, 12000, 1200, 0.3, 0.5, 1},    /* HP scanjet 2300c */ -  {MOTOR_HP2300,  75,  SANE_TRUE,  75, FULL_STEP, SANE_FALSE, SANE_TRUE , 63, 120,  8139,   560, 120, 4905,  337, 0.3, 0.4, 16}, -  {MOTOR_HP2300, 150,  SANE_TRUE, 150, HALF_STEP, SANE_FALSE, SANE_TRUE , 63,  67,  7903,   543, 120, 4905,  337, 0.3, 0.4, 16}, -  {MOTOR_HP2300, 300,  SANE_TRUE, 300, HALF_STEP, SANE_FALSE, SANE_TRUE , 63,   3,  2175,  1087, 120, 4905,  337, 0.3, 0.4, 16}, -  {MOTOR_HP2300, 600,  SANE_TRUE, 600, HALF_STEP, SANE_FALSE, SANE_TRUE , 63,   3,  8700,  4350, 120, 4905,  337, 0.3, 0.4, 16}, -  {MOTOR_HP2300,1200,  SANE_TRUE,1200, HALF_STEP, SANE_FALSE, SANE_TRUE , 63,   3, 17400,  8700, 120, 4905,  337, 0.3, 0.4, 16}, -  {MOTOR_HP2300,  75, SANE_FALSE,  75, FULL_STEP, SANE_FALSE, SANE_TRUE , 63, 120,  8139,   560, 120, 4905,  337, 0.3, 0.4, 16}, -  {MOTOR_HP2300, 150, SANE_FALSE, 150, HALF_STEP, SANE_FALSE, SANE_TRUE , 63,  67,  7903,   543, 120, 4905,  337, 0.3, 0.4, 16}, -  {MOTOR_HP2300, 300, SANE_FALSE, 300, HALF_STEP, SANE_FALSE, SANE_TRUE , 63,   3,  2175,  1087, 120, 4905,  337, 0.3, 0.4, 16}, -  {MOTOR_HP2300, 600, SANE_FALSE, 600, HALF_STEP, SANE_FALSE, SANE_TRUE , 63,   3,  8700,  4350, 120, 4905,  337, 0.3, 0.4, 16}, -  {MOTOR_HP2300,1200, SANE_FALSE,1200, HALF_STEP, SANE_FALSE, SANE_TRUE , 63,   3, 17400,  8700, 120, 4905,  337, 0.3, 0.4, 16}, +  {MOTOR_HP2300,  75, 3,  75, FULL_STEP, SANE_FALSE, SANE_TRUE , 63, 120,  8139,   560, 120, 4905,  337, 0.3, 0.4, 16}, +  {MOTOR_HP2300, 150, 3, 150, HALF_STEP, SANE_FALSE, SANE_TRUE , 63,  67,  7903,   543, 120, 4905,  337, 0.3, 0.4, 16}, +  {MOTOR_HP2300, 300, 3, 300, HALF_STEP, SANE_FALSE, SANE_TRUE , 63,   3,  2175,  1087, 120, 4905,  337, 0.3, 0.4, 16}, +  {MOTOR_HP2300, 600, 3, 600, HALF_STEP, SANE_FALSE, SANE_TRUE , 63,   3,  8700,  4350, 120, 4905,  337, 0.3, 0.4, 16}, +  {MOTOR_HP2300,1200, 3,1200, HALF_STEP, SANE_FALSE, SANE_TRUE , 63,   3, 17400,  8700, 120, 4905,  337, 0.3, 0.4, 16}, +  {MOTOR_HP2300,  75, 1,  75, FULL_STEP, SANE_FALSE, SANE_TRUE , 63, 120,  8139,   560, 120, 4905,  337, 0.3, 0.4, 16}, +  {MOTOR_HP2300, 150, 1, 150, HALF_STEP, SANE_FALSE, SANE_TRUE , 63,  67,  7903,   543, 120, 4905,  337, 0.3, 0.4, 16}, +  {MOTOR_HP2300, 300, 1, 300, HALF_STEP, SANE_FALSE, SANE_TRUE , 63,   3,  2175,  1087, 120, 4905,  337, 0.3, 0.4, 16}, +  {MOTOR_HP2300, 600, 1, 600, HALF_STEP, SANE_FALSE, SANE_TRUE , 63,   3,  8700,  4350, 120, 4905,  337, 0.3, 0.4, 16}, +  {MOTOR_HP2300,1200, 1,1200, HALF_STEP, SANE_FALSE, SANE_TRUE , 63,   3, 17400,  8700, 120, 4905,  337, 0.3, 0.4, 16},    /* non half ccd settings for 300 dpi -  {MOTOR_HP2300, 300,  SANE_TRUE, 300, HALF_STEP, SANE_FALSE, SANE_TRUE , 63,  44,  5386,  2175, 120, 4905,  337, 0.3, 0.4, 16}, -  {MOTOR_HP2300, 300, SANE_FALSE, 300, HALF_STEP, SANE_FALSE, SANE_TRUE , 63,  44,  5386,  2175, 120, 4905,  337, 0.3, 0.4, 16}, +  {MOTOR_HP2300, 300, 3, 300, HALF_STEP, SANE_FALSE, SANE_TRUE , 63,  44,  5386,  2175, 120, 4905,  337, 0.3, 0.4, 16}, +  {MOTOR_HP2300, 300, 1, 300, HALF_STEP, SANE_FALSE, SANE_TRUE , 63,  44,  5386,  2175, 120, 4905,  337, 0.3, 0.4, 16},    */    /* MD5345/6471 motor settings */    /* vfinal=(exposure/(1200/dpi))/step_type */ -  {MOTOR_5345,    50, SANE_TRUE ,  50, HALF_STEP  , SANE_FALSE, SANE_TRUE , 2, 255,  2500,   250, 255, 2000,  300, 0.3, 0.4, 64}, -  {MOTOR_5345,    75, SANE_TRUE ,  75, HALF_STEP  , SANE_FALSE, SANE_TRUE , 2, 255,  2500,   343, 255, 2000,  300, 0.3, 0.4, 64}, -  {MOTOR_5345,   100, SANE_TRUE , 100, HALF_STEP  , SANE_FALSE, SANE_TRUE , 2, 255,  2500,   458, 255, 2000,  300, 0.3, 0.4, 64}, -  {MOTOR_5345,   150, SANE_TRUE , 150, HALF_STEP  , SANE_FALSE, SANE_TRUE , 2, 255,  2500,   687, 255, 2000,  300, 0.3, 0.4, 64}, -  {MOTOR_5345,   200, SANE_TRUE , 200, HALF_STEP  , SANE_FALSE, SANE_TRUE , 2, 255,  2500,   916, 255, 2000,  300, 0.3, 0.4, 64}, -  {MOTOR_5345,   300, SANE_TRUE,  300, HALF_STEP  , SANE_FALSE, SANE_TRUE , 2, 255,  2500,  1375, 255, 2000,  300, 0.3, 0.4, 64}, -  {MOTOR_5345,   400, SANE_TRUE,  400, HALF_STEP  , SANE_FALSE, SANE_TRUE , 0,  32,  2000,  1833, 255, 2000,  300, 0.3, 0.4, 32}, -  {MOTOR_5345,   500, SANE_TRUE,  500, HALF_STEP  , SANE_FALSE, SANE_TRUE , 0,  32,  2291,  2291, 255, 2000,  300, 0.3, 0.4, 32}, -  {MOTOR_5345,   600, SANE_TRUE,  600, HALF_STEP  , SANE_FALSE, SANE_TRUE , 0,  32,  2750,  2750, 255, 2000,  300, 0.3, 0.4, 32}, -  {MOTOR_5345,  1200, SANE_TRUE ,1200, QUATER_STEP, SANE_FALSE, SANE_TRUE , 0,  16,  2750,  2750, 255, 2000,  300, 0.3, 0.4, 146}, -  {MOTOR_5345,  2400, SANE_TRUE ,2400, QUATER_STEP, SANE_FALSE, SANE_TRUE , 0,  16,  5500,  5500, 255, 2000,  300, 0.3, 0.4, 146}, -  {MOTOR_5345,    50, SANE_FALSE,  50, HALF_STEP  , SANE_FALSE, SANE_TRUE , 2, 255,  2500,   250, 255, 2000,  300, 0.3, 0.4, 64}, -  {MOTOR_5345,    75, SANE_FALSE,  75, HALF_STEP  , SANE_FALSE, SANE_TRUE , 2, 255,  2500,   343, 255, 2000,  300, 0.3, 0.4, 64}, -  {MOTOR_5345,   100, SANE_FALSE, 100, HALF_STEP  , SANE_FALSE, SANE_TRUE , 2, 255,  2500,   458, 255, 2000,  300, 0.3, 0.4, 64}, -  {MOTOR_5345,   150, SANE_FALSE, 150, HALF_STEP  , SANE_FALSE, SANE_TRUE , 2, 255,  2500,   687, 255, 2000,  300, 0.3, 0.4, 64}, -  {MOTOR_5345,   200, SANE_FALSE, 200, HALF_STEP  , SANE_FALSE, SANE_TRUE , 2, 255,  2500,   916, 255, 2000,  300, 0.3, 0.4, 64}, -  {MOTOR_5345,   300, SANE_FALSE, 300, HALF_STEP  , SANE_FALSE, SANE_TRUE , 2, 255,  2500,  1375, 255, 2000,  300, 0.3, 0.4, 64}, -  {MOTOR_5345,   400, SANE_FALSE, 400, HALF_STEP  , SANE_FALSE, SANE_TRUE , 0,  32,  2000,  1833, 255, 2000,  300, 0.3, 0.4, 32}, -  {MOTOR_5345,   500, SANE_FALSE, 500, HALF_STEP  , SANE_FALSE, SANE_TRUE , 0,  32,  2291,  2291, 255, 2000,  300, 0.3, 0.4, 32}, -  {MOTOR_5345,   600, SANE_FALSE, 600, HALF_STEP  , SANE_FALSE, SANE_TRUE , 0,  32,  2750,  2750, 255, 2000,  300, 0.3, 0.4, 32}, -  {MOTOR_5345,  1200, SANE_FALSE,1200, QUATER_STEP, SANE_FALSE, SANE_TRUE , 0,  16,  2750,  2750, 255, 2000,  300, 0.3, 0.4, 146}, -  {MOTOR_5345,  2400, SANE_FALSE,2400, QUATER_STEP, SANE_FALSE, SANE_TRUE , 0,  16,  5500,  5500, 255, 2000,  300, 0.3, 0.4, 146}, /* 5500 guessed */ +  {MOTOR_5345,    50, 3,  50, HALF_STEP  , SANE_FALSE, SANE_TRUE , 2, 255,  2500,   250, 255, 2000,  300, 0.3, 0.4, 64}, +  {MOTOR_5345,    75, 3,  75, HALF_STEP  , SANE_FALSE, SANE_TRUE , 2, 255,  2500,   343, 255, 2000,  300, 0.3, 0.4, 64}, +  {MOTOR_5345,   100, 3, 100, HALF_STEP  , SANE_FALSE, SANE_TRUE , 2, 255,  2500,   458, 255, 2000,  300, 0.3, 0.4, 64}, +  {MOTOR_5345,   150, 3, 150, HALF_STEP  , SANE_FALSE, SANE_TRUE , 2, 255,  2500,   687, 255, 2000,  300, 0.3, 0.4, 64}, +  {MOTOR_5345,   200, 3, 200, HALF_STEP  , SANE_FALSE, SANE_TRUE , 2, 255,  2500,   916, 255, 2000,  300, 0.3, 0.4, 64}, +  {MOTOR_5345,   300, 3, 300, HALF_STEP  , SANE_FALSE, SANE_TRUE , 2, 255,  2500,  1375, 255, 2000,  300, 0.3, 0.4, 64}, +  {MOTOR_5345,   400, 3, 400, HALF_STEP  , SANE_FALSE, SANE_TRUE , 0,  32,  2000,  1833, 255, 2000,  300, 0.3, 0.4, 32}, +  {MOTOR_5345,   500, 3, 500, HALF_STEP  , SANE_FALSE, SANE_TRUE , 0,  32,  2291,  2291, 255, 2000,  300, 0.3, 0.4, 32}, +  {MOTOR_5345,   600, 3, 600, HALF_STEP  , SANE_FALSE, SANE_TRUE , 0,  32,  2750,  2750, 255, 2000,  300, 0.3, 0.4, 32}, +  {MOTOR_5345,  1200, 3,1200, QUATER_STEP, SANE_FALSE, SANE_TRUE , 0,  16,  2750,  2750, 255, 2000,  300, 0.3, 0.4, 146}, +  {MOTOR_5345,  2400, 3,2400, QUATER_STEP, SANE_FALSE, SANE_TRUE , 0,  16,  5500,  5500, 255, 2000,  300, 0.3, 0.4, 146}, +  {MOTOR_5345,    50, 1,  50, HALF_STEP  , SANE_FALSE, SANE_TRUE , 2, 255,  2500,   250, 255, 2000,  300, 0.3, 0.4, 64}, +  {MOTOR_5345,    75, 1,  75, HALF_STEP  , SANE_FALSE, SANE_TRUE , 2, 255,  2500,   343, 255, 2000,  300, 0.3, 0.4, 64}, +  {MOTOR_5345,   100, 1, 100, HALF_STEP  , SANE_FALSE, SANE_TRUE , 2, 255,  2500,   458, 255, 2000,  300, 0.3, 0.4, 64}, +  {MOTOR_5345,   150, 1, 150, HALF_STEP  , SANE_FALSE, SANE_TRUE , 2, 255,  2500,   687, 255, 2000,  300, 0.3, 0.4, 64}, +  {MOTOR_5345,   200, 1, 200, HALF_STEP  , SANE_FALSE, SANE_TRUE , 2, 255,  2500,   916, 255, 2000,  300, 0.3, 0.4, 64}, +  {MOTOR_5345,   300, 1, 300, HALF_STEP  , SANE_FALSE, SANE_TRUE , 2, 255,  2500,  1375, 255, 2000,  300, 0.3, 0.4, 64}, +  {MOTOR_5345,   400, 1, 400, HALF_STEP  , SANE_FALSE, SANE_TRUE , 0,  32,  2000,  1833, 255, 2000,  300, 0.3, 0.4, 32}, +  {MOTOR_5345,   500, 1, 500, HALF_STEP  , SANE_FALSE, SANE_TRUE , 0,  32,  2291,  2291, 255, 2000,  300, 0.3, 0.4, 32}, +  {MOTOR_5345,   600, 1, 600, HALF_STEP  , SANE_FALSE, SANE_TRUE , 0,  32,  2750,  2750, 255, 2000,  300, 0.3, 0.4, 32}, +  {MOTOR_5345,  1200, 1,1200, QUATER_STEP, SANE_FALSE, SANE_TRUE , 0,  16,  2750,  2750, 255, 2000,  300, 0.3, 0.4, 146}, +  {MOTOR_5345,  2400, 1,2400, QUATER_STEP, SANE_FALSE, SANE_TRUE , 0,  16,  5500,  5500, 255, 2000,  300, 0.3, 0.4, 146}, /* 5500 guessed */  };  /** @@ -693,4 +592,3 @@ static Sensor_Settings sensor_settings[] = {     {0x0f, 0x13, 0x17, 0x03, 0x07, 0x0b, 0x83} /* half ccd settings */    },  }; -/* *INDENT-ON* */ | 
