Lines Matching refs:scanner
172 static void options_init (TScanner * scanner);
173 static void options_free (TScanner * scanner);
181 static SANE_Status bknd_colormodes (TScanner * scanner, SANE_Int model);
182 static void bknd_constrains (TScanner * scanner, SANE_Int source,
184 static SANE_Status bknd_depths (TScanner * scanner, SANE_Int model);
185 static SANE_Status bknd_info (TScanner * scanner);
186 static SANE_Status bknd_models (TScanner * scanner);
187 static SANE_Status bknd_resolutions (TScanner * scanner, SANE_Int model);
188 static SANE_Status bknd_sources (TScanner * scanner, SANE_Int model);
214 static SANE_Status img_buffers_alloc (TScanner * scanner, SANE_Int size);
215 static SANE_Status img_buffers_free (TScanner * scanner);
217 static SANE_Status option_get (TScanner * scanner, SANE_Int optid,
219 static SANE_Status option_set (TScanner * scanner, SANE_Int optid,
258 bknd_resolutions (TScanner * scanner, SANE_Int model)
262 DBG (DBG_FNC, "> bknd_resolutions(*scanner, model=%i)\n", model);
264 if (scanner != NULL)
320 if (scanner->list_resolutions != NULL)
321 free (scanner->list_resolutions);
323 scanner->list_resolutions = res;
332 bknd_models (TScanner * scanner)
338 if (scanner != NULL)
355 if (scanner->list_models != NULL)
356 free (scanner->list_models);
359 scanner->list_models = model;
368 bknd_colormodes (TScanner * scanner, SANE_Int model)
372 DBG (DBG_FNC, "> bknd_colormodes(*scanner, model=%i)\n", model);
374 if (scanner != NULL)
391 if (scanner->list_colormodes != NULL)
392 free (scanner->list_colormodes);
394 scanner->list_colormodes = colormode;
403 bknd_sources (TScanner * scanner, SANE_Int model)
407 DBG (DBG_FNC, "> bknd_sources(*scanner, model=%i)\n", model);
409 if (scanner != NULL)
437 if (scanner->list_sources != NULL)
438 free (scanner->list_sources);
440 scanner->list_sources = source;
449 bknd_depths (TScanner * scanner, SANE_Int model)
453 DBG (DBG_FNC, "> bknd_depths(*scanner, model=%i\n", model);
455 if (scanner != NULL)
471 if (scanner->list_depths != NULL)
472 free (scanner->list_depths);
474 scanner->list_depths = depth;
483 bknd_info (TScanner * scanner)
487 DBG (DBG_FNC, "> bknd_info(*scanner)");
489 if (scanner != NULL)
495 if (scanner->aValues[opt_chipname].s != NULL)
497 free (scanner->aValues[opt_chipname].s);
498 scanner->aValues[opt_chipname].s = NULL;
501 scanner->aValues[opt_chipname].s = strdup (data);
502 scanner->aOptions[opt_chipname].size = strlen (data) + 1;
505 scanner->aValues[opt_chipid].w = Chipset_ID (device);
508 scanner->aValues[opt_scancount].w = RTS_ScanCounter_Get (device);
558 bknd_constrains (TScanner * scanner, SANE_Int source, SANE_Int type)
562 if ((coords != NULL) && (scanner != NULL))
567 scanner->rng_vertical.max = coords->height;
570 scanner->rng_horizontal.max = coords->width;
577 img_buffers_free (TScanner * scanner)
579 if (scanner != NULL)
581 if (scanner->image != NULL)
583 free (scanner->image);
584 scanner->image = NULL;
587 if (scanner->rest != NULL)
589 free (scanner->rest);
590 scanner->rest = NULL;
593 scanner->rest_amount = 0;
600 img_buffers_alloc (TScanner * scanner, SANE_Int size)
607 if (scanner != NULL)
613 img_buffers_free (scanner);
615 scanner->image = (SANE_Byte *) malloc (size * sizeof (SANE_Byte));
616 if (scanner->image != NULL)
618 scanner->rest = (SANE_Byte *) malloc (size * sizeof (SANE_Byte));
619 if (scanner->rest != NULL)
624 img_buffers_free (scanner);
1101 options_free (TScanner * scanner)
1107 if (scanner != NULL)
1114 gamma_free (scanner);
1117 if (scanner->list_resolutions != NULL)
1118 free (scanner->list_resolutions);
1120 if (scanner->list_depths != NULL)
1121 free (scanner->list_depths);
1123 if (scanner->list_sources != NULL)
1124 free (scanner->list_sources);
1126 if (scanner->list_colormodes != NULL)
1127 free (scanner->list_colormodes);
1129 if (scanner->list_models != NULL)
1130 free (scanner->list_models);
1135 pDesc = &scanner->aOptions[i];
1136 pVal = &scanner->aValues[i];
1148 options_init (TScanner * scanner)
1154 if (scanner != NULL)
1161 gamma_create (scanner, 1.0);
1164 scanner->cnv.colormode = -1;
1165 scanner->cnv.negative = FALSE;
1166 scanner->cnv.threshold = 40;
1167 scanner->cnv.real_depth = FALSE;
1168 scanner->cnv.depth = -1;
1171 scanner->rng_threshold.min = 0;
1172 scanner->rng_threshold.max = 255;
1173 scanner->rng_threshold.quant = 0;
1176 scanner->rng_gamma.min = 0;
1177 scanner->rng_gamma.max = 65535;
1178 scanner->rng_gamma.quant = 0;
1181 scanner->rng_horizontal.min = 0;
1182 scanner->rng_horizontal.max = 220;
1183 scanner->rng_horizontal.quant = 1;
1186 scanner->rng_vertical.min = 0;
1187 scanner->rng_vertical.max = 300;
1188 scanner->rng_vertical.quant = 1;
1191 bknd_info (scanner);
1192 bknd_colormodes (scanner, RTS_Debug->dev_model);
1193 bknd_depths (scanner, RTS_Debug->dev_model);
1194 bknd_models (scanner);
1195 bknd_resolutions (scanner, RTS_Debug->dev_model);
1196 bknd_sources (scanner, RTS_Debug->dev_model);
1199 scanner->ScanParams.scantype = ST_NORMAL;
1200 scanner->ScanParams.colormode = CM_COLOR;
1201 scanner->ScanParams.resolution_x = 75;
1202 scanner->ScanParams.resolution_y = 75;
1203 scanner->ScanParams.coords.left = 0;
1204 scanner->ScanParams.coords.top = 0;
1205 scanner->ScanParams.coords.width = 220;
1206 scanner->ScanParams.coords.height = 300;
1207 scanner->ScanParams.depth = 8;
1208 scanner->ScanParams.channel = 0;
1212 pDesc = &scanner->aOptions[i];
1213 pVal = &scanner->aValues[i];
1253 pDesc->constraint.range = &scanner->rng_horizontal;
1264 pDesc->constraint.range = &scanner->rng_vertical;
1275 pDesc->constraint.range = &scanner->rng_horizontal;
1277 pVal->w = scanner->rng_horizontal.max;
1286 pDesc->constraint.range = &scanner->rng_vertical;
1288 pVal->w = scanner->rng_vertical.max;
1297 pDesc->constraint.word_list = scanner->list_resolutions;
1299 pVal->w = scanner->list_resolutions[1];
1306 pDesc->size = scanner->rng_gamma.max * sizeof (SANE_Word);
1309 pDesc->constraint.range = &scanner->rng_gamma;
1311 pVal->wa = scanner->aGammaTable[CL_RED];
1318 pDesc->size = scanner->rng_gamma.max * sizeof (SANE_Word);
1321 pDesc->constraint.range = &scanner->rng_gamma;
1323 pVal->wa = scanner->aGammaTable[CL_GREEN];
1330 pDesc->size = scanner->rng_gamma.max * sizeof (SANE_Word);
1333 pDesc->constraint.range = &scanner->rng_gamma;
1335 pVal->wa = scanner->aGammaTable[CL_BLUE];
1343 pDesc->size = max_string_size (scanner->list_sources);
1345 pDesc->constraint.string_list = scanner->list_sources;
1347 pVal->s = strdup (scanner->list_sources[0]);
1355 pDesc->size = max_string_size (scanner->list_colormodes);
1357 pDesc->constraint.string_list = scanner->list_colormodes;
1359 pVal->s = strdup (scanner->list_colormodes[0]);
1369 pDesc->constraint.word_list = scanner->list_depths;
1371 pVal->w = scanner->list_depths[1];
1381 pDesc->constraint.range = &scanner->rng_threshold;
1409 pDesc->size = max_string_size (scanner->list_models);
1411 pDesc->constraint.string_list = scanner->list_models;
1415 pVal->s = strdup (scanner->list_models[0]);
1518 ("If enabled, some images involved in scanner processing are saved to analyze them.");
1583 SANE_I18N ("Shows the number of scans made by scanner");
1634 ("This option reflects a front panel scanner button");
1682 pNew->dev.type = SANE_I18N ("flatbed scanner");
1936 option_get (TScanner * scanner, SANE_Int optid, void *result)
1942 if ((scanner != NULL) && (result != NULL))
1963 *(SANE_Word *) result = scanner->aValues[optid].w;
1969 *(SANE_Int *) result = scanner->aValues[optid].w;
1976 memcpy (result, scanner->aValues[optid].wa,
1977 scanner->aOptions[optid].size);
1985 strncpy (result, scanner->aValues[optid].s, scanner->aOptions[optid].size);
1986 ((char*)result)[scanner->aOptions[optid].size-1] = '\0';
1990 /* scanner buttons */
1992 get_button_status (scanner);
2000 *(SANE_Word *) result = scanner->aValues[optid].w;
2002 scanner->aValues[optid].w = SANE_FALSE;
2011 option_set (TScanner * scanner, SANE_Int optid, void *value, SANE_Int * pInfo)
2019 if (scanner != NULL)
2021 if (scanner->fScanning == FALSE)
2043 scanner->aValues[optid].w = *(SANE_Word *) value;
2049 memcpy (scanner->aValues[optid].wa, value,
2050 scanner->aOptions[optid].size);
2054 if (strcmp (scanner->aValues[optid].s, value) != 0)
2059 if (scanner->aValues[optid].s)
2060 free (scanner->aValues[optid].s);
2062 scanner->aValues[optid].s = strdup (value);
2064 source = Get_Source (scanner->aValues[opt_scantype].s);
2068 bknd_constrains (scanner, source, 0);
2069 bknd_constrains (scanner, source, 1);
2070 scanner->aValues[opt_tlx].w = 0;
2071 scanner->aValues[opt_tly].w = 0;
2072 scanner->aValues[opt_brx].w = coords->width;
2073 scanner->aValues[opt_bry].w = coords->height;
2081 if (strcmp (scanner->aValues[optid].s, value) != 0)
2083 if (scanner->aValues[optid].s)
2084 free (scanner->aValues[optid].s);
2085 scanner->aValues[optid].s = strdup (value);
2086 if (Get_Colormode (scanner->aValues[optid].s) == CM_LINEART)
2087 scanner->aOptions[opt_threshold].cap &=
2090 scanner->aOptions[opt_threshold].cap |= SANE_CAP_INACTIVE;
2096 if (strcmp (scanner->aValues[optid].s, value) != 0)
2100 if (scanner->aValues[optid].s)
2101 free (scanner->aValues[optid].s);
2102 scanner->aValues[optid].s = strdup (value);
2104 model = Get_Model (scanner->aValues[optid].s);
2120 bknd_info (scanner);
2121 bknd_colormodes (scanner, model);
2122 bknd_depths (scanner, model);
2123 bknd_resolutions (scanner, model);
2124 bknd_sources (scanner, model);
2127 scanner->aOptions[opt_colormode].size =
2128 max_string_size (scanner->list_colormodes);
2129 scanner->aOptions[opt_colormode].constraint.
2130 string_list = scanner->list_colormodes;
2131 scanner->aOptions[opt_depth].constraint.word_list =
2132 scanner->list_depths;
2133 scanner->aOptions[opt_resolution].constraint.word_list =
2134 scanner->list_resolutions;
2135 scanner->aOptions[opt_scantype].size =
2136 max_string_size (scanner->list_sources);
2137 scanner->aOptions[opt_scantype].constraint.string_list =
2138 scanner->list_sources;
2141 if (scanner->aValues[opt_colormode].s != NULL)
2142 free (scanner->aValues[opt_colormode].s);
2144 if (scanner->aValues[opt_scantype].s != NULL)
2145 free (scanner->aValues[opt_scantype].s);
2147 scanner->aValues[opt_colormode].s =
2148 strdup (scanner->list_colormodes[0]);
2149 scanner->aValues[opt_scantype].s =
2150 strdup (scanner->list_sources[0]);
2151 scanner->aValues[opt_resolution].w =
2152 scanner->list_resolutions[1];
2153 scanner->aValues[opt_depth].w = scanner->list_depths[1];
2155 source = Get_Source (scanner->aValues[opt_scantype].s);
2159 bknd_constrains (scanner, source, 0);
2160 bknd_constrains (scanner, source, 1);
2161 scanner->aValues[opt_tlx].w = 0;
2162 scanner->aValues[opt_tly].w = 0;
2163 scanner->aValues[opt_brx].w = coords->width;
2164 scanner->aValues[opt_bry].w = coords->height;
2177 scanner->aValues[optid].w =
2178 (scanner->cnv.real_depth == TRUE) ? SANE_TRUE : SANE_FALSE;
2182 if (bknd_info (scanner) == SANE_STATUS_GOOD)
2203 TScanner *scanner;
2208 scanner = (TScanner *) h;
2213 rst = option_get (scanner, n, pVal);
2217 rst = option_set (scanner, n, pVal, pInfo);
2323 /* Check if scanner supports slides and negatives in case selected source is tma */
2500 scanner prior to convert to 8 bits depth */
2539 /* read from scanner up to one line */
2623 /* I didn't see any scanner supporting lineart mode.
2689 TScanner *scanner = (TScanner *) h;
2699 /* free scanner internal variables */
2706 if (scanner != NULL)
2708 options_free (scanner);
2710 img_buffers_free (scanner);