Lines Matching refs:mi

311     Microtek2_Info *mi;
330 mi = &md->info[md->scan_source];
341 if ( mi->onepass )
402 if ( mode == MS_MODE_COLOR && mi->onepass )
1134 Microtek2_Info *mi;
1142 mi = &md->info[MD_SOURCE_FLATBED];
1143 if ( mi->scsi_version != MI_SCSI_II_VERSION )
1146 mi->scsi_version);
1150 if ( mi->device_type != MI_DEVTYPE_SCANNER )
1153 mi->device_type);
1157 if ( strncasecmp("MICROTEK", mi->vendor, INQ_VENDOR_L) != 0
1158 && strncmp(" ", mi->vendor, INQ_VENDOR_L) != 0
1159 && strncmp("AGFA ", mi->vendor, INQ_VENDOR_L) != 0 )
1162 INQ_VENDOR_L, mi->vendor);
1166 if ( mi->depth & MI_HASDEPTH_16 )
1168 else if ( mi->depth & MI_HASDEPTH_14 )
1170 else if ( mi->depth & MI_HASDEPTH_12 )
1172 else if ( mi->depth & MI_HASDEPTH_10 )
1177 switch (mi->model_code)
1334 DBG(1, "check_inquiry: Model 0x%02x not supported\n", mi->model_code);
1663 dump_attributes(Microtek2_Info *mi)
1669 DBG(30, "dump_attributes: mi=%p\n", (void *) mi);
1675 DBG(1, " Vendor Name%15s: '%s'\n", " ", mi->vendor);
1676 DBG(1, " Model Name%16s: '%s'\n", " ", mi->model);
1677 DBG(1, " Revision%18s: '%s'\n", " ", mi->revision);
1678 DBG(1, " Model Code%16s: 0x%02x\n"," ", mi->model_code);
1679 switch(mi->model_code)
1721 mi->device_type,
1722 mi->device_type & MI_DEVTYPE_SCANNER ?
1725 switch (mi->scanner_type)
1742 " ", mi->option_device & MI_OPTDEV_ADF ? "Yes" : "No");
1744 " ", mi->option_device & MI_OPTDEV_TMA ? "Yes" : "No");
1746 " ", mi->option_device & MI_OPTDEV_ADP ? "Yes" : "No");
1748 " ", mi->option_device & MI_OPTDEV_APS ? "Yes" : "No");
1750 " ", mi->option_device & MI_OPTDEV_STRIPE ? "Yes" : "No");
1752 " ", mi->option_device & MI_OPTDEV_SLIDE ? "Yes" : "No");
1753 DBG(1, " Scan button%15s: %s\n", " ", mi->scnbuttn ? "Yes" : "No");
1758 DBG(1, " Color scanner%6s: %s\n", " ", (mi->color) ? "Yes" : "No");
1760 (mi->onepass) ? 1 : 3,
1761 (mi->onepass) ? "" : "es");
1763 " ", mi->max_xresolution, " ",mi->max_yresolution);
1765 mi->geo_width, (float) mi->geo_width / (float) mi->opt_resolution);
1767 mi->geo_height, (float) mi->geo_height / (float) mi->opt_resolution);
1768 DBG(1, " Optical resolution%1s: %d\n", " ", mi->opt_resolution);
1771 (mi->scanmode & MI_HASMODE_LINEART) ? " Yes" : " No", " ",
1772 (mi->scanmode & MI_HASMODE_HALFTONE) ? "Yes" : "No");
1775 (mi->scanmode & MI_HASMODE_GRAY) ? " Yes" : " No", " ",
1776 (mi->scanmode & MI_HASMODE_COLOR) ? " Yes" : " No");
1779 " ", (mi->depth & MI_HASDEPTH_NIBBLE) ? "Yes" : "No");
1781 " ", (mi->depth & MI_HASDEPTH_10) ? "Yes" : "No");
1783 (mi->depth & MI_HASDEPTH_12) ? "Yes" : "No");
1785 (mi->depth & MI_HASDEPTH_14) ? "Yes" : "No");
1787 (mi->depth & MI_HASDEPTH_16) ? "Yes" : "No");
1789 " ", (mi->has_dnldptrn) ? "Yes" : "No");
1790 DBG(1, " Builtin HT pattern%1s: %d\n", " ", mi->grain_slct);
1792 if ( MI_LUTCAP_NONE(mi->lut_cap) )
1794 if ( mi->lut_cap & MI_LUTCAP_256B )
1796 if ( mi->lut_cap & MI_LUTCAP_1024B )
1798 if ( mi->lut_cap & MI_LUTCAP_1024W )
1800 if ( mi->lut_cap & MI_LUTCAP_4096B )
1802 if ( mi->lut_cap & MI_LUTCAP_4096W )
1804 if ( mi->lut_cap & MI_LUTCAP_64k_W )
1806 if ( mi->lut_cap & MI_LUTCAP_16k_W )
1811 if ( mi->onepass)
1813 switch(mi->data_format)
1843 switch(mi->color_sequence[i])
1850 if ( mi->new_image_status == SANE_TRUE )
1854 if ( mi->direction & MI_DATSEQ_RTOL )
1858 DBG(1, " CCD gap%24s: %d lines\n", " ", mi->ccd_gap);
1859 DBG(1, " CCD pixels%21s: %d\n", " ", mi->ccd_pixels);
1861 " ", mi->calib_white);
1862 DBG(1, " Max calib space%16s: %d\n", " ", mi->calib_space);
1863 DBG(1, " Number of lens%17s: %d\n", " ", mi->nlens);
1864 DBG(1, " Max number of windows%10s: %d\n", " ", mi->nwindows);
1865 DBG(1, " Shading transfer function%6s: 0x%02x\n", " ",mi->shtrnsferequ);
1866 DBG(1, " Red balance%20s: %d\n", " ", mi->balance[0]);
1867 DBG(1, " Green balance%18s: %d\n", " ", mi->balance[1]);
1868 DBG(1, " Blue balance%19s: %d\n", " " , mi->balance[2]);
1870 " ", mi->buftype ? "Ping-Pong" : "Ring");
1871 DBG(1, " FEPROM%25s: %s\n", " ", mi->feprom ? "Yes" : "No");
2014 Microtek2_Info *mi;
2030 mi = &md->info[current_scan_source];
2033 get_lut_size(mi, &md->max_lut_size, &md->lut_entry_size);
2056 if ( mi->option_device & MI_OPTDEV_STRIPE )
2066 if ( mi->option_device & MI_OPTDEV_SLIDE )
2081 if ( (mi->scanmode & MI_HASMODE_COLOR) )
2088 if ( mi->scanmode & MI_HASMODE_GRAY )
2091 if ( ! (mi->scanmode & MI_HASMODE_COLOR ) )
2096 if ( mi->scanmode & MI_HASMODE_HALFTONE )
2099 if ( ! (mi->scanmode & MI_HASMODE_COLOR )
2100 && ! (mi->scanmode & MI_HASMODE_GRAY ) )
2109 if ( ! (mi->scanmode & MI_HASMODE_COLOR )
2110 && ! (mi->scanmode & MI_HASMODE_GRAY )
2111 && ! (mi->scanmode & MI_HASMODE_HALFTONE ) )
2120 if ( mi->depth & MI_HASDEPTH_NIBBLE )
2125 if ( mi->depth & MI_HASDEPTH_10 )
2127 if ( mi->depth & MI_HASDEPTH_12 )
2129 if ( mi->depth & MI_HASDEPTH_14 )
2131 if ( mi->depth & MI_HASDEPTH_16 )
2160 md->x_res_range_dpi.max = SANE_FIX(mi->max_xresolution);
2165 md->y_res_range_dpi.max = SANE_FIX(mi->max_yresolution);
2174 md->x_range_mm.max = SANE_FIX((double) mi->geo_width
2175 / (double) mi->opt_resolution
2179 md->y_range_mm.max = SANE_FIX((double) mi->geo_height
2180 / (double) mi->opt_resolution
3021 Microtek2_Info *mi;
3029 mi = &md->info[md->scan_source];
3529 SANE_FIX((uint8_t)( (float)mi->balance[0] / 2.55 ) );
3531 SANE_FIX((uint8_t)( (float)mi->balance[1] / 2.55 ) );
3533 SANE_FIX((uint8_t)( (float)mi->balance[2] / 2.55 ) );
3707 Microtek2_Info *mi;
3713 mi = &md->info[md->scan_source];
3715 if ( ! mi->onepass && ms->mode == MS_MODE_COLOR )
3730 else if ( mi->onepass && ms->mode == MS_MODE_COLOR )
3735 if ( ! mi->onepass && ms->mode == MS_MODE_COLOR && ms->current_pass < 3 )
3754 Microtek2_Info *mi;
3760 mi = &md->info[md->scan_source];
3765 mi->calib_divisor = 2;
3767 mi->calib_divisor = 1;
3769 DBG(30, "Calib Divisor: %d\n", mi->calib_divisor);
3772 ms->x_resolution_dpi = mi->opt_resolution / mi->calib_divisor;
3773 ms->y_resolution_dpi = mi->opt_resolution / 5; /* ignore dust particles */
3775 ms->y1_dots = mi->calib_white;
3776 ms->width_dots = mi->geo_width;
3780 ms->height_dots = mi->calib_space;
3784 if ( mi->depth & MI_HASDEPTH_16 )
3786 else if ( mi->depth & MI_HASDEPTH_14 )
3788 else if ( mi->depth & MI_HASDEPTH_12 )
3790 else if ( mi->depth & MI_HASDEPTH_10 )
3796 if ( mi->calib_space < 10 )
3821 Microtek2_Info *mi;
3831 mi = &md->info[md->scan_source];
3894 dpm = (double) mi->opt_resolution / MM_PER_INCH;
3896 if ( ms->x1_dots > ( mi->geo_width - 10 ) )
3897 ms->x1_dots = ( mi->geo_width - 10 );
3899 if ( ms->y1_dots > ( mi->geo_height - 10 ) )
3900 ms->y1_dots = ( mi->geo_height - 10 );
3902 if ( x2_dots >= mi->geo_width )
3903 x2_dots = mi->geo_width - 1;
3905 if ( y2_dots >= mi->geo_height )
3906 y2_dots = mi->geo_height - 1;
3921 if ((mi->direction & MI_DATSEQ_RTOL) == 1)
3922 ms->x1_dots = mi->geo_width - ms->x1_dots - ms->width_dots;
4021 Microtek2_Info *mi;
4026 mi = &md->info[md->scan_source];
4036 if ( MI_LINEART_NONE(mi->scanmode)
4277 scsi_inquiry(Microtek2_Info *mi, char *device)
4287 DBG(30, "scsi_inquiry: mi=%p, device='%s'\n", (void *) mi, device);
4344 INQ_GET_QUAL(mi->device_qualifier, result);
4345 INQ_GET_DEVT(mi->device_type, result);
4346 INQ_GET_VERSION(mi->scsi_version, result);
4347 INQ_GET_VENDOR(mi->vendor, (char *)result);
4348 INQ_GET_MODEL(mi->model, (char *)result);
4349 INQ_GET_REV(mi->revision, (char *)result);
4350 INQ_GET_MODELCODE(mi->model_code, result);
4363 Microtek2_Info *mi;
4370 mi = &pmi[scan_source];
4372 DBG(30, "scsi_read_attributes: mi=%p, device='%s', source=%d\n",
4373 (void *) mi, device, scan_source);
4403 mi->calib_divisor = 1;
4406 mi->calib_divisor = 2;
4415 RSA_COLOR(mi->color, result);
4416 RSA_ONEPASS(mi->onepass, result);
4417 RSA_SCANNERTYPE(mi->scanner_type, result);
4418 RSA_FEPROM(mi->feprom, result);
4419 RSA_DATAFORMAT(mi->data_format, result);
4420 RSA_COLORSEQUENCE(mi->color_sequence, result);
4421 RSA_NIS(mi->new_image_status, result);
4422 RSA_DATSEQ(mi->direction, result);
4423 RSA_CCDGAP(mi->ccd_gap, result);
4424 RSA_MAX_XRESOLUTION(mi->max_xresolution, result);
4425 RSA_MAX_YRESOLUTION(mi->max_yresolution, result);
4426 RSA_GEOWIDTH(mi->geo_width, result);
4427 RSA_GEOHEIGHT(mi->geo_height, result);
4428 RSA_OPTRESOLUTION(mi->opt_resolution, result);
4429 RSA_DEPTH(mi->depth, result);
4432 mi->depth |= MI_HASDEPTH_14;
4433 RSA_SCANMODE(mi->scanmode, result);
4434 RSA_CCDPIXELS(mi->ccd_pixels, result);
4435 RSA_LUTCAP(mi->lut_cap, result);
4436 RSA_DNLDPTRN(mi->has_dnldptrn, result);
4437 RSA_GRAINSLCT(mi->grain_slct, result);
4438 RSA_SUPPOPT(mi->option_device, result);
4439 RSA_CALIBWHITE(mi->calib_white, result);
4440 RSA_CALIBSPACE(mi->calib_space, result);
4441 RSA_NLENS(mi->nlens, result);
4442 RSA_NWINDOWS(mi->nwindows, result);
4443 RSA_SHTRNSFEREQU(mi->shtrnsferequ, result);
4444 RSA_SCNBTTN(mi->scnbuttn, result);
4445 RSA_BUFTYPE(mi->buftype, result);
4446 RSA_REDBALANCE(mi->balance[0], result);
4447 RSA_GREENBALANCE(mi->balance[1], result);
4448 RSA_BLUEBALANCE(mi->balance[2], result);
4449 RSA_APSMAXFRAMES(mi->aps_maxframes, result);
4455 dump_attributes(mi);
4724 Microtek2_Info *mi;
4732 mi = &md->info[md->scan_source];
4741 /* mi->new_image_status = SANE_TRUE; */ /* for testing*/
4743 if ( mi->new_image_status == SANE_TRUE )
4761 if ( mi->new_image_status == SANE_TRUE )
5259 Microtek2_Info *mi;
5266 mi = &md->info[md->scan_source];
5376 get_lut_size(mi, &ms->lut_size, &ms->lut_entry_size);
5400 if ( mi->data_format == MI_DATAFMT_CHUNKY )
5436 if (mi->model_code == 0x9a)
5520 Microtek2_Info *mi;
5528 mi = &md->info[md->scan_source];
5551 if ( ms->mode == MS_MODE_COLOR && mi->data_format == MI_DATAFMT_LPLSEGREG )
5559 extra_buf_size = 2 * ms->bpl * mi->ccd_gap
5560 * (int) ceil( (double) mi->max_yresolution
5561 / (double) mi->opt_resolution);
5628 if ( mi->onepass && ms->mode == MS_MODE_COLOR )
5648 Microtek2_Info *mi;
5651 mi = &md->info[md->scan_source];
5653 if ( mi->depth & MI_HASDEPTH_16 )
5655 else if ( mi->depth & MI_HASDEPTH_14 )
5657 else if ( mi->depth & MI_HASDEPTH_12 )
5659 else if ( mi->depth & MI_HASDEPTH_10 )
5668 mi->geo_width / mi->calib_divisor, lines);
5671 if (mi->data_format == MI_DATAFMT_LPLSEGREG)
5679 pixel < (uint16_t) (mi->geo_width / mi->calib_divisor);
5684 switch( mi->data_format )
5690 + mi->color_sequence[color]
5696 + mi->color_sequence[color]
5704 + linenr * 3 * ( mi->geo_width
5705 / mi->calib_divisor )
5707 + mi->color_sequence[color]);
5729 Microtek2_Info *mi;
5733 mi = &md->info[md->scan_source];
5737 if ( mi->depth & MI_HASDEPTH_16 )
5739 else if ( mi->depth & MI_HASDEPTH_14 )
5741 else if ( mi->depth & MI_HASDEPTH_12 )
5743 else if ( mi->depth & MI_HASDEPTH_10 )
5753 num_shading_pixels = mi->geo_width / mi->calib_divisor;
5772 offset = mi->color_sequence[color]
5814 Microtek2_Info *mi;
5818 mi = &md->info[md->scan_source];
5820 if ( mi->depth & MI_HASDEPTH_16 )
5822 else if ( mi->depth & MI_HASDEPTH_14 )
5824 else if ( mi->depth & MI_HASDEPTH_12 )
5826 else if ( mi->depth & MI_HASDEPTH_10 )
5881 Microtek2_Info *mi;
5891 mi = &md->info[md->scan_source];
5900 get_lut_size( mi, &ms->lut_size, &ms->lut_entry_size );
5908 shad_pixels = mi->geo_width;
5962 for (lfd_bit = 0; ( lfd_bit < mi->geo_width ) && ( count < (int)ms->ppl );
5968 if ( mi->direction & MI_DATSEQ_RTOL )
6047 Microtek2_Info *mi;
6056 mi = &md->info[md->scan_source];
6059 if ( ! MI_WHITE_SHADING_ONLY(mi->shtrnsferequ)
6172 * mi->geo_width / mi->calib_divisor,
6191 if ( ! MI_WHITE_SHADING_ONLY(mi->shtrnsferequ)
6248 if ( mi->model_code == 0x94 )
6315 * mi->geo_width / mi->calib_divisor,
6332 if (mi->model_code == 0x94)
6361 Microtek2_Info *mi;
6376 mi = &md->info[md->scan_source];
6379 get_lut_size(mi, &ms->lut_size, &ms->lut_entry_size);
6380 length = 3 * ms->lut_entry_size * mi->geo_width / mi->calib_divisor;
6405 switch( mi->data_format )
6415 for ( i = 0; i < ( mi->geo_width / mi->calib_divisor ); i++ )
6427 + color * ( mi->geo_width / mi->calib_divisor ) + i) =
6440 + color * ( mi->geo_width / mi->calib_divisor ) + i) = value;
6455 for ( i = 0; i < ( mi->geo_width / mi->calib_divisor ); i++ )
6462 + line * 3 * mi->geo_width / mi->calib_divisor
6468 + color * ( mi->geo_width / mi->calib_divisor ) + i) =
6474 + line * 3 * mi->geo_width / mi->calib_divisor
6481 + color * ( mi->geo_width / mi->calib_divisor ) + i) = value;
6490 for ( i = 0; i < ( mi->geo_width / mi->calib_divisor ); i++ )
6497 + line * 3 * mi->geo_width / mi->calib_divisor
6503 + color * ( mi->geo_width / mi->calib_divisor ) + i) =
6511 + line * 3 * mi->geo_width / mi->calib_divisor
6518 + color * ( mi->geo_width / mi->calib_divisor ) + i) =
6522 + color * ( mi->geo_width / mi->calib_divisor ) + i) = value;
6532 mi->data_format);
6794 get_lut_size(Microtek2_Info *mi, int *max_lut_size, int *lut_entry_size)
6799 DBG(30, "get_lut_size: mi=%p\n", (void *) mi);
6809 if ( MI_LUTCAP_NONE(mi->lut_cap) )
6815 if ( mi->lut_cap & MI_LUTCAP_256B )
6820 if ( mi->lut_cap & MI_LUTCAP_1024B )
6825 if ( mi->lut_cap & MI_LUTCAP_1024W )
6830 if ( mi->lut_cap & MI_LUTCAP_4096B )
6835 if ( mi->lut_cap & MI_LUTCAP_4096W )
6840 if ( mi->lut_cap & MI_LUTCAP_64k_W )
6845 if ( mi->lut_cap & MI_LUTCAP_16k_W )
6850 DBG(30, "get_lut_size: mi=%p, lut_size=%d, lut_entry_size=%d\n",
6851 (void *) mi, *max_lut_size, *lut_entry_size);
6862 Microtek2_Info *mi;
6879 mi = &md->info[md->scan_source];
6889 if ( mi->depth & MI_HASDEPTH_16 )
6894 else if ( mi->depth & MI_HASDEPTH_14 )
6899 else if ( mi->depth & MI_HASDEPTH_12 )
6904 else if ( mi->depth & MI_HASDEPTH_10 )
6988 Microtek2_Info *mi;
6997 mi = &md->info[md->scan_source];
6998 /* mi = &md->info[MD_SOURCE_FLATBED]; */
7008 for ( i = 0; i < ( mi->geo_width / mi->calib_divisor ); i++)
7011 + color * ( mi->geo_width / mi->calib_divisor ) + i);
7012 switch ( mi->shtrnsferequ )
7021 + color * ( mi->geo_width / mi->calib_divisor ) + i) =
7028 * ((double) mi->balance[color]
7031 + color * ( mi->geo_width / mi->calib_divisor ) + i) =
7036 * ( (double) mi->balance[color]
7040 + color * ( mi->geo_width / mi->calib_divisor ) + i) =
7046 mi->shtrnsferequ );
7068 Microtek2_Info *mi;
7083 mi = &md->info[md->scan_source];
7091 if ( mi->depth & MI_HASDEPTH_16 )
7093 else if ( mi->depth & MI_HASDEPTH_14 )
7095 else if ( mi->depth & MI_HASDEPTH_12 )
7097 else if ( mi->depth & MI_HASDEPTH_10 )
7149 Microtek2_Info *mi;
7158 mi = &md->info[md->scan_source];
7204 if ( ! mi->onepass )
7212 switch ( mi->data_format )
7236 DBG(1, "reader_process: format %d\n", mi->data_format);
7309 if ( md->revision == 1.00 && mi->model_code != 0x81 )
7396 Microtek2_Info *mi;
7411 mi = &md->info[md->scan_source];
7455 colseq2 = mi->color_sequence[2];
7538 Microtek2_Info *mi;
7550 mi = &md->info[md->scan_source];
7552 right_to_left = mi->direction & MI_DATSEQ_RTOL;
7677 Microtek2_Info *mi;
7692 mi = &md->info[md->scan_source];
7695 right_to_left = mi->direction & MI_DATSEQ_RTOL;
7703 + ( mi->color_sequence[color] + 1 ) * ( ms->bpl / 3 )
7710 + mi->color_sequence[color] * ( ms->bpl / 3 );
7741 Microtek2_Info *mi;
7760 mi = &md->info[md->scan_source];
7808 mi->color_sequence[color],
7953 Microtek2_Info *mi;
7963 mi = &md->info[md->scan_source];
7966 right_to_left = mi->direction & MI_DATSEQ_RTOL;
8100 Microtek2_Info *mi;
8115 mi = &md->info[md->scan_source];
8118 right_to_left = mi->direction & MI_DATSEQ_RTOL;
8187 Microtek2_Info *mi;
8197 mi = &md->info[md->scan_source];
8198 right_to_left = mi->direction & MI_DATSEQ_RTOL;
8306 Microtek2_Info *mi;
8320 mi = &md->info[md->scan_source];
8321 right_to_left = mi->direction & MI_DATSEQ_RTOL;