Lines Matching refs:stream

5 /*    I/O stream support (body).                                           */
35 FT_Stream_OpenMemory( FT_Stream stream,
39 stream->base = (FT_Byte*) base;
40 stream->size = size;
41 stream->pos = 0;
42 stream->cursor = 0;
43 stream->read = 0;
44 stream->close = 0;
49 FT_Stream_Close( FT_Stream stream )
51 if ( stream && stream->close )
52 stream->close( stream );
57 FT_Stream_Seek( FT_Stream stream,
63 if ( stream->read )
65 if ( stream->read( stream, pos, 0, 0 ) )
69 pos, stream->size ));
75 else if ( pos > stream->size )
79 pos, stream->size ));
85 stream->pos = pos;
92 FT_Stream_Skip( FT_Stream stream,
98 return FT_Stream_Seek( stream, (FT_ULong)( stream->pos + distance ) );
103 FT_Stream_Pos( FT_Stream stream )
105 return stream->pos;
110 FT_Stream_Read( FT_Stream stream,
114 return FT_Stream_ReadAt( stream, stream->pos, buffer, count );
119 FT_Stream_ReadAt( FT_Stream stream,
128 if ( pos >= stream->size )
132 pos, stream->size ));
137 if ( stream->read )
138 read_bytes = stream->read( stream, pos, buffer, count );
141 read_bytes = stream->size - pos;
145 FT_MEM_COPY( buffer, stream->base + pos, read_bytes );
148 stream->pos = pos + read_bytes;
164 FT_Stream_TryRead( FT_Stream stream,
171 if ( stream->pos >= stream->size )
174 if ( stream->read )
175 read_bytes = stream->read( stream, stream->pos, buffer, count );
178 read_bytes = stream->size - stream->pos;
182 FT_MEM_COPY( buffer, stream->base + stream->pos, read_bytes );
185 stream->pos += read_bytes;
193 FT_Stream_ExtractFrame( FT_Stream stream,
200 error = FT_Stream_EnterFrame( stream, count );
203 *pbytes = (FT_Byte*)stream->cursor;
206 stream->cursor = 0;
207 stream->limit = 0;
215 FT_Stream_ReleaseFrame( FT_Stream stream,
218 if ( stream && stream->read )
220 FT_Memory memory = stream->memory;
234 FT_Stream_EnterFrame( FT_Stream stream,
242 FT_ASSERT( stream && stream->cursor == 0 );
244 if ( stream->read )
247 FT_Memory memory = stream->memory;
251 if ( count > stream->size )
254 " frame size (%lu) larger than stream size (%lu)\n",
255 count, stream->size ));
263 stream->base = (unsigned char*)ft_mem_qalloc( memory, count, &error );
267 if ( FT_QALLOC( stream->base, count ) )
271 read_bytes = stream->read( stream, stream->pos,
272 stream->base, count );
279 FT_FREE( stream->base );
282 stream->cursor = stream->base;
283 stream->limit = stream->cursor + count;
284 stream->pos += read_bytes;
289 if ( stream->pos >= stream->size ||
290 stream->size - stream->pos < count )
294 stream->pos, count, stream->size ));
301 stream->cursor = stream->base + stream->pos;
302 stream->limit = stream->cursor + count;
303 stream->pos += count;
312 FT_Stream_ExitFrame( FT_Stream stream )
314 /* IMPORTANT: The assertion stream->cursor != 0 was removed, given */
320 /* gracefully; however, stream.cursor is really set to 0 by the */
323 FT_ASSERT( stream );
325 if ( stream->read )
327 FT_Memory memory = stream->memory;
330 ft_mem_free( memory, stream->base );
331 stream->base = NULL;
333 FT_FREE( stream->base );
336 stream->cursor = 0;
337 stream->limit = 0;
342 FT_Stream_GetChar( FT_Stream stream )
347 FT_ASSERT( stream && stream->cursor );
350 if ( stream->cursor < stream->limit )
351 result = *stream->cursor++;
358 FT_Stream_GetUShort( FT_Stream stream )
364 FT_ASSERT( stream && stream->cursor );
367 p = stream->cursor;
368 if ( p + 1 < stream->limit )
370 stream->cursor = p;
377 FT_Stream_GetUShortLE( FT_Stream stream )
383 FT_ASSERT( stream && stream->cursor );
386 p = stream->cursor;
387 if ( p + 1 < stream->limit )
389 stream->cursor = p;
396 FT_Stream_GetUOffset( FT_Stream stream )
402 FT_ASSERT( stream && stream->cursor );
405 p = stream->cursor;
406 if ( p + 2 < stream->limit )
408 stream->cursor = p;
414 FT_Stream_GetULong( FT_Stream stream )
420 FT_ASSERT( stream && stream->cursor );
423 p = stream->cursor;
424 if ( p + 3 < stream->limit )
426 stream->cursor = p;
432 FT_Stream_GetULongLE( FT_Stream stream )
438 FT_ASSERT( stream && stream->cursor );
441 p = stream->cursor;
442 if ( p + 3 < stream->limit )
444 stream->cursor = p;
450 FT_Stream_ReadChar( FT_Stream stream,
456 FT_ASSERT( stream );
460 if ( stream->read )
462 if ( stream->read( stream, stream->pos, &result, 1L ) != 1L )
467 if ( stream->pos < stream->size )
468 result = stream->base[stream->pos];
472 stream->pos++;
480 stream->pos, stream->size ));
487 FT_Stream_ReadUShort( FT_Stream stream,
495 FT_ASSERT( stream );
499 if ( stream->pos + 1 < stream->size )
501 if ( stream->read )
503 if ( stream->read( stream, stream->pos, reads, 2L ) != 2L )
510 p = stream->base + stream->pos;
519 stream->pos += 2;
527 stream->pos, stream->size ));
534 FT_Stream_ReadUShortLE( FT_Stream stream,
542 FT_ASSERT( stream );
546 if ( stream->pos + 1 < stream->size )
548 if ( stream->read )
550 if ( stream->read( stream, stream->pos, reads, 2L ) != 2L )
557 p = stream->base + stream->pos;
566 stream->pos += 2;
574 stream->pos, stream->size ));
581 FT_Stream_ReadUOffset( FT_Stream stream,
589 FT_ASSERT( stream );
593 if ( stream->pos + 2 < stream->size )
595 if ( stream->read )
597 if (stream->read( stream, stream->pos, reads, 3L ) != 3L )
604 p = stream->base + stream->pos;
613 stream->pos += 3;
621 stream->pos, stream->size ));
628 FT_Stream_ReadULong( FT_Stream stream,
636 FT_ASSERT( stream );
640 if ( stream->pos + 3 < stream->size )
642 if ( stream->read )
644 if ( stream->read( stream, stream->pos, reads, 4L ) != 4L )
651 p = stream->base + stream->pos;
660 stream->pos += 4;
668 stream->pos, stream->size ));
675 FT_Stream_ReadULongLE( FT_Stream stream,
683 FT_ASSERT( stream );
687 if ( stream->pos + 3 < stream->size )
689 if ( stream->read )
691 if ( stream->read( stream, stream->pos, reads, 4L ) != 4L )
698 p = stream->base + stream->pos;
707 stream->pos += 4;
715 stream->pos, stream->size ));
722 FT_Stream_ReadFields( FT_Stream stream,
731 if ( !fields || !stream )
734 cursor = stream->cursor;
747 error = FT_Stream_EnterFrame( stream, fields->offset );
752 cursor = stream->cursor;
762 if ( cursor + len > stream->limit )
822 stream->cursor = cursor;
859 FT_Stream_ExitFrame( stream );