pixma: set #1 of modifications for ImageClass MF65xx series

merge-requests/1/head
Nicolas Martin 2010-06-08 21:59:46 +02:00
rodzic a4edddf523
commit b3d036e8a6
1 zmienionych plików z 9 dodań i 5 usunięć

Wyświetl plik

@ -180,6 +180,7 @@ activate (pixma_t * s, uint8_t x)
{
case MF4200_PID:
case MF4600_PID:
case MF6500_PID:
case D480_PID:
case MF4360_PID:
return iclass_exec (s, &mf->cb, 1);
@ -209,6 +210,7 @@ select_source (pixma_t * s)
{
case MF4200_PID:
case MF4600_PID:
case MF6500_PID:
case D480_PID:
case MF4360_PID:
return iclass_exec (s, &mf->cb, 0);
@ -241,6 +243,7 @@ send_scan_param (pixma_t * s)
{
case MF4200_PID:
case MF4600_PID:
case MF6500_PID:
case D480_PID:
case MF4360_PID:
return iclass_exec (s, &mf->cb, 0);
@ -264,7 +267,7 @@ request_image_block (pixma_t * s, unsigned flag, uint8_t * info,
pixma_set_be16 (cmd_read_image, mf->cb.buf);
mf->cb.buf[8] = flag;
mf->cb.buf[10] = 0x06;
expected_len = (s->cfg->pid == MF4600_PID) ? 512 : hlen;
expected_len = (s->cfg->pid == MF4600_PID || s->cfg->pid == MF6500_PID) ? 512 : hlen;
mf->cb.reslen = pixma_cmd_transaction (s, mf->cb.buf, 11, mf->cb.buf, expected_len);
if (mf->cb.reslen >= hlen)
{
@ -272,7 +275,7 @@ 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 == MF4600_PID || s->cfg->pid == MF6500_PID)
{ /* 32bit size */
*datalen = mf->cb.reslen - hlen;
*size = (*datalen + hlen == 512) ? pixma_get_be32 (mf->cb.buf + 4) - *datalen : 0;
@ -292,7 +295,7 @@ 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) ? 4 : 1);
maxchunksize = MAX_CHUNK_SIZE * ((s->cfg->pid == MF4600_PID || s->cfg->pid == MF6500_PID) ? 4 : 1);
while (size)
{
if (size >= maxchunksize)
@ -324,6 +327,7 @@ read_error_info (pixma_t * s, void *buf, unsigned size)
{
case MF4200_PID:
case MF4600_PID:
case MF6500_PID:
case D480_PID:
case MF4360_PID:
error = iclass_exec (s, &mf->cb, 0);
@ -585,9 +589,9 @@ iclass_fill_buffer (pixma_t * s, pixma_imagebuf_t * ib)
if (n != 0)
{
if (s->param->channels != 1 &&
s->cfg->pid != MF4600_PID)
s->cfg->pid != MF4600_PID && s->cfg->pid != MF6500_PID)
{
/* color and not MF46xx */
/* color and not MF46xx or MF65xx */
pack_rgb (mf->blkptr, n, mf->raw_width, mf->lineptr);
}
else