Lines Matching refs:mf
196 iclass_t *mf = (iclass_t *) s->subdriver;
197 return ((mf->current_status[1] & 0x0f) == 0 /* allow 0x10 as ADF paper OK */
198 || mf->current_status[1] == 81); /* allow 0x51 as ADF paper OK */
204 iclass_t *mf = (iclass_t *) s->subdriver;
205 return pixma_exec_short_cmd (s, &mf->cb, cmd_abort_session);
211 iclass_t *mf = (iclass_t *) s->subdriver;
215 data = pixma_newcmd (&mf->cb, cmd_status, 0, 12);
216 error = pixma_exec (s, &mf->cb);
219 memcpy (mf->current_status, data, 12);
231 iclass_t *mf = (iclass_t *) s->subdriver;
232 uint8_t *data = pixma_newcmd (&mf->cb, cmd_activate, 10, 0);
246 return iclass_exec (s, &mf->cb, 1);
249 return pixma_exec (s, &mf->cb);
256 iclass_t *mf = (iclass_t *) s->subdriver;
257 return pixma_exec_short_cmd (s, &mf->cb, cmd_start_session);
263 iclass_t *mf = (iclass_t *) s->subdriver;
264 uint8_t *data = pixma_newcmd (&mf->cb, cmd_select_source, 10, 0);
279 return iclass_exec (s, &mf->cb, 0);
282 return pixma_exec (s, &mf->cb);
289 iclass_t *mf = (iclass_t *) s->subdriver;
292 data = pixma_newcmd (&mf->cb, cmd_scan_param, 0x2e, 0);
297 pixma_set_be32 (mf->raw_width, data + 0x10);
315 return iclass_exec (s, &mf->cb, 0);
318 return pixma_exec (s, &mf->cb);
326 iclass_t *mf = (iclass_t *) s->subdriver;
331 memset (mf->cb.buf, 0, 11);
334 pixma_set_be16 (((mf->generation >= 2
335 && s->cfg->pid != MF6100_PID) ? cmd_read_image2 : cmd_read_image), mf->cb.buf);
336 mf->cb.buf[8] = flag;
337 mf->cb.buf[10] = 0x06;
338 expected_len = (mf->generation >= 2 ||
343 mf->cb.reslen = pixma_cmd_transaction (s, mf->cb.buf, 11, mf->cb.buf, expected_len);
344 if (mf->cb.reslen >= hlen)
346 *info = mf->cb.buf[2];
347 *size = pixma_get_be16 (mf->cb.buf + 6); /* 16bit size */
350 if (mf->generation >= 2 ||
356 *datalen = mf->cb.reslen - hlen;
357 *size = (*datalen + hlen == 512) ? pixma_get_be32 (mf->cb.buf + 4) - *datalen : *size;
358 memcpy (data, mf->cb.buf + hlen, *datalen);
372 iclass_t *mf = (iclass_t *) s->subdriver;
376 maxchunksize = MAX_CHUNK_SIZE * ((mf->generation >= 2 ||
403 iclass_t *mf = (iclass_t *) s->subdriver;
407 data = pixma_newcmd (&mf->cb, cmd_error_info, 0, len);
419 error = iclass_exec (s, &mf->cb, 0);
422 error = pixma_exec (s, &mf->cb);
465 iclass_t *mf = (iclass_t *) s->subdriver;
505 if (mf->generation == 1)
539 iclass_t *mf;
542 mf = (iclass_t *) calloc (1, sizeof (*mf));
543 if (!mf)
549 free (mf);
553 s->subdriver = mf;
554 mf->state = state_idle;
556 mf->cb.buf = buf;
557 mf->cb.size = CMDBUF_SIZE;
558 mf->cb.res_header_len = 2;
559 mf->cb.cmd_header_len = 10;
560 mf->cb.cmd_len_field_ofs = 7;
563 mf->adf_state = state_idle;
566 mf->generation = (s->cfg->pid >= MF8030_PID) ? 2 : 1;
567 PDBG (pixma_dbg (3, "*iclass_open***** This is a generation %d scanner. *****\n", mf->generation));
580 iclass_t *mf = (iclass_t *) s->subdriver;
583 free (mf->cb.buf);
584 free (mf->buf);
585 free (mf);
641 iclass_t *mf = (iclass_t *) s->subdriver;
645 if (mf->state != state_idle)
653 mf->raw_width = ALIGN_SUP (s->param->w, 32);
654 PDBG (pixma_dbg (3, "raw_width = %u\n", mf->raw_width));
658 if (buf_len > mf->buf_len)
660 buf = (uint8_t *) realloc (mf->buf, buf_len);
663 mf->buf = buf;
664 mf->buf_len = buf_len;
666 mf->lineptr = mf->buf;
667 mf->blkptr = mf->buf + n * s->param->line_size;
668 mf->blk_len = 0;
672 && (s->param->adf_pageid == 0 || mf->generation == 1 || mf->adf_state == state_idle))
677 mf->state = state_scanning;
684 mf->state = state_scanning;
695 mf->last_block = 0;
699 mf->adf_state = state_scanning;
708 iclass_t *mf = (iclass_t *) s->subdriver;
724 if (mf->last_block)
727 mf->state = state_finished;
733 mf->blkptr + mf->blk_len, &first_block_size);
735 mf->blk_len += first_block_size;
745 mf->last_block = info & 0x38;
761 error = read_image_block (s, mf->blkptr + mf->blk_len, block_size);
767 mf->blk_len += block_size;
769 n = mf->blk_len / ((s->param->mode == PIXMA_SCAN_MODE_LINEART) ? mf->raw_width : s->param->line_size);
773 n, s->param->w, s->param->line_size, mf->raw_width)); */
775 s->param->mode, (uint64_t)mf->lineptr, (uint64_t)mf->blkptr)); */
778 * mf->lineptr : image line
779 * mf->blkptr : scanned image block as grayscale
790 sptr = mf->blkptr;
791 dptr = mf->lineptr;
792 for (i = 0; i < n; i++, sptr += mf->raw_width)
796 mf->generation == 1 &&
803 pack_rgb (mf->blkptr, n, mf->raw_width, mf->lineptr);
808 memcpy (mf->lineptr, mf->blkptr, n * s->param->line_size);
812 lines_size = n * ((s->param->mode == PIXMA_SCAN_MODE_LINEART) ? mf->raw_width : s->param->line_size);
813 mf->blk_len -= lines_size;
814 memcpy (mf->blkptr, mf->blkptr + lines_size, mf->blk_len);
822 ib->rptr = mf->lineptr;
823 ib->rend = mf->lineptr + (s->param->mode == PIXMA_SCAN_MODE_LINEART ? lineart_lines_size : lines_size);
833 iclass_t *mf = (iclass_t *) s->subdriver;
835 switch (mf->state)
849 if (mf->generation == 1)
860 if (mf->last_block==0x38 /* generation 2 scanner ADF empty */
861 || (mf->generation == 1 && mf->last_block == 0x28) /* generation 1 scanner last block */
862 || (mf->generation >= 2 && !has_paper(s))) /* check status: no paper in ADF */
873 mf->adf_state = state_idle;
874 mf->last_block = 0;
879 mf->state = state_idle;