kopia lustrzana https://gitlab.com/sane-project/backends
new scanner Canon imageCLASS MF4410 from Vasiliy Olekhov
rodzic
9513986d96
commit
aaa97ac050
|
@ -1,3 +1,8 @@
|
|||
2012-02-27 Rolf Bensch <rolf at bensch hyphen online dot de>
|
||||
* backend/pixma_imageclass.c, doc/descriptions/pixma.desc,
|
||||
doc/sane-pixma.man: New scanner Canon imageCLASS MF4410 from
|
||||
Vasiliy Olekhov.
|
||||
|
||||
2012-02-16 Rolf Bensch <rolf at bensch hyphen online dot de>
|
||||
* backend/pixma.c, backend/pixma_sane_options.[ch]:
|
||||
New device specific option 'gamma'.
|
||||
|
|
|
@ -77,6 +77,7 @@
|
|||
#define MF4320_PID 0x26ee
|
||||
#define MF3200_PID 0x2684
|
||||
#define MF6500_PID 0x2686
|
||||
#define MF4410_PID 0x2737
|
||||
/* the following are all untested */
|
||||
#define MF5630_PID 0x264e
|
||||
#define MF5650_PID 0x264f
|
||||
|
@ -99,7 +100,8 @@ enum iclass_cmd_t
|
|||
cmd_scan_param = 0xde20,
|
||||
cmd_status = 0xf320,
|
||||
cmd_abort_session = 0xef20,
|
||||
cmd_read_image = 0xd420,
|
||||
cmd_read_image = 0xd420,
|
||||
cmd_read_image2 = 0xd460, /* New multifunctionals, such as MF4410 */
|
||||
cmd_error_info = 0xff20,
|
||||
|
||||
cmd_activate = 0xcf60
|
||||
|
@ -264,10 +266,11 @@ request_image_block (pixma_t * s, unsigned flag, uint8_t * info,
|
|||
const int hlen = 2 + 6;
|
||||
|
||||
memset (mf->cb.buf, 0, 11);
|
||||
pixma_set_be16 (cmd_read_image, mf->cb.buf);
|
||||
pixma_set_be16 ((s->cfg->pid == MF4410_PID ? cmd_read_image2 : cmd_read_image), mf->cb.buf);
|
||||
mf->cb.buf[8] = flag;
|
||||
mf->cb.buf[10] = 0x06;
|
||||
expected_len = (s->cfg->pid == MF4600_PID ||
|
||||
expected_len = (s->cfg->pid == MF4410_PID ||
|
||||
s->cfg->pid == MF4600_PID ||
|
||||
s->cfg->pid == MF6500_PID ||
|
||||
s->cfg->pid == MF8030_PID) ? 512 : hlen;
|
||||
mf->cb.reslen = pixma_cmd_transaction (s, mf->cb.buf, 11, mf->cb.buf, expected_len);
|
||||
|
@ -277,7 +280,8 @@ request_image_block (pixma_t * s, unsigned flag, uint8_t * info,
|
|||
*size = pixma_get_be16 (mf->cb.buf + 6); /* 16bit size */
|
||||
error = 0;
|
||||
|
||||
if (s->cfg->pid == MF4600_PID ||
|
||||
if (s->cfg->pid == MF4410_PID ||
|
||||
s->cfg->pid == MF4600_PID ||
|
||||
s->cfg->pid == MF6500_PID ||
|
||||
s->cfg->pid == MF8030_PID)
|
||||
{ /* 32bit size */
|
||||
|
@ -299,7 +303,8 @@ read_image_block (pixma_t * s, uint8_t * data, unsigned size)
|
|||
int error;
|
||||
unsigned maxchunksize, chunksize, count = 0;
|
||||
|
||||
maxchunksize = MAX_CHUNK_SIZE * ((s->cfg->pid == MF4600_PID ||
|
||||
maxchunksize = MAX_CHUNK_SIZE * ((s->cfg->pid == MF4410_PID ||
|
||||
s->cfg->pid == MF4600_PID ||
|
||||
s->cfg->pid == MF6500_PID ||
|
||||
s->cfg->pid == MF8030_PID) ? 4 : 1);
|
||||
while (size)
|
||||
|
@ -595,6 +600,7 @@ iclass_fill_buffer (pixma_t * s, pixma_imagebuf_t * ib)
|
|||
if (n != 0)
|
||||
{
|
||||
if (s->param->channels != 1 &&
|
||||
s->cfg->pid != MF4410_PID &&
|
||||
s->cfg->pid != MF4600_PID &&
|
||||
s->cfg->pid != MF6500_PID &&
|
||||
s->cfg->pid != MF8030_PID)
|
||||
|
@ -643,7 +649,7 @@ iclass_finish_scan (pixma_t * s)
|
|||
query_status (s);
|
||||
activate (s, 0);
|
||||
query_status (s);
|
||||
if (mf->last_block == 0x28)
|
||||
if (mf->last_block == 0x28 || (s->cfg->pid==MF4410_PID && mf->last_block==0x38))
|
||||
{
|
||||
abort_session (s);
|
||||
}
|
||||
|
@ -710,6 +716,7 @@ const pixma_config_t pixma_iclass_devices[] = {
|
|||
DEV ("Canon imageCLASS MF4010", "MF4010", MF4010_PID, 600, 640, 877, 0),
|
||||
DEV ("Canon imageCLASS MF3240", "MF3240", MF3200_PID, 600, 640, 877, 0),
|
||||
DEV ("Canon imageClass MF6500", "MF6500", MF6500_PID, 600, 640, 877, PIXMA_CAP_ADF),
|
||||
DEV ("Canon imageCLASS MF4410", "MF4410", MF4410_PID, 600, 640, 877, 0),
|
||||
/* FIXME: the following capabilities all need updating/verifying */
|
||||
DEV ("Canon imageCLASS MF5630", "MF5630", MF5630_PID, 600, 640, 877, PIXMA_CAP_ADF),
|
||||
DEV ("Canon laserBase MF5650", "MF5650", MF5650_PID, 600, 640, 877, PIXMA_CAP_ADF),
|
||||
|
|
|
@ -481,6 +481,12 @@
|
|||
:status :complete
|
||||
:comment "Flatbed and ADF scan. All resolutions supported (up to 600DPI)"
|
||||
|
||||
:model "imageCLASS MF4410"
|
||||
:interface "USB"
|
||||
:usbid "0x04a9" "0x2737"
|
||||
:status :complete
|
||||
:comment "All resolutions supported (up to 600DPI)"
|
||||
|
||||
:model "imageCLASS MF4270"
|
||||
:interface "USB"
|
||||
:usbid "0x04a9" "0x26b5"
|
||||
|
|
|
@ -37,7 +37,7 @@ PIXMA MX880 Series, MX882, MX885
|
|||
.br
|
||||
PIXMA MP700, MP730, PIXMA MP750 (no grayscale)
|
||||
.br
|
||||
ImageCLASS MF3110, MF3240, MF4010, MF4018, MF4120, MF4122
|
||||
ImageCLASS MF3110, MF3240, MF4010, MF4018, MF4120, MF4122, MF4410
|
||||
.br
|
||||
ImageCLASS MF4140, MF4150, MF4270, MF4350d, MF4370dn, MF4380dn
|
||||
.br
|
||||
|
|
Ładowanie…
Reference in New Issue