kopia lustrzana https://gitlab.com/sane-project/backends
				
				
				
			add X74 support to lexmark backend
- patch from "Torsten Houwaart" <ToHo@gmx.de>merge-requests/1/head
							rodzic
							
								
									162da73c00
								
							
						
					
					
						commit
						91832dccb3
					
				| 
						 | 
				
			
			@ -1,3 +1,7 @@
 | 
			
		|||
2010-12-24 Stéphane Voltz <stef.dev@free.fr>
 | 
			
		||||
	* backend/lexmark*.[ch]: applied X74 support patch by Torsten Houwaart
 | 
			
		||||
	<ToHo@gmx.de>
 | 
			
		||||
 | 
			
		||||
2010-12-23 Mike Kelly <mike@piratehaven.org>
 | 
			
		||||
	* backends/avision.[ch]:
 | 
			
		||||
	- Bumped build number to 293.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,7 +2,8 @@
 | 
			
		|||
 | 
			
		||||
   (C) 2003-2004 Lexmark International, Inc. (Original Source code)
 | 
			
		||||
   (C) 2005 Fred Odendaal
 | 
			
		||||
   (C) 2006-2009 Stéphane Voltz <stef.dev@free.fr>
 | 
			
		||||
   (C) 2006-2010 Stéphane Voltz <stef.dev@free.fr>
 | 
			
		||||
   (C) 2010 "Torsten Houwaart" <ToHo@gmx.de> X74 support
 | 
			
		||||
   
 | 
			
		||||
   This file is part of the SANE package.
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -47,7 +48,7 @@
 | 
			
		|||
#include "lexmark.h"
 | 
			
		||||
 | 
			
		||||
#define LEXMARK_CONFIG_FILE "lexmark.conf"
 | 
			
		||||
#define BUILD 21
 | 
			
		||||
#define BUILD 30
 | 
			
		||||
#define MAX_OPTION_STRING_SIZE 255
 | 
			
		||||
 | 
			
		||||
static Lexmark_Device *first_lexmark_device = 0;
 | 
			
		||||
| 
						 | 
				
			
			@ -78,6 +79,10 @@ static SANE_Int x1200_dpi_list[] = {
 | 
			
		|||
  4, 75, 150, 300, 600
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
static SANE_Int x74_dpi_list[] = {
 | 
			
		||||
  75, 150, 300, 600
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
static SANE_Range threshold_range = {
 | 
			
		||||
  SANE_FIX (0.0),		/* minimum */
 | 
			
		||||
  SANE_FIX (100.0),		/* maximum */
 | 
			
		||||
| 
						 | 
				
			
			@ -103,6 +108,7 @@ static SANE_Range x_range = {
 | 
			
		|||
static SANE_Range y_range = {
 | 
			
		||||
  0,				/* minimum */
 | 
			
		||||
  6848,				/* maximum */
 | 
			
		||||
  /* 7032, for X74 */
 | 
			
		||||
  8				/* quantization */
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -170,6 +176,9 @@ init_options (Lexmark_Device * dev)
 | 
			
		|||
    case X1200_USB2_SENSOR:
 | 
			
		||||
      od->constraint.word_list = x1200_dpi_list;
 | 
			
		||||
      break;
 | 
			
		||||
    case X74_SENSOR:
 | 
			
		||||
      od->constraint.word_list = x74_dpi_list;
 | 
			
		||||
      break;
 | 
			
		||||
    }
 | 
			
		||||
  dev->val[OPT_RESOLUTION].w = 75;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -369,7 +378,7 @@ attachLexmark (SANE_String_Const devname)
 | 
			
		|||
  status = SANE_STATUS_GOOD;
 | 
			
		||||
  /* put the id of the model you want to fake here */
 | 
			
		||||
  vendor = 0x043d;
 | 
			
		||||
  product = 0x007c;	/* X11xx */
 | 
			
		||||
  product = 0x007c;		/* X11xx */
 | 
			
		||||
  variant = 0xb2;
 | 
			
		||||
#else
 | 
			
		||||
  variant = 0;
 | 
			
		||||
| 
						 | 
				
			
			@ -392,10 +401,9 @@ attachLexmark (SANE_String_Const devname)
 | 
			
		|||
  DBG (2, "attachLexmark: testing device `%s': 0x%04x:0x%04x, variant=%d\n",
 | 
			
		||||
       devname, vendor, product, variant);
 | 
			
		||||
  if (sanei_lexmark_low_assign_model (lexmark_device,
 | 
			
		||||
			  		devname,
 | 
			
		||||
					vendor,
 | 
			
		||||
					product,
 | 
			
		||||
					variant) != SANE_STATUS_GOOD)
 | 
			
		||||
				      devname,
 | 
			
		||||
				      vendor,
 | 
			
		||||
				      product, variant) != SANE_STATUS_GOOD)
 | 
			
		||||
    {
 | 
			
		||||
      DBG (2, "attachLexmark: unsupported device `%s': 0x%04x:0x%04x\n",
 | 
			
		||||
	   devname, vendor, product);
 | 
			
		||||
| 
						 | 
				
			
			@ -444,7 +452,8 @@ sane_init (SANE_Int * version_code, SANE_Auth_Callback authorize)
 | 
			
		|||
 | 
			
		||||
  DBG_INIT ();
 | 
			
		||||
 | 
			
		||||
  DBG (1, "SANE Lexmark backend version %d.%d.%d-devel\n", SANE_CURRENT_MAJOR, V_MINOR, BUILD);
 | 
			
		||||
  DBG (1, "SANE Lexmark backend version %d.%d.%d-devel\n", SANE_CURRENT_MAJOR,
 | 
			
		||||
       V_MINOR, BUILD);
 | 
			
		||||
 | 
			
		||||
  auth_callback = authorize;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1106,18 +1115,19 @@ sane_start (SANE_Handle handle)
 | 
			
		|||
      /* We may have been rewound too far, so move forward the distance from
 | 
			
		||||
         the edge to the home position */
 | 
			
		||||
      sanei_lexmark_low_move_fwd (0x01a8, lexmark_device,
 | 
			
		||||
				    lexmark_device->shadow_regs);
 | 
			
		||||
				  lexmark_device->shadow_regs);
 | 
			
		||||
 | 
			
		||||
      /* Scan backwards until we find home */
 | 
			
		||||
      sanei_lexmark_low_search_home_bwd (lexmark_device);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  /* do calibration before offset detection , use sensor max dpi, not motor's one */
 | 
			
		||||
  resolution = lexmark_device->val[OPT_RESOLUTION].w;
 | 
			
		||||
  if(resolution > 600)
 | 
			
		||||
  {
 | 
			
		||||
	  resolution = 600;
 | 
			
		||||
  }
 | 
			
		||||
  if (resolution > 600)
 | 
			
		||||
    {
 | 
			
		||||
      resolution = 600;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  sanei_lexmark_low_set_scan_regs (lexmark_device, resolution, 0, SANE_FALSE);
 | 
			
		||||
  status = sanei_lexmark_low_calibration (lexmark_device);
 | 
			
		||||
  if (status != SANE_STATUS_GOOD)
 | 
			
		||||
| 
						 | 
				
			
			@ -1138,8 +1148,10 @@ sane_start (SANE_Handle handle)
 | 
			
		|||
  /* Set the shadow registers for scan with the options (resolution, mode, 
 | 
			
		||||
     size) set in the front end. Pass the offset so we can get the vert.
 | 
			
		||||
     start. */
 | 
			
		||||
  sanei_lexmark_low_set_scan_regs (lexmark_device, lexmark_device->val[OPT_RESOLUTION].w, offset, SANE_TRUE);
 | 
			
		||||
  
 | 
			
		||||
  sanei_lexmark_low_set_scan_regs (lexmark_device,
 | 
			
		||||
				   lexmark_device->val[OPT_RESOLUTION].w,
 | 
			
		||||
				   offset, SANE_TRUE);
 | 
			
		||||
 | 
			
		||||
  if (sanei_lexmark_low_start_scan (lexmark_device) == SANE_STATUS_GOOD)
 | 
			
		||||
    {
 | 
			
		||||
      DBG (2, "sane_start: scan started\n");
 | 
			
		||||
| 
						 | 
				
			
			@ -1202,7 +1214,7 @@ sane_read (SANE_Handle handle, SANE_Byte * data,
 | 
			
		|||
    return SANE_STATUS_INVAL;
 | 
			
		||||
 | 
			
		||||
  bytes_read = sanei_lexmark_low_read_scan_data (data, max_length,
 | 
			
		||||
						   lexmark_device);
 | 
			
		||||
						 lexmark_device);
 | 
			
		||||
  if (bytes_read < 0)
 | 
			
		||||
    return SANE_STATUS_IO_ERROR;
 | 
			
		||||
  else if (bytes_read == 0)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,3 +4,5 @@ usb 0x043d 0x007c
 | 
			
		|||
usb 0x043d 0x007d
 | 
			
		||||
# Dell A920
 | 
			
		||||
usb 0x413c 0x5105
 | 
			
		||||
# X74
 | 
			
		||||
usb 0x43d 0x0060
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,8 +1,9 @@
 | 
			
		|||
/**************************************************************************
 | 
			
		||||
/************************************************************************
 | 
			
		||||
   lexmark.h - SANE library for Lexmark scanners.
 | 
			
		||||
   Copyright (C) 2003-2004 Lexmark International, Inc. (original source)
 | 
			
		||||
   Copyright (C) 2005 Fred Odendaal
 | 
			
		||||
   Copyright (C) 2006-2009 Stéphane Voltz	<stef.dev@free.fr>
 | 
			
		||||
   Copyright (C) 2006-2010 Stéphane Voltz	<stef.dev@free.fr>
 | 
			
		||||
   Copyright (C) 2010 "Torsten Houwaart" <ToHo@gmx.de> X74 support
 | 
			
		||||
 | 
			
		||||
   This file is part of the SANE package.
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -109,6 +110,8 @@ typedef struct Lexmark_Model
 | 
			
		|||
  SANE_String_Const model;
 | 
			
		||||
  SANE_Int motor_type;
 | 
			
		||||
  SANE_Int sensor_type;
 | 
			
		||||
  SANE_Int HomeEdgePoint1;
 | 
			
		||||
  SANE_Int HomeEdgePoint2;
 | 
			
		||||
} Lexmark_Model;
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
| 
						 | 
				
			
			@ -118,7 +121,7 @@ typedef struct Lexmark_Sensor
 | 
			
		|||
{
 | 
			
		||||
  SANE_Int id;
 | 
			
		||||
  SANE_Int offset_startx;	/* starting x for offset calibration */
 | 
			
		||||
  SANE_Int offset_endx;	        /* end x for offset calibration */
 | 
			
		||||
  SANE_Int offset_endx;		/* end x for offset calibration */
 | 
			
		||||
  SANE_Int offset_threshold;	/* target threshold for offset calibration */
 | 
			
		||||
  SANE_Int xoffset;		/* number of unusable pixels on the start of the sensor */
 | 
			
		||||
  SANE_Int default_gain;	/* value of the default gain for a scan */
 | 
			
		||||
| 
						 | 
				
			
			@ -130,8 +133,8 @@ typedef struct Lexmark_Sensor
 | 
			
		|||
  SANE_Int green_shading_target;
 | 
			
		||||
  SANE_Int blue_shading_target;
 | 
			
		||||
  SANE_Int gray_shading_target;
 | 
			
		||||
  SANE_Int offset_fallback;		/* offset to use in case offset calibration fails */
 | 
			
		||||
  SANE_Int gain_fallback;		/* gain to use in case offset calibration fails */
 | 
			
		||||
  SANE_Int offset_fallback;	/* offset to use in case offset calibration fails */
 | 
			
		||||
  SANE_Int gain_fallback;	/* gain to use in case offset calibration fails */
 | 
			
		||||
} Lexmark_Sensor;
 | 
			
		||||
 | 
			
		||||
typedef enum
 | 
			
		||||
| 
						 | 
				
			
			@ -233,12 +236,14 @@ Lexmark_Device;
 | 
			
		|||
/* motors and sensors type defines */
 | 
			
		||||
#define X1100_MOTOR	1
 | 
			
		||||
#define A920_MOTOR	2
 | 
			
		||||
#define X74_MOTOR	3
 | 
			
		||||
 | 
			
		||||
#define X1100_B2_SENSOR 3
 | 
			
		||||
#define A920_SENSOR     4
 | 
			
		||||
#define X1100_2C_SENSOR 5
 | 
			
		||||
#define X1200_SENSOR    6 	/* X1200 on USB 1.0 */
 | 
			
		||||
#define X1200_USB2_SENSOR 7 	/* X1200 on USB 2.0 */
 | 
			
		||||
#define X1100_B2_SENSOR 4
 | 
			
		||||
#define A920_SENSOR     5
 | 
			
		||||
#define X1100_2C_SENSOR 6
 | 
			
		||||
#define X1200_SENSOR    7	/* X1200 on USB 1.0 */
 | 
			
		||||
#define X1200_USB2_SENSOR 8	/* X1200 on USB 2.0 */
 | 
			
		||||
#define X74_SENSOR	9
 | 
			
		||||
 | 
			
		||||
/* Non-static Function Proto-types (called by lexmark.c) */
 | 
			
		||||
SANE_Status sanei_lexmark_low_init (Lexmark_Device * dev);
 | 
			
		||||
| 
						 | 
				
			
			@ -247,20 +252,22 @@ SANE_Status sanei_lexmark_low_open_device (Lexmark_Device * dev);
 | 
			
		|||
void sanei_lexmark_low_close_device (Lexmark_Device * dev);
 | 
			
		||||
SANE_Bool sanei_lexmark_low_search_home_fwd (Lexmark_Device * dev);
 | 
			
		||||
void sanei_lexmark_low_move_fwd (SANE_Int distance, Lexmark_Device * dev,
 | 
			
		||||
				   SANE_Byte * regs);
 | 
			
		||||
				 SANE_Byte * regs);
 | 
			
		||||
SANE_Bool sanei_lexmark_low_X74_search_home (Lexmark_Device * dev,
 | 
			
		||||
					     SANE_Byte * regs);
 | 
			
		||||
SANE_Bool sanei_lexmark_low_search_home_bwd (Lexmark_Device * dev);
 | 
			
		||||
SANE_Int sanei_lexmark_low_find_start_line (Lexmark_Device * dev);
 | 
			
		||||
SANE_Status sanei_lexmark_low_set_scan_regs (Lexmark_Device * dev,
 | 
			
		||||
					       SANE_Int resolution,
 | 
			
		||||
					       SANE_Int offset,
 | 
			
		||||
					       SANE_Bool calibrated);
 | 
			
		||||
					     SANE_Int resolution,
 | 
			
		||||
					     SANE_Int offset,
 | 
			
		||||
					     SANE_Bool calibrated);
 | 
			
		||||
SANE_Status sanei_lexmark_low_start_scan (Lexmark_Device * dev);
 | 
			
		||||
long sanei_lexmark_low_read_scan_data (SANE_Byte * data, SANE_Int size,
 | 
			
		||||
					 Lexmark_Device * dev);
 | 
			
		||||
				       Lexmark_Device * dev);
 | 
			
		||||
SANE_Status sanei_lexmark_low_assign_model (Lexmark_Device * dev,
 | 
			
		||||
					      SANE_String_Const devname, SANE_Int vendor,
 | 
			
		||||
					      SANE_Int product,
 | 
			
		||||
					      SANE_Byte mainboard);
 | 
			
		||||
					    SANE_String_Const devname,
 | 
			
		||||
					    SANE_Int vendor, SANE_Int product,
 | 
			
		||||
					    SANE_Byte mainboard);
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * scanner calibration functions
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
										
											
												Plik diff jest za duży
												Load Diff
											
										
									
								
							| 
						 | 
				
			
			@ -1,6 +1,7 @@
 | 
			
		|||
/* sane - Scanner Access Now Easy.
 | 
			
		||||
 | 
			
		||||
   Copyright (C) 2006-2007 Stéphane Voltz <stef.dev@free.fr>
 | 
			
		||||
   Copyright (C) 2006-2010 Stéphane Voltz <stef.dev@free.fr>
 | 
			
		||||
   Copyright (C) 2010 "Torsten Houwaart" <ToHo@gmx.de> X74 support
 | 
			
		||||
 | 
			
		||||
   This file is part of the SANE package.
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -49,8 +50,10 @@ static Lexmark_Model model_list[] = {
 | 
			
		|||
   "Lexmark X1100",		/* name */
 | 
			
		||||
   "Lexmark",			/* vendor */
 | 
			
		||||
   "X1100/rev. B2",		/* model */
 | 
			
		||||
   X1100_MOTOR,			/* X1100 series has 2 sensors */
 | 
			
		||||
   X1100_B2_SENSOR},
 | 
			
		||||
   /* X1100 series has 2 sensors */
 | 
			
		||||
   X1100_B2_SENSOR,
 | 
			
		||||
   1235,			/* first x-coordinate of Home Point */
 | 
			
		||||
   1258},			/* second x-coordinate of Home Point */
 | 
			
		||||
  {
 | 
			
		||||
   0x043d,			/* vendor id */
 | 
			
		||||
   0x007c,			/* product id */
 | 
			
		||||
| 
						 | 
				
			
			@ -60,7 +63,9 @@ static Lexmark_Model model_list[] = {
 | 
			
		|||
   "X1100/rev. 2C",		/* model */
 | 
			
		||||
   A920_MOTOR,			/* X1100 series has 2 sensors, 2C or B2. It
 | 
			
		||||
				   is detected at sane_open() */
 | 
			
		||||
   X1100_2C_SENSOR},
 | 
			
		||||
   X1100_2C_SENSOR,
 | 
			
		||||
   1235,			/* first x-coordinate of Home Point */
 | 
			
		||||
   1258},			/* second x-coordinate of Home Point */
 | 
			
		||||
  {
 | 
			
		||||
   0x413c,			/* vendor id */
 | 
			
		||||
   0x5105,			/* product id */
 | 
			
		||||
| 
						 | 
				
			
			@ -69,7 +74,9 @@ static Lexmark_Model model_list[] = {
 | 
			
		|||
   "Dell",			/* vendor */
 | 
			
		||||
   "A920",			/* model */
 | 
			
		||||
   A920_MOTOR,
 | 
			
		||||
   A920_SENSOR},
 | 
			
		||||
   A920_SENSOR,
 | 
			
		||||
   1235,			/* first x-coordinate of Home Point */
 | 
			
		||||
   1258},			/* second x-coordinate of Home Point */
 | 
			
		||||
  {
 | 
			
		||||
   0x043d,			/* vendor id */
 | 
			
		||||
   0x007d,			/* product id */
 | 
			
		||||
| 
						 | 
				
			
			@ -78,7 +85,9 @@ static Lexmark_Model model_list[] = {
 | 
			
		|||
   "Lexmark",			/* vendor */
 | 
			
		||||
   "X1200/USB1.1",		/* model */
 | 
			
		||||
   A920_MOTOR,
 | 
			
		||||
   X1200_SENSOR},
 | 
			
		||||
   X1200_SENSOR,
 | 
			
		||||
   1235,			/* first x-coordinate of Home Point */
 | 
			
		||||
   1258},			/* second x-coordinate of Home Point */
 | 
			
		||||
  {
 | 
			
		||||
   0x043d,			/* vendor id */
 | 
			
		||||
   0x007d,			/* product id */
 | 
			
		||||
| 
						 | 
				
			
			@ -87,7 +96,20 @@ static Lexmark_Model model_list[] = {
 | 
			
		|||
   "Lexmark",			/* vendor */
 | 
			
		||||
   "X1200/USB2.0",		/* model */
 | 
			
		||||
   A920_MOTOR,
 | 
			
		||||
   X1200_USB2_SENSOR},
 | 
			
		||||
   X1200_USB2_SENSOR,
 | 
			
		||||
   1235,			/* first x-coordinate of Home Point */
 | 
			
		||||
   1258},			/* second x-coordinate of Home Point */
 | 
			
		||||
  {
 | 
			
		||||
   0x043d,			/* vendor id */
 | 
			
		||||
   0x0060,			/* product id */
 | 
			
		||||
   0x00,			/* submodel id */
 | 
			
		||||
   "Lexmark X74",		/* name */
 | 
			
		||||
   "Lexmark",			/* vendor */
 | 
			
		||||
   "X74",			/* model */
 | 
			
		||||
   X74_MOTOR,
 | 
			
		||||
   X74_SENSOR,
 | 
			
		||||
   1222,			/* first x-coordinate of Home Point */
 | 
			
		||||
   1322},			/* second x-coordinate of Home Point */
 | 
			
		||||
  {				/* termination model, must be last */
 | 
			
		||||
   0, 0, 0, NULL, NULL, NULL, 0, 0}
 | 
			
		||||
   0, 0, 0, NULL, NULL, NULL, 0, 0, 0, 0}
 | 
			
		||||
};				/* end models description */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,6 +1,7 @@
 | 
			
		|||
/* sane - Scanner Access Now Easy.
 | 
			
		||||
 | 
			
		||||
   Copyright (C) 2006-2007 Stéphane Voltz <stef.dev@free.fr>
 | 
			
		||||
   Copyright (C) 2006-2010 Stéphane Voltz <stef.dev@free.fr>
 | 
			
		||||
   Copyright (C) 2010 "Torsten Houwaart" <ToHo@gmx.de> X74 support
 | 
			
		||||
 | 
			
		||||
   This file is part of the SANE package.
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -45,7 +46,7 @@ static Lexmark_Sensor sensor_list[] = {
 | 
			
		|||
  {
 | 
			
		||||
   X1100_B2_SENSOR,
 | 
			
		||||
   /* start x, end x and target average for offset calibration */
 | 
			
		||||
   48,80,6,
 | 
			
		||||
   48, 80, 6,
 | 
			
		||||
   /* usable pixel sensor startx */
 | 
			
		||||
   106,
 | 
			
		||||
   /* default gain */
 | 
			
		||||
| 
						 | 
				
			
			@ -55,12 +56,11 @@ static Lexmark_Sensor sensor_list[] = {
 | 
			
		|||
   /* shading correction targets */
 | 
			
		||||
   260, 260, 260, 260,
 | 
			
		||||
   /* offset and gain fallback */
 | 
			
		||||
   0x70, 17
 | 
			
		||||
  },
 | 
			
		||||
   0x70, 17},
 | 
			
		||||
  {
 | 
			
		||||
   X1100_2C_SENSOR,
 | 
			
		||||
   /* start x, end x and target average for offset calibration */
 | 
			
		||||
   48,80,12,
 | 
			
		||||
   48, 80, 12,
 | 
			
		||||
   /* usable pixel sensor startx */
 | 
			
		||||
   106,
 | 
			
		||||
   /* default gain */
 | 
			
		||||
| 
						 | 
				
			
			@ -70,12 +70,11 @@ static Lexmark_Sensor sensor_list[] = {
 | 
			
		|||
   /* shading correction */
 | 
			
		||||
   260, 260, 260, 260,
 | 
			
		||||
   /* offset and gain fallback */
 | 
			
		||||
   0x70, 11
 | 
			
		||||
  },
 | 
			
		||||
  { /* USB 1.1 settings */
 | 
			
		||||
   0x70, 11},
 | 
			
		||||
  {				/* USB 1.1 settings */
 | 
			
		||||
   X1200_SENSOR,
 | 
			
		||||
   /* start x, end x and target average for offset calibration */
 | 
			
		||||
   32,64,15,
 | 
			
		||||
   32, 64, 15,
 | 
			
		||||
   /* usable pixel sensor startx */
 | 
			
		||||
   136,
 | 
			
		||||
   /* default gain */
 | 
			
		||||
| 
						 | 
				
			
			@ -85,12 +84,11 @@ static Lexmark_Sensor sensor_list[] = {
 | 
			
		|||
   /* shading correction */
 | 
			
		||||
   260, 260, 260, 260,
 | 
			
		||||
   /* offset and gain fallback */
 | 
			
		||||
   0x86, 16
 | 
			
		||||
   },
 | 
			
		||||
  { /* this one is a 1200 on USB2.0 */
 | 
			
		||||
   0x86, 16},
 | 
			
		||||
  {				/* this one is a 1200 on USB2.0 */
 | 
			
		||||
   X1200_USB2_SENSOR,
 | 
			
		||||
   /* start x, end x and target average for offset calibration */
 | 
			
		||||
   32,64,12,
 | 
			
		||||
   32, 64, 12,
 | 
			
		||||
   /* usable pixel sensor startx */
 | 
			
		||||
   136,
 | 
			
		||||
   /* default gain */
 | 
			
		||||
| 
						 | 
				
			
			@ -100,12 +98,11 @@ static Lexmark_Sensor sensor_list[] = {
 | 
			
		|||
   /* shading correction */
 | 
			
		||||
   260, 260, 260, 260,
 | 
			
		||||
   /* offset and gain fallback */
 | 
			
		||||
   0x86, 16
 | 
			
		||||
   },
 | 
			
		||||
   0x86, 16},
 | 
			
		||||
  {
 | 
			
		||||
   A920_SENSOR,
 | 
			
		||||
   /* start x, end x and target average for offset calibration */
 | 
			
		||||
   48,80,6,
 | 
			
		||||
   48, 80, 6,
 | 
			
		||||
   /* usable pixel sensor startx */
 | 
			
		||||
   106,
 | 
			
		||||
   /* default gain */
 | 
			
		||||
| 
						 | 
				
			
			@ -115,8 +112,23 @@ static Lexmark_Sensor sensor_list[] = {
 | 
			
		|||
   /* gain calibration target */
 | 
			
		||||
   260, 260, 260, 260,
 | 
			
		||||
   /* offset and gain fallback */
 | 
			
		||||
   0x70, 13
 | 
			
		||||
  },
 | 
			
		||||
   0x70, 13},
 | 
			
		||||
  {
 | 
			
		||||
   X74_SENSOR,
 | 
			
		||||
   /* start x TDONE, end x and target average for offset calibration */
 | 
			
		||||
   /*36,68,12, */
 | 
			
		||||
   20, 52, 12,
 | 
			
		||||
   /* usable pixel sensor startx */
 | 
			
		||||
   /*104, */
 | 
			
		||||
   104,
 | 
			
		||||
   /* default gain */
 | 
			
		||||
   10,
 | 
			
		||||
   /* gain calibration target */
 | 
			
		||||
   130, 145, 150, 145,
 | 
			
		||||
   /* gain calibration target */
 | 
			
		||||
   260, 260, 260, 260,
 | 
			
		||||
   /* offset and gain fallback */
 | 
			
		||||
   0x70, 13},
 | 
			
		||||
  /* termination list sensor, must be last */
 | 
			
		||||
  {0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
 | 
			
		||||
  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
 | 
			
		||||
};
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -69,6 +69,12 @@
 | 
			
		|||
:usbid "0x043d" "0x007c"
 | 
			
		||||
:status :untested
 | 
			
		||||
 | 
			
		||||
:model "X74"
 | 
			
		||||
:interface "USB"
 | 
			
		||||
:usbid "0x043d" "0x0060"
 | 
			
		||||
:status :good
 | 
			
		||||
:comment "Supports 75, 150, 300, 600 dpi"
 | 
			
		||||
 | 
			
		||||
:model "X12xx"
 | 
			
		||||
:interface "USB"
 | 
			
		||||
:usbid "0x043d" "0x007d"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -18,6 +18,7 @@ The scanners that should work with this backend are:
 | 
			
		|||
.nf 
 | 
			
		||||
   Vendor Model           status
 | 
			
		||||
\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-  \-\-\-\-\-\-\-\-\-\-\-
 | 
			
		||||
  Lexmark X74             good
 | 
			
		||||
  Lexmark X1110           untested
 | 
			
		||||
  Lexmark X1140           untested
 | 
			
		||||
  Lexmark X1150           good
 | 
			
		||||
| 
						 | 
				
			
			@ -140,6 +141,8 @@ The backend was originaly written by Fred Odendaal.
 | 
			
		|||
.TP 
 | 
			
		||||
The new version is currently developped by St\['e]phane Voltz.
 | 
			
		||||
.I http://stef.dev.free.fr/sane/lexmark
 | 
			
		||||
.TP
 | 
			
		||||
X74 support was written by Torsten Houwaart (<ToHo@gmx.de>)
 | 
			
		||||
.SH "CREDITS"
 | 
			
		||||
.TP 
 | 
			
		||||
Many thanks go to:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Ładowanie…
	
		Reference in New Issue