kopia lustrzana https://gitlab.com/sane-project/backends
WIP setup optical regs ~OK
rodzic
b445223349
commit
3dba8c1d66
|
@ -166,7 +166,7 @@ static const SANE_Range threshold_curve_range = {
|
||||||
/* ------------------------------------------------------------------------ */
|
/* ------------------------------------------------------------------------ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* returns true if filter bit is on (monochrome scan)
|
* setup the hardware dependent functions
|
||||||
*/
|
*/
|
||||||
static SANE_Status
|
static SANE_Status
|
||||||
genesys_init_cmd_set (Genesys_Device * dev)
|
genesys_init_cmd_set (Genesys_Device * dev)
|
||||||
|
@ -177,6 +177,8 @@ genesys_init_cmd_set (Genesys_Device * dev)
|
||||||
return sanei_gl646_init_cmd_set (dev);
|
return sanei_gl646_init_cmd_set (dev);
|
||||||
case GENESYS_GL841:
|
case GENESYS_GL841:
|
||||||
return sanei_gl841_init_cmd_set (dev);
|
return sanei_gl841_init_cmd_set (dev);
|
||||||
|
case GENESYS_GL847:
|
||||||
|
return sanei_gl847_init_cmd_set (dev);
|
||||||
default:
|
default:
|
||||||
return SANE_STATUS_INVAL;
|
return SANE_STATUS_INVAL;
|
||||||
}
|
}
|
||||||
|
@ -284,13 +286,45 @@ sanei_genesys_set_reg_from_set (Genesys_Register_Set * reg, SANE_Byte address,
|
||||||
/* Read and write RAM, registers and AFE */
|
/* Read and write RAM, registers and AFE */
|
||||||
/* ------------------------------------------------------------------------ */
|
/* ------------------------------------------------------------------------ */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Write to one GL847 ASIC register
|
||||||
|
URB 10 control 0x40 0x04 0x83 0x00 len 2 wrote 0xa6 0x04
|
||||||
|
*/
|
||||||
|
static SANE_Status
|
||||||
|
sanei_genesys_write_gl847_register (Genesys_Device * dev, uint8_t reg, uint8_t val)
|
||||||
|
{
|
||||||
|
SANE_Status status;
|
||||||
|
uint8_t buffer[2];
|
||||||
|
|
||||||
/* Write to one register */
|
buffer[0]=reg;
|
||||||
|
buffer[1]=val;
|
||||||
|
status =
|
||||||
|
sanei_usb_control_msg (dev->dn, REQUEST_TYPE_OUT, REQUEST_BUFFER,
|
||||||
|
VALUE_SET_REGISTER, INDEX, 2, buffer);
|
||||||
|
if (status != SANE_STATUS_GOOD)
|
||||||
|
{
|
||||||
|
DBG (DBG_error, "sanei_genesys_write_gl847_register (0x%02x, 0x%02x): failed : %s\n", reg, val, sane_strstatus (status));
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
|
||||||
|
DBG (DBG_io, "sanei_genesys_write_gl847_register (0x%02x, 0x%02x) completed\n",
|
||||||
|
reg, val);
|
||||||
|
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Write to one ASIC register
|
||||||
|
*/
|
||||||
SANE_Status
|
SANE_Status
|
||||||
sanei_genesys_write_register (Genesys_Device * dev, uint8_t reg, uint8_t val)
|
sanei_genesys_write_register (Genesys_Device * dev, uint8_t reg, uint8_t val)
|
||||||
{
|
{
|
||||||
SANE_Status status;
|
SANE_Status status;
|
||||||
|
|
||||||
|
/* route to gl847 function if needed */
|
||||||
|
if(dev->model->asic_type==GENESYS_GL847)
|
||||||
|
return sanei_genesys_write_gl847_register(dev, reg, val);
|
||||||
|
|
||||||
status =
|
status =
|
||||||
sanei_usb_control_msg (dev->dn, REQUEST_TYPE_OUT, REQUEST_REGISTER,
|
sanei_usb_control_msg (dev->dn, REQUEST_TYPE_OUT, REQUEST_REGISTER,
|
||||||
VALUE_SET_REGISTER, INDEX, 1, ®);
|
VALUE_SET_REGISTER, INDEX, 1, ®);
|
||||||
|
@ -319,6 +353,29 @@ sanei_genesys_write_register (Genesys_Device * dev, uint8_t reg, uint8_t val)
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* read reg 0x41:
|
||||||
|
* URB 164 control 0xc0 0x04 0x8e 0x4122 len 2 read 0xfc 0x55
|
||||||
|
*/
|
||||||
|
static SANE_Status
|
||||||
|
sanei_genesys_read_gl847_register (Genesys_Device * dev, uint8_t reg, uint8_t * val)
|
||||||
|
{
|
||||||
|
SANE_Status status;
|
||||||
|
uint16_t value;
|
||||||
|
|
||||||
|
status =
|
||||||
|
sanei_usb_control_msg (dev->dn, REQUEST_TYPE_IN, REQUEST_BUFFER,
|
||||||
|
VALUE_GET_REGISTER, 0x22+(reg<<8), 2, (SANE_Byte *)&value);
|
||||||
|
if (status != SANE_STATUS_GOOD)
|
||||||
|
{
|
||||||
|
DBG (DBG_error,
|
||||||
|
"sanei_genesys_read_gl847_register (0x%02x): failed while setting register: %s\n",
|
||||||
|
reg, sane_strstatus (status));
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
*val=value & 0xff;
|
||||||
|
DBG( DBG_io2, "sanei_genesys_read_gl847_register(0x%02x)=0x%02x\n",reg,value & 0xff);
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
|
||||||
/* Read from one register */
|
/* Read from one register */
|
||||||
SANE_Status
|
SANE_Status
|
||||||
|
@ -326,6 +383,10 @@ sanei_genesys_read_register (Genesys_Device * dev, uint8_t reg, uint8_t * val)
|
||||||
{
|
{
|
||||||
SANE_Status status;
|
SANE_Status status;
|
||||||
|
|
||||||
|
/* route to gl847 function if needed */
|
||||||
|
if(dev->model->asic_type==GENESYS_GL847)
|
||||||
|
return sanei_genesys_read_gl847_register(dev, reg, val);
|
||||||
|
|
||||||
status =
|
status =
|
||||||
sanei_usb_control_msg (dev->dn, REQUEST_TYPE_OUT, REQUEST_REGISTER,
|
sanei_usb_control_msg (dev->dn, REQUEST_TYPE_OUT, REQUEST_REGISTER,
|
||||||
VALUE_SET_REGISTER, INDEX, 1, ®);
|
VALUE_SET_REGISTER, INDEX, 1, ®);
|
||||||
|
@ -361,6 +422,13 @@ SANE_Status
|
||||||
sanei_genesys_set_buffer_address (Genesys_Device * dev, uint32_t addr)
|
sanei_genesys_set_buffer_address (Genesys_Device * dev, uint32_t addr)
|
||||||
{
|
{
|
||||||
SANE_Status status;
|
SANE_Status status;
|
||||||
|
|
||||||
|
if(dev->model->asic_type==GENESYS_GL847)
|
||||||
|
{
|
||||||
|
DBG (DBG_warn,
|
||||||
|
"sanei_genesys_set_buffer_address: shouldn't be used for GL847 \n");
|
||||||
|
return SANE_STATUS_GOOD;
|
||||||
|
}
|
||||||
|
|
||||||
DBG (DBG_io,
|
DBG (DBG_io,
|
||||||
"sanei_genesys_set_buffer_address: setting address to 0x%05x\n",
|
"sanei_genesys_set_buffer_address: setting address to 0x%05x\n",
|
||||||
|
@ -1377,8 +1445,20 @@ genesys_send_offset_and_shading (Genesys_Device * dev, uint8_t * data,
|
||||||
|
|
||||||
DBG (DBG_proc, "genesys_send_offset_and_shading (size = %d)\n", size);
|
DBG (DBG_proc, "genesys_send_offset_and_shading (size = %d)\n", size);
|
||||||
|
|
||||||
|
/* ASIC higher than gl843 doesn't have register 2A/2B, so we route to
|
||||||
|
* a per ASIC shading data loading function if available */
|
||||||
|
if(dev->model->cmd_set->send_shading_data!=NULL)
|
||||||
|
{
|
||||||
|
status=dev->model->cmd_set->send_shading_data(dev, data, size);
|
||||||
|
DBG (DBG_proc, "genesys_send_offset_and_shading: completed\n");
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* gl646, gl84[123] case */
|
||||||
dpihw = sanei_genesys_read_reg_from_set (dev->reg, 0x05) >> 6;
|
dpihw = sanei_genesys_read_reg_from_set (dev->reg, 0x05) >> 6;
|
||||||
|
|
||||||
|
/* TODO invert the test so only the 2 models behaving like that are
|
||||||
|
* tested instead of adding all the others */
|
||||||
/* many scanners send coefficient for lineart/gray like in color mode */
|
/* many scanners send coefficient for lineart/gray like in color mode */
|
||||||
if (dev->settings.scan_mode < 2
|
if (dev->settings.scan_mode < 2
|
||||||
&& dev->model->ccd_type != CCD_DSMOBILE600
|
&& dev->model->ccd_type != CCD_DSMOBILE600
|
||||||
|
@ -6055,7 +6135,10 @@ config_attach_genesys (SANEI_Config * config, const char *devname)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* probes for scanner to attach to the backend */
|
/* probes for scanner to attach to the backend */
|
||||||
static SANE_Status
|
#ifndef UNIT_TESTING
|
||||||
|
static
|
||||||
|
#endif
|
||||||
|
SANE_Status
|
||||||
probe_genesys_devices (void)
|
probe_genesys_devices (void)
|
||||||
{
|
{
|
||||||
SANEI_Config config;
|
SANEI_Config config;
|
||||||
|
|
|
@ -36,6 +36,9 @@ usb 0x04a9 0x2213
|
||||||
# Canon LiDE 60
|
# Canon LiDE 60
|
||||||
usb 0x04a9 0x221c
|
usb 0x04a9 0x221c
|
||||||
|
|
||||||
|
# Canon LiDE 200
|
||||||
|
usb 0x04a9 0x1905
|
||||||
|
|
||||||
# Visioneer Strobe XP200
|
# Visioneer Strobe XP200
|
||||||
usb 0x04a7 0x0426
|
usb 0x04a7 0x0426
|
||||||
|
|
||||||
|
|
|
@ -138,6 +138,14 @@ static Genesys_Frontend Wolfson[] = {
|
||||||
, {0x07, 0x00, 0x00}
|
, {0x07, 0x00, 0x00}
|
||||||
}
|
}
|
||||||
,
|
,
|
||||||
|
{DAC_CANONLIDE200,
|
||||||
|
{0x9d, 0x9a, 0x00, 0x00}
|
||||||
|
, {0x00, 0x00, 0x00}
|
||||||
|
, {0x32, 0x04, 0x00} /* offset */
|
||||||
|
, {0x00, 0x3f, 0x00} /* gain */
|
||||||
|
, {0x00, 0x00, 0x00}
|
||||||
|
}
|
||||||
|
, /* 6: CANONLIDE200 */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -393,6 +401,31 @@ static Genesys_Sensor Sensor[] = {
|
||||||
1.0, 1.0, 1.0,
|
1.0, 1.0, 1.0,
|
||||||
NULL, NULL, NULL}
|
NULL, NULL, NULL}
|
||||||
,
|
,
|
||||||
|
/* CANONLIDE200 */
|
||||||
|
{CIS_CANONLIDE200,
|
||||||
|
1200, /* optical resolution */
|
||||||
|
87, /* black pixels */
|
||||||
|
16, /* dummy pixels */
|
||||||
|
0,
|
||||||
|
10400,
|
||||||
|
210,
|
||||||
|
200,
|
||||||
|
{0x00, 0x00, 0x00, 0x00},
|
||||||
|
/* reg 0x10 - 0x1d */
|
||||||
|
{0x02, 0x7d, 0x02, 0x7d, 0x02, 0x7d, /* EXPR/EXPG/EXPB */
|
||||||
|
0x10, 0x0c, 0x00, 0xff, 0x34, 0x00, 0x02, 0x04 },
|
||||||
|
/* reg 0x52 - 0x5e */
|
||||||
|
{0x03, 0x07,
|
||||||
|
0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x2a, 0xe1,
|
||||||
|
0x55,
|
||||||
|
0x00, 0x00, 0x00,
|
||||||
|
0x41
|
||||||
|
}
|
||||||
|
,
|
||||||
|
1.0, 1.0, 1.0,
|
||||||
|
NULL, NULL, NULL}
|
||||||
|
,
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -492,6 +525,14 @@ static Genesys_Gpo Gpo[] = {
|
||||||
{0xfb, 0x00}, /* 6e, 6f */
|
{0xfb, 0x00}, /* 6e, 6f */
|
||||||
}
|
}
|
||||||
,
|
,
|
||||||
|
/* CANONLIDE200 */
|
||||||
|
{GPO_CANONLIDE200,
|
||||||
|
{0xfb, 0x20}
|
||||||
|
,
|
||||||
|
{0xff, 0x00}
|
||||||
|
,
|
||||||
|
}
|
||||||
|
,
|
||||||
};
|
};
|
||||||
|
|
||||||
static Genesys_Motor Motor[] = {
|
static Genesys_Motor Motor[] = {
|
||||||
|
@ -712,6 +753,24 @@ static Genesys_Motor Motor[] = {
|
||||||
0.8,
|
0.8,
|
||||||
},},},
|
},},},
|
||||||
},
|
},
|
||||||
|
{MOTOR_CANONLIDE200, /* Canon LiDE 200 */
|
||||||
|
1200,
|
||||||
|
2400,
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
{{{
|
||||||
|
3500,
|
||||||
|
1300,
|
||||||
|
60,
|
||||||
|
0.8,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
3500,
|
||||||
|
1400,
|
||||||
|
60,
|
||||||
|
0.8,
|
||||||
|
},},},
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
/* here we have the various device settings...
|
/* here we have the various device settings...
|
||||||
|
@ -821,6 +880,60 @@ static Genesys_Model canon_lide_50_model = {
|
||||||
400
|
400
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static Genesys_Model canon_lide_200_model = {
|
||||||
|
"canon-lide-200", /* Name */
|
||||||
|
"Canon", /* Device vendor string */
|
||||||
|
"LiDE 200", /* Device model name */
|
||||||
|
GENESYS_GL847,
|
||||||
|
NULL,
|
||||||
|
|
||||||
|
{1200, 600, 300, 150, 75, 50, 0}, /* possible x-resolutions */
|
||||||
|
{2400, 1200, 600, 300, 150, 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.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 (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_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_FLAG_HALF_CCD_MODE,
|
||||||
|
GENESYS_HAS_SCAN_SW | GENESYS_HAS_COPY_SW | GENESYS_HAS_EMAIL_SW | GENESYS_HAS_FILE_SW,
|
||||||
|
300,
|
||||||
|
400
|
||||||
|
}; /* this is completely untested -- hmg */
|
||||||
|
|
||||||
|
|
||||||
static Genesys_Model canon_lide_60_model = {
|
static Genesys_Model canon_lide_60_model = {
|
||||||
"canon-lide-60", /* Name */
|
"canon-lide-60", /* Name */
|
||||||
"Canon", /* Device vendor string */
|
"Canon", /* Device vendor string */
|
||||||
|
@ -1896,6 +2009,7 @@ static Genesys_USB_Device_Entry genesys_usb_device_list[] = {
|
||||||
{0x04a7, 0x04ac, &xerox_travelscanner_model},
|
{0x04a7, 0x04ac, &xerox_travelscanner_model},
|
||||||
{0x04a9, 0x2213, &canon_lide_50_model},
|
{0x04a9, 0x2213, &canon_lide_50_model},
|
||||||
{0x04a9, 0x221c, &canon_lide_60_model},
|
{0x04a9, 0x221c, &canon_lide_60_model},
|
||||||
|
{0x04a9, 0x1905, &canon_lide_200_model},
|
||||||
{0x0638, 0x0a10, &umax_astra_4500_model},
|
{0x0638, 0x0a10, &umax_astra_4500_model},
|
||||||
{0x07b3, 0x0600, &plustek_st12_model},
|
{0x07b3, 0x0600, &plustek_st12_model},
|
||||||
{0x07b3, 0x0601, &plustek_st24_model},
|
{0x07b3, 0x0601, &plustek_st24_model},
|
||||||
|
|
|
@ -5752,7 +5752,8 @@ static Genesys_Command_Set gl646_cmd_set = {
|
||||||
gl646_search_strip,
|
gl646_search_strip,
|
||||||
|
|
||||||
gl646_is_compatible_calibration,
|
gl646_is_compatible_calibration,
|
||||||
gl646_move_to_ta
|
gl646_move_to_ta,
|
||||||
|
NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
SANE_Status
|
SANE_Status
|
||||||
|
|
|
@ -6296,6 +6296,7 @@ static Genesys_Command_Set gl841_cmd_set = {
|
||||||
gl841_search_strip,
|
gl841_search_strip,
|
||||||
|
|
||||||
gl841_is_compatible_calibration,
|
gl841_is_compatible_calibration,
|
||||||
|
NULL,
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Plik diff jest za duży
Load Diff
|
@ -112,13 +112,12 @@
|
||||||
#define REG07_DMASEL 0x02
|
#define REG07_DMASEL 0x02
|
||||||
#define REG07_DMARDWR 0x01
|
#define REG07_DMARDWR 0x01
|
||||||
|
|
||||||
#define REG08_DECFLAG 0x40
|
#define REG08_DRAM2X 0x80
|
||||||
#define REG08_GMMFFR 0x20
|
#define REG08_MPENB 0x20
|
||||||
#define REG08_GMMFFG 0x10
|
#define REG08_CIS_LINE 0x10
|
||||||
#define REG08_GMMFFB 0x08
|
#define REG08_IR1ENB 0x08
|
||||||
#define REG08_GMMZR 0x04
|
#define REG08_IR2ENB 0x04
|
||||||
#define REG08_GMMZG 0x02
|
#define REG08_ENB24M 0x01
|
||||||
#define REG08_GMMZB 0x01
|
|
||||||
|
|
||||||
#define REG09_MCNTSET 0xc0
|
#define REG09_MCNTSET 0xc0
|
||||||
#define REG09_CLKSET 0x30
|
#define REG09_CLKSET 0x30
|
||||||
|
|
|
@ -123,6 +123,8 @@
|
||||||
#define GPIO_OUTPUT_ENABLE 0x89
|
#define GPIO_OUTPUT_ENABLE 0x89
|
||||||
#define GPIO_READ 0x8a
|
#define GPIO_READ 0x8a
|
||||||
#define GPIO_WRITE 0x8b
|
#define GPIO_WRITE 0x8b
|
||||||
|
#define VALUE_BUF_ENDACCESS 0x8c
|
||||||
|
#define VALUE_GET_REGISTER 0x8e
|
||||||
#define INDEX 0x00
|
#define INDEX 0x00
|
||||||
|
|
||||||
/* todo: used?
|
/* todo: used?
|
||||||
|
@ -146,8 +148,8 @@
|
||||||
#define AFE_SET 2
|
#define AFE_SET 2
|
||||||
#define AFE_POWER_SAVE 4
|
#define AFE_POWER_SAVE 4
|
||||||
|
|
||||||
#define LOWORD(x) ((uint16_t)(x & 0xffff))
|
#define LOWORD(x) ((uint16_t)((x) & 0xffff))
|
||||||
#define HIWORD(x) ((uint16_t)(x >> 16))
|
#define HIWORD(x) ((uint16_t)((x) >> 16))
|
||||||
#define LOBYTE(x) ((uint8_t)((x) & 0xFF))
|
#define LOBYTE(x) ((uint8_t)((x) & 0xFF))
|
||||||
#define HIBYTE(x) ((uint8_t)((x) >> 8))
|
#define HIBYTE(x) ((uint8_t)((x) >> 8))
|
||||||
|
|
||||||
|
@ -240,6 +242,9 @@ Genesys_Color_Order;
|
||||||
|
|
||||||
#define GENESYS_GL646 646
|
#define GENESYS_GL646 646
|
||||||
#define GENESYS_GL841 841
|
#define GENESYS_GL841 841
|
||||||
|
#define GENESYS_GL846 846
|
||||||
|
#define GENESYS_GL847 847
|
||||||
|
#define GENESYS_GL848 848
|
||||||
|
|
||||||
/*135 registers for gl841 + 1 null-reg*/
|
/*135 registers for gl841 + 1 null-reg*/
|
||||||
#define GENESYS_MAX_REGS 136
|
#define GENESYS_MAX_REGS 136
|
||||||
|
@ -255,6 +260,7 @@ Genesys_Color_Order;
|
||||||
#define DAC_WOLFSON_XP300 8
|
#define DAC_WOLFSON_XP300 8
|
||||||
#define DAC_WOLFSON_HP3670 9
|
#define DAC_WOLFSON_HP3670 9
|
||||||
#define DAC_WOLFSON_DSM600 10
|
#define DAC_WOLFSON_DSM600 10
|
||||||
|
#define DAC_CANONLIDE200 11
|
||||||
|
|
||||||
#define CCD_UMAX 0
|
#define CCD_UMAX 0
|
||||||
#define CCD_ST12 1 /* SONY ILX548: 5340 Pixel ??? */
|
#define CCD_ST12 1 /* SONY ILX548: 5340 Pixel ??? */
|
||||||
|
@ -271,6 +277,7 @@ Genesys_Color_Order;
|
||||||
#define CCD_DSMOBILE600 12
|
#define CCD_DSMOBILE600 12
|
||||||
#define CCD_XP300 13
|
#define CCD_XP300 13
|
||||||
#define CCD_DP685 14
|
#define CCD_DP685 14
|
||||||
|
#define CIS_CANONLIDE200 15
|
||||||
|
|
||||||
#define GPO_UMAX 0
|
#define GPO_UMAX 0
|
||||||
#define GPO_ST12 1
|
#define GPO_ST12 1
|
||||||
|
@ -284,6 +291,7 @@ Genesys_Color_Order;
|
||||||
#define GPO_HP3670 9
|
#define GPO_HP3670 9
|
||||||
#define GPO_DP665 10
|
#define GPO_DP665 10
|
||||||
#define GPO_DP685 11
|
#define GPO_DP685 11
|
||||||
|
#define GPO_CANONLIDE200 12
|
||||||
|
|
||||||
#define MOTOR_UMAX 0
|
#define MOTOR_UMAX 0
|
||||||
#define MOTOR_5345 1
|
#define MOTOR_5345 1
|
||||||
|
@ -297,6 +305,7 @@ Genesys_Color_Order;
|
||||||
#define MOTOR_DP665 10
|
#define MOTOR_DP665 10
|
||||||
#define MOTOR_ROADWARRIOR 11
|
#define MOTOR_ROADWARRIOR 11
|
||||||
#define MOTOR_DSMOBILE_600 12
|
#define MOTOR_DSMOBILE_600 12
|
||||||
|
#define MOTOR_CANONLIDE200 13
|
||||||
|
|
||||||
|
|
||||||
/* Forward typedefs */
|
/* Forward typedefs */
|
||||||
|
@ -416,6 +425,12 @@ typedef struct Genesys_Command_Set
|
||||||
* move scanning head to transparency adapter
|
* move scanning head to transparency adapter
|
||||||
*/
|
*/
|
||||||
SANE_Status (*move_to_ta) (Genesys_Device * dev);
|
SANE_Status (*move_to_ta) (Genesys_Device * dev);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* write shading data calibration to ASIC
|
||||||
|
*/
|
||||||
|
SANE_Status (*send_shading_data) (Genesys_Device * dev, uint8_t * data, int size);
|
||||||
|
|
||||||
} Genesys_Command_Set;
|
} Genesys_Command_Set;
|
||||||
|
|
||||||
typedef struct Genesys_Model
|
typedef struct Genesys_Model
|
||||||
|
@ -769,5 +784,6 @@ sanei_genesys_buffer_consume(Genesys_Buffer * buf, size_t size);
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
extern SANE_Status sanei_gl646_init_cmd_set (Genesys_Device * dev);
|
extern SANE_Status sanei_gl646_init_cmd_set (Genesys_Device * dev);
|
||||||
extern SANE_Status sanei_gl841_init_cmd_set (Genesys_Device * dev);
|
extern SANE_Status sanei_gl841_init_cmd_set (Genesys_Device * dev);
|
||||||
|
extern SANE_Status sanei_gl847_init_cmd_set (Genesys_Device * dev);
|
||||||
|
|
||||||
#endif /* not GENESYS_LOW_H */
|
#endif /* not GENESYS_LOW_H */
|
||||||
|
|
Ładowanie…
Reference in New Issue