Lines Matching refs:priv

98   mustek_pp_ccd300_priv *priv = dev->priv;
101 (priv->motor_step % 5 == 0 ? 0x03 : 0x13));
108 mustek_pp_ccd300_priv *priv = dev->priv;
111 priv->bank_count++;
112 priv->bank_count &= 7;
120 mustek_pp_ccd300_priv *priv = dev->priv;
126 priv->bank_count = (val & 0x07);
141 mustek_pp_ccd300_priv *priv = dev->priv;
160 while ((priv->bank_count != bankcount) && (diff < priv->wait_bank));
168 mustek_pp_ccd300_priv *priv = dev->priv;
172 switch (priv->hwres)
186 if (priv->ccd_type == 1)
201 mustek_pp_ccd300_priv *priv = dev->priv;
203 adjustline = (dev->bottomX - dev->topX) * priv->hwres / 300;
204 priv->adjustskip = priv->adjustskip * priv->hwres / 300;
208 priv->adjustskip);
212 sanei_pa4s2_writebyte (dev->fd, 5, (adjustline + priv->adjustskip) >> 8);
214 sanei_pa4s2_writebyte (dev->fd, 5, (adjustline + priv->adjustskip) & 0xFF);
225 mustek_pp_ccd300_priv *priv = dev->priv;
235 priv->motor_step = lamp_on;
246 mustek_pp_ccd300_priv *priv = dev->priv;
248 switch (priv->ccd_type)
284 mustek_pp_ccd300_priv *priv = dev->priv;
285 switch (priv->asic)
300 mustek_pp_ccd300_priv *priv = dev->priv;
301 switch (priv->asic)
316 mustek_pp_ccd300_priv *priv = dev->priv;
317 switch (priv->asic)
332 mustek_pp_ccd300_priv *priv = dev->priv;
338 wait_bank_change (dev, priv->bank_count, 1);
346 mustek_pp_ccd300_priv *priv = dev->priv;
347 switch (priv->asic)
368 mustek_pp_ccd300_priv *priv = dev->priv;
369 int ctr, skips = priv->adjustskip + 1, cval;
377 if (priv->hwres == dev->res)
438 pos += priv->res_step;
478 mustek_pp_ccd300_priv *priv = dev->priv;
483 wait_bank_change (dev, priv->bank_count, 1);
508 mustek_pp_ccd300_priv *priv = dev->priv;
515 wait_bank_change (dev, priv->bank_count, 1);
519 priv->ref_black = priv->ref_red = priv->ref_green = priv->ref_blue =
544 priv->blackpos = blackpos;
545 priv->saved_skipcount = (blackpos + 12) & 0xFF;
555 mustek_pp_ccd300_priv *priv = dev->priv;
562 wait_bank_change (dev, priv->bank_count, 1);
572 priv->ref_red = sum / 8;
581 wait_bank_change (dev, priv->bank_count, 1);
591 priv->ref_green = sum / 8;
600 wait_bank_change (dev, priv->bank_count, 1);
610 priv->ref_blue = sum / 8;
623 mustek_pp_ccd300_priv *priv = dev->priv;
637 priv->ref_red);
643 priv->ref_green);
649 priv->ref_blue);
655 priv->channel = CCD300_CHANNEL_GRAY;
660 priv->ref_black);
676 priv->calib_g[ctr] = sum / 4;
692 priv->calib_r[ctr] = sum / 4;
705 priv->calib_b[ctr] = sum / 4;
719 mustek_pp_ccd300_priv *priv = dev->priv;
721 priv->channel = CCD300_CHANNEL_GRAY;
727 wait_bank_change (dev, priv->bank_count, 1);
729 read_line_101x (dev, buf, CCD300_MAXHSIZE, priv->ref_black, NULL, NULL);
735 for (ctr = priv->blackpos; ctr > priv->blackpos - 10; ctr--)
749 mustek_pp_ccd300_priv *priv = dev->priv;
751 priv->saved_mode = dev->mode;
752 priv->saved_invert = dev->invert;
753 priv->saved_skipcount = priv->skipcount;
754 priv->saved_skipimagebyte = priv->skipimagebytes;
755 priv->saved_adjustskip = priv->adjustskip;
756 priv->saved_res = dev->res;
757 priv->saved_hwres = priv->hwres;
758 priv->saved_res_step = priv->res_step;
759 priv->saved_line_step = priv->line_step;
760 priv->saved_channel = priv->channel;
763 priv->hwres = dev->res = 300;
765 priv->skipcount = priv->skipimagebytes = 0;
767 priv->channel = CCD300_CHANNEL_GRAY;
777 dev->mode = priv->saved_mode;
778 dev->invert = priv->saved_invert;
779 priv->skipcount = priv->saved_skipcount;
780 priv->skipimagebytes = priv->saved_skipimagebyte;
781 priv->adjustskip = priv->saved_adjustskip;
782 dev->res = priv->saved_res;
783 priv->hwres = priv->saved_hwres;
784 priv->res_step = priv->saved_res_step;
785 priv->line_step = priv->saved_line_step;
786 priv->channel = priv->saved_channel;
788 priv->hwres = dev->res = 300;
789 priv->skipcount = priv->skipimagebytes = 0;
795 if ((dev->mode == MODE_COLOR) && (priv->ccd_type != 0))
798 dev->mode = priv->saved_mode;
799 dev->invert = priv->saved_invert;
800 priv->skipcount = priv->saved_skipcount;
801 priv->skipimagebytes = priv->saved_skipimagebyte;
802 priv->adjustskip = priv->saved_adjustskip;
803 dev->res = priv->saved_res;
804 priv->hwres = priv->saved_hwres;
805 priv->res_step = priv->saved_res_step;
806 priv->line_step = priv->saved_line_step;
807 priv->channel = priv->saved_channel;
819 priv->hwres = dev->res = 300;
820 priv->skipcount = priv->skipimagebytes = 0;
828 dev->mode = priv->saved_mode;
829 dev->invert = priv->saved_invert;
830 priv->skipcount = priv->saved_skipcount;
831 priv->skipimagebytes = priv->saved_skipimagebyte;
832 priv->adjustskip = priv->saved_adjustskip;
833 dev->res = priv->saved_res;
834 priv->hwres = priv->saved_hwres;
835 priv->res_step = priv->saved_res_step;
836 priv->line_step = priv->saved_line_step;
837 priv->channel = priv->saved_channel;
851 mustek_pp_ccd300_priv *priv = dev->priv;
853 priv->line_diff += SANE_FIX (300.0 / (float) dev->res);
855 skips = (priv->line_diff >> SANE_FIXED_SCALE_SHIFT);
860 wait_bank_change (dev, priv->bank_count, 1);
864 priv->line_diff &= 0xFFFF;
867 wait_bank_change (dev, priv->bank_count, 1);
869 read_line_101x (dev, buf, dev->params.pixels_per_line, priv->ref_black,
870 priv->calib_g, NULL);
882 mustek_pp_ccd300_priv *priv = dev->priv;
889 buf[ctr >> 3] ^= ((gbuf[ctr] > priv->bw) ? (1 << (7 - ctr % 8)) : 0);
900 mustek_pp_ccd300_priv *priv = dev->priv;
901 int step = priv->line_step;
906 red = priv->red[priv->redline];
907 blue = priv->blue[priv->blueline];
909 priv->ccd_line++;
911 if ((priv->rdiff >> SANE_FIXED_SCALE_SHIFT) == priv->ccd_line)
914 priv->rdiff += step;
919 if ((priv->bdiff >> SANE_FIXED_SCALE_SHIFT) == priv->ccd_line)
922 priv->bdiff += step;
927 if ((priv->gdiff >> SANE_FIXED_SCALE_SHIFT) == priv->ccd_line)
930 priv->gdiff += step;
938 wait_bank_change (dev, priv->bank_count, 1);
940 if (priv->ccd_line >= (priv->line_step >> SANE_FIXED_SCALE_SHIFT))
941 priv->redline = (priv->redline + 1) % priv->green_offs;
942 if (priv->ccd_line >=
943 priv->blue_offs + (priv->line_step >> SANE_FIXED_SCALE_SHIFT))
944 priv->blueline = (priv->blueline + 1) % priv->blue_offs;
949 priv->channel = CCD300_CHANNEL_RED;
951 priv->channel = CCD300_CHANNEL_BLUE;
953 priv->channel = CCD300_CHANNEL_GREEN;
956 wait_bank_change (dev, priv->bank_count, 1);
958 if (priv->ccd_line >= priv->green_offs && gogreen)
974 priv->ref_red, priv->calib_r, NULL);
980 priv->redline = (priv->redline + 1) % priv->green_offs;
982 if (priv->ccd_line >= priv->green_offs && gogreen)
1002 wait_bank_change (dev, priv->bank_count, 1);
1006 priv->ref_blue, priv->calib_b, NULL);
1012 if (priv->ccd_line >=
1013 priv->blue_offs + (priv->line_step >> SANE_FIXED_SCALE_SHIFT))
1014 priv->blueline = (priv->blueline + 1) % priv->blue_offs;
1023 wait_bank_change (dev, priv->bank_count, 1);
1026 read_line_101x (dev, priv->green, dev->params.pixels_per_line,
1027 priv->ref_green, priv->calib_g, NULL);
1031 src = priv->green;
1055 mustek_pp_ccd300_priv *priv = dev->priv;
1056 priv->channel = channel;
1063 mustek_pp_ccd300_priv *priv = dev->priv;
1065 priv->motor_step++;
1068 if (priv->motor_phase > 3)
1069 priv->motor_phase = 3;
1072 sanei_pa4s2_writebyte (dev->fd, 5, fullstep[priv->motor_phase]);
1074 priv->motor_phase = (priv->motor_phase == 0 ? 3 : priv->motor_phase - 1);
1076 set_ccd_channel_1013 (dev, priv->channel);
1086 mustek_pp_ccd300_priv *priv = dev->priv;
1103 wait_bank_change (dev, priv->bank_count, 0);
1115 mustek_pp_ccd300_priv *priv = dev->priv;
1117 priv->motor_step++;
1124 sanei_pa4s2_writebyte (dev->fd, 5, halfstep[priv->motor_phase]);
1126 priv->motor_phase =
1127 (priv->motor_phase == 7 ? 0 : priv->motor_phase + 1);
1131 set_ccd_channel_1013 (dev, priv->channel);
1140 mustek_pp_ccd300_priv *priv = dev->priv;
1143 priv->res_step = SANE_FIX ((float) priv->hwres / (float) dev->res);
1155 priv->channel = CCD300_CHANNEL_GRAY;
1159 priv->channel = CCD300_CHANNEL_RED;
1164 set_ccd_channel_1013 (dev, priv->channel);
1183 priv->adjustskip = priv->skipcount + priv->skipimagebytes;
1185 DBG (5, "config_ccd_1013: adjustskip %u\n", priv->adjustskip);
1187 sanei_pa4s2_writebyte (dev->fd, 5, priv->adjustskip / 16 + 2);
1189 priv->adjustskip %= 16;
1260 mustek_pp_ccd300_priv *priv = dev->priv;
1262 priv->motor_step++;
1268 set_ccd_channel_1015 (dev, priv->channel);
1278 mustek_pp_ccd300_priv *priv = dev->priv;
1280 priv->motor_step++;
1284 switch (priv->ccd_type)
1297 set_ccd_channel_1015 (dev, priv->channel);
1309 mustek_pp_ccd300_priv *priv = dev->priv;
1311 priv->channel = channel;
1313 priv->image_control &= 0x34;
1314 chancode |= priv->image_control;
1317 priv->image_control = chancode;
1329 mustek_pp_ccd300_priv *priv = dev->priv;
1332 priv->res_step = SANE_FIX ((float) priv->hwres / (float) dev->res);
1337 priv->image_control = 4;
1345 priv->channel = CCD300_CHANNEL_GRAY;
1349 priv->channel = CCD300_CHANNEL_RED;
1354 set_ccd_channel_1015 (dev, priv->channel);
1359 priv->image_control &= 0xE4;
1362 priv->image_control |= 0x10;
1365 sanei_pa4s2_writebyte (dev->fd, 6, priv->image_control);
1372 switch (priv->ccd_type)
1400 priv->adjustskip = priv->skipcount + priv->skipimagebytes;
1406 sanei_pa4s2_writebyte (dev->fd, 5, priv->adjustskip / 32 + 1);
1408 priv->adjustskip %= 32;
1414 switch (priv->ccd_type)
1444 mustek_pp_ccd300_priv *priv = dev->priv;
1447 priv->hwres, dev->mode, dev->invert, dev->params.pixels_per_line);
1449 switch (priv->asic)
1465 mustek_pp_ccd300_priv *priv = dev->priv;
1467 priv->saved_mode = dev->mode;
1468 priv->saved_invert = dev->invert;
1469 priv->saved_skipcount = priv->skipcount;
1470 priv->saved_skipimagebyte = priv->skipimagebytes;
1471 priv->saved_adjustskip = priv->adjustskip;
1472 priv->saved_res = dev->res;
1473 priv->saved_hwres = priv->hwres;
1474 priv->saved_res_step = priv->res_step;
1475 priv->saved_line_step = priv->line_step;
1476 priv->saved_channel = priv->channel;
1479 priv->hwres = dev->res = 100;
1482 priv->skipcount = priv->skipimagebytes = 0;
1486 switch (priv->asic)
1498 dev->mode = priv->saved_mode;
1499 dev->invert = priv->saved_invert;
1500 priv->skipcount = priv->saved_skipcount;
1501 priv->skipimagebytes = priv->saved_skipimagebyte;
1502 priv->adjustskip = priv->saved_adjustskip;
1503 dev->res = priv->saved_res;
1504 priv->hwres = priv->saved_hwres;
1505 priv->res_step = priv->saved_res_step;
1506 priv->line_step = priv->saved_line_step;
1507 priv->channel = priv->saved_channel;
1508 priv->motor_step = 0;
1550 mustek_pp_ccd300_priv *priv = dev->priv;
1552 DBG (5, "calibrate entered (asic = 0x%02x)\n", priv->asic);
1557 priv->ref_black, priv->blackpos);
1680 mustek_pp_ccd300_priv *priv;
1685 if ((priv = malloc (sizeof (mustek_pp_ccd300_priv))) == NULL)
1691 dev->priv = priv;
1692 memset (priv, 0, sizeof (mustek_pp_ccd300_priv));
1694 priv->bw = 128;
1695 priv->wait_bank = 700;
1696 priv->top = 47;
1707 priv->asic = asic;
1708 priv->ccd_type = ccd;
1714 dev->res = priv->hwres = 300;
1723 mustek_pp_ccd300_priv *priv = dev->priv;
1733 free (priv);
1743 mustek_pp_ccd300_priv *priv = dev->priv;
1770 priv->bw = value;
1792 priv->wait_bank = value;
1813 priv->top = value;
1829 mustek_pp_ccd300_priv *priv = dev->priv;
1839 free (priv->calib_r);
1840 free (priv->calib_g);
1841 free (priv->calib_b);
1843 if (priv->red)
1845 for (cnt = 0; cnt < priv->green_offs; cnt++)
1846 free (priv->red[cnt]);
1847 free (priv->red);
1849 if (priv->blue)
1851 for (cnt = 0; cnt < priv->blue_offs; cnt++)
1852 free (priv->blue[cnt]);
1853 free (priv->blue);
1855 free (priv->green);
1857 priv->calib_r = priv->calib_g = priv->calib_b = NULL;
1858 priv->red = priv->blue = NULL;
1859 priv->green = NULL;
1867 mustek_pp_ccd300_priv *priv = dev->priv;
1872 priv->hwres = 100;
1874 priv->hwres = 200;
1876 priv->hwres = 300;
1879 priv->hwres);
1881 priv->skipimagebytes = dev->topX;
1888 if (priv->bank_count != 0)
1895 priv->motor_step = 0;
1898 if ((priv->calib_g = malloc (dev->params.pixels_per_line)) == NULL)
1907 priv->calib_r = malloc (dev->params.pixels_per_line);
1908 priv->calib_b = malloc (dev->params.pixels_per_line);
1910 if ((priv->calib_r == NULL) || (priv->calib_b == NULL))
1912 free (priv->calib_g);
1913 free (priv->calib_r);
1914 free (priv->calib_b);
1915 priv->calib_r = priv->calib_g = priv->calib_b = NULL;
1925 if (priv->ccd_type == 1)
1927 priv->blue_offs = 4;
1928 priv->green_offs = 8;
1932 priv->blue_offs = 8;
1933 priv->green_offs = 16;
1936 move_motor (dev, priv->top + dev->topY -
1937 (dev->mode == MODE_COLOR ? priv->green_offs : 0), SANE_TRUE);
1939 if (priv->ccd_type == 1)
1948 priv->line_step = SANE_FIX (300.0 / (float) dev->res);
1949 priv->rdiff = priv->line_step;
1950 priv->bdiff = priv->rdiff + (priv->blue_offs << SANE_FIXED_SCALE_SHIFT);
1951 priv->gdiff =
1952 priv->rdiff + (priv->green_offs << SANE_FIXED_SCALE_SHIFT);
1954 priv->red = malloc (sizeof (SANE_Byte *) * priv->green_offs);
1955 priv->blue = malloc (sizeof (SANE_Byte *) * priv->blue_offs);
1956 priv->green = malloc (dev->params.pixels_per_line);
1958 if ((priv->red == NULL) || (priv->blue == NULL)
1959 || (priv->green == NULL))
1961 free (priv->calib_r);
1962 free (priv->calib_g);
1963 free (priv->calib_b);
1964 priv->calib_r = priv->calib_g = priv->calib_b = NULL;
1966 free (priv->red);
1967 free (priv->green);
1968 free (priv->blue);
1969 priv->red = priv->blue = NULL;
1970 priv->green = NULL;
1978 for (cnt = 0; cnt < priv->green_offs; cnt++)
1979 if ((priv->red[cnt] = malloc (dev->params.pixels_per_line)) == NULL)
1982 for (cnt = 0; cnt < priv->blue_offs; cnt++)
1983 if ((priv->blue[cnt] = malloc (dev->params.pixels_per_line)) == NULL)
1988 free (priv->calib_r);
1989 free (priv->calib_g);
1990 free (priv->calib_b);
1991 priv->calib_r = priv->calib_g = priv->calib_b = NULL;
1993 for (cnt = 0; cnt < priv->green_offs; cnt++)
1994 free (priv->red[cnt]);
1995 for (cnt = 0; cnt < priv->blue_offs; cnt++)
1996 free (priv->blue[cnt]);
1998 free (priv->red);
1999 free (priv->green);
2000 free (priv->blue);
2001 priv->red = priv->blue = NULL;
2002 priv->green = NULL;
2008 priv->redline = priv->blueline = priv->ccd_line = 0;
2011 priv->lines = 0;
2012 priv->lines_left = dev->params.lines;
2023 mustek_pp_ccd300_priv *priv = dev->priv;
2045 priv->lines_left--;
2046 priv->lines++;
2048 DBG (4, "ccd300_read: %d lines read (%d to go)\n", priv->lines,
2049 priv->lines_left);
2051 if (priv->lines_left == 0)