Lines Matching refs:mp
491 mp150_t *mp = (mp150_t *) s->subdriver;
495 mp->cb.buf, 1024);
499 mp->cb.buf[datalen] = 0;
502 PDBG (pixma_dbg (10, "XML response back from scanner:\n%s\n", mp->cb.buf));
505 return pixma_parse_xml_response((const char*)mp->cb.buf) == PIXMA_STATUS_OK;
507 return (strcasestr ((const char *) mp->cb.buf, XML_OK) != NULL);
514 mp150_t *mp = (mp150_t *) s->subdriver;
516 pixma_newcmd (&mp->cb, cmd_start_session, 0, 0);
517 mp->cb.buf[3] = 0x00;
518 return pixma_exec (s, &mp->cb);
524 mp150_t *mp = (mp150_t *) s->subdriver;
526 pixma_newcmd (&mp->cb, cmd_scan_start_3, 0, 0);
527 mp->cb.buf[3] = 0x00;
528 return pixma_exec (s, &mp->cb);
534 mp150_t *mp = (mp150_t *) s->subdriver;
535 if (mp->generation >= 3)
537 return ((mp->current_status[0] & 0x01) == 1 || (mp->current_status[0] & 0x02) == 2);
539 if (mp->generation == 1)
541 return (mp->current_status[8] == 1);
545 return (mp->current_status[9] == 1);
552 mp150_t *mp = (mp150_t *) s->subdriver;
555 return (mp->current_status[1] == 0 || mp->current_status[2] == 0);
557 return (mp->current_status[1] == 0);
563 mp150_t *mp = (mp150_t *) s->subdriver;
564 while (pixma_read (s->io, mp->imgbuf, IMAGE_BLOCK_SIZE) >= 0);
570 mp150_t *mp = (mp150_t *) s->subdriver;
571 mp->adf_state = state_idle; /* reset adf scanning */
572 return pixma_exec_short_cmd (s, &mp->cb, cmd_abort_session);
578 mp150_t *mp = (mp150_t *) s->subdriver;
581 data = pixma_newcmd (&mp->cb, cmd_select_source, 12, 0);
582 data[5] = ((mp->generation == 2) ? 1 : 0);
605 return pixma_exec (s, &mp->cb);
611 mp150_t *mp = (mp150_t *) s->subdriver;
617 data = pixma_newcmd (&mp->cb, cmd_gamma, 4096 + 8, 0);
638 data = pixma_newcmd (&mp->cb, cmd_gamma, 1024 * 2 + 8, 0);
656 return pixma_exec (s, &mp->cb);
660 calc_raw_width (const mp150_t * mp, const pixma_scan_param_t * param)
666 if (mp->generation >= 2)
668 raw_width = ALIGN_SUP ((param->w * mp->scale) + param->xs, 32);
691 mp150_t *mp = (mp150_t *) s->subdriver;
694 __func__, s->param->line_size, s->param->w, s->param->wx, mp->scale));*/
698 * mp->scale
705 mp150_t *mp = (mp150_t *) s->subdriver;
707 unsigned xdpi = s->param->xdpi * mp->scale;
708 unsigned ydpi = s->param->xdpi * mp->scale;
709 unsigned x = s->param->x * mp->scale;
711 unsigned y = s->param->y * mp->scale;
712 unsigned wx = calc_raw_width (mp, s->param);
713 unsigned h = MIN (s->param->h, s->cfg->height * s->param->ydpi / 75) * mp->scale;
715 if (mp->generation <= 2)
719 data = pixma_newcmd (&mp->cb, cmd_scan_param, 0x30, 0);
723 if (mp->generation == 2)
741 data = pixma_newcmd (&mp->cb, cmd_scan_param_3, 0x38, 0);
797 return pixma_exec (s, &mp->cb);
803 mp150_t *mp = (mp150_t *) s->subdriver;
808 data = pixma_newcmd (&mp->cb, cmd_status_3, 0, status_len);
809 RET_IF_ERR (pixma_exec (s, &mp->cb));
810 memcpy (mp->current_status, data, status_len);
817 mp150_t *mp = (mp150_t *) s->subdriver;
821 status_len = (mp->generation == 1) ? 12 : 16;
822 data = pixma_newcmd (&mp->cb, cmd_status, 0, status_len);
823 RET_IF_ERR (pixma_exec (s, &mp->cb));
824 memcpy (mp->current_status, data, status_len);
838 mp150_t *mp = (mp150_t *) s->subdriver;
840 data = pixma_newcmd (&mp->cb, cmd_time, 20, 0);
845 return pixma_exec (s, &mp->cb);
854 mp150_t *mp = (mp150_t *) s->subdriver;
860 if ((mp->last_block & 0x20) == 0)
865 mp->state = state_transfering;
866 mp->cb.reslen =
867 pixma_cmd_transaction (s, cmd, sizeof (cmd), mp->cb.buf, 512);
868 datalen = mp->cb.reslen;
872 memcpy (header, mp->cb.buf, hlen);
877 memcpy (data, mp->cb.buf + hlen, datalen);
879 if (mp->cb.reslen == 512)
887 mp->state = state_scanning;
888 mp->cb.expected_reslen = 0;
889 RET_IF_ERR (pixma_check_result (&mp->cb));
890 if (mp->cb.reslen < hlen)
899 mp150_t *mp = (mp150_t *) s->subdriver;
903 data = pixma_newcmd (&mp->cb, cmd_error_info, 0, len);
904 RET_IF_ERR (pixma_exec (s, &mp->cb));
1044 mp150_t *mp = (mp150_t *) s->subdriver;
1047 RET_IF_ERR ((mp->generation >= 3) ? query_status_3 (s)
1052 if (mp->generation >= 3)
1141 * Each complete line in mp->imgbuf is processed for reordering pixels above
1146 mp150_t *mp = (mp150_t *) s->subdriver;
1153 ib->rptr = mp->imgbuf;
1154 ib->rend = mp->data_left_ofs;
1168 if (mp->generation >= 3)
1177 sptr = dptr = gptr = cptr = mp->imgbuf;
1181 lines = (mp->data_left_ofs - mp->imgbuf) / line_size;
1195 sptr, dptr, mp->linebuf));*/
1202 && (mp->generation < 5
1215 reorder_pixels (mp->linebuf, sptr, c, n, m, s->param->wx, line_size);
1219 if (mp->scale > 1)
1222 shrink_image(cptr, sptr, s->param->xs, s->param->w, s->param->wx, mp->scale, c);
1240 ib->rptr = mp->imgbuf;
1242 return mp->data_left_ofs - sptr; /* # of non processed bytes */
1248 mp150_t *mp;
1251 mp = (mp150_t *) calloc (1, sizeof (*mp));
1252 if (!mp)
1258 free (mp);
1262 s->subdriver = mp;
1263 mp->state = state_idle;
1265 mp->cb.buf = buf;
1266 mp->cb.size = CMDBUF_SIZE;
1267 mp->cb.res_header_len = 8;
1268 mp->cb.cmd_header_len = 16;
1269 mp->cb.cmd_len_field_ofs = 14;
1271 mp->imgbuf = buf + CMDBUF_SIZE;
1274 mp->generation = (s->cfg->pid >= MP160_PID) ? 2 : 1;
1277 mp->generation = 3;
1280 mp->generation = 4;
1283 mp->generation = 5; /* special image conversion @ high dpi */
1287 mp->generation = 2;
1289 PDBG (pixma_dbg (3, "*mp150_open***** This is a generation %d scanner. *****\n", mp->generation));
1292 mp->adf_state = state_idle;
1294 if (mp->generation < 4)
1305 mp150_t *mp = (mp150_t *) s->subdriver;
1308 free (mp->cb.buf);
1309 free (mp);
1316 mp150_t *mp = (mp150_t *) s->subdriver;
1368 if (mp->generation >= 2)
1372 sp->xs = (sp->x * mp->scale) % 32;
1377 sp->wx = calc_raw_width (mp, sp);
1392 if (mp->generation >= 4)
1408 mp->scale = 1;
1411 mp->scale = s->cfg->min_xdpi / sp->xdpi;
1414 sp->xdpi, s->cfg->min_xdpi, mp->scale));*/
1425 mp150_t *mp = (mp150_t *) s->subdriver;
1427 if (mp->state != state_idle)
1431 if (s->param->adf_pageid && is_scanning_from_adf(s) && mp->adf_state == state_idle)
1438 if (mp->generation >= 4 && mp->adf_state == state_idle)
1480 if (mp->generation >= 4 && mp->adf_state == state_idle)
1492 if (mp->generation <= 2 || mp->adf_state == state_idle)
1518 if ((error >= 0) || (mp->generation >= 3))
1519 mp->state = state_warmup;
1520 if ((error >= 0) && (mp->generation <= 2))
1526 for (i = (mp->generation >= 3) ? 3 : 1 ; i > 0 && error >= 0; i--)
1535 if ((error >= 0) || (mp->generation >= 3))
1536 mp->state = state_warmup;
1539 if ((error >= 0) && (mp->generation >= 3))
1543 mp->last_block = 0x38; /* Force abort session if ADF scan */
1550 mp->adf_state = state_scanning;
1558 mp150_t *mp = (mp150_t *) s->subdriver;
1562 if (mp->state == state_warmup)
1567 mp->state = state_scanning;
1568 mp->last_block = 0;
1572 mp->cb.buf = realloc (mp->cb.buf,
1574 if (!mp->cb.buf)
1576 mp->linebuf = mp->cb.buf + CMDBUF_SIZE;
1577 mp->imgbuf = mp->data_left_ofs = mp->linebuf + line_size;
1578 mp->data_left_len = 0;
1588 if ((mp->last_block & 0x28) == 0x28)
1591 mp->state = state_finished;
1594 /*PDBG (pixma_dbg (4, "*mp150_fill_buffer***** moving %u bytes into buffer *****\n", mp->data_left_len));*/
1595 memmove (mp->imgbuf, mp->data_left_ofs, mp->data_left_len);
1596 error = read_image_block (s, header, mp->imgbuf + mp->data_left_len);
1600 mp->last_block = 0x38; /* end scan in mp150_finish_scan() */
1612 mp->last_block = header[8] & 0x38;
1625 mp->data_left_ofs = mp->imgbuf + mp->data_left_len + bytes_received;
1626 mp->data_left_len = post_process_image_data (s, ib);
1627 mp->data_left_ofs -= mp->data_left_len;
1638 mp150_t *mp = (mp150_t *) s->subdriver;
1640 switch (mp->state)
1650 if (mp->generation <= 2 || !is_scanning_from_adf (s) || mp->last_block == 0x38)
1658 if (mp->generation >= 4)
1667 mp->state = state_idle;