Lines Matching defs:reader

509   if ((s->reader->params.ydpi == 1200) && (s->dev->is_epro == 0)) /*epro*/
1978 line_read_gray_8 (Artec48U_Line_Reader * reader,
1986 size = reader->params.scan_bpl;
1987 status = artec48u_device_read (reader->dev, reader->pixel_buffer, &size);
1991 buffer = DELAY_BUFFER_READ_PTR (&reader->g_delay);
1993 unpack_8_mono (reader->pixel_buffer, buffer, reader->pixels_per_line);
1999 line_read_gray_16 (Artec48U_Line_Reader * reader,
2007 size = reader->params.scan_bpl;
2008 status = artec48u_device_read (reader->dev, reader->pixel_buffer, &size);
2012 buffer = DELAY_BUFFER_READ_PTR (&reader->g_delay);
2014 unpack_16_le_mono (reader->pixel_buffer, buffer, reader->pixels_per_line);
2020 line_read_bgr_8_line_mode (Artec48U_Line_Reader * reader,
2026 SANE_Byte *pixel_buffer = reader->pixel_buffer;
2029 size = reader->params.scan_bpl * 3;
2030 status = artec48u_device_read (reader->dev, pixel_buffer, &size);
2034 pixels_per_line = reader->pixels_per_line;
2036 DELAY_BUFFER_WRITE_PTR (&reader->b_delay), pixels_per_line);
2037 pixel_buffer += reader->params.scan_bpl;
2039 DELAY_BUFFER_WRITE_PTR (&reader->g_delay), pixels_per_line);
2040 pixel_buffer += reader->params.scan_bpl;
2042 DELAY_BUFFER_WRITE_PTR (&reader->r_delay), pixels_per_line);
2044 buffer_pointers_return[0] = DELAY_BUFFER_READ_PTR (&reader->r_delay);
2045 buffer_pointers_return[1] = DELAY_BUFFER_READ_PTR (&reader->g_delay);
2046 buffer_pointers_return[2] = DELAY_BUFFER_READ_PTR (&reader->b_delay);
2048 DELAY_BUFFER_STEP (&reader->r_delay);
2049 DELAY_BUFFER_STEP (&reader->g_delay);
2050 DELAY_BUFFER_STEP (&reader->b_delay);
2056 line_read_bgr_16_line_mode (Artec48U_Line_Reader * reader,
2062 SANE_Byte *pixel_buffer = reader->pixel_buffer;
2065 size = reader->params.scan_bpl * 3;
2066 status = artec48u_device_read (reader->dev, pixel_buffer, &size);
2070 pixels_per_line = reader->pixels_per_line;
2072 DELAY_BUFFER_WRITE_PTR (&reader->b_delay),
2074 pixel_buffer += reader->params.scan_bpl;
2076 DELAY_BUFFER_WRITE_PTR (&reader->g_delay),
2078 pixel_buffer += reader->params.scan_bpl;
2080 DELAY_BUFFER_WRITE_PTR (&reader->r_delay),
2083 buffer_pointers_return[0] = DELAY_BUFFER_READ_PTR (&reader->r_delay);
2084 buffer_pointers_return[1] = DELAY_BUFFER_READ_PTR (&reader->g_delay);
2085 buffer_pointers_return[2] = DELAY_BUFFER_READ_PTR (&reader->b_delay);
2087 DELAY_BUFFER_STEP (&reader->r_delay);
2088 DELAY_BUFFER_STEP (&reader->g_delay);
2089 DELAY_BUFFER_STEP (&reader->b_delay);
2095 artec48u_line_reader_init_delays (Artec48U_Line_Reader * reader)
2099 if (reader->params.color)
2101 status = artec48u_delay_buffer_init (&reader->r_delay,
2102 reader->params.pixel_xs);
2106 status = artec48u_delay_buffer_init (&reader->g_delay,
2107 reader->params.pixel_xs);
2110 artec48u_delay_buffer_done (&reader->r_delay);
2114 status = artec48u_delay_buffer_init (&reader->b_delay,
2115 reader->params.pixel_xs);
2118 artec48u_delay_buffer_done (&reader->g_delay);
2119 artec48u_delay_buffer_done (&reader->r_delay);
2125 status = artec48u_delay_buffer_init (&reader->g_delay,
2126 reader->params.pixel_xs);
2131 reader->delays_initialized = SANE_TRUE;
2137 artec48u_line_reader_free_delays (Artec48U_Line_Reader * reader)
2139 if (!reader)
2143 if (reader->delays_initialized)
2145 if (reader->params.color)
2147 artec48u_delay_buffer_done (&reader->b_delay);
2148 artec48u_delay_buffer_done (&reader->g_delay);
2149 artec48u_delay_buffer_done (&reader->r_delay);
2153 artec48u_delay_buffer_done (&reader->g_delay);
2155 reader->delays_initialized = SANE_FALSE;
2165 Artec48U_Line_Reader *reader;
2181 reader = (Artec48U_Line_Reader *) malloc (sizeof (Artec48U_Line_Reader));
2182 if (!reader)
2187 memset (reader, 0, sizeof (Artec48U_Line_Reader));
2189 reader->dev = dev;
2190 memcpy (&reader->params, params, sizeof (Artec48U_Scan_Parameters));
2191 reader->pixel_buffer = 0;
2192 reader->delays_initialized = SANE_FALSE;
2194 reader->read = NULL;
2196 status = artec48u_line_reader_init_delays (reader);
2201 free (reader);
2205 reader->pixels_per_line = reader->params.pixel_xs;
2207 if (!reader->params.color)
2209 XDBG ((2, "!reader->params.color\n"));
2210 if (reader->params.depth == 8)
2211 reader->read = line_read_gray_8;
2212 else if (reader->params.depth == 16)
2213 reader->read = line_read_gray_16;
2217 XDBG ((2, "reader line mode\n"));
2218 if (reader->params.depth == 8)
2221 reader->read = line_read_bgr_8_line_mode;
2223 else if (reader->params.depth == 16)
2226 reader->read = line_read_bgr_16_line_mode;
2230 if (reader->read == NULL)
2233 function_name, reader->params.depth));
2234 artec48u_line_reader_free_delays (reader);
2235 free (reader);
2239 scan_bpl_full = reader->params.scan_bpl;
2240 if (reader->params.color)
2243 reader->pixel_buffer = malloc (scan_bpl_full);
2244 if (!reader->pixel_buffer)
2247 artec48u_line_reader_free_delays (reader);
2248 free (reader);
2252 artec48u_device_set_read_buffer_size (reader->dev,
2255 image_size = scan_bpl_full * reader->params.scan_ys;
2256 status = artec48u_device_read_prepare (reader->dev, image_size);
2261 free (reader->pixel_buffer);
2262 artec48u_line_reader_free_delays (reader);
2263 free (reader);
2268 *reader_return = reader;
2273 artec48u_line_reader_free (Artec48U_Line_Reader * reader)
2279 if (!reader)
2283 artec48u_line_reader_free_delays (reader);
2285 if (reader->pixel_buffer)
2287 free (reader->pixel_buffer);
2288 reader->pixel_buffer = NULL;
2291 status = artec48u_device_read_finish (reader->dev);
2298 if (reader)
2299 free (reader);
2306 artec48u_line_reader_read (Artec48U_Line_Reader * reader,
2309 return (*reader->read) (reader, buffer_pointers_return);
2327 s->reader = NULL;
2355 status = artec48u_line_reader_read (s->reader, buffer_pointers);
2366 c = s->reader->pixels_per_line;
2367 if (s->reader->params.color == SANE_TRUE)
2431 if (s->reader)
2433 artec48u_line_reader_free (s->reader);
2434 s->reader = NULL;
2536 status = artec48u_line_reader_new (s->dev, params, &s->reader);
2569 artec48u_line_reader_free (s->reader);
2570 s->reader = NULL;
3084 s->reader = NULL;
3164 s->reader = NULL;
3304 s->reader = NULL;
3331 s->reader = NULL;
3388 XDBG ((1, "reader process...\n"));
4238 s->reader = NULL;